Historical 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
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:
-
-
Display registers and memory
-
Dump state of TIA and RIOT, with things like joystick directions and
- NUSIZx decoded into English (more-or-less).
-
Change registers/memory, including toggles for flags in P register
-
Single step/trace
-
Breakpoints - break running program and enter debugger when the
- Program Counter hits a predefined address. You can set as many
- breakpoints as you want.
-
Conditional breakpoints - Break running program when some arbitrary
- condition is true (e.g. "breakif {a == $7f && c}" will break when the
- Accumulator value is $7f and the Carry flag is true, no matter where
- in the program this happens). Unlike the cond breaks in PCAE, Stella's
- are *fast*: the emulation will run at full speed unless you use lots
- of breakif's at the same time, or have a slow CPU.
-
Watches - View contents of a location/register before every
- debugger prompt.
-
Traps - Like breakpoints, but break on read/write/any access to
- *any* memory location.
-
Frame advance (automatic breakpoint at beginning of next frame)
- You can advance multiple frames with one command.
-
Disassembly
-
Support for DASM symbol files (created with DASM's -s option),
- including automatically loading symbol files if they're named
- romname.sym
-
Built-in VCS.H symbols, if no symbol file is loaded
-
Symbolic names in disassembly
-
Symbolic names accepted as input
-
Tab completion for commands and symbol names
-
Graphical editor for RIOT RAM. Acts a lot like a spreadsheet.
- Input in hex, with displays for label/decimal/binary for
- currently-selected location.
-
GUI CPU state window
-
-
Reset the 6502
-
Start emulator in debugger (via command-line option "-debug")
-
Save CLI session to a text file.
-
Supports hex, decimal, and binary input and output almost everywhere.
- (disassembly is still hex)
-
Support for bank switching. You can see how many banks a cart has,
- and switch banks. There's still more to be done here though.
-
Registers/memory that get changed by the CPU during debugging are
- highlighted when they're displayed.
-
Scanline advance (like frame advance, break at beginning
- of next scanline).
-
TIA display is updated during step/trace, so we can see our
- scanlines being drawn as it happens. This isn't 100% perfect: unlike
- a real TIA, the one in Stella only updates when it's written to.
-
Graphical TIA tab, with register names and GUI buttons for
- various bits (e.g. click ENAM0 to turn it on).
-
GUI Disassembly window, scrollable, with checkboxes for breakpoints.
-
Script (batch) file support, including auto-running a script file
- named after the ROM image.
-
Saving the current debugger state to a script file (including
- breakpoints, traps, etc).
-
Built-in functions for use with "breakif", to support common conditions
- (such as breaking when the user presses Game Select...)
-
Patching ROM in-place.
-
Save patched ROM ("saverom filename.bin").
-
-
-
Future planned features (post 2.0):
-
-
-
GUI for cheat codes (Cheetah and normal codes).
-
Perhaps 2 panes in the disassembly window (so you can see 2 parts of the
- code at once).
-
Add bookmark support to disassembly window.
-
Bankswitch support in the debugger for the few remaining cart types
- that aren't supported.
-
Patch ROM support for a few cart types doesn't work. Must fix.
-
Source-level debugging: if a DASM .lst file is available, we'll show
- the listing in the ROM tab instead of a disassembly. This is already
- available in a very crude form ("loadlist" and "list" commands).
-
More "special variables" for the expression parser.
-
Possibly a mini-assembler
-
Support for extra RAM in Supercharger and other cart types.
-
Possibly support for recording and playing back input files, like
- MAME. This isn't a debugger feature per se, but it'll make it easier
- to reliably trigger a bug so you can debug it.
-
Graphics ROM view, so you can see your sprite data (it might still
- be upside-down though :)
-
Various new GUI enhancements
-
-
-
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:
-
-
-
Home
Move cursor to beginning of line
-
End
Move cursor to end of line
-
Delete
Remove character to right of cursor
-
Backspace
Remove character to left of cursor
-
Control-a
Same function as 'Home'
-
Control-e
Same function as 'End'
-
Control-d
Same function as 'Delete'
-
Control-k
Remove all characters from cursor to end of line
-
Control-u
Remove all characters from cursor to beginning of line
-
Control-w
Remove entire word to left of cursor
-
Shift-PgUp
Scroll up through previous commands one screen/page
-
Shift-PgDown
Scroll down through previous commands one screen/page
-
Shift-Up
Scroll up through previous commands one line
-
Shift-Down
Scroll down through previous commands one line
-
Shift-Home
Scroll to beginning of commands
-
Shift-End
Scroll 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:
-
-
-
Dereference prefixes:
-
-
"*"
- Dereference a byte pointer. "*a" means "the byte at the address that
- the A register points to". If A is 255 (hex $ff), the result will be
- the value currently stored in memory location 255. This operator
- will be very familiar to you if you're a C or C++ programmer. It's
- equivalent to the PEEK() function in most 8-bit BASICs. Also, the
- debugger supports array-like byte dereferences: *address can be
- written as address[0]. *(address+1) can be written as address[1],
- etc.
-
-
"@"
- Dereference a pointer to a word. This is just like the "*" byte deref,
- except it refers to a 16-bit value, occupying 2 locations, in
- low-byte-first format (standard for the 6507).
"<"
- Take the low byte of a 16-bit value. This has no effect on an 8-bit
- value: "a" is equal to "<a". However, "<$1234" equals "$34".
-
-
">"
- Take the high byte of a 16-bit value. For 8-bit values such as
- the Accumulator, this will always result in zero. For 16-bit values,
- "<$1234" = "$12".
-
-
-
Number Base Prefixes:
-
"#"
- Treat the input as a decimal number.
-
-
"$"
- Treat the input as a hex number.
-
-
"\"
- Treat the input as a binary number.
-
-
These only have meaning when they come before a number, not a
- label or a register. "\1010" means 10 decimal. So do "$0a" and
- "#10". "a" by itself is always the Accumulator, no matter what
- the default base is set to.
-
-
If you don't specify any number base prefix, the number is
- assumed to be in the default base. When you first start Stella,
- the default base is 16 (hexadecimal). You can change it with the
- "base" command. If you want to change the default base to decimal permanently,
- you can put a "base #10" command in your "autoexec.stella" file (see
- the section on "Startup").
-
-
Remember, you can use arbitrarily complex expressions with any
- command that takes arguments (except the ones that take filenames,
- like "loadsym").
-
-
-
-
-
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":
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.
-
-
-
Function
Definition
Description
-
_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).
-
-
Function
Description
-
_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:
-
-
Fill to scanline: If you've already started a partial frame
- draw (ie, the frame is already partially 'greyed' out), selecting this
- option will draw all scanlines up to the vertical position where the
- mouse was clicked. Note that if you weren't in partial-frame mode,
- this option will have no effect.
-
Set breakpoint: Will set a conditional breakpoint at the
- scanline where the mouse was clicked. Currently, you'll need to use
- the Prompt Tab to turn the breakpoint off again.
-
Set zoom position: Influences what is shown in the TIA
- zoom area (further described in part (G). The zoom area will
- contain the area centered at the position where the mouse was
- clicked.
-
-
-
-
-
-
(F) TIA Info
-
To the right of the TIA display (E) there is TIA information, as shown:
-
-
The indicators are as follows:
-
-
Frame: The current frame number, since this ROM was loaded or reset.
-
F. Cyc: The number of CPU cycles that have been executed this frame, since
-VSYNC was cleared at scanline 0.
-
Scanline: The scanline that's currently being drawn. Scanline 0 is the one
-on which VSYNC is cleared (after being set for 3 scanlines, as per the Stella
-Programmer's Guide)
-
S. Cyc: The number of CPU cycles that have been executed since the beginning
-of the current scanline.
-
VSYNC & VBLANK: Self explanatory.
-
Pixel Pos: The current number of visible color clocks that have been displayed on
-the current scanline, starting from the beginning of the Horizontal Blank period.
-During HBLANK, this value will be negative (representing the number of clocks
-until the first visible one). Since there are 68 color clocks per HBLANK and
-160 visible clocks per scanline, the Pixel Position will range from -68 to 159.
-
Color Clk: The current number of total color clocks since the beginning of this
-scanline's HBLANK. This counter starts at zero, but otherwise displays the same
-information as the Pixel Position (so Color Clock will always be 68 more than Pixel
-Position, and will range from 0 to 228).
-
-
-
-
-
-
(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:
-
-
Click 'Srch' with empty input. All 128 address/values are highlighted
-
Exit debugger mode and lose a life, let your energy decrease, or
- do whatever it is you're trying to debug
-
Enter debugger mode again, click 'Cmp' and and enter a '-1' for input.
- This finds all values that have decreased by 1 (as compared to their current
- values)
-
Repeatedly following these steps may help to narrow number of
- addresses under consideration, and eventually you'll find the
- memory address you're looking for
-
Click 'Rset' when you're finished
-
-
-
-
-
-
(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:
-
-
Breakpoint - This is the area at the far left, to the left of the
-address. Normally there will be nothing there: this indicates that there's
-no breakpoint set at that address. You can set and clear breakpoints by
-clicking in this area. When a breakpoint is set, there will be a
-red circle in this area. These are the same breakpoints as used
-by the "break" command, not the conditional "breakif" breakpoints
-(which makes sense: cond-breaks can break on any condition, the Program
-Counter isn't necessarily involved).
-
Address (which may be a label or a hex address)
-
Hex bytes. These are the raw machine code bytes for the instruction.
-
Instruction. This is a standard 6502 mnemonic (possibly with operand).
-This field also contains the cycle count for the instruction (separated by a
-semicolon).
-
-
-
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:
-
-
Save ROM: A textbox will appear for you to enter filename,
-and then the ROM will be saved. Note that the filename is considered
-relative to the current directory, not the ROM or base directory.
-You can enter a full path, though, in which case it doesn't matter.
-
Set PC: Set the Program Counter to the address of the
-disassembly line where the mouse was clicked.
-
-
-
Limitations
-
-
-
-
The ROM Widget only works on ROM. If your game runs code from RAM,
-the ROM Widget will get "confused" while the PC is pointing to RAM. It
-will highlight instructions in ROM instead. If the PC points to (for
-example) $80, the ROM Widget will display the instruction at $F080
-instead. No permanent harm is done: once your RAM routine returns, the
-ROM Widget will work normally again. You can still disassemble RAM with
-the "disasm" command from the Prompt.
-
-
The standard VCS memory map has the cartridge port at locations
-$F000-$FFFF. However, not all the address lines exist on a 6507, so
-the cartridge port is "mirrored" at every other 4K chunk of address
-space ($1000, $3000, up to $D000). Some programmers find it easier
-to think of the different banks of ROM as being at different addresses
-(such as: Bank 0 at $D000 and bank 1 at $F000). When such a ROM runs,
-the Program Counter can point to one of the mirrors instead of the main
-area at $F000. This is perfectly OK, and everything works just fine,
-except that the ROM Widget will show the "real" address instead of the
-mirrored one. For instance, if the PC contains $D010, the ROM Widget
-will highlight the instruction at $F010. This is the same instruction,
-since $D010 reads the same ROM location as $F010. However, the breakpoint
-indicator may be wrong: breakpoints are set on actual addresses. If
-there were a breakpoint set at $F010, it wouldn't be triggered by the
-PC hitting $D010 (but the ROM Widget will show a breakpoint indicator
-if the PC hits $D010, even though it shouldn't)
-
-
-
-
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.
-
-
-
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.
-
-
Start the game. You begin the game with 5 lives (count the tank
- symbols at the bottom of the screen).
-
-
Enter the debugger by pressing the ` (backquote) key. Don't get
- killed before you do this, though. You should still have all 5 lives.
-
-
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).
-
-
Exit the debugger by pressing ` (backquote) again. The game will
- pick up where you left off.
-
-
Get killed! Ram an enemy tank, or let him shoot you. Wait for
- the explosion to finish. You will now have 4 lives.
-
-
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.
-
-
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.
-
-
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!)
-
-
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.
-
-
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.
-
-
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.
-
-
-
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.
-
-
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.
-
-
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'.
-
-
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.
-
-
-
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
-
-
-
-
-
-
- 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!
-
- 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
-
-
-
High speed emulation using optimized C++ code
-
Supports high quality sound emulation using code derived from Ron Fries'
- TIA Sound Emulation library, including stereo sound support
-
Emulates the Atari 2600 Joystick Controllers using your computer's keyboard
- or joysticks
-
Emulates the Atari 2600 Keyboard Controllers using your computer's keyboard
-
Emulates the Atari 2600 Paddle Controllers using your computer's mouse, keyboard
- or joysticks
-
Emulates the Atari 2600 Driving Controllers using your computer's keyboard
- or joysticks
-
Emulates the CBS BoosterGrip Controller using your computer's keyboard or
- joysticks
-
Emulates CX-22 / CX-80 style trackballs and Amiga Mouse using your
- computer's mouse
-
Support for real Atari 2600 controllers using the
- Stelladaptor
-
Support for the speech portion of a real
-
- AtariVox device connected to your PC using a USB adaptor
-
Supports EEPROM emulation for AtariVox and SaveKey controllers
-
Supports all known bankswitching schemes (let us know if there's one we missed)
-
Supports cartridge autodetection for almost all bankswitching schemes
-
Supports Supercharger single-load and multi-load games
-
Supports property file for setting the properties associated with games
-
Supports the NTSC, PAL, PAL and SECAM television standards in 50Hz and 60Hz mode
-
Supports autodetection of display format for 50Hz vs. 60Hz modes
-
Supports several "undocumented features" of the TIA graphics chip used by
- some games
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)
-
-
Enough RAM for the OS + 16MB RAM for the emulation; 32MB highly recommended
-
15 bit color minimum; 16 bit color graphics card highly recommended
-
SDL version 1.2.10 or greater, latest version highly recommended
-
Latest version of the zlib library
-
Joysticks or gamepads are highly recommended
-
Mouse or Stelladaptor with real paddles required for paddle emulation
-
Some ROM images (See AtariAge for more information)
-
-
-
-
Linux/UNIX
-
The Linux version of Stella is designed to work on a Linux Workstation with
- the following:
-
-
Linux Kernel 2.4.x, Linux Kernel 2.6.x is highly recommended
-
i386 or x86_64 class machine, with 32 or 64-bit distribution
-
Other architectures (MIPS, PPC, PPC64, etc) have been confirmed to work,
- but aren't as well tested as i386/x86_64
-
GNU C++ compiler version 3.2.x or 4.x and the make utility are required for compiling
- the Stella source code
-
-
-
-
Macintosh
-
-
The Mac version of Stella is designed to work on a Power Macintosh with
- the following:
-
-
Mac OSX 10.3 or Above
-
500 MHz G4 PPC/Intel processor or above (Stella may work with a G3
- processor, but this is still a work-in-progress)
-
OpenGL capable video card. Software rendering mode is still available,
- but as of OSX 10.4 is substandard compared to OpenGL.
-
Xcode 3.0 is required to compile the Stella source code
-
-
-
-
Windows
-
-
The Windows version of Stella is designed to work on Windows 98/ME/2000/XP/Vista
- with the following:
-
-
-
Pentium class machine required; OpenGL accelerated video card highly
- recommended
-
Experimental 64-bit port has been tested on Vista64 only; it may work on
- WinXP64 as well, but isn't a priority
-
Visual C++ 2008 or MinGW compiler is required to compile the Stella
- source code
-
-
-
-
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.
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
-
-
Binary DEB (stella-release-1_arch.deb)
-
-
Install the binary DEB with the following command:
-
dpkg -i stella-release-1_arch.deb
-
-
-
Binary RPM (stella-release-1.arch.rpm)
-
-
Install the binary RPM with the following command:
-
rpm -Uvh stella-release-1.arch.rpm
-
-
-
Compressed tarball : building from source code (stella-release-src.tar.gz)
-
-
Extract files from the distribution:
-
tar zxvf stella-release-src.tar.gz
-
Change directories to the stella-release directory
-
Configure the build with the following command:
-
./configure (--help for list of options)
-
Build the executable with the following command:
-
make
-
Install the executable with the following command:
-
make install
-
-
-
-
-
-
Macintosh
-
-
Binary DMG file (StellaOSXrelease.dmg)
-
-
Mount the disk image, then copy the StellaOSXrelease folder to
- your hard drive.
-
-
-
Compressed tarball : building from source code (stella-release-src.tar.gz)
-
-
Extract files from the distribution using an archiving program that supports
- gzipped tar files
-
Open the stella-release/src/macosx/stella.xcodeproj
- file using Xcode 3.0
-
Build the 'Stella' project
-
Copy the StellaOSX.app package somewhere on your system
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:
-
-
-
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
-
-
You can purchase the Atari 2600 Action Packs by Activision and use
- their ROM images
-
-
You can search around the internet and find ROM images to download
-
-
-
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:
-
-
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:
-
-
-
-
-
-
-
Item
Brief description
For more information, see Commandline
-
Rom path
specifies location of ROM files
-romdir
-
State path
specifies location of state files
-statedir
-
Cheat file
specifies location of cheatfile database
-cheatfile
-
Palette file
specifies location of user palette
-palettefile
-
Properties file
specifies location of external stella.pro database
-propsfile
-
Snapshot path
specifies where to load/save snapshots
-ssdir
-
EEPROM path
specifies location of EEPROM files
-eepromdir
-
Multiple snapshots
whether to overwrite old snapshots
-sssingle
-
Snapshot in 1x mode
save 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):
-
-
-
-
Argument
-
Description
-
-
-
-
-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.
-
-
-
-
Argument
-
Description
-
-
-
-
-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).
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:
-
-
-
-
-
-
-
Item
Brief description
For more information, see Commandline
-
Renderer (*)
use specified rendering mode (requires restart)
-video
-
TIA Filter
filter for emulation mode
-tia_filter
-
TIA Palette
palette for emulation mode
-palette
-
FS Res
resolution for fullscreen mode
-fullres
-
Timing (*)
how to wait between frames (requires restart)
-timing
-
GL Filter
OpenGL 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
-
Framerate
frames per second in emulation mode
-framerate
-
Fullscreen mode
self-explanatory
-fullscreen
-
PAL color-loss
use PAL color-loss effect
-colorloss
-
GL FS Stretch
stretch fullscreen OpenGL in emulation mode
-gl_fsmax
-
GL VSync
enable OpenGL vertical synchronization
-gl_vsync
-
Grab mouse
keep mouse in SDL window
-grabmouse
-
Center window (*)
attempt to center SDL window (requires restart)
-center
-
-
-
-
-
-
Audio Settings dialog:
-
-
-
-
-
-
-
Item
Brief description
For more information, see Commandline
-
Volume
self-explanatory
-volume
-
Fragment size
set size of audio buffers
-fragsize
-
Output freq
change sound output frequency (advanced)
-freq
-
TIA freq
change TIA output frequency (advanced)
-tiafreq
-
Clip volume
Eliminate popping in sound generation (advanced)
-clipvol
-
Enable sound
self-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.
-
-
-
-
-
-
-
-
-
-
Item
Brief description
For more information, see Commandline
-
Debugger Width/Height
self-explanatory (requires restart)
-debuggerres
-
-
-
-
-
-
-
-
-
-
-
-
Item
Brief description
For more information, see Commandline
-
Interface Palette
palette to use for UI elements
-uipalette
-
List quick delay
time to wait between keypresses in listwidget
-listdelay
-
Mouse wheel scroll
number 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.
-
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)
-
-
-
-
Function
-
Key (Standard)
-
Key (OSX)
-
-
-
-
Exit emulator
-
Control + q
-
Cmd + q
-
-
-
-
Exit game mode/enter launcher mode
-
Escape
-
Escape
-
-
-
-
Enter/exit options mode
-
Tab
-
Tab
-
-
-
-
Enter/exit command mode
-
Backslash (\)
-
Backslash (\)
-
-
-
-
Enter/exit debugger
-
Backquote (`)
-
Backquote (`)
-
-
-
-
Select Game
-
F1
-
F1
-
-
-
-
Reset Game
-
F2
-
F2
-
-
-
-
Color TV
-
F3
-
F3
-
-
-
-
Black/White TV
-
F4
-
F4
-
-
-
-
Left Player Difficulty B
-
F5
-
F5
-
-
-
-
Left Player Difficulty A
-
F6
-
F6
-
-
-
-
Right Player Difficulty B
-
F7
-
F7
-
-
-
-
Right Player Difficulty A
-
F8
-
F8
-
-
-
-
Save state to current slot
-
F9
-
F9
-
-
-
-
Change current state slot
-
F10
-
F10
-
-
-
-
Load state from current slot
-
F11
-
F11
-
-
-
-
Save PNG snapshot
-
F12
-
F12
-
-
-
-
Pause/resume emulation
-
Pause
-
Pause
-
-
-
-
-
Joystick / BoosterGrip Controller (can be remapped)
-
-
-
-
Left Joystick (Joy0)
-
Right Joystick (Joy1)
-
-
-
-
-
-
-
Function
-
Key
-
-
-
-
Joystick Up
-
Up arrow
-
-
-
-
Joystick Down
-
Down arrow
-
-
-
-
Joystick Left
-
Left arrow
-
-
-
-
Joystick Right
-
Right arrow
-
-
-
-
Fire Button
-
Space
-
-
-
-
Trigger Button
-
4
-
-
-
-
Booster Button
-
5
-
-
-
-
-
-
-
-
Function
-
Key
-
-
-
-
Joystick Up
-
Y
-
-
-
-
Joystick Down
-
H
-
-
-
-
Joystick Left
-
G
-
-
-
-
Joystick Right
-
J
-
-
-
-
Fire Button
-
F
-
-
-
-
Trigger Button
-
6
-
-
-
-
Booster Button
-
7
-
-
-
-
-
-
-
Paddle Controller digital emulation (can be remapped independently of joystick controller)
-
-
-
-
Left Paddles
-
Right Paddles
-
-
-
-
-
-
-
Function
-
Key
-
-
-
-
Paddle 0 decrease
-
Same as 'Joy0 Left'
-
-
-
-
Paddle 0 increase
-
Same as 'Joy0 Right'
-
-
-
-
Paddle 0 Fire
-
Same as 'Joy0 Fire'
-
-
-
-
Paddle 1 decrease
-
Same as 'Joy0 Up'
-
-
-
-
Paddle 1 increase
-
Same as 'Joy0 Down'
-
-
-
-
Paddle 1 Fire
-
Same as 'Joy0 Booster'
-
-
-
-
-
-
-
-
Function
-
Key
-
-
-
-
Paddle 2 decrease
-
Same as 'Joy1 Left'
-
-
-
-
Paddle 2 increase
-
Same as 'Joy1 Right'
-
-
-
-
Paddle 2 Fire
-
Same as 'Joy1 Fire'
-
-
-
-
Paddle 3 decrease
-
Same as 'Joy1 Up'
-
-
-
-
Paddle 3 increase
-
Same as 'Joy1 Down'
-
-
-
-
Paddle 3 Fire
-
Same as 'Joy1 Booster'
-
-
-
-
-
-
-
Driving Controller (cannot be remapped, always associated with joystick controller)
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:
-
-
Enter Options menu and click the Input Settings button.
-
If you wish to remap emulation events, click the 'Emul. Events' tab.
- Otherwise, click the 'UI Events' tab for user interface events.
-
Select event you want to remap and click the 'Map' button.
-
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.
-
Erase a mapping by clicking 'Erase', or cancel a remap in progress
- by clicking 'Cancel'.
-
Reset default mappings by clicking 'Defaults'.
-
-
-
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.
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:
-
-
The ROM info viewer can be shown in 1x or 2x mode only.
-
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.
-
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.
-
-
-
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:
-
-
-
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):
-
-
-
-
-
-
-
Item
For 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
-
-
-
-
-
-
-
-
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:
-
-
All files - self explanatory, show all files in the ROM
- listing. This is the default, and emulates the behaviour of
- all previous versions of Stella.
-
All roms - show only files with a valid ROM extension.
- Currently, this means extensions .a26, .bin, .rom, .gz, .zip.
-
ROMs ending with - show only files with a ROM extension
- as selected from the checkboxes.
-
-
-
-
Reload listing: Selecting this performs a reload of the
- current listing. It is an alternative to pressing the Ctrl/Cmd-R
- key combo.
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:
-
-
THIS OPERATION CANNOT BE UNDONE. I cannot stress this
- enough; if you aren't completely sure you want to rename your ROMs,
- don't use this function. There is no undo feature, and one won't be
- added.
-
Only filenames that Stella considers to be valid ROMs will be
- considered. Currently, this means files that end in '.a26',
- '.bin', '.rom', '.gz' and '.zip'. Files which don't have these
- extensions will be ignored.
-
If a valid ROM doesn't have a properties entry, it will be
- ignored.
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:
-
-
-
The first Stelladaptor found will act as the left game port
- on a real Atari. Depending on the device, Stella will detect it as
- either the left joystick, paddles 0 & 1, or the left driving controller.
-
-
The second Stelladaptor found will act as the right game port
- on a real Atari. Depending on the device, Stella will detect it as
- either the right joystick, paddles 2 & 3, or the right driving controller.
-
-
Any other Stelladaptors will be ignored.
-
-
The assignment ordering of Stelladaptor to port can be redefined with
- 'sa1' and 'sa2' (see description in 'Starting a Game').
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:
%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.
Many options are available for ROM developers, which are described in
- different sections of this manual, as follows:
-
-
-
Developer key-combo shortcuts, used to change TIA state dynamically
- (ie, while the emulation is still running). See the Developer Keys
- in TIA mode options under Section 7 -
- Keyboard Layout for more information.
-
-
Commandline options influencing emulation state. See the Command
- Line options under Section 5 - Starting a Game)
- for more information.
-
-
Viewing TIA/console information overlaid on the TIA image. This option
- can be enabled from the commandline or using the Alt/ShiftCmd-L key combo,
- and is extremely useful for viewing the current scanline count and associated
- frames per second, bankswitch and display formats, etc. The following shows
- an example of this information:
-
-
The two lines of output describe the following:
-
-
Number of scanlines in current frame, associated framerate, and
- resulting display format. Note that the framerate shown is the
- internal, virtual framerate (it's calculated from the
- number of scanlines). If the '*' character is present, it means
- the display format was auto-detected as shown. For the given example,
- the format was auto-detected as 'NTSC'.
-
Cartridge information. If the '*' character is present,
- it means the bankswitch format was auto-detected as shown. The item
- in round brackets indicates ROM size. For the given example,
- the bankswitch type was auto-detected as 4K, and the file size was
- 4K (4096 bytes).
-
-
-
-
-
Finally, Stella contains an extensive, built-in debugger. Have a look at
- this page for integrated debugger documentation.
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 Line
-
Settings File
-
-
-
-
-video gl
-
video = gl
-
-
-
-
-volume 75
-
volume = 75
-
-
-
-
-showinfo 1
-
showinfo = 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
-
-
-
Macintosh
-
Not 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_)
-
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:
-
-
Per-frame RAM cheats:
- Evaluated each frame, and apply to RAM only. Format as follows:
-
- 4-digit code: c041
- c0 = address
- 41 = data
-
-
-
-
Cheetah codes, which are explained in detail on
- Bob Colbert's web page,
- along with a list of codes for various games. Cheetah codes
- don't support bankswitched ROMs, so they only work for 2K or 4K ROMs.
- Format as follows:
-
Stella extended cheats are similar to Cheetah codes, except that
- they can be 7 or 8 digits long, with the extra digits used for the
- bank number:
-
- 7-digit (stella) code: baaaddc
- b = bank (0 to $f)
- aaa = address - $f000
- dd = data
- c = count - 1
-
- 8-digit (stella) code: bbaaaddc
- bb = bank (0 to $ff)
- aaa = address - $f000
- dd = data
- c = count - 1
-
-
-
-
-
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.
-
-
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.
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:
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.
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:
-
-
-
standard
-
The default palette from Stella 1.4 onwards.
-
-
-
z26
-
The palette from the z26 emulator.
-
-
-
user
-
An 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 palette file must be at least 792 bytes long. Colours are stored
- in 24-bit RGB, with the first byte for red, the second for green, the
- third for blue, for a total of 3 bytes per colour.
-
The first 384 bytes of the file (128 * 3) will be used for the NTSC
- palette. The next 384 bytes (128 * 3) will be for the PAL palette.
- The next 24 bytes (8 * 3) will be for the SECAM palette, which
- consists of eight distinct colours. Any extra data in the file
- will be ignored.
-
The PAL colour-loss effect is calculated within Stella. You do not
- need to specify those colours in the palette file.
-
-
-
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.
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 Anthony
-
Ported 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 Aspell
-
Ported release 0.7 of Stella to Java
-
-
-
-
Christopher Bennett
-
Helped discover a Superchanger emulation bug in release 1.0 of Stella
-
-
-
-
Alexander Bilstein
-
Provided "A Brief History of the Atari 2600" for this manual
-
-
-
-
Dan Boris
-
Provided technical information on the Supercharger
-
-
-
-
Piero Cavina
-
Allowed "Oystron" to be included in the Stella distribution
-
-
-
-
Bob Colbert
-
Allowed "Okie Dokie" to be included in the Stella distribution
-
-
-
-
Joe D'Andrea
-
Author of the IRIX port of Stella until release 1.2
-
-
-
-
Renato Ferreira
-
Provided code to support private colormaps under Unix
-
-
-
-
Ron Fries
-
Author of the awesome TIA Sound library
-
-
-
-
Aaron Giles
-
Author of the Power Macintosh version of Stella until release 1.1
-
-
-
-
Mark Grebe
-
Author of the Macintosh OSX version of Stella starting with the
- 1.4 release. Helped with Stelladaptor support.
-
-
-
-
Alex Herbert
-
Provided much information on AtariVox and SaveKey functionality
-
-
-
-
Richard Hutchinson
-
Provided an AtariVox USB adaptor to help with AVox development
-
-
-
-
Mark Hahn
-
Allowed "Elk Attack" to be included in the Stella distribution and
- provided help with the TIA HMOVE blank bug
-
-
-
-
Kevin Horton
-
Author of the definitive Atari 2600 bank-switching document
-
-
-
-
Thomas Jentzsch
-
Provided updated NTSC palette and many ideas
-
-
-
-
Kostas Nakos
-
Author/maintainer of the WinCE version of Stella starting with the
- 2.0 release
-
-
-
-
Erik Kovach
-
Author of the property file for release 0.7, 1.0, 1.1, and 1.2 of Stella
-
-
-
-
Daniel Marks
-
Provided improved keyboard joystick support for Stella release 0.1
-
-
-
-
James Mcclain
-
Provided patches for the 1.2 release to get Stella to compile with GCC 3.0
-
-
-
-
David McEwen
-
Author of the Acorn version of Stella
-
-
-
-
Jeff Miller
-
Author of the Windows version of Stella until release 1.2
-
-
-
-
Dan Mowczan
-
Provided a Supercharger to help with Stella's development
-
-
-
-
Jack Nutting
-
Author of the OpenStep version of Stella
-
-
-
-
John Payson
-
Provided EEPROM emulation code for AtariVox and SaveKey support
-
-
-
-
Manuel Polik
-
Author of the Windows version of Stella starting with the 1.2 release
-
-
-
-
Jim Pragit
-
Author of the "Game Menu" emulator game shell
-
-
-
-
John Saeger
-
Participated in a helpful discussion on understanding the TIA's
- RESPx multi-sprite trick
-
-
-
-
Chris Salomon
-
Provided information and code to help implement Supercharger support
-
-
-
-
Glenn Saunders
-
Provided a Supercharger to help with Stella's development
-
-
-
-
Jason Scott
-
Organizer of the property file archive for early versions of
- Stella; now he's helping with the web site
-
-
-
-
David Shaw
-
Provided make targets for the BSDI platform
-
-
-
-
Raul Silva
-
Helped with design and graphics for an early version of the Stella
- web site
-
-
-
-
Chris Snell
-
Maintained a mirror of the Stella FTP site
-
-
-
-
Darrell Spice Jr.
-
Author of the OS/2 version of Stella
-
-
-
-
John Stiles
-
Maintained the Macintosh version of Stella until release 1.2
-
-
-
-
Eckhard Stolberg
-
Provided 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 Stroup
-
Author of the Amiga version of Stella
-
-
-
-
Joel Sutton
-
Author of the FreeBSD version of Stella
-
-
-
-
Greg Troutman
-
Allowed "This Planet Sucks" to be included in the Stella distribution
-
-
-
-
Curt Vendel
-
Provided schematics of the TIA which are being used to improve the
- TIA emulation.
-
-
-
-
David Voswinkel
-
Maintainer of the PSP version of Stella starting with the 2.0 release
-
-
-
-
Brian Watson
-
Helped 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 Wilkins
-
Maintained the DOS version of Stella until release 0.7
-
-
-
-
Jeff Wisnia
-
Provided 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 Zaballa
-
Maintainer of the GP2X version of Stella starting with the 2.1 release
-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:
-
-
-
-
-
a)
- You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
-
-
b)
- You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
-
-
c)
- If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-
-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:
-
-
-
-
-
-
-
a)
- Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
-
-
b)
- Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
-
-
c)
- Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-
-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 @@
-
-
-
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.
-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.
-
-
Corrected emulation of CPU opcodes involving 'decimal' mode (ADC/RRA
- and SBC/ISB). Special thanks to SeaGtGruff and others on the Stella
- mailing list for in-depth discussion and creation of test ROMs.
-
-
Fixed bug in F4SC bankswitching mode; writes to bankswitch addresses
- weren't triggering a bank switch.
-
-
Changed internal sound frequency of Pitfall 2 from 15.75KHz to 20KHz,
- as this sounds much more authentic when compared to a real cartridge.
-
-
-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.
-
-
Added support for 'EF' bankswitching (Paul Slocum Homestar Runner),
- as well as auto-detection of this format.
-
-
Added support for 'EFSC' bankswitching, as well as auto-detection of
- this format. This is similar to the 'EF' scheme, but also includes
- 128 bytes SuperChip RAM.
-
-
Added autodetection for '0840' and 'SB' bankswitching formats.
-
-
Improved autodetection for 'UA' bankswitching format.
-
-
Fixed bug in selecting video modes larger than the current screen;
- the resulting video mode will now be the largest one available
- (previously it selected the smallest one available).
-
-
The currently selected CPU register now displays its value in
- decimal and binary (in addition to hex) in the debugger.
-
-
-
-
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.
-
-
After about 2 years, finally fixed the infamous 'red screen' issue when
- using ATI video cards in OpenGL mode in Windows. In the end, it was
- determined to be a bug in the ATI drivers. Special thanks go to
- Ant (http://aqfl.net) for bugtesting and
- constant feedback wrt this bug.
-
-
Fixed bug in TIA SCORE mode emulation when the Priority bit is also
- set. This fixes a very noticable graphical glitch in 'Swordquest
- Waterworld', as well as minor glitches in several other ROMs such
- as 'Space Shuttle'.
-
-
Treat spaces as normal characters in the ROM launcher. This means
- that ROMs with spaces can be located with quick selection (ie,
- typing characters will automatically jump to a ROM with that name,
- and typing 'space' won't cause the launcher to jump back to the top
- of the list).
-
-
The debugger window can now have a minimum height of 620 lines
- (previously the minimum was 690), but you lose access to the TIA 'RAM'
- bytes when using this resolution. This should allow it to work
- better on devices with small displays.
-
-
-
-
February 9, 2009
-Stella release 2.7.3a for Windows is now available.
-
-
Fixed minor issue in 2.7.3 with basedir.txt functionality; the
- pathnames can now contain spaces.
-
-
-
-
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.
-
-
Fixed rendering issues in software mode when using 24-bit colour depth.
- This isn't as fast as 16 or 32-bit modes, so you're recommended to use
- one of those whenever possible.
-
-
For the Win32 port: re-added ability to change the default location
- for storing Stella config files. To use this, simply create a file
- named 'basedir.txt' in the application directory containing the full
- path where all Stella-related items should be stored.
-
-
Tweaked the TIA info statistics overlay to be smaller while still
- including all relevant information.
-
-
-
-
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.
-
-
Fixed major bug in ROM Audit functionality; renaming ROMs would create
-files without an extension.
-
-
-
-
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.
-
-
Partial workaround for sound not working in OpenGL video mode in
- Windows with ATI video hardware. Sound will now work for the first ROM
- selected, but not for subsequent ones (you will have to quit and
- restart Stella for sound to work again). Related to this, added
- '-audiofirst' commandline argument, which initializes audio before video
- when emulating a ROM. Further work is required to completely fix
- this bug.
-
-
Fixed bug where volume wasn't being saved in 'Audio Settings' when
- started from the ROM launcher.
-
-
Fixed crash which sometimes occurred when viewing snapshots in the
- ROM Info viewer.
-
-
Allow setting window sizes for the ROM launcher and debugger to be larger
- than your desktop resolution. Be careful with this feature, as switching
- to fullscreen mode may cause problems in such cases.
-
-
Made the ROM launcher filename filtering be case-insensitive. This fixes
- a bug whereby ROMs with uppercase extensions were marked as invalid.
-
-
Added a pattern matching textbox to the ROM launcher, used to
- further filter the files shown in the listing. For now, this filters
- files only (directories are not filtered, and are always shown).
-
-
The location of EEPROM files used for AtariVox/Savekey emulation can
- now be changed with the '-eepromdir' commandline argument as well as
- in the UI.
-
-
Added '-gl_aspectn' and '-gl_aspectp' commandline arguments (and
- associated UI items), which replace the previous '-gl_aspect' setting.
- The aspect modes can now be set separately for NTSC and PAL mode.
- Related to this, the range of values is now 80 - 120.
-
-
Fixed bug with hold-select/reset/button0 when overriding ROM properties;
- the checkboxes in the UI weren't actually doing anything.
-
-
The 'grabmouse' option is now configurable from the UI; previously
- it was only accessible from the commandline or its shortcut key.
-
-
Removed 'Emulation_HmoveBlanks' ROM property and associated UI item.
- You can no longer optionally turn off HMOVE blanking; it is always
- enabled when necessary.
-
-
-
-
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.
-
-
Totally reworked the built-in UI to be font-sensitive and use higher-resolution
- fonts. Stella now requires a minimum screen size of 640x480.
- If used in a resolution smaller than that, the fonts will be reduced
- accordingly. Related to this, switching between software and OpenGL
- rendering now requires an application restart.
-
-
Added three different sized fonts (small, medium, large) which can be
- used in the ROM launcher.
-
-
Added ability to temporarily override ROM properties from the UI. This
- is tied to a right mouse button context menu in the ROM launcher, and
- is very useful when you want to use a set of properties for all
- subsequent ROMs without having to manually change each one.
-
-
Added ability to filter the files shown in the ROM launcher. Currently,
- the choices are 'all files', 'all roms', or 'roms ending with a certain
- extension'. This functionality is tied to a right mouse button context
- menu in the ROM launcher. Extensions can also be set with the
- '-launcherexts' commandline argument.
-
-
Added ability to reload the listing in the ROM launcher, either from
- a right mouse button context menu or pressing the Control/Cmd-R key.
-
-
Made the ROM info viewer in the ROM launcher configurable to show
- snapshots in 1x or 2x mode.
-
-
Made the delay between consecutive keys being recognized as one word
- configurable in the ROM launcher. This is useful if you find that you
- have to press keys too quickly to jump to a specific ROM. This can be
- set in the UI or using the '-listdelay' commandline argument.
-
-
Updated internal ROM properties database to ROM-Hunter version 4
- (thanks go to RomHunter for his tireless research in this area).
-
-
Expanded the statistics overlay for the TIA image to also show
- Display Format and Bankswitch type information.
-
-
Added '-ss1x' commandline argument and associated UI item, used to
- generate snapshots in 1x mode, independent of the filtering/scaling
- currently in use.
-
-
Various path textboxes in the UI now recognize './' (or '.\') to mean
- the current directory and '~/' (or '~\') to mean your home directory
- (for Windows, home directory will be your 'My Documents' folder).
-
-
Large speedup in loading directories with many files in the ROM launcher.
-
-
Fixed reset issue in 3E, 4A50, AR, CV, E7, F4SC, F6SC, F8SC, FASC and MC
- ROMs; the internal RAM wasn't being randomized after the initial reset.
-
-
M6532/RIOT RAM is now randomized at every reset, not just when the
- emulation starts.
-
-
Fixed bug in _diff pseudo-registers in the debugger; they were actually
- defined backwards.
-
-
Added fix for 'Challenge/Surfers Delight' ROM; the startup bank was
- incorrect. Combined with the new 'Override Properties' functionality,
- you can now play both games directly from the UI (no need to use the
- commandline).
-
-
Fixed paddle issue with Activision Casino ROM; the last card in game 4
- can now be reached.
-
-
Added new pseudo-registers to the debugger, useful for conditional
- breakpoints (_fcount, _cclocks, _vsync, _vblank).
-
-
Added 'timing' commandline argument functionality to the UI, so you no
- longer need to use the commandline to set it.
-
-
Size restrictions on the TIA image are now strictly enforced. The
- maximum height of a 1x TIA image is now 256 lines.
-
-
Added a new setting to the 'fullres' option named 'auto'. Using
- 'auto' will let Stella decide the best videomode to use in fullscreen.
-
-
Changed 'gl_fsmax' option to mean 'scale TIA image in fullscreen'. It
- will have no effect on UI modes.
-
-
Changed 'gl_aspect' option to range 80-100 (previously, it was 50-100).
-
-
Removed 'ui_zoom' and 'tia_zoom' options, replacing them with
- 'tia_filter' (which can be zoom1x, zoom2x, etc). There is no equivalent
- for ui_zoom, since the UI can no longer be scaled.
-
-
Added experimental 64-bit version for Vista64 (may also work on WinXP64).
- This hasn't been extensively tested, and is probably quite a bit slower
- than the 32-bit version.
-
-
OSX port now requires at least 10.3 and XCode 3.0 to compile. Sorry,
- but I no longer have access to older systems to compile for 10.2.
-
-
Huge updates to the documentation, particularly concerning the debugger.
- Many features that have been in Stella for a while are now documented for
- the first time.
-
-
-
-
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.
-
-
Introduced more accurate timing for NTSC vs. PAL modes, where the
- framerate is based on the number of scanlines per frame. This should
- eliminate 'clicking' sounds when emulating ROMs that don't follow
- the exact NTSC or PAL scanline specs.
-
-
Added ability to see the current number of scanlines and corresponding
- framerate to the TIA emulation. This can be set with the '-stats'
- commandline argument, or dynamically turned on and off with the
- 'Alt-l' key combo.
-
-
Modified '-framerate' commandline argument, where a non-zero value
- overrides the automatic framerate calculation (based on number of
- scanlines). Setting 'framerate' to zero re-enables auto-frame
- calculation. Also, re-enabled changing the framerate from within the
- UI.
-
-
Added '-timing' commandline argument, which sets the type of waiting
- between processing frames. Setting it to 'sleep' emulates the
- previous behaviour in Stella; setting it to 'busy' emulates z26,
- and can in some cases eliminate screen tearing (at the expense of
- using all available CPU time).
-
-
Fixed issue with debugger disassembly and mirrored $40 TIA write
- addresses. They were actually defined at $30, and generating incorrect
- labels.
-
-
Fixed issue in AtariVox and SaveKey controllers where accessing the
- EEPROM sometimes failed after the first write.
-
-
Changed AtariVox and SaveKey EEPROM emulation to default to $FF for
- a blank EEPROM.
-
-
Fixed regression in cart auto-detection logic; some F6 ROMs were being
- misdetected as E7.
-
-
Fixed issue with M6532/RIOT timer initialization; it was causing some
- ROMs to hang (most notably Summer Games). Related to this, reworked
- the built-in random number generator to generate 'more random' numbers.
-
-
Fixed bug in CommandMenu where console buttons (Select, Reset, etc)
- weren't doing anything.
-
-
-
-
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.
-
-
Added AtariVox support using a real AtariVox device, where Stella
- sends data directly to the AtariVox. For now, this is supported in
- Linux/UNIX, OSX, and Win32 only. You'll obviously need a real
- AtariVox, and a serial<->USB adaptor to connect it to your system.
- Added '-avoxport' commandline argument used to set the serial port
- to which the AtariVox is connected. Special thanks to Al Yarusso
- and Richard H. for providing sample hardware.
-
-
Added AtariVox and SaveKey EEPROM emulation. This reads/writes data
- to a 32KB file, not to the actual hardware. Very useful for testing
- EEPROM support without actually wearing out the real device. Special
- thanks to J. Payson for providing the EEPROM emulation code, and A.
- Herbert for answering many driver-related questions.
-
-
Added support for CX-22, CX-80, and AmigaMouse trackball controllers.
-
-
Improved debugger symfile handling so that addresses accessed as
- read-only won't use write-only labels (and vice-versa). More work
- is still needed in this area.
-
-
Added M6532/RIOT tab to the debugger. This will be expanded on in a
- future release.
-
-
Added TIA emulation fixes for graphical glitches in Escape from the
- Mindmaster, Mission Survive, Solaris, and SWOOPS!
-
-
Fixed bug where fullscreen OpenGL scaling wasn't working on 4:3 monitors.
-
-
Further improvements to the M6532/RIOT emulation, which unfortunately
- have broken old state files (again).
-
-
Added deadzone setting, for adjusting the deadzone amount for
- analog joysticks. This can be set using the commandline argument
- '-joydeadzone' or dynamically within the UI.
-
-
Make ROM disassembly in debugger take advantage of a wide window.
-
-
Fixed bug in 6507 BCD handling introduced in the last release.
-
-
For the Win32 port; Win9x should be fully supported again.
-
-
-
-
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.
-
-
Fixed M6532 RIOT timer emulation. More testing is needed, but the
- changes so far have fixed several ROMs that didn't work before.
-
-
Fixed issue with weird characters in the debugger disassembly when
- loading .lst files.
-
-
Fixed bug where entering the debugger for 4A50 and E0 carts caused
- the ROM to be frozen afterwords.
-
-
Removed logic whereby starting a ROM from something other than the
- built-in launcher wouldn't allow the user to go back to the ROM launcher.
-
-
Fixed bug (hopefully) with the app icon not showing on the Stella window.
- Further testing is needed, since I can't duplicate the error myself.
-
-
Fixed default snapshot folder issues; the folder will now be
- automatically created in the same place as state folders, ini files,
- etc (whereever that may be for your platform).
-
-
Re-added 'lastrom' functionality, where Stella will remember and
- auto-select the last ROM that was successfully launched in the ROM
- launcher.
-
-
For Stella developers, fixed SpeakJet emulation so it compiles again.
- No improvements have been made to the emulation itself, though.
-
-
-
-
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.
-
-
-
Added RomInfo widget to the ROM launcher, which shows properties
- information and a snapshot of the currently selected ROM. Updated the UI
- and added '-romviewer' commandline argument to activate this setting.
- Note that the ROM launcher will have to be sized at least 640x480 for this
- to be used. Also note that the snapshots must be in 1x mode with a
- maximum size of 320x260. This will be expanded on in a future release.
-
-
Added ROM audit functionality, whereby ROMs can be physically renamed
- according to their properties' name.
-
-
Added bankswitching support for 0840, SB, X07 and 4A50. A special thanks
- to Eckhard Stolberg for much help in this area.
-
-
Removed "non-browse" functionality from the ROM launcher; it now always
- uses browse/filesystem mode. The previous 'pretty' names can now be
- seen by renaming all your ROMs with the new ROM audit feature.
-
-
Huge overhaul of controller handling and Stelladaptor support, making it
- much easier to add new controller types in a future release.
-
-
Fixed paddle issues in Night Driver; paddle emulation speed should be
- much better.
-
-
Fixed several 6507 emulation bugs related to BCD handling.
-
-
Updated ROM properties based on info from RomHunter.
-
-
ROM properties can now be edited from the ROM launcher; you no longer
- have to start a ROM to do so.
-
-
Added support for configurable font to ROM launcher (currently only
- 'small' and 'large'). Updated the UI and added -launcherfont' commandline
- argument to change this setting.
-
-
Added SECAM, NTSC50, PAL60 and SECAM60 to the list of formats that can
- be used. Also, switching between these modes with 'Ctrl-f' now switches
- the palette only; the number of scanlines won't change.
-
-
Fixed crash when switching between software and OpenGL mode with a
- Stelladaptor plugged in.
-
-
Added '-tiafloat' commandline argument, which determines whether or not
- the TIA pins are in a 'floating' state. This is useful for testing on
- certain CMOS EPROM chips where the unused TIA pins on a read are not
- floating but pulled high.
-
-
Fixed issue in debugger where once a .sym file was loaded, it was used
- in all ROMs loaded after that.
-
-
Fixed issue in debugger where equate names weren't showing up in the RAM
- and CPU widgets. Note that this still isn't perfect, and needs support
- from DASM for proper functionality.
-
-
Updated state file format, creating smaller files (and in preparation
- for state rewinding in a future release). Old state saves will no longer
- work.
-
-
Added '-bs' commandline argument, which is an alias for '-type' (which
- is still present).
-
-
Removed -pXspeed' commandline arguments, and replaced them with a
- single '-pspeed'.
-
-
Removed '-paddle' commandline argument. The paddle currently emulated
- by the mouse can still be changed with Ctrl-0..3 or within the UI, but
- the setting is no longer saved.
-
-
Reworked UI for specifying that the console ports have been swapped,
- hopefully making it easier to understand.
-
-
Added 'Ctrl-c' & 'Ctrl-v' to EditTextWidgets, allowing to copy and paste
- the text widget contents. More work in this area is coming in a future
- release.
-
-
Added 'Ctrl-leftarrow' and 'Ctrl-rightarrow' to EditTextWidgets, to move
- to the first character of previous and next words (respectively).
-
-
For the Win32 port: fixed OpenGL crashes in Vista. Graphical updates
- are still slower in Vista compared to XP, though.
-
-
For the Win32 port: default folder for Stella config files is now
- 'My Documents\Stella'; this can be disabled if necessary. This should
- fix issues with losing settings when launching Stella from an IDE,
- and the creation of stella.ini and 'state' directories in many
- different places.
-
-
For the Win32 port: several fixes to the Visual Studio project files,
- allowing building in debug or release mode, for both i386 and x86_64.
- The project files have been upgraded to Visual Studio 2008, and Stella
- can now be built and distributed without the VS runtime libraries.
-
-
Updated configure script for cross-compiling Win32 version in Linux.
-
-
-
-
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.
-
-
-
Made usage of 'GL_TEXTURE_RECTANGLE_ARB' extension configurable, and
- have it default to off. This should take care of the black/white
- screen many people were experiencing with ATI video hardware. This
- is accessible using the 'gl_texrect' commandline argument). Set it to
- 'true' or 'false' to enable/disable the extension.
-
-
-
-
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:
-
-
-
Re-added OpenGL aspect ratio setting ('gl_aspect' commandline argument).
-
-
Re-added non-browser mode to the ROM launcher.
-
-
For the Linux/UNIX port; fixed OpenGL vsync issue with Nvidia video cards.
-
-
-
-
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:
-
-
-
Added new video sub-system where fullscreen and windowed modes are treated
- differently. Windowed modes now use '-zoom_tia' and '-zoom_ui' arguments,
- while fullscreen modes can be specified by resolution using the new
- '-fullres' argument.
-
-
Widescreen video modes are now supported; Stella will simply center the
- image with surrounding black borders.
-
-
Many UI-related changes, including resizable ROM launcher and debugger
- windows, and a new UI palette (the previous 'classic' palette is still
- available). This is still a work in progress.
-
-
The locations of all major config files (statedir, palette file,
- cheat file, properties file, etc) are now configurable from the
- commandline and within the UI.
-
-
Updates to TIA palette support. Added SECAM support, and removed the
- built-in 'original' palette. Standard, z26, and user are still
- available.
-
-
Various bugfixes to some debugger commands. The 'run' command no
- longer causes a crash, and several others have better error-checking.
-
-
Added more complete cartridge auto-detection for Commavid (CV), 3E,
- 3F and Activision (FE) formats.
-
-
Removed XStart and Width ROM properties, since the forthcoming TIA
- rework won't be using them.
-
-
Reworked internal storage of ROM properties to be faster and take up
- less space.
-
-
Added several different ways of stretching the OpenGL image to the
- '-gl_fsmax' argument, for more flexibility.
-
-
Removed OpenGL aspect ratio setting favour of the previously mentioned
- video changes. We'll see how this goes.
-
-
Removed dirty-rect support from software rendering, since it was actually
- sub-optimal in Windows and OSX and defaulted to off in previous versions.
-
-
Added support for gzipped ROMs.
-
-
Re-added pause support.
-
-
Re-added support for Windows 98.
-
-
Removed support for 'STELLA_BASEDIR' environment variable, since each
- config file can be now configured separately.
-
-
Removed '-fastscbios' argument, since it must always be turned on.
-
-
Removed PSP support, since it hasn't been updated in over a year, and
- someone else is maintaining another port elsewhere.
-
-
For the Unix/Linux port; fixed 'make install' issues, and changed icon to
- PNG format.
-
-
-
-
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:
-
-
-
Greatly improved cartridge bankswitch type auto-detection. Stella
-can now (mostly) autodetect cartridge types 'E0', 'E7', '3E', '3F' and
-Superchip carts. Obviously, this autodetection is not infallible, but
-relies on patterns in the ROM data, and how it was compiled. Because
-of the auto-detection types already supported, almost all bankswitch
-info was removed from internal ROM properties. Set the ROM property
-"Cartridge.Type" to "Auto-detect" for this to take effect.
-
-
Added auto-detection of display type (NTSC or PAL). Currently, PAL60
-ROMs will be detected as NTSC. This is almost 100% accurate, and fails
-in very few cases (for those that are mislabeled, the ROM properties
-can be set specifically). Set the ROM property "Display.Format" to
-"Auto-detect" for this to take effect.
-
-
Improved emulation timing when exiting one ROM and starting another.
-Previously, this could result in the second ROM having its sound start
-later than it should have.
-
-
Removed pause functionality from the core, since it's been superceded
-by the other event states. You can now enter one of the menus for a
-similar effect (options, command, debugger, etc).
-
-
Added toggle for PAL color-loss emulation, which defaults to off.
-Previous versions of Stella always used color-loss emulation.
-Related to this, added 'colorloss' commandline argument.
-
-
Added rudimentary support for configuring the UI palette ('uipalette'
-commandline argument) and ability to change the size of the launcher window
-('launchersize' commandline argument). This will be expanded on in future
-releases.
-
-
Reworked options menu so it's now accessible from the ROM launcher as
-well as while playing a ROM.
-
-
Re-added ability to change the width and height of a Console. Related to
-this, changing XStart/YStart/Width/Height dynamically no longer resets
-the ROM.
-
-
Removed 'tiadefaults' commandline argument, since Stella will now default
-to using accurate positioning, and not use 'tweaks'.
-
-
Joystick code now allows all 4 directions; 'Bumper Bash' now works
-correctly.
-
-
Improved Keypad emulation; 'Alpha Beam with Ernie', 'Oscars Trash Race'
-and 'Magicard' now work correctly.
-
-
Reworked GUI code, so that all dialog boxes are automatically centered.
-
-
Added 'rominfo' commandline argument, which prints some detailed info for
-a ROM.
-
-
For the OSX port; fixed crashes in OpenGL mode.
-
-
For the GP2X port; some improvements to the sound code.
-
-
For the GP2X port; added vertical centering of the TIA image (when possible).
-
-
-
-
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:
-
-
-
Note: Because of the many changes in this release, all settings
-will be reset to defaults. If this doesn't happen for you, it will be necessary
-to manually delete your previous settings (see 'Settings' section of the manual
-for more information).
-
-
Potentially huge speedups in software rendering mode, both in emulation
-and UI modes. Deactivating 'dirty rects' uses these new modes, which
-can be 2-3 times faster for many configurations.
-
-
For UI navigation, changed from using 'joymouse' to the more familiar
-'tabbing' functionality, where you move from object to object by use of
-some tab key. As a result, completely removed the 'joymouse' commandline
-argument and all associated functionality.
-
-
Added event remapping for UI events, separate from events while in emulation
-mode.
-
-
Added support for PAL60 ROMs, which use the PAL palette and resolution
-but run at NTSC timing (60Hz). Added ROM property for this, and updated
-the internal properties database for many PAL60 ROMs.
-
-
Added support for user-definable palettes. For now, only one extra palette
-is supported, but in the future we may have them specified per-ROM.
-
-
Fixed bug in PAL colour-loss emulation, which wasn't actually being done
-for the original Stella and z26 palettes.
-
-
Fixed several TIA-related emulation bugs as reported on AtariAge. More
-fixes will come with the TIA rewrite, due in the next release.
-
-
Added new scaler infrastructure, replacing the '-zoom' commandline argument
-with '-scale_ui' and '-scale_tia'. This means the UI and emulation can now
-be scaled independently.
-
-
Added '-gl_vsync' commandline argument and associated UI elements, which
-uses synchronization to vertical blank interrupt in OpenGL on supported
-systems. This eliminates tearing in OpenGL rendering.
-
-
Changed naming of snapshots and state files. These files are now
-named based on the names given in the properties database, and no longer
-use the 'md5sum' name. As a result, state files from previous versions
-will no longer work unless they're manually renamed. Related to this,
-removed the '-ssname' commandline argument.
-
-
Fixed bug where 'Snapshot saved' appeared when taking snapshots in
-succession.
-
-
Added a 'Previous directory' entry to the top of each listing while
-in ROM Browse mode, which is equivalent to the 'Go Up' button. This makes
-it easier to navigate the filesystem, since you never have to 'tab out'
-of the ROM listing.
-
-
Added all sound related commandline options to the UI, so you no
-longer have to use the commandline to set those options.
-
-
Added new property to ROM properties specifying whether to swap paddles
-plugged into a virtual port. This eliminates the need to manually set the
-paddle mode for those ROMs that don't use paddle zero by default.
-
-
Added a 'Defaults' button to the Game Properties dialog, which resets
-the ROM properties to the internal defaults, deleting that ROMs properties
-from the external properties file.
-
-
Fixed bug whereby modified ROM properties weren't being reloaded when
-restarting a ROM.
-
-
Made 'phosphor' and 'phosphor blend' a ROM property, meaning it can be
-set per-ROM.
-
-
Added support for relocating the base Stella directory, by setting the
-environment variable 'STELLA_BASEDIR'. This must be done each time before
-Stella starts.
-
-
Added '-fastscbios' commandline argument, which speeds up loading of
-vertical bars in Supercharger ROMs, and made it the default.
-
-
Added '-autoslot' commandline argument, which automatically switches
-to the next available slot after saving a state. This defaults to off,
-and must be set from the commandline.
-
-
Fixed bug in debugger command 'runto', which could enter an infinite
-loop under some conditions.
-
-
Updated configure/build toolchain so patching is no longer required for Debian
-packages.
-
-
Removed dependency on PNG library (PNG snapshots are still present, but the
-actual library is no longer required).
-
-
For the OSX port, improved OpenGL performance on Mac Mini using Intel GMA950
-video hardware.
-
-
For the GP2X port, added support for PAL ROMs, and updated SDL to use hardware
-scaling.
-
-
-
-
-
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:
-
-
-
Added new ROM browser option which works like a normal filesystem
- browser, allowing navigation throughout the filesystem.
- The old mode of browsing is still present, and can be toggled at
- runtime. Related to this, fixed bug whereby sorting in the ROM
- launcher sometimes didn't work.
-
-
Integrated stella.pro properties into the application, resulting in
- faster startup time. Now Stella can be redistributed as a single
- binary; no external files are needed, but they will still be used
- if present.
-
-
Reworked ROM properties files once again. The 'user.pro' file has
- been removed, and all user-defined properties are stored in
- 'stella.pro' instead. You should delete all properties files when
- upgrading to this version, to take advantage of the speed increases.
-
-
Reworked settings files once again. Removed all references to a
- global settings file. Each user now gets a user-specific settings
- file only. If that file doesn't exist, the built-in defaults are
- used.
-
-
Added 'conditional saving' of the cheatcode and settings files, so
- that these files are only written to disk when absolutely
- necessary. This doesn't really affect desktop systems, but is very
- useful for systems with flashram-based storage (GP2X, WinCE, etc).
-
-
Reworked Settings class, hopefully fixing a bug whereby settings
- weren't being saved in certain cases (most evident in the OSX port).
-
-
Added 'tiadefaults' commandline option, which can also be toggled
- from within the GUI. This option disables all TIA positioning
- 'tweaks' that typically make a game look better, and present the
- image exactly as it would appear on a real 2600.
-
-
Added jitter-detection code for the paddle emulation, which should
- eliminate an annoying 'jittering' effect when using paddles with
- a Stelladaptor.
-
-
Related to jitter-detection, added '-pthresh' commandline option
- and GUI entry, which sets a bound below which the emulation detects
- jitter.
-
-
Fixed crash when adding one-shot cheats.
-
-
Fixed bug in RAM comparitive searches in the debugger.
-
-
Fixed bug with setting snapshot naming type from the GUI (it was
- always being set to 'romname').
-
-
Re-added low compatibility CPU emulation mode, since it benefits
- some slower systems. This is activated with the commandline argument
- '-cpu low'.
-
-
For the OSX port, added Universal binary support.
-
-
For the OSX port, reworked the menu handling, so that certain menu
- options are only enabled when it makes sense to do so.
-
-
For the GP2X port, fixed joystick deadzone issues and scroll bug in
- ROM launcher.
-
-
For the GP2X port, fixed issue with PAL ROMs causing a crash because of
- screen size. A message is now shown indicating that PAL ROMs are not
- yet supported.
-
-
-
-
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:
-
-
-
Added phosphor effect, similar to z26. Useful on ROMs which
- alternate sprites from one frame to another, resulting in an
- annoying flicker. When using phosphor mode, a pixels colour is mixed
- with its previous value, resulting in a blended image that doesn't
- flicker, emulating the phosphoresence effect on a real television.
-
-
Added 'pp' developer commandline argument to set the "Display.Phosphor"
- property, and 'ppblend' to set the amount to blend pixels in
- phosphor mode. Also added 'Alt p' key to enable/disable phosphor
- effect while ROM is emulated. By default, phosphor mode is only used
- when necessary, as specified in the stella.pro file.
-
-
Renamed 'cheetah' commandline argument to 'cheat'.
-
-
Added per-frame cheatcodes (4 characters long), which are evaluated
- each frame.
-
-
Added cheatcode GUI, where cheats can be named, edited, saved, etc.
-
-
Cheat codes are now saved to stella.cht file and are automatically
- reloaded when Stella starts.
-
-
Improved 'joymouse' functionality. While in GUI mode, any axis
- will simulate mouse movement, and any button will simulate a mouse
- click. So the GUI can be completely navigated without a mouse.
-
-
Improved CommandDialog and LauncherDialog wrt joymouse functionality.
- These dialogs are used more than any other on devices without a mouse,
- so joystick axis movement switches between GUI objects, rather than
- simulating the mouse. This leads to much faster selection of objects.
-
-
Added mapping of multiple SDL joystick axis to Event Mapping.
-
-
Added joystick hat support, and mapping of multiple hats to Event
- Mapping.
-
-
Added remapping of paddle emulation to the keyboard or joystick axis
- (the mouse is still used by default for paddles). Related to this,
- use more precise analog values when analog axis are mapped to
- analog-type events (such as paddles).
-
-
Treat joystick events as other types of controllers based on the
- virtual port entry in stella.pro. This means that mappings for a
- joystick will emulate other devices when necessary.
-
-
Added 'sp' developer commandline argument, which sets the
- "Console.SwapPorts" property and swaps the arrangement of the
- virtual ports. Useful for games like "Raiders of the Lost Ark",
- where the joysticks are normally swapped.
-
-
Added ability to set which Stelladaptor device emulates which virtual
- joystick port ('sa1' and 'sa2' commandline arguments, which accept
- 'left' or 'right').
-
-
Fixed issues with jittering joysticks/mice causing weird events when
- starting Stella.
-
-
Added 'freq', 'tiafreq' and 'clipvol' commandline arguments, which
- affect the sound subsystem (see manual for further info).
-
-
Made state files completely cross-platform, both in terms of endianness
- as well as CPU size (32 vs. 64 bit).
-
-
Fixed crash with using 'cheat' and 'break' from the commandline.
-
-
Implemented dynamic loading of OpenGL library.
-
-
-
-
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:
-
-
-
Added 'dirtyrects' support, which speeds up rendering for some Windows
- users.
-
-
Fixed bug where taking snapshots would fail if the snapshot directory
- wasn't specified.
-
-
Made ROM launcher case-insensitive, so upper and lowercase names are now
- mixed in the correct order.
-
-
Fixed ZIP ROM support to search the archive for ROMs ending with either
- .bin or .a26 (case insensitive).
-
-
ROMs which don't have an associated properties entry are no longer named
- 'Untitled' in the Stella window or when taking snapshots. The actual
- ROM name is now used.
-
-
Changed minimum height of debugger to be 27 lines in the prompt, or approx.
- 700 pixels high. This should make using the debugger easier for users
- with lower resolution monitors. Related to this, the RomWidget now uses
- all possible vertical space when changing the debugger height.
-
-
Fixed bug related to upgrading Stella and event mappings being incorrect.
- Stella now detects this, and uses the default mappings. So upgrading
- to version 2.0.1 means your event mappings will be reset.
-
-
Fixed bug in loading debugger symbol files generated on different
- operating systems.
-
-
For the Windows port; added exe installer based on InnoSetup.
-
-
For the Windows port; compiled icon into Stella, so it now looks like
- a real Win32 application.
-
-
For the OSX port, reverted window resize key combos back to 'Cmd =' and
- 'Cmd -' to match the 1.4.2 release.
-
-
-
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:
-
-
-
Added integrated GUI. Stella is now a fully graphical application, and all
- settings can be changed dynamically while the application is running. That
- means the commandline is no longer required (but support is still there
- for those who want to use it).
-
-
Added ROM launcher. You can now exit a game and start playing another one
- from directly within Stella (you no longer have to quit Stella and
- restart it).
-
-
Because of the integrated GUI and ROM launcher, StellaX and KStella
- (the Windows and Linux frontends) have been discontinued. The OSX
- port now uses the launcher as well.
-
-
Added an integrated debugger for game developers. This is currently
- the first version of a debugger in Stella, but it's already quite
- usable.
-
-
Added new sound subsystem, which is much faster and more accurate. Related
- to this, added stereo sound output (used by some homebrew games).
-
-
Added ZIP support. Stella can now open ROM's compressed in zip
- format.
-
-
Added cartridge 'frying', thanks to Fred "batari" Quimby. This
- emulates the action of turning the power button on and off on a
- real Atari, often resulting in some strange effects.
-
-
Added ability to edit current ROM properties from directly within
- Stella, which can then be saved directly into the 'user.pro' file.
- So creating a properties entry for a new ROM can be done without
- any external tools.
-
-
Added initial support for using Stella in an 'arcade-box'
- environment without a keyboard. This consists of an in-game
- menu for choosing common actions in Stella, as well as using the
- joystick navigate the mouse pointer.
-
-
Reworked properties system to use both a system-wide 'stella.pro' and
- a per-user 'user.pro' properties files. Changes made by the user
- and stored in 'user.pro' are no longer erased when upgrading Stella.
-
-
Added support for cartridges with 3E bankswitching format.
-
-
Added preliminary Cheat support.
-
-
Added Alt/Shift-Cmd z, x, c, v, b, n keys to enable/disable the
- P0, P1, M0, M1, BL, PL bits in the TIA, respectively.
-
-
Added Alt/Shift-Cmd . key to disable all bits in the TIA.
-
-
Added Alt/Shift-Cmd / key to enable all bits in the TIA.
-
-
Added Alt/Shift-Cmd g key to switch dynamically switch between
- software and OpenGL modes while Stella is running.
-
-
Added Ctrl/Cmd r key to reload the ROM currently being
- emulated.
-
-
Added Alt/Shift-Cmd s key to merge the current game properties
- into the properties file.
-
-
Added help commandline argument. Launching Stella from the
- commandline with no options now starts Stella in ROM launcher mode,
- instead of showing help (as in previous versions).
-
-
Added the following commandline arguments for developers:
- pro, type, ld, rd, tv, lc, rc, bc, format, xstart, ystart, width
- height, cpu, hmove. Developers can consult the manual for
- further details.
-
-
Removed mergeprops commandline argument, since there are now
- dedicated keys to either save or merge game properties.
-
-
Removed hidecursor commandline argument. Stella will now
- automatically decide when to use this setting.
-
-
Fixed framerate when switching between NTSC and PAL modes. Stella
- now uses the correct framerate based on the format of the ROM,
- in terms of both video and audio.
-
-
Added 'configure' support to the build process for both Linux and
- Win32 (using MinGW). Developers can now use the familiar 'configure;
- make; make install' commands to compile Stella.
-
-
Further consolidation and integration of SDL. This should lead to
- faster operation and a more consistent look for all ports.
-
-
Fixed some 64-bit issues. Stella now compiles and runs correctly
- on AMD64 and PPC64 Linux systems.
-
-
Updated the Stella manual with pictures of the new integrated GUI.
-
-
-
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:
-
-
-
Updated the sound system. All popping and cracking sounds that previously
- occurred at program start/stop and when entering/exiting menu or pause
- mode have been eliminated.
-
-
Fixed the gl_fsmax argument to mean "switch to desktop resolution on
- fullscreen OpenGL", instead of to the maximum possible resolution (the two
- are not always the same).
-
-
Added Alt [ and Alt ] keys to dynamically adjust the sound volume during
- emulation.
-
-
Added Control 0, Control 1, Control 2, Control 3 keys to dynamically change
- which paddle the mouse should emulate.
-
-
Added video_driver argument. This accepts the different options that can be
- specified for SDL_VIDEODRIVER (see SDL homepage for more information).
- Basically, it eliminates the need to set the SDL_VIDEODRIVER environment
- variable.
-
-
Made sure screen is refreshed before taking a snapshot. This eliminates
- the problem with new snapshots containing the text "Snapshot saved".
-
-
For the Windows port; added windib and directx as options for
- 'video_driver' when using software rendering. The 'windib' option is now
- the default, and in many cases it's up to 10 times faster than using
- 'directx'.
-
-
For the OSX port; added 'Cmd-R' key to reload the currently loaded ROM.
-
-
-
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:
-
-
-
Fixed PAL sound issues. PAL games now should sound correct (no distortion
- or missing sounds), but some games may still run too fast. This is still
- a work-in-progress, and will be fixed in Stella 1.5.
-
-
Cleaned up the SDL event gathering loop. This should hopefully fix the
- problems with "double-pumping events" reported by some Windows users.
- Event gathering and dispatching is now much faster as well.
-
-
Fixed a bug where the Control or Alt keys could be assigned to some event,
- but they could never be used. Control/Alt can now be used for any event.
-
-
Updated stella.pro file to work with the latest Good2600 ROMset release
- (Thanks go to Voch for helping to maintain the stella.pro file).
-
-
For the Windows port; removed requirement for ROM files to be named *.bin
- in the StellaX frontend. The ROM's can now have any name, but ZIP-files are
- not yet supported.
-
-
For the Windows port; fixed the problems with the included modified SDL
- library and Windows 98 users. Stella should now run in Windows 98.
-
-
For the OSX port; added preference to allow user to select the directory
- in which ROM images are stored. This sets the default directory to start
- the browsing for a ROM in, and doesn't preclude the user from selecting a
- file outside that directory.
-
-
For the OSX port; fixed preferences bug where Preferences changed before
- a game was opened were not being saved.
-
-
-
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:
-
-
-
Codebase ported to SDL. The DOS and X11 ports have been discontinued.
-
Sound code ported to SDL. For the Linux versions, ALSA and OSS sound
- support has been discontinued.
-
The Linux, MacOSX and Windows ports are now based on the same codebase and
- are actively maintained. That means simultaneous (and hopefully
- more frequent) releases.
-
A new Windows port has been created, with the GUI based on StellaX.
- This is the first new release for Windows since Stella 1.2.
- (software mode is not yet optimized; OpenGL mode works much better)
-
A new Mac OSX port has been created by Mark Grebe. This is the first new
- release for Mac OSX since Stella 1.2.
-
Added OpenGL rendering support.
-
Added more refined in-game GUI.
-
Added event remapping. Emulation keys can now be remapped to the keyboard
- or up to 4 joysticks.
-
Added native Stelladaptor support. Joysticks, paddles, and driving controllers
- have been tested.
-
Digital sound support (used in games like Quadrun and Pitfall2) has been
- greatly improved. Sound generation is now more tightly synchronized with
- video updates.
-
Added support for switchable palettes. Currently you can switch between the
- current Stella palette, original Stella palette (pre-1.2 versions), and
- the z26 palette.
-
Added support for UA Limited style bankswitching (Funky Fish and Pleiades).
-
Switched to using high compatibility M6502 mode by default. This
- means old state saves from previous Stella versions will no longer work.
-
The meaning of the "-sound" command line option has been changed.
- This option now accepts either 'true' or 'false (1 or 0) to enable/disable
- sound.
-
Changed sound mixer functionality. The system volume/mixer settings will
- never be changed; volume changes in Stella will only affect the emulation
- itself.
-
Added "-video" command line option. This option accepts either 'soft'
- or 'gl', to use software/OpenGL rendering.
-
Added "-gl_filter" command line option. This option accepts either
- 'nearest' or 'linear', to use GL_NEAREST or GL_LINEAR filtering.
-
Added "-gl_aspect" command line option. This option accepts a decimal
- value specifying how much to scale the width of the emulation image (useful
- for giving an authentic 'square-looking' 4:3 mode).
-
Added "-gl_fsmax" command line option. This option accepts either
- 'true' or 'false, and specifies to use the maximum possible resolution when
- in fullscreen OpenGL mode (useful for Linux and for Windows on laptops).
-
Added "-fragsize" command line option. This option accepts the
- size to use for sound fragments. Linux/MacOSX works well with 512,
- Windows seems to need 2048. This value must be a power of two.
-
Modified "-volume" command line option. If you specify '-1',
- Stella will use the system volume.
-
Renamed the "-pro" command line option to "-altpro".
-
Renamed the "-fps" command line option to "-framerate".
-
Removed the "-center" command line option. Stella now automatically
- centers the window when possible.
-
Removed the "-paddle real" command line option, since it never really
- worked correctly (and Stelladaptor support adds that functionality
- anyway).
-
Removed all command line options relating to the X11 port
- (owncmap, display).
-
-
-
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:
-
-
-
Improved TIA sound system so that games with digitized audio work
-
-
Added saving and loading of game state to the core; X11, SDL, and DOS
- versions current support saving and loading game state
-
-
Added support for F4 bankswitching method
-
-
Pitfall II DPC sound emulation completed
-
-
Fixed a bug which caused the difficulty switches to operate backwards
-
-
Changed DPC auto-detection to use file size so that Pitfall II mods work
-
-
Modified RIOT timer emulation so that startup values are random
-
-
Added 3F bankswitching auto-detection routine so that homebrews and
- demos work without a stella.pro entry
-
-
Updated the TIA message boxes so they look a little nicer
-
-
Latest stella.pro file included in distribution
-
-
Added some developer options to the core, and the ability to change game
- width, height, xstart, ystart, and others while the emulation is running.
- Added ability to switch between NTSC and PAL at runtime, and the ability
- to save the current properties to a file or to merge the changes into the
- stella.pro file; X11 and SDL versions supported for now (compile option)
-
-
External sound server for the X11 and SDL versions no longer required, as
- all sound code is now integrated into the core
-
-
Changed locations of the user's config files for the X11 and SDL versions;
- the user's stellarc file is now located in $HOME/.stella/stellarc, state
- files are located in $HOME/.stella/state/ and the stella.pro file is
- located in $HOME/.stella/stella.pro
-
-
Changed the way options are supplied on the commandline for the X11 and
- SDL versions. Now all commandline options take exactly the same arguments
- as in the INI file.
-
-
Added "-accurate" command line option to choose between accurate
- (CPU-intensive) timing or less accurate (CPU-friendly) timing to X11
- and SDL versions. This is the final version of what was considered
- experimental timing code in Stella 1.2.
-
-
Added "-sound" command line option to choose which sound backend to
- use (alsa, oss, sdl) with the X11 and SDL versions.
-
-
Added the developer command line options to the X11 and SDL versions,
- which are only activated in developer builds: -Dformat, -Dwidth,
- -Dheight, -Dxstart, -Dystart, -Dmerge
-
-
Fixed window resize bug in the X11 port
-
-
Added "-nosound" command line option to the DOS port to disable audio
-
-
DOS port supports a "-vsync" option to synchronize emulation with the
- video blank of the video card
-
-
Changed VGA code in the DOS port to use a 60Hz 320x200 and a 60Hz
- 320x240 graphics mode
-
-
DOS port has been updated to run better under Windows NT, 2000, and XP.
- There are still issues with the sound, however, it is usable.
-
-
DOS port is using a new Sound Blaster driver created by Matt Conte which
- supports auto-detection of sound cards.
-
-
DOS port supports a STELLA_HOME environment variable that defines
- the location of config files.
-
-
In the DOS port the stella.pro file is searched for first in the
- current working director and then in the $STELLA_HOME directory
-
-
In the DOS port the ROM image is searched for first using the
- specified path, then in $STELLA_HOME/ROMS, and finally in $STELLA_HOME
-
-
-
-
April 28, 2002
-Stella release 1.2.1 for DOS is now available for download. This release
-fixes the following:
-
-
The control keys are no longer confused for the pause key
-
-
Bug in the pause key feature which caused the emulator to lockup
- on some systems has been fixed
-
-
-
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:
-
-
Improved illegal CPU instruction support. Thrust and Qb will now operate
- correctly.
-
-
Improved emulation of undefined TIA reads. The ball in Video Pinball
- finally bounces off of the paddles!
-
-
More accurate NTSC and PAL palettes. These palettes should be much more
- like the colors displayed on a real TV.
-
-
PAL color loss is now emulated. If a PAL game displays an odd number
- of scanlines then the next frame will be displayed in black & white.
-
-
TIA emulation improved to fix some problems with Pole Position,
- Fatal Run, Dolphin, Decathlon, Robot Tank, and Hole Hunter.
-
-
Support for Pitfall II has been added, however, the enhanced sound
- provided by the DPC chip found in the Pitfall II cartridge isn't
- currently emulated.
-
-
Support added for the Commavid (CV) bankswitching method.
-
-
Support added for the Megaboy cartridge.
-
-
Improved Supercharger emulation including a new BIOS that shows the
- vertical blue progress bars like the real thing.
-
-
Code for the emulation core has been updated to work with newer C++
- compilers compliant with the C++ standard.
-
-
Basic message support added to the TIA emulation. This allows a short
- message to overlay the TIA frame. Currently, it's used when switching
- color modes and difficulty settings.
-
-
The internal data structure for the stella.pro file was changed from
- a resizable array to a binary search tree. This results in quicker
- startup times.
-
-
An SDL port of Stella is available (requires SDL 1.2.0 or greater)
-
-
Added option to not load in the whole stella.pro file when starting
- Stella. This option is enabled on the X11, SDL, and DOS versions. Win32
- version is left alone since it's needed for loading multiple games from
- the UI. Saves on memory usage.
-
-
Added INI file option to the X11 and SDL versions. Options can be
- specified in this file instead of entering them on the commandline. Any
- options entered on the commandline override options in the INI file.
- File is called stellarc. For the X11 and SDL versions, it can be in
- either $HOME (as $HOME/.stellarc) or in /etc (as /etc/stellarc). The
- one in $HOME has higher priority than the one in /etc.
-
-
Added snapshot support to the X11 and SDL versions. Pressing F12 saves
- the current screen in PNG format. Requires PNG library.
-
-
Removed stella.pro file from the binary, resulting in large space
- savings. The stella.pro file is no longer optional. For the X11 and
- SDL versions, it can be in either $HOME (as $HOME/.stella.pro) or in
- /etc (as /etc/stella.pro). The one in $HOME has higher priority than
- the one in /etc. For DOS and Win32 versions, the stella.pro file must
- be in the same directory as the executable.
-
-
Added pause functionality to the core. Implemented in DOS, X11, and
- SDL versions for now.
-
-
-
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.
-
-
Improved throttle routines for faster systems
-
Added PAL color palette and frame rates
-
New game controller status (which controller needed for current cartridge)
-
Settings dialogs
-
Keyboard controls are now user definable
-
Keyboard controls have changed
-
And much more...
-
-
-
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:
-
-
Fixed joystick handling regression
-
Fixed repaint problem on doc page
-
Fixed problem where some machines would report path not found
-
Added force 640x480 video mode
-
Added browse button on config dialog
-
Improved video detection logic
-
Added DisableJoystick options to stella.ini file
-
Rewrote the sound driver code - no more scratchy sound!
-
Added multiple screen shot support - first writes to stella00.bmp
- then stella01.bmp, etc.
-
Added cool round buttons on main screen
-
Added configuration dialog
-
Major code cleanup and performance tuning
-
Internal ROM list should be complete - make sure your roms are in
- the ROMS directory and that each rom has the ".bin" extension
-
Run on Windows 95, Windows 98, Windows NT and Windows 2000
-
-
-
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:
-
-
-Run on Windows 95, Windows 98, Windows NT and Windows 2000
-
-
-Does not take over the .bin extension
-
-
-DirectSound works on all systems
-
-
-Added DirectInput support for keyboard, mouse, and joystick (except on
-NT)
-
-
-Fixed minimize button bug
-
-
-Created virtual list view to speed load time
-
-
-Add screen capture (F12 key) to save current screen to a bmp file
-
-
-Stella icon properly shows on the task list
-
-
-
-March 20, 1999
-Release 1.1.1 of StellaX for Windows is available for downloading:
-
-
-Video works on all systems: Windows 9x, Windows NT and Windows 2000
-
-
-Runs on systems without sound cards
-
-
-Fixed some GDI leaks which would eventually cause a reboot on Win9x machines
-
-
-Made GUI come up faster after a game is finished playing
-
-
-Right player ';' key wasn't working in 1.1
-
-
-Undocumented command line option: -mute (mute all sound)
-
-
-Undocumented command line option: -showfps (show FPS at end of game)
-
-
-
-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:
-
-
-DOS and Linux versions support real Atari 2600 paddles using a special
-PC game port adaptor
-
-
-Linux version uses the new 1.2.x Linux Joystick API
-
-
-Unix versions support the "-display" command line option for specifying
-the display to use
-
-
-Unix versions support the "-owncmap" command line option to install a private
-colormap
-
-
-Greatly improved Supercharger single-load and multi-load game support
-
-
-Improved TIA emulation to support the RESPx multi-sprite trick
-
-
-
-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:
-
-
-Supports Robot Tank and Decathlon
-
-
-Supports Joystick, Keyboard, Booster Grip, and Indy 500 Driving controllers
-
-
-DOS version supports 320x200 and 320x240 graphics modes
-
-
-Preliminary support for Chris Wilkson's Megacart bank-switching scheme
-
-
-Improved graphics emulation (TIA)
-
-
-Improved timer emulation (6532 PIA)
-
-
-Improved CPU emulation (6502)
-
-
-Improved Supercharger support
-
-
-Contains properties for over 540 ROMs
-
-
-Will soon be ported to to pretty much every OS under the sun :-)
-
-
-
-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:
-
-
-Improved graphics emulation (TIA)
-
-
-Improved timer emulation (6532 PIA)
-
-
-Improved CPU emulation (6502)
-
-
-Improved Supercharger support
-
-
-Supports Robot Tank and Decathlon
-
-
-Supports Joystick, Keyboard, Booster Grip, and Indy 500 Driving controllers
-
-
-Contains properties for over 540 ROMs
-
-
-Will soon be ported to to pretty much every OS under the sun :-)
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:
-
-
-Optimizations to improve speed
-
-
-Improved TIA and PIA emulation
-
-
-Improved Supercharger support
-
-
-Support for other controllers (Keypad, etc.)
-
-
-And much more...
-
-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:
-
-
-Optimizations making this the fastest version ever!
-
-
-VCS files combined into a single file
-
-
-ROM image filename independence (name them whatever you like)
-
-
-Improved TIA emulation (Warlords works...)
-
-
-Starpath Supercharger support
-
-
-And much more...
-
-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:
-
-
-Optimizations making this the fastest version of Stella ever!
-
-
-VCS files combined into a single file
-
-
-ROM image filename independence (name them whatever you like)
-
-
-Improved TIA emulation
-
-
-And much more....
-
-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:
-
-
-Faster than Version 0.5 on most games
-
-
-Improved 6532 (PIA) emulation to fix those screen jitters
-
-
-Support for almost all bank-switching methods
-
-
-Improved TIA emulation
-
-
-Better sound support for MS-DOS systems
-
-
-Much smaller executable size
-
-
-And much more....
-
-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:
-
-
-Faster than Version 0.4 on most games
-
-
-Sound support (hopefully)
-
-
-More bank switching methods supported
-
-
-Improved 6532 (PIA) emulation to fix screen jitters (Frogger works)
-
-
-Fixed TIA undefined read accesses (Haunted House works)
-
-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.
-