diff --git a/stella/docs/debugger.html b/stella/docs/debugger.html
index dfc58c262..c3cacc42a 100644
--- a/stella/docs/debugger.html
+++ b/stella/docs/debugger.html
@@ -83,7 +83,6 @@ feature that no other 2600 debugger has; it's completely cross-platform.<
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.
- Some way to control joystick/etc. input from within the debugger.
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).
@@ -104,12 +103,18 @@ feature that no other 2600 debugger has; it's completely cross-platform.<
& 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.
-For space reasons, the Prompt, TIA, and Audio displays are split into
-3 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 Ctrl-Tab cycles between tabs
-from left to right, and Shift-Ctrl-Tab cycles from right to left.
-Pressing Tab cycles between widgets in the current tab.
+
+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' used for something else).
You can also enter the debugger at emulator startup by giving a breakpoint on the command line:
@@ -144,7 +149,9 @@ 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.
-Prompt tab
+
+
+(A) Prompt tab
This is a command-line interface, similar to the DOS DEBUG command
or Supermon for the C=64.
@@ -158,61 +165,17 @@ scroll with the mouse. Copy and paste is not (yet?) supported.
be abbreviated: instead of "clearbreaks", you can type "clear" or
even just "cl". However, "c" by itself is the Toggle Carry command.
-Bash-style tab completion is supported for commands and labels (see below)
+Bash-style tab completion is supported for commands and labels (see below).
+Other Bash-style commands are also supported, as follows:
+
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 by the time we release Stella 2.0. 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).
-
-
+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
@@ -641,15 +604,14 @@ can also get rid of all traps at once with the "cleartraps" command.
Commands marked with a + are partially implemented.
-Most commands can be abbreviated just by typing a partial command:
-"st" for "step", or "f" for "frame". Where there are conflicts, generally
-the shortest name is chosen (so "tra" is "trap", not "trapread"). When
-in doubt, press TAB.
-TIA Tab
+
+
+(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
@@ -677,141 +639,232 @@ Strobe button.
drawn in the current color. Changing a color register will change the
color of this rectangle.
-Audio Tab
+
+
+
+(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.
+
+
+
+
+
(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.
-CPU Widget
-This shows the current CPU state. All the registers and flags are
-displayed, and can be changed by double-clicking on them. Flags are
-toggled on double-click.
+
+
+(E) TIA Display
-The 0, Inv, Neg, ++, --, <<, and >> buttons affect the
-currently-selected register (see RAM Widget below).
+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 or the prompt "scan" command 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 :)
-RAM Widget
+
+
+(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.
+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).
-Nearby there are also some buttons to do various things to the
-currently-selected memory location from the RAM widget or
-CPU register from the CPU widget (whichever was most recently
-selected). The buttons are:
-
- 0 - Set the current location/register to zero.
- Inv - Invert the current location/register (toggle all its bits).
- Neg - 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).
-
-
-This widget also lets you search memory for values such as lives or remaining
+
+
+
(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 'Search' and enter a byte value into the search editbox (0-255).
+

+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
-when the input is empty, all RAM locations are searched.
+and the input is empty, all RAM locations are highlighted.
-The 'Compare' button is used to compare the given value using all
+
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:
-
+decreased by 1:
- - Click 'Search' with empty input. All 128 address/values are highlighted
+ - 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 'Compare' and and enter a '-1' for input.
+
- 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
- - The 'Reset' button restarts the whole procedure (ie, clear the highlighted
- addresses and allow another search
+ - Click 'Rset' when you're finished
-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.
-
-You can use the "Scan+1" button or the prompt "scan" command to watch
-the TIA draw the frame one scanline at a time.
-
-To the right of the video display, there are indicators for:
-
-- Frame - The current frame number, since this ROM was loaded or reset.
-- 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)
-- F. Cycle - The number of CPU cycles that have been executed this frame, since
-VSYNC was cleared at scanline 0.
-- S. Cycle - The number of CPU cycles that have been executed since the beginning
-of the current scanline.
-- VSYNC and VBLANK indicators
-- 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).
-
-
-Below the indicators is the TIA Zoom area. This allows you to enlarge
-part of the TIA display, so you can see fine details. To set the zoom
-region, right-click on the TIA display and choose "Set Zoom Position". To
-set the magnification level, right-click on the TIA Zoom area and choose
-2x, 4x, or 8x from the pop-up menu.
-
-Below the TIA Zoom, there is a status line that shows the reason the
-debugger was entered (if a breakpoint/trap was hit). This isn't really
-part of the TIA display; see "Breakpoints" below for details.
-
-
-
-ROM Widget
+
+
+(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
-double-clicking in this area. When a breakpoint is set, there will be a
-red square in this area. These are the same breakpoints as used
+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).
@@ -844,24 +897,27 @@ scroll to the current PC location.
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 will be a short pause while
+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. This won't work if the ROM only has one bank, of course.
+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.
-If you patch your ROM, you'll want a way to save it. To do this,
-right-click on any line of the disassembly and choose "Save ROM" from the
-pop-up menu. You'll be asked for a 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.
-
-
There's one more thing you can do from the ROM Widget: you can set
-the Program Counter to the address of any disassembly line. Right-click
-on the line you want and choose "Set PC" from the pop-up menu.
+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
@@ -896,20 +952,26 @@ 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,
-Frame+1, Scan+1 and Exit.
+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, Frame+1 and Scan+1 buttons from anywhere in
-the GUI via the keyboard, with Alt-S, Alt-T, Alt-F and Alt-L.
+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
@@ -920,7 +982,7 @@ 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
+ 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
@@ -932,7 +994,7 @@ but it helps to know at least a little about 6502 programming.
- 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 and enter "5" for input.
+
- 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
@@ -948,7 +1010,7 @@ but it helps to know at least a little about 6502 programming.
- 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 in RAM widget and enter
+
- 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,
@@ -957,7 +1019,7 @@ but it helps to know at least a little about 6502 programming.
- 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. You should now see lots of lives
+ $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.
diff --git a/stella/docs/graphics/cheat.png b/stella/docs/graphics/cheat.png
index 1e6f6fefb..47b755f70 100644
Binary files a/stella/docs/graphics/cheat.png and b/stella/docs/graphics/cheat.png differ
diff --git a/stella/docs/graphics/debugger_bpstatus.png b/stella/docs/graphics/debugger_bpstatus.png
new file mode 100644
index 000000000..e3bfdd500
Binary files /dev/null and b/stella/docs/graphics/debugger_bpstatus.png differ
diff --git a/stella/docs/graphics/debugger_cpuregs.png b/stella/docs/graphics/debugger_cpuregs.png
new file mode 100644
index 000000000..6b1498f99
Binary files /dev/null and b/stella/docs/graphics/debugger_cpuregs.png differ
diff --git a/stella/docs/graphics/debugger_dataops.png b/stella/docs/graphics/debugger_dataops.png
new file mode 100644
index 000000000..e1e565dd8
Binary files /dev/null and b/stella/docs/graphics/debugger_dataops.png differ
diff --git a/stella/docs/graphics/debugger_globalbuttons.png b/stella/docs/graphics/debugger_globalbuttons.png
new file mode 100644
index 000000000..53e594866
Binary files /dev/null and b/stella/docs/graphics/debugger_globalbuttons.png differ
diff --git a/stella/docs/graphics/debugger_iotab.png b/stella/docs/graphics/debugger_iotab.png
new file mode 100644
index 000000000..f5a30c7a1
Binary files /dev/null and b/stella/docs/graphics/debugger_iotab.png differ
diff --git a/stella/docs/graphics/debugger_main.png b/stella/docs/graphics/debugger_main.png
new file mode 100644
index 000000000..23e870ee9
Binary files /dev/null and b/stella/docs/graphics/debugger_main.png differ
diff --git a/stella/docs/graphics/debugger_ram.png b/stella/docs/graphics/debugger_ram.png
new file mode 100644
index 000000000..5f3d66341
Binary files /dev/null and b/stella/docs/graphics/debugger_ram.png differ
diff --git a/stella/docs/graphics/debugger_ramsearch.png b/stella/docs/graphics/debugger_ramsearch.png
new file mode 100644
index 000000000..1ce8a2821
Binary files /dev/null and b/stella/docs/graphics/debugger_ramsearch.png differ
diff --git a/stella/docs/graphics/debugger_rom.png b/stella/docs/graphics/debugger_rom.png
new file mode 100644
index 000000000..ebe175b79
Binary files /dev/null and b/stella/docs/graphics/debugger_rom.png differ
diff --git a/stella/docs/graphics/debugger_romcmenu.png b/stella/docs/graphics/debugger_romcmenu.png
new file mode 100644
index 000000000..e5c23afd9
Binary files /dev/null and b/stella/docs/graphics/debugger_romcmenu.png differ
diff --git a/stella/docs/graphics/debugger_tiainfo.png b/stella/docs/graphics/debugger_tiainfo.png
new file mode 100644
index 000000000..a6a27c7ea
Binary files /dev/null and b/stella/docs/graphics/debugger_tiainfo.png differ
diff --git a/stella/docs/graphics/debugger_tiaoutcmenu.png b/stella/docs/graphics/debugger_tiaoutcmenu.png
new file mode 100644
index 000000000..e496f99c2
Binary files /dev/null and b/stella/docs/graphics/debugger_tiaoutcmenu.png differ
diff --git a/stella/docs/graphics/debugger_tiatab.png b/stella/docs/graphics/debugger_tiatab.png
new file mode 100644
index 000000000..c2d45bda6
Binary files /dev/null and b/stella/docs/graphics/debugger_tiatab.png differ
diff --git a/stella/docs/graphics/debugger_tiazoomcmenu.png b/stella/docs/graphics/debugger_tiazoomcmenu.png
new file mode 100644
index 000000000..86cb8a9ce
Binary files /dev/null and b/stella/docs/graphics/debugger_tiazoomcmenu.png differ
diff --git a/stella/docs/graphics/options_about.png b/stella/docs/graphics/options_about.png
deleted file mode 100644
index 481d3721a..000000000
Binary files a/stella/docs/graphics/options_about.png and /dev/null differ
diff --git a/stella/docs/graphics/options_audio.png b/stella/docs/graphics/options_audio.png
index d8cf87096..aa902e052 100644
Binary files a/stella/docs/graphics/options_audio.png and b/stella/docs/graphics/options_audio.png differ
diff --git a/stella/docs/graphics/options_debugger.png b/stella/docs/graphics/options_debugger.png
new file mode 100644
index 000000000..0bdbdba54
Binary files /dev/null and b/stella/docs/graphics/options_debugger.png differ
diff --git a/stella/docs/graphics/options_gameinfo.png b/stella/docs/graphics/options_gameinfo.png
index d5282530c..ce393338a 100644
Binary files a/stella/docs/graphics/options_gameinfo.png and b/stella/docs/graphics/options_gameinfo.png differ
diff --git a/stella/docs/graphics/options_help.png b/stella/docs/graphics/options_help.png
deleted file mode 100644
index a815e8a44..000000000
Binary files a/stella/docs/graphics/options_help.png and /dev/null differ
diff --git a/stella/docs/graphics/options_input.png b/stella/docs/graphics/options_input.png
index 91d1e2080..c3320f7a8 100644
Binary files a/stella/docs/graphics/options_input.png and b/stella/docs/graphics/options_input.png differ
diff --git a/stella/docs/graphics/options_misc.png b/stella/docs/graphics/options_misc.png
new file mode 100644
index 000000000..e2a1ac98c
Binary files /dev/null and b/stella/docs/graphics/options_misc.png differ
diff --git a/stella/docs/graphics/options_romaudit.png b/stella/docs/graphics/options_romaudit.png
deleted file mode 100644
index 298ac1530..000000000
Binary files a/stella/docs/graphics/options_romaudit.png and /dev/null differ
diff --git a/stella/docs/graphics/options_ui.png b/stella/docs/graphics/options_ui.png
index 58b915f40..ec853fa83 100644
Binary files a/stella/docs/graphics/options_ui.png and b/stella/docs/graphics/options_ui.png differ
diff --git a/stella/docs/graphics/romaudit.png b/stella/docs/graphics/romaudit.png
index 699490564..7aa89eaaa 100644
Binary files a/stella/docs/graphics/romaudit.png and b/stella/docs/graphics/romaudit.png differ
diff --git a/stella/docs/index.html b/stella/docs/index.html
index 75babd669..f6f8560fd 100644
--- a/stella/docs/index.html
+++ b/stella/docs/index.html
@@ -475,10 +475,10 @@
gzipped tar files
- If compiling the Stella executable using MinGW, use the same commands
as specified under Linux/UNIX - Compressed tarball
- - If compiling using Visual C++ 7:
+ - If compiling using Visual C++ 2008:
- Open the stella-release/src/win32/Stella.sln
- file using Visual C++ 7
+ file using Visual C++ 2008
- Build the 'Stella' solution
- Copy the Stella.exe file somewhere on your system
@@ -577,13 +577,14 @@
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:
+
- Config Files dialog: 
|
+  |
|
- Item | Description | Commandline |
+ 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 |
@@ -647,54 +648,50 @@
OpenGL mode only. Specify the amount (as a percentage) to scale the
image width. Since many video modes do not use square pixels, you can
reduce width until the pixels appear square. Allowable values are
- 50 - 100; I find 85 - 90 gives the most authentic look. |
+ 80 - 100; I find 85 - 90 gives the most authentic look.
- -gl_fsmax <0|1> |
+ -gl_fsmax <1|0> |
OpenGL mode only. Stretch TIA image while in fullscreen mode. |
- -gl_vsync <0|1> |
+ -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 <0|1> |
+ -gl_texrect <1|0> |
OpenGL mode only. Enable GL_TEXTURE_RECTANGLE extension. This causes
problems for some people using ATI video cards. |
- -zoom_tia <scaler> |
- Use the specified zoom level while in TIA/emulation mode. |
+ -tia_filter <filter> |
+ Use the specified filter while in TIA/emulation mode. Currently,
+ this can be zoomZx, where Z={2..10}. |
- -zoom_ui <scaler> |
- Use the specified scaler while in non-emulation mode (currently, the ROM
- launcher and debugger). |
-
-
-
- -fullscreen <0|1> |
+ -fullscreen <1|0> |
Play the game in fullscreen mode. |
- -fullres <WxH> |
- Use this resolution in fullscreen mode. |
+ -fullres <auto|WxH> |
+ Use the given resolution in fullscreen mode. If 'auto', let Stella decide
+ which resolution to use. |
- -center <0|1> |
+ -center <1|0> |
Centers game window (if possible). |
- -grabmouse <0|1> |
+ -grabmouse <1|0> |
Keeps the mouse in the game window. |
@@ -716,7 +713,7 @@
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'.
+ graphical 'tearing' in software mode.
@@ -742,13 +739,15 @@
-freq <number> |
Set sound sample output frequency (0 - 48000).
- Default is 31400. |
+ Default is 31400. Do not change unless you experience sound
+ issues.
-tiafreq <number> |
Set sound sample generation frequency (0 - 48000).
- Default is 31400. |
+ Default is 31400. Do not change unless you experience sound
+ issues.
@@ -758,7 +757,8 @@
-clipvol <1|0> |
- Enable volume clipping (eliminates popping). |
+ Enable volume clipping (eliminates popping). Do not change
+ unless you experience sound issues. |
@@ -768,7 +768,7 @@
-showinfo <0|1> |
- Shows some game info while Stella is running. |
+ Shows some game info on the commandline while Stella is running. |
@@ -781,7 +781,7 @@
-pspeed <number> |
- Speed of digital emulation for paddles (1-15). |
+ Speed for digital emulation of paddles (1-15). |
@@ -794,12 +794,6 @@
Stelladaptor 2 emulates specified joystick port. |
-
- -romviewer <0|1|2> |
- Hide ROM info viewer in ROM launcher mode (0), or use the
- given zoom level (1 or 2). |
-
-
-autoslot <1|0> |
Automatically switch to the next available save state slot after
@@ -820,13 +814,7 @@
|
-ss1x <0|1> |
Ignore any scaling applied to the TIA image, and save
- snapshot in unscaled mode. |
-
-
-
- -listrominfo |
- Prints relevant contents of the Stella ROM database, one ROM per line,
- and then exit Stella. This can be used for external frontends. |
+ snapshot in unscaled (1x) mode.
@@ -835,6 +823,12 @@
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. |
@@ -850,7 +844,13 @@
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 extensions. |
+ 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). |
@@ -861,8 +861,9 @@
-listdelay <delay> |
- Set the amount of time to wait between successive keypresses in
- list widgets (value can range from 300-1000). |
+ Set the amount of time to wait between treating successive
+ keypresses as a single word in list widgets (value can range
+ from 300-1000). |
@@ -870,6 +871,11 @@
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. |
@@ -1059,61 +1065,129 @@
Options Menu dialog:
-
- Video Settings dialog:
-
-
-
- Audio Settings dialog:
-
-
-
- Input Settings dialog:
-
- This dialog is described in further detail in Section 8 -
- Event Remapping.
-
-
- UI Settings dialog:
-
- All UI related items can be changed here. Such items include the width and
- height of the ROM launcher and debugger windows, etc. Note that most of the items
- here require Stella to be restarted to take effect. Specific information about
- the ROM Info functionality is described in further detail in Section 9 -
- ROM Launcher.
-
-
-
- Audit ROMs dialog:
-
- This dialog is described in further detail in Section 10 -
- ROM Audit Mode.
-
-
- Game Information dialog:
-
- This dialog allows you to change all ROM properties as described in
- Section 16 - Game Properties.
-
-
- Help dialog:
-
-
-
- About 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 | OpenGL width of window | -gl_aspect |
+ 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 |
+ 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 dialog 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.
-
- As of Stella 1.4, most of these events can be remapped to other keys on your keyboard
- or buttons on your joystick (see Section 8 -
+ 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.
@@ -1632,7 +1706,7 @@
- Developer Keys (cannot be remapped)
+ Developer Keys in TIA mode (cannot be remapped)
@@ -1844,10 +1918,10 @@
8. Event Remapping / Input Devices
- This version of Stella has event remapping. Almost every event in the emulator
- 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).
+ 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)
@@ -1859,7 +1933,7 @@
To remap an event:
- - Enter options menu and click the 'Input Settings' button.
+ - 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.
@@ -1913,7 +1987,7 @@
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:
+ UI Settings => Launcher dialog, as shown below:
Most of the options are self-explanatory, except for the 'ROM Info
viewer', which is described below.
@@ -1959,10 +2033,28 @@
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.
+ 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
@@ -1996,7 +2088,7 @@
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
+ 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:
@@ -2032,8 +2124,8 @@
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 emulation is running; Stella will detect the
- change and act accordingly.
+ 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:
@@ -2061,7 +2153,7 @@
Stella supports a real AtariVox device for the speech/SpeakJet portion
of the controller. You will need a real AtariVox device, located
- here,
+ 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
@@ -2125,7 +2217,8 @@
- Developer key-combo shortcuts, used to change TIA state dynamically
- (ie, while the emulation is still running). See Section 7 -
+ (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
@@ -2224,12 +2317,12 @@
-
+
- Stella 2.0 contains support for Bob Colbert's Cheetah cheat codes, as
+ 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.
diff --git a/stella/src/emucore/Settings.cxx b/stella/src/emucore/Settings.cxx
index 558cd2937..45b8deeec 100644
--- a/stella/src/emucore/Settings.cxx
+++ b/stella/src/emucore/Settings.cxx
@@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
-// $Id: Settings.cxx,v 1.156 2009-01-05 22:05:35 stephena Exp $
+// $Id: Settings.cxx,v 1.157 2009-01-13 14:45:34 stephena Exp $
//============================================================================
#include
@@ -227,7 +227,7 @@ void Settings::validate()
setInternal("gl_filter", "nearest");
i = getInt("gl_aspect");
- if(i < 50 || i > 100)
+ if(i < 80 || i > 100)
setInternal("gl_aspect", "100");
#endif
@@ -279,6 +279,7 @@ void Settings::usage()
<< endl
<< "Usage: stella [options ...] romfile" << endl
<< " Run without any options or romfile to use the ROM launcher" << endl
+ << " Consult the manual for more in-depth information" << endl
<< endl
<< "Valid options are:" << endl
<< endl
@@ -319,26 +320,25 @@ void Settings::usage()
<< endl
#endif
<< " -cheat Use the specified cheatcode (see manual for description)\n"
- << " -showinfo <1|0> Shows some game info\n"
+ << " -showinfo <1|0> Shows some game info on commandline\n"
<< " -joydeadzone Sets 'deadzone' area for analog joysticks (0-29)\n"
<< " -pspeed Speed of digital emulated paddle movement (1-15)\n"
<< " -sa1 Stelladaptor 1 emulates specified joystick port\n"
<< " -sa2 Stelladaptor 2 emulates specified joystick port\n"
- << " -romviewer <0|1|2> Show ROM info viewer at given zoom level in ROM launcher (0 for off)\n"
<< " -autoslot <1|0> Automatically switch to next save slot when state saving\n"
<< " -ssdir The directory to save snapshot files to\n"
<< " -sssingle <1|0> Generate single snapshot instead of many\n"
<< " -ss1x <1|0> Generate TIA snapshot in 1x mode (ignore scaling)\n"
- << " -stats <1|0> Overlay console info during emulation\n"
<< endl
- << " -listrominfo Display contents of stella.pro, one line per ROM entry\n"
<< " -rominfo Display detailed information for the given ROM\n"
+ << " -listrominfo Display contents of stella.pro, one line per ROM entry\n"
<< " -launcherres The resolution to use in ROM launcher mode\n"
<< " -launcherfont \n"
<< " -launcherexts Show ROM info viewer at given zoom level in ROM launcher (0 for off)\n"
<< " -uipalette <1|2> Used the specified palette for UI elements\n"
<< " -listdelay Time to wait between keypresses in list widgets (300-1000)\n"
<< " -mwheel Number of lines the mouse wheel will scroll in UI\n"
@@ -346,7 +346,6 @@ void Settings::usage()
<< " -cheatfile Full pathname of cheatfile database\n"
<< " -palettefile Full pathname of user-defined palette file\n"
<< " -propsfile Full pathname of ROM properties file\n"
- << " -tiafloat <1|0> Set unused TIA pins floating on a read/peek\n"
<< " -avoxport The name of the serial port where an AtariVox is connected\n"
<< " -help Show the text you're now reading\n"
#ifdef DEBUGGER_SUPPORT
@@ -360,6 +359,8 @@ void Settings::usage()
<< " -holdreset Start the emulator with the Game Reset switch held down\n"
<< " -holdselect Start the emulator with the Game Select switch held down\n"
<< " -holdbutton0 Start the emulator with the left joystick button held down\n"
+ << " -stats <1|0> Overlay console info during emulation\n"
+ << " -tiafloat <1|0> Set unused TIA pins floating on a read/peek\n"
<< endl
<< " -bs Sets the 'Cartridge.Type' (bankswitch) property\n"
<< " -type Same as using -bs\n"
diff --git a/stella/src/emucore/m6502/src/M6502Hi.cxx b/stella/src/emucore/m6502/src/M6502Hi.cxx
index 1561d52a9..50a9c03a6 100644
--- a/stella/src/emucore/m6502/src/M6502Hi.cxx
+++ b/stella/src/emucore/m6502/src/M6502Hi.cxx
@@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
-// $Id: M6502Hi.cxx,v 1.23 2009-01-01 18:13:38 stephena Exp $
+// $Id: M6502Hi.cxx,v 1.24 2009-01-13 14:45:34 stephena Exp $
//============================================================================
#include "M6502Hi.hxx"
@@ -57,7 +57,7 @@ inline uInt8 M6502High::peek(uInt16 address)
if(myReadTraps != NULL && myReadTraps->isSet(address))
{
myJustHitTrapFlag = true;
- myHitTrapInfo.message = "Read trap: ";
+ myHitTrapInfo.message = "RTrap: ";
myHitTrapInfo.address = address;
}
#endif
@@ -81,7 +81,7 @@ inline void M6502High::poke(uInt16 address, uInt8 value)
if(myWriteTraps != NULL && myWriteTraps->isSet(address))
{
myJustHitTrapFlag = true;
- myHitTrapInfo.message = "Write trap: ";
+ myHitTrapInfo.message = "WTrap: ";
myHitTrapInfo.address = address;
}
#endif
@@ -118,7 +118,7 @@ bool M6502High::execute(uInt32 number)
{
if(myBreakPoints->isSet(PC))
{
- if(myDebugger->start("Breakpoint hit: ", PC))
+ if(myDebugger->start("BP: ", PC))
return true;
}
}
diff --git a/stella/src/emucore/m6502/src/M6502Low.cxx b/stella/src/emucore/m6502/src/M6502Low.cxx
index 8993fda93..86ff132d0 100644
--- a/stella/src/emucore/m6502/src/M6502Low.cxx
+++ b/stella/src/emucore/m6502/src/M6502Low.cxx
@@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
-// $Id: M6502Low.cxx,v 1.16 2009-01-01 18:13:38 stephena Exp $
+// $Id: M6502Low.cxx,v 1.17 2009-01-13 14:45:34 stephena Exp $
//============================================================================
#include "M6502Low.hxx"
@@ -47,7 +47,7 @@ inline uInt8 M6502Low::peek(uInt16 address)
if(myReadTraps != NULL && myReadTraps->isSet(address))
{
myJustHitTrapFlag = true;
- myHitTrapInfo.message = "Read trap: ";
+ myHitTrapInfo.message = "RTrap: ";
myHitTrapInfo.address = address;
}
#endif
@@ -64,7 +64,7 @@ inline void M6502Low::poke(uInt16 address, uInt8 value)
if(myWriteTraps != NULL && myWriteTraps->isSet(address))
{
myJustHitTrapFlag = true;
- myHitTrapInfo.message = "Write trap: ";
+ myHitTrapInfo.message = "WTrap: ";
myHitTrapInfo.address = address;
}
#endif
@@ -101,7 +101,7 @@ bool M6502Low::execute(uInt32 number)
{
if(myBreakPoints->isSet(PC))
{
- if(myDebugger->start("Breakpoint hit: ", PC))
+ if(myDebugger->start("BP: ", PC))
return true;
}
}
diff --git a/stella/src/gui/VideoDialog.cxx b/stella/src/gui/VideoDialog.cxx
index 88fa6e968..0d677b206 100644
--- a/stella/src/gui/VideoDialog.cxx
+++ b/stella/src/gui/VideoDialog.cxx
@@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
-// $Id: VideoDialog.cxx,v 1.61 2009-01-06 23:02:18 stephena Exp $
+// $Id: VideoDialog.cxx,v 1.62 2009-01-13 14:45:34 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@@ -126,7 +126,7 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
myAspectRatioSlider =
new SliderWidget(this, font, xpos, ypos, pwidth, lineHeight,
"GL Aspect: ", lwidth, kAspectRatioChanged);
- myAspectRatioSlider->setMinValue(50); myAspectRatioSlider->setMaxValue(100);
+ myAspectRatioSlider->setMinValue(80); myAspectRatioSlider->setMaxValue(100);
wid.push_back(myAspectRatioSlider);
myAspectRatioLabel =
new StaticTextWidget(this, font, xpos + myAspectRatioSlider->getWidth() + 4,
|