Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Disk index save on Playstation.



  • It's not a big problem, more of a question I can't seem to find a definite answer to.

    Is there a way to store the Disk Index number on the saves of PSX multi-disk games? I play FFVII lately, I am currently on disk 2, and after launching the game and loading any save game (either in-game or the default emulator's one), the Disk Index returns to default (1) and I have to reload disk 2 manually.

    Effectively, I would like to.. leave disk 2 in the tray after shutting my PSX down :-)

    Thank you.



  • @josephxx
    That is a fair question, I didn't figure this one out yet. But I'll let you know that the PSclassic is able to do this with its resume states.

    How the resume state works: basically when pcsx exits it does four things.
    Saves the memorycard ram.
    Saves the resume state with screenshot to temporary ram.
    Saves a text file containing the filename of the last used disc.
    Then the PSclassic hits the menu and asks if you want to save the resumestate. Where it will copy it from the temporary buffer and resize the screenshot if yes.

    When loading the resume state it queries if the test of lastdisc.res is an available index and adds the contents to a string, then just runs pcsx with-runcd "%DISCRESUME" and -load "%SAVESTATE".

    Someone with more scripting knowledge could help with adding the lastdisc.res.txt string. I can't even remember how this should be done. Then it just needs to be used with the retroarch -L "%RA/cores/pcsxr-libretro.so" "%LASTDISC".
    I think that the default launch string is in the \configs\psx\emulators.cfg but I can't remember and I don't have a pi anymore right now.

    Also I don't know where to look, for how it gets the last disc used saved to a text. For either pcsx or retroarch, but it can be done.



  • A non-coding solution is to use the .m3u method from the RetroPie PS1 Docs (if you aren't already i highly recommend) and change the boot order to list the disc you need for the time being to be listed first. It's not a grand solution and may not be helpful if you share the game with others who need to start elsewhere but it works well especially when you are on the last disc of any game, since you'll probably be there for a very long time.



  • Or you could do what I used to do:
    Create a folder for the multidisc game and rename each disc file.
    ".Final Fantasy VII (Disc 1).PBP"
    ".Final Fantasy VII (Disc 2).PBP"
    ".Final Fantasy VII (Disc 3).PBP"
    The period . infront of the filename will hide it from emulationstation because instead we will use an .m3u to load the index.
    Then rename the memorycard .srm that you want to keep to something like pcsx-card1.mcd.
    Create an .m3u for each disc. Shifting the first entry of the index to the corresponding disc.
    Then symlink the pcsx-card1.mcd to each .m3u namespace .srm.

    for i in *.m3u; do ln -s pcsx-card1.mcd "${i%.*}.srm"; done

    like here
    https://retropie.org.uk/forum/topic/21852/psx-value-too-large-to-launch-after-update/6



  • Thanks for the replies and the suggestions.

    As it seems, this capability is not difficult coding-wise, it just hasn't been implemented (yet).
    Until then, the easiest way still seems to load disks from the menu, it just takes a few seconds anyway :-)



Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.