Game on!

I was at the thrift store the other day and I found this retro gaming system for AU$15 (US$10). Haven’t had a play with it yet, I’m saving it for when I have some time to do the unboxing. And I didn’t want to do that until I had my new HDMI recording setup installed, but that’s done now, so I AM READY BABY.

John's new retro gaming system

Popular video games

This is fun: List of best-selling video game franchises. Also good: List of longest-running video game franchises. Before I read the first list my sense of perspective was all off. I certainly hadn’t realised how seriously Mario had nailed it.

I ended up on those Wikipedia pages because I was reading about Capcom. And I was reading about Capcom because I have discovered Fabien Sanglard’s wonderful books.

TIS-100 PoC

So not sure if I’ve mentioned TIS-100 on the blog before or not (update: I have). But it’s this neat computer game where you need to program a network of devices (the “Tessellated Information System”) in a pseudo assembly language in order to make a broader information system work. Anyway I was thinking about doing a hardware implementation of the system and using either some type of ATtiny (probably an ATtiny85, maybe an ATtiny45) or maybe an Arduino Nano. I did a mockup with an OLED display using a nano:

TIS-100

I have just discovered TIS-100. So much fun! It came with my Level Up and Learn: Programming Games Humble Bundle. From Wikipedia:

TIS-100 is a programming/puzzle video game developed by Zachtronics Industries. The game has the player develop mock assembly language code to perform certain tasks on a fictional, virtualized 1970s computer that has been corrupted. The game was released for Microsoft Windows, OS X, and Linux personal computers in July 2015.

These are not the codes that you’re looking for

So I was playing Doom3, an old favourite. And I came upon this screen:

The “encrypted” data is:

4697 BNDWQ ERGAZS GHQAZ 1029GG3 VBNY77
KDMH LGSLDG SDLGKSE SDTK YU90G 576457 DDKLFG 67
EO5IY DKFJ -386 FDGL 3465 FG34 36FDG FGL DFGJDF
DFKGJ 6 KDFG DFJ DFGDFJG DFGJLSD APQAZ 100Y
SDFM Z LM TIYOU KDMH LGSLDG SDLGKSE SDTK 576457
DDKLFG AVFTYU8P FKGKYR FJFGJH RETKJER DFKJA

It didn’t look random enough to me, meaning it was possibly encoded, so I started poking at it.

The first thing I tried was ROT13, but that wasn’t it.

I then tried mapping the alphabet to the reverse alphabet (my sister’s idea), but that wasn’t it either.

Then I ran this PHP program:

function main() {

  $text = file_get_contents( 'doom3-notes.txt' );

  freqhist( $text );

}

function freqhist( $text ) {

  $map = [];
  $len = strlen( $text );

  for ( $i = 0; $i < $len; $i++ ) {

    $char = $text[ $i ];

    if ( $char === "\n" || $char === ' ' ) { continue; }

    inc( $map, $char );

  }

  asort( $map );

  report( $map );

}

function inc( &$map, $char ) {

  if ( ! array_key_exists( $char, $map ) ) { $map[ $char ] = 0; }

  $map[ $char ]++;

}

function report( $map ) {

  echo "size: " . count( $map ) . "\n";

  foreach ( $map as $char => $count ) {

    echo "$char: $count\n";

  }
}

And the output was:

size: 35
-: 1
W: 1
2: 1
P: 2
1: 2
8: 2
B: 2
N: 2
I: 2
O: 2
V: 2
9: 3
Q: 3
U: 3
M: 4
0: 4
H: 4
Z: 4
R: 4
T: 5
4: 5
3: 5
A: 6
5: 6
E: 6
Y: 7
6: 8
7: 8
J: 10
S: 11
L: 12
K: 15
F: 21
G: 25
D: 27

And this report was enough for me to deduce what had happened. This was obviously the work of a busy designer entering “random” data from their QWERTY keyboard.

You can tell because all the frequently occurring letters D, G, F, K, L, etc. are all on the home row on a QWERTY keyboard. Someone sat there pressing “random” keys. It’s not an encoded message.

Puzzle solved. But a little disappointing.