come see psp homebrews latest testings and more psp stuff

    PSP Save States!!!! (TUT)


    co admin
    co admin

    Number of posts : 7
    Registration date : 2008-08-13

    PSP Save States!!!! (TUT)

    Post  Marth on Tue Oct 07, 2008 11:23 pm

    For PSPstates V2

    This tutorial will illustrate how to use DAX's experimental PSPStates tutorial. I, in no way is responsible for what happens to your PSP. Experimental is way before an alpha so please consider the risks.

    What You Need

    -PSP SLIM/(PHAT?) with 4.01 M33 installed. (Update doesn't matter)
    -Any MS. The newer the better. Real sticks are recommended for the job.
    -Any ISO, homebrew or UMD to test. (For UMDs, and for use with the UMD-required ISO loader, you have to do step #5 in the install as well)
    -PSPStates Plugin
    - (For homebrew) If it uses the extended memory of the Slim, it will not work.

    After you have gotten all of that, you should do the following:

    1)Backup all SAVEDATA on the MS. (DAX recommended)
    2)Do a nand backup just in case. (Or have one ready - DAX recommended)
    3)Get a real MS, if you have a fake or if your MS is really old. (Part DAX recommended :p)

    After you have taken care of that, its time for install:


    1)After you have downloaded the plugin, drag and drop the contents of the 'seplugins' folder to ms0:/seplugins. (You don't have to overwrite 'game.txt', you can manually add the path if you want to.)

    2)Upgrade to 4.01 M33 if you haven't already. This will only work with 4.01 M33.

    3)Reboot into recovery, and activate the plugin.
    4)While in recovery, set UMD ISO Mode to 'Sony NP9660', or 'M33 Driver'. If you are going to use the 'UMD Required mode', or a UMD with PSPStates follow step 5 below!!!.

    5)This is only needed if you are going to use the UMD Required loader or a UMD for PSPStates:

    In order to use PSPStates with the above modes, you must flash one file to flash0. This file kills the UMD cache from being used. (Turning off 'UMD Cache' will NOT work) All you have to do is activate USB to flash0 in recovery (Advanced -> Activate USB ) From there, take 'umdcache.prx' from the download, and flash it to the 'kd' folder and overwrite. (This would be like a nice time to backup that file before the overwrite if you don't have a nand backup) After that, just disable the connection to flash0.

    6)Set your clock speed to 333mhz. (DAX recommended - Not needed)
    7)Exit out of recovery.


    PSPStates works as any other ordinary 'game' plugin. It will launch when a homebrew or ISO is launched. It can be used anywhere in the game. You have 9 slots for every game, and they can range from 10-36MB compressed.

    To save:

    -While in the game, hit HOME. From there, press R with any of these buttons:

    Any D-pad button, Circle, Cross, Square, Triangle, or Start. (These are all for local states. Meaning that each game has their own 9 slots). To use the other 9 global slots, hold SELECT along with any of your combos.

    Once you do that, the PSP will put itself into sleep mode. Wait. It may take a while to capture everything. When the PSP comes back on, the MS light will flash indicating that the savestate is being saved to your MS. You can continue playing until it is finished. You can do this for all 18 (9 local, 9 global) slots. Using the same slot twice will overwrite it automatically.

    To load:

    Loading is pretty much the opposite of saving. Instead of holding R + button to save, you will load that state with L + button. Let's say you saved to slot : D-pad UP, you will hold L + D-pad UP to load that slot. Once you load a slot, the PSP will go back into sleep mode, re-load your game, and come back to that point in time in which you saved at. Of course, if you want to load your global states, hold SELECT along with your button combo.

    Managing Savestates

    Global states and local states are named differently. For local states, it will use the gamecode of the ISO/UMD, or the first 9 characters of the homebrew folder.

    -> Some UMD/ISO slot = D-pad up

    For global states, it will just have global_ with the slot.

    ms0:/seplugins/SAVESTATE/globalstate_u.bin -> up button
    ms0:/seplugins/SAVESTATE/globalstate_d.bin -> down button
    ms0:/seplugins/SAVESTATE/globalstate_l.bin -> left button
    ms0:/seplugins/SAVESTATE/globalstate_r.bin -> right button
    ms0:/seplugins/SAVESTATE/globalstate_q.bin -> square button
    ms0:/seplugins/SAVESTATE/globalstate_t.bin -> triangle button
    ms0:/seplugins/SAVESTATE/globalstate_x.bin -> cross button
    ms0:/seplugins/SAVESTATE/globalstate_c.bin -> circle button
    ms0:/seplugins/SAVESTATE/globalstate_s.bin -> start button
    Also, as noted in the readme, the savestates might have Sony code so don't share them. As for 'umdcache.prx', read below in the FAQ.

    * Legal issues: The savedata contains code of sony kernel, and code of games, so it is probably illegal to share them.
    That's pretty much to it when it comes to PSPStates. Remember that this plugin is a first (or second) of it's kind, and it is experimental. Expect the wrong turnout of events at any time. If that happens, you will be safe as long as you backed up the nand and savedata like I told you to do. Please note that a savestate is a savestate. Anything saved at that time (plugins, watever) will be loaded up with that savestate. Also, do not change the locations of any ISOs/homebrew or PSPStates will crash loading/saving. (renaming ISOs is considered changing paths)

    FAQ/Tibbits of the readme

    ? : PSPStates doesn't work?
    !: Yes, I went through this myself. I forgot to copy the files and the 'SAVESTATE' folder beforehand. (Too sucked in with the readme) If you do NOT have the 'SAVESTATE' folder in /seplugins, the plugin will NOT work.

    ?: While loading a state, my PSP reboots to the XMB.
    !: Also known as a crash. ;-) Anyways, make sure you didn't load an empty/wrong slot. If you loaded a right one, update to version 2. It fixes a bug where states weren't loaded properly.

    ? : Will there ever be Phat support?
    In the current implementation, I'm using slim extra memory. The file writing is post-poned while file read is done before the real load state. This is because we lack of a good memory stick driver that could be used in situations where the kernel is off. The only memory stick driver we have, which is the used in DC, is extremely slow, it has no sense to use it here. Until memory stick dma code is reversed, it is impossible the implementation on psp phat.
    ?: After saving/loading a savestate, the sound stopped.
    try to load the state you just saved to see if this fixes. This may happen sometimes in some games, it is not 100% sure, but the reason identified in tests seems to be: the write of the file. In the current implementation,the plugin performs the real savestate after returning from the induced sleep mode code, compressing it in from one ram to temporal one, then original sleep mode return code is executed,and when the system is stable, the file is written. It seems some games or some sony code may not like that such a big file is written, probably due to the time it may take. If some day, the DMA memory stick driver is reversed, this problem should be gone too... hopefully Smile
    ?: Will this work with different custom firmwares?
    Interoperability between different sony version numbers: this won't be supported, technical reasons. If you were in let's say in a future 4.10 M33 and you want to load a state saved in 4.01 M33, even if the plugin is updated to work on 4.10 M33, it will probably crash loading that state.
    ?: Can I do a savestate on one PSP, and load it up on another?
    - Interoperability with other psp's. Probably not a good idea to share savestates between psp's... they could cause hardware incorrect answer or data loss. The only test done has been PSP1: TA-085, PSP2: TA-085 v2. The PSP1 saved the state.
    The PSP2 loaded the state. The state load apparently worked, but the game, which was controlled
    by analogic pad, wasn't answering properly to controls. Wether this was caused by different mother boards or other reasons it is unknown.
    Anyways if you want to proceed to do more tests, do it on your own, but have in mind some things:

    * Functional issues: the hardware should be the more similar possible. The isos or homebrews
    should have same paths. Better not to have another plugin activated.

    * Privacy issues: The savedata may contain in plain text or compressed, wep or wpa keys. Also,
    if the XMB didn't clear properly the ram, there exist the possibility too of the savedata
    containing filenames or even binary data of media that was played in the XMB, which can
    be recovered using computer forensics.
    ?: Does this work in the vsh or in POPS?
    !: Read the readme -over-.
    This plugin at the moment will only work in game mode, don't bother to use it in pops or vsh.
    ?: What's with 'umdcache.prx' as mentioned above?
    !: It's legal. It's just a dummied file. (It's not the Sony file, just dummied.)

    ?: So if 'umdcache.prx' is dummied, why does it take up space?
    !: Not every dummy gives you a 0kb file. Well, it's less space then what was in flash0 anyways. >.>

      Current date/time is Thu Jan 17, 2019 10:59 pm