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 »

TetrisGYM SPSv3


July 28, 2022

TetrisGYM by Kirjava Cart Made by EricICX With RetroN 1 FC and original NES controller

TetrisGYM SPS 0.2.1 [sig]
TetrisGYM SPS 0.2 [sig]
TetrisGYM SPS 0.1 [sig]

TetrisGYM is a wildly popular mod of Tetris for the Nintendo Entertainment System. It has recently been made into a cartridge by one of the highest scoring players, EricICX. Released in 1989, Tetris has come a long way as a result of high score competition, a fanatical community, and quirks that make it an incredibly difficult game to master. If it was just difficult to master, it might have earned a community. But its quirks have earned a mod that turns the game into a learning experience. The current list of features for TetrisGYM:

Read more »

4th Copper Tape Circuit


Dec 3, 2020

4th Copper Tape Circuit Video

Fourth try is a charm. For a while now I’ve been trying to learn how to make cheap and quick copper tape circuits as described briefly in Bunnie’s 2018 Toorcamp Keynote talk where he discusses the elements for electronics development that has so far provided him with much success. Toorcamp in 2018 happened to provide me with the copper tape used in this circuit, so I thought I’d give a shout out to my Neg9 crew and those who shared the weekend with me.

Read more »

BikeIM 0.5.1


May 5, 2017

On Thursday of this week (May 4, 2017) I released a mail client. It's pretty humble, but I've been using it for a decade and so it was worth it to me to iron out a handful of bugs and make it good enough for other people to use. Currently it won't be much use to you if you run Windows, Mac OSX, don't run your own mail server, or don't understand what fetchmail is*. But those things are fixable and I intend to fix them in the months to come. That means this blog post doesn't have to cater to end users, so I won't attempt to. This blog post will be about how I came to write a mail client and why it makes sense in 2017.

* The wording of that sentence was pretty bad so I'll reverse it. BikeIM-0.5 is usable to you if you run Postfix, if you run Dovecot, if you run OpenSMTPD, if you run fetchmail, if you use GnuPG, if you use Mutt, if you run Linux or *BSD, if you use Git, and understand how to report bugs.

Read more »

next »