shinehax - A Super Mario Sunshine (PAL) Save Exploit

Discussion / Support for Softmods (SDML, AR, Game Hacks)
vaderag
Posts: 12
Joined: Sat May 29, 2021 7:13 pm

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by vaderag » Sat May 29, 2021 7:26 pm

Firstly, thank you so much for the hack. Been using it for a few days and mostly seems to be working great!

I'm having an odd issue however after playing Mario Sunshine via Swiss

To prevent clashing I actually got an NTSC version of MS and ripped it and am playing that via SD2SP2 using Swiss

There are two different save files so presumably they're being treated differently (and they do seem to be) but after playing MS in the above manner every time I reboot the cube I get an odd issue where the disc (Pal) Mario stops at the Nintendo logo and won't move forward. It will retain this until (as far as I can tell) I remove the memory card, load the disc and select the 50hz mode. Then it seems to start again, but it's a bit of a faff!

Is there a tried and tested way I can play MS without these issues? Am I alone?
User avatar
Papy.G
Posts: 685
Joined: Mon Mar 04, 2019 6:14 am
Location: France, Occitanie
Contact:

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by Papy.G » Sun May 30, 2021 3:12 pm

Forcing SWISS to either 60Hz mode sets the refresh rate flag to that value anytime.
You'll have to let the video settings be determined by the games, NTSC go in 60Hz anyways, and ignore and don't update the said flag.

I personnally set to 576p as a default, so that progressive scan is activated anyways then set to 60Hz by hand in the Pal Games that allow that (I don't use SMS exploit), and those who don't support 60Hz forcing won't look weird. This can only be done because the games I use tolerate that setting, but it's not always the case, some may crash doing that.
DMG/MultiFreq OC/EDGB/EZF Jr, AGB/SC miniSD, NTR/NeoMK3, USG/flashme V8/SC miniSD
DOL001(EUR)/RGB/GCPlug/GBP/SD2SP2, RVL 001(EUR)/RGB/CMP/WiiSD

Zelda WW with Tingle Tuner in split screen was what the GC RF modulator was made for! (Video)
vaderag
Posts: 12
Joined: Sat May 29, 2021 7:13 pm

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by vaderag » Sun May 30, 2021 6:12 pm

Papy.G wrote:
Sun May 30, 2021 3:12 pm
Forcing SWISS to either 60Hz mode sets the refresh rate flag to that value anytime.
You'll have to let the video settings be determined by the games, NTSC go in 60Hz anyways, and ignore and don't update the said flag.

I personnally set to 576p as a default, so that progressive scan is activated anyways then set to 60Hz by hand in the Pal Games that allow that (I don't use SMS exploit), and those who don't support 60Hz forcing won't look weird. This can only be done because the games I use tolerate that setting, but it's not always the case, some may crash doing that.
So, similarly I have 576p set to be forced as default, but I've never asked Swiss to set 60hz that I'm aware of (didn't know it was possible?)
Is it possible the progressive scan flag in Mario Sunshine ntsc is setting the same flag somehow? It's the only thing I can think of...?
User avatar
Papy.G
Posts: 685
Joined: Mon Mar 04, 2019 6:14 am
Location: France, Occitanie
Contact:

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by Papy.G » Tue Jun 01, 2021 4:19 pm

Don't know much about those flags in the Cube's architecture, but it is common in computers that setting one flag needs the whole byte where they are stored in memory to be updated (and which they usually share with 7 other flags). Before you change one bit, you have to read the byte, combine it with an appropriate byte to only change the targetted bit, then write it back. If you unexpectedly alter another bit in the process, such can happen. It may happen in NTSC games, as the NTSC user and games are supposed to just ignore the 50Hz flag.

Anyways, if SWISS loads in forced 50Hz, just don't forget to press the combination buttons for the IGR when you're done with playing, then turn the power off, you shouldn't be bothered anymore. ;)
DMG/MultiFreq OC/EDGB/EZF Jr, AGB/SC miniSD, NTR/NeoMK3, USG/flashme V8/SC miniSD
DOL001(EUR)/RGB/GCPlug/GBP/SD2SP2, RVL 001(EUR)/RGB/CMP/WiiSD

Zelda WW with Tingle Tuner in split screen was what the GC RF modulator was made for! (Video)
vaderag
Posts: 12
Joined: Sat May 29, 2021 7:13 pm

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by vaderag » Sun Jun 06, 2021 7:39 pm

Papy.G wrote:
Tue Jun 01, 2021 4:19 pm
Don't know much about those flags in the Cube's architecture, but it is common in computers that setting one flag needs the whole byte where they are stored in memory to be updated (and which they usually share with 7 other flags). Before you change one bit, you have to read the byte, combine it with an appropriate byte to only change the targetted bit, then write it back. If you unexpectedly alter another bit in the process, such can happen. It may happen in NTSC games, as the NTSC user and games are supposed to just ignore the 50Hz flag.

Anyways, if SWISS loads in forced 50Hz, just don't forget to press the combination buttons for the IGR when you're done with playing, then turn the power off, you shouldn't be bothered anymore. ;)
Thanks for the response - just wanted to clarify your last line - if I always IGR from any game with forced 60Hz will that reset to 50hz when I do the IGR?

Also, is there an easy way to force the 60hz selection to come up in Sunshine if I do have it mess up?
User avatar
Papy.G
Posts: 685
Joined: Mon Mar 04, 2019 6:14 am
Location: France, Occitanie
Contact:

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by Papy.G » Mon Jun 07, 2021 7:24 am

It will set it back according to what SWISS is set to force for its own display (set it to 576p then).

No, because of the way the hack works, it hooks somewhere in the languages files loading (or hangs, if in 60Hz), which happen before the framerate choice menu. There is no other way than pulling the memcard off, booting the game with b pressed, selecting 50Hz, then resetting with the memcard plugged back in (maybe a full power cycle (off/on) will even be necessary).
DMG/MultiFreq OC/EDGB/EZF Jr, AGB/SC miniSD, NTR/NeoMK3, USG/flashme V8/SC miniSD
DOL001(EUR)/RGB/GCPlug/GBP/SD2SP2, RVL 001(EUR)/RGB/CMP/WiiSD

Zelda WW with Tingle Tuner in split screen was what the GC RF modulator was made for! (Video)
vaderag
Posts: 12
Joined: Sat May 29, 2021 7:13 pm

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by vaderag » Mon Jun 07, 2021 7:49 am

Papy.G wrote:
Mon Jun 07, 2021 7:24 am
It will set it back according to what SWISS is set to force for its own display (set it to 576p then).

No, because of the way the hack works, it hooks somewhere in the languages files loading (or hangs, if in 60Hz), which happen before the framerate choice menu. There is no other way than pulling the memcard off, booting the game with b pressed, selecting 50Hz, then resetting with the memcard plugged back in (maybe a full power cycle (off/on) will even be necessary).
Ah cool, thanks. So long as I know to do an IGR then I think I'm good... the kids on the other hand are bound to mess it up at some point!!

Now to sort out the terrible noise i get in SWISS due to the Shinehax booting method...
vaderag
Posts: 12
Joined: Sat May 29, 2021 7:13 pm

Re: shinehax - A Super Mario Sunshine (PAL) Save Exploit

Post by vaderag » Tue Jun 08, 2021 10:17 am

Still finding some nuances with this... mario kart set to 60hz, IGR to swiss in 576p, reboot and I end up at the freeze again. Other games the IGR seems to work (but perhaps the 60hz flag isn't being set)

Either way, this works great.

Also wanted to note that I found a fix for the high pitched sound in Swiss when using this exploit:
Get dolaunch from here: https://github.com/suloku/dolaunch/rele ... /0.2-dolxz
Stick boot.gci of the standard version onto your memory card to get the DOL to be used with Shinehax
Put Swiss on your SD card (if using SD2SP2 as I am) and rename to autoexec.dol)

Load Shinehax as usual - no terrible beep!
Post Reply