Pokémon Emerald has a feature that allows you to re-set the Real Time Clock of the game. This feature is normally inaccesible, because on top of being triggered by a specific combo of keys (B + Select + Left Arrow
), it also checks if a certain function labeled CanResetRTC
returns a value of TRUE
. Now, this function relies on the effect of another function, EnableResetRTC
, which is never called anywhere in the game.
EnableResetRTC
only gets executed by the Mystery Event script command enableresetrtc
, but unlike it happens in Pokémon Ruby and Sapphire, Mystery Event scripting commands go completely unused in Pokémon Emerald.
So, why don't we just forget about checking for CanResetRTC
, and simply let the Player reset the RTC if they press the right keys?
To do this, we just have to go to the L741 of src/title_screen.c and remove the && CanResetRTC() == TRUE
check.
- else if (JOY_HELD(RESET_RTC_BUTTON_COMBO) == RESET_RTC_BUTTON_COMBO
- && CanResetRTC() == TRUE)
+ else if (JOY_HELD(RESET_RTC_BUTTON_COMBO) == RESET_RTC_BUTTON_COMBO)
{
FadeOutBGM(4);
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
SetMainCallback2(CB2_GoToResetRtcScreen);
}
That's it. Save, build a ROM, and press B + Select + Left Arrow
on the title screen.