Try this:
Online Region ID Modifier [JoshuaMK]
(NTSC-U)
0400AE70 3800000X
0400AE80 809F0084
0453F3F4 60000000
(PAL)
0400AF0C 3800000X
0400AF08 60000000
04544930 60000000
(NTSC-J)
0400AE30 3800000X
0400AE2C 60000000
045442B0 60000000
(NTSC-K)
0400AFBC 3800000X
0400AFCC 809F0084
04532988 60000000
X = Region
This works by changing the region as early into the game as possible which actually affects an argument to an upcoming function which is held by r4. By the code above this argument would still be 1 for USA and so on, but this code modifies the argument to reflect the custom one as well (which is likely more stable), and then it bypasses the savegame region check completely, meaning it always thinks it is valid. (Normally the game compares the region value in your save against the one the game itself generated, and if they don't match, the game flags that the save has been corrupted and it brings up that menu we all dread. I've simply noped the branch so the game never sets the flag even if the region match fails)
But if you want to combine the current code in this thread with the bypass, copy the 045...... 60000000 instruction from each region.
Also, I couldn't get the game to overwrite the region in the save file. This was with me changing miis, entering and exiting Wiimmfi, and also doing a Time Trial too. So if bugs still persist then I don't know what else to do. Theoretically with this code, you can simply set the region to the value it would normally be, and it would reverse the bug if it happens at all.
Online Region ID Modifier [JoshuaMK]
(NTSC-U)
0400AE70 3800000X
0400AE80 809F0084
0453F3F4 60000000
(PAL)
0400AF0C 3800000X
0400AF08 60000000
04544930 60000000
(NTSC-J)
0400AE30 3800000X
0400AE2C 60000000
045442B0 60000000
(NTSC-K)
0400AFBC 3800000X
0400AFCC 809F0084
04532988 60000000
X = Region
This works by changing the region as early into the game as possible which actually affects an argument to an upcoming function which is held by r4. By the code above this argument would still be 1 for USA and so on, but this code modifies the argument to reflect the custom one as well (which is likely more stable), and then it bypasses the savegame region check completely, meaning it always thinks it is valid. (Normally the game compares the region value in your save against the one the game itself generated, and if they don't match, the game flags that the save has been corrupted and it brings up that menu we all dread. I've simply noped the branch so the game never sets the flag even if the region match fails)
But if you want to combine the current code in this thread with the bypass, copy the 045...... 60000000 instruction from each region.
Also, I couldn't get the game to overwrite the region in the save file. This was with me changing miis, entering and exiting Wiimmfi, and also doing a Time Trial too. So if bugs still persist then I don't know what else to do. Theoretically with this code, you can simply set the region to the value it would normally be, and it would reverse the bug if it happens at all.
Super Mario Eclipse, what Super Mario Sunshine could've been.