Playing The Past History and Nostalgia
Playing The Past History and Nostalgia
past
h i s to r y a n d n o s ta lg i a i n v i d e o g a m e s
EDITED BY
Zach Whalen
Laurie N. Taylor
Playing the Past
History and Nostalgia
in Video Games
Contributors 265
Index 271
5
Hacks, Mods, Easter Eggs, and Fossils
Intentionality and Digitalism in the Video Game
69
70 Playing in the Past
Digitalism
For digitalism, the first steps involve further pursuing Montfort’s third
approach to IF works: to treat them as computer programs. Commercial
video games, thus far, are digital creations.2 I argue that scholars studying
works of digital media must, as an essential position for rhetorical and
cultural studies of games, approach the content on an equal footing with
those games’ creator(s) or author(s).
Digital means a system of representation based on discrete digits
rather than any sort of continuous spectrum. What this means in prac-
tice becomes especially evident in the way computer programs make de-
cisions. The simplest flow chart that includes at least one decision step
makes the point obvious.
In each decision step, there are one or more discrete choices for exit.
Even in the most complicated piece of branching logic, entry into each
potential branch is, at its core, mediated by a simple test of true/false
(that is, Boolean) logic. Either the condition or conditions for taking the
branch are all true statements and the branch is taken, or at least one con-
dition is false and the branch is avoided. By convention, conditions that
point towards taking a branch evaluate to a Boolean value of “true,” usu-
ally represented by the digit “1.” Conditions that would stop the branch’s
execution are given a value of “false,” and are usually represented by the
digit “0.”3
In technical terms, Boolean data types that hold these values are of-
ten called switches, and these evaluations act like switches on a railroad
track. If “on,” the train of logic will travel down one track; if “off,” the
logic will proceed down another. For trains, taking a third choice is disas-
trous. In digital hardware, a third choice, much less an infinite spectrum
of choices, is—by design—impossible. This is precisely why cybertext so
Hacks, Mods, Easter Eggs, and Fossils 73
Yes
Yes
This Boolean logic also introduces the method for creating “hacks.”
Hacks occur when an unsanctioned third-party or independent program-
mer changes a program’s code to function in non-standard but not nec-
essarily unintended ways. If a hacker could change the above example’s
logic to read, “If the night switch is ‘true’ and the key inventory flag is also
‘true’,” or “1 = 1” (that is, simply adding a trivial expression that makes the
evaluation of the whole always true), the hacker could easily short-circuit
the game’s door to open regardless of the time of day within the game or
whether the avatar is carrying an appropriate key.4 This is precisely what
happens in certain “god mode” cheats in games that, for instance, allow
players’ avatars to walk through walls. By locating the Boolean evalua-
tion where the collision detection occurs, a hacker can essentially insert
a switch that makes the game’s engine believe that collisions never occur.
The new switch permanently sets the collision state to “false” for every
check. The avatar can then move through any wall in the game. The game
is now full of “not-collisions.”
Certain games establish a documented standard where modifications
can be added by placing the homespun content at certain memory ad-
dresses on the computer. Memory addressing is the second important
digital concept computer science lends to ludology.5 Every instruction
in a computer has a memory address of one sort or another. Much as
Hacks, Mods, Easter Eggs, and Fossils 75
Hacking Nostalgic
At this point, it is useful to revisit the term game engine to help establish
how games are “hacked.” Since the earliest days of home consoles, a game
engine has been the part of a video game that interfaced with a game’s
content and evaluated Boolean logic. An engine, if run alone, is not able
to provide a traditional gaming experience. In some ways, engines en-
force the rules of their virtual worlds, but they are not worlds themselves.
Engines are often created to be reusable, supporting more than one pack-
age of content, as with those displayed in Table 5.1.
It is sometimes difficult, especially in classic games, to know where
an engine ends and content begins, as they may contain engines that
were not designed for reuse and seem inextricably wedded to their con-
tent, like Space Invaders (1979) for the Atari 2600. Some contemporary
“games,” however, are hardly games at all; instead, they are little more
than specialized engines with a minimum of content added before their
release, begging third-party modification, like Quake 3 (1999).
Atariage.com remarks that Space Invaders for the Atari 2600 home
gaming console was the first arcade game licensed for home use (“Atari
2600—Space Invaders (Atari)”), and the ability to create the arcade expe-
rience in the home gave the 2600 its iconic stature. Yet Space Invaders, like
76 Playing in the Past
a number of 2600 arcade ports,6 was not nearly as true to the original as
even the limited 2600 hardware would allow. In 1999, using new tools like
modern emulators, Rob Kudla hacked Space Invaders’ code in a doubly
nostalgic attempt to re-create more faithfully the coin-operated arcade
version of Space Invaders on the 2600 (“Atari 2600 Hacks”). Kudla made
the invaders, the player’s tank, sounds, and colors more closely reflect the
original’s. His improvements succeeded impressively.
The first step in hacking Space Invaders’ graphics was to discover the
memory address where graphic content (as opposed to the location of the
game’s engine) was kept in the machine language code. This is not nearly
as hard a task as it may sound. Each invader is made up of ten “scanlines”
of graphics, where each scanline matches one pass of a television’s elec-
Hacks, Mods, Easter Eggs, and Fossils 77
Figure 5.3. Original and hacked graphics, code, and memory addresses for Space
Invaders and Space Invaders Arcade. Images © Taito and Atari, Inc.
tron gun across its screen. Each scanline of the 2600 invaders’ graphics
is eight bits, or switches, wide. It is possible to decompile the machine
language code into a graphic representation of the program’s switches’
values, and the invaders’ graphics’ location in the code become obvious,
in spite of appearing upside-down in the decompiled representation.
In Figure 5.3, the graphics (rotated for easy comparison with the code)
for the original top-level, 2600 invader is displayed on the left next to
the hacked, more arcade-faithful version by Kudla on the right. There are
three columns in each section of disassembled code. The first column for
each invader’s disassembly shows the byte value of the eight-switch line of
graphics in hexadecimal notation.7 The second column shows the value
of each individual switch in every eight-switch line, displaying an “X” for
each switch that is “on” or set to “true.” The last column shows the address
in memory where the line is held, again in hexadecimal format.
Note that the addresses in the third column are the same for both
invaders’ listings ($FC96-$FC9F). The Atari 2600 does not rely on an op-
erating system to abstract memory addresses like most present-day plat-
forms, differing what happens here from the engines of “modern games”
that Bogost notes are modularly “split up into software objects and frame-
works” (55). These, then, are exact, static, unabstracted memory addresses
in fairly monolithic code. That the addresses for the graphics are the same
in the hack as the original suggests that when Kudla made his updates
in Space Invaders Arcade, the logic of the game’s original engine was not
changed, and only a few switches solely related to graphics were hacked
in place.
Kudla’s reliance on a hack in place is also an indication of the degree
to which the engine and content of this classic game are intertwined.
In the byte—a collection of eight switches—located at memory address
$FC96, two switches that were off were switched on and two that were on
were switched off to change the appearance of the bottom of the invader.
Kudla’s creation of two blank lines of graphics at the top of the invader
78 Playing in the Past
Figure 5.4. From Quake 1: (top left) default skin; (top right) model wire frame
outline; (bottom left) Spider-Man skin; (bottom right) female skins, marine model.
Images © id Software.
the latest games to hit market shelves, every one is open to alteration and
additions in the digital age, with the Internet enabling mass consumption
even of hobbyist releases.
Figure 5.5. Adventure’s Easter egg with code disassembly. © Atari, Inc.
not credited in games released for the 2600 by Atari, and Robinett de-
cided to circumvent this rule by burying his name in a secret room of
the game. That Robinett intended players to find the secret room can be
deduced from three clues. The first and most obvious is that the mes-
sage is visible when playing the game. As will be shown, the game’s code
clearly holds his name, but Robinett provided a means for gamers to read
the message on their television screens without sifting through its digital
code. The second is that the graffiti reads, “Created by Warren Robinett.”
This message expects interpretation: it does not simply hold the author’s
name but unambiguously tells the gamer that the game was indeed made
by the named individual. The last comes from the method by which the
room is discovered. The room is accessed when the gamer’s avatar places
Hacks, Mods, Easter Eggs, and Fossils 81
a “dot” Robinett hid in the game near the wall of a specific, easily accessed
room. Robinett had programmed the game’s engine to flash objects when
more were on the screen than the 2600’s hardware could easily support.
The 2600 will only easily display a maximum of two complex objects
called “sprites” (called “player graphics” on the 2600) on the screen with
each frame. When more needed to be present, Robinett circumvented
the 2600’s limitation by making Adventure’s frames flash quickly enough
(with two different objects displayed per frame) to let the gamer under-
stand that more objects were there, though with the side effect that the
items would seem to strobe constantly. Robinett put an extra object into
the room that contained the secret dot to ensure that the room would
flash when the player entered.8 A perceptive player would notice the
flashing in spite of there apparently being fewer items than what caused
flashing elsewhere and be curious enough to eventually discover the exis-
tence of the dot. Not only does Adventure allow a gamer to read the mes-
sage on his or her screen, it also provides hints for the player to discover
those means.
That the secret message was not discovered by Atari during the game’s
development testifies to the way games could be, in the classic era, created
by a single programmer without much oversight. A simple disassembly
today, as shown in Figure 5.5, displays Robinett’s message as easily as the
same method finds the invaders’ location in Space Invaders. Yet Atariage.
com lists five more games released by Atari that included some sort of
Easter egg containing “Programmer Credit” (“Tips, Cheats, and Easter
Eggs”).
Not all digital Easter eggs are created to resist a parent corporation’s at-
tempts to dehumanize programmers.9 San Francisco Rush: Extreme Rac-
ing, created for one of Nintendo’s home consoles, the N64, found itself
in a particularly precarious position. The N64 had enough power to ap-
proach very closely the game play and experience of the coin-operated
original,10 released the previous year. Gamers were also expecting the
home version to contain content from the more recent arcade update,
San Francisco Rush: The Rock. The arcade sequel’s title headlined a new
track for the racing game, which went to great pains to intricately recreate
the streets of San Francisco; the extra track was one created on the land-
scape of Alcatraz, “The Rock.” When San Francisco Rush: Extreme Racing
82 Playing in the Past
was released, however, not only was there no Alcatraz, Extreme Racing’s
project lead, Ed Logg, quashed any reports of plans to bring The Rock to
the N64 (IGN Staff “Rush”).
There was a rumor, propagated online, that claimed that Extreme Rac-
ing had the Alcatraz level hidden on the cartridge. A number of myths
regarding how to access the track sprouted, including winning a race on
each track in record time, using a manual transmission in those races,
and even using a specific car while racing. None of these in-game meth-
ods unlocked the track (Stevefel et al.)
The Alcatraz track was unlocked no later than January of 1998, when
a player posted his or her successful discovery of a code to hack the game
to Usenet (bunivfan). The code worked with a device called a GameShark,
which allows gamers to change values in their console’s memory, much
as Kudla did with the Space Invaders. Instead of changing bit values, the
hack pointed the game’s engine to the secret memory address that held
Alcatraz, tricking the engine into loading and playing the hidden track.
On March 19, IGN.com published a code from Atari Games that allowed
gamers to access the track without a GameShark hack (IGN Staff “You’re
Going”).
IGN.com interviewed Logg on April 1, 1998, regarding how the track
came to be hidden on the cart. In brief, Atari Games’ sales department
did not want Alcatraz in the N64 version so that it would not, as they
saw it, compete with the arcade game, and when the level was added it
was hidden so well that, short of the GameShark, no one was able to ac-
cess the track. The sales department was never contacted. The motivation
for hiding the level was not strictly commercial, however; Logg admit-
ted that the level was not likely to be as well tested as the other six in the
game, which is apparent when the level is played (IGN Staff “Exclusive
Interview”).
San Francisco Rush: Extreme Racing challenges the archetypal con-
cept of the Easter egg, like that found in Adventure, in two main ways.
The first is that Extreme Racing’s track was embedded to create a sort of
time-release content rather than exist as something gamers could hunt
and locate within the game. Logg and his team did not provide a hint
like Robinett’s flashing objects. At the same time, it was content that the
game’s authors intended for the gaming public to experience if and only if
they were in some way in contact with the circles that provided codes, be
it Usenet, IGN.com and other Internet sites; gaming magazines; or friends
who could access one of those outlets. In effect, they hid part of the game
outside of the physical media of, in this case, the cartridge. Alcatraz was
to be a multimedia Easter egg.
Hacks, Mods, Easter Eggs, and Fossils 83
Multimedia Easter eggs have become the rule in video games, and the
means of their distribution mark a sharp change from Robinett’s in-joke
for perceptive players. Lists of newly released codes that almost certainly
could not have been guessed are standard in the back of magazines deal-
ing with video games in what has become a somewhat codependent state
of affairs. The publishing of video games’ codes amounts to free game ad-
vertisements at the same time that the anticipation of new codes sells each
new magazine issue, turning Montfort’s metalepsis into an industry.
The second way that Extreme Racing helps to redefine the Easter egg
is the way that it deprivileged the work’s authors. Alcatraz was discov-
ered without its authors’ consent and contrary to the authors’ design by
GameShark hackers. Gamers are now savvy enough to search for hidden
content that is not accessible solely using the game’s traditional interface.
Alcatraz was meant to be found. With its early discovery, however, gam-
ers proved they had the means to find unintended “eggs” as well. Game-
Sharks, disassemblers like that used by Kudla, model viewers like Pak-
rat (Naughton), and utility software that allows file inspection like hex
editors allow gamers to break from the intended interfaces and creatively
search for hidden content. These tools provide new directions for a player
or “reader” to access digital works.
his girlfriend(s). After dating, CJ’s current girlfriend may invite him into
her house for coffee. For a player without the “Hot Coffee” modification,
the camera shakes suggestively (like CJ’s car when he picks up a prosti-
tute) after he is invited into his girlfriend’s home, but for a player with the
modification, the camera follows CJ inside.
Patrick Wildenborg, who discovered the “fossil” and created a modifi-
cation that allowed others to access it easily, says the following about the
modification on his website:
After reading various discussion [sic] about this mod around the
internet, I would like to make the following statement:
All the contents of this mod was already available on the original disks.
Therefor [sic] the scriptcode, the models, the animations and the dialogs
by the original voice-actors were all created by RockStar. The only
thing I had to do to enable the mini-games was toggling a single bit in
the main.scm file. (Of course it was not easy to find the correct bit).
(Wildenborg, emphasis in the original)12
86 Playing in the Past
An artist makes a painting, then doesn’t like the first version and
paints over the canvas with a new painting, right? . . . That’s what
happened here. Hackers on the Internet made a program that
scratches the canvas to reveal an earlier draft of the game. (Schiesel)
Notes
1. Even more stark a break from the “black box” approach is Montfort’s character-
ization of BASIC as a particularly difficult language with which to write IF and
one he has tried using himself. Here, Twisty Little Passages has clearly moved
from the accessible approaches of IF-as-narrative and riddle and on to the
third—complex computer programs.
2. An interesting study would be the history of video games based on analog com-
puters. I am only familiar with William Higinbotham’s Tennis for Two, created in
1958 (US Dept. of Energy). Regardless, this claimant for the title of the first video
game offers an intriguing alternative to the metaphors of digitalism.
3. There is always an exception that proves the rule. In Visual Basic 6.0, once argu-
ably the most popular programming language for the Microsoft Windows oper-
ating system, “true” is represented by “-1.” To make things even more convoluted,
once the Visual Basic code is translated into machine language, the “-1” becomes
a “1” again (Bailey et al.).
4. The is reminiscent of Captain Kirk’s answer to the Kobayashi Maru simulation in
cadet training, recounted in Star Trek: The Wrath of Khan. When presented with
a “no-win”/always “false” trial in training, Kirk, after failing the simulation twice,
reprograms/hacks the computer to create a winning solution.
5. Though the explanations given for these terms herein are arguably accurate,
a much better—and extremely accessible—primer text is Richard Mansfield’s
Machine Language for Beginners, which explains assembly language program-
ming and the operation of a series of chips found in the Atari 2600, Commodore
64, Nintendo Entertainment System, and the Apple II. These chips are simple
enough to allow a beginner to achieve a reasonable understanding of their opera-
tion and complete enough in their design that the conceptual lessons learned
easily extend to contemporary processors.
6. “Port” comes from “portable” and is something of a misnomer, as most early
“ports,” like Space Invaders for the 2600, were more precisely rewrites on alter-
nate hardware. Other arcade ports that did not fully exploit the 2600’s hardware
88 Playing in the Past
include the infamous Pac-Man (see Ms. Pac-Man on the 2600 as an example of
what the game could have been), Zaxxon, and Popeye.
7. Hexadecimal is a base-16 numbering system that allows eight binary switches
to be displayed in two digits. In the “ones” place, A, B, C, D, E, and F represent
10, 11, 12, 13, 14, and 15, respectively. An A in the “tens” place represents ten
sixteens, or 160. For this study’s purposes, all that is required is an understanding
that these are numbers and that the “$” preceding each hexadecimal number is a
signpost that we are using base-16, not base-10.
8. In this room, the “darkness” was technically an object. The darkness, the dot, and
one extra item were enough to create the flash.
9. An engaging introduction to the topic of the dehumanization of the programmer
is Edward G. Nilges’s “PRACTICAL DECONSTRUCTIVE CODING.”
10. Extreme Racing’s project lead mentions that tracks were shared between the ar-
cade team and the N64 team, meaning that they were both using approximately
the same format for their content, truly porting levels from platform to platform
rather than rewriting the game. The levels from the original arcade game were
going directly into Extreme Racing and three levels from Extreme Racing were
borrowed and placed into a later arcade release (IGN Staff “Exclusive Interview”).
11. This section can be found in an expanded form in “Inviting Subversion: Meta-
lepses and Tmesis in Rockstar Games’ Grand Theft Auto Series” in The Meaning
and Culture of Grand Theft Auto Critical Essays, ed. Nate Garrelts (Jefferson, NC:
McFarland Press, 2006), 210–25.
12. After a controversy appeared regarding the modification, Wildenborg appro-
priately hid this text and the locations of pictures of the modification in his
webpages through the use of “html comments,” a method usually used by html
coders to leave messages for other coders viewing their pages’ code. To read the
quoted material, web users had to hack Wildenborg’s page to access the trivially
hidden content from within the web page’s html code, a method not coinciden-
tally similar to what Wildenborg did to hack San Andreas. He has, as of 13 Janu-
ary 2008, restored the text to his site.
Works Cited
Aarseth, Espen. Cybertext. Baltimore: Johns Hopkins University Press, 1997.
“Atari 2600 - Space Invaders (Atari).” www.atariage.com (6 November 2004). Accessed
7 August 2005.
“Atari 2600 Hacks - Space Invaders Arcade.” www.atariage.com (19 November 2004).
Accessed 7 August 2005. .
Bailey, Wm. Ruffin, Cor Ligthert, Herfried K. Wagner, et al. “Why is minus one (-1)
equal to true in VB again?” microsoft.public.dotnet.languages.vb (Usenet, 21–23
June 2004). Accessed 13 August 2005
Barr, Roger, ed. “Hacked Rom Reviews!” www.i-mockery.com. Accessed 12 August
2005.
Blue Zircon. “Thompson 1928.” www.gtagaming.com (26 July 2005). Accessed 12
August 2005.
Hacks, Mods, Easter Eggs, and Fossils 89
Games Cited
Adventure (Atari VCS/2600). Sunnydale, CA: Atari, 1978.
Descent (Windows). Champaign, IL: Parallax Software, 1995.
Grand Theft Auto: San Andreas (PlayStation 2). New York: Rockstar Games, 2004.
Grand Theft Auto III (PlayStation 2). New York: Rockstar Games,
2001.
Quake 1 (Macintosh). Santa Monica: id Software/MacPlay, 1996.
Quake 2 (Windows). Santa Monica: id Software/Activision, 1997.
Quake 3 (Macintosh). Santa Monica: id Software/Activision, 1999.
Space Invaders (Atari VCS/2600). Sunnyvale, CA: Atari, 1980.
Space Invaders Arcade (Atari VCS/2600). Atariage.com, 1999.
San Francisco Rush: Extreme Racing (N64). Milpitas, CA: Midway Games West, 1997.
Tank (Coin-Op). Kee Games, 1974.
Tomb Raider: Angel of Darkness (Macintosh). Austin: Aspyr, 2004.
Tomb Raider: Chronicles (Macintosh). Austin: Aspyr, 2000.
Zork (various platforms). Cambridge, MA: Infocom, 1979.