libretro / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
47 stars 56 forks source link

Super Mario World some softpatch BPS doesn't apply #226

Closed brenodantas10 closed 5 years ago

brenodantas10 commented 5 years ago

To start, the Snes9x libretro core can softpatch the game. But I've noticed that the core doesn't apply some patches even if recognized. So I'd dig down a little bit and reached some conclusions.

  1. Even though Snes9x core doesn't apply some patches, the Snes9x unix can.
  2. The Snes9x core can play the game if it is already patched with the BPS that it had problem to softpatch before.
  3. I've applied around 12 different Hacks creating 12 different .sfc files, one hack per .sfc, and then compared the file size of the working softpatch BPS and not working ones. The results were: a. All BPS hacks that do not work softpatching have >= 3MB (24Mb) b. All working BPS softpatches have at max 2MB (16Mb)
  4. Message '[ERROR] Failed to patch BPS: Error #6' after attempting to softpatch

PS: As I didn't get any size between 2MB and 3MB i can't confirm the max size that Snes9x core can softpatch. PS-2: Did tested with headed and unheaded versions of the game. PS-3: Super Mario World unheaded version has 512kB. PS-4: A list of used hacks will be in an attached file (I may have to do a bigger list)

Tested Hacks.txt log-not-working.txt log-working.txt

hizzlekizzle commented 5 years ago

RetroArch handles the softpatching in this case, rather than the core (aside from the needs_fullpath aspect). I think you might have better luck with this issue on the RetroArch tracker.

Nevertheless, the bps errors are located here: https://github.com/libretro/RetroArch/blob/717c5c1e2ff7753d6583629feb83b8a88db83d60/tasks/task_patch.c#L52

brenodantas10 commented 5 years ago

Thank you very much. As this is not related to the core itself, I will close this issue.