3 ms·
NES might not be a good version for such a project, as most of the time would likely be devoted to working around bugs that start cropping up as you play far be
by Kitaru 14y ago
NES might not be a good version for such a project, as most of the time would likely be devoted to working around bugs that start cropping up as you play far beyond the Level 29 "kill-screen." NES was never intended to be humanly playable beyond that point, so weird things start cropping up as you progress that can cause strange behavior or lock up the game.
It could still be possible, but you'd have one more thing to reverse engineer beside just the randomizer. The game does eventually loop back to Level 0 if you get through all the bugs in "the outlands," so I guess as long as you start your game there and are able to manipulate the RNG properly then it may be feasible. The RNG is a LFSR with 32,767 positions, and the selection method is also dependent on the previous piece dealt (starts empty) and number of pieces dealt since power-on (stored in a byte).
(EDIT: There are also ways to indefinitely prolong entry delay via pause cycling. Actually, scratch that, you could even just pause a bit at the end and wait for the proper frame, assuming the other variables are properly aligned. That almost seems a bit unfair though, heh.)
The 1988 Sega arcade version might also be good for such a project. What NES was to North America in terms of being an authoritative "classic" version, Sega Tetris was to Japan. It fills an array with 1000 pieces at the start of each game, so creating some sort of looping pattern would be very possible there.