TetrisGYM SPS Vulnerability Research

1 comment

First off the tl;dr for those in a hurry.

My SPS source code has been available since July 2022. It's not the only implementation.

So the short explanation is that the design of pickTetriminoSeed, the function that is the basis for the whole of TetrisGYM SPS (v4 and v5 seeds) has a weakness that Tetris original rom does not. The attached seeds are a list of seeds that fall into the same sequence before piece 100. This is caused by @invalidIndex. There are 276 seeds. Because of how the LFSR in generateNextPseudorandomNumber works, it's not just 276 seeds that do that, it's ~2x that. This is true of just about everything I've checked so instead of 4 million unique seeds, we have about 20k-80k sequences that a player can expect to get (research not complete). And because of how it locks, it continues indefinitely. This is probably beyond the capacity of a person to memorize, but we could see players memorize a small fraction of favorable and unfavorable sequences for a benefit in competition. Let's start the work of writing an improved SPS shall we?

Read more »

Tegula


June 17, 2023

Tegula A 15 tile puzzle game

In 2020 I wrote Tegula. Yesterday I released it. Please take a look.

Read more »

Long 18


Mar 24, 2023

Long 18 binary patch [sig]
Long 18 TetrisGYM patch [sig]

I wrote a small change to TetrisGYM for the NES and flashed it to my flash chip, put it into my CNROM board, and into my original unmodified NES, and played it. The video is below.

Read more »

Flash Programmer


Mar 24, 2023

Tonight I finished a major electronics project that will no doubt bring joy to many people. While I could have spent $101.55 on a reliable universal programmer1 and been done weeks ago, I decide to go the build-it-myself route and see where it led me. I used these instructions.

Flash programmer hooked up to logic analyzer

The necessary disclaimer at the start of any cool project notes: this took me way too long to get working and buying would have taught me almost nothing about electronics. But if you are not ready to learn things you didn’t want to know, I recommend buy or don’t attempt instead of following my path.

Read more »

« previous next »