metroid-maniac / SCFW

SCFW Supercard Custom Firmware & Kernel
GNU General Public License v3.0
83 stars 4 forks source link

Save Type Patch Error! #4

Closed Gamemaster2022 closed 1 week ago

Gamemaster2022 commented 3 months ago

I'm getting this error on every single game I try to play. Games don't save (On another load "Save file does not exist" appears)

Any tips on how to solve it? Running 0.5.2, but also happens on 0.5.1

Gamemaster2022 commented 3 months ago

Also, pressing Start to run the last played game results in error "Could not open last played"

EDIT: I found out this was caused by not having the kernel.gba in scfw folder. The save error, however, keeps on happening

jellyquent commented 1 month ago

Came to +1 on this. Using the latest 0.5.2, testing with Pokemon Emerald.

OmDRetro commented 1 week ago

@Gamemaster2022 , you have two concerns here:


"Save file does not exist"

This means that the associated save file for the ROM you are trying to open does not exist.

This is normal if:


"Could not open last played"

This means the ./scfw/lastplayed.txt file does not exist.

This is normal if:

Gamemaster2022 commented 1 week ago

@Gamemaster2022 , you have two concerns here:

  • Prompt: "Save file does not exist"
  • Prompt: "Could not open last played"

"Save file does not exist"

This means that the associated save file for the ROM you are trying to open does not exist.

This is normal if:

  • You opened the game for the first time on a new TF/microSD card.
  • You did not transfer the save file which should carry the same name as the ROM you're trying to load(minus the extension)
  • Once you soft reboot/power cycle your GBA after loading a rom, a save file will be generated afterwards thus the prompt will cease the next time you run that game.
  • You need to take note that the save file carries the same filename as the ROM minus the extension.

    • So, if you ever rename the ROM that already has a save, you must rename the save file as well in order for it to be recognized. Otherwise, the save file "doesn't exist" due to human error/your mistake.

"Could not open last played"

This means the ./scfw/lastplayed.txt file does not exist.

This is normal if:

  • You haven't played any ROM for the first time. Like a fresh install of the kernel without any other files on a new microSD card.
  • You deleted the ./scfw/lastplayed.txt file
  • ./scfw/lastplayed.txt has no data (which indicates a possible problem with the microSD card)

Thank you for very detailed response, I actually got it working some time ago and it's fine now but I am sure it will be of use for other people having similar problems. I honestly forgot this issue was still open. I'll probably close it now as resolved.

OmDRetro commented 1 week ago

Came to +1 on this. Using the latest 0.5.2, testing with Pokemon Emerald.

  • Unpatched Pokemon Emerald ROM
  • Boot through SCFW 0.5.2
  • Patches successfully
  • Boots, plays and saves
  • After soft reset, save still playable, loads regularly
  • After full shutdown and boot, save no longer recognized

EDIT: I've come back after some additional tests.

  • If after saving the game I do a soft reset and then, without starting the game again, I shut down the console, the save file gets recognized and I can load it without issues
  • However, if I turn off the console while in-game after saving(without the soft reset), the SAV gets corrupted to the point that not even PKHex can open it

@jellyquent I'll be the one to answer this. I've thoroughly tested with Pokémon Leaf Green and Fire Red. Remember the concerns on the GBATemp forum regarding 128 KB saves? That actually has some bearing here since these games save more than 64 KB.

I'll quote @metroid-maniac on this as the SuperCard SD has some limitations despite having a high capacity SRAM chip:

The size of the chip doesn't matter. SRAM addressing is restricted 16 bits (64KB) as a hardware limitation. You need banking to have more SRAM capacity, but as far as I can tell there's no registers mapped for this purpose

This means we're all stuck with 64 KB saves as there's no Multi-memory controllers(MMC chips) to allow full access to the high capacity SRAM that the SuperCard SD comes with.

As for the saves itself, it definitely is more reliable to do a soft-reset for Pokemon games. If you want your saves to work after a power cycle, be sure to SAVE AT LEAST TWICE in one playthrough before power cycling.

Be sure to NOT delay your power cycling or the save ends up corrupted.

* I.E. - Turn off the GBA then wait for more than 13 to 15 seconds before powering on. This leads to a deletion of your save.

You'll notice something funny though with Pokemon games on this flashcart. It will tell you that the SAVE IS CORRUPTED yet it actually loads. I hope this helps you understand this flashcart 🙂