Postmortem

Metroid and me

Top 5 NES game cartrdges

Top 5, perhaps. Zelda, Metroid, Kid Icarus, Megaman and Blaster Master.

GBA SP NES with Zelda and Metroid

I must be near it, always.

I remember seeing Metroid, Zelda and Kid Icarus pictured on the flyers that the Swedish Nintendo Club sent out to members in 1988 or so. Fortunately, this Great Trilogy of sorts was soon in my possession. At 10, I was the perfect age for those games. Just smart enough to understand what's going on, but not smart enough to understand the limitation of games. This resulted in an incredibly immersive experience as the games seemed to contain entire living worlds where anything could happen. My first session with Zelda is one of those magical moments that I will probably never experience again.

At that time, my uncle was running a video rental store, which also carried NES games. When I was visiting my grandma who lived nearby, he'd always let me borrow a game for free. Metroid was one of those games. I remember starting it up, the sound of Samus spawning, the eerie alien environment surrounding me, and the amazing low gravity jumps. Just like Zelda, Metroid seemed to offer me a living world to explore. Within minutes I knew the game was nag-my-parents worthy, and it didn't take long before I got my own copy.


Metroid binders

Some of my Metroid binders, containing material from 1987 and onwards to present.

Perhaps I destroyed some of the magic of the game by learning so much about it (and making the mistake of growing older), but I kept playing it for years, and decades.

With only a few days remaining of June 1999, I uploaded my Metroid 1 fansite "Planet Zebes" for all to see. I had spent about a month doing illustrations of all the enemies, and had also managed to crack the password system. In the months following I kept updating the site with articles on this and that, and by Yule '99 the site had about 200 visits a month (perhaps not all crawlers and lost surfers). Early into the next millennium (just a month later) I moved Planet Zebes to a Nintendo fan site where it grew much in popularity. There it sat for quite some time after its abandonment in mid 2001.

I've had numerous Metroid projects before and after Planet Zebes, redrawing many of the the characters at least biannually. Below is a small selection of the art that I did for the site in 1999. It was done with pencil, ink pens and acrylic paints on A4 paper.


Samus FGP team Ripper autopsy Chozo Equipment Equipment
Blue Waver Yellow Zebbo Yellow Zoomer Purple Dragon Purple Squeep Teal Nova Red Zeb Metroid
Motherbrain Fake Kraid Fail manga FGP guy, digital BG

I'm not much better at manga faces now, unfortunately. And them are some long thighs. Some of the figures have digitally altered backgrounds it appears.

Aftermath

Website screenshot, 2001

The website changed layout a few times. Here's how it looked soon before being abandoned.

Planet Zebes eventually did fairly well for what it was. I think it held the top pagerank for a while (on several Metroid related search words), along with another site called Metroid Database. Of course, at that time there weren't a lot of Metroid fansites on the net, something which was certainly about to change with the release of Metroid Prime in late 2002. Later, Andrew Jones (who funnily enough is using the artist name Android) mentioned that he might have used some of my drawings as inspiration for his work on Prime, so apparently my site hadn't gone unnoticed.

Over at conceptart.org, I won one of the Thunderdome art contests (with my Megaman "Megagirls"), and as a prize Retro Studios had kindly donated a copy of Metroid Prime (1) signed by the guys, and also a Metroid 2 manual signed by one of the directors! Unfortunately I couldn't play MP1 since it was US region...

I think Retro Studios wanted me to do some work on MP3, but by then I was somewhat happily self employed, working as a freelancer and indie game developer.


But lets go back to the year 2000. I was just discovering digital coloring, and experimented a bit with various techniques and programs. On display below is some of the new Metroid art which I had online at the time, now annotated by the present myself. I didn't much understand how to think about relations, masses and how to plan out the flow of the figure. So much thoughtless nonsense in the lines! Not really a fan of the armors that I was doing either. I still liked the huge-feet style then.

Metroid artwork, 2000

I uploaded a new batch of Metroid artwork in late 2002 - early 2003, just having found a digital coloring, or rather, painting style that I was more comfortable with. I was still working a lot with ink pens at the time though.

Metroid artwork, 2002 to 2003

The 2004+ stuff might appear here later. I also have some older stuff which predates the Planet Zebes Material. You can see hints of it in my binders.

So how does the Password system work?

Perhaps you have wondered how the password system works. I always did. That is why I had to crack it. It took weeks of hard work and when I was finished it came to my knowledge that somebody else already had done it. Still, I felt quite proud having managed to do it.

At first, it was all nonsense to me, and I didn't know anything about deciphering. Eventually, I realized that each letter was probably a 6-bit character because there were only 64 letters (not 256). I started plotting the bits down on grid paper, taking notes of changes between different passwords. It didn't make sense at first. The bits changed even though I hadn't done anything in the game.

The reason for this jitter was twofold: the ingame timer was ticking and changing bits (two bytes actually), and there was a bit field rotation feature trying to make my task harder. Once I had figured this out, it was easy to see how certain bits were set when I grabbed items and opened doors. Before me now lay the monumental task of grabbing every item in the game, shooting every red door, taking a before and after password for each little thing! This was done on a real NES, as I didn't fiddle around with emulators much at the time.

To assist me, I booted up my trusty old Amiga 1200, and wrote a password comparison program in AMOS Pro. It spat out the bits which had changed between passwords, after rotation had been zeroed. Slowly but surely I figured out what most of the bits stored. A few remain a mystery to me still. Some crash the game I think. Perhaps deliberately.

Soon after, I decided to look in the .rom for any hardcoded passwords. I was sloppy and didn't find any, so it was frustrating when someone else found NARPAS SWORD some time later.

Anyways, if you are curious about the password system (and know a thing or two about bits and bytes) take a look below. I wrote this in '99 but edited some of my poor wording.

Password architechture

The code is 24 letters long, a letter uses 6 bits (there are 64 different letters). 24 times 6 is 144 bits (18 bytes). The last 2 letters store the rotation and checksum. So, we got a maximum of 132 bits to store information in. What is there to store then? Let's have a look at that...

Map   : 19 doors
Map   : 5 zeebetites protecting the mother
Map   : 8 energy tanks
Map   : 21 missile tanks
07    : Is the Maru mari available?
02    : Is the Bomb available?
12    : Is the Varia available?
1F    : Are the High jump boots available?
1D    : Is the Screw attack available?
79    : Killed Kraid?
7B    : Killed Ridley?
78    : Kraid statue activated?
7A    : Ridley statue activated?

40    : Play as Samus without armour?

44-47 : Your start location

48    : Ice beam equipped?
49    : Wave beam equipped?
4A    : Varia equipped?
4B    : Maru mari equipped?
4C    : Screw attack equipped?
4D    : Longshot equipped?
4E    : High jump boots equipped?
4F    : Bombs equipped?
48+49 : Wierd ice beam? (set both to 1)

50-57 : Number of missiles in possession, one byte
58-67 : Time elapsed, two bytes (word)

84-87 : Code rotation.
88-8F : 8 checksum bits.

7C-83 : If you set all these bits the entire code
        is reset and bits 0C-0F are set. Wierd.

These are spare bits that may hold various
secrets like the missing Mother brain etc.
38-3D : ?
41-43 : ?
68-77 : ?

You wonder what the hex stuff in front of the lines are? It's my way of telling you where in the code the information is stored, much like an adress. Take a look at the table below and you might understand. "Map" means you have to consult my map to get the adress of each individual object. For example, if you set bit 05 to 1 the red door to the longshot treasure is open. If you set the bit to 0 the door is closed.

CODE TABLE -144 bits long
First word
00,01,02,03,04,05  06,07,08,09,0A,0B  0C,0D,0E,0F,10,11

12,13,14,15,16,17  18,19,1A,1B,1C,1D  1E,1F,20,21,22,23

Second Word
24,25,26,27,28,29  2A,2B,2C,2D,2E,2F  30,31,32,33,34,35

36,37,38,39,3A,3B  3C,3D,3E,3F,40,41  42,43,44,45,46,47

Second row, third word
48,49,4A,4B,4C,4D  4E,4F,50,51,52,53  54,55,56,57,58,59

5A,5B,5C,5D,5E,5F  60,61,62,63,64,65  66,67,68,69,6A,6B

Second row, fourth word
6C,6D,6E,6F,70,71  72,73,74,75,76,77  78,79,7A,7B,7C,7D

7E,7F,80,81,82,83  84,85,86,87,88,89  8A,8B,8C,8D,8E,8F
                   r  o  t  r. c  h   e  c  k  s  u  m.

I drew this map on my Amiga 1200, using Deluxe Paint AGA.

Deciding start location

These are the binary codes that decide your start location. Enter them at the adress 44-47. Note that if you enter an invalid combination the game will reset to the title screen or crash.

0000 -Brinstar
0010 -Hideout 1
0001 -Norfair
0100 -Hideout 2
0011 -Tourian
1110 -Example of an invalid combination

Let's give Samus some missiles

The adress 50-57 stores the number of missiles carried by Samus. Samus may have up to 255 missiles. How do we store the number 81 using 8 bits (one byte)?

Adr   50  51  52  53  54  55  56  57
Value 128 64  32  16  8   4   2   1
Bit   0   1   0   1   0   0   0   1

Aha! 81=64+16+1. So, this is how 81 looks like in binary: 01010001

Note that Samus got to have enough missile tanks to carry that amount of missiles.

Setting the amount of time elapsed

The amount of time elapsed is stored using 2 bytes. The byte to the left is worth less than the one to the right. This is how we store the number 16752.

Left byte:
Adr   58  59  5A  5B  5C  5D  5E  5F
Value 128 64  32  16  8   4   2   1
Bit   0   1   1   1   0   0   0   0

Right byte:
Adr   60    61    62   63   64   65   66  67
Value 32768 16384 8192 4096 2048 1024 512 256
Bit   0     1     0    0    0    0    0   1

How good ending you get depends on how much time you've spent playing. I think there are about 22 ticks/units per second but I have not explored this function further. However, since we all want the best "bikini" ending we set these bits to 00000000 00000000.

Rotating the code

You don't have to do this, but i'll explain how it works anyway. Bits 80-83 stores a number between 0-15. If the number is 6 the bits 00-7F are rotated 6 bits to the right. Bits 7E-83 become bits 00-05 (It's called "rotate no carry", I think). The program that interpretates the code then rotades the bits back to their original position. The whole point of this procedure is to confuse poeple trying to crack the password system. Set the rotation to zero (four blank bits).

Setting the checksum

The last 8 bits are a checksum that's there to ensure that you can't enter random stuff and have a code which works. The checksum is probably the result of a bit operator thingy that is applied on all bytes in the code. To calculate these bits would be tedious work, so instead we try all 256 combinations, which is much faster unless you're a genius or have a program which does it for you. Basically, you can come up with any nonsense text and make it work by just changing the last two letters. The JUSTIN BAILEY password is most likely just one of these happy accidents.

Try the following combinations of the last two letters:

Second last letter:
0 1 2 3

Last letter:
0 1 2 3 4 5 6 7 8 9 A B C
D E F G H I J K L M N O P
Q R S T U V W X Y Z a b c
d e f g h i j k l m n o p
q r s t u v w x y z ? -

To speed up this testing process we press this combination on the joypad. Right, B, A, start (*beep* error try again!)

Convert into letters!

Once you have arranged your data you will need to convert it into letters. How convenient, below is a table for just that purpose.

0 000000   W 100000
1 000001   X 100001
2 000010   Y 100010
3 000011   Z 100011
4 000100   a 100100
5 000101   b 100101
6 000110   c 100110
7 000111   d 100111
8 001000   e 101000
9 001001   f 101001
A 001010   g 101010
B 001011   h 101011
C 001100   i 101100
D 001101   j 101101
E 001110   k 101110
F 001111   l 101111
G 010000   m 110000
H 010001   n 110001
I 010010   o 110010
J 010011   p 110011
K 010100   q 110100
L 010101   r 110101
M 010110   s 110110
N 010111   t 110111
O 011000   u 111000
P 011001   v 111001
Q 011010   w 111010
R 011011   x 111011
S 011100   y 111100
T 011101   z 111101
U 011110   ? 111110
V 011111   - 111111

An nightmare example

I've engineered a nightmare code which drops you in tourian without armour. You only got 3 energy tanks, 144 missiles, the ice beam and the Maru mari. You're practically dead if you get caught by a Metroid. Kraid and Ridley are dead so you only have a maximum of 150 missiles. Time set to 0, you will get the best ending if you finish.

000100 000000 001000 000000 000000 000000
4      1      8      0      0      0     

000000 000000 000000 000000 000000 000011
0      0      0      0      0      3     

100000 100110 010000 000000 000000 000000
a      9      O      0      0      0     

000000 000000 010100 000000 000010 010101
0      0      K      0      2      L     

Code converted to letters:  418000 000003
                            a9O000 00K02L 

Famous passwords

I think these passwords are just happy accidents (the checksum just happened to match). NARPAS SWORD is perhaps the only built in password.

8888KK KKKKKK      999999 999999      XXXXXX XXXXXX
KKKKKK KKKKKK      KKKKKK KKKKKK      KKKKKK KKKKKK

BBBBBB BBBBBB      BBBBBB BBBBBB      ZETROI DNINTE
BBBBBB AAAAAA      BBBBBB IIIIII      NDOc19 87????

gunpei yokoi?      JUSTIN BAILEY      JUSTIN BAILEY
X11111 XXXXXX      ------ ------      ------ 000000

JUSTIN BAILEY      justin bailey      justin bailey
+blanks here+      +blanks here+      ------ ------

My engineered codes

I made some codes which are easy to punch in. Notice that Samus is actually a brunette without the Varia (like in the ending sequence), and blonde when missiles are activated. Most people probably completed the game with the Varia and got the green hair. It's possible that the designer wanted to give Samus dark curly hair like Lt. Ellen Ripley, but had to settle for brown because of the black background in the game.

Start as Samus without armour or Varia
000000 000020
000000 000020

No varia available
00W000 000000
000000 000008

Easy start (wavebeam)
000000 000000
Vm0000 00001-

Easy start (special ice beam)
000000 000000
-m0000 00003-

Ultimate ending
Tip: Use the energy tank up in the roof near where you start.
-?---- ---mC0
--y000 00y03Q

Byline: Niklas Jansson 1999 - 2012.
Characters appearing as fanart are properties of their respective companies.