Alright, so this has been bugging me for some time now.
Scenario: You put Honey on a tree. You save your game, then turn off your DS and take out the cartridge. About 6 hours later, you put the game back in and turn on your DS. There is a Pokémon waiting for you to catch it on the tree.
So this time, your DS clock reads 1:00. You spread Honey on a tree and save the game. You turn off your DS, then change its clock to 7:00, save, and turn off. You then put your game back in and start it. However, there's no Pokémon there. You have to wait until your DS reads 13:00 for one to show up.
The same thing applies with berries. And I want to know: How does the game do it? I know it does not have an internal clock. If the game is turned off, how can it detect that your DS clock was changed? The same thing goes with migrating - though that I can see if it compared your clock against the internal clock of RSE.
Does the DS have some sort of method of telling the cartridge? I might try some fooling around on an emulator to see if I can trick it by changing my computer clock, when I know the computer won't tell the ROM I changed the clock illegally.
But does anyone actually know? I've been trying to figure it out for a while.