3 generations of game machine architecture joe decuir [email protected] alumnus of atari &...

44
3 Generations of Game Machine Architecture Joe Decuir [email protected] alumnus of Atari & Amiga

Upload: moris-bradley

Post on 17-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

3 Generations of Game Machine Architecture

Joe Decuir

[email protected]

alumnus of Atari & Amiga

Agenda

• My background

• Atari Stella system (2600)

• Atari Colleen system (400/800, 5200, etc)

• Amiga Lorraine system (1000, 2000, etc)

• looking ahead

My background, pre-Atari

• Clearly an engineer from my first Erector set (age 6)

• BS & MS degrees from Berkeley, in EECS and pre-med, including Intel 4004 design

• A couple years spent in medical instrument design and in medical research that leveraged those instruments.

• Bought my one 6502 at Wescon in 1975.

Stella Architecture

• Product requirements

• Design choices

• Hardware/firmware tradeoffs

• Results

• Lessons

Stella Requirements

• Atari management had a clear vision for the product: provide a means to bring successful Arcade games home.

• We had to hit a $200 max retail price for the console, for Christmas of 1977.

• Expected product life: 3 years (e.g. to 1979)

• Non-goals: be an expandable personal computer.

Stella System• TIA video chip (see below)• 6502-based processor, “6507”:

– 13 bit address, no interrupts, RDY line– 1.2 MHz

• 6532 combo– 128 bytes of RAM (all mapped into zero page)– 16 bits of parallel I/O (joysticks and panel)– timer (interrupt not used)

• cartridge slot for 2K or 4K ROMs (24 pins)• 2 game control ports

Stella Implementation

• From coin-op games, there were two obvious ways to architect the system:– non-programmable random logic– programmable (uP) with screen bit-map

• Fatal flaws in both:– random logic would be slow development, and

not re-usable– bit maps were expensive

Bit maps and games

• Games traditionally contain a background of some kind (playfield) and foreground active objects (players, sprites, etc).

• If only a bit map is used for everything:– sprite graphics and motion resolution are the

same as the playfield resolution, forcing– a hard choice between high cost or clunkiness

The breakthrough: soft video

• Mayer and Milner proposed using a fast enough processor to reload video on a line-by-line basis. The processor replaces logic.

• They had to wait for the right chip:– Intel 8080 was expensive, needed 3 supplies.– Motorola 6800 was too slow– Fairchild F8 was even slower– MOS 6502 was perfect: fast and cheap

Why was the 6502 so good?

• Process speed: depletion load pullup transistors were much faster and smaller than enhancement pullups (e.g. 6800).

• Architecture speed: – little-endian addresses pipelined instructions– indexed-indirect and indirect-indexed

instructions allowed use of zero page as an array of fast memory pointers.

Design decisions

• Our target coin op games were two player action (Tank - Combat), sports (Basketball) and paddle (Pong -Video Olympics) .

• We decided that we needed:– 2 8-bit motion objects (P0, P1)– 3 1-bit motion objects (M0, M1, Ball)– 20 or 40 bits of low resolution playfield

Hardware Software tradeoffs:Motion control

• The easy way to make these motion objects would require a binary horizontal counter, and 5 8-bit position registers and comparators. We thought this would be huge.

• The cheap way was to use dynamic polynomial counters, running in parallel. Motion in implemented with resets and motion vectors.

Motion control, continued

• To appease the programmers, I generated a ‘Compute Horizontal Reset’ CHRST utility.

• Called with object index in X, position in A:– computes a loop count (15 clocks)– computes a residual motion vector (+/-7)– waits for sync, loops, resets and writes motion

• For the programmers, this was good enough

Motion control, epilog

An alternative that we considered too late:

• keep the polynomial horizontal counter

• replace the separate object counters and motion registers with simple position latches and comparators

• use a 160-byte look up table in cartridge ROM to map binary horizontal positions to polynomial counter values.

Other TIA chip features• 4 7-bit palette registers• 15 collision detection latches • 2 channel sound system

– variable prescaler– 4+5 bit polynomial counters– volume registers

• trigger and potentiometer input ports• trigger input could be used for light pens or

light guns.

Stella Graphics

• Fundamental pixel resolution is 1 color burst clock (280nsec, 160/line) by 1 line.

• Motion objects are 1, 2, 4 or 8 clocks/bit.

• Motion objects may be replicated in hardware.

• Playfield is 4 clocks per bit.

• Playfield bits are either repeated or reflected in hardware.

Example Stella Game structure

• In Vertical Blank:– detect collisions and control inputs– decide new game conditions– computer new game graphics pointers

• In Display, for each line or two:– step graphics pointers– fetch graphics– wait for horizontal blank, and write graphics

Atari 2600 market history

• 1st shown at June 1977 CES show

• 250,000 sold in 1977, with 6 cartridges

• 550,000 sold in 1978, but big unsold inventory (800,000 made that year).

• Sales continued to double annually until the market collapse in 1983.

• Est. sales over 50 million by late 1980s.

Atari 2600 Lessons

• Make the hardware a flexible platform for clever developers. (Bill Joy’s theorem)

• Good hardware-software tradeoffs make the product economically viable.

• Real marketing is essential. This means that somebody has a clear vision of:– who will buy the product– why they buy the product at all– why they buy the product from us

Colleen System Architecture (Atari 400/800, 5200, 65XE, etc)• Product requirements

• Design choices

• Hardware/firmware tradeoffs

• Results

• Lessons

Colleen requirements

• Split requirements:– support 1978 vintage arcade games. We knew

we would need to leapfrog the 2600 before somebody else did.

– support home computer character and bit map graphics. We saw the Apple II, Commodore and Radio Shack appliance machines coming.

• Result: – Atari 800 was full computer– Atari 400 was a game machine w/flat keyboard

Colleen computer requirements

• Keyboard

• Character graphics

• Enough memory to run large programs.

• Means to load programs from tape or disk.

• Means for memory expansion

• Means for peripheral expansion

Colleen game Requirements

• Hardware drives the graphics, so that the CPU has time to do other things.

• More moving objects.

• Multi-colored character maps, so that complex playfields can be generated without large amounts of memory.

• Playfield motion: vertical and horizontal scrolling.

Colleen System Architecture• 5 LSI parts:

– 6502 at 1.8 MHz, all address and interrupts– ANTIC: Video address generator, etc– CTIA/GTIA: video output– POKEY: pots, keyboard, audio, serial bus– 6520 PIA: simple 16 bits of parallel I/O

• at least 4KB of DRAM (1st shipped w/8K)

• 1-2 ROM cartridge slots

• 4 game controller ports

Colleen Video architecture

• 5 motion object generators • Display list processor generates playfield or

character displays, on line-by-line basis.• Both graphics generators get DMA access,

so they share memory with the 6502.• Maximum resolutions: 320x240x1 in

monochrome or 160x240x2 in color• 8-bit palette registers: 4 color, 4 luminance

ANTIC Display list modes

• 8-bit instructions:– 4-bit display mode– 2-bits scroll control– 1-bit interrupt request– 1-bit load new address

• bit map modes: 40x8x2 to 320x1x1• text modes: 20x(8x8)x2 and 40x(8x8)x1• color characters: 40x(4x8)x2

ANTIC player graphics• DMA from 5 fixed strips of 120 or 240

bytes of memory.

• Horizontal motion by writing a binary register (the way the programmers wanted Stella to work).

• Vertical motion by erasing and rewriting the picture.

• Vertical reuse possible: use Display list interrupts to rewrite horizontal positions.

More about playfield motion

• Complex games may have a huge virtual playfield, windowed on the screen.

• For each display instruction with horizontal scrolling enabled, ANTIC will load 192 pixels worth of data, and clip, controlled by the horizontal scrolling register.

• For each display instruction with vertical scrolling enabled, ANTIC will clip that line, controlled by the vertical scrolling register.

Non-video I/O

• Pokey supported 4 audio channels

• Pokey supported 8 potentiometer inputs, sampled in hardware

• Pokey scanned a keyboards, using commodity CMOS external muxes.

Colleen system issues• The most direct competitor was the Apple II

• The Apple II was not bundled with a TV RF modulator, so it was not regulated by FCC.

• It could have slots! Peripherals were easy.

• The 800 was cased in cast aluminum

• The 800 had internal memory slots.

• The 800 used a serial bus for external expansion, 19,200 b/s. The peripherals had intelligence, so they were expensive.

Colleen in the market• First debut in 1979. Sold respectably but

not near as well as the Apple.

• FCC changed the rules in 1979: “Class B”

• Commodore C64 jumped in with lower cost and more memory.

• Atari answered with 800XL, etc, but trailed Apple and Commodore (and Radio Shack)

• Repackaged as pure game machine, 5200, competed with wealth of 2600 games.

Colleen Lessons

• A personal computer has to have easy expansion, with lots of room for 3rd parties to add value (e.g. Apple II and IBM PC/AT family)

• It appears to confuse things to sell a hybrid game console and crippled PC (e.g. Atari 400).

• It was bad luck that the FCC didn’t change the rules until after the Atari 800 shipped. Something like the 1200XL might have flown.

Amiga Lorraine System

• Company founded by Dave Morse (Mattel marketing) and Jay Miner. I was badge #3.

• Original product conception: generate cartoon-quality video games.

• Also a computer, with a built-in floppy driver for distributing games.

• Commodore turned it into a “color multi-media MAC” in 1984, shipped in 1986.

Amiga System Architecture (Amiga 1000, Amiga 2000, etc)

• Product requirements

• Design choices

• Hardware/firmware tradeoffs

• Results

• Lessons

Amiga computer requirements

• Use a modern processor: 68000 (w/o memory management unit)

• Built in floppy drive, not built in hard drive.

• 40 or more characters/line on TV, 80 or better on a monitor

• GUI OS requirement added after Commodore purchase in 1984.

Amiga gaming requirements• Hardware assist for:

– common graphics operations– changing the hardware synchronous with the

video beam.

• Foreground and background bit maps• Multiple motion objects• Multi-channel DMA audio• Loading games from floppy drive.• Interact with external video (disk, VCR, etc)

Amiga system design

• 4 LSI chips:– 68000 CPU, at 7.2 MHz– AGNUS address generator/DMA engine– DENISE video output chip– PAULA I/O chip

• 256K DRAM minimum, 512K common

• 2 game ports

• Floppy drive

Amiga video design

• Primary display is a set of bit plane engines.

• Bit planes can be used as a set of 4, for 16-color displays, or in two sets of 3 and 3, for an 8-color foreground (or motion objects) and an 8-color background.

• 8 identical sprite engines.

• Palette registers are 12 bit: 4 each RGB, or 4 each color, saturation and luminance

Amiga bit blitter detail

• Automates common graphics operations: – line draw– area fill– splicing and manipulating images

• Bit blitter:– 3 input images, 1 output image– 2 input images can be barrel shifted

independently– any arbitrary operation can be performed,

selected by 8-bit mask.

Amiga sprite engines

• Each engine reads a string of 16-bit words in memory.

• The first words specify top left corner and size.

• Subsequent words are data (16 x 2 bits/line)

• Sprites can be reused to the end of the screen.

Amiga Audio

• 4 DMA channels:– 8 bits/sample– adjustable sample rate– sample table in memory can be from 2 bytes

(square wave) to 8192 bytes.– Separate pointers: each chunk of audio can

come from anywhere in memory.

Amiga System Issues• The first version would have looked like the

Amiga 500, with 128K of DRAM and no GUI OS, and shipped in 1984.

• Amiga ran out of money, which slowed development.

• Commodore bought it in June of 1984.

• Commodore repositioned it as a color multimedia MAC-like PC

Amiga in the market

• The Amiga 1000, loaded with computer options, shipped in 1986. Competitors:– IBM PC/AT and clones– Mac, with color– Atari ST

• It was the best multi-media computer of its time, but it had a distinct market only for video production (with the Video Toaster)

• It became a cult favorite, but a market failure.

Amiga lessons

• Again, clear product focus matters a lot: competent marketing people working with engineers who listen.

• Bad luck matters: the collapse of the video game business in 1984 poisoned the well financially and prospectively. Otherwise, we would play Amiga consoles instead of the NES in the mid-1980s.