diff --git a/.gitignore b/.gitignore index e1dce7f74..5483b69cd 100644 --- a/.gitignore +++ b/.gitignore @@ -11,11 +11,12 @@ out out.pgo out.pgen stella -stella-pgo -stella-pgo-generate +stella-pgo +stella-pgo-generate *.diff project.xcworkspace/ xcuserdata/ +.DS_Store build/ src/macosx/M6502.ins *.dSYM @@ -33,4 +34,7 @@ src/**/*.vspx src/**/**.pdb Stella.xcscheme src/tools/fonts/* - +*.sym +a.out +*.json +*.sqlite3 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 164c78f75..70402c5d9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ .core-defs: variables: JNI_PATH: src/libretro + MAKEFILE_PATH: src/libretro CORENAME: stella include: @@ -23,46 +24,37 @@ stages: #Desktop libretro-build-linux-x64: extends: - - .core-defs - .libretro-linux-x64-make-default - variables: - MAKEFILE_PATH: src/libretro - MAKEFILE: Makefile + - .core-defs libretro-build-windows-x64: extends: - - .core-defs - .libretro-windows-x64-mingw-make-default - variables: - MAKEFILE_PATH: src/libretro - MAKEFILE: Makefile + - .core-defs # Android android-armeabi-v7a: extends: - - .core-defs - .libretro-android-jni-armeabi-v7a + - .core-defs android-arm64-v8a: extends: - - .core-defs - .libretro-android-jni-arm64-v8a + - .core-defs android-x86_64: extends: - - .core-defs - .libretro-android-jni-x86_64 + - .core-defs android-x86: extends: - - .core-defs - .libretro-android-jni-x86 + - .core-defs # Static libretro-build-libnx-aarch64: extends: - - .core-defs - .libretro-libnx-static-retroarch-master - variables: - MAKEFILE_PATH: src/libretro - MAKEFILE: Makefile + - .core-defs diff --git a/Changes.txt b/Changes.txt index 6140d6f59..2f733a6e3 100644 --- a/Changes.txt +++ b/Changes.txt @@ -14,23 +14,35 @@ 6.4 to 6.5 (December XX, 2020) - * Enhanced cut/copy/paste for text editing. (TODO: PromptWidget) + * Added high scores saving. - * Added undo and redo to text editing. (TODO: PromptWidget) + * Improved text editing functionality (except PromptWidget): + - Enhanced selection and cut/copy/paste from keyboard. + - Added undo and redo support. + - Added mouse support (selection, cut/copy/paste). + - All actions have keyboard shortcuts. - * Added wildcard support to launcher dialog filter. - - * Added option to search subdirectories in launcher. + * Various improvements to the ROM launcher: + - Added wildcard support to the dialog filter + - Added option to search subdirectories * Added static tooltips to some UI items. * Added dynamic tooltips to most debugger items. + * Added sound to Time Machine playback. + + * Extended global hotkeys for input devices & ports settings. + * Increased sample size for CDFJ+. * Fixed autofire bug for trackball controllers. - * Codebase now uses C++17 features. + * Fixed Stelladaptor/2600'daptor devices sometimes not being assigned + correct default mappings. + + * Codebase now uses C++17 features, which means a minimum of gcc7 + or clang5 for Linux/Mac, and Visual Studio 2019 for Windows. -Have fun! diff --git a/configure b/configure index fbc3c1b39..df1d43cfc 100755 --- a/configure +++ b/configure @@ -580,10 +580,6 @@ else darwin*) DEFINES="$DEFINES -DUNIX -DDARWIN" _host_os=darwin - if test "$have_clang" = yes; then - CXXFLAGS="$CXXFLAGS -Wno-documentation-unknown-command -Wno-documentation-pedantic -Wno-poison-system-directories" - CXXFLAGS="$CXXFLAGS -Wno-unknown-warning-option" - fi ;; irix*) DEFINES="$DEFINES -DUNIX" diff --git a/docs/debugger.html b/docs/debugger.html index b1fdac37e..6e9432fc6 100644 --- a/docs/debugger.html +++ b/docs/debugger.html @@ -223,7 +223,7 @@ 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. Control/Cmd + Tab cycles between -tabs from left-to-right, Shift + Control/Cmd + Tab cycles right-to-left. +tabs from left-to-right, Shift-Control/Cmd + Tab cycles right-to-left. Pressing Tab (or Shift + Tab) cycles between widgets in the current tab (except for in the Prompt Tab, where 'tab' is used for something else).

@@ -339,7 +339,7 @@ previous rewind operation. The rewind buffer is 100 levels deep by default, the size can be configured e.g. in the Developer Settings - Time Machine dialog.

-

The other operations are Step, Trace, Scan+1, Frame+1 and Run.

+

The other operations are Step, Trace, Scan +1, Frame +1 and Run.

You can also use the buttons from anywhere in the GUI via hotkeys.

@@ -349,48 +349,48 @@ size can be configured e.g. in the Function - Control-s + Control + S Step - Control-t + Control + T Trace - Control-L - Scan+1 + Control + L + Scan +1 - Control-f - Frame+1 + Control + F + Frame +1 - Alt-Left arrow + Alt + Left arrow Rewind 1 - Shift-Alt-Left arrow + Shift-Alt + Left arrow Rewind 10 - Alt-Down arrow + Alt + Down arrow Rewind all - Alt-Right arrow + Alt + Right arrow Unwind 1 - Shift-Alt-Right arrow + Shift-Alt + Right arrow Unwind 10 - Alt-Up arrow + Alt + Up arrow Unwind all Backquote (`) - Run + Run, exits debugger

@@ -433,18 +433,18 @@ Bash-style commands are also supported:

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

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

@@ -989,12 +989,12 @@ clearsavestateifs - Clear all savestate points runto - Run until string xx in disassembly runtopc - Run until PC is set to value xx s - Set Stack Pointer to value xx - save - Save breaks, watches, traps and functions to file xx - saveaccess - Save access counters to CSV file + save - Save breaks, watches, traps and functions to file xx (use ? for file dialog) + saveaccess - Save access counters to CSV file (use ? for file dialog) saveconfig - Save DiStella config file (with default name) - savedis - Save DiStella disassembly (with default name) - saverom - Save (possibly patched) ROM (with default name) - saveses - Save console session (with default name) + savedis - Save DiStella disassembly (use ? for file dialog) + saverom - Save (possibly patched) ROM (use ? for file dialog) + saveses - Save console session (use ? for file dialog) savesnap - Save current TIA image to PNG file saveallstates - Save all emulator states savestate - Save emulator state xx (valid args 0-9) diff --git a/docs/graphics/Stella_icon.png b/docs/graphics/Stella_icon.png new file mode 100644 index 000000000..89a0938d4 Binary files /dev/null and b/docs/graphics/Stella_icon.png differ diff --git a/docs/graphics/highscores.png b/docs/graphics/highscores.png new file mode 100644 index 000000000..edeb5512a Binary files /dev/null and b/docs/graphics/highscores.png differ diff --git a/docs/graphics/options_gameinfo_cartridge.png b/docs/graphics/options_gameinfo_cartridge.png index b90761623..da6f4fdc4 100644 Binary files a/docs/graphics/options_gameinfo_cartridge.png and b/docs/graphics/options_gameinfo_cartridge.png differ diff --git a/docs/graphics/options_gameinfo_console.png b/docs/graphics/options_gameinfo_console.png index e3aee16e5..83d4b04b1 100644 Binary files a/docs/graphics/options_gameinfo_console.png and b/docs/graphics/options_gameinfo_console.png differ diff --git a/docs/graphics/options_gameinfo_controller.png b/docs/graphics/options_gameinfo_controller.png index 2714e5407..6b8740424 100644 Binary files a/docs/graphics/options_gameinfo_controller.png and b/docs/graphics/options_gameinfo_controller.png differ diff --git a/docs/graphics/options_gameinfo_emulation.png b/docs/graphics/options_gameinfo_emulation.png index 55c1e6893..8da3b8c42 100644 Binary files a/docs/graphics/options_gameinfo_emulation.png and b/docs/graphics/options_gameinfo_emulation.png differ diff --git a/docs/graphics/options_gameinfo_highscores.png b/docs/graphics/options_gameinfo_highscores.png new file mode 100644 index 000000000..9a6e7f1d2 Binary files /dev/null and b/docs/graphics/options_gameinfo_highscores.png differ diff --git a/docs/graphics/resources/default_snapshot.png b/docs/graphics/resources/default_snapshot.png new file mode 100644 index 000000000..34e9cc901 Binary files /dev/null and b/docs/graphics/resources/default_snapshot.png differ diff --git a/docs/index.html b/docs/index.html index 369598e23..d6cfdb001 100644 --- a/docs/index.html +++ b/docs/index.html @@ -15,14 +15,17 @@ -
Stella
-

-

A multi-platform Atari 2600 VCS emulator

+
+ Stella +

+ +

A multi-platform Atari 2600 VCS emulator

-

Release 6.4

-

+

Release 6.4

+
-

User's Guide

+

User's Guide

+

Contents

@@ -41,6 +44,7 @@
  • Hotkeys
  • Controller Map
  • Stella's 'Time Machine'
  • +
  • High Scores Saving
  • Advanced Configuration
    @@ -303,6 +307,7 @@ TIA sprites and collisions for each object separately
  • Full system state save/load functionality
  • Automatic save state creation ('Time Machine') which allows moving back and forth in the recorded timeline
  • +
  • High scores saving
  • Cross-platform UI including a built-in ROM launcher frontend
  • Built-in extensive debugger, including static analysis with the Distella disassembler and dynamic analysis at runtime by tracking code/graphics/data sections, and @@ -568,9 +573,10 @@ The path of the first ROM you play automatically defines the default ROM path. You can change it later in the ROM Launcher dialog.

    -

    At this point, you may want to set the locations for snapshots. This is described in more detail in Advanced Configuration - Snapshot Settings. - These settings are optional, and can be left at the defaults if you won't be using - snapshots in the ROM launcher.

    +

    At this point, you may want to set the locations for snapshot images. This + is described in more detail in ROM Launcher. + These settings are optional, and can be left at the defaults if you won't be + using snapshots in the ROM launcher.

    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 @@ -593,7 +599,7 @@ 'listdelay' option; see User Interface Settings to change this setting.

    -

    Command Menu

    +

    Command Menu

    While playing a game, normally one would use the keyboard shortcuts for controlling the 'virtual' switches in Stella (ie, the commands associated with the @@ -638,8 +644,8 @@ Exit emulator - Control + q - Cmd + q + Control + Q + Cmd + Q @@ -649,13 +655,13 @@ - Enter/exit options mode + Enter/exit options mode Tab/Escape Tab/Escape - Enter/exit command mode + Enter/exit command mode Backslash (\) Backslash (\) @@ -765,7 +771,7 @@ Pause/resume emulation Pause - Shift-Cmd + p + Shift-Cmd + P @@ -1371,8 +1377,8 @@ Toggle adapting display refresh rate to game frame rate
    Note: Not available for macOS. - Alt + r - Cmd + r + Alt + R + Cmd + R Decrease overscan in fullscreen mode @@ -1396,8 +1402,8 @@ Toggle aspect ratio correct scaling - Control + c - Control + c + Control + C + Control + C Decrease vertical display size @@ -1411,18 +1417,18 @@ Switch to previous display format (NTSC/PAL/SECAM etc.) - Shift-Control + f - Shift-Control + f + Shift-Control + F + Shift-Control + F Switch to next display format (NTSC/PAL/SECAM etc.) - Control + f - Control + f + Control + F + Control + F Toggle display interpolation - Control + i - Control + i + Control + I + Control + I

    @@ -1441,14 +1447,14 @@ Select previous palette (Standard/z26/User/Custom) - Shift-Control + p - Shift-Control + p + Shift-Control + P + Shift-Control + P Select next palette (Standard/z26/User/Custom) - Control + p - Control + p + Control + P + Control + P @@ -1521,8 +1527,8 @@ Toggle 'phosphor' mode - Alt + p - Cmd + p + Alt + P + Cmd + P Decrease 'phosphor' blend @@ -1555,6 +1561,250 @@ +

    Input Devices & Ports Keys (can be remapped)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FunctionKey (Standard)Key (macOS)
    Decrease joystick deadzoneShift-Control + F1Shift-Control + F1
    Increase joystick deadzoneControl + F1Control + F1
    Decrease analog paddle sensitivityShift-Control + F2Shift-Control + F2
    Increase analog paddle sensitivityControl + F2Control + F2
    Decrease analog paddle dejitter averagingShift-Control + F3Shift-Control + F3
    Increase analog paddle dejitter averagingControl + F3Control + F3
    Decrease analog paddle dejitter reactionShift-Control + F4Shift-Control + F4
    Increase analog paddle dejitter reactionControl + F4Control + F4
    Decrease digital paddle sensitivityShift-Control + F5Shift-Control + F5
    Increase digital paddle sensitivityControl + F5Control + F5
    Decrease autofire rateShift-Control + AShift-Control + A
    Increase autofire rateControl + AControl + A
    Toggle allowing all four directions on joystick
    + to be pressed simultaneously
    Control + F6Control + F6
    Toggle use of modifier key combosControl + F7Control + F7
    Swap Stelladaptor/2600-daptor port orderingControl + 1Control + 1
    Select previous controllers emulated by the mouse +
    (all, analog, none)
    Shift-Control + F8Shift-Control + F8
    Select next controllers emulated by the mouse +
    (all, analog, none)
    Control + F8Control + F8
    Decrease mouse paddle sensitivityShift-Control + F9Shift-Control + F9
    Increase mouse paddle sensitivityControl + F9Control + F9
    Decrease mouse trackball sensitivityShift-Control + F10Shift-Control + F10
    Increase mouse trackball sensitivityControl + F10Control + F10
    Decrease digital and mouse driving controller sensitivityShift-Control + F11Shift-Control + F11
    Increase digital and mouse driving controller sensitivityControl + F11Control + F11
    Select previous mouse cursor visiblity option + (-UI, -Emulation/
    -UI, +Emulation/+UI, -Emulation/+UI, +Emulation)
    Shift-Control + F12Shift-Control + F12
    Select next mouse cursor visiblity option + (-UI, -Emulation/
    -UI, +Emulation/+UI, -Emulation/+UI, +Emulation)
    Control + F12Control + F12
    Toggle grab mouseControl + GControl + G
    Select previous left port controller typeShift-Control + 2Shift-Control + 2
    Select next left port controller typeControl + 2Control + 2
    Select previous right port controller typeShift-Control + 3Shift-Control + 3
    Select next right port controller typeControl + 3Control + 3
    Toggle swap left and right controller portsControl + 4Control + 4
    Toggle swap paddlesControl + 5Control + 5
    Decrease horizontal center of paddles Shift-Control + 6Shift-Control + 6
    Increase horizontal center of paddles Control + 6Control + 6
    Decrease vertical center of paddles Shift-Control + 7Shift-Control + 7
    Increase vertical center of paddles Control + 7Control + 7
    Switch mouse to previous controller emulation mode
    (see Controller Properties)
    Shift-Control + 0Shift-Control + 0
    Switch mouse to next controller emulation modes
    (see Controller Properties)
    Control + 0Control + 0
    Decrease mouse paddle axes rangeShift-Control + 8Shift-Control + 8
    Increase mouse paddle axes rangeControl + 8Control + 8
    + These settings can also be changed using Global Keys
    +
    +

    Developer Keys (can be remapped)

    @@ -1573,38 +1823,38 @@ Toggle TIA Player0 object - Alt + z - Cmd + z + Alt + Z + Cmd + Z Toggle TIA Player1 object - Alt + x - Cmd + x + Alt + X + Cmd + X Toggle TIA Missile0 object - Alt + c - Cmd + c + Alt + C + Cmd + C Toggle TIA Missile1 object - Alt + v - Cmd + v + Alt + V + Cmd + V Toggle TIA Ball object - Alt + b - Cmd + b + Alt + B + Cmd + B Toggle TIA Playfield object - Alt + n - Cmd + n + Alt + N + Cmd + N @@ -1615,38 +1865,38 @@ Toggle TIA Player0 collisions - Shift-Alt + z - Shift-Cmd + z + Shift-Alt + Z + Shift-Cmd + Z Toggle TIA Player1 collisions - Shift-Alt + x - Shift-Cmd + x + Shift-Alt + X + Shift-Cmd + X Toggle TIA Missile0 collisions - Shift-Alt + c - Shift-Cmd + c + Shift-Alt + C + Shift-Cmd + C Toggle TIA Missile1 collisions - Shift-Alt + v - Shift-Cmd + v + Shift-Alt + V + Shift-Cmd + V Toggle TIA Ball collisions - Shift-Alt + b - Shift-Cmd + b + Shift-Alt + B + Shift-Cmd + B Toggle TIA Playfield collisions - Shift-Alt + n - Shift-Cmd + n + Shift-Alt + N + Shift-Cmd + N @@ -1669,8 +1919,8 @@ Toggle TV 'Jitter' effect - Alt + j - Cmd + j + Alt + J + Cmd + J
    @@ -1681,7 +1931,7 @@

    Global Keys (can be remapped)

    These keys allow selecting and changing settings without having to remember the - dedicated keys. They keys are grouped by Audio & Video and Debug settings.

    + dedicated keys. They keys are grouped by 'Audio & Video', 'Input Device & Ports' and 'Debug' settings.

    @@ -1723,7 +1973,7 @@
    • Only available if UI messages are enabled.
    • Currently not available settings are automatically skipped.
    • -
    • If a setting was selected via dedicated key, its value can also be changed with the +
    • If a setting was previously selected via a dedicated key, its value can also be changed with the global keys.

    @@ -1737,93 +1987,66 @@ - - - + + + - - - + + + - - - - - - + - - + + - - + + - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - + + - - + + + + + + + - - - + + - - + + - - + + @@ -1945,11 +2168,6 @@ - - - - - @@ -1957,8 +2175,37 @@ - - + + + +
    Function Key (macOS)
    Load previous game in ROM (multicart ROM, TIA mode)Shift-Control + rShift-Control + rLoad previous game in ROM (multicart ROM)Shift-Control + RShift-Control + R
    Reload current ROM (singlecart ROM, TIA mode)
    - Load next game in ROM (multicart ROM, TIA mode)
    Control + rControl + rReload current ROM (singlecart ROM)
    + Load next game in ROM (multicart ROM)
    Control + RControl + R
    Reload ROM listing (ROM launcher mode)Control + rControl + r
    Emulate 'frying' effect (TIA mode)Emulate 'frying' effect Backspace Backspace
    Decrease emulation speed (disables 'Turbo' mode)Shift-Control + sShift-Control + sShift-Control + SShift-Control + S
    Increase emulation speed (disables 'Turbo' mode)Control + sControl + sControl + SControl + S
    Toggle 'Turbo' mode (maximum emulation speed)Control + tControl + t
    Decrease autofire rateShift-Control + aShift-Control + a
    Increase autofire rateControl + aControl + aControl + TControl + T
    Switch mouse between controller emulation modes
    (see Controller Properties)
    Control + 0Control + 0
    Toggle grab mouseControl + gControl + g
    Swap Stelladaptor/2600-daptor port orderingControl + 1Control + 1
    Save continuous PNG snapshots
    (per interval defined in Snapshot Settings)
    Control-Alt + sControl-Cmd + sControl-Alt + SControl-Cmd + S
    Save continuous PNG snapshots (every frame)Shift-Control-Alt + sShift-Control-Cmd + sShift-Control-Alt + SShift-Control-Cmd + S
    Open the High Scores dialog.InsertInsert
    Toggle 'Time Machine' modeAlt + tCmd + tAlt + TCmd + T
    Enter/Exit the Time Machine dialogShift + t to enter, Shift + t/Escape to exit and continue with emulationShift + t to enter, Shift + t/Escape to exit and continue with emulationShift + T to enter, Shift + T/Escape to exit and continue with emulationShift + T to enter, Shift + T/Escape to exit and continue with emulation
    Playback the Time Machine from current state (without sound, from the TM dialog only)ShiftShiftSpaceSpace
    Start/Stop playback (exist/enters the Time Machine dialog)Control + Tab Control + Tab
    Go to parent directoryBackspaceBackspace
    Toggle windowed/fullscreen mode Alt + Return
    Exit emulatorControl + qCmd + qControl + QCmd + Q
    + +

    Additional Launcher Keys (cannot be remapped)

    + + + + + + + + + + + + + + + + + + + + + + + + +
    FunctionKey (Standard)Key (macOS)
    Go to parent directory (also in other file dialogs)BackspaceBackspace
    Open Power-On options dialogControl + PControl + P
    Open High Scores dialog (if available for selected ROM)Control + HControl + H
    Reload ROM listingControl + RControl + R
    @@ -1993,12 +2240,12 @@ Move cursor to beginning of line Home - Home, Control + a, Command + Left arrow + Home, Control + A, Command + Left arrow Move cursor to end of line End - End, Control + e, Command + Right arrow + End, Control + E, Command + Right arrow Delete character to left of cursor @@ -2007,28 +2254,28 @@ Delete character to right of cursor - Delete, Control + d - Delete, Control + d + Delete, Control + D + Delete, Control + D Delete word to left of cursor - Control + Backspace, Control + w - Option + Backspace, Control + w + Control + Backspace, Control + W + Option + Backspace, Control + W Delete word to right of cursor - Control + Delete, Alt + d + Control + Delete, Alt + D Option + Delete Delete all text to beginning of line - Control + Home, Control + u - Command + Backspace, Control + u + Control + Home, Control + U + Command + Backspace, Control + U Delete all text to end of line - Control + End, Control + k - Control + k + Control + End, Control + K + Control + K Select character to left of cursor @@ -2053,42 +2300,42 @@ Select all text to beginning of line Shift + Home - Shift + Home, Shift-Control + a, Shift-Command + Left arrow + Shift + Home, Shift-Control + A, Shift-Command + Left arrow Select all text to end of line Shift + End - Shift + End, Shift-Control + e, Shift-Command + Right arrow + Shift + End, Shift-Control + E, Shift-Command + Right arrow Select all text - Control + a - Command + a + Control + A + Command + A Cut selected text - Control + x, Shift + Delete - Command + x + Control + X, Shift + Delete + Command + X Copy selected text - Control + c, Control + Insert - Command + c + Control + C, Control + Insert + Command + C Paste at cursor and replace selection - Control + v, Shift + Insert - Command + v + Control + V, Shift + Insert + Command + V Undo last operation - Control + z - Command + z + Control + Z + Command + Z Redo last operation - Control + y, Shift-Control + z - Command + y, Shift-Command + z + Control + Y, Shift-Control + Z + Command + Y, Shift-Command + Z
    @@ -2253,10 +2500,10 @@ Current timeShows the time of the currently selected state, relative to the first one 'Start/Stop' buttonStarts or stops the Time Machine - 'Exit' buttonExits the dialog and continues emulation, starting at current state + 'Exit' buttonExits the dialog and continues emulation from the current state 'Rewind All' buttonNavigates back to the begin of the timeline 'Rewind One' buttonNavigates back by one state - 'Playback' buttonStarts playback, starting at the current state (with sound disabled) + 'Playback' buttonStarts playback from the current state 'Unwind One' buttonNavigates forward by one state 'Unwind All' buttonNavigates forward to the end of the timeline 'Save All' buttonSaves all Time Machine states to disk @@ -2272,6 +2519,64 @@ Developer Options - Time Machine tab.


    +
    +

    + High Scores Saving

    +
    + +

    Stella allows the user to save high scores when the required definitions + for a ROM exist. For a number of popular classic and homebrew games (see + High Scores - supported games) this has + been done already.

    + +

    To save a score, the High Score dialog can be opened by pressing 'Insert' + any time while a game is played. It will provide the current variation and + score and allow the user to add this as a new high score. Of course this + makes most sense when a game is over. Note: In multiplayer games, only the + score of the first player can be saved.

    + +

    High Scores dialog:

    + + + + + + +
         + + + + + + + + + +
    ItemDescription
    Top rowDisplays the current game's name.
    VariationBy default the current game's variation is + selected. By changing the variation, the high scores of other + variations can be reviewed.
    High scores tableThis table displays up to ten high scores + for the current game variation. +
      +
    • Besides 'Rank' and 'Score' an optional special value (e.g. + 'Level', 'Wave' or 'Round') is displayed.
    • +
    • In the 'Name' column, the player's initials are displayed. + These can be entered when a new high score is added to the list.
    • +
    • 'Date' and 'Time' record when the high score was added.
    • +
    • The buttons at the right allow deleting individual high + scores from the list.
    • +
    +
    MD5/PropsDisplay the checksums of the current ROM and the + high score properties defined for it. This can be useful for + comparing and verifying high scores.
    ResetResets all high scores of the currently selected + variation.
    SaveSaves the updated high scores and closes the dialog. +
    CancelCloses the dialog without saving.
    + +
    + +

    For details how to configure high scores definintions for a game see + High Scores Properties.

    +

    +

    @@ -2623,7 +2928,7 @@
    -psense <number>
    Sensitivity for emulation of paddles when using analog paddles. - Valid range of values is from 1 to 30, with larger numbers causing + Valid range of values is from 0 to 30, with larger numbers causing faster movement. @@ -2638,8 +2943,9 @@ -
    -dcsense <number>
    - Sensitivity for emulation of driving controllers when using a mouse. +
    -dsense <number>
    + Sensitivity for emulation of paddles when using a digital device + (i.e. joystick digital axis or button, keyboard key, etc.). Valid range of values is from 1 to 20, with larger numbers causing faster movement. @@ -2657,12 +2963,12 @@
    -modcombo <1|0>
    - Use modifier(Shift/Alt/Control) + x key combos. This is normally enabled, - since the 'Quit' command is tied to 'Control + q'. However, there are times + Use modifier (Shift/Alt/Control/Cmd) + x key combos. This is normally enabled, + since the 'Quit' command is tied to 'Control + Q'. However, there are times when you want to disable them.
    - E.g. a 2-player game is using either the 'f' or 'r' keys for movement, + E.g. a 2-player game is using either the 'F' or 'R' keys for movement, and pressing Control (for Fire) will perform an unwanted action - associated with 'Control + r' or 'Control + f' default keys. + associated with 'Control + R' or 'Control + F' default keys. @@ -2699,11 +3005,10 @@ -
    -dsense <number>
    - Sensitivity for emulation of paddles when using a digital device - (ie, joystick digital axis or button, keyboard key, etc.). - Valid range of values is from 1 to 20, with larger numbers causing - faster movement. +
    -dcsense <number>
    + Sensitivity for emulation of driving controllers when using a mouse + or a digital device. Valid range of values is from 1 to 20, with larger + numbers causing faster movement. @@ -3277,7 +3582,7 @@

    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... button, or in-game by pressing the 'Tab' key.

    Options Menu dialog:

    @@ -3454,7 +3759,7 @@

    User Interface Settings dialog (2 tabs):

    - + - - + + @@ -3641,7 +3949,7 @@ - + @@ -3657,20 +3965,22 @@

    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:

    + the UI Settings - Launcher dialog, as shown below:

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

    + width' and 'Image path...', which are described below.

    ROM Info Viewer

    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 + image 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.

    + for each new release of Stella. In case no snapshot is found, you can + provide a default image named 'default_snapshot.png'. + Note that the snapshots can be any size (e.g. generated by Stella); they + will be resized accordingly.

    The ROM Info Viewer's width can be defined between 0% (off) and 100%. The value is relative to the launcher width. For too small or too large values, @@ -3716,7 +4026,7 @@

    ROM Launcher Context Menu

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

      @@ -3727,30 +4037,35 @@ its functionality, and use ROM properties as defined by the ROM itself. The dialog is as follows (see Advanced Configuration - Game Properties for more information concerning ROM properties):

      -


         @@ -3473,12 +3778,13 @@ - + - + - + +
        

    @@ -3599,7 +3905,7 @@ Clicking 'Combo' will show a dialog similar to the following:

    In this dialog, you can assign various events to the selected combo event. - Note that this simply assigns multiple events to the combo; you still need + Note that this only assigns multiple events to the combo; you still need to map the combo event itself to some action, as described in the 'remap an event' section above.

    @@ -3615,8 +3921,10 @@
    ItemBrief descriptionFor more information,
    see Command Line
    Joystick deadzone sizeDeadzone area for axes on joysticks/gamepads-joydeadzone
    (Analog paddle) SensitivitySensitivity of an analog paddle-psense
    Analog paddle) Dejitter averagingStrength of paddle input averaging, suppresses mouse jitter-dejitter.base
    (Analog paddle) Dejitter reactionStrength of paddle reaction to fast paddle movements, suppresses mouse jitter-dejitter.diff
    (Analog paddle) Dejitter averagingStrength of paddle input averaging, suppresses paddle jitter.
    + Note: The 2600-daptor has built-in dejitter, so there should be no need to use Stella's dejitter. +
    -dejitter.base
    (Analog paddle) Dejitter reactionStrength of paddle reaction to fast paddle movements, suppresses paddle jitter.-dejitter.diff
    Digital paddle sensitivitySensitivity used when emulating a paddle using a digital device-dsense
    Autofire rateAutomatic trigger rate of the fire buttons in Hz-autofirerate
    Allow all 4 directions ...Allow all 4 joystick directions to be pressed simultaneously-joyallow4
    Use mouse as ...Allow the mouse to emulate various controllers-usemouse
    (Sensitivity) PaddleSensitivity used when emulating a paddle using a mouse-msense
    (Sensitivity) TrackballSensitivity used when emulating a trackball device using a mouse-tsense
    (Sensitivity) Driving controllerSensitivity used when emulating a driving controller device using a mouse-dcsense
    (Sensitivity) Driving controllerSensitivity used when emulating a driving controller device using a mouse or a digital device-dcsense
    Mouse cursor visibilityShow/hide cursor depending on current state-cursor
    Grab mouse ...Keep mouse in window in emulation mode
    (only when used as controller)
    Note: The sensitivity may greatly vary when the mouse is not grabbed.
    -grabmouse
    - - - - - -
         - - - - - - - - - - - -
    ItemFor more information,
    see Commandline
    Bankswitch type-bs
    TV type-tv
    Left difficulty-ld
    Right difficulty-rd
    Startup mode-debug
    Left joy items-holdjoy0
    Right joy items-holdjoy1
    Console: Select-holdselect
    Console: Reset-holdreset
    -

    -
    + + + + + + +
         + + + + + + + + + + + +
    ItemFor more information,
    see Commandline
    Bankswitch type-bs
    TV type-tv
    Left difficulty-ld
    Right difficulty-rd
    Startup mode-debug
    Left joy items-holdjoy0
    Right joy items-holdjoy1
    Console: Select-holdselect
    Console: Reset-holdreset
    +

    +
    +

    This dialog can also be opened by pressing 'Control + P'.

    +

  • +
  • High scores: This option displays the + High Scores dialog for the selected ROM. Only available if high score + properties have been setup for the ROM. Also available via 'Control + H' keys combo.

  • Reload listing: Selecting this performs a reload of the - current listing. It is an alternative to pressing the 'Control + r' + current listing. It is an alternative to pressing the 'Control + R' key combo.

  • @@ -4060,7 +4375,7 @@