From 5c1775d45c7b303f837c350b97070cbdc9546dae Mon Sep 17 00:00:00 2001 From: stephena Date: Sat, 28 May 2005 23:57:10 +0000 Subject: [PATCH] Removed 'mergeprops' commandline argument. Added Alt-s key to merge current properties into stella.pro. Together with the Ctrl-s key which saves current properties to a new properties file, there was no longer any need for the mergeprops argument. Major update of the Stella manual, including the further consolidation of the main codebase with the OSX version, as well as snapshots of the integrated GUI. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@453 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- stella/docs/graphics/eventmapping.png | Bin 0 -> 5542 bytes stella/docs/graphics/eventmapping_remap.png | Bin 0 -> 5814 bytes stella/docs/graphics/launcher.png | Bin 0 -> 8506 bytes stella/docs/graphics/launcher_options_rom.png | Bin 0 -> 6835 bytes .../docs/graphics/launcher_options_snap.png | Bin 0 -> 7340 bytes stella/docs/graphics/options_about.png | Bin 0 -> 5706 bytes stella/docs/graphics/options_audio.png | Bin 0 -> 5073 bytes stella/docs/graphics/options_gameinfo.png | Bin 0 -> 5405 bytes stella/docs/graphics/options_help.png | Bin 0 -> 5518 bytes stella/docs/graphics/options_video.png | Bin 0 -> 5581 bytes stella/docs/graphics/rom_browser.png | Bin 0 -> 6102 bytes stella/docs/stella.html | 605 +++++++++--------- stella/src/emucore/EventHandler.cxx | 17 +- stella/src/emucore/Settings.cxx | 6 +- 14 files changed, 326 insertions(+), 302 deletions(-) create mode 100644 stella/docs/graphics/eventmapping.png create mode 100644 stella/docs/graphics/eventmapping_remap.png create mode 100644 stella/docs/graphics/launcher.png create mode 100644 stella/docs/graphics/launcher_options_rom.png create mode 100644 stella/docs/graphics/launcher_options_snap.png create mode 100644 stella/docs/graphics/options_about.png create mode 100644 stella/docs/graphics/options_audio.png create mode 100644 stella/docs/graphics/options_gameinfo.png create mode 100644 stella/docs/graphics/options_help.png create mode 100644 stella/docs/graphics/options_video.png create mode 100644 stella/docs/graphics/rom_browser.png diff --git a/stella/docs/graphics/eventmapping.png b/stella/docs/graphics/eventmapping.png new file mode 100644 index 0000000000000000000000000000000000000000..f9224a03a8135279c6ae0c3476a402129885a34f GIT binary patch literal 5542 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 IpCc~*9~jU{3IG5A literal 0 HcmV?d00001 diff --git a/stella/docs/graphics/launcher.png b/stella/docs/graphics/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7348305c462cedcd34077eeef9f02bf7a96585a3 GIT binary patch literal 8506 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 literal 0 HcmV?d00001 diff --git a/stella/docs/graphics/launcher_options_rom.png b/stella/docs/graphics/launcher_options_rom.png new file mode 100644 index 0000000000000000000000000000000000000000..19b31a0f2c6044394f8a49ea9511d018f047d8db GIT binary patch literal 6835 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 YcH^98eth*CfPU-`9Nu5>lizRu12eNevj6}9 literal 0 HcmV?d00001 diff --git a/stella/docs/graphics/launcher_options_snap.png b/stella/docs/graphics/launcher_options_snap.png new file mode 100644 index 0000000000000000000000000000000000000000..2cfc629392cd763446d7556a261a4200b98f2320 GIT binary patch literal 7340 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 w2yx*eY0;wtrsu$xqZ~|urG`v3p{ literal 0 HcmV?d00001 diff --git a/stella/docs/graphics/options_about.png b/stella/docs/graphics/options_about.png new file mode 100644 index 0000000000000000000000000000000000000000..03c03ea5e950415a43489251519c5ca882814ea1 GIT binary patch literal 5706 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 literal 0 HcmV?d00001 diff --git a/stella/docs/graphics/options_audio.png b/stella/docs/graphics/options_audio.png new file mode 100644 index 0000000000000000000000000000000000000000..5e282f76f36a6bd7d0712b3c5e4237d789220672 GIT binary patch literal 5073 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 N(7U|cs5@{e{{t;bm7f3r literal 0 HcmV?d00001 diff --git a/stella/docs/graphics/options_gameinfo.png b/stella/docs/graphics/options_gameinfo.png new file mode 100644 index 0000000000000000000000000000000000000000..da8e62c3b98e969534c3908b2f49e9060a9b4830 GIT binary patch literal 5405 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 W;BTu7DenO3&+(AkLBfHc)PDg<4!H;b literal 0 HcmV?d00001 diff --git a/stella/docs/graphics/rom_browser.png b/stella/docs/graphics/rom_browser.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac660bce35ea59c84e31ee3acc622afee1519ed GIT binary patch literal 6102 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 xVZb?Y

A multi-platform Atari 2600 VCS emulator

-

Release 1.4.2

+

Release 2.0



User's Guide

@@ -22,9 +22,11 @@
  • Installation
  • Games
  • Starting A Game
  • +
  • Changing Options
  • Settings File
  • Keyboard Layout
  • Event Remapping
  • +
  • Integrated Debugger
  • Game Properties
  • Stelladaptor Support
  • Acknowledgments
  • @@ -33,7 +35,7 @@


    -
    February 1999 - February 2005
    +
    February 1999 - (FIXME)February 2005
    The Stella Team
    Stella Homepage
    @@ -212,38 +214,69 @@ Sega Dreamcast, Unix, and Windows.

    -

    New in Release 1.4.2

    +

    New in Release 2.0

      -
    • 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.
    • +
    • 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 that want to use it).
    • -
    • 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 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).
    • -
    • Added Alt [ and Alt ] keys to dynamically adjust the - sound volume during emulation.
    • +
    • 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 Control 0, Control 1, Control 2, Control 3 - keys to dynamically change which paddle the mouse should emulate.
    • +
    • FIXME - add info about integrated debugger
    • -
    • 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.
    • +
    • Further consolidation and integration of SDL. This should lead to + faster operation and a more consistent look for all ports.
    • -
    • Made sure screen is refreshed before taking a snapshot. This eliminates - the problem with new snapshots containing the text "Snapshot saved".
    • +
    • Added ZIP support. Stella can now open ROM's compressed in zip + format.
    • -
    • 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'.
    • +
    • 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.
    • -
    • For the OSX port; added 'Cmd-R' key to reload the currently loaded ROM.
    • +
    • 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 do either save or merge game properties.
    • + +
    • Removed grabmouse and hidecursor commandline arguments. + Stella will now automatically decide when to use these settings. + You can still use Ctrl/Cmd g to grab/ungrab the mouse.
    • + +
    • Fixed framerate when switching between NTSC and PAL modes. Stella + now uses the correct framerate based on the format of the ROM.
    • + +
    • Fixed some 64-bit issues. Stella now compiles and runs correctly + on AMD64 and PPC64 systems.
    • + +
    • Updated the Stella manual with pictures of the new integrated GUI.

    @@ -283,7 +316,6 @@

  • Supports several "undocumented features" of the TIA graphics chip used by some games
  • TIA emulation supports full collision checking
  • -
  • Linux version of Stella works with the KStella frontend by Stephen Anthony


  • @@ -341,9 +373,8 @@ the following:

      -
    • Visual C++ 7 compiler is required to compile the StellaX GUI frontend
    • Visual C++ 7 or MinGW compiler is required to compile the Stella - executable
    • + source code
    • Pentium class machine required; OpenGL accelerated video card highly recommended
    • SDL version 1.2.8 or greater (or included SDL.dll) required for @@ -361,7 +392,7 @@

      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 see your sound card, +

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

      @@ -398,8 +429,8 @@

      Macintosh

      -

      To install the Mac binary, simply download the StellaOSX1.4.dmg disk - image.  Mount the disk image, then copy the StellaOSX1.4 folder to +

      To install the Mac binary, simply download the DMG disk + image. Mount the disk image, then copy the StellaOSXxxx folder to your hard drive.

      @@ -425,9 +456,8 @@
      • Open the stella-release/src/win32/Stella_Emulator.sln file using Visual C++ 7
      • -
      • Build both Stella.exe (commandline emulator) and StellaX.exe - (GUI frontend)
      • -
      • Copy the Stella.exe, StellaX.exe and stella.pro files +
      • Build the 'Stella' solution
      • +
      • Copy the Stella.exe and stella.pro files to some directory
      @@ -509,18 +539,37 @@

      Once Stella is installed and you have some ROM images you're ready to start - playing. To play a game follow the directions for your operating system.

      + playing.

      -

      Linux/Unix

      +

      Integrated GUI

      -

      The Linux version of Stella uses command line arguments to specify the game - you'd like to play as well as other options. To see the list of available - arguments, simply run stella without any options or filename.

      +

      As of Stella version 2.0, there is an integrated GUI for all ports. This means + that using the commandline is no longer required (but commandline support is still + included for those who want to use it).

      -

      The KDE frontend KStella can - also be used, which provides a graphical, point-and-click interface for changing - most Stella options.

      +

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

      +

      + +

      The ROM and snapshot settings may be changed by clicking the 'Options' + button:

      + +

      + +

      Selecting a new path for ROM or snapshots is done by clicking the 'Path' + button(s):

      +

      + +

      Once a ROM directory has been selected, clicking 'Reload' will update the + ROM listing. You can start emulation by selecting a ROM and pressing 'Enter', + clicking 'Play' or double-clicking a ROM.

      + +

      +

      Command Line

      + +

      Stella can also be used from the commandline (assuming your operating system + has a commandline). When using this mode, the ROM launcher is disabled.

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

      @@ -541,46 +590,31 @@ -
      -video_driver <x11|windib|directx>
      - Use the specified video driver. Windows works best with 'windib', - 'x11' is used for Linux/Unix. +
      -video_driver <windib|directx>
      + Use the specified video driver. Windows works best with 'windib'. + Currently, only Windows makes use of this argument.
      -gl_filter <nearest|linear>
      - Use GL_NEAREST or GL_LINEAR filtering. GL_NEAREST results in a scaled, - pixelated image, while GL_LINEAR introduces blurring. + OpenGL mode only. Use GL_NEAREST or GL_LINEAR filtering. + GL_NEAREST results in a scaled, pixelated image, while + GL_LINEAR introduces blurring.
      -gl_aspect <number>
      - Specify the aspect ratio of the window. Normal TV mode would be 4:3, - so you would specify 1.3333. But since many video modes do not use - square pixels, you may have to try different values. I find 1.6 - gives the most authentic look. + OpenGL mode only. Specify the aspect ratio of the window. Normal + TV mode would be 4:3, so you would specify 1.3333. But since + many video modes do not use square pixels, you may have to try + different values. I find 1.6 or 1.7 gives the most authentic look.
      -gl_fsmax <0|1>
      - Use the current desktop resolution when switching to fullscreen OpenGL - mode (so a video-mode switch can be avoided). If not supported, then - use the maximum possible resolution available. - - - -
      -sound <0|1>
      - Disable or enable sound. - - - -
      -fragsize <number>
      - Specify the sound fragment size to use. Linux/Mac seems to work - with 512, Windows may need 2048. - - - -
      -framerate <number>
      - Display the given number of frames per second. + OpenGL mode only. Use the current desktop resolution when switching + to fullscreen OpenGL mode (so a video-mode switch can be avoided). + If not supported, then use the maximum possible resolution available. @@ -599,14 +633,31 @@ -
      -hidecursor <0|1>
      - Hides the mouse cursor in the game window. +
      -palette <original|standard|z26>
      + Set the palette to either pre-Stella 1.4, Stella 1.4 and above + or the palette used in the z26 emulator. + + + +
      -framerate <number>
      + Display the given number of frames per second. Normally, Stella + will determine framerate based on ROM format. + + + +
      -sound <0|1>
      + Disable or enable sound. + + + +
      -fragsize <number>
      + Specify the sound fragment size to use. Linux/Mac seems to work + with 512, Windows may need 2048.
      -volume <number>
      - Set the volume (0 - 100). Use -1 to completely disable - changing the volume. + Set the volume (0 - 100). @@ -615,20 +666,21 @@ -
      -altpro <props file>
      - Use the given properties file instead of stella.pro. +
      -showinfo <0|1>
      + Shows some game info while Stella is running. -
      -showinfo <0|1>
      - Shows some game info when the program exits. +
      -mergeprops <0|1>
      + Save the current properties to a separate file in the users' home directory, + or merge them into the users' stella.pro file.
      -accurate <0|1>
      - Accurate game timing (uses more CPU). This setting seems to work - better with the Linux 2.4 kernel. Newer kernels, Mac and Windows - should probably not use this. + Linux only, may be removed in future versions. Use this when + running under the Linux 2.4 kernel. Otherwise, this should probably + not be used. @@ -649,204 +701,135 @@ -
      -mergeprops <0|1>
      - Save the current properties to a separate file in the users' home directory, - or merge them into the users' stella.pro file. +
      -listrominfo
      + Prints the contents of the stella.pro file, one ROM per line, + and then exit Stella. + +
      -help
      + Prints a help message describing these options, and then + exit Stella. + -

      -

      Macintosh

      - -

      The Mac version of Stella is a native Cocoa-based application.  - When the application starts, a dialog box will ask you to select the - cartridge file that you want to play.  If you do not want to - select a cartridge, but want to use the applications help or about - boxes, you may cancel out of the dialog box, and you Cmd-O to open a - cartridge file later.
      -

      -

      A cartridge may also be selected by dragging the cartridge file to - the application icon, either to start the application, or once it is - running.
      -

      -

      Most of the options of the Macintosh version are selectable by using - the menus, or the Cmd keys associated with the menu entries.  - Note, most of the non-remappable keys are different for the Mac version - than those listed in Section 7 - Keyboard Layout. -

      -

      The menu choices/Cmd keys for the Mac version are as follows:
      -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FunctionKey
      Open New Cartridge (start new game)Cmd + o
      Restart Current Cartridge (start new game)Cmd + r
      Quit StellaCmd + q
      Pause StellaCmd + p
      Resize window to next larger sizeCmd + =
      Resize window to next smaller sizeCmd + -
      Toggle Speed (Frame Rate) LimiterCmd + l
      Toggle fullscreen/windowed modeCmd + Enter
      Toggle OpenGL filtering modesCmd + f
      Toggle Display PaletteCmd + Shift + p
      Toggle display format between NTSC and PALCmd + Shift + f
      Set Mouse to Emulate Paddle 0Cmd + 0
      Set Mouse to Emulate Paddle 1Cmd + 1
      Set Mouse to Emulate Paddle 2Cmd + 2
      Set Mouse to Emulate Paddle 3Cmd + 3
      Grab mouse/hide cursor (keep mouse in game window)Cmd + g
      Minimize Game WindowCmd + m
      Change Game PreferencesCmd + ,
      Display this file in Help ViewerCmd + ?
      - -

      Developer Keys

      +

      If developer support was included in Stella, the following developer + commandline arguments are also available. Note that in all cases, + the values supplied to the arguments are not case sensitive.

      - - + + - - + + + + + + + - - - - - - - + + - - - - - - - + + - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FunctionKeyArgumentDescription
      Set "Display.YStart" to next larger valueCmd + PageUp
      -pro <props file>
      Use the given properties file instead of stella.pro.
      -type <type>
      Set "Cartridge.Type" property. See the Game Properties section + for valid types.
      Set "Display.YStart" to next smaller valueCmd + PageDown
      Set "Display.XStart" to next larger valueCmd + End
      -ld <A|B>
      Set "Console.LeftDifficulty" property.
      Set "Display.XStart" to next smaller valueCmd + Home
      Set "Display.Width" to next larger valueCmd + Shift + End
      -rd <A|B>
      Set "Console.RightDifficulty" property.
      Set "Display.Width" to next smaller valueCmd + Shift + Home
      Set "Display.Height" to next larger valueCmd + Shift + PageUp
      -tv <Color|BlankAndWhite>
      Set "Console.TelevisionType" property.
      Set "Display.Height" to next smaller valueCmd + Shift + PageDown
      -lc <type>
      Set "Controller.Left" property, where type is one of Booster-Grip, + Driving, Keyboard, Paddles, or Joystick.
      -rc <type>
      Set "Controller.Right" property, where type is one of Booster-Grip, + Driving, Keyboard, Paddles, or Joystick.
      -bc <type>
      Sets both "Controller.Left" and "Controller.Right" properties, where + type is one of Booster-Grip, Driving, Keyboard, Paddles, or Joystick.
      -format <NTSC|PAL>
      Set "Display.Format" property.
      -xstart <number>
      Set "Display.XStart" property (0 - 80).
      -ystart <number>
      Set "Display.YStart" property (0 - 64).
      -width <number>
      Set "Display.Width" property (80 - 160).
      -height <number>
      Set "Display.Height" property (100 - 256).
      -cpu <High|Low>
      Set "Emulation.CPU" property.
      -hmove <Yes|No>
      Set "Emulation.HmoveBlanks" property.
      -

      -

      Windows

      - -

      The Windows version of Stella is either commandline based or can use a GUI. -

        -
      • If using the commandline version (Stella.exe), the options are the same as - for the Linux version (described above). -
      • If using the GUI version (StellaX.exe), the 'Config' page contains some of - the options as listed for the Linux version (described above). The other - options can be selected from within the emulation itself (see - Section 7 - Keyboard Layout).
      • -
      -

      - 6. Settings File

      + 6. Changing Options +
      + +

      As of version 2.0, all settings can be changed within the integrated Options + GUI while Stella is running. The options are documented elsewhere in this manual + and are generally self-explanatory.

      + +

      Video Options dialog:

      + + +

      Audio Options dialog:

      + + +

      Game Information dialog:

      + + +

      Help dialog:

      + + +

      About dialog:

      + + +

      +

      + 7. Settings File


      Stella will remember when you change a setting either at the command line @@ -911,14 +894,14 @@

      - 7. Keyboard Layout

      + 8. Keyboard Layout

      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 - + or buttons on your joystick (see Section 9 - Event Remapping). The tables below show the default settings.

      @@ -927,87 +910,104 @@ - + + - + + + + + + + + - - - - - - + + + + + + + + + + + + + + +
      FunctionKeyKey (Standard)Key (OSX)
      Exit emulator (can't be remapped)Exit emulatorCtrl + qCmd + q
      Exit game mode/enter launcher modeEscape Escape
      Exit submenu in menu mode (can't be remapped)Escape
      Enter/exit menu mode (can't be remapped)Enter/exit options modeTab Tab
      Select Game F1F1
      Reset Game F2F2
      Color TV F3F3
      Black/White TV F4F4
      Left Player Difficulty B F5F5
      Left Player Difficulty A F6F6
      Right Player Difficulty B F7F7
      Right Player Difficulty A F8F8
      Save state to current slot F9F9
      Change current state slot F10F10
      Load state from current slot F11F11
      Save PNG snapshot F12F12
      Pause/resume emulation PausePause(FIXME)
      @@ -1406,47 +1406,56 @@ - + + + + + + + + + +
      FunctionKeyKey (Standard)Key (OSX)
      Set "Display.YStart" to next larger value Alt + PageUpShift-Cmd + PageUp
      Set "Display.YStart" to next smaller value Alt + PageDownShift-Cmd + PageDown
      Set "Display.Height" to next larger value Control + PageUpCmd + PageUp
      Set "Display.Height" to next smaller value Control + PageDownCmd + PageDown
      Set "Display.XStart" to next larger value Alt + EndShift-Cmd + End
      Set "Display.XStart" to next smaller value Alt + HomeShift-Cmd + Home
      Set "Display.Width" to next larger value Control + EndCmd + End
      Set "Display.Width" to next smaller value Control + HomeCmd + Home
      @@ -1455,112 +1464,132 @@ - + + + + + + - + + + - - - - - + + - + + + + + + + + + + + +
      FunctionKeyKey (Standard)Key (OSX)
      Resize window to next larger size Alt + =Shift-Cmd + =
      Resize window to next smaller size Alt + -Shift-Cmd + -
      Toggle fullscreen/windowed mode Alt + EnterShift-Cmd + Enter(FIXME)
      Toggle OpenGL filtering modes Alt + fShift-Cmd + f
      Increase volumeAlt + ]Alt + fShift-Cmd + f
      Decrease volume Alt + [Shift-Cmd + [
      Grab mouse (keep mouse in game window) Control + g
      Hide cursor (hide cursor in game window)Control + hCmd + g
      Toggle display format between NTSC and PAL Control + fCmd + f
      Save (or merge) the current propertiesSave current properties to a new properties file Control + sCmd + s
      Merge current properties into the properties fileAlt + sShift-Cmd + s
      Set mouse to emulate paddle 0 Control + 0Cmd + 0
      Set mouse to emulate paddle 1 Control + 1Cmd + 1
      Set mouse to emulate paddle 2 Control + 2Cmd + 2
      Set mouse to emulate paddle 3 Control + 3Cmd + 3



      - 8. Event Remapping

      + 9. Event Remapping

      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 four - joysticks/gamepads (see Section 7 - Keyboard Layout + joysticks/gamepads (see Section 8 - Keyboard Layout for those event which can/cannot be remapped).

      To remap an event:

      1. Start playing a game (ie, start the emulation).
      2. -
      3. Enter menu mode be pressing Tab.
      4. -
      5. Press Cursor Up/Down to move up/down one line at a time, - or PageUp/PageDown to move up/down 5 lines at a time. The arrows on - the left and right sides of the menu indicate which item is currently - selected.
      6. -
      7. Select Event Remapping and press Enter.
      8. -
      9. Move up/down to select the event you want to remap and press Enter - to change the mapping, or Escape to go to the parent menu.
      10. -
      11. Triangle brackets will appear around the event to be remapped. At this - point you can press any keyboard key or gamepad button to set that key/button - to this event. Or you can press Escape to erase the mapping for this - event.
      12. -
      13. Return to step 4 to remap another event, press Escape to move to the - parent menu, or press Tab again to exit menu mode.
      14. +
      15. Enter options mode be pressing Tab.
      16. +
      17. Click the 'Event Mapping' button.
      18. +
      19. Select event you want to remap and click the 'Map' button.
      20. +
      21. Press a key or a joystick button, and that key/button will be bound + to the selected event.
      22. +
      23. Erase a mapping by clicking 'Erase', or cancel a remap in progress + by clicking 'Cancel'.
      24. +
      25. Reset default mappings by clicking 'Defaults'.
      26. +
      27. Change mouse/paddle emulation in the 'Mouse is paddle' dropdown box.
      +

      The following screenshots illustrate the event remapping process:

      + + +


      - 9. Game Properties

      + 10. Integrated Debugger +
      +FIXME - add info and snapshots for debugger + +


      +

      + 11. Game Properties


      Stella uses game properties to specify the "best" emulator settings for a @@ -1758,7 +1787,7 @@

      - 10. Stelladaptor Support

      + 12. Stelladaptor Support

      Stella supports real Atari 2600 joysticks, paddles and driving controllers @@ -1785,7 +1814,7 @@

      - 11. Acknowledgments

      + 13. Acknowledgments

      Bradford W. Mott started developing Stella during the fall of 1995 and since @@ -2016,7 +2045,7 @@

      - 12. License and Disclaimer

      + 14. License and Disclaimer

      diff --git a/stella/src/emucore/EventHandler.cxx b/stella/src/emucore/EventHandler.cxx index 961de7f0f..b4056e424 100644 --- a/stella/src/emucore/EventHandler.cxx +++ b/stella/src/emucore/EventHandler.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: EventHandler.cxx,v 1.66 2005-05-28 22:10:43 markgrebe Exp $ +// $Id: EventHandler.cxx,v 1.67 2005-05-28 23:57:10 stephena Exp $ //============================================================================ #include @@ -564,6 +564,9 @@ void EventHandler::handleKeyEvent(SDLKey key, SDLMod mod, uInt8 state) myOSystem->console().enableBits(true); break; #endif + case SDLK_s: // Alt-s merges properties into stella.pro + myOSystem->console().saveProperties(myOSystem->propertiesOutputFilename(), true); + break; } } #ifndef MAC_OSX @@ -620,15 +623,9 @@ void EventHandler::handleKeyEvent(SDLKey key, SDLMod mod, uInt8 state) break; #endif case SDLK_s: // Ctrl-s saves properties to a file - // Attempt to merge with propertiesSet - if(myOSystem->settings().getBool("mergeprops")) - myOSystem->console().saveProperties(myOSystem->propertiesOutputFilename(), true); - else // Save to file in base directory - { - string newPropertiesFile = myOSystem->baseDir() + BSPF_PATH_SEPARATOR + - myOSystem->console().properties().get("Cartridge.Name") + ".pro"; - myOSystem->console().saveProperties(newPropertiesFile); - } + string newPropertiesFile = myOSystem->baseDir() + BSPF_PATH_SEPARATOR + + myOSystem->console().properties().get("Cartridge.Name") + ".pro"; + myOSystem->console().saveProperties(newPropertiesFile); break; } } diff --git a/stella/src/emucore/Settings.cxx b/stella/src/emucore/Settings.cxx index 7a99149e0..80663bfbc 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.46 2005-05-26 18:56:58 stephena Exp $ +// $Id: Settings.cxx,v 1.47 2005-05-28 23:57:10 stephena Exp $ //============================================================================ #include @@ -59,7 +59,6 @@ Settings::Settings(OSystem* osystem) set("paddle", "0"); set("showinfo", "false"); - set("mergeprops", "false"); set("ssdir", ""); set("ssname", "romname"); @@ -245,6 +244,7 @@ void Settings::usage() << " -palette \n" + << " -framerate Display the given number of frames per second\n" #ifdef SOUND_SUPPORT << " -sound <1|0> Enable sound generation\n" << " -fragsize The size of sound fragments (must be a power of two)\n" @@ -252,8 +252,6 @@ void Settings::usage() #endif << " -paddle <0|1|2|3> Indicates which paddle the mouse should emulate\n" << " -showinfo <1|0> Shows some game info\n" - << " -mergeprops <1|0> Merge changed properties into properties file,\n" - << " or save into a separate file\n" #ifdef UNIX << " -accurate <1|0> Accurate game timing (uses more CPU)\n" #endif