RetroBat-Official / retrobat-setup

Configure and build the RetroBat Setup
https://www.retrobat.org
Other
104 stars 16 forks source link

“Refresh Memory Pages State” not being passed to Xenia Canary #132

Closed udance4ever closed 1 month ago

udance4ever commented 1 month ago

Steps to Reproduce:

  1. install RetroBat
  2. set default emulator for Xbox 360 to XENIA-CANARY
  3. download Ninja Gaiden II to roms/xbox360
  4. for this title, set Advanced Game Options -> Emulation -> REFRESH MEMORY PAGES STATE to YES
  5. boot game
  6. notice character models are out of whack (quite obvious in first cut scene where Sonja’s eyeballs are floating mid air!)
  7. quit title
  8. open emulators/xenia-canary/xenia-canary.config.toml in Notepad
  9. change clear_memory_page_state to true
  10. boot game again
  11. observe character models are now correct (no more graphical glitches)
  12. open emulators/xenia-canary/xenia-canary.config.toml in Notepad
  13. change clear_memory_page_state to false
  14. verify in Advanced Game Options REFRESH MEMORY PAGES STATE is still set to YES
  15. boot game
  16. be entertained by floating eyeballs again 👀 lol

I don’t know if RetroBat is setting other options correctly - this is the first custom config I’ve tried to fix a game.

getupor commented 1 month ago

Hello No problem here with RetroBat 6.3, while using the option from the RetroBat menu While changing to "NO" on the same menu, some parts of the body are missing

2024-07-19_20h06_41 2024-07-19_20h11_46 2024-07-19_20h11_36

udance4ever commented 1 month ago

hmm - I’ll run though my reproduction steps again when I reboot into Windows.

You are running xenia-canary not xenia right?

how else might we troubleshoot this issue?

Tartifless commented 1 month ago

Option is working fine here, setting to yes turns option to true in the toml file, and setting to NO turns it to false.

Are you using a recent version of xenia ? Is the setting located in the GPU section of the toml file ?

udance4ever commented 1 month ago

RetroBat 6.3.0 & Xenia Canary downloaded off GitHub (5d3240d)

I launched the game and verified the timestamp of xenia-canary.config.toml matches the launch time (so it is being written to).

The Xenia generator is not changing the following line in xenia-canary.config.toml to “true” (or in actuality, what it appears to be doing is writing “false”):

clear_memory_page_state = false

The code for Xenia.Generator.cs (C# is quite readible - I’m impressed!)

https://github.com/RetroBat-Official/emulatorlauncher/blob/860d1768480bb6dd63ef74e7632f8763fbe8de85/emulatorLauncher/Generators/Xenia.Generator.cs#L228-L234

looks correct at first glance.

If you think it’s easy to show me how to get a C# debugger up and running and set a breakpoint, I can check what the isOptSet() method is returning.

I suspect it’s false even though the option is set in ES just like your screenshot above.

udance4ever commented 1 month ago

never mind. for some reason after rebooting and/or upgrading to 6.3.0, the option got set back to “AUTO” - i set it back to “ON” and it works now - now we’re good to go! 🤺 thank you!

Tartifless commented 1 month ago

never mind. for some reason after rebooting and/or upgrading to 6.3.0, the option got set back to “AUTO” - i set it back to “ON” and it works now - now we’re good to go! 🤺 thank you!

Yes, we have changed feature name from d3d12_xxx to xenia_xxx, so you would have to reset it.

And as stated after an upgrade ==> you need to restart retrobat !

udance4ever commented 1 month ago

Yes, we have changed feature name from d3d12_xxx to xenia_xxx, so you would have to reset it.

ah good to know that wasn’t random and expected behavior :)

And as stated after an upgrade ==> you need to restart retrobat !

I did restart so my only guess is perhaps an upgrade script failed to change the name of the setting.

at the end of the day, it’s working and I’m on 6.3.0 moving forward 🕹️