diff --git a/htdocs/atari2600links.php b/htdocs/atari2600links.php deleted file mode 100644 index bb0a42961..000000000 --- a/htdocs/atari2600links.php +++ /dev/null @@ -1,52 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AtariAgeJust about everything you every wanted to know about - the Atari 2600 can be found here
Atari ManiaA comprehensive database/collection of all things Atari-related, - including ROMs, snapshots and instructions, user guides, and more
JStellaA Java port of Stella which can be run in a web page
Kevin Horton's documentsVarious documents about the 32in1 cart, Atari 2600 easter eggs, and more
Atari 2600 on WikipediaHistorical information about the Atari 2600 console
- - -
- -
-
- - diff --git a/htdocs/background.gif b/htdocs/background.gif deleted file mode 100644 index de3b56d41..000000000 Binary files a/htdocs/background.gif and /dev/null differ diff --git a/htdocs/cssprint.css b/htdocs/cssprint.css deleted file mode 100644 index f3c7b44fa..000000000 --- a/htdocs/cssprint.css +++ /dev/null @@ -1,23 +0,0 @@ -body { color: black; font-size: 12pt; font-family: Arial, Helvetica, Geneva, Swiss, SunSans-Regular, sans-serif; background: white 0px 0px; margin: 20px } -p {} -td { font-size: 12pt; } -img { border: none } -a:link { color: blue } -a:active { color: blue } -a:visited { color: blue } -a:hover { color: red } -.rightcolumn { } -.header { } -.content { margin-top: 20px } -.footer { font-size: 10pt; margin-top: 40px } -.footer img { float: left; padding-right: 20px } -.leftcolumn { display: none } -.leftcolumn img { } -.menuheader { } -.leftcolumn ul { } -.leftcolumn ul li { } -.leftcolumn ul li a { } -.leftcolumn ul li a:link { } -.leftcolumn ul li a:active { } -.leftcolumn ul li a:visited { } -.leftcolumn ul li a:hover { } diff --git a/htdocs/cssscreen.css b/htdocs/cssscreen.css deleted file mode 100644 index f074150c4..000000000 --- a/htdocs/cssscreen.css +++ /dev/null @@ -1,33 +0,0 @@ -body { color: black; font-size: 12pt; font-family: Arial, Helvetica, Geneva, Swiss, SunSans-Regular, sans-serif; background: white url(background.gif) repeat-y 0px 0px; margin: 20px } -p {} -td { font-size: 12pt; } -img { border: none } -a:link { color: blue } -a:active { color: blue } -a:visited { color: blue } -a:hover { color: red } -.rightcolumn { float: right; padding-right: 20px; padding-bottom: 20px; position: absolute; top: 20px; left: 200px } -.header { } -.content { margin-top: 20px } -.footer { font-size: 10pt; margin-top: 40px } -.footer img { float: left; padding-right: 20px } -.leftcolumn { font-size: 10pt; float: left; padding-bottom: 20px; position: absolute; top: 20px; left: 20px; width: 140px; overflow: hidden } -.leftcolumn img { } -.menuheader { font-weight: bold; font-size: 11pt; margin-top: 20px; margin-bottom: 5px } -.leftcolumn ul { list-style-type: none; margin: 0px; padding: 0px } -.leftcolumn ul li { } -.leftcolumn ul li a { text-decoration: none; margin-bottom: 3px; padding: 3px; width: 130px; display: block } -.leftcolumn ul li a:link { color: black; background-color: #ffd766 } -.leftcolumn ul li a:active { color: white; background-color: red } -.leftcolumn ul li a:visited { color: black; background-color: #ffd766 } -.leftcolumn ul li a:hover { color: red; background-color: white } -body#about a#about { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#screenshots a#screenshots { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#news a#news { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#team a#team { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#mailing a#mailing { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#guide a#guide { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#stable a#stable { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#development a#development { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#atarilinks a#atarilinks { color: black; background: white url(menucurrent.gif) no-repeat right top } -body#homebrew a#homebrew { color: black; background: white url(menucurrent.gif) no-repeat right top } diff --git a/htdocs/development.php b/htdocs/development.php deleted file mode 100644 index cb45ee3c3..000000000 --- a/htdocs/development.php +++ /dev/null @@ -1,41 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -
-
-
- - - -

Instructions for compiling Stella from source code can be found in the - User's Guide, which vary depending on your operating system. Feel free to - email Stephen Anthony if - you encounter problems, or you wish to contribute in any way to the Stella - project.

- -

The latest sourcecode for Stella can always be downloaded using Subversion from - the Sourceforge servers. Instructions for using Subversion on Sourceforge can be - found here.

-

Note: Developers can check out from 'trunk' with the following command: -

svn co https://stella.svn.sourceforge.net/svnroot/stella/trunk/stella

- - -
- -
-
- - diff --git a/htdocs/docs/debugger.html b/htdocs/docs/debugger.html deleted file mode 100644 index a5494c169..000000000 --- a/htdocs/docs/debugger.html +++ /dev/null @@ -1,1143 +0,0 @@ - - - Stella Debugger - - - -

Stella Integrated Debugger (a work in progress)

- -

The debugger in Stella may never be complete, as we're constantly -adding new features requested by homebrew developers. However, even in its -current form it's still quite powerful, and is able to boast at least one -feature that no other 2600 debugger has; it's completely cross-platform.

- -

Here's a list of what the debugger can do so far:

- - -

Future planned features (post 2.0):

- - - -

How to use the debugger

- -

Pressing ` (aka backtick, backquote, grave accent) toggles the debugger on -& off. When you exit the debugger, the emulation resumes at the current -program counter, and continues until either a breakpoint/trap is hit, -or the ` key is pressed again.

- -

The main debugger window will look similar to the following (note that the -letters here are for reference in the document below; they aren't actually -present in the debugger):

-

- -

For space reasons, the Prompt, TIA, I/O and Audio displays are split into -4 tabs, only one of which is visible at a time. You can use the mouse or -keyboard to select which tab you want to view. Pressing Shift with the left -or right arrow keys cycles between tabs from right-to-left and left-to-right, -respectively. Pressing Tab cycles between widgets in the current tab (except -for in the Prompt area, where 'tab' is used for something else).

- -

You can also enter the debugger at emulator startup by giving a breakpoint on the command line: -

-  ; will enter the debugger the first time the instruction at "kernel" runs
-  stella -break kernel mygame.bin
-
-  ; $fffc is the 6502/6507 init vector. This command will break and enter the
-  ; debugger before the first 6507 instruction runs, so you can debug the
-  ; startup code:
-  stella -break "*($fffc)" mygame.bin
-
-

- -

Using the ` key will always enter the debugger at the end of the -frame (scanline 262, for NTSC games). This is because Stella only checks -for keystrokes once per frame. Once in the debugger, you can control -execution by stepping one instruction, scanline, or frame at a time -(or more than one at a time, using commands in the prompt). You can -also set breakpoints or traps, which will cause the emulator to enter -the debugger when they are triggered, even if it happens in mid-frame.

- -

Change Tracking

- -

The debugger tracks changes to the CPU registers and RAM by displaying -changed locations or registers with a red background after each step, -trace, scanline, or frame advance. This sounds simple, and it is, but -it's also amazingly useful.

- -

One clarification about the change tracking: it only tracks when values -have changed. If the ROM writes a value into a RAM location that -already contained the same value, that's not considered a change (old -value was $whatever, new value is the same, so nothing got tracked). This -may change in a future version of Stella.

- - - -

(A) Prompt tab

- -

This is a command-line interface, similar to the DOS DEBUG command -or Supermon for the C=64.

- -

Editing keys work about like you'd expect them to in Windows, but many -Bash-style commands are also supported:

- - - - - - - - - - - - - - - - - - -
HomeMove cursor to beginning of line
EndMove cursor to end of line
DeleteRemove character to right of cursor
BackspaceRemove character to left of cursor
Control-aSame function as 'Home'
Control-eSame function as 'End'
Control-dSame function as 'Delete'
Control-kRemove all characters from cursor to end of line
Control-uRemove all characters from cursor to beginning of line
Control-wRemove entire word to left of cursor
Shift-PgUpScroll up through previous commands one screen/page
Shift-PgDownScroll down through previous commands one screen/page
Shift-UpScroll up through previous commands one line
Shift-DownScroll down through previous commands one line
Shift-HomeScroll to beginning of commands
Shift-EndScroll to end of commands
-

You can also scroll with the mouse. Copy and paste is not yet supported.

- -

To see the available commands, enter "help". Bash-style tab completion is -supported for commands and labels (see below).

- -

For now, there are some functions that only exist in the prompt. We -intend to add GUI equivalents for all (or almost all?) of the prompt -commands in future releases. People who like command prompts will be able to -use the prompt, but people who hate them will have a fully functional -debugger without typing (or without typing much, anyway).

- -

Tab completion

- -

While entering a command or label, you can type a partial name and -press the Tab key to attempt to auto-complete it. If you've ever used -"bash", this will be immediately familiar. If not, try it: load up -a ROM, go to the debugger, type "print w" (but don't press Enter), -then hit Tab. The "w" will change to "WSYNC" (since this is the only -built-in label starting with a "w"). If there are multiple possible -completions (try with "v" instead of "w"), you'll see a list of them, -and your partial name will be completed as far as possible.

- -

Tab completion works on all labels: built-in, loaded from a symbol file, -or set during debugging with the "define" command. However, it does not -yet work on functions defined with the "function" command, nor does it -work on filenames.

- -

Expressions

- -

Almost every command takes a value: the "a" command takes a -byte to stuff into the accumulator, the "break" command -takes an address to set/clear a breakpoint at. These values -can be as a hex constant ($ff, $1234), or as complex as -"the low byte of the 16-bit value located at the address -pointed to by the binary number 1010010110100101" (which -would be "@<\1010010110100101"). You can also use registers -and labels in expressions.

- -

You can use arithmetic and boolean operators in expressions. The -syntax is very C-like. The operators supported are:

- -
-      + - * /  (add, subtract, multiply, divide: 2+2 is 4)
-      %        (modulus/remainder: 3%2 is 1)
-      & | ^ ~  (bitwise AND, OR, XOR, NOT: 2&3 is 2)
-      && || !  (logical AND, OR, NOT: 2&&3 is 1, 2||0 is 0)
-      ( )      (parentheses for grouping: (2+2)*3 is 12)
-      * @      (byte and word pointer dereference: *$80 is the byte stored
-                at location $80)
-      [ ]      (array-style byte pointer dereference: $80[1] is the byte
-                stored at location ($80+1) or $81)
-      < >      (prefix versions: low and high byte. <$abcd is $cd)
-      == < > <= >= !=
-               (comparison: equality, less-than, greater-than, less-or-equals,
-                greater-or-equals, not-equals)
-      << >>    (bit shifts, left and right: 1<<1 is 2, 2>>1 is 1)
-
- -

Division by zero is not an error: it results in zero instead.

- -

None of the operators change the values of their operands. There -are no variable-assignment or increment/decrement operators. This -may change in the future, which is why we used "==" for equality -instead of just "=".

- -

The bitwise and logical boolean operators are different in that the -bitwise operators operate on all the bits of the operand (just like -AND, ORA, EOR in 6502 asm), while the logical operators treat their -operands as 0 for false, non-zero for true, and return either 0 or 1. -So $1234&$5678 results in $1230, whereas $1234&&$5678 results in 1. -This is just like C or C++...

- -

Prefixes

- -

Like some programming languages, the debugger uses prefixed characters -to change the meaning of an expression. The prefixes are:

- - - - -

Breakpoints, watches and traps, oh my!

- -

Breakpoints

- -

A breakpoint is a "hotspot" in your program that causes the emulator -to stop emulating and jump into the debugger. You can set as many -breakpoints as you like. The command is "break xx" where xx is any -expression. If you've created a symbol file, you can use labels.

- -

Example: you've got a label called "kernel". To break there, -the command is "break kernel". After you've set the breakpoint, -exit the debugger ("quit" or click the Exit button). The emulator -will run until it gets to the breakpoint, then it will enter the -debugger with the Program Counter pointing to the instruction -at the breakpoint.

- -

Breakpoints happen *before* an instruction is executed: the -instruction at the breakpoint location will be the "next" -instruction.

- -

To remove a breakpoint, you just run the same command you used to -set it. In the example, "break kernel" will remove the breakpoint. -The "break" command can be thought of as a *toggle*: it turns the -breakpoint on & off, like a light switch.

- -

You could also use "clearbreaks" to remove all the breakpoints. Also, -there is a "listbreaks" command that will list them all.

- -

Conditional Breaks

- -

A conditional breakpoint causes the emulator to enter the debugger when -some arbitrary condition becomes true. "True" means "not zero" here: -"2+2" is considered true because it's not zero. "2-2" is false, because -it evaluates to zero. This is exactly how things work in C and lots -of other languages, but it might take some getting used to if you've -never used such a language.

- -

Suppose you want to enter the debugger when the Game Reset switch is -pressed. Looking at the Stella Programmers' Guide, we see that this -switch is read at bit 0 of SWCHB. This bit will be 0 if the switch is -pressed, or 1 otherwise.

- -

To have an expression read the contents of an address, we use the -dereference operator "*". Since we're looking at SWCHB, we need -"*SWCHB".

- -

We're only wanting to look at bit 0, so let's mask off all the other -bits: "*SWCHB&1". The expression now evaluates to bit 0 of SWCHB. We're -almost there: this will be 1 (true) if the switch is NOT pressed. We -want to break if it IS pressed...

- -

So we invert the sense of the test with a logical NOT operator (which -is the "!" operator): !(*SWCHB&1). The parentheses are necessary as -we want to apply the ! to the result of the &, not just the first term -(the "*SWCHB").

- -

"breakif !(*SWCHB&1)" will do the job for us. However, it's an ugly mess -of letters, numbers, and punctuation. We can do a little better:

- -

"breakif { !(*SWCHB & 1 ) }" is a lot more readable, isn't it? If -you're going to use readable expressions with spaces in them, -enclose the entire expression in curly braces {}.

- -

Remember that Stella only checks for input once per frame, so a break -condition that depends on input (like SWCHB) will always happen at the -end of a frame. This is different from how a real 2600 works, but most -ROMs only check for input once per frame anyway.

- -

Conditional breaks appear in "listbreaks", numbered starting from -zero. You can remove a cond-break with "delbreakif number", where -the number comes from "listbreaks".

- -

Any time the debugger is entered due to a trap, breakpoint, or -conditional break, the reason will be displayed in the status area above -below the TIA Zoom display.

- -

Functions

- -

There is one annoyance about complex expressions: once we -remove the conditional break with "delbreakif" or "clearbreaks", -we'd have to retype it (or search backwards with the up-arrow key) -if we wanted to use it again.

- -

We can avoid this by defining the expression as a function, then using -"breakif function_name":

- -
-	function gameReset { !(*SWCHB & 1 ) }
-	breakif gameReset
-
- -

Now we have a meaningful name for the condition, so we can use it again. -Not only that: we can use the function as part of a bigger expression. -Suppose we've also defined a gameSelect function that evaluates to true -if the Game Select switch is pressed. We want to break when the user -presses both Select and Reset:

- -
-	breakif { gameReset && gameSelect }
-
- -

If you've defined a lot of complex functions, you probably will -want to re-use them in future runs of the debugger. You can save all -your functions, breakpoints, conditional breaks, and watches with the -"save" command. If you name your saved file the same as the ROM filename -and place it in the ROM directory, it'll be auto-loaded next time you -load the same ROM in Stella. The save file is just a plain text file -called "filename.stella", so you can edit it and add new functions, etc. -You can also create a file called "autoexec.stella" which will be loaded -when the debugger starts, no matter what ROM you have loaded. This file -should live in the "base directory" (which is the current directory on -Windows or $HOME/.stella on UNIX), not the ROM directory.

- -

Built-in Functions

- -

Stella has some pre-defined functions for use with the "breakif" -command. These allow you to break and enter the debugger on various -conditions without having to define the conditions yourself.

- -

Built-in functions and pseudo-registers always start with an _ -(underscore) character. It is suggested that you don't start labels in -your game's source with underscores, if you plan to use them with the -Stella debugger.

- - - - - - - - - - - - - - - - - - - - - -
FunctionDefinitionDescription
_joy0left !(*SWCHA & $40) Left joystick moved left
_joy0right !(*SWCHA & $80) Left joystick moved right
_joy0up !(*SWCHA & $10) Left joystick moved up
_joy0down !(*SWCHA & $20) Left joystick moved down
_joy0button !(*INPT4 & $80) Left joystick button pressed
_joy1left !(*SWCHA & $04) Right joystick moved left
_joy1right !(*SWCHA & $08) Right joystick moved right
_joy1up !(*SWCHA & $01) Right joystick moved up
_joy1down !(*SWCHA & $02) Right joystick moved down
_joy1button !(*INPT5 & $80) Right joystick button pressed
_select !(*SWCHB & $01) Game Select pressed
_reset !(*SWCHB & $02) Game Reset pressed
_color *SWCHB & $08 Color/BW set to Color
_bw !(*SWCHB & $08) Color/BW set to BW
_diff0b !(*SWCHB & $40) Left difficulty set to B (easy)
_diff0a *SWCHB & $40 Left difficulty set to A (hard)
_diff1b !(*SWCHB & $80) Right difficulty set to B (easy)
_diff1a *SWCHB & $80 Right difficulty set to A (hard)
- -

Don't worry about memorizing them all: the Prompt "help" command -will show you a list of them.

- -

Pseudo-Registers

- -

These "registers" are provided for you to use in your conditional breaks. -They're not registers in the conventional sense, since they don't exist in -a real system. For example, while the debugger keeps track of the number -of scanlines in a frame, a real system would not (there is no register -that holds 'number of scanlines' on an actual console).

- - - - - - - - -
FunctionDescription
_scan Current scanline count
_bank Currently selected bank
_fcount Number of frames since emulation started
_cclocks Color clocks on a scanline
_vsync Whether vertical sync is enabled (1 or 0)
_vblank Whether vertical blank is enabled (1 or 0)
- -

_scan always contains the current scanline count. You can use -this to break your program in the middle of your kernel. Example:

-
-    breakif _scan==#64
-
-

This will cause Stella to enter the debugger when the TIA reaches the -beginning of the 64th scanline.

- -

_bank always contains the currently selected bank. For 2K or 4K -(non-bankswitched) ROMs, it will always contain 0. One useful use is:

- -
-    breakif { pc==myLabel && _bank==1 }
-
- -

This is similar to setting a regular breakpoint, but it will only trigger -when bank 1 is selected.

- -

Watches

- -

A watch is an expression that gets evaluated and printed before -every prompt. This is useful for e.g. tracking the contents of a -memory location while stepping through code that modifies it.

- -

You can set up to 10 watches (in future the number will be unlimited). -Since the expression isn't evaluated until it's used, you can include -registers: "watch *y" will show you the contents of the location -pointed to by the Y register, even if the Y register changes.

- -

The watches are numbered. The numbers are printed along with the -watches, so you can tell which is which. To delete a watch use the -"delwatch" command with the watch number (1 to whatever). You can -also delete them all with the "clearwatches" command.

- -

Note that there's no real point in watching a label or CPU register -without dereferencing it: Labels are constants, and CPU registers -are already visible in the CPU Widget

- -

Traps

- -

A trap is similar to a breakpoint, except that it catches -accesses to a memory address, rather than specific location in the -program. They're useful for finding code that modifies TIA registers -or memory.

- -

An example: you are debugging a game, and you want to stop the -emulation and enter the debugger whenever RESP0 is strobed. You'd use -the command "trap RESP0" to set the trap, then exit the debugger. The -emulator will run until the next time RESP0 is accessed (either read -or write). Once the trap is hit, you can examine the TIA state to -see what the actual player 0 position is, in color clocks (or you -can in the future when we implement that feature in the TIA dump!)

- -

Unlike breakpoints, traps stop the emulation *after* the instruction -that triggered the trap. The reason for this is simple: until the -instruction is executed, the emulator can't know it's going to hit a -trap. After the trap is hit, the instruction is done executing, and -whatever effects it may have had on e.g. the TIA state have already -happened... but we don't have a way to run the emulated VCS in reverse, -so the best we can do is stop before the next instruction runs.

- -

Traps come in two varieties: read access traps and write access traps. -It is possible to set both types of trap on the same address (that's -what the plain "trap" command does). To set a read or write only trap, -use "trapread" or "trapwrite". To remove a trap, you just attempt -to set it again: the commands actually toggle the trap on & off. You -can also get rid of all traps at once with the "cleartraps" command.

- -

Use "listtraps" to see all enabled traps.

- -

Prompt commands:

- -

Type "help" to see this list in the debugger.

- -
-            a - Set Accumulator to value xx
-         bank - Show # of banks (with no args), Switch to bank (with 1 arg)
-         base - Set default base (hex, dec, or bin)
-        break - Set/clear breakpoint at address (default: current pc)
-      breakif - Set breakpoint on condition
-            c - Carry Flag: set (to 0 or 1), or toggle (no arg)
-      cheetah - Use Cheetah cheat code (see http://members.cox.net/rcolbert/)
-  clearbreaks - Clear all breakpoints
-   cleartraps - Clear all traps
- clearwatches - Clear all watches
-    colortest - Color Test
-            d - Decimal Flag: set (to 0 or 1), or toggle (no arg)
-       define - Define label
-   delbreakif - Delete conditional break created with breakif
-     delwatch - Delete watch
-       disasm - Disassemble from address (default=pc)
-         dump - Dump 128 bytes of memory at address
-         exec - Execute script file
-        frame - Advance emulation by xx frames (default=1)
-     function - Define expression as a function for later use
-       height - Change height of debugger window
-         help - This cruft
-+        list - List source (if loaded with loadlist)
-   listbreaks - List breakpoints
-    listtraps - List traps
-  listwatches - List watches
-    loadstate - Load emulator state (0-9)
-+    loadlist - Load DASM listing file
-      loadsym - Load symbol file
-            n - Negative Flag: set (to 0 or 1), or toggle (no arg)
-           pc - Set Program Counter to address
-         poke - Set address to value. Can give multiple values (for address+1, etc)
-        print - Evaluate and print expression in hex/dec/binary
-          ram - Show RAM contents (no args), or set address xx to value yy
-       reload - Reload ROM and symbol file
-        reset - Reset 6507 to init vector (does not reset TIA, RIOT)
-         riot - Show RIOT timer/input status
-          rom - Change ROM contents
-          run - Exit debugger, return to emulator
-+       runto - Run until first occurrence of string in disassembly
-            s - Set Stack Pointer to value xx
-         save - Save breaks, watches, traps as a .stella script file
-      saverom - Save (possibly patched) ROM to file
-      saveses - Save console session to file
-    savestate - Save emulator state (valid args 0-9)
-      savesym - Save symbols to file
-     scanline - Advance emulation by xx scanlines (default=1)
-         step - Single step CPU (optionally, with count)
-+         tia - Show TIA state (NOT FINISHED YET)
-        trace - Single step CPU (optionally, with count), subroutines count as one instruction
-         trap - Trap read and write accesses to address
-     trapread - Trap read accesses to address
-    trapwrite - Trap write accesses to address
-        undef - Undefine label (if defined)
-            v - Overflow Flag: set (to 0 or 1), or toggle (no arg)
-        watch - Print contents of address before every prompt
-            x - Set X Register to value xx
-            y - Set Y Register to value xx
-            z - Zero Flag: set (to 0 or 1), or toggle (no arg)
-
- - -

Commands marked with a + are partially implemented.

- - - -
-

(B) TIA Tab

- -

When selected, this tab shows detailed status of all the TIA registers -(except for audio; use the Audio tab for those).

-

- -

Most of the values on the TIA tab will be self-explanatory to a 2600 -programmer. The top line (with all the hex values) displays the raw -values read from the TIA locations, as they would be seen by the CPU.

- -

Many of the variables inside the TIA can only be written to by the -6502. The debugger lets you get inside the TIA and see the contents -of these variables. These include the color registers, player/missile -graphics and positions, and the playfield.

- -

You can control almost every aspect of the TIA from here, too: most -of the displays are editable. You can even toggle individual bits in -the GRP0/1 and playfield registers (remember to double-click).

- -

The group of buttons labelled "Strobes" allows you to write to any -of the strobe registers at any time.

- -

The collision registers are displayed in decoded format, in a table. -You can see exactly which objects have hit what. These are read-only -displays; you can't toggle the bits in the current release of Stella. Of -course, you can clear all the collisions with the CXCLR Strobe button.

- -

To the right of each color register, you'll see a small rectangle -drawn in the current color. Changing a color register will change the -color of this rectangle.

- - - -
-

(C) I/O Tab

- -

When selected, this tab shows detailed status of the Input, Output, -and Timer portion of the RIOT/M6532 chip (the RAM portion is accessed -in another part of the debugger).

-

- -

As with the TIA tab, most of the values here will be self-explanatory to a 2600 -programmer, and almost all can be modified. However, the SWCHx registers need -further explanation:

-

SWCHA(W) can be directly modified; here, the (W) stands for write. Similarly, -SWACNT can be directly modified. However, the results of reading back from -the SWCHA register are influenced by SWACNT, and SWCHA(R) is a read-only display -reflecting this result.

-

SWCHB cannot be directly modified; it will be indirectly modified by setting -the various difficulty switches, color/BW button, select/reset, etc. SWBCNT -is hardwired as read-only, and is not shown.

- - - -
-

(D) Audio Tab

- -

This tab lets you view the contents of the TIA audio registers. In -the current release of Stella, these are read-only displays. This tab -will grow some features in a future release.

- - - -
-

(E) TIA Display

- -

In the upper left of the debugger, you'll see the current frame of -video as generated by the TIA. If a complete frame hasn't been drawn, -the partial contents of the current frame will be displayed up to the -current scanline, with the contents of the old frame (in black & -white) filling the rest of the display. Note that if 'phosphor mode' -has been enabled for a ROM, you will see the effect here as well. That -is, no flicker will be shown for 30Hz display, even though a real -system would alternate between drawing frames (and hence produce -flicker).

- -

You can use the "Scan+1" button, the prompt "scan" command, or the -Alt-L key-combo to watch the TIA draw the frame one scanline at a time.

- -

You can also right-click anywhere in this window to show a context menu, -as illustrated:

-

-

The options are as follows:

- - - - -
-

(F) TIA Info

-

To the right of the TIA display (E) there is TIA information, as shown:

-

-

The indicators are as follows:

- - - - -
-

(G) TIA Zoom

-

Below the TIA Info (F) is the TIA Zoom area. This allows you to enlarge -part of the TIA display, so you can see fine details. Note that unlike -the TIA display area, this one does generate frames as the real -system would. So, if you've enabled 'phosphor mode' for a ROM, it -won't be honoured here (ie, you'll see alternating frames at 30Hz display, -just like on a real system).

-

You can also right-click anywhere in this window to show a context menu, -as illustrated:

-

-

These options allow you to zoom in on the image for even greater detail. -If you click on the output window, you can scroll around using the cursor, -PageUp/Dn and Home/End keys. You can also select the zoom position from -a context menu in the TIA Display.

- - - -
-

(H) Breakpoint/Trap Status

-

Below the TIA Zoom (G), there is a status line that shows the reason the -debugger was entered (if a breakpoint/trap was hit), as shown:

-

-

The output here will generally be self-explanatory. Due to space concerns, -conditional breakpoints will be shown as "CBP: ...", normal breakpoints -as "BP: ...", read traps as "RTrap: ..." and write traps as "WTrap: ...". -See the "Breakpoints" section for details.

- - - -
-

(I) CPU Registers

-

This displays the current CPU state, as shown:

-

-

All the registers and flags are displayed, and can be changed by -double-clicking on them. Flags are toggled on double-click. Selected registers -here can also be changed by using the "Data Operations" buttons, further -described in (J).

-

There's not much else to say about the CPU widget: if you know 6502 -assembly, it's pretty self-explanatory. If you don't, well, you should -learn :)

- - - -
-

(J) Data Operations buttons

-

These buttons can be used to change values in either CPU Registers (I), or -the RIOT RAM (K), depending on which of these widgets is currently active. -

-

Each of these buttons also have a keyboard shortcut (indicated in square -brackets). In fact, many of the inputboxes in various parts of the debugger -respond to these same keyboard shortcuts. If in doubt, give them a try.

-
-  0   [z]    - Set the current location/register to zero.
-  Inv [i !]  - Invert the current location/register [toggle all its bits].
-  Neg [n]    - Negate the current location/register [twos' complement negative].
-  ++  [+ =]  - Increment the current location/register
-  --  [-]    - Decrement the current location/register
-  <<  [< ,]  - Shift the current location/register left.
-  >>  [> .]  - Shift the current location/register right.
-
-  Any bits shifted out of the location/register with << or >>
-  are lost (they will NOT end up in the Carry flag).
-
- - - -
-

(K) M6532/RIOT RAM

-

This is a spreadsheet-like GUI for inspecting and changing the contents -of the 2600's RAM. All 128 bytes of RAM are visible on the screen at -once. You can navigate with either the mouse or the keyboard arrow keys. -To change a RAM location, either double-click on it or press Enter while -it's highlighted. Enter the new value (hex only for now, sorry), then -press Enter to make the change. If you change your mind, press Escape -and the original value will be restored. The currently selected RAM cell -can also be changed by using the Data operations buttons/associated -shortcut keys (J).

-

-

The 'Undo' button in the upper right should be self-explanatory; it will -undo the most previous operation to one cell only. The 'Rev' button is -more comprehensive. It will undo all operations on all cells -since you first made a change.

-

The UI objects at the bottom refer to the currently selected RAM cell. -The 'label' textbox shows the label attached to this RAM location (if any), -and the other textboxes show the decimal and binary equivalent value. -The remaining buttons to the right are further explained in section (L).

- - - -
-

(L) M6532/RIOT RAM (search/compare mode)

-

The RIOT RAM widget also lets you search memory for values such as lives or remaining -energy, but it's also very useful when debugging to determine which -memory location holds which quantity.

-

-

To search RAM, click 'Srch' and enter a byte value into the search editbox (0-255). -All matching values will be highlighted in the RAM widget. If 'Search' is clicked -and the input is empty, all RAM locations are highlighted.

- -

The 'Cmp' button is used to compare the given value using all -addresses currently highlighted. This may be an absolute number (such as 2), -or a comparitive number (such as -1). Using a '+' or '-' operator -means 'search addresses for values that have changed by that amount'.

-

The 'Rset' button resets the entire operation; it clears the highlighted -addresses and allows another search.

-

The following is an example of inspecting all addresses that have -decreased by 1:

- - - - -
-

(M) ROM Listing

-

The ROM Widget is a disassembly of the current bank of ROM. If a symbol -file is loaded, the disassembly will have labels. Even without a symbol -file, the standard TIA/RIOT labels will still be present.

-

- -

Each line of disassembly has four fields:

- - -

The 6502 mnemonic will be UPPERCASE for all standard instructions, -or lowercase for "illegal" 6502 instructions (like "dcp"). Since there's -no way to tell code from data, you'll likely see a lot of illegal opcodes -if you scroll to a data table in ROM.

- -

Beware: the cycle counts don't take into account any penalty cycles -for crossing page boundaries. All branches are shown as 2 cycles, which -is how long they take if the branch isn't taken. Branches that are -taken will actually take 3 cycles (plus a penalty cycle if they cross -page boundaries).

- -

You can scroll through the disassembly with the mouse or keyboard. To -center the display on the current PC, press the Space bar.

- -

Any time the Program Counter changes (due to a Step, Trace, Frame -or Scanline advance, or manually setting the PC), the disassembly will -scroll to the current PC location.

- -

Even though ROM is supposed to be Read Only Memory, this is an -emulator: you can change ROM all you want within the debugger. The hex -bytes in the ROM Widget are editable. Double-click on them to edit -them. When you're done, press Enter to accept the changes or Escape to -cancel them. Any time you edit ROM, there may be a short pause while -the ROM Widget disassembles the current bank again.

- -

Speaking of banks: Above the disassembly there's an indicator for the -current bank and total number of banks. If there's more than one bank, -you can manually switch banks by double-clicking the bank number and enter -a new number (or using the shortcuts keys for inputboxes as described -in section (J). This won't work if the ROM only has one bank, of course.

- -

The ROM listing also contains a context menu, accessible by right-clicking -anywhere in the listing:

-

-

Currently, there are two options:

- - -

Limitations

- - - -

These limitations will be addressed in a future release of Stella.

- - - -
-

Global Buttons

- -

There are also buttons on the right that always show up no matter which -tab you're looking at. These are always active. They are: Step, Trace, -Scan+1, Frame+1 and Exit.

-

- -

When you use these buttons, the prompt doesn't change. This means the -status lines with the registers and disassembly will be "stale". You -can update them just by pressing Enter in the prompt.

- -

You can also use the Step, Trace, Scan+1 and Frame+1 buttons from anywhere in -the GUI via the keyboard, with Alt-S, Alt-T, Alt-L and Alt-F.

- - - -
-

Tutorial: How to hack a ROM

- -

Here is a step-by-step guide that shows you how to use the debugger to -actually do something useful. No experience with debuggers is necessary, -but it helps to know at least a little about 6502 programming.

- -
    -
  1. Get the Atari Battlezone ROM image. Make sure you've got the - regular NTSC version. Load it up in Stella and press TAB to get to - the main menu. From there, click on "Game Information". For "Name", it - should say "Battlezone (1983) (Atari)" and for MD5Sum it should say - "41f252a66c6301f1e8ab3612c19bc5d4". The rest of this tutorial assumes - you're using this version of the ROM; it may or may not work with the - PAL version, or with any of the various "hacked" versions floating around - on the 'net.
  2. - -
  3. Start the game. You begin the game with 5 lives (count the tank - symbols at the bottom of the screen).
  4. - -
  5. Enter the debugger by pressing the ` (backquote) key. Don't get - killed before you do this, though. You should still have all 5 lives.
  6. - -
  7. In the RAM display, click the "Search" button (labelled 'Srch') and enter "5" for input. - This searches RAM for your value and highlights all addresses that match - the input. You should see two addresses highlighted: "00a5" and "00ba". - These are the only two addresses that currently have the value 5, so they're - the most likely candidates for "number of lives" counter. (However, some - games might actually store one less than the real number of lives, or - one more, so you might have to experiment a bit. Since this is a "rigged - demo", I already know Battlezone stores the actual number of lives. - Most games do, actually).
  8. - -
  9. Exit the debugger by pressing ` (backquote) again. The game will - pick up where you left off.
  10. - -
  11. Get killed! Ram an enemy tank, or let him shoot you. Wait for - the explosion to finish. You will now have 4 lives.
  12. - -
  13. Enter the debugger again. Click the "Compare" button (labelled 'Cmp') in RAM widget and enter - a value of 4. Now the RAM widget should only show one highlighted address: - "00ba". What we did was search within our previous results (the ones that - were 5 before) for the new value 4. Address $00ba used to have the value 5, - but now it has 4. This means that Battlezone (almost certainly) stores the - current number of lives at address $00ba.
  14. - -
  15. Test your theory. Go to the RAM display and change address $ba to - some high number like $ff (you could use the Prompt instead: enter "ram - $ba $ff"). Exit the debugger again (or advance the frame). You should now see lots of lives - at the bottom of the screen (of course, there isn't room to display $ff - (255) of them!)... play the game, get killed a few times, notice that - you have lots of lives.
  16. - -
  17. Now it's time to decide what sort of "ROM hack" we want to - accomplish. We've found the "lives" counter for the game, so we can - either have the game start with lots of lives, or change the game - code so we can't get killed (AKA immortality), or change the code - so we always have the same number of lives (so we never run out, AKA - infinite lives). Let's go for infinite lives: it's a little harder than - just starting with lots of lives, but not as difficult as immortality - (for that, we have to disable the collision checking code, which means - we have to find and understand it first!)
  18. - -
  19. Set a Write Trap on the lives counter address: "trapwrite $ba" - in the Prompt. Exit the debugger and play until you get killed. When - you die, the trap will cause the emulator to enter the debugger with the - Program Counter pointing to the instruction *after* the one that wrote - to location $ba.
  20. - -
  21. Once in the debugger, look at the ROM display. The PC should be at address - $f238, instruction "LDA $e1". You want to examine a few instructions before - the PC, so scroll up using the mouse or arrow keys. Do you see - the one that affects the lives counter? That's right, it's the "DEC $ba" - at location $f236.
  22. - -
  23. Let's stop the DEC $ba from happening. We can't just delete the - instruction (it would mess up the addressing of everything afterwards, - if it were even possible), but we can replace it with some other - instruction(s). - -

    Since we just want to get rid of the instruction, we can replace it with - NOP (no operation). From looking at the disassembly, you can see that - "DEC $ba" is a 2-byte long instruction, so we will need two one-byte - NOP instructions to replace it. From reading the prompt help (the "help" - command), you can see that the "rom" command is what we use to patch ROM. - -

    Unfortunately, Stella doesn't contain an assembler, so we can't just - type NOP to put a NOP instruction in the code. We'll have to use the - hex opcode instead. - -

    Now crack open your 6502 reference manual and look up the NOP - instruction's opcode... OK, OK, I'll just tell you what it is: it's $EA - (234 decimal). We need two of them, so the bytes to insert will look like: - -

        $ea $ea
    - -

    Select the line at address $f236 and enter 'ROM patch' mode. This is done - by either double-clicking the line, or pressing enter. Then delete the bytes - with backspace key and enter "ea ea". Another way to do this would have been - to enter "rom $f236 $ea $ea" in the Prompt widget. -

  24. - -
  25. Test your patch. First, set location $ba to some number of - lives that can be displayed on the screen ("poke $ba 3" or enter directly into - the RAM display). Now exit the debugger and play the game. You should see 3 - lives on the screen.
  26. - -
  27. The crucial test: get killed again! After the explosion, you - will *still* see 3 lives: Success! We've hacked Battlezone to give us - infinite lives.
  28. - -
  29. Save your work. In the prompt: "saverom bzhack.bin". You now - have your very own infinite-lives version of Battlezone. The file will - be saved in the current directory (NOT your ROM directory), so you might - want to move it to your ROM directory if it isn't the current directory. - This can also be accomplished by right-clicking on the ROM widget and - selecting 'Save ROM'.
  30. - -
  31. Test the new ROM: exit Stella, and re-run it. Open your ROM - (or give its name on the command line) and play the game. You can play - forever! It worked.
  32. -
- -

Now, try the same techniques on some other ROM image (try Pac-Man). Some -games store (lives+1) or (lives-1) instead of the actual number, -so try searching for those if you can't seem to make it work. Also, -some cartridge types include their own RAM. The debugger doesn't (yet) -know how to access on-cartridge RAM, so you'll have to use the "bank" and -"ram" commands to manually search the address space for the value you're -looking for (future versions of the debugger will be smarter about this).

- -

If you successfully patch a ROM in the debugger, but the saved version -won't work, or looks funny, you might need to add an entry to the -stella.pro file, to tell Stella what bankswitch and/or TV type to use. -That's outside the scope of this tutorial :)

- -

Of course, the debugger is useful for a lot more than cheating and -hacking ROMs. Remember, with great power comes great responsibility, -so you have no excuse to avoid writing that game you've been thinking -about for so long now :)

diff --git a/htdocs/docs/graphics/cheat.png b/htdocs/docs/graphics/cheat.png deleted file mode 100644 index 47b755f70..000000000 Binary files a/htdocs/docs/graphics/cheat.png and /dev/null differ diff --git a/htdocs/docs/graphics/chucky_cheese.png b/htdocs/docs/graphics/chucky_cheese.png deleted file mode 100644 index 82b1398ec..000000000 Binary files a/htdocs/docs/graphics/chucky_cheese.png and /dev/null differ diff --git a/htdocs/docs/graphics/circuit.png b/htdocs/docs/graphics/circuit.png deleted file mode 100644 index 6da16eed8..000000000 Binary files a/htdocs/docs/graphics/circuit.png and /dev/null differ diff --git a/htdocs/docs/graphics/commandmenu.png b/htdocs/docs/graphics/commandmenu.png deleted file mode 100644 index 72ac7e6d0..000000000 Binary files a/htdocs/docs/graphics/commandmenu.png and /dev/null differ diff --git a/htdocs/docs/graphics/console.png b/htdocs/docs/graphics/console.png deleted file mode 100644 index 79481bfe7..000000000 Binary files a/htdocs/docs/graphics/console.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_bpstatus.png b/htdocs/docs/graphics/debugger_bpstatus.png deleted file mode 100644 index e3bfdd500..000000000 Binary files a/htdocs/docs/graphics/debugger_bpstatus.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_cpuregs.png b/htdocs/docs/graphics/debugger_cpuregs.png deleted file mode 100644 index 6b1498f99..000000000 Binary files a/htdocs/docs/graphics/debugger_cpuregs.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_dataops.png b/htdocs/docs/graphics/debugger_dataops.png deleted file mode 100644 index e1e565dd8..000000000 Binary files a/htdocs/docs/graphics/debugger_dataops.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_globalbuttons.png b/htdocs/docs/graphics/debugger_globalbuttons.png deleted file mode 100644 index 53e594866..000000000 Binary files a/htdocs/docs/graphics/debugger_globalbuttons.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_iotab.png b/htdocs/docs/graphics/debugger_iotab.png deleted file mode 100644 index f5a30c7a1..000000000 Binary files a/htdocs/docs/graphics/debugger_iotab.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_main.png b/htdocs/docs/graphics/debugger_main.png deleted file mode 100644 index 23e870ee9..000000000 Binary files a/htdocs/docs/graphics/debugger_main.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_ram.png b/htdocs/docs/graphics/debugger_ram.png deleted file mode 100644 index 5f3d66341..000000000 Binary files a/htdocs/docs/graphics/debugger_ram.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_ramsearch.png b/htdocs/docs/graphics/debugger_ramsearch.png deleted file mode 100644 index 1ce8a2821..000000000 Binary files a/htdocs/docs/graphics/debugger_ramsearch.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_rom.png b/htdocs/docs/graphics/debugger_rom.png deleted file mode 100644 index ebe175b79..000000000 Binary files a/htdocs/docs/graphics/debugger_rom.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_romcmenu.png b/htdocs/docs/graphics/debugger_romcmenu.png deleted file mode 100644 index e5c23afd9..000000000 Binary files a/htdocs/docs/graphics/debugger_romcmenu.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_tiainfo.png b/htdocs/docs/graphics/debugger_tiainfo.png deleted file mode 100644 index a6a27c7ea..000000000 Binary files a/htdocs/docs/graphics/debugger_tiainfo.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_tiaoutcmenu.png b/htdocs/docs/graphics/debugger_tiaoutcmenu.png deleted file mode 100644 index e496f99c2..000000000 Binary files a/htdocs/docs/graphics/debugger_tiaoutcmenu.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_tiatab.png b/htdocs/docs/graphics/debugger_tiatab.png deleted file mode 100644 index c2d45bda6..000000000 Binary files a/htdocs/docs/graphics/debugger_tiatab.png and /dev/null differ diff --git a/htdocs/docs/graphics/debugger_tiazoomcmenu.png b/htdocs/docs/graphics/debugger_tiazoomcmenu.png deleted file mode 100644 index 86cb8a9ce..000000000 Binary files a/htdocs/docs/graphics/debugger_tiazoomcmenu.png and /dev/null differ diff --git a/htdocs/docs/graphics/developer_stats.png b/htdocs/docs/graphics/developer_stats.png deleted file mode 100644 index 00f23ee75..000000000 Binary files a/htdocs/docs/graphics/developer_stats.png and /dev/null differ diff --git a/htdocs/docs/graphics/eventmapping.png b/htdocs/docs/graphics/eventmapping.png deleted file mode 100644 index 8c34db475..000000000 Binary files a/htdocs/docs/graphics/eventmapping.png and /dev/null differ diff --git a/htdocs/docs/graphics/eventmapping_remap.png b/htdocs/docs/graphics/eventmapping_remap.png deleted file mode 100644 index 43148ff98..000000000 Binary files a/htdocs/docs/graphics/eventmapping_remap.png and /dev/null differ diff --git a/htdocs/docs/graphics/eventmapping_virtualdevs.png b/htdocs/docs/graphics/eventmapping_virtualdevs.png deleted file mode 100644 index 974bf24e6..000000000 Binary files a/htdocs/docs/graphics/eventmapping_virtualdevs.png and /dev/null differ diff --git a/htdocs/docs/graphics/jr_pacman.png b/htdocs/docs/graphics/jr_pacman.png deleted file mode 100644 index 52730e4c9..000000000 Binary files a/htdocs/docs/graphics/jr_pacman.png and /dev/null differ diff --git a/htdocs/docs/graphics/launcher.png b/htdocs/docs/graphics/launcher.png deleted file mode 100644 index 86f1318cd..000000000 Binary files a/htdocs/docs/graphics/launcher.png and /dev/null differ diff --git a/htdocs/docs/graphics/launcher_filter.png b/htdocs/docs/graphics/launcher_filter.png deleted file mode 100644 index b4af9ce65..000000000 Binary files a/htdocs/docs/graphics/launcher_filter.png and /dev/null differ diff --git a/htdocs/docs/graphics/launcher_options.png b/htdocs/docs/graphics/launcher_options.png deleted file mode 100644 index 9fbf21b4f..000000000 Binary files a/htdocs/docs/graphics/launcher_options.png and /dev/null differ diff --git a/htdocs/docs/graphics/launcher_options_files.png b/htdocs/docs/graphics/launcher_options_files.png deleted file mode 100644 index 4f18a28dc..000000000 Binary files a/htdocs/docs/graphics/launcher_options_files.png and /dev/null differ diff --git a/htdocs/docs/graphics/launcher_override.png b/htdocs/docs/graphics/launcher_override.png deleted file mode 100644 index 36b489c52..000000000 Binary files a/htdocs/docs/graphics/launcher_override.png and /dev/null differ diff --git a/htdocs/docs/graphics/options.png b/htdocs/docs/graphics/options.png deleted file mode 100644 index fbaa5854e..000000000 Binary files a/htdocs/docs/graphics/options.png and /dev/null differ diff --git a/htdocs/docs/graphics/options_audio.png b/htdocs/docs/graphics/options_audio.png deleted file mode 100644 index aa902e052..000000000 Binary files a/htdocs/docs/graphics/options_audio.png and /dev/null differ diff --git a/htdocs/docs/graphics/options_debugger.png b/htdocs/docs/graphics/options_debugger.png deleted file mode 100644 index 0bdbdba54..000000000 Binary files a/htdocs/docs/graphics/options_debugger.png and /dev/null differ diff --git a/htdocs/docs/graphics/options_gameinfo.png b/htdocs/docs/graphics/options_gameinfo.png deleted file mode 100644 index ce393338a..000000000 Binary files a/htdocs/docs/graphics/options_gameinfo.png and /dev/null differ diff --git a/htdocs/docs/graphics/options_input.png b/htdocs/docs/graphics/options_input.png deleted file mode 100644 index c3320f7a8..000000000 Binary files a/htdocs/docs/graphics/options_input.png and /dev/null differ diff --git a/htdocs/docs/graphics/options_misc.png b/htdocs/docs/graphics/options_misc.png deleted file mode 100644 index e2a1ac98c..000000000 Binary files a/htdocs/docs/graphics/options_misc.png and /dev/null differ diff --git a/htdocs/docs/graphics/options_ui.png b/htdocs/docs/graphics/options_ui.png deleted file mode 100644 index ec853fa83..000000000 Binary files a/htdocs/docs/graphics/options_ui.png and /dev/null differ diff --git a/htdocs/docs/graphics/options_video.png b/htdocs/docs/graphics/options_video.png deleted file mode 100644 index 0bf94626d..000000000 Binary files a/htdocs/docs/graphics/options_video.png and /dev/null differ diff --git a/htdocs/docs/graphics/pacman.png b/htdocs/docs/graphics/pacman.png deleted file mode 100644 index 8a80e4d70..000000000 Binary files a/htdocs/docs/graphics/pacman.png and /dev/null differ diff --git a/htdocs/docs/graphics/rom_browser.png b/htdocs/docs/graphics/rom_browser.png deleted file mode 100644 index 3fca4021e..000000000 Binary files a/htdocs/docs/graphics/rom_browser.png and /dev/null differ diff --git a/htdocs/docs/graphics/romaudit.png b/htdocs/docs/graphics/romaudit.png deleted file mode 100644 index 7aa89eaaa..000000000 Binary files a/htdocs/docs/graphics/romaudit.png and /dev/null differ diff --git a/htdocs/docs/graphics/rominfo_1x_large.png b/htdocs/docs/graphics/rominfo_1x_large.png deleted file mode 100644 index 67a46cdc0..000000000 Binary files a/htdocs/docs/graphics/rominfo_1x_large.png and /dev/null differ diff --git a/htdocs/docs/graphics/rominfo_1x_small.png b/htdocs/docs/graphics/rominfo_1x_small.png deleted file mode 100644 index 4771b5624..000000000 Binary files a/htdocs/docs/graphics/rominfo_1x_small.png and /dev/null differ diff --git a/htdocs/docs/graphics/rominfo_2x_small.png b/htdocs/docs/graphics/rominfo_2x_small.png deleted file mode 100644 index 4aabc96d3..000000000 Binary files a/htdocs/docs/graphics/rominfo_2x_small.png and /dev/null differ diff --git a/htdocs/docs/graphics/secret_quest.png b/htdocs/docs/graphics/secret_quest.png deleted file mode 100644 index d1dcde340..000000000 Binary files a/htdocs/docs/graphics/secret_quest.png and /dev/null differ diff --git a/htdocs/docs/graphics/space_invaders.png b/htdocs/docs/graphics/space_invaders.png deleted file mode 100644 index 3d80b75fd..000000000 Binary files a/htdocs/docs/graphics/space_invaders.png and /dev/null differ diff --git a/htdocs/docs/index.html b/htdocs/docs/index.html deleted file mode 100644 index 087968064..000000000 --- a/htdocs/docs/index.html +++ /dev/null @@ -1,3440 +0,0 @@ - - -Stella - A multi-platform Atari 2600 VCS emulator - - - - - -
Stella
-

-

A multi-platform Atari 2600 VCS emulator

- -

Release 2.7.7

-

- -

User's Guide

-

- -
    -
  1. Introduction
  2. -
  3. What You Will Need
  4. -
  5. Installation
  6. -
  7. Games
  8. -
  9. Starting A Game
  10. -
  11. Changing Options
  12. -
  13. Keyboard Layout
  14. -
  15. Event Remapping / Input Devices
  16. -
  17. ROM Launcher
  18. -
  19. ROM Audit Mode
  20. -
  21. Stelladaptor Support
  22. -
  23. AtariVox/SaveKey Support
  24. -
  25. Developer Options/Integrated Debugger
  26. -
  27. Settings File
  28. -
  29. Cheatcode Manager
  30. -
  31. Game Properties
  32. -
  33. Palette Support
  34. -
  35. Acknowledgments
  36. -
  37. License and Disclaimer
  38. -
- -


- -
February 1999 - May 2009
-
The Stella Team
-
Stella Homepage
- -


- -

-

A Brief History of the Atari 2600

-
- -

- In the early 1970's, video arcade games gained commercial success for the - first time. The American public was introduced to Pong, Tank, and other - interactive video games which populated amusement parks, bars, and arcades. - The games were successful enough to create interest for home versions, so in - 1975 Atari released Home Pong and it was a smash hit. Other companies such as - Magnavox and Coleco followed suit and released their own dedicated console - games. Then in 1976, Fairchild Camera and Instrument introduced the Channel F - system, the first cartridge based home video game system. The industry - recognized that cartridge systems were the future of video gaming, and began - development in that direction. In January 1977, RCA released the Studio II, - another cartridge based system, although it only projected in black and white - and seemed to be focused on educational titles. Then, in October 1977, Atari - released the Atari VCS (Video Computer System) with an initial offering of nine - games. This system, later renamed the Atari 2600, took the industry by storm - and dominated the marketplace for years to come. -

- -

- Because of oversupply, the Christmas season of 1977 was very rough on the - video game industry, and the Atari 2600 was the only system that managed to - emerge unscathed. Atari enjoyed strong sales in 1978 and a fantastic holiday - season, as Atari released more games such as Outlaw, Spacewar, and Breakout. - Internally however, Atari was at odds. Nolan Bushnell, the inventor of pong and - founder of Atari, wound up leaving the company and purchased Pizza Time Theater, - which later became the successful Chuck E. Cheese! In 1979 Atari continued - their trend and released 12 more games which met with continued success. - However, Atari was now facing some stiffer competition from the Mattel - Intellivision and the Magnavox Odyssey2. -

- -

- Atari needed a mega-hit in 1980 in order to squash the competition, and they - found it in the home version of a game from Japan called Space Invaders. It was - so popular that people were buying the Atari 2600 just so they could play Space - Invaders at home. Following that, Atari released Adventure, which was the first - video game to contain an Easter Egg - placing an object in a certain area - revealed the programmer's name, Warren Robinett. 1980 was important for another - reason - the creation of the first ever third party software producer, Activision. - The company was formed by four Atari employees who were unsatisfied with the - working conditions at the company. They released four games initially: Dragster, - Fishing Derby, Checkers and Boxing. The games were very well received by the - public, and revealed that the Atari 2600 was capable of better games than - Atari themselves had been producing. Atari tried to prevent Activision from - selling games, but they failed and Activision grossed $70 million that year. -

- -

- By 1981, the video game industry was basically a horse race between the 2600 - and the Intellivision. While the Intellivision was technologically superior in - some respects, the 2600 continued to lead in sales. Atari released the home - version of Asteroids, which was a huge success. Inspired by the success of - Activision, another software development group called Imagic was formed. They - would not release any games until 1982 however. Another company, Games by Apollo, - was formed in Texas and released several games that year. -

- -

- Coleco entered the market in 1982 with the release of the graphically - superior Colecovision. To combat this new system, Atari produced the 5200, - a technologically comparable system. The 2600 dropped $100 in price in order - to remain competitive. Then a company called Arcadia released a peripheral - called the Supercharger which played games in an audio cassette medium. This - allowed for multiple loads and expanded the 2600's capabilities. -

- Atari released Pac-Man and E.T. that year, two incredibly hyped games which - were critical flops. - Although Pac-Man sold many copies, it was considered to be a poor - translation of the arcade hit. However, there were many fantastic games - produced for the 2600 during this period, and it was still selling strong. -

- -

- Ever since the inception of Activision, Atari had been fighting to keep third - parties from producing cartridges which they felt were stealing profits from - them. Finally the issue was settled when Atari agreed to allow third party - manufacturing in exchange for a royalty. Suddenly software companies began - popping up all over, and 1982 saw releases from companies like Venturevision, - Spectravision, Telesys, CBS, 20th Century Fox, US Games, M Network, Tigervision, - Data Age, Imagic and Coleco. There was even a company that released a line of - X-Rated games for the 2600 called Mystique. The year was financially successful - for Atari, however there seemed to be a glut of software. Although there were - many quality titles still produced, there was an increasing number of rushed - games as manufacturers attempted to cash in on the craze. -

- -

- More companies jumped on the band wagon in 1983. Zimag, Ultravision, Amiga, - and others were also producing games and peripherals. It seemed as if there was - just too much product to meet the demand, and as it turned out there was. By - the end of the year, companies began folding. US Games, Data Age, Games by - Apollo, Telesys and others all closed their doors from poor sales. A video - game crash was occurring, and all companies were taking it on the chin. -

- -

- 1984 was a much more subdued year for the Atari 2600, and the price of the - system had now dropped to $40-$50. Many were saying that the video game - industry was dead. However, Atari surprised everyone by announcing the release - of the 7800, and also promising more 2600 games with improved graphics and - sound. Unfortunately, neither of these things happened in 1984 because Atari - sold their home video game division to Jack Tramiel who believed that home - computers would replace video game systems. No further mention of the 2600 or - 7800 was made that year, and it appeared that they might be dead. -

- -

- 1985 was another very quiet year for Atari and video games in general, and only - a few games were released for the 2600. Activision produced Cosmic Commuter and - Ghostbusters, but with little fanfare or marketing, these games did not sell - well. However, because of the huge game library and cheap price, Atari still - sold over a million 2600 consoles in 1985. -

- -

- There were very few plans for home video game systems by any company in 1986, - since the market appeared to be dead. Then, to most people's surprise, Nintendo - brought the NES to America and it was a smash hit, proving that video games - still had a place in the US. Atari decided that maybe it would be a good idea - to release the 7800 units it had in storage, and produce some more 2600 games. - The 7800 was released with only 3 games initially available, although it was - compatible with the 2600 library. They also redesigned the 2600 as the 2600 Jr., - a machine with the same abilities, but a new look and marketing campaign. It - was sold for less than $50. -

- -

- Video games were once again selling phenomenally in 1987. Atari released - several new titles, including Jr. Pac-Man, and also licensed a number of games - from other companies such as Donkey Kong and Q*Bert. These new titles sold for - $10-$15. Interestingly, a number of titles began appearing again from third - part companies such as Epyx, Froggo, and Exus. It seemed that the 2600 was not - dead yet! -

- In 1988, Atari rehired Nolan Bushnell and announced a number of new - titles, including Secret Quest, a game written by Mr. Bushnell himself. Atari - continued to manufacture these games even until 1989. However, it was apparent - that the 2600, after its introduction over a decade ago, was finally at the end - of its run. Although it was still produced and marketed outside of the US, the - Atari 2600 finished its run in America. No other console has had such a long - history or sold as many systems in the U.S. -

- -

- Today, the 2600 still has a large number of fans who remember the countless - games played over the years, and the years to come. There are even games being - produced by hobbyists, some of them quite professionally, being released on - newly burnt cartridges with labels and manuals. And the recent trend in - retrogaming has brought many more video game fans to rediscover the 2600, and - it continues to live on 22 years after its release! -

- -

Alexander Bilstein
February 1999

- - - -

-

- 1. Introduction

-
- -

- Stella is a freely distributed multi-platform Atari 2600 VCS emulator; originally - developed for Linux by Bradford W. Mott. Stella allows you to enjoy all of - your favorite 2600 games once again by emulating the 2600's hardware with - software. Stella is written in C++, which allows it to be ported to other - operating systems and architectures. Since its original release Stella has - been ported to AcornOS, AmigaOS, DOS, FreeBSD, Linux, MacOS, OpenStep, OS/2, - Unix, and Windows, as well as consoles such as Sega Dreamcast, GP2X, Nintendo - DS and Playstation Portable (among others). -

- -

-

Features

- - - - - -

-

- 2. What You Will Need

-
- -

The following sections outline the basic system requirements for running - Stella under various operating systems. -

- -

Note that for this version of Stella, you are not required to have a - stella.pro file. ROM properties are built in, and defaults will be used - whenever necessary.

- -

-

General (required for all versions of Stella)

- - -

-

Linux/UNIX

-

The Linux version of Stella is designed to work on a Linux Workstation with - the following:

- - -

-

Macintosh

- -

The Mac version of Stella is designed to work on a Power Macintosh with - the following:

- - -

-

Windows

- -

The Windows version of Stella is designed to work on Windows 98/ME/2000/XP/Vista - with the following:

- - - -

-

Other

- -

Stella is extremely portable, and in its lifetime has been ported to almost every - platform where the SDL library exists. It is 32/64 bit clean in Linux/Unix and Windows - (Win32/Win64), and is expected to be compatible with 64-bit OSX as well. The Stella - team is interested in hearing about any problems you may encounter with diverse - operating systems and CPU types.

- - - -

-

- 3. Installation

-
-

Stella is distributed in both source and binary form. In general, you should always - download and install the appropriate binary version. Compiling from source is only - recommended for developers, or if the binary version doesn't work for some reason. - Once you have a Stella distribution you should follow the instructions for your - operating system given below.

- -

If you have a supported joystick and driver installed and SDL can access the device, - you can play games using joysticks.

- -

Currently, sound is supported using SDL. As long as SDL can detect your sound card, - Stella will be able to produce sound.

- -

-

Linux/UNIX

- - -

-

Macintosh

- - -

-

Windows

- - - - -

-

- 4. Games

-
- -

Stella allows you to play games using ROM images of cartridges and cassettes.

- -

-

Cartridges

- -

Most games for the Atari 2600 came on cartridges. A cartridge usually - consists of a single Read Only Memory (ROM) chip which contains the data and - code for the game. Plugging a cartridge into the Atari 2600 allows the 2600's - microprocessor to access the program stored on the cartridge.

- -

In a similar way you must "plug" a copy of a cartridge into Stella when you - want to play it. Having a ROM image, BIN file, of the cartridge allows you to - do this. A ROM image is a file, which contains the actual data and code read - from the cartridge. There are several ways to obtain a ROM image of a - cartridge:

- -
    -
  1. If you're handy with a soldering iron then you can design and build a - device that plugs into the printer port of a PC and read the data from the - cartridge
  2. - -
  3. You can purchase the Atari 2600 Action Packs by Activision and use - their ROM images
  4. - -
  5. You can search around the internet and find ROM images to download
  6. -
- -

WARNING: It is illegal to use ROM images of games that you do not - actually own since these games are still copyrighted.

- -

-

Supercharger Cassettes

- -

Supercharger games were not stored on cartridges instead they were stored - on cassette tapes. The Supercharger, which plugged into the Atari 2600's - cartridge slot, loaded games into its 6K of Random Access Memory (RAM) using a - standard audio cassette player. The Supercharger also supported multi-loading, - which allowed games to be broken into several segments and loaded at different - times. This was useful for large games which had distinct parts such as role - playing games.

- -

Most of the available Supercharger ROM images are stored in 8448 bytes files. - However, ROM images of multi-load games are sometimes stored in a set of 8448 - byte files. The names of these files have a two character sequence number in - them which indicates what load they are. The sequence starts with zero, skips - a few numbers and then increments by one.

- -

Stella supports multi-load games, however, the set of ROM images must be - combined into a single ROM image file. For example to create a multi-load ROM - image file for Survival Island you would do the following under Unix: - -

   % cat survivl0.bin survivl6.bin survivl7.bin > survivl.bin
- - or to create it under DOS you would: - -
   % copy /b survivl0.bin+survivl6.bin+survivl7.bin survivl.bin
- -

Once you have the multi-load ROM image file, survivl.bin in this case, you - can play the game using it.

- - - -

-

- 5. Starting A Game

-
- -

Once Stella is installed and you have some ROM images you're ready to start - playing.

- -

-

Integrated GUI

- -

Stella contains an integrated GUI for all ports. Commandline support is also - available for those who want to use it.

- -

If you start Stella and do not specify a ROM image, it will start in - 'ROM Launcher' mode:

-

- -

If this is your first time starting Stella, you'll probably want to set the locations - for ROM files, snapshots, and other external paths. These items are accessible by clicking - the Options => Config Files buttons. Many other options can be set here, - but for now we'll concentrate on Config Files only:

-

Config Files dialog:

- - - - - - -
     - - - - - - - - - - - -
ItemBrief descriptionFor more information,
see Commandline
Rom pathspecifies location of ROM files-romdir
State pathspecifies location of state files-statedir
Cheat filespecifies location of cheatfile database-cheatfile
Palette filespecifies location of user palette-palettefile
Properties file specifies location of external stella.pro database-propsfile
Snapshot pathspecifies where to load/save snapshots-ssdir
EEPROM pathspecifies location of EEPROM files-eepromdir
Multiple snapshotswhether to overwrite old snapshots-sssingle
Snapshot in 1x modesave snapshot in 1x mode, without filtering-ss1x
-
- -

If you include the '~' character at the beginning of a path, it will be expanded - to your home directory. For Linux/UNIX, this corresponds to your $HOME directory, - but for Windows it means your 'My Documents' folder.

- -

Selecting a new path for an item is done by clicking the appropriate button(s) - (in this case, 'Rom path' was selected). Note that although the rom path - was '~/src/stella', it expands to '/home/stephena/src/stella' in the browser:

-

- -

Once you've changed your settings, you can start emulation by selecting a ROM - and pressing 'Enter' or clicking 'Select', or double-clicking a ROM. Note that - some games require you to 'Reset' the console before you start playing. In this - case, you need to hit the virtual reset switch, which by default is the F2 key. - Also, some games may require that you press the joystick fire button to begin, - which by default is the Left Control/Cmd or Space key(s). If a game uses a - more complex controller, see Section 7 - Keyboard Layout - for more information.

- -

-

Command Line

- -

Stella can also be used from the commandline (assuming your operating system - has a commandline).

- -

To run Stella from the commandline, use the following format:

- -
   stella [options ...] ROM_FILENAME
- -

Options ('0' or 'false' indicates false, '1' or 'true' indicates true, - others are self-explanatory):

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ArgumentDescription
-video <soft|gl>
Use SDL software or OpenGL rendering mode.
-gl_lib <filename>
OpenGL mode only. Specify the OpenGL library to use (only use - this if you know what you're doing). For OSX, this should - probably be left blank.
-gl_filter <nearest|linear>
OpenGL mode only. Use GL_NEAREST or GL_LINEAR filtering. - GL_NEAREST results in a scaled, pixelated image, while - GL_LINEAR introduces blurring.
-gl_aspectn <number>
-gl_aspectp <number>
OpenGL mode only. Specify the amount (as a percentage) to scale the - TIA image width in NTSC and PAL mode. Since many video modes do not - use square pixels, you can reduce width until the pixels appear square. - Allowable values are 80 - 120; I find 85 - 90 gives the most authentic - look for NTSC, and 105 - 110 for PAL.
-gl_fsmax <1|0>
OpenGL mode only. Stretch TIA image while in fullscreen mode.
-gl_vsync <1|0>
OpenGL mode only. Synchronize screen updates to the vertical blank - period. This can result in smoother updates, and eliminate tearing.
-gl_texrect <1|0>
OpenGL mode only. Enable GL_TEXTURE_RECTANGLE extension. This causes - problems for some people using ATI video cards.
-tia_filter <filter>
Use the specified filter while in TIA/emulation mode. Currently, - this can be zoomZx, where Z={2..10}.
-fullscreen <1|0>
Play the game in fullscreen mode.
-fullres <auto|WxH>
Use the given resolution in fullscreen mode. If 'auto', let Stella decide - which resolution to use.
-center <1|0>
Centers game window (if possible).
-grabmouse <1|0>
Keeps the mouse in the game window.
-palette <standard|z26|user>
Set the palette to either normal Stella, the one used in the z26 - emulator, or a user-defined palette.
-colorloss <1|0>
Enable/disable the PAL color-loss effect.
-timing <sleep|busy>
Determines type of wait to perform between processing frames. - Sleep will release the CPU as much as possible, and is the - preferred method on laptops (and other low-powered devices) - and when using GL VSync. Busy will emulate z26 busy-wait - behaviour, and use all possible CPU time, but may eliminate - graphical 'tearing' in software mode.
-framerate <number>
Display the given number of frames per second. Normally, Stella - will determine framerate based on number of scanlines. - Setting this to 0 automatically enables auto-frame - calculation (ie, framerate based on scanlines).
-sound <1|0>
Enable or disable sound generation.
-fragsize <number>
Specify the sound fragment size to use. Linux/Mac seems to work - with 512, Windows may need 2048 (but newer versions work with - 512 as well).
-freq <number>
Set sound sample output frequency (0 - 48000). - Default is 31400. Do not change unless you experience sound - issues.
-tiafreq <number>
Set sound sample generation frequency (0 - 48000). - Default is 31400. Do not change unless you experience sound - issues.
-volume <number>
Set the volume (0 - 100).
-clipvol <1|0>
Enable volume clipping (eliminates popping). Do not change - unless you experience sound issues.
-cheat <code>
Use the specified cheatcode (see Cheat section for description).
-showinfo <0|1>
Shows some game info on the commandline while Stella is running.
-joydeadzone <number>
Sets the joystick deadzone area for analog joysticks. - Accepts a number from 0 - 29, and uses the formula - 3200 + number * 1000. So the possible deadzone values - range from 3200 to 32200.
-pspeed <number>
Speed for digital emulation of paddles (1-15).
-sa1 <left|right>
Stelladaptor 1 emulates specified joystick port.
-sa2 <left|right>
Stelladaptor 2 emulates specified joystick port.
-autoslot <1|0>
Automatically switch to the next available save state slot after - saving a ROM state file.
-audiofirst <1|0>
Initialize the audio subsystem before video when emulating a - ROM. This seems to be required when using ATI video cards - in OpenGL mode in Windows. Since it doesn't hurt other - systems, the default is 1.
-ssdir <path>
The directory to save snapshot files to.
-sssingle <0|1>
Generate single snapshot instead of many, overwriting - any previous snapshots.
-ss1x <0|1>
Ignore any scaling applied to the TIA image, and save - snapshot in unscaled (1x) mode.
-rominfo <rom>
Display detailed information about the given ROM, and then exit - Stella.
-listrominfo
Prints relevant contents of the Stella ROM database, one ROM per line, - and then exit Stella. This can be used for external frontends.
-launcherres <WxH>
Set the size of the ROM launcher.
-launcherfont <small|medium|large>
Set the size of the font in the ROM launcher.
-launcherexts <allfiles|allroms|LIST>
Specifies which files to show in the ROM launcher - ('allfiles' is self-explanatory, 'allroms' is all files - with valid rom extensions (currently: a26, bin, rom, - gz, zip), 'LIST' is a ':' separated list of valid rom extensions.
-romviewer <0|1|2>
Hide ROM info viewer in ROM launcher mode (0), or use the - given zoom level (1 or 2).
-uipalette <1|2>
Used the specified palette for UI elements. This isn't yet - complete.
-listdelay <delay>
Set the amount of time to wait between treating successive - keypresses as a single word in list widgets (value can range - from 300-1000).
-mwheel <lines>
Set the number of lines a mousewheel will scroll in the UI.
-romdir <dir>
Set the directory where the ROM launcher will start.
-statedir <dir>
Set the directory in which to save state files.
-cheatfile <file>
Set the full pathname of the cheatfile database.
-palettefile <file>
Set the full pathname of the user-defined palette file.
-propsfile <file>
Set the full pathname of the ROM properties file.
-eepromdir <dir>
Set the directory in which to save EEPROM files.
-avoxport <name>
Set the name of the serial port where an AtariVox is connected.
-help
Prints a help message describing these options, and then - exit Stella.
- -

The following are useful to developers. Only use them if you know what - you're doing! Note that in all cases, the values supplied to the arguments - are not case sensitive.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ArgumentDescription
-debuggerres <WxH>
Set the size of the debugger window.
-break <address>
Set a breakpoint at specified address.
-debug
Immediately jump to debugger mode when starting Stella.
-holdreset
Start the emulator with the Game Reset switch held down.
-holdselect
Start the emulator with the Game Select switch held down.
-holdbutton0
Start the emulator with the left joystick button held down.
-stats <1|0>
Overlay console info on the TIA image during emulation.
-tiafloat <1|0>
Set unused TIA pins to be floating on a read/peek.
-bs <type>
Set "Cartridge.Type" property. See the Game Properties section - for valid types.
-type <type>
Same as using -bs.
-channels <Mono|Stereo>
Set "Cartridge.Sound" property.
-ld <A|B>
Set "Console.LeftDifficulty" property.
-rd <A|B>
Set "Console.RightDifficulty" property.
-tv <Color|BlackAndWhite>
Set "Console.TelevisionType" property.
-sp <Yes|No>
Set "Console.SwapPorts" property.
-lc <type>
Set "Controller.Left" property. See the Game Properties - section for valid types.
-rc <type>
Set "Controller.Right" property. See the Game Properties - section for valid types.
-bc <type>
Sets both "Controller.Left" and "Controller.Right" properties. - See the Game Properties section for valid types.
-cp <Yes|No>
Set "Controller.SwapPaddles" property.
-format <format>
Set "Display.Format" property. See the Game Properties section - for valid formats.
-ystart <number>
Set "Display.YStart" property (0 - 64).
-height <number>
Set "Display.Height" property (210 - 256).
-pp <Yes|No>
Set "Display.Phosphor" property.
-ppblend <number>
Set "Display.PPBlend" property, used for phosphor effect (0-100). - Default is 77.
- -

-

Command Menu

- -

Normally, one would use the keyboard shortcuts for controlling the - 'virtual' switches in Stella (ie, the commands associated with the - function keys as described in Section 7 - Keyboard Layout. - However, another alternative is available. Pressing the '\' key toggles - a command menu dialog as follows:

-

- -

This dialog contains a set of buttons that represent the same functionality - as the function keys. You may find this useful if you cannot remember all - the function key events, or you wish to use Stella without a keyboard (ie, - in a standalone gaming system).

- - - -

-

- 6. Changing Options

-
- -

All settings can be changed within the integrated Options UI while Stella is - running (unless otherwise noted - some settings require an application restart). - The Options menu can be accessed from the ROM launcher by clicking the - Options button, or in-game by pressing the 'Tab' key.

- -

Options Menu dialog:

- -

-

Video Settings dialog:

- - - - - - -
     - - - - - - - - - - - - - - - - - -
ItemBrief descriptionFor more information,
see Commandline
Renderer (*)use specified rendering mode (requires restart)-video
TIA Filterfilter for emulation mode -tia_filter
TIA Palettepalette for emulation mode-palette
FS Resresolution for fullscreen mode-fullres
Timing (*)how to wait between frames (requires restart)-timing
GL FilterOpenGL filter mode-gl_filter
GL Aspect (N)OpenGL width of TIA image in NTSC mode-gl_aspectn
GL Aspect (P)OpenGL width of TIA image in PAL mode-gl_aspectp
Framerateframes per second in emulation mode-framerate
Fullscreen modeself-explanatory-fullscreen
PAL color-lossuse PAL color-loss effect-colorloss
GL FS Stretchstretch fullscreen OpenGL in emulation mode-gl_fsmax
GL VSyncenable OpenGL vertical synchronization-gl_vsync
Grab mousekeep mouse in SDL window-grabmouse
Center window (*)attempt to center SDL window (requires restart)-center
-
-
-

Audio Settings dialog:

- - - - - - -
     - - - - - - - - -
ItemBrief descriptionFor more information,
see Commandline
Volumeself-explanatory-volume
Fragment sizeset size of audio buffers-fragsize
Output freqchange sound output frequency (advanced)-freq
TIA freqchange TIA output frequency (advanced)-tiafreq
Clip volumeEliminate popping in sound generation (advanced)-clipvol
Enable soundself-explanatory-sound
-
-
-

Input Settings dialog:

- - - - - - -
    
This dialog is described in further detail in Section 8 - - Event Remapping.
-
-

UI Settings dialog (3 tabs):

- - - - - - -
    
This tab is described in further detail in - Section 9 - ROM Launcher.
-
- - - - - - -
     - - - -
ItemBrief descriptionFor more information,
see Commandline
Debugger Width/Heightself-explanatory (requires restart)-debuggerres
-
-
- - - - - - -
     - - - - - -
ItemBrief descriptionFor more information,
see Commandline
Interface Palettepalette to use for UI elements-uipalette
List quick delaytime to wait between keypresses in listwidget-listdelay
Mouse wheel scrollnumber of lines mouse scroll will move in listwidget-mscroll
-
-
-

Audit ROMs dialog:

- - - - - - -
    
This dialog is described in further detail in - Section 10 - ROM Audit Mode.
-
-

Game Properties dialog:

- - - - - - -
    
This dialog allows you to change all ROM properties - as described in Section 16 - Game Properties. -
- - -


-

- 7. Keyboard Layout

-
- -

The Atari 2600 console controls and controllers are mapped to the computer's - keyboard as shown in the following tables. However, most of these events can be - remapped to other keys on your keyboard or buttons on your joystick (see Section 8 - - Event Remapping). The tables below show the default - settings.

- -

Console Controls (can be remapped)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionKey (Standard)Key (OSX)
Exit emulatorControl + qCmd + q
Exit game mode/enter launcher modeEscapeEscape
Enter/exit options modeTabTab
Enter/exit command modeBackslash (\)Backslash (\)
Enter/exit debuggerBackquote (`)Backquote (`)
Select GameF1F1
Reset GameF2F2
Color TVF3F3
Black/White TVF4F4
Left Player Difficulty BF5F5
Left Player Difficulty AF6F6
Right Player Difficulty BF7F7
Right Player Difficulty AF8F8
Save state to current slotF9F9
Change current state slotF10F10
Load state from current slotF11F11
Save PNG snapshotF12F12
Pause/resume emulationPausePause
- - -

Joystick / BoosterGrip Controller (can be remapped)

- - - - - - - - - - - - -
Left Joystick (Joy0)Right Joystick (Joy1)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionKey
Joystick UpUp arrow
Joystick DownDown arrow
Joystick LeftLeft arrow
Joystick RightRight arrow
Fire ButtonSpace
Trigger Button4
Booster Button5
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionKey
Joystick UpY
Joystick DownH
Joystick LeftG
Joystick RightJ
Fire ButtonF
Trigger Button6
Booster Button7
-
- -

Paddle Controller digital emulation (can be remapped independently of joystick controller)

- - - - - - - - - - - - -
Left PaddlesRight Paddles
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionKey
Paddle 0 decreaseSame as 'Joy0 Left'
Paddle 0 increaseSame as 'Joy0 Right'
Paddle 0 FireSame as 'Joy0 Fire'
Paddle 1 decreaseSame as 'Joy0 Up'
Paddle 1 increaseSame as 'Joy0 Down'
Paddle 1 FireSame as 'Joy0 Booster'
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionKey
Paddle 2 decreaseSame as 'Joy1 Left'
Paddle 2 increaseSame as 'Joy1 Right'
Paddle 2 FireSame as 'Joy1 Fire'
Paddle 3 decreaseSame as 'Joy1 Up'
Paddle 3 increaseSame as 'Joy1 Down'
Paddle 3 FireSame as 'Joy1 Booster'
-
- -

Driving Controller (cannot be remapped, always associated with joystick controller)

- - - - - - - - - - - - -
Left DrivingRight Driving
- - - - - - - - - - - - - - - - - - - - -
FunctionKey
Left DirectionSame as 'Joy0 Left'
Right DirectionSame as 'Joy0 Right'
Fire ButtonSame as 'Joy0 Fire'
-
- - - - - - - - - - - - - - - - - - - - -
FunctionKey
Left DirectionSame as 'Joy1 Left'
Right DirectionSame as 'Joy1 Right'
Fire ButtonSame as 'Joy1 Fire'
-
- -

Keypad Controller (can be remapped)

- - - - - - - - - - - - -
Left KeypadRight Keypad
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Pad ButtonKey
11
22
33
4Q
5W
6E
7A
8S
9D
.Z
0X
#C
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Pad ButtonKey
18
29
30
4I
5O
6P
7K
8L
9;
.,
0.
#/
-
- -

Developer Keys in TIA mode (cannot be remapped)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionKey (Standard)Key (OSX)
Set "Display.YStart" to next larger valueAlt + PageUpShift-Cmd + PageUp
Set "Display.YStart" to next smaller valueAlt + PageDownShift-Cmd + PageDown
Set "Display.Height" to next larger valueControl + PageUpCmd + PageUp
Set "Display.Height" to next smaller valueControl + PageDownCmd + PageDown
Toggle frame stats (scanline count/fps/bs type/etc)Alt + lShift-Cmd + l
Toggle TIA Player0 objectAlt + zShift-Cmd + z
Toggle TIA Player1 objectAlt + xShift-Cmd + x
Toggle TIA Missile0 objectAlt + cShift-Cmd + c
Toggle TIA Missile1 objectAlt + vShift-Cmd + v
Toggle TIA Ball objectAlt + bShift-Cmd + b
Toggle TIA Playfield objectAlt + nShift-Cmd + n
Turn all TIA objects offAlt + .Shift-Cmd + .
Turn all TIA objects onAlt + /Shift-Cmd + /
- -

Other Keys (cannot be remapped, except those marked with '*')

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionKey (Standard)Key (OSX)
Switch to next larger zoom levelAlt + =Cmd + =
Switch to next smaller zoom levelAlt + -Cmd + -
Toggle fullscreen/windowed modeAlt + EnterCmd + Enter
Decrease volume (*)Alt + [Shift-Cmd + [
Increase volume (*)Alt + ]Shift-Cmd + ]
Grab mouse (keep mouse in game window)Control + gCmd + g
Toggle display palette (NTSC/PAL/SECAM)Control + fCmd + f
Save current properties to a new properties fileControl + sCmd + s
Set mouse to emulate paddle 0Control + 0Cmd + 0
Set mouse to emulate paddle 1Control + 1Cmd + 1
Set mouse to emulate paddle 2Control + 2Cmd + 2
Set mouse to emulate paddle 3Control + 3Cmd + 3
Reload current ROM (TIA mode)Control + rCmd + r
Reload ROM listing (ROM launcher mode)Control + rCmd + r
Emulate 'frying' effect (*)BackspaceBackspace
Toggle 'phosphor' effectAlt + pShift-Cmd + p
Toggle paletteControl + pCmd + p
Toggle PAL color-loss effectControl + lCmd + l
- -

UI keys in Text Editing areas (cannot be remapped)

- - - - - - - - - - - - - - - - - -
KeyEditor Function
HomeMove cursor to beginning of line
EndMove cursor to end of line
DeleteRemove character to right of cursor
BackspaceRemove character to left of cursor
Control-aSame function as 'Home'
Control-eSame function as 'End'
Control-dSame function as 'Delete'
Control-kRemove all characters from cursor to end of line
Control-uRemove all characters from cursor to beginning of line
Control-wRemove entire word to left of cursor
Control-LeftMove cursor to beginning of word to the left
Control-RightMove cursor to beginning of word to the right
Control-cCopy entire line to clipboard (not complete)
Control-vPaste clipboard contents (not complete)
- - - -


-

- 8. Event Remapping / Input Devices

-
- -

Almost every event in Stella can be remapped to another key on the keyboard or - to buttons on up to eight joysticks/gamepads (see Section 7 - - Keyboard Layout for those events which can/cannot be - remapped).

- -

Note that there are currently two separate event modes in Stella; emulation - mode and user-interface (UI) mode. Each mode has separate mappings, so (for example) - while in emulation mode, the left arrow could mean 'joystick 0 left', while in UI - mode it could mean 'move cursor left'. Emulation mode occurs whenever you're - actually playing a game. UI mode occurs whenever a user interface is present - (ROM launcher, debugger, settings menu, etc). Because of these different modes, - there are two separate mapping areas. - -

To remap an event: -

    -
  1. Enter Options menu and click the Input Settings button.
  2. -
  3. If you wish to remap emulation events, click the 'Emul. Events' tab. - Otherwise, click the 'UI Events' tab for user interface events.
  4. -
  5. Select event you want to remap and click the 'Map' button.
  6. -
  7. Press a key or a joystick button, and that key/button will be bound - to the selected event. If nothing seems to happen, either Stella - can't see the input device, or the selected event doesn't support being - remapped to the input device.
  8. -
  9. Erase a mapping by clicking 'Erase', or cancel a remap in progress - by clicking 'Cancel'.
  10. -
  11. Reset default mappings by clicking 'Defaults'.
  12. -
- -

The following screenshots illustrate the event remapping process:

- - - -

Virtual devices can be configured under the 'Virtual Devs' tab, shown below:

-

- -

Stelladaptor devices can be configured to either the left or right virtual - ports. See Section 11 - Stelladaptor Support - for further information.

- -

Joystick deadzone area for analog joysticks can be set here. The deadzone - can be adjusted in an interval from 0 - 29, which internally is converted to - the range 3200 - 32200 using the formula '3200 + DEADZONE * 1000'.

- -

Paddle settings are also configured here. The mouse can emulate either paddle - 0, 1, 2, or 3. Note that some paddle games don't default to paddle 0. In those - cases, the ROM properties will automatically set the mouse to emulate the paddle - used by Player 0. So, for example, a ROM that defaults to paddle 1 (Demons to Diamonds) - will set 'Mouse is paddle' to 1, and a ROM that defaults to paddle 3 (Tac-Scan) will - set 'Mouse is paddle' to 3.

- -

Paddle speed is used when emulating a paddle using a digital device - (keyboard, digital joystick, etc). Because of the on/off nature of digital - devices, there are no smooth analog values as would be present on a real - paddle. When using digital devices, the paddle is moved a certain amount - each frame. This speed setting specifies how much movement will occur.

- -

The serial port to which a real AtariVox is connected can be set here. - See Section 12 - AtariVox/SaveKey Support for - further information.

- - - -

-

- 9. ROM Launcher

-
- -

Several options are configurable in the ROM launcher. The size of the - launcher and fonts, as well as the 'ROM info viewer' can be changed in - UI Settings => Launcher dialog, as shown below:

- -

Most of the options are self-explanatory, except for the 'ROM Info - viewer', which is described below.

- -

Stella supports viewing snapshots and ROM properties of the currently - selected ROM in the ROM launcher. Support is automatic, as long as your - snapshot directory contains snapshots in the appropriate format. An - archive of updated snapshots will be available on the Stella webpage. - This archive may be updated periodically as new ROMs are found, and also - for each new release of Stella. Note that the snapshots can be any size - generated by Stella; they will be resized accordingly.

- -

Currently, there are several restrictions for this feature:

-
    -
  1. The ROM info viewer can be shown in 1x or 2x mode only.
  2. -
  3. To view snapshots in 1x mode, the ROM launcher window must be sized at - least 640x480. If the launcher isn't large enough, the functionality - will be disabled.
  4. -
  5. To view snapshots in 2x mode, the ROM launcher window must be sized at - least 1000x760. If the launcher isn't large enough, an attempt will - be made to use 1x mode.
  6. -
- -

The following snapshots illustrate the various font sizes and rom info - zoom levels:

- -

ROM info viewer in 1x mode, UI sized 800x480, small launcher font:

- - -

ROM info viewer in 1x mode, UI sized 1000x760, medium launcher font:

- - -

ROM info viewer in 2x mode, UI sized 1400x900, large launcher font:

- - -

The text box in the upper right corner can be used to narrow down the - results in the ROM listing. When this box is empty, all files are shown - (subject to the restrictions from the filtering option, explained below). - Typing characters here where show only those files that match that - pattern. For example, typing 'Activision' will show only files that - contain the word 'Activision' in their name. This is very useful for - quickly finding a group of related ROMs. Note that the search is not - case sensitive, so you don't need to worry about capital or lower-case - letters.

- -

The ROM launcher also contains a context menu, selected by clicking the - right mouse button anywhere in the current window. This context menu - contains the following items:

- -

    -
  1. Override properties: Selecting this option shows a dialog whereby - ROM properties can be temporarily overriden. Selecting options from this - dialog will cause all ROMs launched after that to use those properties - you specify. Clicking Default will disable its functionality, - and use ROM properties as defined by the ROM itself. The dialog is as - follows (See Section 16 - Game Properties - for more information concerning ROM properties):

    - - - - - - -
         - - - - - - - - - -
    ItemFor more information,
    see Commandline
    Bankswitch type-bs
    Left Difficulty-ld
    Right Difficulty-rd
    TV Type-tv
    Hold Select down-holdselect
    Hold Reset down-holdreset
    Hold Button 0 down-holdbutton0
    -

    -
    -
  2. - -
  3. Filter listing: Selecting this option shows a dialog whereby - one can filter the types of files shown in the listing. The dialog is as - follows:

    -

    -

    Currently, the choices are as follows:

    -

    -
  4. - -
  5. Reload listing: Selecting this performs a reload of the - current listing. It is an alternative to pressing the Ctrl/Cmd-R - key combo.
  6. -

- - -


-

- 10. ROM Audit Mode

-
- -

Stella has the ability to rename all your ROMs according to the name - specified in the properties database. This is useful if you've downloaded - ROMs in DOS 8.3 naming format, and wish the filenames to be more descriptive, - or the current filenames are too large to see in the launcher.

- -

This feature is accessible from Options => Audit ROMs, and is only - available while in ROM launcher mode. The dialog box for this feature - is as follows:

- - -

Simply select the ROM path with the 'Audit path' button, and click the - 'Audit' button. The ROMs will then be renamed according to their internal - properties. When the operation is complete, the number of ROMs that were - renamed (as well as ones that weren't) will be shown.

- -

There are several items to take note of:

- - - - -

-

- 11. Stelladaptor Support

-
- -

Stella supports real Atari 2600 joysticks, paddles and driving controllers - using the Stelladaptor device.

- -

Stella can use up to two Stelladaptors; any extra ones are ignored. - Stelladaptor devices will be automatically detected and configured. Devices - can be plugged/unplugged while the emulator is running, although you will need - to restart the game currently being emulated.

- -

The detection and configuration is as follows: - -

- - - -

-

- 12. AtariVox/SaveKey Support

-
- -

Stella supports a real AtariVox device for the speech/SpeakJet portion - of the controller. You will need a real AtariVox device, located - here, - as well as some means of connecting it to your computer (some sort of - serial port/USB adaptor). There should be drivers for your serial convertor, - which allow your particular operating system to 'see' the device (configuring - this is outside the scope of this document). Once your operating system - properly detects the AtariVox, you will need to tell Stella which serial - port it is connected to. This is done by using the '-avoxport' commandline - argument, or by setting it in the UI under the 'Virtual Devs' tab in - 'Input Settings', as described in Section 8.

- -

Note that you must use the entire name of the port as specified by - your operating system. For example, in Windows this would be COM1, - COM2, etc; Linux and OSX tend to use names similar to '/dev/xxxxxx'. - For now, only Linux/UNIX, OSX, and Win32 are supported.

- -

Support for the EEPROM portion of the AtariVox and SaveKey is currently - emulated. That is, a file will be created on your computer simulating the - EEPROM; the actual EEPROM hardware itself will not be accessed or modified. - This is very useful in the testing stages of creating a new game, since - writing to a real EEPROM many times will eventually wear it out.

- -

The location of the EEPROM files are configurable through the - '-eepromdir' commandline argument and within the application itself - (see Section 5 - Starting a Game). If the - path for these files hasn't been set, the default location will depend on the - version of Stella, as follows:

- -

- - - - - - - - - - - - -
Linux/Unix$HOME/.stella/atarivox_eeprom.dat
- $HOME/.stella/savekey_eeprom.dat
Macintosh$HOME/.stella/atarivox_eeprom.dat
- $HOME/.stella/savekey_eeprom.dat
Windows%MY_DOCUMENTS%\Stella\atarivox_eeprom.dat
- %MY_DOCUMENTS%\Stella\savekey_eeprom.dat
    - OR
- _BASEDIR_\atarivox_eeprom.dat
- _BASEDIR_\savekey_eeprom.dat
- (if a file named 'basedir.txt' exists in the application - directory containing the full pathname for _BASEDIR_) -
- -

Note that these EEPROM files will be created when necessary, and - initialized as a real EEPROM would be (containing all $FF). The - files can be manually deleted, which is very useful in testing - cases where a ROM is accessing the EEPROM for the first time.

- - - -

-

- 13. Developer Options/Integrated Debugger

-
- -

Many options are available for ROM developers, which are described in - different sections of this manual, as follows:

- -

- -

Finally, Stella contains an extensive, built-in debugger. Have a look at - this page for integrated debugger documentation.

- - - -

-

- 14. Settings File

-
- -

Stella will remember when you change a setting either at the command line - or while the emulation is running, and use the settings the next time - you start the emulator. The settings are saved in a text file which can - be edited outside of Stella. This file can contain your default options, - and eliminates the need to specify them on the command line. Any - options specified on the command line will override those in the settings file.

- -

The syntax for the settings file is very straightforward. Any line starting with - a ';' character is considered a comment and is ignored. Other lines must be of - the form: command = value, where command is the same as that - specified on the command line (without the '-' character), and value - is dependent on the command.

- -

For example, the following table illustrates how command line and settings entries - are similar:

- - - - - - - - - - - - - - - - - - - - - -
Command LineSettings File
-video glvideo = gl
-volume 75volume = 75
-showinfo 1showinfo = 1 (or showinfo = true)
- -

The settings file has a special name/location depending on which version of Stella - you use, which is currently not configurable:

- -

- - - - - - - - - - - - -
Linux/Unix$HOME/.stella/stellarc
MacintoshNot applicable; settings are saved in $HOME/Library/Preferences/StellaOSX.plist
Windows%MY_DOCUMENTS%\Stella\stella.ini    - OR
- _BASEDIR_\stella.ini    - (if a file named 'basedir.txt' exists in the application - directory containing the full pathname for _BASEDIR_) -
- - - -


-

- 15. Cheatcode Manager

-
- -

Stella contains support for Bob Colbert's Cheetah cheat codes, as - well as an extended Stella-specific type of cheat code that works on - bankswitched ROMs.

- -

To add/remove/edit a cheat code, enter the 'Cheat Code' dialog:

- - -

Currently, there are three types of cheatcodes available, all of which - must be entered in hexidecimal format: -

- -

There's also the concept of one shot codes. These codes work - exactly the same as above, except they aren't saved. They are evaluated - once and immediately discarded. - -

Here are a few cheat codes we've found:

-
-Pitfall (standard Cheetah codes):
-   5b0ea1 - infinite lives
-   723ea1 - infinite time
-   aa5??0 - set starting level, ?? = 01 to ff (d0 is kinda neat)
-
-Battlezone (Stella extended codes):
-   1236ea1 - infinite lives
-
-Ms Pac-Man (Stella extended codes):
-   108fea1 - infinite lives
-	
- -

The name of the cheat database file is configurable through the - '-cheatfile' commandline argument and within the application itself - (see Section 5 - Starting a Game). If the - path for this file hasn't been set, the default filename will depend on the - version of Stella, as follows:

- -

- - - - - - - - - - - - -
Linux/Unix$HOME/.stella/stella.cht
Macintosh$HOME/.stella/stella.cht
Windows%MY_DOCUMENTS%\Stella\stella.cht    - OR
- _BASEDIR_\stella.cht    - (if a file named 'basedir.txt' exists in the application - directory containing the full pathname for _BASEDIR_) -
-

Stella will require a restart for changes to this file to take effect.

- - - -

-

- 16. Game Properties

-
- -

Stella uses game properties to specify the "best" emulator settings for a - game. As of version 2.2 of Stella, a default database of properties are - built-in, but you may modify these through the use of a stella.pro file. - This per-user file will contain all properties modified by the user. So this - means that when you upgrade Stella, your personal properties settings are - preserved.

- -

-

Property File

- -

A property file consists of some number of blocks. Each block in the file - contains the properties for a single game. For example the general format of - a property file is:

- -

-

-   ; Comments
-   "Cartridge.MD5"      "Value"
-   "Property"           "Value"
-   ""
-
-   ; Comments
-   "Cartridge.MD5"      "Value"
-   "Property"           "Value"
-   ""
-
-   . . .
-
-   ; Comments
-   "Cartridge.MD5"      "Value"
-   "Property"           "Value"
-   ""
- -

Every block in the property file must have a unique value for the - Cartridge.MD5 property.

- -

-

Properties

- -

Each block in a property file consists of a set of properties for a single - game. Stella supports the properties described below:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cartridge.MD5:Indicates the MD5 checksum of the ROM image as a - string of hexadecimal digits. Stella uses this property while - attempting to match a game with its block of properties. If the - value of the property matches the MD5 checksum of the ROM image then - Stella uses that block of properties for the game. You can use the - GNU md5sum program, which is included with most Linux distributions, - to calculate the MD5 checksum of a ROM image.
Cartridge.Manufacturer:Indicates the game's manufacturer.
Cartridge.ModelNo:Indicates the manufacturer's model number for the game.
Cartridge.Name:Indicates the actual name of the game. When you save snapshots, - load/save state files, or use the 'ROM Audit' functionality, - this is the name that will be used for the respective file(s).
Cartridge.Note:Contains any special notes about playing the game.
Cartridge.Rarity:Indicates how rare a cartridge is, based on the scale described on AtariAge.
Cartridge.Sound:Indicates if the game should use 1 or 2 channels for sound output. - All original Atari 2600 machines supported 1 channel only, - but some homebrew games have been written to take advantage of stereo - sound. The value must be Mono or Stereo.
Cartridge.Type:Indicates the bank-switching type for the game. - The value of this property must be either Auto-detect or one of the following - (for more information about bank-switching see Kevin Horton's 2600 bankswitching - document or the documentation in each cartridges source code file). Types marked - as (*) do not currently have reliable auto-detection, or may not be fully - supported in the debugger: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Type Description
0840 8K ECONObanking
2K 2K Atari
3E 32K Tigervision
3F 512K Tigervision
4A50 (*)64K 4A50 + ram
4K 4K Atari
AR Supercharger
CV Commavid extra ram
DPC Pitfall II
E0 8K Parker Bros
E7 16K M-network
EF 64K Homestar Runner
EFSC 64K Homestar Runner + ram
F4 32K Atari
F4SC 32K Atari + ram
F6 16K Atari
F6SC 16K Atari + ram
F8 8K Atari
F8SC 8K Atari + ram
FASC CBS RAM Plus
FE 8K Decathlon
MB Dynacom Megaboy
MC C. Wilkson Megacart
SB 128-256k SUPERbanking
UA 8K UA Ltd.
X07 (*)64K AtariAge
Console.LeftDifficulty:Indicates the default difficulty setting for the left - player. The value must be A or B.
Console.RightDifficulty:Indicates the default difficulty setting for the - right player. The value must be A or B.
Console.TelevisionType:Indicates the default television setting for the - game. The value must be Color or BlankAndWhite.
Console.SwapPorts:Indicates that the left and right ports should be - swapped internally. This is used for ROMs like 'Raiders' where the - Player 0 joystick is plugged into the right joystick port. - The value must be Yes or No.
Controller.Left:Indicates what type of controller the left player - uses. The value must be BoosterGrip, Driving, - Keyboard, Paddles, Trackball22, - Trackball80, AmigaMouse or Joystick.
Controller.Right:Indicates what type of controller the right player - uses. The value must be BoosterGrip, Driving, - Keyboard, Paddles, Trackball22, - Trackball80, AmigaMouse, AtariVox, - SaveKey or Joystick.
Controller.SwapPaddles:Indicates that the left and right paddles in - a particular port should be swapped. This is used for ROMs like - 'Demons to Diamonds' where the default paddle is paddle 1, not - paddle 0. Other ROMs such as 'Tac-Scan' default to paddle 3, - which can be set using both 'Controller.SwapPaddles' and - 'Console.SwapPorts'. The value must be Yes or No.
Display.Format:Indicates the television format the game was designed for. The value - must be Auto-detect, NTSC, PAL, SECAM, NTSC50, - PAL60 or SECAM60.
Display.YStart:Indicates the scan-line to start displaying at. - The value must be n such that 0 <= n <= 64.
Display.Height:Indicates the number of scan-lines to display. - The value must be n such that 210 <= n <= 256.
Display.Phosphor:Indicates whether the phosphor effect should be emulated or not. - The value must be Yes or No.
Display.PPBlend:Indicates the amount of blending which will occur while using the - phosphor effect. The value must be n such that 0 <= n - <= 100. The default value is 77.
- -

The name of the properties file is configurable through the - '-propsfile' commandline argument and within the application itself - (see Section 5 - Starting a Game). If the - path for this file hasn't been set, the default filename will depend on the - version of Stella, as follows:

- -

- - - - - - - - - - - - - -
Linux/Unix$HOME/.stella/stella.pro
Macintosh$HOME/.stella/stella.pro
Windows%MY_DOCUMENTS%\Stella\stella.pro    - OR
- _BASEDIR_\stella.pro    - (if a file named 'basedir.txt' exists in the application - directory containing the full pathname for _BASEDIR_) -
-

Stella will require a restart for changes to this file to take effect.

- - - -

-

- 17. Palette Support

-
- -

An Atari 2600 palette consists of 128 colours, which are different - for the three major television standards (NTSC, PAL, SECAM). - Stella supports two built-in palettes and one user-defined palette for each format. - These are set using the '-palette' option, and are described as follows:

-

- - - - - - - - - - - - -
standardThe default palette from Stella 1.4 onwards.
z26The palette from the z26 emulator.
userAn external palette file, supplied by the user.
- -

Support for a user-defined palette is a new feature for Stella 2.3, and - is further described as follows: -

- -

The name of the palette file is configurable through the - '-palettefile' commandline argument and within the application itself - (see Section 5 - Starting a Game). If the - path for this file hasn't been set, the default filename will depend on the - version of Stella, as follows:

- -

- - - - - - - - - - - - -
Linux/Unix$HOME/.stella/stella.pal
Macintosh$HOME/.stella/stella.pal
Windows%MY_DOCUMENTS%\Stella\stella.pal    - OR
- _BASEDIR_\stella.pal    - (if a file named 'basedir.txt' exists in the application - directory containing the full pathname for _BASEDIR_) -
-

Note that to actually use the external palette, the palette file must - exist and be valid, and the palette option should be set to user - (in Video Settings dialog). The current ROM will have to be reloaded - for changes to this file to take effect.

- - - -

-

- 18. Acknowledgments

-
- -

Bradford W. Mott started developing Stella during the fall of 1995 and since - then a number of people from around the world have contributed to the project. - Some people have provided technical help while others have offered suggestions - and praise. The Stella Team is grateful for all the help and support it has - received over the years. The following is an incomplete list of the people who have - played a part in bringing Stella to you:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Stephen AnthonyPorted Stella 1.1 to SDL. Added extra command line options to X11/SDL - versions. Added INI file support, faster startup, snapshot support, - and pause functionality to core. Converted Stella 1.1 manual to HTML. - Ported codebase to SDL for Windows/MacOSX. Added OpenGL support and - Stelladaptor support. Current maintainer for the Linux and Windows versions.
David AspellPorted release 0.7 of Stella to Java
Christopher BennettHelped discover a Superchanger emulation bug in release 1.0 of Stella
Alexander BilsteinProvided "A Brief History of the Atari 2600" for this manual
Dan BorisProvided technical information on the Supercharger
Piero CavinaAllowed "Oystron" to be included in the Stella distribution
Bob ColbertAllowed "Okie Dokie" to be included in the Stella distribution
Joe D'AndreaAuthor of the IRIX port of Stella until release 1.2
Renato FerreiraProvided code to support private colormaps under Unix
Ron FriesAuthor of the awesome TIA Sound library
Aaron GilesAuthor of the Power Macintosh version of Stella until release 1.1
Mark GrebeAuthor of the Macintosh OSX version of Stella starting with the - 1.4 release. Helped with Stelladaptor support.
Alex HerbertProvided much information on AtariVox and SaveKey functionality
Richard HutchinsonProvided an AtariVox USB adaptor to help with AVox development
Mark HahnAllowed "Elk Attack" to be included in the Stella distribution and - provided help with the TIA HMOVE blank bug
Kevin HortonAuthor of the definitive Atari 2600 bank-switching document
Thomas JentzschProvided updated NTSC palette and many ideas
Kostas NakosAuthor/maintainer of the WinCE version of Stella starting with the - 2.0 release
Erik KovachAuthor of the property file for release 0.7, 1.0, 1.1, and 1.2 of Stella
Daniel MarksProvided improved keyboard joystick support for Stella release 0.1
James McclainProvided patches for the 1.2 release to get Stella to compile with GCC 3.0
David McEwenAuthor of the Acorn version of Stella
Jeff MillerAuthor of the Windows version of Stella until release 1.2
Dan MowczanProvided a Supercharger to help with Stella's development
Jack NuttingAuthor of the OpenStep version of Stella
John PaysonProvided EEPROM emulation code for AtariVox and SaveKey support
Manuel PolikAuthor of the Windows version of Stella starting with the 1.2 release
Jim PragitAuthor of the "Game Menu" emulator game shell
John SaegerParticipated in a helpful discussion on understanding the TIA's - RESPx multi-sprite trick
Chris SalomonProvided information and code to help implement Supercharger support
Glenn SaundersProvided a Supercharger to help with Stella's development
Jason ScottOrganizer of the property file archive for early versions of - Stella; now he's helping with the web site
David ShawProvided make targets for the BSDI platform
Raul SilvaHelped with design and graphics for an early version of the Stella - web site
Chris SnellMaintained a mirror of the Stella FTP site
Darrell Spice Jr.Author of the OS/2 version of Stella
John StilesMaintained the Macintosh version of Stella until release 1.2
Eckhard StolbergProvided a description of the TIA bug that produces the star field - effect in Cosmic Ark, provided the PAL television palette, and - participated in a helpful discussion on understanding the TIA's RESPx - multi-sprite trick. Provided the Commavid, Megaboy, 4A50 and X07 support - for Stella as well as some improved Supercharger BIOS code.
Matthew StroupAuthor of the Amiga version of Stella
Joel SuttonAuthor of the FreeBSD version of Stella
Greg TroutmanAllowed "This Planet Sucks" to be included in the Stella distribution
Curt VendelProvided schematics of the TIA which are being used to improve the - TIA emulation.
David VoswinkelMaintainer of the PSP version of Stella starting with the 2.0 release
Brian WatsonHelped with getting the illegal CPU instruction support working with Stella. - Brian also submitted a number of other changes, such as debugger support, which - have been finally integrated into the 2.0 release of Stella. Without - a doubt, there would be no debugger support in Stella if not for the - tireless work of Brian.
Keith WilkinsMaintained the DOS version of Stella until release 0.7
Jeff WisniaProvided technical data sheet for the 6532 RIOT chip
Albert Yarusso (aka Al from AtariAge)Provided helpful feedback for the OSX port, and generously - donated an AtariVox device to help with development
Alex ZaballaMaintainer of the GP2X version of Stella starting with the 2.1 release
- - - -

-

- 19. License and Disclaimer

-
- -

-

GNU GENERAL PUBLIC LICENSE

-

-Version 2, June 1991 - -

- -
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
-59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
- - - -

Preamble

- -

- The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - -

-

- When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - -

-

- To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - -

-

- For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - -

-

- We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - -

-

- Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - -

-

- Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - -

-

- The precise terms and conditions for copying, distribution and -modification follow. - -

- - -

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

- - -

- -0. - This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". -

- -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - -

- -1. - You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. -

- -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. -

- -2. - You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: -

- -

- -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. -

- -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. -

- -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -

- -3. - You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - - - -

- -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. -

- -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. -

- -4. - You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - -

- -5. - You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -

- -6. - Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - -

- -7. - If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. -

- -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. -

- -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. -

- -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -

- -8. - If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - -

- -9. - The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. -

- -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - -

- - -10. - If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - - -

NO WARRANTY

- -

- -11. - BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - -

- -12. - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - - diff --git a/htdocs/downloads.php b/htdocs/downloads.php deleted file mode 100644 index 487b3eeb2..000000000 --- a/htdocs/downloads.php +++ /dev/null @@ -1,89 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
stella-2.7.7-win32.exeBinary installer (exe) for Windows 95/98/ME/2000/XP/Vista
stella-2.7.7-win32.zipBinary ZIP for Windows 95/98/ME/2000/XP/Vista
stella-2.7.7-win64.zipBinary 64-bit ZIP for Windows Vista64 (not well tested, may not work in XP64)
StellaOSX2.7.7.dmgBinary DMG for Mac OSX
stella-2.7.7-1.i586.rpmBinary 32-bit RPM for Mandriva Linux 2007 (may work on other RPM distributions)
stella_2.7.7-1_i386.debBinary 32-bit DEB for Ubuntu Jaunty Jackalope (9.04)
stella_2.7.7-1_amd64.debBinary 64-bit DEB for Ubuntu Jaunty Jackalope (9.04)
stella-2.3.5-gp2x.zipBinary ZIP for GP2X
stella-2.3.5-wince.zipBinary ZIP for WinCE devices (PocketPC and Smartphones)
stella-2.7.7-1.src.rpmSource RPM for Mandriva Linux (may work on other RPM distributions)
stella-2.7.7-src.tar.gzSource tarball for all systems
- Sourceforge project pageOlder releases on the Sourceforge Stella project page
stella-snapshots-20090119.zipSnapshot files for use in ROM launcher/ROM Info Viewer
- - -
- -
-
- - diff --git a/htdocs/footer.php b/htdocs/footer.php deleted file mode 100644 index 273198b59..000000000 --- a/htdocs/footer.php +++ /dev/null @@ -1,5 +0,0 @@ -

Copyright © 1996- -Bradford W. Mott, -Stephen Anthony and -The Stella Team -
Site Updated May 16, 2009

diff --git a/htdocs/game-images/Mac_breakout.png b/htdocs/game-images/Mac_breakout.png deleted file mode 100644 index 7913504a4..000000000 Binary files a/htdocs/game-images/Mac_breakout.png and /dev/null differ diff --git a/htdocs/game-images/Mac_keystone.png b/htdocs/game-images/Mac_keystone.png deleted file mode 100644 index 1516866e8..000000000 Binary files a/htdocs/game-images/Mac_keystone.png and /dev/null differ diff --git a/htdocs/game-images/berzerk.png b/htdocs/game-images/berzerk.png deleted file mode 100644 index eb72d3783..000000000 Binary files a/htdocs/game-images/berzerk.png and /dev/null differ diff --git a/htdocs/game-images/chopper_command.png b/htdocs/game-images/chopper_command.png deleted file mode 100644 index 489c0e1b3..000000000 Binary files a/htdocs/game-images/chopper_command.png and /dev/null differ diff --git a/htdocs/game-images/debugger.png b/htdocs/game-images/debugger.png deleted file mode 100644 index 803b1f9cd..000000000 Binary files a/htdocs/game-images/debugger.png and /dev/null differ diff --git a/htdocs/game-images/hero.png b/htdocs/game-images/hero.png deleted file mode 100644 index 5f153cb01..000000000 Binary files a/htdocs/game-images/hero.png and /dev/null differ diff --git a/htdocs/game-images/launcher.png b/htdocs/game-images/launcher.png deleted file mode 100644 index 67a46cdc0..000000000 Binary files a/htdocs/game-images/launcher.png and /dev/null differ diff --git a/htdocs/game-images/t_debugger.jpg b/htdocs/game-images/t_debugger.jpg deleted file mode 100644 index 7473c0370..000000000 Binary files a/htdocs/game-images/t_debugger.jpg and /dev/null differ diff --git a/htdocs/game-images/t_launcher.jpg b/htdocs/game-images/t_launcher.jpg deleted file mode 100644 index ed126d34a..000000000 Binary files a/htdocs/game-images/t_launcher.jpg and /dev/null differ diff --git a/htdocs/header.php b/htdocs/header.php deleted file mode 100644 index 8ef3a24d5..000000000 --- a/htdocs/header.php +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/htdocs/homebrew.php b/htdocs/homebrew.php deleted file mode 100644 index c8482661c..000000000 --- a/htdocs/homebrew.php +++ /dev/null @@ -1,62 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Stella Programmer's GuideThe Stella Programmer's Guide written by Steve Wright contains most of the - information you'll need to know to program the Atari 2600
Kevin Horton's Bankswitching DocumentKevin Horton's definitive 2600 bank switching document. - If you need to know the bank switching scheme a cartridge uses this is the document to read
Kirk Israel's 2600 tutorialsKirk Israel's Atari 2600 programming tutorial page, including the famous '2600 101' tutorials
2600 Programming For NewbiesAn AtariAge forum with many tips for the beginning programmer
Andrew Davie AtariAge tutorialsAndrew Davie's collected AtariAge forum threads on Atari 2600 programming
Atari 2600 MemoriesA collection of programming tips and general Atari 2600 trivia from Random Terrain
batari BasicCreate games for the Atari 2600 in the BASIC programming language
- - -
- -
-
- - diff --git a/htdocs/index.php b/htdocs/index.php deleted file mode 100644 index 53913bdbd..000000000 --- a/htdocs/index.php +++ /dev/null @@ -1,39 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -
-
-
- - -

The Atari 2600 Video Computer System (VCS), introduced in 1977, - was the most popular home video game system of the early 1980's.  - Now you can enjoy all of your favorite Atari 2600 games on your PC - thanks to Stella!

- -

Stella is a multi-platform Atari 2600 VCS emulator released under - the GNU General Public License (GPL). Stella was originally developed - for Linux by Bradford W. Mott, - however, since its original release several people have joined the - development team to port Stella to other operating systems such as - AcornOS, AmigaOS, DOS, FreeBSD, IRIX, Linux, OS/2, MacOS, Unix, and - Windows. The development team is working hard to perfect the emulator - and we hope you enjoy our effort.

- -

On this site you'll find information about downloading, installing, - using, and enhancing Stella.  You'll also find useful information - about the Atari 2600, emulation and homebrew development.

- - -
- -
-
- - diff --git a/htdocs/menu-title.gif b/htdocs/menu-title.gif deleted file mode 100644 index a32461fec..000000000 Binary files a/htdocs/menu-title.gif and /dev/null differ diff --git a/htdocs/menu.html b/htdocs/menu.html deleted file mode 100644 index fc12a092f..000000000 --- a/htdocs/menu.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - -
 
-
 
-
 
- - -Get Stella - Atari 2600 Emulator at SourceForge.net. Fast, secure and Free Open Source software downloads diff --git a/htdocs/menucurrent.gif b/htdocs/menucurrent.gif deleted file mode 100644 index d83934c7f..000000000 Binary files a/htdocs/menucurrent.gif and /dev/null differ diff --git a/htdocs/screenshots.php b/htdocs/screenshots.php deleted file mode 100644 index 2072a9b07..000000000 --- a/htdocs/screenshots.php +++ /dev/null @@ -1,62 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -
-
-
- - -

Emulation Snapshots (Software Mode)

-
- - - - - - - - - -
Chopper Command
Keystone Kapers
-
- -
-

Emulation Snapshots (OpenGL Mode)

-
- - - - - - - - - -
Berserk
H.E.R.O.
-
- -
-

ROM Launcher (click for larger image)

-
- -
- -
-

Integrated Debugger (click for larger image)

-
- -
- - -
- -
-
- - diff --git a/htdocs/stellanews.php b/htdocs/stellanews.php deleted file mode 100644 index 64434e6f0..000000000 --- a/htdocs/stellanews.php +++ /dev/null @@ -1,1879 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -
-
-
- - -

May 16, 2009

-Major website update using newer technologies (PHP and CSS). Updated -many dead links, and added a new 'Homebrew Developers' section. -Special thanks go to Andrew Kator -(http://www.katorlegaz.com) -for providing the PHP/CSS code. - - -

May 12, 2009

-The Stella repository has now been fully converted to Subversion. All -developers currently using CVS should switch over to SVN immediately. - - -

May 1, 2009

-Stella release 2.7.7 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - -Have Fun! - - -

April 14, 2009

-Stella release 2.7.6 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

March 27, 2009

-Stella release 2.7.5 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

February 9, 2009

-Stella release 2.7.3a for Windows is now available. - - - -

February 9, 2009

-Stella release 2.7.3 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

January 27, 2009

-Stella release 2.7.2 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

January 26, 2009

-Stella release 2.7.1 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

January 19, 2009

-Stella release 2.7 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

May 23, 2008

-Stella release 2.6.1 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

May 16, 2008

-Stella release 2.6 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

April 9, 2008

-Stella release 2.5.1 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - -

March 28, 2008

-Stella release 2.5 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - - -

September 18, 2007

-Stella release 2.4.2 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. - - - - -

August 27, 2007

-Stella release 2.4.1 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. -A partial list of features is: - - - - -

August 20, 2007

-Stella release 2.4 for Linux, Mac OSX and Windows is now available. -Ports to other operating systems will be released as they become available. -A partial list of features is: - - - - -

January 17, 2007

-Stella release 2.3.5 for Linux, Mac OSX, Windows and GP2X is now available. -Ports to other operating systems will be released as they become available. -A partial list of features is: - - - - -

December 22, 2006

-Stella release 2.3 for Linux, Mac OSX, Windows and GP2X is now available. -Ports to other operating systems will be released as they become available. -A partial list of features is: - - - - -

April 7, 2006

-Stella release 2.2 for Linux, Mac OSX, Windows, WinCE and GP2X is now available. -Ports to other operating systems will be released as they become available. -A partial list of features is: - - - - -

January 29, 2006

-Stella release 2.1 for Linux, Mac OSX, Windows, WinCE and GP2X is now available. -Ports to other operating systems will be released as they become available. -A partial list of features is: - - - - -

October 25, 2005

-Stella release 2.0.1 for Linux, Mac OSX and Windows is now available. Ports -to other operating systems will be released as they become available. -A partial list of features is: - - - -

October 16, 2005

-Stella release 2.0 for Linux, Mac OSX and Windows is now available. Ports -to other operating systems will be released as they become available. -A partial list of features is: - - - -

February 19, 2005

-Stella release 1.4.2 for Linux, Mac OSX and Windows is now available. Ports -to other operating systems will be released as they become available. -A partial list of features is: - - - -

August 15, 2004

-Stella release 1.4.1 for Linux, Mac OSX and Windows is now available. Ports -to other operating systems will be released as they become available. -A partial list of features is: - - - -

July 17, 2004

-Stella release 1.4 for Linux, Mac OSX and Windows is now available. Ports -to other operating systems will be released as they become available. -A partial list of features is: - - - -

February 17, 2003

-Stella release 1.3 for DOS, Linux, and Unix is now available. Ports -to other operating systems will be released as they become available. -A partial list of features is: - - - - -

April 28, 2002

-Stella release 1.2.1 for DOS is now available for download. This release -fixes the following: - - -

Apirl 24, 2002

-The http://stella.atari.org redirector will be updated soon to point to the new -Stella Website at http://stella.sourceforge.net. Please update your bookmarks and links if necessary... - -

April 23, 2002

-Stella release 1.2 for DOS, Linux, and Unix is now available. Ports -to other operating systems will be released as they become available. -A partial list of features is: - - -

August 26, 2001

-The http://stella.atari.org URL -will be updated soon to point to the new Stella web site at http://www.redlinelabs.com/stella. Please update your bookmarks and links if necessary... - -

June 10, 2001

-John Stiles' port of Stella 1.1.2 to -the PowerMac is now available online in the download section. The biggest change is native support for Mac OS X. - -

November 3, 2000

-Darrell Spice Jr.'s port of -Release 1.1 of Stella to OS/2 is available for downloading. - - -

August 22, 2000

-Erik "Voch" Kovach's latest stella.pro -file is online in the download section. - -

May 8, 2000

-Release 1.1.3a of StellaX for Windows is available for downloading: - - -

September 29, 1999

-John Stiles' port of Stella 1.1 to -the PowerMac is online in the download section. - -

-July 20, 1999

-Joe D'Andrea's port of Stella 1.1 to -IRIX version 6.5 is online in the download section. - -

June 11, 1999

-Release 1.1.2 of StellaX for Windows is available for downloading: - - -

-March 20, 1999

-Release 1.1.1 of StellaX for Windows is available for downloading: - - -

-March 18, 1999

-Jeff Miller's port of Stella release 1.1 to Windows (StellaX) is available -for downloading. -

-February 27, 1999

-Stella release 1.1 for DOS, Linux, and Unix is now available.  Ports -to other operating systems will be released as they become available.  -A partial list of features is: - - -

-February 27, 1999

-After some careful consideration I've decided to move the Stella web site.  -The new home page for Stella can be found at http://stella.atari.org.  -This URL will redirect you to the current location of the Stella web site -which is my school account for now. -

-December 9,1998

-David McEwen's port of Stella 1.0 to the Acorn platform and Joe D'Andrea's -port of Stella 1.0 for IRIX 6.2 and Solaris 2.5.1 are available for downloading. -

-October 23,1998

-David Asbell's port of Stella 0.7 to Java is available for downloading -in the 0.7 download directory. -

-October 7, 1998

-Stella release 1.0 for DOS, Linux, and Unix is now available.  Ports -to other operating systems will be released as they become available.  -A partial list of features is: - - -

-August 2, 1998

-Stella 1.0 Beta 1 for DOS is available in the "Development versions" download -area. -

-July 25, 1998

-At long last, Stella 1.0 Beta 1 is now available for Linux and Unix.  -This is a stable beta release and assuming no major bugs are discovered -a final 1.0 release will be made in a few weeks.  The beta release -can be found in the "Development versions" download area.  Ports to -other operating systems will be released as they become available.  -A partial list of features is: - - -

-May 3, 1998

-The Stella home page has moved to a new server! The new home page can be -found at http://www.classicgaming.com/stella. - -

As far as the status of the next release of Stella progress is being -made, however, it'll probably be another month or so before a final release -is made. I hope you can wait... -

-April 13, 1998

-Joe D'Andrea's port of Stella to -IRIX version 6.2 is online in the download section. -

-March 27, 1998

-Erik "Voch" Kovach's latest stella.vcs -file is online in the download section. This version contains a few new -settings for Color Bar Generator, Advertisement Cartridge, Night Stalker, -and Seesaw. -

-March 13, 1998

-Erik "Voch" Kovach's latest stella.vcs -file is online in the download section. This version contains a few new -settings and has a few tweaks here and there. -

-February 11, 1998

-A once a year International Atari Collector/User Show set for the Summer -of 1998 at the Disneyland Hotel in Anaheim, California is being planned. -For more information see the Atari -World 98 home page. -

-February 6, 1998

-Erik "Voch" Kovach's latest stella.vcs -file is online in the download section. This version contains settings -for some of the newer games and has a few settings tweaked here and there. -

-January 12, 1998

-Another improved stella.vcs file by Erik -"Voch" Kovach containing the names of 479 cartridges is available from -the download section. -

-January 8, 1998

-An improved stella.vcs file by Erik "Voch" -Kovach is available from the download section. -

-January 6, 1998

-"Game Menu" version 3.2 by Jim Pragit -is available from the download section. -

-December 21, 1997

-Development of version 0.8 of Stella is proceeding slower than expected. -A release before Christmas will not be made. Actually, a 0.8 release of -Stella may never be made, instead the plan is for 1.0 to be the next release. -Hopefully, the wait will be well worth it. - -

Have a Merry Christmas! -

-December 6, 1997

-Stella has won an Archaic -Ruins Editor's Choice Award -

-November 29, 1997

-"Game Menu" version 3.1 by Jim Pragit -is available from the download section. -

-November 12, 1997

-"Game Menu" version 3.0 by Jim Pragit -is available from the download section. -

-October 1, 1997

-Stella was featured in the article "Great Games Never Die..." on page 84 -of the October issue of PC-Gamer. -

-September 6, 1997

-"Game Menu" version 2.1 by Jim Pragit -is available from the download section. -

-August 29, 1997

-"Game Menu" version 2.0 by Jim Pragit -is available from the download section. -

-August 20, 1997

-The development team is working on version 0.8 of Stella. A partial list -of features is: - -There is no estimated-time-of-arrival, however, hopefully it'll be ready -by Christmas. -

-July 29, 1997

-Stella version 0.7 has been released for Windows 95 & NT. -

-June 28, 1997

-"Game Menu" version 1.61 by Jim Pragit -has been released. It's available from the download section. -

-June 13, 1997

-Stella version 0.7 has been released for the Power Mac and OS/2. -

-June 7, 1997

-Stella version 0.7 has been released for DOS, Linux and Unix/X. Ports to -other systems will be released as they become available. -

-June 2, 1997

-Keith Wilkins is no longer supporting the DOS port of Stella due to lack -of free time and other responsibilities. Bradford Mott will be maintaining -the DOS port of Stella. -

-May 23, 1997

-Most of the "core" code modifications for version 0.7 have been completed. -Porting to the various operating systems is underway. Hopefully, a release -will be ready around the end of May or beginning of June. -

-May 9, 1997

-"Game Menu" version 1.4 by Jim Pragit -has been released. It's available from the download section. -

-March 25, 1997

-Development of version 0.7 of Stella is proceeding slower than expected, -however, the wait will be well worth it. A partial list of new features -is: - -There is no firm estimated-time-of-arrival, however, hopefully it'll be -ready by the end of May. -

-March 17, 1997

-"Game Menu" version 1.3 by Jim Pragit -has been released. It's available from the download section. -

-February 17, 1997

-Stella version 0.61 for Windows 95 & NT has been released! -

-February 14, 1997

-"Game Menu" version 1.2 by Jim Pragit -has been released. It's available from the download section. -

-February 10, 1997

-The development team is working on version 0.7 of Stella. A partial list -of new features is: - -There is no firm estimated-time-of-arrival but it'll probably be the first -or second week of April 1997. -

-February 9, 1997

-Luc Miron has released version -0.2 of his utility which allows you to store all your VCS file data in -a single file. It's available from the download section. -

-February 5, 1997

-Stella version 0.6 released! -

-January 31, 1997

-Jim Pragit has released version 1.1 -of his front end for MS-DOS called "Game Menu". It's available from the -download section. -

-January 22, 1997

-Jim Pragit has written an excellent -front end for MS-DOS called "Game Menu". It's available from the download -section. -

-January 17, 1997

-The "core" code modifications for version 0.6 have been completed. Porting -to the various operating systems is underway. A release will hopefully -be ready within the next week. -

-December 16, 1996

-The development team is working on Version 0.6 of Stella. A partial list -of new features is: - -There is no firm estimated-time-of-arrival but it'll probably be the third -or forth week of January 1997. -

-November 16, 1996

-Stella version 0.5 released! -

-October 31, 1996

-The "core" code modifications for version 0.5 have been completed. Porting -to the various operating systems is underway. A release will hopefully -be ready by the 2nd week of November. -

-September 24, 1996

-The development team is currently working on Stella Version 0.5. This version -will have the following features: - -This is a partial list of features since Version 0.5 is still in development. -There is no firm estimated-time-of-arrival but it'll probably be sometime -near the end of October or beginning of November. -
- - -
- -
-
- - diff --git a/htdocs/theteam.php b/htdocs/theteam.php deleted file mode 100644 index 105f2503b..000000000 --- a/htdocs/theteam.php +++ /dev/null @@ -1,94 +0,0 @@ - - - - - Stella: "A Multi-Platform Atari 2600 VCS Emulator" - - - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current Members 
Stephen AnthonyEmulation core/debugger development and enhancements; - current maintainer for the Linux, OSX and Windows ports
Mark GrebeOriginal author of the Mac OSX port of Stella
Kostas NakosAuthor/maintainer of the WinCE port of Stella
Bradford MottProject management and emulation core developer, original author of Stella
Eckhard StolbergEmulation core development
Brian WatsonEmulation core development and debugger support
  
Retired Members 
Joe D'AndreaMaintainer of the Solaris build of Stella
DoodleMaintainer of the OS/2 port of Stella
Darrell Spice Jr.Original author of the OS/2 port of Stella
Alex ZaballaAuthor/maintainer of the GP2X port of Stella
- - -
- -
-
- - diff --git a/htdocs/title.gif b/htdocs/title.gif deleted file mode 100644 index 31307ddbd..000000000 Binary files a/htdocs/title.gif and /dev/null differ