MrPalloncini / PicoMemcard

Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico
GNU General Public License v3.0
4 stars 0 forks source link

GameID on multi-disc games causing new memory card to generate #2

Closed neogohan324 closed 3 weeks ago

neogohan324 commented 3 weeks ago

Hello! First off, I love seeing GameID implemented for the PicoMemcard. Thanks for taking on this endeavor!

I flashed my Bitfunx PsxMemCard and have been testing it. I'm using an xStation on a SPCH-550x PS1, and it's been a mostly great experience, but the PsxMemCard doesn't seem to handle multi-disc games gracefully. For example, Final Fantasy VII

If I start Disc 1 for the first time, it will generate a new memory card, and index.txt will look like this:

\SCUS_941.63:0.MCR

I can then play and save a saved game to the card. If I then restart and then switch to Disc 2, it will generate a new memory card for that disc. Index.txt will now look like

\SCUS_941.63:0.MCR \SCUS_941.64:1.MCR

This is due to Disc 2 being a separate GameID, but ideally you'd want your save files to carry over from Disc 1, and so all discs of a game should share the same memory card between discs. I'm not sure how feasible this would be to implement as it would likely require a database crosswalking all Disc 2+ GameIDs to the GameID of Disc 1, or pre-populate titles.txt with any subsequent discs' GameIDs mapped to the MCR for Disc 1.

For now, I've remediated it on a one-off basis by updating index.txt like so

\SCUS_941.63:1.MCR \SCUS_941.64:1.MCR

This makes both discs share the same memory card file, and things function as expected. But maybe there's a more clever solution that can be done programmatically.

Thanks again for the awesome work!

neogohan324 commented 3 weeks ago

I only just now saw the notice about this in the readme, but it would be nice if this is solvable somehow. If not, I understand if it should be closed.

MrPalloncini commented 3 weeks ago

I'm sorry but support for multidisc games is likely impossible. Afaik even memcardpro and sd2psx doesn't support that. The reason why this will not be implemented is because the code needs an entire database of all multidisc games. It bothers me as well since i'm playing parasite eve. But as stated in the readme, i can't implement that.

neogohan324 commented 3 weeks ago

Thanks! I definitely understand how that wouldn't be feasible to implement on the card.

I've managed to solve on my end by generating memcards for every game programmatically via a script. Then it pre-populated titles.txt with entries for all games and mapped it so that multi-disc games have all their discs pointing to the same card.

Thanks again for all your work on this! It makes my PsxMemCard do everything I would want out of it now :D