Atari 2600 Homebrew Darrell Spice, Jr..

Slides:



Advertisements
Similar presentations
Hardware Lesson 3 Inside your computer.
Advertisements

Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Review of Computer Hardware, Operating Systems, and Media EDUC 286: Educational Technology II: Professional Tools Fall 2009.
HARDWARE Rashedul Hasan..
Computer Basics Whats that thingamagige?. Parts of a computer.
Atari 2600 Homebrew Darrell Spice, Jr..
Multimedia Components (Develop & Delivery System)
Mr Greenhalgh S4 Computing Int 1 Things you could do with knowing before the Exam…
EEE226 MICROPROCESSORBY DR. ZAINI ABDUL HALIM School of Electrical & Electronic Engineering USM.
Basic Computer Hardware and Software.
Professor Michael J. Losacco CIS 1110 – Using Computers System Unit Chapter 4.
Computer Basics Flashcards #2
V Material obtained from summer workshop in Guildford County.
Chapter 3 – Computer Hardware Computer Components – Hardware (cont.) Lecture 3.
History of computers What your computer can do depends upon two things: the hardware your computer has, and the software that can be run on your computer. 
COMPONENTS OF THE SYSTEM UNIT
Computer Systems 1 Fundamentals of Computing
Introduction Part 1 The Microprocessor Based Systems  Memory and I/O System  Microprocessor.
Computer Systems I’m ONLY a machine! Standard Grade Revision.
Computer Insides and Out Computer Basics 1.1. Basic Personal Computer System  A computer system consists of hardware and software components.  Hardware.
C. Pronk 1 The Commodore 64 © Kees Pronk sources: various web locations.
Stuart Cunningham - Computer Platforms COMPUTER PLATFORMS Input, Output, and Storage & Introduction to Basic Computer Architecture Week 2.
The Components of the System Unit Chapter 4 By: Janice Colon.
Multimedia Hardware. Network LAN- to transfer data inside a local area. WAN – to transfer data in long distance. Ethernet – method for connecting computers.
Topics Introduction Hardware and Software How Computers Store Data
Computing Hardware Starter.
There are different types of translator. An Interpreter Interpreters translate one instruction at a time from a high level language into machine code every.
Learning Targets Identify the external parts of the computer Identify examples of input devices Identify examples of output devices Define basic computer.
Practical PC, 7th Edition Chapter 17: Looking Under the Hood
CPU (CENTRAL PROCESSING UNIT): processor chip (computer’s brain) found on the motherboard.
Add on cards. Also known as Expansion card or interface adapter. It can be inserted into an expansion slot of a motherboard to add functionality to a.
Computer Programming Basics Assistant Professor Jeon, Seokhee Assistant Professor Department of Computer Engineering, Kyung Hee University, Korea.
A Short History of the PC. Prolog Before the IBM, there were many PC vendors. –These were typically garage-shop start-ups with shaky financing. –The big.
1 CS503: Operating Systems Spring 2014 Dongyan Xu Department of Computer Science Purdue University.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 1 Introduction to Computers and Programming.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
Introduction to NES graphics Don Miller / NO CARRIER PlayPower.org Platform Education Director.
Inside your computer. Hardware Review Motherboard Processor / CPU Bus Bios chip Memory Hard drive Video Card Sound Card Monitor/printer Ports.
Inside your computer. Hardware Motherboard Processor / CPU Bus Bios chip Memory Hard drive Video Card Sound Card Monitor/printer Ports.
BMOW is a Custom CPU Design Like your PC’s Pentium, but much simpler Closest cousin is the MOS 6502 used in the Apple II, C-64, and Atari VCS =
© GCSE Computing Computing Hardware Starter. Creating a spreadsheet to demonstrate the size of memory. 1 byte = 1 character or about 1 pixel of information.
Academic PowerPoint Computer System – Architecture.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 5A Transforming Data Into Information.
Computer Systems. Bits Computers represent information as patterns of bits A bit (binary digit) is either 0 or 1 –binary  “two states” true and false,
Basic Computer Hardware and Software. Guilford County SciVis V
Memory The term memory is referred to computer’s main memory, or RAM (Random Access Memory). RAM is the location where data and programs are stored (temporarily),
Computer Hardware & Processing Inside the Box CSC September 16, 2010.
COMPUTER SYSTEM A computer system is define as combination of components designed to process data and store files. A computer system consists of four.
Done by: Chelsea Bryan Friday, October 10,2014.   The BIOS (aka) Basic input/output system, is a built in software that determines what's a computer.
Basic Computer Hardware and Software.
Information Technology INT1001 Lecture 2 1. Computers Are Your Future Tenth Edition Chapter 6: Inside the System Unit Copyright © 2009 Pearson Education,
Computer Basics Just How Does a Computer Work?
Computer Graphics Lecture 03 Graphics Systems Cont… Taqdees A. Siddiqi
Information Technology (IT). Information Technology – technology used to create, store, exchange, and use information in its various forms (business data,
Basic Computer Hardware and Software.
Topics Introduction Hardware and Software How Computers Store Data
PC Parts Worksheet- Building Your own Computer
Basic Computer Hardware and Software.
Basic Computer Hardware & Software
Technology Literacy Hardware.
MOBILE COMPUTING Jitendra Patel ROLL NO :- 38 TY MSC(CA & IT)
Basic Computer Hardware and Software.
McGraw-Hill Technology Education
Computers: Hardware and Software
Topics Introduction Hardware and Software How Computers Store Data
Today’s agenda Hardware architecture and runtime system
McGraw-Hill Technology Education
McGraw-Hill Technology Education
Chapter 1: Introduction to Computers and Programming
Presentation transcript:

Atari 2600 Homebrew Darrell Spice, Jr.

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 2600 games Best selling home brew at AtariAge is Synthcart, used by musicians

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

Medieval Mayhem

Space Rocks

Stay Frosty

Part of Stella's Stocking

Stay Frosty 2

WIP - Frantic

WIP - TIMMY!

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%

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

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

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

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

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

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

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

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

This is your game

This is what the TV sees

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

What do you need? Editor Dasm Stella Hardware

Notepad or TextEdit will do Editor Notepad or TextEdit will do

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

Dasm Assembler that converts human readable code into machine readable code http://dasm-dillon.sourceforge.net

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

Hardware Atari 2600 Supercharger Krokodile cart Harmony

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

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

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

Starpath Supercharger

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

Starpath Supercharger

Krokodile Cartridge

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

Harmony Cartridge

Harmony Cartridge Released in 2009 Still produced, sells for $59.99 and $79.99 http://harmony.atariage.com 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

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

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

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

Space Invaders

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

Hunchy II

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

Keystone Kapers

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

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)

Supercharging your game Bankswitching Extra RAM Coprocessor Bus Stuffing

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

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

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

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

Coprocessor DPC in Pitfall 2 DPC+ in Harmony/Melody

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)

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

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

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

Display Sprite Routines DoDraw DPC DPC+ Bus Stuffing

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

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

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

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

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

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

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

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

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

Resources Atari Age http://www.atariage.com/ Mini dig http://www.qotile.net/minidig/ Stella http://stella.sourceforge.net/ Harmony http://harmony.atariage.com/ Dasm http://dasm-dillon.sourceforge.net/ Atari 2600 Programming http://www.atariage.com/forums/forum /50-atari-2600-programming/ 2600 Programming for Newbies http://www.atariage.com/forums/forum /31-2600-programming-for-newbies/ Mini dig has Atari documentation

batari Basic batari Basic http://bataribasic.com/ Atari Age forum http://www.atariage.com/forums/forum/65-batari-basic/ Random Terrain http://www.randomterrain.com/atari-2600-memories-batari- basic-commands.html Visual bB http://www.atariage.com/forums/topic/123849-visual-bb-1- 0-a-new-ide-for-batari-basic/

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