L.A. Noire - V Patch | A community-made patch for the 2011's video game L.A Noire containing a set of fixes like an unlocked framerate or custom aspect ratios.

Overview

V-Patch for L.A Noire Complete Edition

This project is not affiliated with Take-Two or Rockstar Games

A while ago I wanted to replay L.A Noire on my new setup, only to find out that the game was locked to 30 FPS and didn't support my monitor's aspect ratio. With this fact in mind, I started to search for fixes, only to learn that most of them sucked.

After determining that all the available fixes were either unintuitive to use for the average user or lacking in features, I sought out to make my own patch, mainly looking to tackle the 30 FPS cap and the aspect ratio limitations. Later in development it became clear to me that what I had made was worth publishing for others to use... so here we are.

Features

Total FPS Uncap (60+ FPS) & Variable Framerate

The biggest drawback of all available fixes for me was the fact that they would only raise "the FPS cap" to 60 frames per second. Not only that, playing with these fixes would sometimes make the game run slow if you happened to drop a few frames below 60 FPS.

Usually, raising "the cap" would be done by increasing a value in the game's memory, that would have the effect of increasing the frame limit. However, this method had a big disadvantage. Since the value used to cap the framerate was also used for game logic, in case your PC could not produce a constant 60 FPS, the game simulation would run slower.

This means if you set your frame cap to 60, but your PC could only produce 30 FPS, the game would run at half the right speed. And since the game can often drop below 60 FPS even on a fairly good setup, you would get occasional slowdowns. Not good! :/

Therefore, I looked for a new method of increasing the frame cap... or even better, removing it all together. I ended up patching out the frame synchronization logic, which had the effect of totally uncapping the framerate. Then, in order to make the game run at the correct speed, I hooked a small function which updates the game speed according to the current frame time.

This means that you can now run the game at any framerate. It doesn't matter if you are running 60 FPS or 160, the game will always run at the correct speed.

Of course, the fix is not perfect, since some things in the game logic are still tied to the framerate. However, it's better than anything else available currently ;)

Variable framerate showcase [YouTube]

Disclaimer: Some missions or activities may still be unbeatable when playing with a high framerate. If you encounter such an issue, disable the FPS unlock in the config file (lanvp.ini in the game folder), restart the game, pass the current section, re-enable the FPS unlock in the config and restart the game again. Please make sure to report the problem on the Steam forums, ModDB comments, or via GitHub issues so that we can work on a fix.

Fixed car braking

Another drawback of using the 60 FPS patches was that cars would brake a lot slower. If you tried to go even higher than 60, cars would stop braking at all, effectively making the game unplayable.

This turned out to be a much easier fix that I had imagined, since it simply revolves around changing the braking modifier in the car dynamics logic, according to the framerate. Cars now brake at the correct speed, which also has the side effect of making the case "The Golden Butterfly" beatable again.

Here's a comparison of the braking speeds, 30 FPS vs uncapped:

Car braking speed comparison [YouTube]

Ultrawide support

While I don't own an ultrawide monitor, it is clear to me that the game has some issues with ultrawide resolutions, due to the FOV being too small. And so, in order to remove the need for special widescreen tools, I decided to implement FOV correction fix right into the patch.

The principle through which it achieves the correction is quite simple. Since the game is made for 16:9 resolutions, the value determining the camera FOV stores the horizontal angle. Normally this works OK. However, on ultrawide resolutions your horizontal length is much longer than vertical length, meaning that the top and bottom of the screen would effectively get cut off.

The fix simply takes the current camera fov, calculates the vertical FOV by assuming the aspect ratio is 16:9, and then multiplies the resulting value by the current, real, aspect ratio.

fovHorizontal = (fovHorizontal * (9/16)) * aspect

Comparison of various aspect ratios with FOV correction.

Cutcenes remain unaffected, since they are already ultrawide to begin with.

Custom FOV

In case you are still not happy with the FOV, the patch allows you to set a custom FOV multiplier in the configuration ini file. This can help if the game feels too zoomed in or out.

FOV Multiplier 2.0

Unlocked aspect ratios (16:10, 4:3, 5:4, etc.)

By default, if you try running the game on a resolution slimmer than 16:9, you will encounter black bars at the top and bottom of the screen. Since I don't have a 16:9 monitor, this made for an unpleasant playing experience.

Luckily, the fix was quite simple, since all that was needed was to patch out the aspect ratio check. Even without the FOV correction, the game looks alright on such resolutions, which makes me wonder why the limitation exists in the first place.

L.A. Noire running in a 5:4 resolution without black bars and with FOV correction.

Borderless window

Recently, I discovered the convenience of running games in a borderless window mode, and so... I just couldn't resist adding support for it as well. This option is enabled by default, since it also disables v-sync.

Custom resolutions

A common issue with non-standard monitor sizes (for the year 2011 :) ) is that the desired resolution does not appear in the game settings. That's why the patch allows you to set a custom resolution in the config file.

By default, this is now set to your current monitor's resolution, which prevents these sorts of issues in the first place.

Installation

Installing the patch is very simple:

  1. Get the latest release from GitHub
  2. Extract the archive.
  3. Place dinput8.dll inside the game folder (same location as LaNoire.exe)

Done. No special setup required.

Supported versions

V-Patch has been developed and tested on L.A Noire builds 2617 and 2663 (current version), including both Steam & R* Launcher releases.

Configuration

When first launched, V-Patch creates a configuration file inside the L.A. Noire game folder. By default, it bears the name lanvp.ini. Here you can enable/disable or change the features mentioned above.

Known issues

  • Car steering is more sensitive than it should be.
  • Certain graphical menu transitions (e.g. when switching outfits) fade out/in slower.
  • The map and has a much lower mouse sensitivity on high framerates.
  • When force_resolution is enabled, changing the resolution via the in-game settings breaks the GUI. It is recommended not to change the resolution in-game or disable force_resolution in the config before doing so.

Planned features

  • ASI loader to load other people's plugins.
  • Ability to increase/decrease the LOD or render distance.
  • Restore cut features (Trolley&Bus riding) as optional settings.

Credits

Thanks to the following people for taking the time to help with testing V-Patch:

  • iJuhan
  • PixellSnow
  • Pastelblue
  • Comot
  • GaroK
Issues
  • Not working with Steam new update

    Not working with Steam new update

    9mb update or something released, now the patch doesn't work. [V-Patch] Error while initializing patch, "Your version (2675) is not currently supported. Please contact the author as soon as possible, so that we can implement support for it!"

    bug 
    opened by GeorgeV5601 7
  • Patch does not work under proton

    Patch does not work under proton

    Installing the patch when using proton in linux does not create the .ini file. My hypothesis is that by default proton uses it's own version of libraries over ones in the game directory

    I could make it work however by opening winecfg via protontricks: protontricks 110800 winecfg

    And under "Libraries" adding an new override for "dinput8.dll"

    After this everything works as described in the readme. I'll be playing the game some more in the coming days to see if it runs ok.

    I don't know if there is a cleaner/easier way to implement this or if there is a possibility to provide these steps in the readme? I'll be adding a guide to steam soon with these instructions as well if I don't have massive issues while playing the game.

    opened by KaiNickson 4
  • Stuttering with G-Sync

    Stuttering with G-Sync

    Thanks a lot for your effort making an old game run smoothly!

    Sadly it doesn't help in my case. I have an AMD Ryzen 7 3700X with a GeForce RTX 3060 Ti and 32 GB RAM + a 144 Hz Display which is G-Sync compatible. Except for the forced resolution (because of https://github.com/VaanaCZ/LANVP/issues/1#issuecomment-841815977) setting everything else is set to default in your config and the ingame settings are all set to maximum including 1080p with 144 FPS. Do you have any idea why it is stuttering a lot for me or how I could identify the cause? Thanks in advance.

    opened by MaluNoPeleke 4
  • Additional options

    Additional options

    In "Planned features" you've wrote, that you want to add cut content and extra graphical options. Is there any possibility, that you could also implement options for:

    • Skipping intro videos
    • Unlocking exclusive for RGL version outfit
    • Add early access to detective outfits

    I know that L.A. Noire Unlocker adds options for that, but this mod colidates with mentioned before unlocker, so those can't be used at the same time.

    opened by Patrxgt 3
  • Can't lock FPS to 60

    Can't lock FPS to 60

    So in the .ini file if I change the resolution output to 60 FPS it still keeps it unlocked for me. And playing at 144 is pretty bad, as the frame rate changing gives me stutters. Is there a way to lock it to 60 using your fix?

    opened by EntropyWasTaken 2
  • More of a request than an Issue.

    More of a request than an Issue.

    I am trying to submit a request on a Job title for truckers, I have seen a lot of tucks around as well as trailers and thought this would be a good idea for a job and that would be a mechanic for the truckers, for when they are broken down or out of gas this mechanic would have a radio connected to the truckers radio that would be able to drive out and repair or refuel. They should also have the ability to clear the trucks out to help the server. Depending on the issue with the truck they would have to pay them or the mechanic can give them a bill in order for them to get paid. So they would be basically DOT but only for the tuckers.

    opened by Wickedheadwound 1
  • Updated README.md

    Updated README.md

    Added installation steps for Lutris and Steam Proton on Linux, as well as added the word 'Windows' to the previous Installation title for a more accurate seperation. I can confirm that with the provided steps, the patch is now working fully under Linux. Screenshot_20220223_013554

    Propersal: Adding crucial installation information for Linux users to apply the patch properly (in regards to dll override).
    Replaced line 113 String from "Installation to "Windows Installation".
    Added lines 123-134 Linux installation steps.
    
    opened by 18iteration 0
  • "The Set Up" pencil bug

    I think this video pretty much explains everything. https://youtu.be/O4Z3Xfga_UM Deleting dinput8.dll and putting it back after this event fixed it for me.

    opened by Primpadoo 0
  • Playing On Controller is not good

    Playing On Controller is not good

    everything about the patch works fine, apart from the config file, but it doesn't seem to change anything, and the controller support. when you drive, the camera looks down, when you press down left stick for siren, it pauses the game. keyboard works fine but the controller doesn't

    Edit: i managed to solve the problem, by turning on and off my controller, but now the movement is reversed, and it is also happening to the keyboard

    opened by Bayomayo0 1
  • requesting a feature to remove vignete effects and shadows

    requesting a feature to remove vignete effects and shadows

    hi all,i just found out about this patch recently,im satisfied with the features but,can there be a feature to disable the ugly vignette and disable shadows for more fps,thanks in any advice

    opened by Soldier962 0
  • Game crashes -

    Game crashes - "The consul's car"

    The game crashes when I'm at William Dewey car sales in "The consul's car" case. It happens after inspecting the wrenches and you're returning to interview William Dewey in front of the store.

    I have an ultrawide screen. The workaround was to remove the DLL, interview William Dewey and travel to the next location, then move the DLL back.

    opened by eljay66 0
  • [Feature Request] Option to disable Bloom and DoF?

    [Feature Request] Option to disable Bloom and DoF?

    I know this isn't an issue with this patch, but I was curious to know how hard or if it's possible to create some kind of option to disable the Bloom and Depth of Field Post Processing options. Unfortunately these effects are fixed to a very low fractional resolution based on the rendering resolution and they are distractingly low quality with numerous temporal crawling/flicker issues and I'd like to replace them with effects from Reshade instead.

    There is the launch option to disable all post effects but unfortunately this seems to break other rendering like the minimap. Thank you for your time.

    enhancement 
    opened by OCRBonk 2
  • force_borderless_window=0 causes high GPU utilization compared to force_borderless_window=1

    force_borderless_window=0 causes high GPU utilization compared to force_borderless_window=1

    Using force_borderless_window=0 causes high GPU utilization compared to force_borderless_window=1.

    I have a 1080 Ti and usually play games in 1440p60FPS while I use a 4K monitor. For this reason, I wanted to set force_borderless_window=0 to make the window fill the screen. What I found weird was that the GPU utilization skyrocketed to ~80% according to RTSS from ~30% in windowed mode in 1440p60FPS. I can play 4K60FPS with force_borderless_window=1 with ~50% utilization while, setting it to 0 increases the utilization to 60% while forcing the FPS to drop to 30 (possibly due to lack of GPU headroom).

    Why is force_borderless_window=0 causing this unusual increase in GPU utilization?

    opened by eXhumer 2
Releases(v1.1b)
  • v1.1b(Jun 30, 2022)

    Updated release of V-Patch for L.A Noire.

    Supported builds are 2617, 2663 and 2675 (current version as of June 2022), including both Steam & R* Launcher releases.

    Changelog

    • Added support for new L.A Noire version 2675.
    • Resolved an issue where dinput8.dll couldn't be found on 32-bit systems.
    • More verbose Windows API error messages.

    Installation

    • Download the attached archive (LaNoireVPatch_1.1b.zip)
    • Extract the archive.
    • Place dinput8.dll into the game folder (same location as LaNoire.exe)

    Done. No special setup required.

    Source code(tar.gz)
    Source code(zip)
    LaNoireVPatch_1.1b.zip(83.74 KB)
  • v1.1a(Sep 11, 2021)

    Disclaimer: This version is outdated and included only for archival purposes. Please use the latest release listed above.

    Updated release of V-Patch for L.A Noire.

    Supported builds are 2617 and 2663 (current version as of September 2021), including both Steam & R* Launcher releases.

    Changelog

    • Added option to enforce DirectX 11. Set to true by default if the user has a D3D11 capable GPU.
    • Fixed bug where resolution wouldn't be enforced if the config was not yet generated.

    Installation

    • Download the attached archive (LaNoireVPatch_1.1a.zip)
    • Extract the archive.
    • Place dinput8.dll into the game folder (same location as LaNoire.exe)

    Done. No special setup required.

    Source code(tar.gz)
    Source code(zip)
    LaNoireVPatch_1.1a.zip(76.71 KB)
  • v1.1(Jul 4, 2021)

    Disclaimer: This version is outdated and included only for archival purposes. Please use the latest release listed above.

    Updated release of V-Patch for L.A Noire.

    Supported builds are 2617 and 2663 (current version as of July 2021), including both Steam & R* Launcher releases.

    Changelog

    • Fixed mouse sensitivity in map menu.
    • Improved GUI scaling for different aspect ratios.
    • Fixed major issues with resolution enforcement.
    • Added option to skip the intro logos when the game is launched.
    • Added ability to set a custom FPS cap.
    • Previously "unsupported" resolutions should now appear in the game settings.
    • Added V-Patch version text into main menu.

    Installation

    • Download the attached archive (LaNoireVPatch_1.1.zip)
    • Extract the archive.
    • Place dinput8.dll into the game folder (same location as LaNoire.exe)

    Done. No special setup required.

    Source code(tar.gz)
    Source code(zip)
    LaNoireVPatch_1.1.zip(76.00 KB)
  • v1.0(May 9, 2021)

    Disclaimer: This version is outdated and included only for archival purposes. Please use the latest release listed above.

    Initial release of V-Patch for L.A Noire.

    Supported builds are 2617 and 2663 (current version as of May 2021), including both Steam & R* Launcher releases.

    Installation

    • Download the attached archive (LaNoireVPatch.zip)
    • Extract the archive.
    • Place dinput8.dll inside the game folder (same location as LaNoire.exe)

    Done. No special setup required.

    Source code(tar.gz)
    Source code(zip)
    LaNoireVPatch.zip(73.91 KB)
  • v1.0-RC1(May 4, 2021)

    Disclaimer: This version is outdated and included only for archival purposes. Please use the latest release listed above.

    This is a Release Candidate sent out to testers of V-Patch for the game L.A. Noire.

    To install simply download dinput8.dll listed below and drop into the game folder (same folder as LaNoire.exe)

    The patch has been tested on build 2617 and 2663 (Steam).

    Source code(tar.gz)
    Source code(zip)
    dinput8.dll(136.50 KB)
Version control for Hydroxide's C++ port (Redacted Lua internals, as requested by community members.)

Hydroxide++ Penetration testing tool for games developed on the Roblox game engine. (but this time, written in C++) view the original version of Hydro

ARSON 2 Jun 16, 2022
Community-gathered tests for C++ course read in YSDA

YSDA-CPP-collective-tests Коллективно собранные тесты для задач с закрытыми тестами из курса C++. Структура Структура этого репозитория соответствует

Martynov Pavel 5 Nov 1, 2021
C - A repository containing C code samples and concepts for beginners.

C - A repository containing C code samples and concepts for beginners. A repository containing C concepts I made when I was bored. You can also use th

doxxable3 1 Nov 1, 2021
C++ Type Traits for Smart Pointers that are not included in the standard library, containing inheritance detection and member detection.

Smart Pointer Type Trait ?? A simple, header-only cpp library implementing smart pointer type traits. You can easily compile your code diffrently depe

Woon2 11 Dec 22, 2021
Materials for CSGO Video Game Hacking workshop Google DSC 2021-2022

Intro to Video Game Hacking Workshop for UBCO Google DSC All of the code is in the Internal Cheat Project. The DSC Internal Demo was the code that we

Jordan Ribbink 1 Oct 26, 2021
Introducing to the world - Maze Game! A game with an easily accessible, user-friendly interface that will provide you the serotonin a game should!

Maze-Project Maze game by Maze™ ?? About Introducing to the world - Maze game! ⛏️ Used technologies C++ ✅ Features 3 levels of difficulty User-friendl

Yoana Agafonova 6 Jun 2, 2022
A custom,multifunctional class template for arrays which supports lambda functions for removing and selecting

C++ Array Template Class This is an implementation of a template class for storing data in any type.It includes user-friendly interface with lots of h

Ozan Armağan 2 Dec 8, 2021
The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++

The C++ Core Guidelines are a collaborative effort led by Bjarne Stroustrup, much like the C++ language itself. They are the result of many person-years of discussion and design across a number of organizations. Their design encourages general applicability and broad adoption but they can be freely copied and modified to meet your organization's needs.

Standard C++ Foundation 35k Aug 8, 2022
The Repository Contains the Set Way of Learning Cpplus With the help of programs And Notes.

Preface Since the C++ language varies so heavily between versions (e.g. C++0x, C++11, C++17, etc.), I will preface this cheat sheet by saying that the

Pawan Roshan Gupta 6 May 9, 2022
This repository consists a set of problems that a beginner can starts with.

Beginner's Coding Sheet ?? ?? This Coding Sheet is provided by SIDDHARTH SINGH on his YouTube Channel. Here are the set of problems with its respectiv

Kishan Kumar Rai 4 Jan 24, 2022
Background Music, a macOS audio utility: automatically pause your music, set individual apps' volumes and record system audio.

Background Music macOS audio utility Overview Auto-pause music Application volume Recording system audio Download Build and Install Uninstall Troubles

Kyle Neideck 11.8k Aug 6, 2022
C++ OpenGL 3D Game Tutorial Series - Learn to code an OpenGL 3D Game in C++ from scratch

C++ OpenGL 3D Game Tutorial Series is a YouTube Tutorial Series, whose purpose is to help all those who want to take their first steps in the game dev

 PardCode 93 Jul 28, 2022
Mastering-Cpp-Game-Development - Code files for Mastering C++ Game Development, published by Packt

Mastering C++ Game Development This is the code repository for Mastering C++ Game Development, published by Packt. It contains all the supporting proj

Packt 65 Jul 17, 2022
0xABAD1DEA - Static global objects with constructors and destructors made useful in C++

0xABAD1DEA This little header provides an alternative way to construct and destruct static global objects. How to use Add 0xabad1dea.cpp and 0xabad1de

Dale Weiler 23 Jun 7, 2022
✨ Unix-like kernel for ARM64

✨ Unix-like kernel for ARM64

Marco 52 Jul 26, 2022
Like the Vulkan C API but with quality of life improvements of C++

vk-simple-cpp Takes the current C headers and adds a few quality of life improvements while staying faithful to the original C API. Improvements: Enum

Charles Giessen 6 Feb 18, 2022
Variadic recursive expression templates which look like ordinary (possibly nested) containers.

Variadic resursive expressions with lazy evaluation which look like nested containers LazyExpression is a header-only library written in C++17. It imp

null 10 Jul 21, 2022
LSASS enumeration like pypykatz written in C-Lang

Enum-LSASS The idea behind this emulation is to simply do not invoke OpenProcess to get handle with appropriate rights but, use the already opened han

Kartik Durg 18 Jul 7, 2022
Well I'd like to test myself how good I am before making something massive :">

Pratice-Cpp Well I'd like to test myself how good I am before making something massive :"> Before I upload something special, that I'll release in my

Harshfeudal-Coding 2 May 6, 2022