frederic-mahe / Analogue-Pocket

An issue tracker for Analogue's Pocket, a handheld FPGA device released in December 2021
57 stars 1 forks source link

MBC3 RTC state is being saved on sleep (and with save states?) #90

Open Sotomura opened 2 years ago

Sotomura commented 2 years ago

Observed while running 1.0B and 1.1-beta. Issue is not present in 1.0A.

The real-time clock state is saved every time the console is put to sleep. When the Pocket is awakened, the Pocket will restore the RTC state to when the game was put to sleep. Thus if the game time before the console was put to sleep was 10:30 AM, and the console is awakened later, the in-game time still reflects 10:30 AM. With Pokémon games in particular, which have an RTC, this can be a hassle as it basically stops regular time in the game itself.

I’ve mostly tested this with reproduction cartridges (namely, the insideGadgets MBC3 with RTC), since I’m unwilling (and less able) to test this with my still-working Pokémon games. It’s affected any game (that I’ve flashed, mind) with an RTC.

I’ve been downgrading the firmware as a result.

Blaziken257 commented 2 months ago

I've run into this issue with a retail Keitai Denjuu Telefang: Speed Version cartridge that I recently bought. Like Pokémon, Telefang has an RTC. My Telefang cart had a dead battery, but before I got it replaced with a fresh battery, I relied on the save state feature to make progress in the game. After the battery was replaced, I loaded the save state, which had the same time as before the battery was replaced.

Unlike Pokémon, there is no way to change the clock in Telefang without starting a new save file, so I had to leave it the game in sleep mode for hours and then wake it up once the time was accurate.