60
Darrell Spice, Jr. Atari 2600 Homebrew

Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

  • Upload
    others

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Darrell Spice, Jr.

Atari 2600 Homebrew

Page 2: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

What is Homebrew?

• Games (or other software) made by hobbyists for platforms that are not typically end user programmable

• Over 100 have been released for the Atari 2600

• 70 are currently available from AtariAge.com

Page 3: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

How did I get into it?

Page 4: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

How did I get into it?

Page 5: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

How did I get into it?

Page 6: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 7: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 8: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 9: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Challenges• 128 bytes of system RAM (1/8 KB)

PS3 has 256 MB (262,144 KB)

• no video RAM

• 4K cartridge space

• 1 MHz CPUonly 27% is available for game logic

Page 10: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

128 bytes of RAM

• 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari)

• 128 bytes = 1/8 KB, about $50

Page 11: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

No video RAM• TIA - Television Interface Adaptor is scan line

based

• 2 players (sprites)

• 2 missiles

• 1 ball

• Low resolution playfield

Page 12: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

2 Players8 x 1 image

Sample pattern

If not changed, pattern repeats down the screen

Shapes are created by changing pattern

Page 13: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Player FeaturesThree sizes:

1x 2x 4x

Three 1x duplicates

Two 1x triplicates

Page 14: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

2 Missiles, 1 Ball

Four sizes: 1x 2x 4x 8x

1 x 1 image

Can be used to create images like

this bell

Page 15: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Playfield20 x 1 image

Playfield is repeated

or reflected

to fill width of screen

Page 16: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

4K Cartridge

• original games were 2K

• 4K was believed to be large enough to last until the 2600's replacement hit the market

• Bankswitching devised to create larger games

Page 17: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Bankswitching

12345 76 8

• Game split into 4K chunks

• Atari can only see 1 bank at a time

• Cartridge has hardware to present different banks upon request

• 32K game split into eight 4K banks

Page 18: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Bankswitching

12345 76 8

Currently in bank1, asks cartridge for bank 6

Page 19: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Bankswitching

12345 76

8

Now in bank 6

Page 20: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Game Selection Matrices were used due to limited ROM

Page 21: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Extra ROM with bankswitching allows for in game menus

Page 22: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

27% of 1 MHz

• CPU must update TIA ( scan line video chip) in real time

• Portion of program that drives TIA is known as the Kernel

• CPU must also trigger sync signal for TV

Page 23: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 24: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 25: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Kernel (draw display)

Game logic

Game logic

Sync signal

Program flow

Page 26: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

What do you need?

• Editor

• Dasm

• Stella

• Hardware

Page 27: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Editor• Notepad or TextEdit will do

• A programmer's editor like jEdit is nicerhttp://www.jedit.org

Page 28: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Dasm

Assembler that converts human readable code into machine readable code

http://dasm-dillon.sourceforge.net

Page 29: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Stella• Turns your computer into an Atari• Integrated debugger makes coding easier

Page 30: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Hardware

• Supercharger

• Krokodile cart

• Harmony

Page 31: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Starpath Supercharger

Page 32: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Starpath Supercharger

• Released in 1982 for $45

• Uses audio to load programs (games were sold on cassettes)

• 6 K RAM, 2 K BIOS

• Program MAKEWAV converts ROM image to sound file

Page 33: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Starpath Supercharger

Page 34: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Krokodile Cartridge

Page 35: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Krokodile Cartridge

• Released in 2005 for $99

• Uses serial port to load programs

• 512 K Flash ROM, 32 K RAM

Page 36: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Harmony Cartridge

Page 37: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Harmony Cartridge• Released in 2009

• Still produced, sells for $59.99 and $79.99http://harmony.atariage.com

• Uses SD card or USB to load programs

• 32 K Flash ROM, 8 K RAM

• 70 MHz ARM processor

Page 38: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

batari Basic

• Provides a simpler way to create Atari games

• Uses a BASIC like language for game logic

• Provides a number of prebuilt Kernels

Page 39: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

batari Basic games

Page 40: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

How are the limited objects used to create

complex games?

Page 41: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Space Invaders

Page 42: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Background

HMOVE

Playfield

Ball

Player 0

Player 1

Missile 0

Missile 1

Page 43: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Hunchy II

Page 44: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Background

HMOVE

Playfield

Ball

Player 0

Player 1

Missile 0

Missile 1

Page 45: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Keystone Kapers

Page 46: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Background

HMOVE

Playfield

Ball

Player 0

Player 1

Missile 0

Missile 1

Page 47: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

The Atari was designed for stereo sound

Fun Fact

Page 48: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

The Atari was designed for stereo sound

Fun Fact

Page 49: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Stereo games

Page 50: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 51: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 52: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 53: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 54: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Chun-Li?

• From Street Fighter 2

• Commonly abbreviated as SF2

• Which I've been using for...

Page 55: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 56: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about
Page 57: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Resources• Atari Age

http://www.atariage.com/

• Mini dighttp://www.qotile.net/minidig/

• Stellahttp://stella.sourceforge.net/

• Harmonyhttp://harmony.atariage.com/

Page 58: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Resources

• Dasmhttp://dasm-dillon.sourceforge.net/

• Atari 2600 Programming http://www.atariage.com/forums/forum/50-atari-2600-programming/

• 2600 Programming for Newbieshttp://www.atariage.com/forums/forum/31-2600-programming-for-newbies/

Page 59: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

batari Basic

• batari Basichttp://bataribasic.com/

• Atari Age forumhttp://www.atariage.com/forums/forum/65-batari-basic/

• Random Terrainhttp://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html

Page 60: Atari 2600 Homebrew - SpiceWare 2600 Homebrew.pdf · 128 bytes of RAM • 1 KB cost $390 in 1973 when work began on Stella (code name for the Atari) • 128 bytes = 1/8 KB, about

Presentation will be made available on

http://www.spiceware.org