Jump to content

Recommended Posts

Posted

Recently I was desperately trying anything to get NOLF 1 working for me. I had tried all the known fixes and even different packs that were out there. So with the help of Claude AI, I had it help me troubleshoot where exactly the problems were causing the crashes, and we narrowed it down to quite a few things.  Some of the fixes are what is already known, but I took a different approach entirely using powershell to fix them.


I think the most effective fix was having Claude help code an alternative dinput.dll that will trick the game into only seeing 2 HID devices; a keyboard and a mouse. Its amazing to not have to go one-by-one through device manager disabling HIDs or unplugging things to find what's crashing the game. The compiled version of the dll and the sourcecode will be attached. 

Compatibility modes in Windows 11 24H2 are broken. If you need to remove compatibility settings, power shell command is below. Be sure to change the directory

Quote

WINXPSP2 is loading AcLayers.DLL with the Windows XP compatibility shim — and that shim is broken on Windows 11 24H2. It's crashing inside AcLayers at the same offset every time because the XP shim tries to patch things that no longer exist in the 24H2 kernel.

The fix is to remove all compatibility flags from lithtech.exe entirely and let it run without any shims:
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" -Name "C:\Games\NOLF_3dsl\lithtech.exe" -Force

Then right-click lithtech.exe → Properties → Compatibility tab → uncheck everything and click Apply. This removes the WINXPSP2 shim from both the registry and the UI.

Disable SEHOP for lithtech.exe

Quote

$key = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\lithtech.exe"

New-Item -Path $key -Force

New-ItemProperty -Path $key -Name "DisableExceptionChainValidation" -Value 1 -PropertyType DWord -Force

 

When monitoring with procmon, it was discovered that there were a few things that were looping, causing lithtech.exe to hang and never crash. 
 

Quote

# DirectInput compatibility entry for lithtech.exe (stops calibration registry loop)
New-Item -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\DirectInput\Compatibility\LITHTECH.EXE3AE746D9000C1000" -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\DirectInput\Compatibility\LITHTECH.EXE3AE746D9000C1000" -Name "Flags" -Value 0x10 -PropertyType DWord -Force

# Joystick registry key (stops infinite joystick enumeration loop on 24H2)

New-Item -Path "HKCU:\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick" -Force
New-Item -Path "HKCU:\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\CurrentType" -Force

# AppModel lookaside key (stops second half of the enumeration loop)
New-Item -Path "HKLM:\SOFTWARE\Microsoft\AppModel\Lookaside\user\System\CurrentControlSet\Control" -Force

# DirectInput device path (stops DirectInput calibration loop)

New-Item -Path "HKCU:\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\DirectInput" -Force


After all of these, I was able to launch the game and play it, without any crashing issues or the game hanging on exit which I've seen quite a few mentions on. It is probably also worth mentioning that Modernizer is still required. Hope this helps someone else out there 🙂

dinput.dll_fix.7z

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines Privacy Policy.