440 likes | 458 Vues
Explore the journey of game machine architecture spanning 3 generations - Atari Stella, Atari Colleen, and Amiga Lorraine. Delve into design choices, tradeoffs, hardware, and software aspects. Learn from the lessons and breakthroughs in creating innovative gaming systems.
E N D
3 Generations of Game Machine Architecture Joe Decuir jdecuir@nwlink.com 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.