Speedrun Timer Romhack
1 year ago

Hi! I've very recently created a romhack that adds an ingame timer to NES Tetris. I programmed it to stop when 100 lines has been reached, so I think it would be wonderful if you allowed its use for official leaderboard times!

More detailed notes on the hack will be in the post below. I've taken great care to disturb the existing code as little as possible. If needed, I'd also be happy to show you a comparison of the disassemblies so you can verify that everything that needs to be there is indeed there.

Unfortunately I seem to be unable to upload files to forum posts, so I'll leave this link to the Classic Tetris Monthly Discord where I released it: https://discord.com/channels/374368504465457153/405470199400235013/984173583519592538

AriesFireTiger likes this

NOTES

  • the timer assumes a 60fps console, when in actuality most NES's run at ~60.098fps. This is not really a massive issue because it takes over 10 minutes for the error to exceed a second, but you can always find the correct time by multiplying the raw time by 60/60.098. i left it this way because (1) it makes the implementation so much easier and (2) the actual time will always be faster than the displayed time, which is a good property.
  • the timer actually displays a time one frame ahead of the measured time until the run has completed. this is because it stops updating the frame before the first time 100 lines appears on the screen, and I found it more elegant to add this difference at the beginning instead of having more annoying logic.
  • i disabled pause because the timer doesn't advance while the game is paused. hopefully this is fine.
  • technically it's possible to wrap the timer around if you play the game for like 4 hours or wrap the line counter all the way back to zero, but it think it's safe to say that this edge case will never be reached by a speedrun.
AriesFireTiger and BameGoy like this
Etelä-Savo, Finland

sounds good. Though I thought Livesplit had an autosplitter for Tetris? Might be mistaken though.

AriesFireTiger likes this

Update: the hack is now up on romhacking.net, and can be found at https://www.romhacking.net/hacks/6913/. Again, if needed I can publish the full disassembly and compare it with the disassembly of the unmodified rom.