ResetXPDR / DynamicLOD_ResetEdition

Other
26 stars 0 forks source link

Incompatible MSFS Version #2

Closed jamesbryan-tx closed 6 months ago

jamesbryan-tx commented 6 months ago

I cannot seem to get this app to work. Every time I load it up and start a flight, it reverts to read only mode and gives the status of an incompatible MSFS version. What is the app reading to determine this? I am using framegen mod and have replaced a couple of the DLSS dlls with latest versions. I have the steam addition of MSFS and as far as I know it is fully up to date.

jamesbryan-tx commented 6 months ago

I did some testing and confirmed that the replacement dlls are causing the issues. I was using version 3.5.10 (the latest) DLSS and DLSSG dlls from techpowerup. Switching back to the sim default version of the dlls seems to fix it. Can this be fixed in the app so that the latest dlls can be used?

jamesbryan-tx commented 6 months ago

Now it is not working with the original dlls. It seems like I can only get it to work after rebooting, and it only works one time. If I shut down the sim and then try to run it again, it won't work. So this appears to still be an issue either way. I assume it has something to do with the memory bindings?

jamesbryan-tx commented 6 months ago

With some further testing I am able to run the app consistently as long as I start MSFS the same way each time. Previously I was varying between starting from the Addons Linker or starting from the MSFS app shortcut directly. In my case, I have to start it from the Addons Linker only or else I will get the compatible version error.

Quijote41 commented 6 months ago

I am getting the same message. I load DLOD before MSFS and at fist DLOD shows correct values, but when I am finally loaded into the plane completely, I get the error message and there is no change to my LOD. I am using the SU15 beta which is so good that I almost don't need DLOD. But it was this update that appeared to kill DLOD....

ResetXPDR commented 6 months ago

Only just saw this. I will look into it.

ResetXPDR commented 6 months ago

Thanks for letting me know about this issue, which is also affecting one other user that I know of. It is interesting @jamesbryan-tx that changing the way MSFS starts determines whether it will work or not. I have been using 3.5.10 DLSS for all of my testing and have not come across the issue.

FYI, the app does the compatibility check by going to a known offset address in one of the modules that MSFS always loads, namely WwiseLibPCx64P.dll, and checking a few known MSFS settings for valid boundary conditions. eg. TLOD must always be greater than 10 and less than 400 or cloud quality can only ever be 0, 1, 2 or 3, corresponding with low, medium, high or ultra. If it fails any of these boundary tests it locks the app out of performing memory writes as a precaution in case of a changed memory map.

I just had a thought - have you manually set your TLOD higher than this in the userconfig.opt file as that could certainly cause the problem? If you have, try reducing it to be between 10 and 400 and see if that resolves the issue. Regardless of what you find, I will change future versions of the app to allow a higher TLOD than is selectable in the MSFS settings menu, maybe 1000?

ResetXPDR commented 6 months ago

@jamesbryan-tx and @Quijote41, please download the new test version of the app I have created here to try to identify this issue. Thanks.

Quijote41 commented 6 months ago

Hi, I downloaded and got the same error again. My UserCfg.opt file shows LOD of 2.0000 and Object LOD of 2.0000 - so the sim shows LOD of 200 in the graphics settings. BTW, I normally use VR with the Pimax Crystal. Can you give more complete instructions about the log file?

ResetXPDR commented 6 months ago

The log file is located in %appdata%\DynamicLOD_ResetEdition\log which is usually C:\Users\\AppData\Roaming\DynamicLOD_ResetEdition\log. Just copy and paste the first section up to where the memory tests finish of the latest log file here. It should look something like:

2024-02-21 17:49:34.472 [INF] ----------------------------------------------------------------------- 2024-02-21 17:49:34.489 [INF] [ App:InitLog ] DynamicLOD_ResetEdition started! Log Level: Debug Log File: ..\log\DynamicLOD_ResetEdition.log 2024-02-21 17:49:34.599 [INF] [ App:InitSystray ] Creating SysTray Icon ... 2024-02-21 17:49:34.735 [INF] [ ServiceController:Run ] Service starting ... 2024-02-21 17:49:34.741 [INF] [ IPCManager:WaitForSimulator ] Simulator started 2024-02-21 17:49:34.762 [INF] [ MobiSimConnect:Connect ] SimConnect Connection open 2024-02-21 17:49:34.762 [INF] [ IPCManager:WaitForConnection ] Connection not established - waiting 30s between Retries 2024-02-21 17:49:34.869 [INF] [ MobiSimConnect:SimConnect_OnOpen ] SimConnect OnOpen received 2024-02-21 17:49:40.184 [DBG] [ MobiSimConnect:SimConnect_Receiv ] Sending Ping to MobiFlight WASM Module 2024-02-21 17:49:40.295 [INF] [ MobiSimConnect:SimConnect_OnClie ] MobiFlight WASM Ping acknowledged - opening Client Connection 2024-02-21 17:49:40.401 [INF] [ MobiSimConnect:SimConnect_OnClie ] MobiFlight WASM Client Connection opened 2024-02-21 17:49:50.054 [DBG] [ MemoryManager:GetActiveDXVersion ] Steam MSFS version detected - DX12 2024-02-21 17:49:50.054 [DBG] [ MemoryManager:MemoryManager ] Trying offsetModuleBase: 0x004B2368 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] TLOD PC: 50 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] TLOD VR: 50 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] OLOD PC: 200 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] OLOD VR: 200 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] Cloud Quality PC: 3 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] Cloud Quality VR: 3 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] VR Mode: 0 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] Ansio Filter: 16 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:BoundaryTest ] TLOD: 512 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:MemoryManager ] Boundary tests passed - memory writes enabled 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address TLOD: 0x1D179DB0334 / 1999204188980 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address OLOD: 0x1D179DB0340 / 1999204188992 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address CloudQ: 0x1D179DB0378 / 1999204189048 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address TLOD VR: 0x1D179DB043C / 1999204189244 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address OLOD VR: 0x1D179DB0448 / 1999204189256 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address CloudQ VR: 0x1D179DB0480 / 1999204189312 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address VrMode: 0x1D179DB0318 / 1999204188952 2024-02-21 17:49:50.107 [DBG] [ MemoryManager:GetMSFSMemoryAddre ] Address FgMode: 0x1D179DB02EA / 1999204188906

Quijote41 commented 6 months ago

2024-02-22 14:39:38.828 [INF] ----------------------------------------------------------------------- 2024-02-22 14:39:38.841 [INF] [ App:InitLog ] DynamicLOD_ResetEdition started! Log Level: Debug Log File: ..\log\DynamicLOD_ResetEdition.log 2024-02-22 14:39:38.846 [INF] [ App:InitSystray ] Creating SysTray Icon ... 2024-02-22 14:39:38.956 [INF] [ ServiceController:Run ] Service starting ... 2024-02-22 14:39:38.957 [INF] [ IPCManager:WaitForSimulator ] Simulator not started - waiting 30s between Retries 2024-02-22 14:41:09.434 [ERR] [ MobiSimConnect:Connect ] Exception while opening SimConnect! (Exception: System.Runtime.InteropServices.COMException Error HRESULT E_FAIL has been returned from a call to a COM component.) 2024-02-22 14:41:09.435 [INF] [ IPCManager:WaitForConnection ] Connection not established - waiting 30s between Retries 2024-02-22 14:41:24.448 [INF] [ MobiSimConnect:Connect ] SimConnect Connection open 2024-02-22 14:41:52.336 [INF] [ MobiSimConnect:SimConnect_OnOpen ] SimConnect OnOpen received 2024-02-22 14:41:57.362 [DBG] [ MobiSimConnect:SimConnect_Receiv ] Sending Ping to MobiFlight WASM Module 2024-02-22 14:41:57.581 [INF] [ MobiSimConnect:SimConnect_OnClie ] MobiFlight WASM Ping acknowledged - opening Client Connection 2024-02-22 14:41:57.690 [INF] [ MobiSimConnect:SimConnect_OnClie ] MobiFlight WASM Client Connection opened 2024-02-22 14:42:09.727 [INF] [ IPCManager:WaitForSessionReady ] Session not ready - waiting 5s between Retries 2024-02-22 14:43:54.931 [DBG] [ MemoryManager:GetActiveDXVersion ] Steam MSFS version detected - DX11 2024-02-22 14:43:54.931 [DBG] [ MemoryManager:MemoryManager ] Trying offsetModuleBase: 0x004B2368 2024-02-22 14:43:54.950 [ERR] [ MemoryInterface:GetModuleAddress ] Exception System.ComponentModel.Win32Exception (5): Access is denied. at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) at System.Diagnostics.NtProcessManager.GetModules(Int32 processId, Boolean firstModuleOnly) at System.Diagnostics.Process.get_Modules() at DynamicLOD_ResetEdition.MemoryInterface.GetModuleAddress(String Name) in C:\Users\feb29\My Drive\WebContent\DynamicLOD_ResetEdition\DynamicLOD_ResetEdition\MemoryInterface.cs:line 22: Access is denied. 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] TLOD PC: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] TLOD VR: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] OLOD PC: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] OLOD VR: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] Cloud Quality PC: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] Cloud Quality VR: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] VR Mode: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] Ansio Filter: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:BoundaryTest ] TLOD: 0 2024-02-22 14:43:54.951 [DBG] [ MemoryManager:MemoryManager ] Boundary tests failed - possible MSFS memory map change 2024-02-22 14:43:54.952 [ERR] [ MemoryInterface:GetModuleAddress ] Exception System.ComponentModel.Win32Exception (5): Access is denied. at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) at System.Diagnostics.NtProcessManager.GetModules(Int32 processId, Boolean firstModuleOnly) at System.Diagnostics.Process.get_Modules() at DynamicLOD_ResetEdition.MemoryInterface.GetModuleAddress(String Name) in C:\Users\feb29\My Drive\WebContent\DynamicLOD_ResetEdition\DynamicLOD_ResetEdition\MemoryInterface.cs:line 22: Access is denied.

Quijote41 commented 6 months ago

The above is what I found in the log after starting a new session. I first loaded DLOD and then loaded MSFS - steam version. Everything looked good when I was on the runway ready to fly. DLOD showed a green Test Version. I opened MSFS settings to see what the LOD values were. I found that they were both set to 150 which I had done manually previously. Since I was on the ground, it was clear that DLOD wasn't changing the values. When I exited the settings menu and return to the flight, DLOD now showed the error message.

ResetXPDR commented 6 months ago

I've had one person report the same error message before as this: 2024-02-22 14:43:54.952 [ERR] [ MemoryInterface:GetModuleAddress ] Exception System.ComponentModel.Win32Exception (5): Access is denied. at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) at System.Diagnostics.NtProcessManager.GetModules(Int32 processId, Boolean firstModuleOnly) at System.Diagnostics.Process.get_Modules() at DynamicLOD_ResetEdition.MemoryInterface.GetModuleAddress(String Name) in C:\Users\feb29\My Drive\WebContent\DynamicLOD_ResetEdition\DynamicLOD_ResetEdition\MemoryInterface.cs:line 22: Access is denied.

It turned out they needed to run the app as administrator to get it working, so try that. I'll try and find out if they are still having to do this.

Quijote41 commented 6 months ago

Running as admin seems to have solved the problem. The green Test Version vanished, leaving that part of the screen blank. When I looked in settings, my LOD was 100 which was correct for a plane on the ground. I will try some flights and see what happens... Thanks! EDIT: I took a flight and everything seemed to work.

ResetXPDR commented 6 months ago

No worries. I don't know why this is happening with some users, like yourself, but I am glad there is a simple workaround to get it working for you. I'll update the readme so users experiencing this issue can try running in Admin mode. Thanks for getting back to me!