praydog / REFramework

Scripting platform, modding framework and VR support for all RE Engine games
https://cursey.github.io/reframework-book/
MIT License
2.74k stars 340 forks source link

Proton/WINE Build? #229

Closed elijahsgh closed 1 year ago

elijahsgh commented 2 years ago

Thanks so much for this tool. I wanted to use it with Proton/WINE. I have tried using WINEDLLOVERRIDES to get it to load but unfortunately, it doesn't work. The process crashes.

Would it be possible to build this against WINE/Proton's dinput8.dll?

Kaedras commented 2 years ago

I'm wondering if there's just an incompatibility with vkd3d. I got this error message: [error] Failed to create D3D12 Dummy DXGI SwapChain Tested with several builds, including the latest AppVeyor build as of writing, and the error message has always been the same. re2_framework_log.txt

Saancreed commented 2 years ago

I made an attempt at making this work with MHR and it appears that there are two issues here:

  1. DXVK doesn't implement CreateSwapChainForComposition, so this call always fails. In order to fix this, REFramework should retry with CreateSwapChainForHwnd if the first attempt fails (and perhaps log a warning if so).
  2. DXVK wraps returned swapchain with a dispatcher to fix Origin overlay. This prevents REFramework from finding command queue offset because there is one more level of memory indirection. We can probably work around this by introducing a dxvk.conf config option that disables the wrapper and returns VKD3D's swapchain directly.

For now, a hack like this will let REFramework load (and, afaict, work) properly, though it will crash on exit because it's obviously wrong and broken otherwise (there is no warranty, don't use it with other games):

dxvk-reframework-hack.diff.txt

Resulting dxgi.dll can be dropped next to the game binary and it will automatically be loaded instead of the one shipped with Proton.

Screenshot_20220126_202125

praydog commented 2 years ago

I made an attempt at making this work with MHR and it appears that there are two issues here:

1. DXVK doesn't implement `CreateSwapChainForComposition`, so [this call](https://github.com/praydog/REFramework/blob/a448631d74e24973b235d23fe6984bd7585d56b6/src/D3D12Hook.cpp#L129) always fails. In order to fix this, REFramework should retry with `CreateSwapChainForHwnd` if the first attempt fails (and perhaps log a warning if so).

2. DXVK wraps returned swapchain with a dispatcher to [fix Origin overlay](https://github.com/doitsujin/dxvk/issues/1996). This prevents REFramework from finding command queue offset because there is one more level of memory indirection. We can probably work around this by introducing a `dxvk.conf` config option that disables the wrapper and returns VKD3D's swapchain directly.

For now, a hack like this will let REFramework load (and, afaict, work) properly, though it will crash on exit because it's obviously wrong and broken otherwise (there is no warranty, don't use it with other games):

dxvk-reframework-hack.diff.txt

Resulting dxgi.dll can be dropped next to the game binary and it will automatically be loaded instead of the one shipped with Proton.

Screenshot_20220126_202125

I've addressed your first point in 29e407f0119e84bb44c5d59121e5542fd4498252.

Please let me know if this allows VKD3D to get further on in the hooking stage.

praydog commented 2 years ago

I've attempted to address the second problem in 066d6993fd2b6561f998a3ce6cf2367958ba04ed

I can see the REF overlay pop up and it's interactable, but after the initial loading screen with Magnamalo, it seems to crash. I don't know if this is because I'm on Windows using DXVK and VKD3D. Maybe some different behavior happens on Linux?

Saancreed commented 2 years ago

With only 29e407f0119e84bb44c5d59121e5542fd4498252, I see [error] Failed to find command queue offset in the log, then an attempt to hook D3D11 and shortly afterwards the game dies for some other reason. I can patch DXVK's DXGI to achieve the result described below, making 066d6993fd2b6561f998a3ce6cf2367958ba04ed unnecessary to proceed in this case.

With 066d6993fd2b6561f998a3ce6cf2367958ba04ed (or DXGI patch) it sometimes works. When it does, I can see the menu, load into the village, activate free cam and fly around. When it doesn't, I don't even see the first frame of loading screen, just black for a few seconds while the dump file is being written to disk. Not sure what's the problem here but I'm afraid debugging that one is above my skill level :confused:

Here is the dump file and log files to compare: reframework_crash.zip re2_framework_log-crash.txt re2_framework_log-working.txt

Seems to have a higher chance of working when I disable MangoHud Vulkan layer so maybe some kind of race condition?

Screenshot_20220127_030258

Oh, and it still crashes on exit like this on successful attempts:

Screenshot_20220127_030432

Kaedras commented 2 years ago

I've done some testing with the latest version of REFramework and haven't had any issues when using proton-experimental with the exception of the crash when closing the game that was mentioned in the previous comment.

When switching to proton-7.0rc6-GE-1 the game crashes after a few seconds, but I don't know whether that's an issue with REFramework or proton-GE.

re2_framework_log-proton-ge.zip re2_framework_log.zip reframework_crash-proton-ge.zip

vickyorlo commented 2 years ago

Currently, when using the appveyor build of REFramework, I cannot get the main menu to appear or the plugin folder to be created. Seems like a regression to the state before the two commits mentioned here.

elijahsgh commented 2 years ago

How are people loading this now? I updated to Proton 7 and copied the dinput8.dll but it still doesn't get loaded. WINEDLLOVERRIDES?

I got it to show. Latest version with WINEDLLOVERRIDES="dinput8.dll=n,b" %command% seems to work. It does hang on exit but it seems to do that for me even without the WINEDLLOVERRIDES line above and with Proton 7.0-1

vickyorlo commented 2 years ago

With WINEDLLOVERRIDES it definitely initializes (I could have realized that was my issue...), but I cannot get past the initial loading screen - I get a similar runtime error message as people have reported for the game closing, but the game's barely started. Proton version doesn't seem to matter. Without the override env var the game starts just fine.

E: Log seems quite boring, but here it is anyway: re2_framework_log.txt

E2: I somehow managed to get it to crash by... seemingly just pressing buttons after it launches, with a "failed to initialize REFramework on DX12" error. Log and dump below. re2framework_log.zip

Dwyriel commented 2 years ago

Currently, when using the appveyor build of REFramework, I cannot get the main menu to appear or the plugin folder to be created. Seems like a regression to the state before the two commits mentioned here.

I'm not sure how old the appveyor build is, but if you get one of the nightly after the mentioned commits were made it should work. I'm currently using version 1.1.197 I think and it's working great, sometimes it crashes on startup or just don't initialize but rarely, and it crashes when you try to close the game but it doesn't affect anything, game still saves correctly etc.

I'd recommend getting the version I mentioned from Nightly Developer Builds and trying again, just keep in mind it might not open properly every time.

vickyorlo commented 2 years ago

I actually got it to work, and the answer was in front of me the whole time - disabling MangoHud makes it go through the loading screen.... sometimes, and it seems like everything works now. But at least I'm caught up to everybody else in the thread.

ThatBigBirb commented 2 years ago

Using the 1.1.202, 1.1.201, 1.1.199 nightly builds caused a memory leak which lead to system seizure within ~35 minutes. The crashes stopped after removing the mod.

re2_framework_log.txt

I haven't tested other proton version combinations, just 7.1 GE-2 that I currently play on.

SohumB commented 2 years ago

I've been trying to get this to work on proton-7.0 and REFramework 1.2, and it fails to initialise. Log attached. re2_framework_log.txt.zip. Key unique error lines:

[REFramework] [error] Failed to initialize REFramework on DirectX 12
[REFramework] [error] Null Command Queue
[REFramework] [error] Exception thrown in REMethodDefinition::invoke for getTrg
cmorton95 commented 2 years ago

I've been trying to get this to work on proton-7.0 and REFramework 1.2, and it fails to initialise. Log attached. re2_framework_log.txt.zip. Key unique error lines:

[REFramework] [error] Failed to initialize REFramework on DirectX 12
[REFramework] [error] Null Command Queue
[REFramework] [error] Exception thrown in REMethodDefinition::invoke for getTrg

I am having a similar (or possibly the same?) issue playing MHR Sunbreak with REF, however my mods do appear to load and work as intended - it's just the overlay doesn't appear. Attempting to load on Proton GE 7-24 using VKD3D with WINEDLLOVERRIDES="dinput8=n,b". Perhaps this issue is relevant as well: #433.

It spams the log with the "Null Command Queue" error message, causing it to rapidly increase in size. "Failed to initialize REFramework on DirectX 12" is printed near the start of the log.

Log file below, truncated to reduce size (truncated text consists entirely of repeating lines as described above). re2_framework_log.tar.gz

praydog commented 2 years ago

Perhaps someone more familiar with the internals of VKD3D can chime in here. I had fixed the command queue problem months ago, maybe they changed it again recently?

vickyorlo commented 2 years ago

Have you tried using Proton Experimental? Seems to work perfectly for me with nightly RE2Framework.

cmorton95 commented 2 years ago

Have you tried using Proton Experimental? Seems to work perfectly for me with nightly RE2Framework.

Aha! After much trial and error I have managed to get Experimental working - thank you for the suggestion. I needed to add a couple more launch parameters to get it to work, specifically PROTON_ENABLE_NVAPI=1 and PROTON_HIDE_NVIDIA_GPU=0. Not entirely sure why, but otherwise it would crash as soon as I got to the loading save game screen.

So my final launch command, for anyone who might have the same issue (and is also running an nvidia gpu): WINEDLLOVERRIDES="dinput8=n,b" PROTON_ENABLE_NVAPI=1 PROTON_HIDE_NVIDIA_GPU=0 %command%

Combined with Experimental gets the overlay to appear and everything seems to work properly.

cmorton95 commented 2 years ago

Well, that was short-lived. Booted up today and the game has updated, now the same error is happening as before with no overlay displayed.

Tried the nightly but same issue. re2_framework_log.tar.gz

SohumB commented 2 years ago

okay, I figured out my issue with Proton Experimental was an outdated nvidia driver. Now on Experimental, I get a few screens into the loading, with the overlay interface, but then a crash. PROTON_ENABLE_NVAPI and PROTON_HIDE_NVIDIA_GPU do not seem to affect me.

Key lines from the log:

[2022-07-08 23:49:17.057] [REFramework] [error] Failed to initialize REFramework on DirectX 12                                                                                                                       
...
[2022-07-08 23:49:29.243] [REFramework] [info] Found 353 REGlobals                                                                                                                                                   
[2022-07-08 23:49:29.243] [REFramework] [info] Found 0 getters                                                                                                                                                       
[2022-07-08 23:49:29.243] [REFramework] [info] Finished REGlobals initialization                                                                                                                                     
[2022-07-08 23:49:29.243] [REFramework] [info] REFrameworkConfig::on_initialize()                                                                                                                                    
[2022-07-08 23:49:29.243] [REFramework] [info] IntegrityCheckBypass::on_initialize()                                                                                                                                 
[2022-07-08 23:49:29.243] [REFramework] [info] [VM::update_pointers] Updating...                                                                                                                                     
[2022-07-08 23:49:29.594] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_type_db_offset: 35d8                                                                                                                          
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_static_tbl_offset: 35a8                                                                                                                       
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] TDB Version: 71                                                                                                                                 
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] TDB: 1491ca880                                                                                                                                  
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_global_context: 14e956a08                                                                                                                     
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_get_thread_context: 143b420e0                                                                                                                 
[2022-07-08 23:49:34.598] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:36.592] [REFramework] [info] [VM::update_pointers] Unable to find method inside invoke table.                                                                                                      
[2022-07-08 23:49:36.593] [REFramework] [error] [IntegrityCheckBypass]: Could not find very_cool_type!                                                                                                               
[2022-07-08 23:49:36.595] [REFramework] [error] [IntegrityCheckBypass]: Could not find very_awesome_type!                                                                                                            
[2022-07-08 23:49:36.595] [REFramework] [info] PositionHooks::on_initialize()                                                                                                                                        
[2022-07-08 23:49:39.602] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:44.608] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:46.998] [REFramework] [info] UpdateTransform: 143b34110                                                                                                                                            
[2022-07-08 23:49:46.998] [REFramework] [info] Attempting to hook 0x143b34110->0xa7bc90                                                                                                                              
[2022-07-08 23:49:46.998] [REFramework] [info] Hook init successful 0x143b34110->0xa7bc90                                                                                                                            
[2022-07-08 23:49:47.017] [REFramework] [info] Hooked 143b34110->a7bc90                                                                                                                                              
[2022-07-08 23:49:47.021] [REFramework] [error] Exception occurred: c0000005                                                                                                                                         
[2022-07-08 23:49:47.021] [REFramework] [error] RIP: ca32d3                                                                                                                                                          
[2022-07-08 23:49:47.021] [REFramework] [error] RSP: 10bdef550                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RCX: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] RDX: 10bdef840                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] R8: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] R9: 170088b00                                                                                                                                                        
[2022-07-08 23:49:47.021] [REFramework] [error] R10: b4                                                                                                                                                              
[2022-07-08 23:49:47.021] [REFramework] [error] R11: 10bdef790                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] R12: f5b910                                                                                                                                                          
[2022-07-08 23:49:47.021] [REFramework] [error] R13: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] R14: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] R15: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] RAX: 32eb8930c489                                                                                                                                                    
[2022-07-08 23:49:47.021] [REFramework] [error] RBX: 10bdef840                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RBP: 10bdef650                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RSI: 1491cab80                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RDI: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] EFLAGS: 10246                                                                                                                                                        
[2022-07-08 23:49:47.021] [REFramework] [error] CS: 33                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] DS: 2b                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] ES: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] FS: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] GS: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] SS: 2b                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] Module: a50000 Z:\BULK\.steam\debian-installation\steamapps\common\MonsterHunterRise\dinput8.dll                                                                     
[2022-07-08 23:49:47.021] [REFramework] [error] Attempting to write dump to Z:\BULK\.steam\debian-installation\steamapps\common\MonsterHunterRise\reframework_crash.dmp 

re2.zip

praydog commented 2 years ago

okay, I figured out my issue with Proton Experimental was an outdated nvidia driver. Now on Experimental, I get a few screens into the loading, with the overlay interface, but then a crash. PROTON_ENABLE_NVAPI_ andPROTON_HIDE_NVIDIAGPU do not seem to affect me.

Key lines from the log:

[2022-07-08 23:49:17.057] [REFramework] [error] Failed to initialize REFramework on DirectX 12                                                                                                                       
...
[2022-07-08 23:49:29.243] [REFramework] [info] Found 353 REGlobals                                                                                                                                                   
[2022-07-08 23:49:29.243] [REFramework] [info] Found 0 getters                                                                                                                                                       
[2022-07-08 23:49:29.243] [REFramework] [info] Finished REGlobals initialization                                                                                                                                     
[2022-07-08 23:49:29.243] [REFramework] [info] REFrameworkConfig::on_initialize()                                                                                                                                    
[2022-07-08 23:49:29.243] [REFramework] [info] IntegrityCheckBypass::on_initialize()                                                                                                                                 
[2022-07-08 23:49:29.243] [REFramework] [info] [VM::update_pointers] Updating...                                                                                                                                     
[2022-07-08 23:49:29.594] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_type_db_offset: 35d8                                                                                                                          
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_static_tbl_offset: 35a8                                                                                                                       
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] TDB Version: 71                                                                                                                                 
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] TDB: 1491ca880                                                                                                                                  
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_global_context: 14e956a08                                                                                                                     
[2022-07-08 23:49:29.906] [REFramework] [info] [VM::update_pointers] s_get_thread_context: 143b420e0                                                                                                                 
[2022-07-08 23:49:34.598] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:36.592] [REFramework] [info] [VM::update_pointers] Unable to find method inside invoke table.                                                                                                      
[2022-07-08 23:49:36.593] [REFramework] [error] [IntegrityCheckBypass]: Could not find very_cool_type!                                                                                                               
[2022-07-08 23:49:36.595] [REFramework] [error] [IntegrityCheckBypass]: Could not find very_awesome_type!                                                                                                            
[2022-07-08 23:49:36.595] [REFramework] [info] PositionHooks::on_initialize()                                                                                                                                        
[2022-07-08 23:49:39.602] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:44.608] [REFramework] [info] Windows message hook is still intact, ignoring...                                                                                                                     
[2022-07-08 23:49:46.998] [REFramework] [info] UpdateTransform: 143b34110                                                                                                                                            
[2022-07-08 23:49:46.998] [REFramework] [info] Attempting to hook 0x143b34110->0xa7bc90                                                                                                                              
[2022-07-08 23:49:46.998] [REFramework] [info] Hook init successful 0x143b34110->0xa7bc90                                                                                                                            
[2022-07-08 23:49:47.017] [REFramework] [info] Hooked 143b34110->a7bc90                                                                                                                                              
[2022-07-08 23:49:47.021] [REFramework] [error] Exception occurred: c0000005                                                                                                                                         
[2022-07-08 23:49:47.021] [REFramework] [error] RIP: ca32d3                                                                                                                                                          
[2022-07-08 23:49:47.021] [REFramework] [error] RSP: 10bdef550                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RCX: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] RDX: 10bdef840                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] R8: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] R9: 170088b00                                                                                                                                                        
[2022-07-08 23:49:47.021] [REFramework] [error] R10: b4                                                                                                                                                              
[2022-07-08 23:49:47.021] [REFramework] [error] R11: 10bdef790                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] R12: f5b910                                                                                                                                                          
[2022-07-08 23:49:47.021] [REFramework] [error] R13: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] R14: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] R15: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] RAX: 32eb8930c489                                                                                                                                                    
[2022-07-08 23:49:47.021] [REFramework] [error] RBX: 10bdef840                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RBP: 10bdef650                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RSI: 1491cab80                                                                                                                                                       
[2022-07-08 23:49:47.021] [REFramework] [error] RDI: 0                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] EFLAGS: 10246                                                                                                                                                        
[2022-07-08 23:49:47.021] [REFramework] [error] CS: 33                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] DS: 2b                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] ES: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] FS: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] GS: 0                                                                                                                                                                
[2022-07-08 23:49:47.021] [REFramework] [error] SS: 2b                                                                                                                                                               
[2022-07-08 23:49:47.021] [REFramework] [error] Module: a50000 Z:\BULK\.steam\debian-installation\steamapps\common\MonsterHunterRise\dinput8.dll                                                                     
[2022-07-08 23:49:47.021] [REFramework] [error] Attempting to write dump to Z:\BULK\.steam\debian-installation\steamapps\common\MonsterHunterRise\reframework_crash.dmp 

re2.zip

Make sure you've updated to the nightly build. https://github.com/praydog/REFramework-nightly/releases/

The errors in your log indicate you're using an old version of the mod with a new version of MHRise, or the other way around.

v1ld commented 2 years ago

REFramework works fine in Linux/Proton for me even without the experimental Proton release, in Proton-7.0-3.

But if you're using MangoHUD with REFramework, make sure MangoHUD's window isn't hidden at startup. The "no_display" option should not be enabled in the MangoHUD config or the REF window will not show.

Further, you must let the MangoHUD window stay up until the REF window shows up. If you hide it via a keybind before REF has shown up, REF will not show up. There is some weird interaction between the two.

Other than that all non-plugin REF mods JustWork(tm). Which is fantastic.

I've put more details of the options I'm using on Linux in the mod's comments page, but here's my Steam launch command which also enables DLSS on Linux - works just fine in Proton 7.0-3 on EndeavourOS, up to date.

MANGOHUD=1 VKD3D_CONFIG=dxr PROTON_ENABLE_NVAPI=1 WINEDLLOVERRIDES="dinput8=n,b" gamemoderun %command%

cmorton95 commented 2 years ago

I tried everything you mentioned to no avail, but oddly the thing that ended up working was removing the PROTON_ENABLE_NVAPI and PROTON_HIDE_NVIDIA_GPU launch commands. I have no idea why I needed them yesterday, and they stop it working today. I guess this is the Linux experience I chose.

EDIT: And now it's crashing on startup again or not displaying, I really have no idea what's going on. It honestly must be unrelated to this stuff and is some sort of race condition or caching issue or something. I'm out of ideas.

the-science-guy commented 2 years ago

The game crashed on "Loading... Do not quit the game" (error 0x2000000) after the Sunbreak update. I got it fully working as well as mods with the following steps:

  1. Go to Properties > Local Files. Delete the following files shader.cache2 vkd3d-proton.cache vkd3d-proton.cache.write dinput8.dll
  2. Go to .../steamapps/compatdata/ and delete the 1446780 proton prefix folder.
  3. Go to .../steamapps/shadercache/ and delete the 1446780 shader cache folder.
  4. Launch the game to compile shaders from scratch and get to the main menu, quit afterwards
  5. Download the latest nightly build MHRise.zip REFramework and place the dinput8.dll into Properties > Local Files
  6. Run the game with the dll override launch option inside Steam mangohud gamemoderun WINEDLLOVERRIDES="dinput8.dll=n,b" %command%

This got my mods to consistently load together with the REFramework Overlay. image

SohumB commented 2 years ago

The errors in your log indicate you're using an old version of the mod with a new version of MHRise, or the other way around.

Thank you, that hint helped. Now I'm testing on the nightly reframework, nvidia driver 510.73, and latest MHR. On my setup, Proton GE-20 doesn't load reframework, but Proton Experimental does. On top of that I seem to need DXVK_FILTER_DEVICE_NAME="Quadro P2000" and PROTON_ENABLE_NVAPI=1.

That puts my full launch options as: DXVK_FILTER_DEVICE_NAME="Quadro P2000" PROTON_ENABLE_NVAPI=1 VKD3D_CONFIG=dxr WINEDLLOVERRIDES="dinput8=n,b" gamemoderun prime-run %command%.

OnePunkArmy commented 2 years ago

The game crashed on "Loading... Do not quit the game" after the Sunbreak update. I got it fully working as well as mods with the following steps:

My game now crashes once the Magna/Malz splash screen shows up, and the REF window doesn't even appear anymore. I previously was able to get as far as the Health Warning screen, but after following your steps, I'm crashing sooner. re2_framework_log.txt

the-science-guy commented 2 years ago

Have you cleared all the mentioned caches and started the game with no dinput8.dll present before re-applying the override as well as copying the latest nightly build of the dinput8.dll into the game folder? A friend managed to duplicate my results following along. Maybe it is due to the combination of my described steps and the latest custom Proton-GE.

What Proton Version are you using? Does the game launch without the DLL override and/or when the dinput8.dll is not present in the game directory?

OnePunkArmy commented 2 years ago

I followed the steps as you listed. I deleted the two folders, allowed the game to run once, placed the latest nightly dinput8 file in the folder, then entered the launch command. I have my game set to launch with Proton Experimental.

the-science-guy commented 2 years ago

I followed the steps as you listed. I deleted the two folders, allowed the game to run once, placed the latest nightly dinput8 file in the folder, then entered the launch command. I have my game set to launch with Proton Experimental.

Do you also have mangohud and gamemode installed? Not that their absence is causing the issue here with the launch options. If you don't have them just omit those launch options. Proton experimental 7-0 from July 6th runs fine on my end with the steps. image Are your graphics drivers, vulkan, vkd3d etc. up to date?

OnePunkArmy commented 2 years ago

I have neither, just REF. I removed the two from the launch command, but nothing changed.

I'm pretty sure my drivers are up to date? I just allow the Steam Deck to keep itself automatically updated.

Adding log file. re2_framework_log.txt

the-science-guy commented 2 years ago

I have neither, just REF. I removed the two from the launch command, but nothing changed.

I'm pretty sure my drivers are up to date? I just allow the Steam Deck to keep itself automatically updated.

Adding log file. re2_framework_log.txt

I compared our logs and it appears that the Steam Deck does not get past the DirectX 12 hook error, while on my system it does. I omitted duplicate lines of the error as it appears a few dozen times.

[2022-07-10 03:21:59.560] [REFramework] [info] Resuming 592
[2022-07-10 03:21:59.628] [REFramework] [info] Hooked DirectX 12
[2022-07-10 03:21:59.628] [REFramework] [error] Failed to initialize REFramework on DirectX 12
.
.
[2022-07-10 03:22:01.552] [REFramework] [error] Failed to initialize REFramework on DirectX 12
[2022-07-10 03:22:01.586] [REFramework] [info] Attempting to initialize DirectX 12
[2022-07-10 03:22:01.586] [REFramework] [info] [D3D12] Creating command allocator...
[2022-07-10 03:22:01.586] [REFramework] [info] [D3D12] Creating command list...
[2022-07-10 03:22:01.586] [REFramework] [info] [D3D12] Creating RTV descriptor heap...
[2022-07-10 03:22:01.586] [REFramework] [info] [D3D12] Creating SRV descriptor heap...
[2022-07-10 03:22:01.586] [REFramework] [info] [D3D12] Creating render targets...
[2022-07-10 03:22:01.586] [REFramework] [info] [D3D12] Back buffer format is 28
[2022-07-10 03:22:01.586] [REFramework] [info] [D3D12] Initializing ImGui...
[2022-07-10 03:22:01.586] [REFramework] [info] Initializing WindowsMessageHook
[2022-07-10 03:22:01.594] [REFramework] [info] Hooked Windows message handler
[2022-07-10 03:22:01.594] [REFramework] [info] Resuming 308
.
.
[2022-07-10 03:22:01.595] [REFramework] [info] Resuming 584
[2022-07-10 03:22:01.595] [REFramework] [info] Entering DInputHook::hook().
[2022-07-10 03:22:01.595] [REFramework] [info] Got DirectInput8Create 0xa609c0
[2022-07-10 03:22:01.595] [REFramework] [info] Got IDirectInput 0x5ba80468
[2022-07-10 03:22:01.609] [REFramework] [info] Got IDirectInputDevice 0x5bbd0a50
[2022-07-10 03:22:01.609] [REFramework] [info] Attempting to hook 0x3080543c0->0xa599b0
[2022-07-10 03:22:01.609] [REFramework] [info] Hook init successful 0x3080543c0->0xa599b0
[2022-07-10 03:22:01.617] [REFramework] [info] Hooked 3080543c0->a599b0
[2022-07-10 03:22:01.617] [REFramework] [info] DInputHook hooked successfully.
[2022-07-10 03:22:01.617] [REFramework] [info] Starting game data initialization thread
[2022-07-10 03:22:01.617] [REFramework] [info] REFramework initialized

Here are your last few lines of the log file as the error does not get past the DirectX 12 hook error

[2022-07-09 18:06:17.825] [REFramework] [info] Resuming 580
[2022-07-09 18:06:17.863] [REFramework] [info] Hooked DirectX 12
[2022-07-09 18:06:17.863] [REFramework] [error] Failed to initialize REFramework on DirectX 12
[2022-07-09 18:06:17.863] [REFramework] [error] Exception occurred: c0000005
[2022-07-09 18:06:17.863] [REFramework] [error] RIP: 7fbc5f38d6f1
[2022-07-09 18:06:17.863] [REFramework] [error] RSP: 5bb6ea60
[2022-07-09 18:06:17.863] [REFramework] [error] RCX: 1
[2022-07-09 18:06:17.863] [REFramework] [error] RDX: 7fbbc40264b0
[2022-07-09 18:06:17.863] [REFramework] [error] R8: 0
[2022-07-09 18:06:17.863] [REFramework] [error] R9: 7ffc6a7571b0
[2022-07-09 18:06:17.863] [REFramework] [error] R10: 90886
[2022-07-09 18:06:17.863] [REFramework] [error] R11: 3e7
[2022-07-09 18:06:17.863] [REFramework] [error] R12: 0
[2022-07-09 18:06:17.863] [REFramework] [error] R13: 7fbc502072e0
[2022-07-09 18:06:17.863] [REFramework] [error] R14: 0
[2022-07-09 18:06:17.863] [REFramework] [error] R15: 7fbc502072e0
[2022-07-09 18:06:17.863] [REFramework] [error] RAX: 0
[2022-07-09 18:06:17.863] [REFramework] [error] RBX: 5bb6f140
[2022-07-09 18:06:17.863] [REFramework] [error] RBP: 7fbbc4086b80
[2022-07-09 18:06:17.863] [REFramework] [error] RSI: 7f9ddec0
[2022-07-09 18:06:17.864] [REFramework] [error] RDI: 7fbbc4086b80
[2022-07-09 18:06:17.864] [REFramework] [error] EFLAGS: 10206
[2022-07-09 18:06:17.864] [REFramework] [error] CS: 33
[2022-07-09 18:06:17.864] [REFramework] [error] DS: 2b
[2022-07-09 18:06:17.864] [REFramework] [error] ES: 0
[2022-07-09 18:06:17.864] [REFramework] [error] FS: 0
[2022-07-09 18:06:17.864] [REFramework] [error] GS: 0
[2022-07-09 18:06:17.864] [REFramework] [error] SS: 2b
[2022-07-09 18:06:17.864] [REFramework] [error] Module: Unknown
[2022-07-09 18:06:17.864] [REFramework] [error] Attempting to write dump to Z:\home\deck\.local\share\Steam\steamapps\common\MonsterHunterRise\reframework_crash.dmp

I am not sure why it behaves like this on your Steam Deck and don't know how to fix it without having a Steam Deck myself to test things on. Hopefully someone else can help you out with this info I found. Maybe you could try if Custom Proton-GE might work?

OnePunkArmy commented 2 years ago

Tried again using the new build that was posted 2 hours ago. Still no dice. re2_framework_log.txt

praydog commented 2 years ago

Tried again using the new build that was posted 2 hours ago. Still no dice. re2_framework_log.txt

Temporarily delete any REFramework mods you're using.

Start with the plugins. Delete the charm editor in reframework/plugins and try again. I've also heard REFramework Direct2D (reframework-d2d.dll) is not compatible with Proton. If that doesn't work. Delete all of your scripts in reframework/autorun. If that works, try and narrow down the script causing it and I might be able to come up with something.

OnePunkArmy commented 2 years ago

I've also heard REFramework Direct2D (reframework-d2d.dll) is not compatible with Proton.

This is it. I had one mod using Direct2D. Removing Direct2D and that mod got it working. Luckily the mod creator uploaded a non-D2D version, and that one works.

purpasmart96 commented 2 years ago

Unfortunately for me re-framework doesn't even produce a crash log for me, It gives me error 0x2000000 in the mhrise crash report dialog. Doing some digging in the generated crash report says it tried to access invalid memory.

Z:\mnt\gamedrive0\SteamLibrary\steamapps\common\MonsterHunterRise\MonsterHunterRise.exe ExceptionPointer: 000000014EF6E970 ExceptionRecord: ExceptionCode : C0000005 ExceptionFlags : 00000000 ExceptionAddress: 000000015E851EE6

the-science-guy commented 2 years ago

Got the same error after the Sunbreak Update, did not check if REframework had a log though. Did you try https://github.com/praydog/REFramework/issues/229#issuecomment-1179620995 ?

purpasmart96 commented 2 years ago

Got the same error after the Sunbreak Update, did not check if REframework had a log though. Did you try #229 (comment) ?

I have now,It works. I just needed WINEDLLOVERRIDES="dinput8.dll=n,b" for it to work, I did not need to delete any files or folders.

minilandl commented 1 year ago

While the overlay was able to load fine after setting the DLL overrideas a launch option

On resident evil 2 openxr and openvr were not detected in the overlay.

Even though I believe proton has support for both imgur-mFmjHfJ

minilandl commented 1 year ago

While the overlay was able to load fine after setting the DLL overrideas a launch option

On resident evil 2 openxr and openvr were not detected in the overlay.

Even though I believe proton has support for both imgur-mFmjHfJ

Adding to my previous comments it seems until the following is implemented in proton it is unlikely that this and other mods will work on Linux through proton https://github.com/ValveSoftware/Proton/issues/4121