2 Enable the Reset RTC Feature
LOuroboros edited this page 2021-03-28 17:32:15 +00:00

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.