Live data from Hacker News

Celebrating the first NES Tetris game crash

biggieblog.com

1–10 of 59 posts

Re: Celebrating the first NES Tetris game crash

#2
The author and the AI video describes some very interesting bugs arisen from assumptions made by the original developers. I'm curious on the technicality of it – what were these assumptions? These are some fascinating bugs. There are some surface explanations here but I have no doubt somebody could write hours worth of content on this, like the other video [0] in the article that discusses real maths.

[0]: https://www.youtube.com/watch?v=BpEcjdr_YDo

Re: Celebrating the first NES Tetris game crash

#3

The author and the AI video describes some very interesting bugs arisen from assumptions made by the original developers. I'm curious on the technicality of it – what were these assumptions? These are some fascinating bugs. There are some surface explanations here but I have no doubt somebody could write hours worth of content on this, like the other video [0] in the article that discusses real maths. [0]: https://ww…

I think the assumptions are pretty simple: Almost nobody’s going to get past 999,999 points and nobody’s going to be able to play at the speed of level 30, so we don’t need to worry about what happens in level 30 or what should happen when somebody gets 1,000,000 points.

Re: Celebrating the first NES Tetris game crash

#5
post #3

The author and the AI video describes some very interesting bugs arisen from assumptions made by the original developers. I'm curious on the technicality of it – what were these assumptions? These are some fascinating bugs. There are some surface explanations here but I have no doubt somebody could write hours worth of content on this, like the other video [0] in the article that discusses real maths. [0]: https://ww…

I think the assumptions are pretty simple: Almost nobody’s going to get past 999,999 points and nobody’s going to be able to play at the speed of level 30, so we don’t need to worry about what happens in level 30 or what should happen when somebody gets 1,000,000 points.

But why specifically 999,999? That's not an overflow or anything...

Re: Celebrating the first NES Tetris game crash

#6
post #3

Earlier quoted context omitted.

I think the assumptions are pretty simple: Almost nobody’s going to get past 999,999 points and nobody’s going to be able to play at the speed of level 30, so we don’t need to worry about what happens in level 30 or what should happen when somebody gets 1,000,000 points.

But why specifically 999,999? That's not an overflow or anything...

I’d have to double check a screenshot but it’s likely the largest number that can be displayed in the area given for the score.

Re: Celebrating the first NES Tetris game crash

#7
post #3

Earlier quoted context omitted.

I think the assumptions are pretty simple: Almost nobody’s going to get past 999,999 points and nobody’s going to be able to play at the speed of level 30, so we don’t need to worry about what happens in level 30 or what should happen when somebody gets 1,000,000 points.

But why specifically 999,999? That's not an overflow or anything...

It's likely it's 3 bytes of BCD (binary coded decimal). It's a handy way of storing things like scores, especially on 6502 processors which have built-in BCD handling support.

Re: Celebrating the first NES Tetris game crash

#8
post #7

Earlier quoted context omitted.

But why specifically 999,999? That's not an overflow or anything...

It's likely it's 3 bytes of BCD (binary coded decimal). It's a handy way of storing things like scores, especially on 6502 processors which have built-in BCD handling support.

No BCD support on the specific chip used in the NES, though.

Re: Celebrating the first NES Tetris game crash

#9

The author and the AI video describes some very interesting bugs arisen from assumptions made by the original developers. I'm curious on the technicality of it – what were these assumptions? These are some fascinating bugs. There are some surface explanations here but I have no doubt somebody could write hours worth of content on this, like the other video [0] in the article that discusses real maths. [0]: https://ww…

The Tetris board is 10 blocks wide, so to be able to play the full field, you need to be able to tap left or right at least 5 times before the block lands. Without tapping at super-human speeds, the fastest way to move the blocks that fast is by holding the left or right button down and letting key repeat take over. When that’s someone’s approach, level 29 becomes fast enough that the pieces can’t reach the edges of the board, so it was traditionally called the “kill screen”, since it wasn’t practical to make progress from there. While it’s possible to get to 999999 before reaching level 29 with that play style, it just didn’t happen all that often, and only by the most elite players.

The last few years have seen people learn how to “roll”, effectively lightly pressing left or right and then drumming their fingers on the back of the controller, getting discrete taps far faster than typical. That lets modern players continue playing at level 29 speeds, and since the speed never increases again, they can play until the game gets to situations that could reasonably be ignored as impossible in the 80s.

Re: Celebrating the first NES Tetris game crash

#10
post #4

I recently got a Miyoo Mini and I almost exclusively use it to play NES Tetris. I’m hooked and I didn’t know there even was a community! https://www.aliexpress.us/item/3256805029072733.html

Ha, I did the almost the thing but to play Gameboy Tetris instead. The Miyoo Mini was impossible to get at a good price around this time last year so I got the Abernic RG35XX and been really happy with it.
Post reply on HN