Introduction:
Recently I hacked a Mario Brothers Cartridge and erased everything
but the clouds. This continues work being carried out by myself
and your favorite BEIGE representatives Paul Davis, Joe Beuckman,
and Joe Bonn. This page is a tutorial explaining how / why the
work was made. I have chosen to present my motives behind the
work by adding my thoughts about the project as comments in the
source code. As a programmer [not a very good one, though a programmer
none the less] my thoughts and motives are most easily exemplified
by my code. Also: thanks to 21C for letting me post this.
Thank you, Cory Arcangel / BEIGE
SOURCE CODE [with comments]:
Below I will go through the source code line by line.
The idea here is to simply write a program that will take the
clouds from Mario Brothers and scroll them across the screen.
Here comes the first line of code:
;********************************************************
;
; BEIGE 2002 - Cory Arcangel
; http://www.beigerecords.com
; http://www.beigerecords.com/cory/
;
; "you mess with the best, you die like the rest" -
Anon
; "punks jump up to get beat down" Brand Nubian
;
;********************************************************
When computer code is made public it is common for programmers
to put contact information for a variety of reasons. Here I have
also included a few small phrases aimed at media artists who
think they can step to my style. This is a trait I inherited
from the early commodore64 cracking scene.
Before I get started with the code I would like to take
this opportunity to state that I am not really a programmer.
The first time I took a class in "computer science"
was at a summer school when I was 8 or 9 years old and I remember
crying and switching to the "storytelling" class. Years
later in college I still didn't like computer science and got
below 50% on most of my exams. I have since grown used to programming
only because it is the mechanism that seems to make most of the
world move. Believe me, if I could order Pizzas [dominos has
a great online delivery mechanism], by painting, I definitely
would paint. So the first line in this program that actually
does anything is:
PROCESSOR 6502
The above line, along with the rest of this program, is
written in a language called assembly language. Assembly language
is the lowest level someone can program. It is one step away
from the ones and zeros, and in some cases involves actual ones
and zeros. I tend to prefer assembly because it gives me control
over the machine and assures me that aesthetic choices are based
on the hardware of the machine and not, say, some dupe at Macromedia.
The above line of code tells our assembler that the processor
for with which we intend our program to run on is the 6502 chip.
This is the chip that made the Apple II possible and thus revolutionized
home computing. The Nintendo runs on a modified version of this
chip. It should not be suprising that the Nintendo and Apple
run on the same processor because video game systems are really
just home computers with out disk drives.
DELAYSCROLL EQU #$01
NTShow EQU #$00
SCROLL EQU #$00
ORG $8000 ;32Kb PRG-ROM, 8Kb CHR-ROM
I like the idea of making things out of trash [one can
easily find an NES in a dumpster these days], and I like the
idea of actually having to break into something that I find in
the trash even better. The only way to make work for the NES
is to hack and solder a cartridge. To do this, I will clip off
the program chip from an actual Mario cartridge, burn my new
information [the output of this code compiled] to a chip, and
solder it in the place of the old one. The above line tells the
compiler that the chip we want this code to be burned on is 32k.
The next part of code tells the cartridge what to do when we
press the reset button on the NES. This code is from a Canadian
NES genius named Chris Covell, who apparently got it from Duck
Hunt. Awesome. I learned to program in assembly language looking
at examples of code posted by Chris Covell, and as with a lot
of this 8-bit work, information comes mostly from a hobby scene.
In my opinion these are the true heroes of contemporary computer
art. Out of the hobby scene have come portable playstations,
Dreamcasts that boot LINUX, and even hard drives that play music
by spinning at different speeds.