Sonic 2 (MS/GG) Timer Fix
Basically, there's a bug in the game's timer. The code to reset it does not reset the framecount, so at the beginning of a level, the timer could be anything from 0.00s to 0.99s. This patch fixes it.
Original Code (MS Version)
000021C9 LD A,(D2B7h)
000021CC OR A
000021CD JR NZ,+0Eh
000021CF XOR A
000021D0 LD (D2B9h),A ; reset seconds
000021D3 LD (D2BAh),A ; reset minutes
000021D6 DEC A
000021D7 LD (D2B8h),A ; start timer
000021DA EI
000021DB HALT
000021DC RET
000021DD EI
000021DE HALT
000021DF RET
000021CC OR A
000021CD JR NZ,+0Eh
000021CF XOR A
000021D0 LD (D2B9h),A ; reset seconds
000021D3 LD (D2BAh),A ; reset minutes
000021D6 DEC A
000021D7 LD (D2B8h),A ; start timer
000021DA EI
000021DB HALT
000021DC RET
000021DD EI
000021DE HALT
000021DF RET
Modified Code
000021C9 LD A,(D2B7h)
000021CC OR A
000021CD JR NZ,+0Eh
000021CF XOR A
000021D0 LD (D2B9h),A ; reset seconds
000021D3 LD (D2BAh),A ; reset minutes
000021D6 LD (D2BCh),A ; reset frames
000021D9 DEC A
000021DA LD (D2B8h),A ; start timer
000021DD EI
000021DE HALT
000021DF RET
000021CC OR A
000021CD JR NZ,+0Eh
000021CF XOR A
000021D0 LD (D2B9h),A ; reset seconds
000021D3 LD (D2BAh),A ; reset minutes
000021D6 LD (D2BCh),A ; reset frames
000021D9 DEC A
000021DA LD (D2B8h),A ; start timer
000021DD EI
000021DE HALT
000021DF RET