# pod source for stella man page. Convert with: # pod2man --stderr -s6 -cSlackBuilds.org -r5.0.2 -u stella.pod > stella.6 =pod =head1 NAME stella - an Atari 2600 emulator =head1 SYNOPSIS B I I =head1 DESCRIPTION B is a comprehensive emulator of the old Atari 2600 video-game console. It support most Atari 2600 games and many peripherals. If you start Stella and do not specify a ROM image, it will start in 'ROM Launcher' mode. If this is your first time starting Stella, you will be asked to select the default ROM directory to use. This man page only documents the command-line options and default keybindings. The complete documentation is in I and I, usually installed in I or I. =head1 OPTIONS =over 4 =item B<-video> Use the given rendering backend (where applicable); default is the best available mode detected. =item B<-vsync> <1|0> Synchronize screen updates to the vertical blank period. This can result in smoother updates, and eliminate tearing. =item B<-fullscreen> <1|0> Enable fullscreen mode. =item B<-center> <1|0> Centers game window (if possible). =item B<-palette> Set the palette to either normal Stella, the one used in the z26 emulator, or a user-defined palette. =item B<-colorloss> <1|0> Enable/disable the PAL color-loss effect. =item B<-framerate> Display the given number of frames per second. Normally, Stella will determine framerate based on number of scanlines. Setting this to 0 automatically enables auto-frame calculation (ie, framerate based on scanlines). =item B<-timing> Determines type of wait to perform between processing frames. Sleep will release the CPU as much as possible, and is the preferred method on laptops (and other low-powered devices) and when using VSync. Busy will emulate z26 busy-wait behaviour, and use all possible CPU time, but may eliminate graphical 'tearing' in software mode. =item B<-uimessages> <1|0> Enable or disable display of message in the UI. Note that messages indicating serious errors override this setting, and are always shown. =item B<-sound> <1|0> Enable or disable sound generation. =item B<-fragsize> Specify the sound fragment size to use. Linux/Mac seems to work with 512, Windows usually needs 1024. =item B<-freq> Set sound sample output frequency (11025,22050,31400,44100,48000) Default is 31400. Do not change unless you experience sound issues. =item B<-volume> Set the volume (0 - 100). =item B<-tia.zoom> Use the specified zoom level (integer) while in TIA/emulation mode. =item B<-tia.inter> <1|0> Use interpolation for the TIA image (results in blending/smoothing of the image). =item B<-tia.aspectn> =item B<-tia.aspectp> Specify the amount (as a percentage) to scale the TIA image width in NTSC and PAL mode. Since many video modes do not use square pixels, you can reduce width until the pixels appear square. Allowable values are 80 - 120; I find 85 - 90 gives the most authentic look for NTSC, and 105 - 110 for PAL. =item B<-tia.fsfill> <1|0> Stretch TIA image completely while in fullscreen mode (vs. an integral stretch which won't necessarily completely fill the screen). =item B<-tia.dbgcolors> Assigns the colours (R)ed, (O)range, (Y)ellow, (G)reen, (B)lue and (P)urple to each graphical register P0/M0/P1/M1/PF/BL, respectively. Currently, these can be changed around to apply different colours to the respective register. =item B<-tv.phosphor> When to use phosphor mode. =item B<-tv.phosblend> <0 - 100> Set default blend level in phosphor mode. =item B<-tv.filter> <1 - 6> Blargg TV effects, 0 is disabled, next numbers in sequence represent presets for 'Composite', 'S-Video', 'RGB', 'Bad Adjust', and 'Custom' modes. =item B<-tv.scanlines> <0 - 100> Blargg TV effects scanline intensity, where 0 means completely off. =item B<-tv.scaninter> <1|0> Blargg TV effects scanline interpolation, resulting in blending/smoothing of the scanlines. =item B<-tv.jitter> <1|0> Enable TV jitter effect. =item B<-tv.jitter_recovery> <1 - 20> Set recovery time for TV jitter effect. =item B<-tv.contrast> Blargg TV effects 'contrast' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.brightness> Blargg TV effects 'brightness' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.hue> Blargg TV effects 'hue' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.saturation> Blargg TV effects 'saturation' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.gamma> Blargg TV effects 'gamma' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.sharpness> Blargg TV effects 'sharpness' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.resolution> Blargg TV effects 'resolution' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.artifacts> Blargg TV effects 'artifacts' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.fringing> Blargg TV effects 'fringing' (only available in custom mode, range -1.0 to 1.0). =item B<-tv.bleed> Blargg TV effects 'bleed' (only available in custom mode, range -1.0 to 1.0). =item B<-cheat> Use the specified cheatcode (see Cheat section for description). =item B<-loglevel> <0|1|2> Indicates level of logging to perform while the application is running. Zero completely disables logging (except for serious errors), while the remaining numbers show increasingly more detail. =item B<-logtoconsole> <1|0> Indicates that logged output should be printed to the console/commandline as it's being collected. An internal log will still be kept, and the amount of logging is still controlled by 'loglevel'. =item B<-joydeadzone> Sets the joystick axis deadzone area for joysticks/gamepads. All values within the deadzone are treated as zero-axis values, while only those values outside are registered as valid input. Accepts a number from 0 - 29, and uses the formula 3200 + number * 1000. So the possible deadzone values range from 3200 to 32200. =item B<-joyallow4> <1|0> Allow all 4 directions on a joystick to be pressed simultaneously. Bumper Bash ignores this setting, and always allows all 4 directions. =item B<-usemouse> Use mouse as a controller as specified by ROM properties in specific case. Always and never are self-explanatory, analog means only for analog-type devices (paddles, trackball, etc). =item B<-grabmouse> <1|0> Locks the mouse cursor in the game window in emulation mode. =item B<-cursor> <0,1,2,3> Set cursor state in UI/emulation modes. =item B<-dsense> 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. =item B<-msense> Sensitivity for emulation of paddles when using a mouse. Valid range of values is from 1 to 20, with larger numbers causing faster movement. =item B<-tsense> Sensitivity of mouse emulated trackball movement (1-20). =item B<-saport> Determines how to enumerate the Stelladaptor/2600-daptor devices in the order they are found: 'lr' means first is left port, second is right port, 'rl' means the opposite. =item B<-ctrlcombo> <1|0> Use control-x key combos. This is normally enabled, since the Quit command is tied to 'Control-q'. However, there are times when 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. =item B<-autoslot> <1|0> Automatically switch to the next available save state slot after saving a ROM state file. =item B<-stats> <1|0> Overlay console info on the TIA image during emulation. =item B<-fastscbios> <1|0> Disable Supercharger BIOS progress loading bars. =item B<-snapsavedir> The directory to save snapshot files to. =item B<-snaploaddir> The directory to load snapshot files from. =item B<-snapname> When saving snapshots, use either the internal database name or the actual ROM filename. =item B<-sssingle> <1|0> Generate single snapshot instead of many, overwriting any previous snapshots. =item B<-ss1x> <1|0> Ignore any scaling applied to the TIA image, and save snapshot in unscaled (1x) mode. =item B<-ssinterval> Set the interval in seconds between taking snapshots in continuous snapshot mode (currently, 1 - 10). =item B<-rominfo> Display detailed information about the given ROM, and then exit Stella. =item B<-listrominfo> Prints relevant contents of the Stella ROM database, one ROM per line, and then exit Stella. This can be used for external frontends. =item B<-exitlauncher> <1|0> Always exit to ROM launcher when exiting a ROM (normally, an exit to launcher only happens when started with the launcher). =item B<-launcherres> Set the size of the ROM launcher. =item B<-launcherfont> Set the size of the font in the ROM launcher. =item B<-launcherexts> Specifies which files to show in the ROM launcher ('allfiles' is self-explanatory, 'allroms' is all files with valid rom extensions (currently: a26, bin, rom, gz, zip), 'LIST' is a ':' separated list of valid rom extensions. =item B<-romviewer> <0|1|2> Hide ROM info viewer in ROM launcher mode (0), or use the given zoom level (1 or 2). =item B<-uipalette> Use the specified palette for UI elements. B is green-on-black, B is more colorful. =item B<-listdelay> Set the amount of time to wait between treating successive keypresses as a single word in list widgets (value can range from 300-1000). Use '0' to disable list-skipping completely, =item B<-mwheel> Set the number of lines a mousewheel will scroll in the UI. =item B<-romdir> Set the directory where the ROM launcher will start. =item B<-statedir> Set the directory in which to access state files. =item B<-cheatfile> Set the full pathname of the cheatfile database. =item B<-palettefile> Set the full pathname of the user-defined palette file. =item B<-propsfile> Set the full pathname of the ROM properties file. =item B<-nvramdir> Set the directory in which to access non-volatile (flash/EEPROM) files. =item B<-cfgdir> Set the directory in which to access Distella config files. =item B<-avoxport> Set the name of the serial port where an AtariVox is connected. =item B<-maxres> Useful for developers, this sets the maximum size of window that can be created, allowing to simulate testing on 'smaller' systems. =item B<-help> Prints a help message describing these options, and then exit Stella. The following are useful to developers. Only use them if you know what you're doing! Note that in all cases, the values supplied to the arguments are not case sensitive. Argument Description =item B<-dis.resolve> <1|0> Try to differentiate between code vs. data sections in the disassembler. See the Debugger section for more information. =item B<-dis.gfxformat> <2|16> Sets the base to use for displaying GFX sections in the disassembler. =item B<-dis.showaddr> <1|0> Shows/hides opcode addresses in the disassembler. =item B<-dis.relocate> <1|0> Relocate calls out of address range in the disassembler. =item B<-dbg.res> Set the size of the debugger window. =item B<-dbg.fontstyle> <0|1|2|3> How to use bold fonts in the debugger window. '0' means all normal font, '1' is bold labels only, '2' is bold non-labels only, '3' is all bold font. =item B<-break>
Set a breakpoint at specified address. =item B<-debug> Immediately jump to debugger mode when starting Stella. =item B<-holdjoy0> Start the emulator with the left joystick direction/button held down (ie, use 'UF' for up and fire). =item B<-holdjoy1> Start the emulator with the right joystick direction/button held down (ie, use 'UF' for up and fire). =item B<-holdselect> Start the emulator with the Game Select switch held down. =item B<-holdreset> Start the emulator with the Game Reset switch held down. =item B<-tiadriven> <1|0> Set unused TIA pins to be randomly driven high or low on a read/peek. If disabled, use the last databus value for those pins instead. =item B<-cpurandom> On reset, randomize the content of the specified CPU registers. =item B<-ramrandom> <1|0> On reset, either randomize all RAM content, or zero it out instead. =item B<-bs> Set "Cartridge.Type" property. See the Game Properties section for valid types. =item B<-type> Same as using -bs. =item B<-channels> Set "Cartridge.Sound" property. =item B<-ld> Set "Console.LeftDifficulty" property. =item B<-rd> Set "Console.RightDifficulty" property. =item B<-tv> Set "Console.TelevisionType" property. =item B<-sp> Set "Console.SwapPorts" property. =item B<-lc> Set "Controller.Left" property. See the Game Properties section for valid types. =item B<-rc> Set "Controller.Right" property. See the Game Properties section for valid types. =item B<-bc> Sets both "Controller.Left" and "Controller.Right" properties. See the Game Properties section for valid types. =item B<-cp> Set "Controller.SwapPaddles" property. =item B<-ma> Set "Controller.MouseAxis" property. See the Game Properties section for valid types. =item B<-format> Set "Display.Format" property. See the Game Properties section for valid formats. =item B<-ystart> Set "Display.YStart" property (0 - 64). =item B<-height> Set "Display.Height" property (210 - 256). =item B<-pp> Set "Display.Phosphor" property. =item B<-ppblend> Set "Display.PPBlend" property, used for phosphor effect (0-100). Default is 77. =item B<-thumb.trapfatal> <1|0> The default of true allows the Thumb ARM emulation to throw an exception and enter the debugger on fatal errors. When disabled, such fatal errors are simply logged, and emulation continues. Do not use this unless you know exactly what you're doing, as it changes the behaviour as compared to real hardware. Note that Thumb ARM emulation only applies to the BUS, CDF, and DPC+ cartridge types. =back =head1 KEYBOARD The Atari 2600 console controls and controllers are mapped to the computer's keyboard as shown in the following tables. However, most of these events can be remapped to other keys on your keyboard or buttons on your joystick (see B in the HTML documentation). The tables below show the default settings. =head2 Console Controls (can be remapped) =over 4 =item B Exit emulator =item B Exit game mode/enter launcher mode =item B Enter/exit options mode =item B Enter/exit command mode =item B Enter/exit debugger =item B Select Game =item B Reset Game =item B Color TV =item B Black/White TV =item B Left Player Difficulty A =item B Left Player Difficulty B =item B Right Player Difficulty A =item B Right Player Difficulty B =item B Save state to current slot =item B Change current state slot =item B Load state from current slot =item B Save PNG snapshot =item B Pause/resume emulation =back =head2 Joystick / BoosterGrip Controller (can be remapped) =head3 Left Joystick (Joy0) =over 4 =item B Joystick Up =item B Joystick Down =item B Joystick Left =item B Joystick Right =item B Fire Button =item B<4> Trigger Button =item B<5> Booster Button =back =head3 Right Joystick (Joy1) =over 4 =item B Joystick Up =item B Joystick Down =item B Joystick Left =item B Joystick Right =item B Fire Button =item B<6> Trigger Button =item B<7> Booster Button =back =head2 Paddle Controller digital emulation (can be remapped independently of joystick controller) =head3 Left Paddles =over 4 =item B Paddle 0 decrease =item B Paddle 0 increase =item B Paddle 0 Fire =item B Paddle 1 decrease =item B Paddle 1 increase =item B Paddle 1 Fire =back =head3 Right Paddles =over 4 =item B Paddle 2 decrease =item B Paddle 2 increase =item B Paddle 2 Fire =item B Paddle 3 decrease =item B Paddle 3 increase =item B Paddle 3 Fire =back =head2 Driving Controller (cannot be remapped, always associated with joystick controller) =head3 Left Driving =over 4 =item B Left Direction =item B Right Direction =item B Fire Button =back =head3 Right Driving =over 4 =item B Left Direction =item B Right Direction =item B Fire Button =back =head2 Sega Genesis Controller (cannot be remapped, always associated with joystick and booster-grip controllers) =head3 Left Pad =over 4 =item B Pad Up =item B Pad Down =item B Pad Left =item B Pad Right =item B Button 'B' =item B Button 'C' =back =head3 Right Pad =over 4 =item B Pad Up =item B Pad Down =item B Pad Left =item B Pad Right =item B Button 'B' =item B Button 'C' =back =head2 Keypad Controller (can be remapped) =head3 Left Keypad =over 4 =item B<1> 1 =item B<2> 2 =item B<3> 3 =item B 4 =item B 5 =item B 6 =item B 7 =item B 8 =item B 9 =item B . =item B 0 =item B # =back =head3 Right Keypad =over 4 =item B<8> 1 =item B<9> 2 =item B<0> 3 =item B 4 =item B 5 =item B

6 =item B 7 =item B 8 =item B<;> 9 =item B<,> . =item B<.> 0 =item B # =back =head2 CompuMate Controller (cannot be remapped) =over 4 =item B< 0 - 9> 0 - 9 =item B< A - Z> A - Z =item B< Comma> Comma =item B< Period> Period =item B< Control (left or right)> Func =item B< Shift (left or right)> Shift =item B< Return/Enter> Enter =item B< Space> Space =item B< Backspace> Func-Space =item B< + or Shift-1> + =item B< - or Shift-2> - =item B< Shift-3> * =item B< / or Shift-4> / =item B< = or Shift-5> = =item B< ? (Shift-/) or Shift-6> ? =item B< Shift-7> $ =item B< [ or Shift-8> [ =item B< ] or Shift-9> ] =item B< " (Shift-') or Shift-0> " =back =head2 TV effects (cannot be remapped, only active in TIA mode) =over 4 =item B Disable TV effects =item B Select 'Composite' preset =item B Select 'S-video' preset =item B Select 'RGB' preset =item B Select 'Badly adjusted' preset =item B Select 'Custom' preset =item B Decrease scanline intensity =item B Increase scanline intensity =item B Disable scanline interpolation =item B Enable scanline interpolation =item B Select previous 'Custom' mode attribute (*) =item B Select next 'Custom' mode attribute (*) =item B Decrease 'Custom' selected attribute value (*) =item B Increase 'Custom' selected attribute value (*) =back Items marked as (*) are only available in 'Custom' preset mode =head2 Developer Keys in TIA mode (cannot be remapped) =over =item B Set "Display.YStart" to next larger value =item B Set "Display.YStart" to next smaller value =item B Set "Display.Height" to next larger value =item B Set "Display.Height" to next smaller value =item B Toggle frame stats (scanline count/fps/bs type/etc) =item B Toggle TIA Player0 object =item B Toggle TIA Player1 object =item B Toggle TIA Missile0 object =item B Toggle TIA Missile1 object =item B Toggle TIA Ball object =item B Toggle TIA Playfield object =item B Toggle TIA Player0 collisions =item B Toggle TIA Player1 collisions =item B Toggle TIA Missile0 collisions =item B Toggle TIA Missile1 collisions =item B Toggle TIA Ball collisions =item B Toggle TIA Playfield collisions =item B Toggle TIA HMOVE blanks =item B Toggle TIA 'Fixed Debug Colors' mode =item B Toggle all TIA objects =item B Toggle all TIA collisions =back =head2 Other Keys (cannot be remapped, except those marked with '*') =over 4 =item B Switch to next larger zoom level =item B Switch to next smaller zoom level =item B Toggle fullscreen/windowed mode =item B Decrease volume (*) =item B Increase volume (*) =item B Toggle console type in increasing order (NTSC/PAL/SECAM, etc)) =item B Toggle console type in decreasing order (NTSC/PAL/SECAM, etc)) =item B Save current properties to a new properties file =item B Switch mouse between controller emulation modes =item B Swap Stelladaptor/2600-daptor port ordering =item B Reload current ROM (singlecart ROM, TIA mode) or Load next game in ROM (multicart ROM, TIA mode) =item B Reload ROM listing (ROM launcher mode) =item B Emulate 'frying' effect (TIA mode) (*), Go to parent directory (UI mode) (*) =item B Toggle 'phosphor' effect =item B Toggle palette =item B Toggle PAL color-loss effect =item B Save continuous PNG snapshots (per interval) =item B Save continuous PNG snapshots (every frame) =back =head2 UI keys in Text Editing areas (cannot be remapped) =over 4 =item B Move cursor to beginning of line =item B Move cursor to end of line =item B Remove character to right of cursor =item B Remove character to left of cursor =item B Same function as 'Home' =item B Same function as 'End' =item B Same function as 'Delete' =item B Remove all characters from cursor to end of line =item B Remove all characters from cursor to beginning of line =item B Remove entire word to left of cursor =item B Move cursor to beginning of word to the left =item B Move cursor to beginning of word to the right =item B Copy entire line to clipboard (not complete) =item B Paste clipboard contents (not complete) =back =head1 FILES Starting with 5.0, B uses B<$HOME/.config/stella/> as the per-user config directory. Previous versions used B<$HOME/.stella/>. The config directory contains the following: =over 4 =item B The Stella config file, created by B. May be hand-edited, but normally the built-in GUI is used to set these options. =item B Directory for DiStella config files, used only by the debugger. =item B Directory used to store the contents of non-volatile cartridge memory. =item B Directory used to store save-states (see B key). =back =head1 AUTHORS Stella was originally developed for Linux by Bradford W. Mott , and is currently maintained by Stephen Anthony . Other contributors include Eckhard Stolberg and Brian Watson . =head1 SEE ALSO Stella web site: I.