PokéBase - Pokémon Q&A
2 votes
2,272 views

So, I just got a copy of Pokemon emerald and a ds lite the other day. I decided that I want to use a Milotic, after a few hours on route 119 I caught a Feebas. while playing I also planted some kelpsy berries, waited a few hours, harvested them and then replanted them. I was gonna turn the DS Lite off for the night after that but then I remembered that I hadn't set the clock yet and it still said January 2000, so I set the clock and went to bed. The next morning I checked and found that the berries I planted hadn't grown. I checked the clock at my characters house and the minutes hand still moves, but daily events don't trigger anymore, berries don't grow, the berry man won't give me any more etc. I had assumed that since they're GB games the DS clock wouldn't effect them. I've tried moving the DS lite clock back, I've let the game just sit around outside the DS for days, I left it on and running for 3 hours and went to check the berries, nothing's changed. Help? I'm not gonna reset either, feebas is too much of a pain to catch again... Also I got pokerus by chance on the cart so... yeah, not resetting.

by
The question is phrased as though you changed the month and year on Emerald's in-game clock, but that clock doesn't track the month and year. What did you actually do?
I think they changed the month and year on the DS clock, not the Emerald clock.
To clarify, I changed the month and year on the DS Lite clock, after that berries stopped growing.
When I have time, I'll do some tests using homebrew to see if the game saves the DS system time instead of the RTC time (probably not). This will be done with an Emerald cartridge whose battery has run dry, but that shouldn't affect our ability to see whether the DS system time is being written instead.
Are you sure your Emerald's battery is functional?

1 Answer

3 votes

No, the game is programmed to use the RTC inside the cartridge (see siirtc.c in pret's decompilation of Pokemon Emerald). The DS is designed on purpose to behave exactly like a GBA while it's playing GBA games, so Gen 3 games have no interface with the DS's separate RTC at all.

The symptoms you've described are consistent with the timestamp provided by Emerald's RTC getting stuck behind the timestamp written inside your save file. When this happens, most time-based events in the game will stay frozen even if the RTC is working, because the game only updates time-based events when the RTC counts ahead of the save file's timestamp (see clock.c in the decomp, more doco on the issue).

The most famous cause of this problem is replacing the internal battery, which interrupts the RTC's power supply (thereby resetting it) but does nothing to your save file. It's also caused if the RTC's power is interrupted for any other reason - it's entirely possible there was a spontaneous loss of power that reset the RTC and got you in this situation.

To fix it, you need to edit your save file or edit the RTC time to make sure the RTC counts ahead again. It can be done by dumping your Emerald save file (best way is using GBA Backup Tool on a DS flashcart) then using PKHeX to change the saved timestamp (SAV → Clock (RTC) → Time Elapsed).

image

^^ The culprit as seen in PKHeX for my game with a dead battery. If I were to replace the battery, I'd have to wait 953 days for the RTC to count ahead again. Or, I could modify this save to bring down the Time Elapsed - but even that won't last forever, as the battery will inevitably fail again.

ago by