libretro / LRPS2

GNU General Public License v2.0
159 stars 47 forks source link

RetroArch crashes/game freezes if "Fast Boot" is enabled with the substitute .nvm #163

Closed bslenul closed 2 years ago

bslenul commented 2 years ago

Hey!

So currently if you only have a .bin in your "bios" folder, RetroArch will crash or the game will freeze if "Fast Boot" is enabled, a generic .nvm is properly created but no .mec. At first I thought it was because the .mec was missing but no, it does the same thing when providing one. For some reason it looks like the core is unable to boot with the generic .nvm it creates.

Behavior varies depending on the games:

SeventySixx commented 2 years ago

It made some tries:

[libretro INFO] Game CRC: 4d2e6acb
[libretro INFO] [GameDB] Searching for 'sles-50445' in GameDB
[libretro INFO] [GameDB] Found 'sles-50445' in GameDB
[libretro INFO] [GameDB] Searching for patch with CRC '4d2e6acb'
[libretro INFO] [GameDB] No CRC-specific patch or default patch found
[libretro INFO] Attempt to apply cheats if available...
[libretro INFO] Not found Cheats file: C:\Program Files\RetroArch\system\pcsx2\cheats\4D2E6ACB.pnach
[libretro INFO] (GameDB) Cheats Loaded: 0
[libretro INFO] Attempt to apply widescreen patches if available...
[libretro INFO] (Wide Screen Cheats DB) Patches Loaded: 0
[libretro WARN] MEC File Not Found, creating substitute...
[libretro INFO] (UpdateVSyncRate) Mode Changed to PAL
[libretro INFO] Game CRC: 117d1977
[libretro INFO] [GameDB] Searching for 'sles-55474' in GameDB
[libretro INFO] [GameDB] Found 'sles-55474' in GameDB
[libretro INFO] [GameDB] Searching for patch with CRC '117d1977'
[libretro INFO] [GameDB] No CRC-specific patch or default patch found
[libretro INFO] (GameDB) Changing VU0/VU1 clamp mode [mode=2]
[libretro INFO] (GameDB) Fixes Loaded: 1
[libretro INFO] Attempt to apply widescreen patches if available...
[libretro INFO] comment: 16:9 Widescreen, 60fps, & Progressive Scan
[libretro INFO] (Wide Screen Cheats DB) Patches Loaded: 54
[libretro DEBUG] iR3000A Recompiler reset.
[libretro INFO] EE/iR5900-32 Recompiler Reset

that's strange, the difference I can see here is that Burnout seems has not fixes nor widescreen patches, while instead Persona 4 do have them. not sure this could be a clue

EDIT: I never use fast boot (I like to have an experience as near as possible to the original console :) ) so I couldn't say from when this problem was introduced

bslenul commented 2 years ago

It started with 1d213d34903f03b5c00f174d76a400a21b36ad50

That being said even before it wasn't working 100% properly, it usually crashed on first launch after creating the .nvm, but then it created the .mec on 2nd launch and games worked.

SeventySixx commented 2 years ago

It started with 1d213d3

ok, thanks for the info, could be something due to path, I will look about it

SeventySixx commented 2 years ago

ok, the PR #164 should have fixed it. Now if you have a new bios (so .nvm and .mec not exists) and fastboot is enabled, the first boot with that BIOS will force to enter the Bios System Config, so nvm and mec files are created correctly

bslenul commented 2 years ago

But it used to work a while ago, we were able to boot games with a .nvm created with fast boot. To be clear I'm not complaining (it takes literally 2 minutes to set up the BIOS and it's usually a one time thing), I'm just confused :p

This is better than crashing in any case, so thank you for this! 👍

SeventySixx commented 2 years ago

I gone on this way because I really don't know what exactly introduced this problem. I looked for the issue but I couldn't figure out the source.

Anyway, because you said that also before it didn't worked 100% making some games crashing and having to start them 2 times, it means that also before there was something wrong. So I thought that the best way to archieve the result was to implement the best solution for the moment, that is safer at 100% for all platforms and hopefully should work for each game. 😃

bslenul commented 2 years ago

I just tried out of curiosity, it was working as intended in the very first version of the core (it creates both .nvm/.mec on first try and boots successfully, fast boot was even ON by default :p): https://github.com/aliaspider/pcsx2/releases/tag/v0.1-libretro , I'll see if I can find where it stopped working.

But anyway, I really like your solution and indeed it seems super safe 👍 So I'll close the issue!