TetrisGYM SPS Vulnerability Research

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 »

Spanish vocabulary building


June 17, 2023

A small project I'm current working on has started, so I thought I'd make a short blog about it.

Let's say that someone made a deck of flash cards for SRS. Assuming you want to use the SRS, you can load the deck and let the software do the work. But what if you don't want to use the SRS?

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 »

next »