RetroAchievements / RALibretro

RALibretro is a multi-emulator used to develop RetroAchievements.
https://retroachievements.org
GNU General Public License v3.0
183 stars 37 forks source link

RALibretro closes unexpectedly when viewing Recent Games #414

Closed bigdaddyseany closed 3 months ago

bigdaddyseany commented 3 months ago

Describe the bug *I had copied my RALibretro instance from a surface pro 4 (win10) to a lenovo yoga 6 (win11), and in the meantime, it had updated from 1.7 to 1.7.1. I had played about a dozen games on the old system beforehand.

I was playing brave fencer musashi on ps1 for about an hour (no save previously), and when I checked my Recent Games in RALibretro, the client just closed unexpectedly. Curiously, the emulator (beetlehw) seemed to have created a dummy memory card as expected, but there was no data on the card, either in the game, or when viewing from the ps1 bios-the progress was lost. Next I played Tony Hawk Pro Skater (enough to save a career file), and exited RALibretro normally. The save was working normally.

After further troubleshooting, I believe I was able to determine the root cause--when RALibretro attempts to load the game data from my previous history, the emulator closes unexpectedly. Deleting the history.txt resolves the issue.

To Reproduce bigdaddyseany-history.txt (rename this to your retroachievements account and place in \RACache Then, open RALibretro, press ESC to view the menu (no game needs to be loaded) Then press right to view the Recent Games tab. In my case, it would load attempt to load details, get the title of the first 3-4 uncached games, then crash out.

Expected behavior The emulator should be able to retrieve from the database without being overwhelmed, or have an exception handled for this--either a way to validate the history code is correct, or

I also expected the save data from games to be written out immediately, and not when the emulator is closed gracefully. Think how PCSX2 handles saving to the memory card.

Screenshots image

Desktop (please complete the following information):

Additional context

As mentioned up top, I had copied my ralibretro directory from one computer to another, after playing about a dozen games on the old computer, then taking a 3 month break. I then played 3 other games on the new computer, before I had attempted to check my Recent Games. It also appears I didn't save the cached files from the previous computer, and so it has to retrieve that data, and is subsequently overwhelmed.

Jamiras commented 3 months ago

This isn't a problem with RAlibretro, it's a problem with the 1.3 DLL. It's already been fixed via https://github.com/RetroAchievements/RAIntegration/pull/1080, and will be included in the next DLL release..