Presentation is loading. Please wait.

Presentation is loading. Please wait.

Atari 2600 Homebrew Darrell Spice, Jr..

Similar presentations


Presentation on theme: "Atari 2600 Homebrew Darrell Spice, Jr.."— Presentation transcript:

1 Atari 2600 Homebrew Darrell Spice, Jr.

2 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 AtariAge has 80+ homebrew 2600 titles available, only Atari had a larger catalog of games Best selling home brew at AtariAge is Synthcart, used by musicians

3 My Homebrew games Finished WIP Medieval Mayhem Space Rocks Stay Frosty
Frantic Timmy

4 Medieval Mayhem

5

6 Space Rocks

7

8 Stay Frosty

9 Part of Stella's Stocking

10 Stay Frosty 2

11

12 WIP - Frantic

13 WIP - TIMMY!

14 Challenges 128 bytes of system RAM (1/8 KB) PS3 has 256 MB (262,144 KB) no video RAM PS3 has 256 MB 4K cartridge space 1 MHz CPU only 27% is available for game logic 128 bytes 0 VRAM 4K cartridge 1 MHz CPU, 27%

15 128 bytes of RAM 1 KB cost $66 in 1975 when work began on Stella (code name for the Atari) 128 bytes = 1/8 KB, about $8.25 1K $390, 128 bytes $50

16 No video RAM TIA - Television Interface Adaptor is scan line based
2 players (sprites) 2 missiles 1 ball Low resolution playfield Players are sprites in modern terms

17 2 Players 8 x 1 image Sample pattern
pattern repeats on every scan line unless it's changed If not changed, pattern repeats down the screen Shapes are created by changing pattern on each scan line

18 Player Features Three sizes: 1x 2x 4x Three 1x duplicates
3 sizes: 1x, 2x or 4x 1x can be duplicated with 3 spacing options 1x can be tripled with 2 spacing options Three 1x duplicates Two 1x triplicates

19 Can be used to create objects like this bell
2 Missiles, 1 Ball 1 x 1 image Four sizes: 1x 2x 4x 8x 1x1 Can be horizontally stretched Objects can be created by changing size & position Note - if a player is in duplicate or triplicate, the corresponding missile will be as well Can be used to create objects like this bell

20 Playfield 20 x 1 image Playfield is repeated or reflected
20x1 background image Background is 40 pixels wide, so the 20 are repeated or mirrored Playfield is repeated or reflected to fill width of screen

21 4K Cartridge original games were 2K
4K was believed to be large enough to last until the 2600's replacement hit the market ROM only, no Read/Write line for controlling access to RAM

22 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 Television Interface Adaptor Generates display, sound & reads paddles and joystick fire buttons

23 This is your game

24 This is what the TV sees

25 Program flow Sync signal Game logic Kernel (draw display) Game logic
This is what your program does Kernel (draw display) Game logic

26 What do you need? Editor Dasm Stella Hardware

27 Notepad or TextEdit will do
Editor Notepad or TextEdit will do

28 A programmer's editor like jEdit is nicer http://www.jedit.org
Color coding in a programmer's editor makes it easy to see typos

29 Dasm Assembler that converts human readable
code into machine readable code

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

31 Hardware Atari 2600 Supercharger Krokodile cart Harmony

32 Atari 2600 While Stella is great, it's not 100% accurate so you need to test your code on the real thing.

33 32 character text on Atari
Sam Thomas (eshu on AtariAge) figured out the TIA tricks for 32 character text in 2011

34 32 character text on Stella
Garbage on left Stella is also more forgiving on TV sync timing, so it's best to test on a real Atari to make sure the picture is stable

35 Starpath Supercharger

36 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

37 Starpath Supercharger

38 Krokodile Cartridge

39 Krokodile Cartridge Released in 2005 for $99
Uses serial port to load programs 512 K Flash ROM, 32 K RAM

40 Harmony Cartridge

41 Harmony Cartridge Released in 2009
Still produced, sells for $59.99 and $ Uses SD card or USB to load programs 32 K Flash ROM, 8 K RAM 70 MHz ARM processor Melody variation used by Atari Age to produce stand alone games Available here at ??booth

42 batari Basic Provides a simpler way to create Atari games
Uses a BASIC like language for game logic Provides a number of prebuilt Kernels

43 batari Basic games Gingerbread man, Elf Dash Cave-in, Seaweed Assault

44 How are the limited objects used to create complex games?
We can use Stella's Fixed Color mode to see

45 Space Invaders

46 Background HMOVE Playfield Ball Player 0 Player 1 Missile 0 Missile 1
Players are used in triplicate to create 6 invaders per row Players are reused multiple times down the screen

47 Hunchy II

48 Background HMOVE Playfield Ball Player 0 Player 1 Missile 0 Missile 1
Missile 0used to draw all the bells

49 Keystone Kapers

50 Background HMOVE Playfield Ball Player 0 Player 1 Missile 0 Missile 1
changing the color of the background creates most of the game screen

51 Supercharging games (graphic by Nathan Strum)
Nathan came up with the concept for Stay Frosty, and created all the graphics for it. Supercharging games (graphic by Nathan Strum)

52 Supercharging your game
Bankswitching Extra RAM Coprocessor Bus Stuffing

53 Bankswitching Game split into 4K banks
Atari can only see 1 bank at a time Cartridge has hardware to present different banks upon request Companies came up with various "modes" of making the request Krokodile Cartridge supports up to 512K using mode 3F

54 Game Selection Matrices were used due to limited ROM
Heaven forbid you should lose your manual!

55 Extra ROM with bankswitching allows for in game menus
Medieval Mayhem's menu uses 6K. Original Warlords is 4k Double Dunk

56 Extra RAM Extra RAM allows for more complex games
Address line used to work around the lack of a R/W line. This makes the RAM appear twice in memory, one address range for reading and the second for writing. Not compatible with INCrement or DECrement instructions. Krokodile Cartridge supports up to 32K using mode 3E

57 Coprocessor DPC in Pitfall 2 DPC+ in Harmony/Melody

58 DPC Display Processor Chip designed by David Crane 8K ROM
2K Display Data (holds graphics and other data) Data Fetchers return Display Data for fast updates to TIA Data Fetcher Window mode greatly speeds up player processing 3 voice music using square waves (4 bit digital sound)

59 DPC+ Enhanced version of DPC designed for Harmony/Melody by Fred Quimby, Chris Walton and Darrell Spice, Jr. 24K ROM 4K ROM/RAM based Display Data Fast Fetch mode for even faster Data Fetchers 3 voice music using custom waveforms (4 bit digital sound) Can offload non-Kernel processing to 70 MHz ARM

60 DPC+ Games Space Rocks Stay Frosty 2
Evil Magician Returns II (batari BASIC) Eggventure (batari BASIC)

61 Bus Stuffing Commodore(!) developed The Graduate, a computer keyboard add-on for the 2600 Processors in the keyboard overdrive the data bus (aka bus stuffing) for fastest possible TIA updates Harmony/Melody support bus stuffing

62 Display Sprite Routines
DoDraw DPC DPC+ Bus Stuffing

63 Display Sprite Routines
LDA #SPRITEHEIGHT DCP SpriteTemp BCS DoDraw LDA #0 .BYTE $2C DoDraw LDA (GfxPtr),Y STA GRP0 LDA (ColorPtr),y STA COLUP0 DoDraw, 26 cycles DPC DPC+ Bus Stuffing Update Image Update Color

64 Display Sprite Routines
DoDraw, 26 cycles DPC, 14 cycles DPC+ Bus Stuffing LDA DF0DATAW STA GRP0 LDA DF1DATA STA COLUP0 Update Image Update Color

65 Display Sprite Routines
DoDraw, 26 cycles DPC, 14 cycles DPC+, 10 cycles Bus Stuffing LDA #<DF0DATAW STA GRP0 LDA #<DF1DATA STA COLUP0 Update Image Update Color

66 Display Sprite Routines
DoDraw, 26 cycles DPC, 14 cycles DPC+, 10 cycles Bus Stuffing, 6 cycles STX GRP0 STX COLUP0 Update Image Update Color

67 76 cycles to draw scan line.
Kernel comparisons 76 cycles to draw scan line.

68 Average Kernel 2 single color players (sprites) 2 missiles
Simple reflected or repeated playfield

69 DPC Kernel 1 multicolor player 1 single color player
4 bit digital music 2 missiles Simple reflected or repeated playfield

70 DPC+ Kernel Ball 2 multicolor players Complex playfield
4 bit digital music 2 missiles

71 Bus Stuffing Kernel Ball 2 multicolor players Complex playfield
4 bit digital music 2 missiles Ball Complex playfield Extra time for TIA tricks, such as extra copies of players

72 Resources Atari Age http://www.atariage.com/ Mini dig
Stella Harmony Dasm Atari 2600 Programming /50-atari-2600-programming/ 2600 Programming for Newbies / programming-for-newbies/ Mini dig has Atari documentation

73 batari Basic batari Basic http://bataribasic.com/ Atari Age forum
Random Terrain basic-commands.html Visual bB 0-a-new-ide-for-batari-basic/

74 Presentation will be made available at http://www.spiceware.org
Questions? Presentation will be made available at


Download ppt "Atari 2600 Homebrew Darrell Spice, Jr.."

Similar presentations


Ads by Google