Bogost Montfort Hastac
Bogost Montfort Hastac
Bogost Montfort Hastac
Platforms have been around for decades, right under our video games and digital art.
Those studying new media are starting to explore the low level of code to learn more
about how computers are used in culture, but there have been few attempts to go even
deeper, to the metal — to look at the base hardware and software systems that provide the
foundation for computational expression. Platform studies is such an attempt,
investigating the relationships between the hardware and software design of standardized
computing systems — platforms — and the creative works produced on those platforms.
INTRODUCING PLATFORMS
The hardware and software framework that supports other programs is referred to in
computing as a platform. A platform in its purest form is an abstraction, simply a
standard or specification. To be used by people and to take part in our culture directly, a
platform must manifest itself materially. This can be done in the chips, casings,
peripherals, and other components that make up the hardware of a physical computer
system. A platform may also include an operating system. It is often useful to see a
programming language or environment on top of an operating system as a platform, too.
Whatever the programmer takes for granted when developing, and whatever, from
another side, the user is required to have working in order to use particular software, is
the platform. In general, platforms are layered -— from hardware through operating
system and into other software layers —- and they relate to modular components, such as
optional controllers and cards. Studies in computer science and engineering have
addressed the question of how platforms are best developed. Studies in new media have
addressed the cultural relevance of particular software that runs on platforms. But little
work has been done on how the hardware and software of platforms influences,
facilitates, or constrains particular forms of computational expression.
By choosing a platform, new media creators simplify development and delivery in
many ways. Their work is supported and constrained by what this platform can do.
Sometimes the influence is obvious: A monochrome platform can’t display color, a video
game console without a keyboard can’t accept typed input. But there are many more
subtle ways that platforms interact with creative production, due to the idioms of
programming that a language supports or due to transistor-level decisions made in video
and audio hardware. In addition to allowing certain developments and precluding others,
platforms also encourage and discourage different sorts of expressive new media work
with much more subtlety. In drawing raster graphics, the difference between setting up
one scan line at a time, having video RAM with support for tiles and sprites, or having a
Pre-VCS Gaming
The Atari VCS appeared at a time when the vast majority of video games were played in
bars, lounges, and arcades. Today, the arcade cabinet is a rare sight, but in their heyday
coin-operated games generated more income than today’s home console-dominated
market.3 At a time when coin-ops ruled the market, part of the appeal of the home
console system was its promise to tap a new market of kids and families.
That year Atari, eyeing the home market for video games, also designed a home
Pong and arranged for Sears to sell it exclusively — which they did, moving 150,000
units in 1975.4, Atari’s triumph was short-lived, however. In 1976 General Instrument
released its $5 AY-3-8500, a “PONG-on-a-chip” that also contained simple shooting
games. It, along with other cheap processors, allowed even companies without much
electronics experience to bring Pong-like games to market. They did — there were 75
available by the end of 1996, “being produced in the millions for a few dollars apiece.”
Even if Atari had cornered the market for home Pong, having that system in a home
wouldn’t have done anything to lead to future sales. How many Pongs could one house
have needed? Atari looked, instead, to model some features of the nascent personal
computer market with a home console that used interchangeable cartridges, allowing the
system to play many games. There would be an important difference from home
computing, as Atari saw it, though: All of the cartridges for the system would be made by
one company.
The tremendous success of Pong and the home Pong consoles suggested that
Atari produce a machine capable of playing Pong-like games. The additional success of
Tank by Kee Games (a pseudo-competitor that Atari CEO Bushnell created to give the
sense of an industry) suggested similar design possibilities for what would become the
VCS. Tank featured two player objects, each controllable by a separate human player,
and projectiles that bounced off walls — a computational model almost identical to Pong,
Sprites
Many of the common techniques on the VCS are rooted in the manual nature of graphics
programming for the device. Despite its simplicity, combinations of hardware and
software techniques have produced a wide variety of visual, audio, and gameplay effects
in many hundreds of games created in the three decades since the console’s release.
Rather than try to describe all of these in cursory detail, we focus on one aspect of VCS
games: sprites.
In computer graphics, a sprite is a two-dimensional image composited onto a two-
or three-dimensional scene. The VCS was designed to support two sprites, each a single
byte in size, set via two memory-mapped registers on the TIA (named GRP0 and GRP1,
respectively). The influence of Pong and Tank can be seen clearly here. Such games
feature two opponents, each controlled by a human player. The VCS provided a facility
for a single-pixel Pong-like ball, single-pixel Tank-like missiles, and the player sprites
that were common to both games.
Sprite Graphics
When the programmer stores a value in the GRP0 or GRP1 register, the TIA displays that
8-bit pattern on-screen. A VCS sprite is thus always 8-bits wide, although the TIA
provided a few ways of modifying the appearance of sprites on screen.
Bit 7 6 5 4 3 2 1 0 Sprite:
Line 0 0 0 1 1 1 1 0 0 XXXX
Line 1 0 1 1 1 1 1 1 0 XXXXXX
Line 2 0 1 0 1 1 0 1 0 X XX X
Line 3 1 1 1 1 1 1 1 1 XXXXXXXX
Line 4 1 0 1 0 0 1 0 1 X X X X
Line 5 1 0 0 1 1 0 0 1 X XX X
Line 6 0 1 0 1 1 0 1 0 X XX X
Line 7 0 1 0 1 1 0 1 0 X XX X
Line 8 0 1 0 0 0 0 1 0 X X
Figure 1 shows the pattern for a sprite — a 2D image, but one that is drawn, like
everything on the VCS, one line at a time. Each sprite register can only contain the one
byte of data that it needs for a single line of on-screen graphics. To draw the sprite shown
above, the programmer would have to load the byte of graphics for the alien invader that
corresponds with the current line on the television display and store that value in the
sprite graphics register during the horizontal blank, in between the drawing of two lines.
To position a sprite vertically, the programmer would have to keep track of which lines of
the display have sprites on them, and compare the current line to that value in memory
before drawing.
Sprite Variations
To allow for variations in sprite graphics, the TIA offers two Number-Size registers that
enforce automatic modifications to the sprites when drawn on screen (named NUSIZ0
and NUSIZ1, respectively). In particular, the programmer can change the number of
sprites drawn on a single line, as well as the size of the sprites. The size of missile
graphics, which are always comprised of a square shape corresponding in color to its
parent sprite, are also adjustable. Adjustments to the sprites are made by setting one or
more of the lowest three bits on the Number-Size register register. Table 1 shows a
summary of the size and number adjustments afforded by this register.
D2 D1 D0 Description
0 0 0 one copy
0 0 1 two copies - close
0 1 0 two copies - med
0 1 1 three copies - close
1 0 0 two copies - wide
1 0 1 double size player
1 1 0 3 copies medium
1 1 1 quad sized player
The Number-Size register offers an easy way to modify the appearance and
behavior of player sprites. The most transparent use of this technique is in Combat, which
uses the Number-Size settings as the basis for many of its 27 game variations. The bi-
plane and jet plane variations that double, triple, or stretch one or both sprites use the
Number-Size register to accomplish what would otherwise have had to be done through
complex on-the-fly graphics processing or by storing additional sprites in precious ROM
— Combat is a 2k cartridge. For example, variation 19 is “2 vs. 2 Bi-Plane,” in which
each player controls two planes which fly in formation. This variation does nothing more
than setting NUSIZ0 and NUSIZ1 to the binary value %00000001, which corresponds
with “two copies - close” in the Number-Size register table above. Variation 20 is “1 vs.
3 Bi-Plane,” in which player one controls a large plane and player two controls three
small ones in formation. This variation sets NUSIZ0 to %00100111 (quad sized player)
and NUSIZ1 to %00000110 (three copies - close).
Multiple Sprites
As we discussed above, the VCS shared the video game marketplace with coin-op arcade
games, most of which were built on much more sophisticated technical infrastructures.
The VCS exchanged graphical complexity and specificity of circuit design for multiple
cartridge home play. But the massive popularity of arcade games like Space Invaders and
Pac-Man suggested a special opportunity for the VCS: home versions of these popular
coin-op games were bound to be hits.
Combat, with its tank variations based on Tank, showcases the hardware
affordances of the VCS more clearly than almost any other game. For example, it uses
two sprites, each of which fire a corresponding missile. But games like Space Invaders
were not designed with the peculiarities of the VCS in mind. Sprites were different in
many post-1977 arcade games. Notably, there were often more than two per screen!
When faced with the rows of aliens in Space Invaders or the fleet of ghosts that chases
Pac-Man, VCS programmers needed a way to draw more than two sprites, even though
only two one-byte registers were available.
One method comes from an exploit in the way sprites are positioned on screen
horizontally. A VCS programmer positions a sprite vertically on screen by comparing a
counted television line number with a variable stored in RAM to see if a sprite needs to
be drawn there. This technique is grounded in the nature of the CRT television: the
horizontal blank offers a natural break in screen drawing during which a few cycles of
processing can be accomplished. But no similar natural mapping exists for horizontal
positions on screen. To allow the VCS programmer to position sprites horizontally, the
TIA exposes a set of horizontal motion registers for each of the sprites, the missiles, and
the ball (named HMP0, HMP1, HMM1, and HMBL, respectively). Any object that is not
intended to move must have 0 set in its corresponding register. To move an object, the
programmer writes an offset value from -8 to +7 to move that object by the
corresponding number of TIA color clocks. The TIA also exposes another register called
HMOVE to execute changes in horizontal motion. These registers were primarily
intended to be set during a vertical blank — that is, between screen draws. For example,
Combat repositions both player and missile horizontal positions each frame, then updates
variables in RAM to insure that the objects are drawn on the appropriate lines, then
updates the horizontal motion registers once at the start of the frame.
These titles do not provide as rich a system of control as the Wii remote does, but they
record how Nintendo used “cartridge hacks” as a way of prototyping gyroscopic control,
both as an abstract interface principle and as a product in the market. The Wii extends the
idea of earlier motion-sensitive cartridges both conceptually and technically. The Wii
remote contains gyroscopes and accelerometers capable of measuring rotational
movement and acceleration along the device’s major axes. The basic motions shown in
Figure 4 are the ones that are possible to detect and interpret in software.
In addition to the gyroscopes and accelerometers, the Wii also connects to an
infrared (IR) strip sensor that detects when the Wii remote is pointed directly at the
screen. The user configures the Wii for the location of the sensor — above or below the
screen — and the sensor couples its readings with the top/bottom and left/right
gyroscopic rotation sensors to create a pointing device. A cursor is displayed onscreen,
and the Wii uses this cursor for primary selection in console menus, and some games also
use it for gameplay.
Intuitive Interfaces
The Wii promises a more intuitive interface for video games. Both marketing and popular
praise for the device announces that players can simply move the device as they would a
prop like a tennis racket or bowling ball, and the game will respond accordingly. But the
machine doesn’t actually understand complex gestures that correspond directly to the
basic components of real world physical activities. Instead, it understands rotation and
acceleration along the axes just described. As a result, the software opportunities for the
machine must either translate complex combinations and sequences of rotation and
acceleration, or rely on simpler motion detection with the assumption that the player will
interpret those simpler actions as more complex ones. The Wii’s apparent ability to
recognize gross motor gestures comes from combining combinations of the more basic
motion detection methods.
The translation of the Wii’s motion detection capabilities into basic gameplay
mechanics are most easily observed in WarioWare: Smooth Moves, the first Wii game in
EPILOGUE
We are hopeful that our efforts in platform studies will be of good use to those interested
in creativity and computing, and that others in the digital media community will join us in
this studies. To this end, we are happy to announce a new Platform Studies book series
we are co-editing at the MIT Press. Potential writers should consult the series website at
http://www.platformstudies.com.
NOTES
1
Nick Montfort, “Combat in Context,” Game Studies 6:1 (2006),
http://gamestudies.org/0601/articles/montfort.
2
Tekla E. Perry and Paul Wallich, “Design case history: the Atari Video Computer
System,” IEEE Spectrum 20:3 (1983), 45-51.
3
Harold L. Vogel, Entertainment Industry Economics (Cambridge: Cambridge Univ.
Press, 2001).
4
Martin Campell-Kelly, From Airline Reservations to Sonic the Hedgehog: A History of
the Software Industry (Cambridge, MA: The MIT Press, 2004).
5
Scott Cohen, Zap!: The Rise and Fall of Atari. (New York: McGraw-Hill, 1984).
6
Perry and Wallich.
7
Ibid.
8
Ibid.
9
Ibid.
10
Marshall Brain, Jennifer Hord, “How the Wii Works.” How Stuff Works.
http://electronics.howstuffworks.com/nintendo-revolution.htm; Matt Casamassina,
“IGN’s Nintendo Wii FAQ,” IGN. Sep 19. 2006,
http://wii.ign.com/articles/733/733464p1.html.
11
Erik Sofge, “Nintendon’t: The Case against the Wii,” Slate. November 20, 2006,
http://www.slate.com/id/2154157.