Stella Changelog

What's new in Stella 6.7.1

Jan 16, 2024
  • Fixed broken mouse and Stelladaptor input for Driving Controller.
  • For UNIX systems: Now defaults to using system-installed libsqlite3 when available, and fixes delay on exiting app experienced on some systems.

New in Stella 6.7 (Jun 15, 2022)

  • MPORTANT NOTES:
  • Because of fixes to JSON handling, all remappings will be reset to defaults; if you had custom mappings, they will need to be re-entered again.
  • Because of internal changes, all state files are now invalid.
  • Completely reworked the file launcher:
  • Redesigned user interface
  • Added tracking of user favorites, recently played and most popular games
  • Added virtual directories for selecting tracked games
  • Added quick path navigation
  • Added navigation history
  • Added icons for files and directories
  • Added option to show/hide file extensions
  • Extended context menu and shortcuts
  • Fixed sluggish behaviour when reading large and/or invalid files
  • Other:
  • Added hotkey display to tooltips.
  • Added option to automatically pause emulation when focus is lost.
  • Added option to toggle autofire mode.
  • Improved controller mappings for Paddles.
  • Improved controller mappings for Driving controllers.
  • Improved Mindlink support.
  • Added another oddball TIA glitch option for score mode color.
  • Enhanced TV jitter emulation.
  • Enhanced support for CDFJ+ bankswitching type.
  • Added 0FA0 bankswitching for Fotomania ROMs.
  • Added ARM chip auto detection.
  • Extended support for older BUS (experimental) ROMs that worked with an older, obsolete version of the BUS scheme; special thanks to SpiceWare for the code.
  • Fixed Stella crash due to invalid ZIP files.
  • Fixed TV mode auto detection in some ARM ROMs.
  • Fixed color loss when switching TV mode from/to PAL.
  • Fixed score mode glitch emulation corner case.
  • Fixed state messages staying on screen forever.
  • Added M1 support for the macOS build.
  • Debugger improvements:
  • added PlusROM information
  • fixed patching code in ZP-RAM
  • improved bank origin detection
  • Updated internal ROM properties database to ROM-Hunter version 17 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection.

New in Stella 6.6 (Nov 18, 2021)

  • Added preliminary PlusROM support for saving high scores.
  • Added preliminary support for 'MVC' bankswitching scheme by Rob Bairos.
  • Added web links for many games.
  • Added dead zone and linearity settings for analog controllers.
  • Added 'Check for Update' button to Help dialog.
  • Added different mask patterns for scanline emulation.
  • Fixed MindLink controller.
  • Fixed SaveKey not working with QuadTari.
  • Added TIA randomization on startup option.
  • Added different debug color luminances for player and missile copies.
  • Added hotkeys for TV roll speed and toggling 'Developer settings' sets.
  • Debugger: enhanced prompt's auto complete and history.
  • Debugger: added optional logging of breaks and traps.
  • Debugger: added Thumb cycle counting.

New in Stella 6.5.3 (Apr 21, 2021)

  • Added context-sensitive help.
  • Improved support of multiple monitors with different resolutions.
  • Improved analog input reading (Paddles, Keyboards...).
  • Fixed QuadTari support for controller types other than Joysticks.
  • Fixed palette and TV effects saving for Retron77.
  • Fixed immediate disassembling when switching options in debugger.

New in Stella 6.5.2 (Feb 26, 2021)

  • Fixed broken Driving Controller support for Stelladaptor/2600-daptor devices.
  • Fixed missing QuadTari option in UI.
  • Improved QuadTari timing.
  • Added CPU usage stats to ARM cart classes debug widgets.

New in Stella 6.5.1 (Jan 25, 2021)

  • Fixed paddle button bug for jittering controllers.
  • Improve switching between joysticks and paddles on Retron77 port.
  • Improve memory usage on Retron77 port.

New in Stella 6.5 (Jan 11, 2021)

  • Added high scores saving.
  • Added static tooltips to some UI items.
  • Added dynamic tooltips to most debugger items.
  • Added sound to Time Machine playback.
  • Added browser dialogs for user saved files.
  • Extended global hotkeys for input devices & ports settings.
  • Moved to using an SQLite database for storing user settings, properties and highscores. More work will follow in future releases.
  • Increased sample size for CDFJ+.
  • Fixed autofire bug for trackball controllers.
  • Fixed bug in TV autodetection in filenames; a filename containing 'PAL' inside a word would sometimes misdetect as a PAL ROM.
  • 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.
  • 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.
  • Various improvements to the ROM launcher:
  • Added wildcard support to the dialog filter
  • Added option to search subdirectories

New in Stella 6.4 (Nov 3, 2020)

  • Added basic (entire and single line only) text cut/copy and paste.
  • Added color parameters to 'Custom' palette.
  • Added CPU load stats to debugger. Related to this, added debugger pseudo-registers '_ftimreadcycles' and '_fwsynccycles' to show the number of cycles since the start of frame under certain circumstances (see manual for more details).
  • Fixed bug with aspect correction and fullscreen mode; snapshots from such a mode are now pixel-exact.
  • Fixed a bug that caused CDF ROMs to crash on the Retron77 and reduced ARM emulation performance for CDF ROMs on other platforms.
  • Fixed crash with missing or incorrectly sized SaveKey data file, and with certain functions not working (erase pages, erase entire EEPROM).
  • Fixed Atari mouse autodetection.
  • Fixed bug in ROM launcher, with last ROM selected not being remembered when exiting and re-entering a directory.
  • Some improvements to AtariVox-USB adaptor functionality:
  • Made serial port used for an AtariVox-USB adaptor editable.
  • Autodetection of serial ports no longer messes up devices plugged into other serial ports.

New in Stella 6.3 (Oct 7, 2020)

  • Added adjustable autofire.
  • Added 'Dark' UI theme.
  • Extended global hotkeys for debug options.
  • Added option to playback a game using the Time Machine.
  • Allow taking snapshots from within the Time Machine dialog.
  • Extended AtariVox support to handle flow control, so that long phrases are no longer corrupted/cut off. This includes properly supporting the 2600-daptor II, which is flashable to an AVox-USB converter.
  • Added auto-detection of the serial port used for an AtariVox-USB adaptor.
  • Added QuadTari controller support.
  • Added option to select the audio device.
  • Added support for CDFJ+ bankswitching type.
  • Further enhanced UA bankswitching to support more Brazilian carts.
  • Added option to display detected settings info when a ROM is loaded.
  • Added another oddball TIA glitch option for delayed background color.
  • Added option to disable aspect ratio correct scaling.
  • Added debugger pseudo-registers '_timwrapread' and '_timwrapwrite', which are set when the RIOT timer is read/written on timer wraparound, respectively.
  • Bankswitching schemes BUS, DPC+ and CDFx now work when startup bank randomization is enabled (these schemes now ignore that setting).
  • Replaced "Re-disassemble" with "Disassemble @ current line" in debugger.
  • Fixed bug when taking fullscreen snapshots; the dimensions were sometimes cut off.
  • Added the ability to access most files that Stella uses from within a ZIP file. This includes the following:
  • Per-ROM properties file (so one can distribute a ROM and its associated properties).
  • Debugger symbol (.sym) and list (.lst) files, etc.
  • Several others, as we extend the support.
  • Basically, you are now able to put many files that Stella uses inside one ZIP file, and distribute just that file.

New in Stella 6.2.1 (Jun 22, 2020)

  • Fixed Pitfall II ROM not working correctly.
  • Fixed crashes when using some combinations of bankswitching schemes on incorrect ROMs, or when using invalid ROM file sizes, etc.
  • Fixed RIOT timer behaviour on reading/writing at the wraparound cycle.
  • Fixed incorrectly setting D6 bit on TIA reads in some cases. Related to this, improve 'tiadriven' option to randomize only D5..D0 bits.
  • Fixed custom palette and TV effects adjustable slider rounding issue.
  • Fixed some bugs in 3E+ scheme when using non-standard ROM sizes.
  • Fixed crash in Audio & Video dialog when opened from debugger, and the debugger window sometimes being resized when using the Options dialog.
  • Make NTSC custom phase shift not affect Yellow anymore.
  • Fixed '1x' snapshot mode; TV effects are now disabled. This mode now generates a clean, pixel-exact image.
  • Fixed mappings sometimes not being saved in the Retron77 port.
  • A ROM properties file may now be placed next to the ROM (with the same name as the ROM, except ending in .pro), and Stella will automatically apply the properties to the ROM. [NOTE: this was present in 6.2, but was mistakenly left out of the changelog]
  • Added button to Game Info dialog to save properties of the currently loaded ROM to a separate properties file (in the default save directory). This is useful in conjunction with the previous item.
  • Allow changing custom palette and TV effects adjustables in 1% steps again.
  • Updated documentation for changes in ROM properties key names.
  • The codebase now compiles under gcc6 again. Future versions will require gcc7, though.

New in Stella 6.2 (Jun 8, 2020)

  • Added interactive palette to Video & Audio settings.
  • Added 'Custom' palette, generated from user controlled phase shifts.
  • Added that adjustable audio & video settings are displayed as gauge bars.
  • Added four global hotkeys which allow selecting and changing numerous audio & video settings without having to remember the dedicated hotkeys.
  • Added 'Turbo' mode, runs the game as fast as the computer allows.
  • Added that paddle centering (per ROM) and sensitivity can be adjusted.
  • Added that mouse sensitivity for Driving controller can be adjusted.
  • Added paddle filtering in UI to avoid unwanted navigation events.
  • Added selectable dialog fonts.
  • Added separate positioning of launcher, emulator and debugger.
  • Added optional display to game refresh rate adaption in fullscreen mode.
  • Added option which lets default ROM path follow launcher navigation.
  • Added debugger 'saveaccess' function, which saves memory access counts to a CSV file.
  • Added displaying last write address in the debugger.
  • Added debugger pseudo-register '_scanend', which gives the number of scanlines at the end of the last frame.
  • Added detection of color and audio data in DiStella.
  • Restored 'cfg' directory for Distella config files.
  • Added TV Boy and 3EX bank switching types.
  • Removed unused CV+ and DASH bank switching types.
  • Added support for loading grayscale PNG images in the ROM launcher.

New in Stella 6.1.2 (Apr 27, 2020)

  • Fixed bug with remapped events not being reloaded in certain cases.
  • Fixed bug in debugger for 3E scheme when displaying active RAM bank.
  • Fixed bug in "Dragon Defender" ROM being misconfigured for Mindlink controller.

New in Stella 6.1.1 (Apr 6, 2020)

  • Fixed crash in 3E bankswitching scheme when writing to ROM addresses.
  • Fix snapshots on Retina HiDPI displays capturing only the top-left corner.
  • Fixed wrong color for BK (background) swatch in the debugger.
  • Fixed 'Right Diff' button in Command menu changing left difficulty instead.
  • Fixed compilation of libretro port on Debian Buster.

New in Stella 6.1 (Mar 23, 2020)

  • Because of major event remapping changes, all remappings will be reset to defaults; if you had custom mappings, they will need to be re-entered again.
  • Because of major internal changes, all state files are now invalid.
  • Major improvements to display mode handling in NTSC vs. PAL. The window is now the same size for both modes, and scaling is applied to simulate the height of scanlines (in PAL mode, there are more scanlines and hence each is narrower). This more properly emulates how the display would look on a real TV.
  • Removed the 'Display_Height' property, changing it to 'Display_VCenter'. This new feature, along with the display mode changes above, almost completely eliminate having to manually tweak each ROM so that it will not have part of the image cut off.
  • Removed the 'Display_YStart' property and all automatic detection of ystart. It caused problems on some ROMs, and was not the way a real console would work anyway. Related to this, ROMs now load much faster.
  • Major improvements to event remapping
  • Allow mapping of modifier-key and button-direction combinations
  • Physical controllers can map the same action to different events on different virtual controllers
  • Many more events can be remapped
  • Events can be filtered by type in UI
  • Paths have been simplified
  • The following file/directory locations are no longer configurable
  • (statedir, nvramdir, cheatfile, palettefile, propsfile); they are now all under the base directory
  • Removed cfgdir; Distella config files are now placed with their associated ROMs
  • Added 'basedir' commandline argument, which allows to change the base directory where almost all config-related items are stored; related to this, discontinued the 'basedir.txt' functionality
  • Added 'baseinappdir' commandline argument, which sets the base directory to the application folder (Windows only for now); this replaces the functionality of 'basedir.txt'
  • Added automatic controller detection.
  • Controllers can be changed during emulation (no ROM reload required anymore).
  • Added support for Light Gun controller.
  • Added limited KidVid support (8, 9 and 0 start the games).
  • Removed superfluous controller option 'PADDLES_IDIR'.
  • Added configurable paddle dejittering.
  • Key-repeat mode improved; entering Time Machine by holding down a key combo continues to send events (previously, you had to release and then press the combo again).
  • Certain buttons in the UI can now be activated repeatedly by holding down the mouse button (Time Machine, debugger step/trace/frame advance, etc.)
  • Added option to configure mouse double click speed.
  • Added option to configure controller input repeat speed.
  • Added high quality scaling.
  • Made scanlines better aligned to scaling.
  • Added 'HiDPI' mode, which scales the UI by 2x when enabled. This is meant for 4k and above monitors, but can actually be used at any lower resolution that is large enough to display the scaled UI.
  • Fixed TIA 'Center' option, Stella now remembers the last windowed position.
  • Added fractional (25% increments) TIA zooms.
  • Removed 'tia.fsfill' option, replacing it with 'tia.fs_stretch'. This new option allows to preserve TIA image aspect ratio in fullscreen mode, or stretch to fill the entire screen.
  • Added configurable 'Overscan' option for fullscreen modes.
  • Fullscreen TIA modes no longer assume that desktop taskbars, etc are present, hence they are scaled to the proper fullscreen size.
  • Added option to display dialogs in screen corners.
  • Added hotkey for sound on/off.
  • Enhanced 'Command' menu to display current state and more commands.
  • Added option to save and load all TimeMachine states at once.
  • Added option to automatically load/save states when entering/exiting emulation.
  • Added option to change pitch of Pitfall II music.
  • ROM Info Viewer size is not limited to fixed zoom steps anymore.
  • ROM Info Viewer can now display multiple lines per property and the bank switching type.
  • In file listings, you can now select directories by holding 'Shift' on the first character entered. Entering characters in lowercase still selects files, as before.
  • Fixed bug when starting ROMs via MacOS finder.
  • Added various developer options for oddball TIAs
  • stuffed player, missiles and ball move
  • delayed playfield bits and color
  • delayed players and ball VDEL swap
  • Disabled some developer options for 'Player settings'.
  • Writes to RAM read ports are ignored now.
  • Added Developer setting, which breaks on writes to read ports.
  • Improved breakpoints to now consider the banks.
  • Improved debugger's TIA display and zoom windows.
  • Improved hotkeys, now many emulation keys work in debugger too.
  • Fixed display of negative values in debugger; sometimes they were shown as positive.
  • Reworked ROM properties database, making it load faster in certain cases.
  • Updated internal ROM properties database to ROM-Hunter version 16 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection.
  • Fixed 'Dancing Plate (Unknown) (PAL)' to use joystick.
  • Fixed cheatcode handling in 2K and 4K ROMs.
  • Fixed bug where ROMs smaller than 64 bytes were not recognized.
  • Fixed bug where frying one ROM was continued with the next ROM.
  • Fixed not working 7800 pause key.
  • Enhanced UA bankswitching to support certain Brazilian carts.
  • Fixed WD bankswitching.
  • Added FC bankswitching for Amiga's Power Play Arcade Video Game Album.
  • Added auto-detection of display format based on filename.
  • Auto-detection of bankswitch scheme by file extension now includes more human-readable formats (not restricted to DOS 3-char length). See the documentation for the new names.
  • Fixed bug in DPC+ scheme; 'fast fetch mode' was enabled at startup, when it should be disabled by default.
  • Some more work on DPC+ playfield 'jitter' effect for certain older DPC+ driver versions; more ROMs are now detected properly. Special thanks to SpiceWare for his research in this area.
  • Added proper Retron77 port.
  • Added proper libretro port, and fixed display for OpenGLES renderers.
  • PNG/ZIP image support is now conditionally compiled into Stella. All major ports (Linux/macOS/Windows) have it enabled by default.
  • SDL/GUI support is now conditionally compiled into Stella. All major ports (Linux/macOS/Windows) have it enabled by default. This is currently needed by the libretro port.
  • Updated included PNG library to latest stable version.
  • Updated UNIX configure script to work with the gcc version 10 and above.

New in Stella 6.0.2 (Oct 15, 2019)

  • Updated properties database for Pink Panther ROM.

New in Stella 6.0.1 (Jun 7, 2019)

  • This is a small release that improves support for a few bankswitching schemes:
  • Added support for CDFJ bankswitching type (Galaga, Wizard of War, etc).
  • Allow the DPC+ scheme to not enable playfield 'jitter' effect for certain older DPC+ driver versions; this allows 'Epic Adventure' ROM to finally work in Stella.

New in Stella 6.0 (Jan 4, 2019)

  • Note: because of major TIA sound changes, the state file format has changed, and old state files will not work with this release.
  • New cycle exact audio core based on work by Chris Brenner (crispy); greatly improved audio emulation accuracy (i.e. E.T., Ms. Pacman).
  • Full rewrite of the audio subsystem; resample TIA output to target sample rate directly in Stella.
  • Added option to force stereo sound for all ROMs, or to use the setting on a per-ROM basis.
  • Threading: decouple emulation from frame rendering.
  • Main loop rewritten; emulating speed and timing is now much more faithful (i.e. speed in Pick'n'Pile).
  • Added preliminary support for 'CTY' bankswitching scheme and recently released 'Chetiry' ROMs. Special thanks to SpiceWare for adding music support to this scheme.
  • UI modernization (new widget look, dialog titles added, dialogs refactored).
  • The bankswitch scheme can now be forced by naming the ROM with a specific extension (ie: .f8s for F8SC, .fe for FE, etc). The supported extensions are the same as the ones from HarmonyCart and UnoCart.
  • Audio settings replaced with new 'audio.xxx' settings.
  • FPS setting replaced with speed setting for adjusting emulation speed.
  • Extra functionality for Time Machine dialog (start/stop recording; minor fixes).
  • When logging messages to the System Logger, condense similar messages that arrive in batches into fewer messages (including timestamps).
  • Fixes for collision corner cases (during HBlank).
  • Fixed excessive CPU usage while in UI modes (ROM launcher, debugger, etc).
  • The 'launcherexts' option has been replaced by a true/false option named 'launcherroms', which specifies to show only ROMs or all files in the ROM launcher.
  • Fixed bug in autodetecting Genesis controllers.
  • Fixed bug with 'thumb.trapfatal' commandline argument; sometimes Stella would lock up when encountering a fatal error instead of entering the debugger and displaying a message.
  • Fixed bug in reading from settings file with entries that were empty; the parsing was failing. This affected the 'cpurandom' argument; when all options in it were turned off, they were all turned on again during the next program run.
  • Fixed bug with 'hold' events; they are now released a short time after starting a ROM.
  • When starting Stella for the first time, the first ROM selected will determine which path to use by default for subsequent runs.
  • Fixed emulator crash when starting SaveKey ROMs from commandline with SaveKey messages enabled.
  • Fixed missing TV format update in frame stats dialog when switching display type.
  • Fixed missing debug color update when switching display type.
  • 'Fill to scanline' now works for scanlines above current scanline too.
  • The debugger 'uhex' command is now honoured in CDF and BUS schemes.
  • When switching screenmodes, the sound is now paused and later resumed. This fixes popping and cracking sounds apparent on some systems, notably OSX when toggling windowed/fullscreen mode.
  • State file format has been optimized to be smaller, and faster loading and saving. This affects both the files saved to your computer as well as Time Machine functionality.
  • The ROM name saved in a PNG tEXt chunk now honours the 'snapname' setting.
  • Improved snapshots when phosphor is enabled.
  • Updated PAL palette.
  • Added 'Cartridge.StartBank' ROM property, to force a ROM to use a specific bank for its reset vector.
  • Added Developer setting, which breaks on reads from write ports. It now detects such conditions in many more cases. This new way of detecting RWP errors obsoletes the old '_rwport' debugger command, which has now been removed.
  • Added recently released 'Arkyology' prototype ROM to the database.
  • Added 'Amoeba Jump' and 'Flappy' ROMs (from the Retron77) to the database.
  • Fixed 'Street Racer' and 'Video Olympics' ROMs to use paddles in both ports.
  • If using SDL 2.0.5 or above, the calculated desktop size now takes the taskbar/dock into account (so windows should no longer overlap those areas).
  • For UNIX systems: in the ROM launcher, when using symlinks use the symlink pathname instead of the underlying filesystem pathname.
  • The UNIX builds now use the system-installed PNG and ZLIB libraries by default.
  • The Macintosh builds are now named 'macOS' throughout the codebase to reflect the new naming from Apple.
  • For better compatibility, the Windows 32-bit version does not require SSE2 anymore.
  • Updated included PNG library to latest stable version.
  • Changes in 'Game Properties' dialog:
  • 'Default' button now affects only current tab like in all other dialogs.
  • 'Display' and 'Console' tab changes are now immediate.
  • Fixed bug when selecting 'Auto-detect' format for 50Hz ROMs

New in Stella 6.0.0 Pre 1 (Aug 7, 2018)

  • Cycle-exact audio core based on work by Chris Brenner (crispy here on AtariAge). This is based on code directly from crispy's FPGA project, converted to C and eventually massaged into C++ by myself and DirtyHairy. Much more accurate sound emulation, in particular E.T. sounds correct for the first time in Stella's history. Ms. Pac-man interference patterns from mixing audio channels is also present.
  • Sound resampling. The old core output at 31400Hz (native resolution for the 2600). However, many systems then had to convert it to either 44.1 or 48KHz, with a resulting 'beating' effect (imperfections/popping/clicking in the output). The new core does resampling by default, allowing to output in 44.1, 48, or 96KHz, with simple (fast, less accurate) or Lanczos-based (slower, more accurate) resamplers. Several variations in settings are possible.
  • Improved timing. The TIA emulation and video output have been decoupled, and done in separate threads. This allows the emulation to more accurately run at the correct speed while not being affected by variations in video output. PAL games that ran too fast (or slow) should now work correctly.
  • Minimized CPU usage in the UI (mostly the ROM launcher and debugger). CPU usage drops to nearly nothing in the UI when nothing is changing; in old versions, it could use up to an entire core.
  • Stella gets a new coat of paint :) Much improved UI, with several different themes (standard, light, classic) in a more 'flat', modern looking form. Also many nice flourishes here and there, such as tickmarks, better highlighting, much better text descriptions of items, etc. Also rearranged items slightly, moving them to more appropriate places.
  • New PAL palette. Should be much more like the real thing, since it was developed and tweaked by an actual PAL user (I personally don't have a PAL system nor the ability to run one).
  • The accuracy of the new sound core. If you know of a 'trouble' ROM that is different in emulation compared to the real thing, then feedback on this is most appreciated.
  • Play around with all combinations of the stuff in the Audio Dialog (resampling mode, headroom, buffer size, etc) and report any issues.
  • As with the sound core testing, test any trouble ROMs that run out of spec (ie, not close to either 60Hz or 50Hz) and if possible, compare to the real console. This will tell us if the new timing code is working correctly.
  • Play with the UI extensively. Basically open/use/close all dialogs in all parts of the app, making sure that (a) the options are actually shown, and (b) that you don't get a blank screen/missing/not updated UI items.
  • For PAL users, please compare the PAL palette with your actual console, to see that it is more accurate in this release.

New in Stella 5.1.2 (May 21, 2018)

  • Fixed bug with SaveKey autodetection; some ROMs were not correctly detecting that a virtual SaveKey device as plugged in. This notably fixes issues in "Super Cobra" and "Scramble" ROMs.
  • Make previously mentioned ROMs use the SaveKey device by default.
  • Fixed bug in UI navigation with joystick hat movement.

New in Stella 5.1.1 (Feb 22, 2018)

  • Fixed bug in Stargunner ROM starting with a blank screen.

New in Stella 5.1 (Feb 5, 2018)

  • Added "Time Machine" mode, which automatically creates save states in user-defined intervals. The user can navigate back and forth within these states inside the emulator and the debugger.
  • Fixed change tracking bug during rewind; changes were accumulated instead of being displayed only for the last rewind step.
  • Extended 'rewind' to take a second parameter which allows rewinding multiple states.
  • Added 'unwind' command, which undoes the latest rewind(s).
  • Added '

New in Stella 5.0.2 (Aug 23, 2017)

  • Improved emulation of Trakball controller, eliminating bias in left/right directions. Thanks to Thomas Jentzsch for the idea and code. Related to this, added 'tsense' commandline argument and associated UI item, to allow changing sensitivity of mouse trackball emulation.
  • Added preliminary support for multi-threading in the Blargg TV effects code. This is still a WIP; more improvements are coming. Related to this, further optimized the TIA rendering code. Also added 'threads' commandline argument and associated UI item to enable/disable multi-threading. Thanks to Thomas Jentzsch for the bulk of the work in this area.
  • Blargg TV effects now no longer cut off the right side of the image (by several pixels) in certain cases.
  • Updated CDF scheme to latest version from Spiceware. In addition, this scheme now supports versioning, so older and newer ROMs will continue to work.
  • Fixed an annoying bug in Linux, where Alt-Tab'ing out of a window and then back again would pass a 'Tab' key event to the app, which in most cases would navigate to the next UI element.
  • Fixed potential issue with state file saving and the debugger; under certain circumstances a rewind would give a different state than before (note that the state file format has changed because of this).
  • Fixed lockups when entering the debugger under certain circumstances.
  • The debugger 'listtraps' command now shows all traps set, not just the first one(s).
  • Reverted joystick changes for Decathlon ROMs from last release, as it was added by mistake.

New in Stella 5.0.1 (Jul 24, 2017)

  • Fixed issues in keypad, Genesis and various other controllers that use INPTx registers; the emulation is now much more accurate in this area.
  • Various 'Bumper Bash' and 'Decathlon' ROMs are marked as always having all 4 directions on a joystick enabled, since they can't be played properly otherwise.
  • Added 'Hunchy II' from Chris Walton (cd-w) to ROM properties database.
  • Codebase now uses C++14 features.

New in Stella 5.0.0 (Jul 17, 2017)

  • Note: because of major TIA/6502/RIOT changes, the state file format has changed, and old state files will not work with this release.
  • Stella has moved from Sourceforge to Github.
  • Implemented new phosphor emulation mode, which is much closer to real TV output. Related to this, added ability to change the default phosphor blend level in the UI and through the new 'tv.phosblend' commandline argument. Special thanks to Thomas Jentzsch for the idea and implementation.
  • TV phosphor effect can now be force-enabled for all ROMs, instead of manually setting ROM properties for each ROM. This is accessible in the UI and through the 'tv.phosphor' commandline argument, and defaults to being off (or enabled per-ROM).
  • PAL color-loss and Blargg TV effects can now be enabled at the same time. Previously, when Blargg effects were enabled, PAL color-loss couldn't be shown. Related to this, the Blargg effects now use much less memory and in some cases run faster than before.
  • Much improved RIOT timer emulation never before seen in any emulator. Special thanks to Christian Speckner (DirtyHairy) for the implementation, and alex_79 for finding documentation that finally describes in more detail how the M6532 chip actually works.
  • Added BUS (experimental) and CDF bankswitching schemes, and also ARM Timer 1 support; special thanks to SpiceWare for the code.
  • Fixed bug with SaveKey and AtariVox not properly closing their memory files before starting another instance of the same ROM, when the ROM was opened in the ROM launcher.
  • Mouse grabbing is now enabled in windowed mode only when the ROM is using a virtual analog controller (paddles, trakball, etc).
  • Renamed various trakball-like controllers more accurately: AmigaMouse, AtariMouse (previously CX80) and Trakball (previously CX22). Related to this, reduced the resolution of the Trakball by half, to properly match real hardware.
  • The stack pointer (SP) is now initialized to $FD instead of $FF, to match research done in other 6502 projects.
  • Fixed bug in debugger tracing and displaying the partial TIA image; the first time entering the debugger and starting to trace, the image was blanked out (black) instead of being drawn in greyscale. Also, the image is now synchronized, instead of being two frames behind.
  • Fixed crash with zipped ROMs that are less than 4K in size; so far this bug has only ever occurred in Windows XP, but it's been there since Stella 4.1.
  • Fixed bug in 'Rom Audit' functionality; sometimes ROMs without a valid properties entry were being renamed as "Untitled.bin".
  • For the entire UI, removed colons and generally made the UI items easier to read.
  • When in 'ROM launcher mode', Stella now uses slightly less CPU time. More work is required in this area, though.
  • Added ROM properties for D.K. VCS homebrew ROM, thanks to Andreas Dietrich.
  • Added slight improvement for auto-detecting Superchip bankswitching; the new implementation now works for the NTSC 'Dig Dug' ROM. Special thanks for SpiceWare for the idea and modified implementation.
  • Fixed long-standing bug in 3-voice music in DPC+ bankswitching scheme; the music now sounds much more like the real thing.
  • Updated internal ROM properties database to ROM-Hunter version 13 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection.
  • Updated included PNG and ZLIB libraries to latest stable version. Also, both libraries are now compiled into the app whenever one is selected. This fixes issues with a newer ZLIB not working with an older PNG, etc.
  • Updated build scripts for Visual Studio 2017 (Windows) and MacOS Sierra (latest version of Xcode), and make these the minimum supported versions for building Stella.
  • Updated UNIX configure script to work with the clang 5+ and gcc 7+ compiler versions, and fixed compile issues on AArch64 and ppc64le architectures.
  • Completely new TIA core is now available, ported from 6502ts by Christian Speckner (DirtyHairy). This new core is extremely accurate, and matches real hardware in almost every test we've performed. New features include:
  • Meltdown emulates correct
  • The lap number in Pole Positions displays correctly
  • Artifacts in the mountains on Snoopy and the Red baron are gone
  • Line artifacts in Title Match Pro Wrestling and Realsports Boxing are fixed
  • The spurious line at the left border of Video Chess now displays correctly
  • All 32 char text demos from AtariAge now work perfectly (Stella 4 shows artifacts on several of these)
  • Stella is now the only emulator to display the "Mega Bitmap Demo" (atext.bin) from AtariAge correctly
  • Improved starfield effect for missiles (still TODO for ball and players)
  • RSYNC emulation has improved, all testcases now match real hardware
  • Several other ROMs that have never worked in any emulator are now emulated correctly
  • RDY behavior with respect to write cycles is accurate
  • Optional YStart autodetect and more robust frame handling
  • NUSIZ during player draw matches hardware
  • RESMx during missile draw matches hardware
  • Paddle emulation is slightly more accurate. As a consequence, the "paddle feel" may be slightly different from Stella 4
  • Fixed debug colors can now be set for each graphical object, from a choice of 'red', 'orange', 'yellow', 'green', 'blue' and 'purple'. This is accessible through the new 'tia.dbgcolors' commandline argument and within the UI.
  • For the OSX port:
  • Always use the built-in png and zlib libraries instead of the system versions.
  • The preferences file has changed from 'net.sourceforge.Stella.plist' to 'Stella-emu.plist'. To keep your old settings, run the following commands from the terminal:
  • cd ~/Library/Preferences
  • mv net.sourceforge.Stella.plist Stella-emu.plist
  • Various improvements to the debugger and command prompt:
  • The 'cls' command now only clears the screen, not the history
  • The 'help' command now accepts other commands, and gives extra
  • information about the command (ie, 'help breakif' prints extended information about the breakif command)
  • Added 'palette' command, which shows a color swatch of the currently active TIA palette
  • Added 'debugcolors' command, which shows a legend for 'fixed debug colors' mode
  • The previous trap'm' commands now work when setting TIA read addresses; previously they only worked for write addresses
  • The previous trap'm' commands are now renamed 'trap', 'trapread' and 'trapwrite'
  • The TIA tab now shows 'old' contents of player and ball registers
  • Various UI items are crossed out when disabled, to more clearly indicate their current state
  • Various UI items that previously required a double-click to toggle (pixel and bit widgets) now require only a single-click.
  • Command completion now works with internal functions and pseudo-ops (basically, anything starting with the '_' character)
  • System labels (aka, register names, etc) can now be typed in lowercase. Previously, these labels always had to be uppercase.
  • In general, input error checking is much more strictly enforced
  • Read-only UI items now have a different background color, to clearly indicate if an item can be modified.
  • Debugger '.lst' and '.sym' files are now searched based on the name of the ROM file, and not on the internal properties name.
  • Snapshots can now be saved by pressing the F12 key (the various other ways to save snapshots still exist).

New in Stella 5.0.0 Pre 10 (Jul 8, 2017)

  • Major improvements to the Xcode project file, and fixes to ROMs launching from Finder in version 10.9
  • Debugger lst and sym files now follow ROM filename, not properties file name
  • Fixes to ystart autodetection (the frame no longer jumps when finding the starting scanline)
  • Fixes to RSYNC behaviour in debugger
  • TV jittering won't take effect for differences of less than 3 scanlines, and for more than 3 frames (fixes Tapper, Yahtzee and several other ROMs)
  • Fixed scanline counter and issues with its position after CPU RDY has been set
  • TIA debug colours can now be set by the user (for now, the colours are pre-selected, and you can only change which object uses which colour; this may be expanded on in future releases)
  • System labels (aka, register names) can now be upper or lowercase in the debugger command prompt
  • Blargg TV effects and phosphor mode can now be used at the same time
  • Several performance optimizations in the Blargg/phosphor code, leading to measurable speedups.

New in Stella 5.0.0 Pre 9 (Jun 6, 2017)

  • Made range for phosphor blending from 0 - 100
  • Default phosphor blend mode is 30
  • Added Alt-i and Alt-o keyboard shortcuts to dynamically decrease/increase phosphor blend level

New in Stella 5.0.0 Pre 8 (Jun 6, 2017)

  • Updates to the latest version of the BUS/CDF schemes
  • Cleanup of entire UI wrt colons; they have been removed in most places
  • Fixes for AArch64 and ppc64le architectures
  • Dialog boxes now open in 'small-window' modes, instead of simply failing to open and looking like the program has crashed
  • Moved to gcc5, Visual Studio 2017, and Xcode 8 for Linux, Windows, Mac, respectively
  • Fixed major bug in ROM Audit mode
  • Reimplemented TV jitter effect and PAL colour-loss effect
  • Some performance tuning in the TIA DelayQueue implementation
  • WSYNC is now properly implemented
  • Added scanline count for last frame to debugger, and fixed TIA display showing 2 frames in the past (instead of 1)
  • Implemented new phosphor mode by Thomas Jentzsch; currently this breaks phosphor mode with Blargg filtering (this will be fixed before the final release)

New in Stella 5.0.0 Pre 7 (May 4, 2017)

  • The TIA core has improved optimizations and caching, allowing for up to 100% performance improvements; that means that all ROMs should be tested again, to make sure no regressions were introduced
  • TIA tab in the debugger now works correctly for all widgets which existed in 4.x
  • Non-editable UI items in the debugger are now shown with a different colour
  • The debugger 'cls' no longer erases history
  • Added DelayQueueWidget to TIA tab
  • Debugger trap/read/write now work like the 'm' versions from Stella 4.x
  • Added 'palette' and 'debugcolors' prompt commands
  • Fixes for compiling with gcc 7+, Visual Studio 2017 and OSX Sierra
  • Updated BUS and CDF bankswitch schemes
  • Added ability to see contents of 'old' player/missile/ball registers
  • Added 'crossed out' graphics to certain debugger UI objects, to clearly show they're not currently active
  • Fixed long-standing bug in DPC+ 3-voice music output
  • Added 'fixed debug colours' info to the TIA tab, including ability to toggle it
  • Improved caching in TIA core with considerable performance improvements (depending on how the game drives the TIA)

New in Stella 5.0.0 Pre 6 (Mar 29, 2017)

  • Improved Ystart detection, taking care of final corner cases
  • Fixed long-standing bug that caused a crash in Windows XP
  • Further improvements to NUSIZ handling during hblank
  • Many improvements to the RIOT timer emulation; this is now almost complete, and is more accurate than any other tested emulator (fixes lockups in Acid Drop, Panda Chase, Ski Hunt, Zoo Fun, etc)
  • Fix rendering of bottom line in Canyon Bomber
  • Reduced CPU usage in ROM launcher mode
  • Improved autodetection of Superchip ROMs (Dig Dug is now properly autodetected)
  • Cosmic Ark starfield effect now matches output from most common consoles
  • Add ARM Timer 1 support, and BUS/CDF bankswitching schemes
  • Improvements to RESMPx handling (fixes Ice Hockey, which was the last TIA regression from 4.x)
  • State loading/saving is now working again
  • Debugger rewind is working again

New in Stella 4.7.3 (Dec 30, 2016)

  • Added preliminary support for the 3E+ bankswitching scheme, developed by Thomas Jentzsch.
  • Fixed HMOVE positioning bug that occurred under certain circumstances. Thanks to Omegamatrix of AtariAge for the bug report and patch to fix the issue.
  • Added 'trapm', 'trapreadm', 'trapwritem' commands to debugger prompt. These are similar to the non-'m' versions, except that they also trap on all mirrors of the given address.
  • Fixed bug in debugger 'reset' command; it wasn't resetting the bankswitching, so after a reset the banks were in an undefined state.
  • Updated UNIX configure script to fix a bug where it fails in cross-compilation under certain circumstances. Thanks to Vlad Zakharov for providing a patch to fix this issue.

New in Stella 4.7.2 (Mar 28, 2016)

  • Fixed bug when entering and exiting the debugger; sometimes the character corresponding to the '`' key would be output in the prompt area.
  • Updated DPC+ Thumb ARM emulation code to latest from David Welch. In particular, this fixes incorrect handling of the V flag when adding and subtracting, but also fixes compile-time warnings that I couldn't get rid of before.
  • Updated UNIX configure script to work with GCC 6.x compilers, and to remove references to obsolete compiler versions that can no longer be used to compile Stella.

New in Stella 4.7.1 (Feb 15, 2016)

  • Improved TV 'jitter' emulation; the recovery time can now be spread over multiple frame, to simulate a real TV taking multiple frames to recover. Related to this, added new commandline argument 'tv.jitter_recovery' to set the recovery time. Finally, enabling the jitter effect and the recovery time are now accessible through the UI. Special thanks to SpiceWare of AtariAge for the initial idea and implementation.
  • Fixed bug with 'Medieval Mayhem' ROMs; the paddle range was set too low, and as a result the number of players couldn't be selected.
  • Fixed bug when using more than two input controllers with the same name; each controller after the second one was named the same as the second one. This caused the joystick mappings to be lost, since there was only information about two controllers being saved.
  • Indirectly fixed issues with Stelladaptor/2600-daptor devices and paddles having too large of a deadzone in Linux. Currently, this involves running an external application to set the deadzone, since SDL2 does not yet expose this information. The program is called 'evdev-joystick', and will be released separately from Stella.
  • Updated internal ROM properties database to ROM-Hunter version 11 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection.

New in Stella 4.7 (Jan 26, 2016)

  • Fixed bug in 'Score mode' in TIA emulation; the TIA object colours were correct, but the associated priority was sometimes incorrect.
  • Fixed bug in ROM launcher; selecting 'Options -> Game Properties' after loading a ROM would always point to the last opened ROM, not to the one currently selected.
  • Fixed bug in storing ROM properties; in some cases, a copy of the ROM properties was being stored in the external file when it was exactly the same as the internal entry.
  • Added 'CV+' bankswitching scheme, developed by myself and LS_Dracon (of AtariAge). This scheme contains RAM like the CV scheme, and also switchable 2K ROM segments by writing to $3D.
  • Added more C++11 updates all over the codebase, and ran Stella through Coverity for the first time. I'm proud to say that Stella now has a 0.00 defect rate!
  • Improved paddle emulation in several ways:
  • Added ability to specify the maximum range of movement for paddles when using a mouse or digital device to emulate the paddle. This is useful since on a real console most paddle games use very little of the paddle range, and could result in moving the mouse onscreen with nothing appearing to happen (when in effect it was as if you turned a real paddle all the way to the end of the range). This eliminates issues in (for example) Kaboom, where there was a huge 'deadzone' when moving to the left. All applicable ROMS in the internal database have been updated.
  • The range for paddle emulation now takes an integer from 1 - 20, indicating how much to scale movement (ie, how fast the onscreen paddle will move when you move the mouse). The movement itself is now also smoother than before.

New in Stella 4.6.7 (Oct 29, 2015)

  • Fixed bug when using real paddles plugged into a Stelladaptor 2600-daptor device; the movement was very erratic.
  • Fixed small logic error in 'MDM' bankswitching scheme.

New in Stella 4.6.6 (Oct 12, 2015)

  • Added 'Alt/Cmd + j' shortcut key and 'tv.jitter' commandline argument to toggle the TV scanline jittering emulation added in the last release. Also, this jittering now defaults to off.
  • Fixed bug in 'MDM' bankswitch scheme; bankswitching wasn't being done under certain circumstances.

New in Stella 4.6.5 (Sep 27, 2015)

  • Added mappable events for toggling TV color/BW, left difficulty A/B and right difficulty A/B. This means that one key, joystick button, etc. can be used to toggle each event. Thanks to Buzbard of AtariAge for the suggestion.
  • Added ability to edit values in more widgets in the debugger. For now, this applies mainly to the various decimal and binary fields. More widgets will be made editable in future releases.
  • The TIA now emulates the jitter that occurs when scanline counts are not consistent frame-over-frame. Also, the DPC+ scheme now emulates jitter that can occur when using its Fractional Datafetchers if the DFxFRACINC registers are not re-initialized every frame. Special thanks to SpiceWare for this implementation.
  • Tweaked 'MDM' scheme autodetection to detect that the identification string can be in either bank 0 or bank 1.
  • Changed 'hidecursor' commandline argument (and associated UI item) to 'cursor'. The new argument allows to set mouse cursor visibility separately for both UI and emulation modes.
  • Fixed snapshot bug most noticeable in MacOSX, where taking a snapshot of a TIA image sometimes left parts of the UI onscreen (and in the resulting picture).
  • Fixed memory leak; the game console wasn't being closed after exiting a ROM.
  • For the Windows port: added an application icon for Stella in the Control Panel "Add/Remove Programs" list.
  • For the OSX port: Updated build scripts to be compatible with Xcode 7.
  • Updated included PNG library to latest stable version.

New in Stella 4.6.1 (Apr 24, 2015)

  • Fixed bug whereby text input could not be entered in certain widgets in the debugger.
  • Updated UNIX configure script to work with GCC 5.x compilers.

New in Stella 4.6 (Mar 23, 2015)

  • Finally fixed fullscreen rendering issues on some OpenGL implementations in Linux (mostly Intel-specific). Basically, the concept of 'dirty updates' has been removed; the window is now updated continuously. This may also fix issues some people were having with triple-buffering in Windows Direct3D, etc.
  • Fixed sound corruption that happened when running a ROM for the first time. This was most obvious under OSX, but occasionally happened on other systems too.
  • Reverted some minor C++11 features (std::regex and cbegin/cend iterators) in a few places, since otherwise GCC 4.9 is required to compile Stella, and it isn't available on many systems yet. These changes allow Stella to be built with GCC 4.8, which is present in the latest 'long term release' of Ubuntu.
  • Fixed error messages on state loading; sometimes multiple messages were being added together and displayed.
  • Fixed bug when running ROMs using AtariVox controllers; the app would crash upon exiting the ROM.
  • Snapshot functionality now works while the emulation is paused.
  • Certain textfields in the UI now have filtering enabled, preventing insertion of illegal characters. This will be extended throughout the code in future releases.
  • DataGridWidgets in the debugger now respond to keypad '+' and '-'.
  • Updated included PNG library to latest stable version.

New in Stella 4.5 (Jan 3, 2015)

  • The conversion to C++11 has begun :) From this point on, to build Stella you will need a C++11 compatible compiler (Visual Studio 2013, Clang 3.3, gcc 4.9, Xcode 6, etc). Eventually, this will bring more bug-free and (hopefully) faster code.
  • Fixed major bug with joysticks, where mapping was being lost on reset, the app would crash when plugging/unplugging certain sticks, etc.
  • Fixed major (but rare) crash that could occur when state files were zero'ed or corrupted.
  • Added dialog which shows the internal joystick database (all the joysticks that Stella knows about) and the ability to remove (currently unplugged) joysticks from this database.
  • Added preliminary support for 'WD' (Wickstead Design) bankswitching scheme, used for a previously unreleased prototype ROM.
  • Improved ZIP file handling, so that it now works as a normal filesystem does (it properly shows nested files and directories).
  • The debugger 'reset' command now does a complete system reset, instead of simply setting the PC to the reset vector address.
  • The 'listdelay' command now accepts a value of zero, indicating that list-skipping (jumping to a line in a list by keypress) is disabled.
  • The 'ctrlcombo' command now has a GUI item, allowing it to be changed from within the application.
  • Added 'Shift-Alt/Shift-Cmd s' keyboard shortcut, to enable continuous snapshot mode for each frame. This is really only useful if you save snapshots in 1x mode; using it in high-resolution mode is not recommended. Special thanks to SvOlli for the idea and code.
  • The minimum supported version for the OSX port is now OSX 10.7. Because of this, the 32-bit version is also discontinued, as 10.7 supports 64-bit Intel only apps.
  • Updated internal ROM properties database to ROM-Hunter version 10 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection.
  • Updated included PNG library to latest stable version.

New in Stella 4.2 (Oct 29, 2014)

  • Text input from non-US keyboard layouts is now supported. Note that all text in Stella is still ASCII-only, but at least it can now be entered using a native layout.
  • Related to the text input changes, the debugger Alt-combo shortcuts have been changed; they now use the same key but with Control instead of Alt (Control-F for frame advance, etc).
  • Controllers are now detected dynamically by Stella. This means that you can plug/unplug joysticks/paddles/etc while Stella is running, and they will be added and removed automatically. Also fixed is a bug whereby sometimes custom joystick mappings weren't being saved.
  • The 'cpurandom' option is now broken down by register type, so you can selectively enable/disable randomization for each one. The default is to disable randomization for all registers.
  • Fixed 'MDM' scheme to trigger bankswitching on writes to hotspots (previously it only triggered on reads). Also, the scheme has been modified as originally designed by E. Blink; hotspots are now in the range $800-$BFF instead of $800-$FFF.
  • The OSX app-icon now includes 32x32 and 16x16 versions, so 'small' icons will be viewable in 'Finder', 'Get Info', etc.
  • The Linux port now uses an app-icon; this seems to be needed for some window managers.

New in Stella 4.1.1 (Sep 15, 2014)

  • Re-added 'uipalette' option due to popular demand.
  • Fixed bug in Windows port where pressing 'Alt' key combos resulted in an annoying system beep. Currently this is fixed by patching the SDL2 library and including a modified version with Stella.

New in Stella 4.1 (Sep 2, 2014)

  • Improved 'DASH' bankswitching scheme support; there is now a debugger tab for changing banks and viewing internal cart RAM, and autodetection is now implemented.
  • Added 'MDM' (Menu Driven Megacart) bankswitch scheme as described on AtariAge and originally developed by Edwin Blink.
  • Improved snapshot viewing in the ROM launcher; snapshots are now scaled to the available space, and can better accommodate sizes other than those generated by Stella itself.
  • Improved support on multi-monitor systems. Stella will now use the same monitor for fullscreen-windowed mode switches. Special thanks to Magnus Lind for patches that added this functionality.
  • Removed the 'bank' command from the debugger prompt, as it only worked (inconsistently) with certain bankswitch types. The bankswitch UI should now be used to query/set bank state.
  • Fixed bug in disassembly output; instructions at $F000 were never being highlighted during execution.
  • The UNIX configure script now supports newer versions of Hurd. Special thanks to Stephen Kitt for the patch.

New in Stella 4.0 (Jul 2, 2014)

  • Ported Stella to SDL2, which brings many new features. Among the largest improvements is native hardware acceleration support for Windows (Direct3D) and Linux/OSX (OpenGL). It is also now possible to port Stella to iOS and Android devices using OpenGLES. Hardware acceleration is now required, which means up-to-date drivers are needed. Software rendering is still present, but is somewhat unoptimized and unsupported going forward.
  • Fullscreen video modes now use the desktop resolution. Switching to fullscreen and back to windowed mode no longer rearranges icons on your desktop.
  • TIA TV effects are now available in all video modes, since hardware acceleration is a requirement.
  • Added a much more detailed view of cart extended RAM to a new debugger tab. Special thanks to SpiceWare for this implementation.
  • Added preliminary support for 'DASH' bankswitching scheme by A. Davie.
  • The AtariVox and SaveKey controllers now have the ability in the debugger to completely erase the virtual EEPROM data.
  • Added 'savesnap' debugger prompt command, and also associated context menu item to the debugger TIA output area. This saves the current TIA image to a PNG file.
  • Added 'hidecursor' commandline option, which allows to completely disable showing the mouse cursor (useful on systems that don't have a mouse).
  • Removed 'uipalette' option, as the original palette is no longer supported.
  • Updated included PNG library to latest stable version.

New in Stella 3.9.3 (Jan 23, 2014)

  • Added bankswitch schemes BF, BFSC, DF, DFSC and 4KSC, thanks to RevEng and CPUWIZ of AtariAge.
  • Updated ROM properties for several ROMs, thanks to Omegamatrix of AtariAge.
  • Fixed program crash when specifying a bankswitch type that Stella didn't recognize; an error message is now displayed.

New in Stella 3.9.2 (Sep 2, 2013)

  • Improved parsing of the DASM lst file for the debugger disassembly; it sometimes missed constant declarations.
  • Changed 'usemouse' argument from a true/false option to accept 'always', 'analog' and 'never'. This allows to use the mouse as a controller under more specific circumstances. The default is 'analog', which means the mouse is only used to emulate analog-like devices (paddles, trackball, etc).
  • Added ability to use bold fonts within the debugger window, which can be set with the 'dbg.fontstyle' commandline argument as well as in the debugger UI Settings dialog. This is useful for those that find the current font too narrow.
  • Renamed 'debuggerres' argument to 'dbg.res'. All future debugger- specific options will start with 'dbg.'.
  • The TIA 'zoom' area in the debugger now supports scrolling the mouse wheel (currently up/down only, as I don't have a sideways scrolling mouse to test with).

New in Stella 3.9.1 (Aug 22, 2013)

  • Note: because of TIA/6502 changes, the state file format has changed again, and old state files will not work with this release.
  • Several bugfixes and improvements to the debugger:
  • Improved display of debugger when using larger video modes. There are now three font sizes, which are automatically selected when the debugger is sized accordingly. When using larger fonts, the extra space is now used more efficiently.
  • Fixed bug in disassembly when the mirror used for the current PC didn't match the mirror for the current bank. In this case, the disassembler became confused and didn't properly track the PC address.
  • Fixed bug in display of current TIA frame number in the UI; depending on how breakpoints were set, it was sometimes off by one.
  • Fixed RAM widget Search/Compare textboxes; entering any data and then pressing 'Enter' / clicking 'OK' locked the UI until exiting and re-entering the debugger.
  • Changed display for various TIA position counters to decimal (from hex) in the TIA tab. Related to this, all data input widgets in the UI now have the ability to enter binary, decimal or hex values by using the proper leading character (\, #, $, respectively).
  • Added 'INTIM Clks' to the 'I/O' tab. which shows the number of clocks between each 'step' of the INTIM timer.
  • Added ability to modify 'tiadriven' commandline argument to the 'TIA' tab, and 'ramrandom' to the 'I/O' tab. These options were available for quite some time, but they weren't exposed in the UI.
  • Added 'cpurandom' commandline argument, and associated UI item to the 'I/O' tab. This works similar to 'ramrandom', and randomizes the contents of the CPU registers on ROM startup.
  • Added 'uhex' debugger prompt command, which toggles all hexadecimal display between upper/lower case. This setting is also saved in the settings file as argument 'dbg.uhex'.
  • Removed 'loadsym' command from the debugger prompt, since the DASM symbol file is always loaded anyway, making the command redundant. Related to this, fixed loading symbols with ###.name convention; the leading number is now stripped.
  • Added support for DASM lst files (created with the -l option). For now, the contents are only partially used, to detect constants vs. symbolic addresses in the symbol file. Eventually, further information from the lst file may be used.
  • The GRPx and PFx registers in the TIA output now show inactive background pixels as either blanked or with the underlying object colour, instead of always being black. This gives a more accurate representation of how the registers are actually drawn onscreen. Thanks to Tjoppen of AtariAge for this idea and sample code.
  • The 'Source Address' locations for the CPU registers now show labels where appropriate.
  • Renamed 'Override properties' dialog (accessible from the ROM launcher by a right-mouse-button click) to 'Power-on options', with the following new options:
  • Set start-up state for both joysticks as well as console select/ reset buttons. Related to this, added 'holdjoy01' and 'holdjoy1' commandline arguments, and removed 'holdbutton0' argument.
  • The ability to load the ROM directly from this dialog, after changing any settings, and also to start in the debugger.
  • Added more detailed information as to how to use this functionality to the UI.
  • Buttons held down are reset approx. 0.5 seconds after starting the ROM, to simulate pressing and releasing the buttons on a real console.
  • Fixed bug when using event remapping; changes were being saved only when launching a ROM from the launcher, not in standalone mode.
  • Improved bankswitch autodetection for newer EF and EFSC ROMs generated by batari Basic, thanks to RevEng of AtariAge.
  • Added properties database info for "Princess Rescue" ROM.
  • For the Linux/UNIX port:
  • Fixed bug whereby a maximize button was always present in the window title bar. Stella could not be expanded in this way, so the button was removed.
  • Added Startup notification protocol patch to the .desktop file from Dan Fandrich.
  • Updated included PNG library to latest stable version.

New in Stella 3.9 (Jun 27, 2013)

  • Greatly extended functionality of the debugger disassembly:
  • There is now a new tab which lists information specific to the cartridge bankswitching scheme in use. This includes the ability to modify internal state even for esoteric ROMs which don't follow the standard layout of 4K per bank.
  • The debugger now generates DASM-compatible disassembled code, which can be saved to an external file. This disassembly is based on both a static and runtime analysis, and is extremely accurate. It also automatically differentiates between CODE/PGFX/GFX/DATA/ROW areas, whereas normal Distella only differentiates between CODE/GFX/ROW. For now, only single-bank (4K and smaller) ROMs are supported; support for multi-bank ROMs will come in a future release.
  • The disassembly now recognizes various TIA/RIOT read/write mirrors, and marks them as such (for example, INPT4|$30 instead of INPT4 for address $3C). Special thanks to Omegamatrix for sample code and idea for this feature.
  • ROMS less than 2K in size (so called 'Sub2K' ROMs) now show only the actual data in the binary. This means, for example, that a 256 byte ROM will show only 256 bytes in the disassembly, instead of padding duplicated data to 2K boundary.
  • Fixed bug when entering patched bytes; the current number base wasn't being used.
  • Fixed labelling in ROW directives; it wasn't accurately setting a label in the case where it occurred in the middle of the data.
  • Added a new dialog for changing Distella settings, located by right-clicking the disassembly code.
  • The commandline option 'dis.resolvedata' has been renamed to 'dis.resolve', with new usage (see manual for further details).
  • Fixed regression in handling ZIP files (as compared to version 3.7.5) created with newer versions of the ZIP program. Related to this, added better error messages for invalid/missing/unreadable ROM files.
  • Added 'snapname' commandline argument and associated UI item, for specifying whether snapshots should be saved using either the internal ROM database name or the actual ROM filename. This feature was present in older releases of Stella, and due to popular demand it's now back again. Related to this, added a new dialog specifically for the numerous snapshot-related items.
  • Fixed bug in Linux/OSX versions when starting Stella for the first time; it was previously creating mislabeled directories to store settings, snapshots, etc.
  • Fixed redundant "New console created" message when entering the same ROM multiple times from the ROM launcher.
  • Updated profile database for "BasketBall" ROMs; the joysticks are now swapped by default, which allows one and two-player games to work correctly.
  • SuperCharger/AR ROMs now ignore the 'ramrandom' setting, and start with RAM containing all zeroes. This seems to fix issues with Dragonstomper always starting in exactly the same state.
  • Fixed issue when debugging CompuMate ROMs; keystrokes entered while debugging would be interpreted as typing on the CompuMate keyboard.
  • Changed colour of the 'current PC indicator' in the debugger to match the one used for line selection. This makes it easier to see for those with problems seeing lighter colours.
  • Improved functionality of the various pop-up dialogs and context menus in the UI; they can now be navigated more fully by the keyboard and mouse.
  • Updated internal ROM properties database to ROM-Hunter version 9 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection.
  • Updated included PNG and ZLIB libraries to latest stable version.

New in Stella 3.8.1 (Mar 4, 2013)

  • Added support for TIA RSYNC writes, thanks to Omegamatrix of AtariAge. This allows the recently released "Extra Terrestrials" ROM to run, as well as improving emulation of "Fatal Run" and several other test ROMs.
  • Fixed typo in TIA HMOVE writes, thanks to Thomas Jentzsch. This fixes the constant collision issues in "Kool-Aid Man", and several other homebrew ROMs.
  • Fixed sound issues on OSX PPC machines (all sound was in little-endian format, but PPC is big-endian).
  • The OSX DMG archive now contains proper modification dates.

New in Stella 3.8 (Feb 22, 2013)

  • Huge changes to the sound system:
  • The sound code now uses 16-bit signed samples instead of 8-bit unsigned samples, making it more compatible with a wider variety of systems.
  • Improved sound output for several ROMs, including "Space Rocks" (the 'heartbeat' sound can now be clearly heard).
  • The 'volume clipping' option has been removed, since in 16-bit mode it's no longer needed.
  • The 'Tia freq' option has been removed.
  • Selecting more common sample rates (other than 31400) now works much better, but there are still a few ROMS (like Quadrun) where 31400Hz still works best.
  • Many changes to handling ZIP archives:
  • Files in multiple levels are now recognized. This fixes issues in Windows where such files couldn't be loaded at all, and in all systems where ROMs with the same name (but in different directories) weren't being recognized.
  • ZIP contents are now handled more intelligently. Archives containing only one ROM are automatically loaded, whereas those with multiple files are treated as directories.
  • Opening an archive from the commandline now works as in the UI, where opening a multi-ROM archive will pop up the UI and show the archive contents (as a directory).
  • The ZIP code behind the scenes is now much faster by making use of caching (the old code was actually from 1998!).
  • This new 'archive' infrastructure may eventually lead to 7-Zip support, as well as 'virtual' formats (such as showing the list of files for 2in1/4in1/8in1/etc within the UI).
  • Improved bankswitch autodetection for FA2 ROMs; 29K and 32K versions (meant for Harmony cart) are now recognized.
  • Improved bankswitch autodetection for X07 ROMs (although there's only two known ROMs in existence, so the detection probably isn't robust).
  • Tweaked bankswitch autodetection for the 0840, F8 and FE schemes; several homebrews that didn't run before now work correctly.
  • Fixed regression in RIOT INTIM reads; at least one known ROM (Mr. Roboto Berzerk hack) wasn't working properly.
  • Fixed bug in the debugger with RIOT INTIM/TIMINT display; reads were being done multiple times, changing the state of the registers and resulting in incorrect emulation.
  • Worked around bug in debugger disassembly of zero-page RAM; for now, the resolving of address vs. data sections is turned off in such a case. This fixes lockups in 'Meltdown' ROM.
  • Added support for different directories for saving/loading PNG files. These are set with the 'snapsavedir' and 'snaploaddir' commandline arguments (which replace the old 'snapdir'), and are also available within the UI.
  • Changed 'eepromdir' commandline argument to 'nvramdir', and changed the default location to BASEDIR/nvram (where BASEDIR depends on your OS). This means all your EEPROM and Flash files will have to be manually moved to this new directory. This affects developers, and those people playing ROMs with AtariVox/SaveKey support as well as the newer 'Star Castle' FA2 ROMs.
  • Updated included PNG and ZLIB libraries to latest stable version.

New in Stella 3.7.5 (Dec 27, 2012)

  • Improved regressions in PAL format autodetection, introduced in the past several releases.
  • Fixed crash when loading invalid PNG files in ROM browser.
  • Snapshots generated by Stella now include more informative info, such as the build number, platform architecture, TV effects in use, etc.

New in Stella 3.7.4 (Nov 1, 2012)

  • Fixed screen blanking regression in 'Video Chess', and improved behaviour of ROMs that don't use VSYNC.

New in Stella 3.7.3 (Oct 27, 2012)

  • Note: because of TIA/RIOT changes, the state file format has changed again, and old state files will not work with this release.
  • Improved handling of 'illegal' VSYNC signals, which sometimes created 'short' frames that caused massive flickering. Also improved related behaviour when VSYNC isn't used at all.
  • Improved sound generation with ROMs that have irregular scanline counts. This fixes many demo ROMs as well as Quadrun, where previously there would be 'gaps' in the sound output.
  • Improved emulation of RIOT chip, in particular the behaviour of reading from TIMINT. Also, D6 of the Interrupt Flag register is now properly set on active transition of the PA7 pin.
  • Fixed bug in DPC+ bankswitch scheme; the music in "Stay Frosty 2" wasn't playing correctly.
  • The ROM properties database now uses 'Auto' instead of 'Auto-select' everywhere. This makes for less typing when running from the commandline.
  • Updated included PNG library to latest stable version.

New in Stella 3.7.1 (Jun 8, 2012)

  • Note: because of TIA changes, the state file format has changed again, and old state files will not work with this release.
  • Improved TIA emulation with ROMs that have too few or too many scanlines; the output is now more accurate compared to a real TV. Special thanks to Omegamatrix of AtariAge for test ROMs in this area.
  • Modified hotkey for "Change console palette" (Control-f) to also change the display properties of the TIA. This allows you to switch between NTSC/PAL/SECAM (and variant) modes dynamically. Related to this, added Shift-Control-f key to step backwards through the available modes.
  • Added '64in1' and '128in1' multicart bankswitching schemes, which work the same as the 2in1/4in1/etc ones (Control-r switches to each consecutive game in the ROM).
  • Fixed several bugs in DPC+ bankswitching scheme, including ability to load and save state files. As well, ROMs now work correctly after console format autodetection.
  • Fixed bugs in handling relative filenames on the commandline, introduced in the last release. The new functionality should be much more robust.

New in Stella 3.6.1 (Mar 31, 2012)

  • Extended FA2 bankswitch scheme to handle 28K ROMs (in addition to the previously supported 24K ROMs).

New in Stella 3.6 (Mar 17, 2012)

  • Added support for 2600-daptor II device, including native support for 7800 controllers, BoosterGrip and Keypad controllers. Special thanks go to Tom Hafner for a complimentary test sample of this device, and also for donating a BoosterGrip controller.
  • Added ability to dynamically swap the port order of Stelladaptor/ 2600-daptor devices with the 'Control-1' key combo (useful if you have only one 2600-daptor and want to use it as a left port normally, but as a right port for Star Raiders, etc).
  • Added CompuMate bankswitching/controller support to the emulation core; the Spectravideo CompuMate ROMs (NTSC and PAL) now work. Frequently used keys on the CompuMate are directly mapped to your keyboard (ie, Func-Space for backspace is mapped to Backspace, etc). Loading/saving from the cassette player is not yet supported, and will come in a future release.
  • Fixed bug in BoosterGrip controller emulation; the functionality of the booster and trigger buttons was reversed. Related to this, renamed these actions in the Event Mapping dialog to be more clear.
  • Reverted to SDL 1.2.14 for the Windows 98/2k release, since SDL 1.2.15 isn't supported in that environment.
  • Updated included PNG library to latest stable version.

New in Stella 3.6 (Mar 17, 2012)

  • Added support for 2600-daptor II device, including native support for 7800 controllers, BoosterGrip and Keypad controllers. Special thanks go to Tom Hafner for a complimentary test sample of this device, and also for donating a BoosterGrip controller.
  • Added ability to dynamically swap the port order of Stelladaptor/ 2600-daptor devices with the 'Control-1' key combo (useful if you have only one 2600-daptor and want to use it as a left port normally, but as a right port for Star Raiders, etc).
  • Added CompuMate bankswitching/controller support to the emulation core; the Spectravideo CompuMate ROMs (NTSC and PAL) now work. Frequently used keys on the CompuMate are directly mapped to your keyboard (ie, Func-Space for backspace is mapped to Backspace, etc). Loading/saving from the cassette player is not yet supported, and will come in a future release.
  • Fixed bug in BoosterGrip controller emulation; the functionality of the booster and trigger buttons was reversed. Related to this, renamed these actions in the Event Mapping dialog to be more clear.
  • Reverted to SDL 1.2.14 for the Windows 98/2k release, since SDL 1.2.15 isn't supported in that environment.
  • Updated included PNG library to latest stable version.

New in Stella 3.5.5 (Feb 5, 2012)

  • Due to changes in the debugger, old state files will not work with this release.
  • Fixed bug in sound restructuring introduced in the last release; in some cases, there could be some sound 'crackling' when starting a ROM after at least one ROM had already been loaded.
  • Several significant improvements to the debugger I/O tab:
  • added controller input widgets for many of the built-in controllers, allowing to control joysticks, paddles, etc from within the debugger.
  • added ability to modify the SWCHB/SWBCNT port B registers.
  • added ability to view TIA INPTx and VBLANK latch/dump bits.
  • Reworked 'mcontrol' argument, and added ability to map the mouse axes separately for paddles 0-3 or driving controllers 0-1. In such modes, the left mouse button is tied to the x-axis, and the right button is tied to the y-axis.
  • Mouse 'specific-axis' mode is now saved per-ROM, meaning that each ROM can have separate settings. For example, this allows one ROM to use paddles 0 and 1, while another can use paddles 0 and 2, etc.
  • The key-combo for switching the mouse between controller modes is now 'Control-0' (Control-1,2,3 have been removed). This switches between all possible modes for the current virtual controllers.
  • Fixed bug in 'Fixed Debug Colors' mode; under certain circumstances, playfield graphics could be coloured as being player graphics.
  • Fixed bug in PAL color-loss setting in Video Settings; changing the settings wouldn't take effect until the ROM was reloaded.
  • Fixed bugs with cheatcode handling; loading a ROM with a cheat disabled would sometimes trash the emulation. More work is required in this area, including the ability to create more advanced types of cheats.
  • Updated ROM properties database for all Sega Genesis controller compatible ROMs. Also, the mouse can now emulate a Genesis controller, with the left/right buttons mapped to buttons B and C, respectively.
  • Added 'FA2' bankswitch scheme, thanks to code from Chris D. Walton. This scheme will be used in an upcoming 'Star Castle' ROM.
  • Updated internal ROM properties database to ROM-Hunter version 7 (thanks go to RomHunter for his tireless research in this area).
  • Added several PERL tools to help in automation of analyzing RomHunter ROM set releases.
  • Fixed compile issues in Irix when using the default compiler instead of gcc. Thanks go to Rainer M. Canavan for this code.
  • Updated included PNG library to latest stable version.

New in Stella 3.5 (Dec 30, 2011)

  • Stella is now DonationWare! Please see the DonationWare link on the main webpage for more information.
  • Added several improvements to the joystick management code. Joystick event mapping is now saved per device, meaning that if you map events to a certain joystick device, remove the device and then later insert it again, Stella will remember the original mapping.
  • The total number of joysticks present and their associated properties (number of axes, buttons and hats) is now dynamic. That is, there's no longer a hard-coded limit on the number of joysticks that Stella can use, or the number of buttons, etc that it contains. This fixes a serious bug with PS3 controllers with 27 buttons, whereby adding a mapping for joystick 0 would inadvertantly change settings for joystick 1, and could potentially lead to a program crash.
  • Added 'mcontrol' commandline argument, which can specify to use each mouse axis as a separate paddle. The old (and default) behaviour can be activated by setting this argument to 'auto'. Related to this, removed redundant 'usemouse' argument.
  • Huge restructuring of the OpenGL code, making it compatible with OpenGL 2.x+ features (such as vertex buffer objects), while at the same time keeping compatibility with OpenGL 1.5 / OpenGL ES. Because of the required changes, TV effects were removed (they will be added again for the next release).
  • Improvements to audio handling, particularly for certain cases of Windows, ATI video cards, and OpenGL mode. The sound device is now opened only once when Stella starts, and is paused between loading different ROMs. This fixes a problem whereby sound could possibly not be functional after loading the first ROM. Related to this, removed the 'audiofirst' commandline argument as it's now redundant.
  • Fixed bug with displaying the ROM launcher in Windows XP; the initial load was sometimes taking up to 30 seconds to complete.
  • Added logging facility, whereby the output of the application is available within Stella itself. This can still be printed to the console, or also saved to a file. Add the 'loglevel' and 'logtoconsole' commandline arguments which control these settings, and removed the 'showinfo' argument as it's now redundant.
  • Updated DPC+ bankswitching scheme to latest code provided by SpiceWare.
  • Added MAMCR handling to the Thumb ARM emulation code. Note that MAMCR isn't actually emulated, it is just ignored for now. This fixes a bug whereby accessing MAMCR would crash the ARM emulation.
  • Added 'thumb.trapfatal' commandline argument, which causes the Thumb ARM emulation to either trap on a fatal error (throw an exception to the debugger and exit emulation) or simply log the error and continue. This should normally always be enabled, but can be disabled by developers for testing reasons.
  • Updated default snapshot directory to be much saner and easier to find. For most systems, it now defaults to the users 'Desktop'. Note that the commandline argument has changed to 'snapdir'.
  • The debugger 'print' command now indicates "special" addresses if they are read-only (R), write-only (W) or read-write (R/W).
  • Fixed a bug where scrolling the mouse-wheel in certain debugger UI items would cause the program to crash; scrolling now works as expected.
  • Fixed minor display issue in the debugger RAM area; some addresses were being displayed as '...'.
  • Fixed compile issues in the latest versions of Ubuntu and Debian, and fixed UNIX desktop file so that Stella will launch with a ROM when selected from its icon. Thanks go to Stephen Kitt for this code.
  • Updated included PNG library to latest stable version.
  • Updated the credits list in the documentation, listing people that have donated hardware to the Stella team.

New in Stella 3.4 (May 29, 2011)

  • Many improvements to input handling, particularly with the mouse and paddles:
  • The mouse can now be used to emulate a joystick, booster-grip or driving controller.
  • The mouse now controls only one device at a time (1 of 4 paddles, 1 of 2 joysticks, etc), instead of devices from both virtual ports.
  • The sensitivity for digital and mouse input (for paddles) can now be set separately with the 'dsense' and 'msense' commandline arguments, and from within the Input Settings UI.
  • Added support for the 2600-daptor device (http://2600-daptor.com), which is similar to a Stelladaptor but improves handling of paddles. Thanks go to Tom Hafner for a complimentary test sample of this device.
  • Added new controller types 'Paddles_IAxis', 'Paddles_IDir', and 'Paddles_IAxDr', which invert the paddle axis, direction, and axis+direction, respectively. These are used for certain ROMs that have the axis or direction inverted from normal (for example, using the paddles causes on onscreen object to move up and down vs. left and right). All applicable ROMs in the internal database have been updated.
  • Added preliminary support for emulating ARM code to the DPC+ bankswitching scheme (thanks to Batari). Related to this, fatal errors in the DPC+ ARM code are now caught and shown in the debugger.
  • Updated internal ROM properties database to ROM-Hunter version 6 (thanks go to RomHunter for his tireless research in this area).
  • The ROM audit dialog now automatically selects the current directory in the ROM launcher, and reloads the directory after the audit is complete.
  • Removed the 'grabmouse' functionality; the mouse is now always grabbed while playing a game, and released otherwise.
  • Updated built-in version of the PNG library to the latest version.

New in Stella 3.3 (Nov 13, 2010)

  • Added the following Distella 'directives', which are used to override and specifically tell the debugger how to treat address space (CODE, GFX, PGFX, DATA, ROW). See the debugger documentation for more information.
  • Disassembly from the debugger is now tracked by the emulation core, and accented by the built-in Distella code. Basically, the emulation core knows when an address is referenced as code, making for very accurate disassembled output. Related to this, the emulation core now tracks accesses to GRPx and PFx registers, automatically marking the addresses as GFX or PGFX sections. This will be improved in future releases, as there are many ways to store data in the graphics registers.
  • Improved output of graphics output in the disassembler, by marking such addresses with a bitmap of the data they represent. This allows player graphics (GFX directive) and playfield graphics (PGFX directive) to really stand out in the disassembly. Related to this, added ability to edit such graphics in either binary or hexidecimal.
  • Added preliminary support for Distella configuration files. Much more work is required in this area, since Stella now contains directives that don't yet exist in the standalone Distella program. Configuration files are automatically loaded, and debugger commands now exist to load and save configuration directives directly from the debugger.
  • Added the following commands to the debugger prompt:
  • ◦ clearconfig, listconfig, loadconfig, saveconfig
(used for Distella configuration files)
  • ◦ code, data, gfx, pgfx, row
(directives used to override automatic disassembly types)
  • ◦ jump (jumps to a specific address in the disassembly)
  • type (gives detailed info for disassembly type of an address)
  • The debugger prompt commands 'trap', 'trapread' and 'trapwrite' now accept a range of addresses as well as a single address.
  • Added 'data source' address output for the CPU SP/A/X/Y registers. This is useful for quickly seeing what an operand address resolves into with various load commands.
  • Many commands in the debugger prompt are now case-insensitive; further improvements will be made in future releases.
  • Many improvements to the built-in Distella disassembler. When passing a relative branch or jump, data is now disassembled as code only if the emulation core hasn't detected it as data. Such 'preliminary' code is marked with a '*' in the disassembler, indicating that it is tentative code, and hasn't actually been executed yet. This allows to quickly see possible code paths, and at the same time eliminate disassembly of addresses that are never used as code sections.
  • Program counter/instruction addresses can now be toggled in the disassembly.
  • Disassembled instructions involving relative branches now show only one byte for the operand, not two bytes.
  • Fixed bug in several text input fields, whereby binary data couldn't be input (a '\' was required, but the character was blocked).
  • Fixed issues with PAL ROMs on screenmodes smaller than a PAL ROM would require. In this case, the image is centered and clipped to the screen resolution. This prevents the message "PAL ROM not supported" from appearing.
  • Fixed bug in fullscreen OpenGL mode when using ATI video cards; the desktop background was 'bleeding through', resulting in a very annoying flickering.
  • Fixed crashes when opening windows larger than the desktop resolution in fullscreen mode; this is now allowed only in windowed mode.
  • Application window centering now also works when switching between video modes, not just when starting the application.
  • Added support for building a Windows version compatible with Windows 98 and 2000 (compiled with Visual Studio 2005). Testing is very limited, since I no longer have access to these systems.
  • Fixed build issues for Innosetup in Windows XP.
  • Fixed bug in OSX version where the name of the application wasn't being shown in Activity Monitor.
  • State files from older versions will no longer work in this release, because of the extensive changes to the debugger and disassembler.

New in Stella 3.2.2 (Sep 19, 2010)

  • Fixed bug with window centering; if enabled and the the window was larger than the desktop, the window would be moved offscreen.

New in Stella 3.2.1 (Aug 26, 2010)

  • Fixed major bug in debugger rewinding; bankswitched ROMs weren't being rewound correctly.
  • Fixed (hopefully) final issues in joystick hat handling.

New in Stella 3.0 (Sep 12, 2009)

  • Huge updates to the TIA emulation system. Illegal HMOVEs are now handled correctly, resulting in improvements to many ROMs (thanks to Wilbert Pol for many ideas and code for these improvements). All HMOVE emulation 'cheats' were removed; the emulation is now cycle-exact in this area.
  • Improved emulation of the Cosmic Ark 'starfield effect', also used in Stay Frosty; the emulation now looks very accurate.
  • Many improvements to the normal TIA rendering code, fixing problems when disabling certain graphical objects (certain objects were being misdrawn when others were enabled/disabled).
  • Improved TIA collision handling in the non-displayable area of the screen; this fixes problems in RAMRacer ROM.
  • Improved TIA redraw problems/graphical garbage when ROMs generate many more scanlines than a real TV would allow; this fixes problems in Q-Bert and the recent Playaround demo.
  • Added 'Fixed Debug Colors' option similar to the no$26k emulator. This allows each graphical object to be drawn in a fixed color, more clearly showing how the objects interact. HMOVE blanks are also shown in a different color. The TIA now emulates a 7-color register model, allowing even shared objects to show different colors. This is toggled with the 'Alt Comma' key.
  • Related to 'Fixed Debug Colors', HMOVE blanks can now toggled during TIA display with the 'Alt-m' key.
  • Added rewind functionality to the debugger, where states are saved after each step/trace/scanline/frame advance. Pressing 'Alt-r' or clicking the new rewind button will undo up to 100 previous operations.
  • Added 'electron beam indicator' to the debugger TIA output. Basically, this is a visual pointer indicating the position of the electron gun when scanning the display.
  • Added ability to completely disable fullscreen mode, which fixes problems for some people where fullscreen mode was being entered even if it wasn't enabled.
  • Added '-joyallow4' commandline argument and associated UI item to allow all 4 directions to be pressed simultaneously on a joystick.
  • Improvements made to the ROM launcher: the backspace key now goes to the parent directory (this key can be remapped), and previously selected directories are now automatically selected.
  • Added support for 2IN1 bankswitching scheme, where two ROMs are present in one binary. Currently supported are 2, 4, 8, and 16K ROMs.
  • Added bankswitch support for the 6K version of Starpath/Supercharger ROMS. This allows the 6K version of Cubis to run.
  • Updated bankswitching schemes FASC and MB; they are now known as FA and F0, respectively. This naming brings Stella in line with other emulators and programming utilities.
  • Fixed editing of cheats in the Cheat Dialog; the old cheat wasn't being removed.

New in Stella 2.8.4 (Jul 6, 2009)

  • Fixed bug where Stella could lock up after running for ~71 minutes. Special thanks to Robert Tuccitto for bugtesting and feedback on this issue.
  • Updated UA bankswitch autodetection for Gingerbread Man ROM.
  • Updated 0840 bankswitch autodetection for Toyshop Trouble ROM.
  • The smallest ROM that Stella can support is 64 bytes; this lower limit is now tested when loading Sub2K ROMs.
  • Starting from this release onward, I will be providing Linux binaries for the latest version of Ubuntu only (currently, 32/64-bit Jaunty). The Mandriva RPMs are discontinued, but will probably be still available from the PLF repository. Sorry for any inconvenience this may cause, but I can no longer build, maintain or support packages for systems that I don't personally use.

New in Stella 2.8.3 (Jun 26, 2009)

  • Fixed OpenGL bug which caused an immediate program crash if the
  • available OpenGL version was less than 2.0.

New in Stella 2.8.2 (Jun 23, 2009)

  • Fixed OpenGL detection bug which could disable OpenGL support entirely
  • if TV effects are not available (version < 2.0), when in fact only the
  • effects should have been disabled.
  • The '' character can now be entered in UI text fields again.
  • Related to this, strings containing '' are now properly loaded and
  • saved to various config files.

New in Stella 2.8.1 (Jun 22, 2009)

  • NOTE: Windows users will have to reset their options or manually move
  • their config folder in this release, since the location of the config
  • files has changed.
  • Fixed OpenGL issue for some Windows users whereby the OpenGL TV
  • effects weren't available, even if the available version of OpenGL
  • was sufficient. Related to this, the OpenGL version found by
  • Stella is now reported in the TV effects dialog.
  • Added fallback to software rendering when OpenGL rendering has been
  • requested, but for whatever reason fails to initialize.
  • Added native support for 4in1, 8in1 and 32in1 multicart bankswitching
  • schemes. When using these schemes, the 'Reload ROM' action
  • (by default, Control-r) will switch between each game in the ROM.
  • Added bankswitch support for ROMs smaller than 2K in size. These
  • will be treated as 2K ROMs natively, without having to manually
  • 'pad' them to 2048 bytes.
  • Added preliminary suppport for autodetection of X07 bankswitching.
  • Tweaked PAL autodetection; it was marking some PAL ROMs as NTSC.
  • Changed default location for Stella config files in Windows to
  • the users' APPDATA folder (for XP and Vista, this is
  • '~/Application Data/Stella'). The '~' symbol now represents the
  • users PROFILE/home directory, matching its usage in Linux and OSX.
  • The ability to override this with 'basedir.txt' is still
  • available, but not advised.
  • Changed '-exitlauncher' commandline argument to '-uselauncher'.
  • This works as before except the launcher is never used at all if
  • the option is set to false.
  • Fixed crash when launching Stella from the commandline and giving
  • a directory name instead of a rom filename.

New in Stella 2.8 (Jun 10, 2009)

  • Added CRT simulation effects as described in the AtariAge posting
  • 'CRT emulation for Stella'. For now, this requires OpenGL 2.0 or
  • greater with support for GLSL (GL Shading Language). This code
  • will be expanded on and optimized in future releases.
  • Adding editing of extended RAM in the debugger RAM UI. The RAM
  • 'spreadsheet' now shows the entire address space of RAM in the
  • system, in 128 byte increments. The first bank shown is zero-page,
  • with the others following in consecutive order. The UI takes care
  • of read vs. write port differences, so you don't have to worry
  • about the offsets. For now, all SuperChip based ROMs (EFSC, F4SC,
  • F6SC, F8SC) as well as 3E, CV, E7 and FASC are supported.
  • All ROMs which include SC extended RAM will now have memory erased if
  • you attempt to read from the write port. Related to this,
  • entering/exiting the debugger will no longer erase the extended RAM.
  • Patching of ROM for bankswitch types 0840, SB, UA and X07 is now
  • implemented, but hasn't been extensively tested.
  • Visual improvements to the CPU register UI in the debugger; the
  • SP/A/X/Y registers now have separate decimal and binary views.
  • Tweaked paddle control so that all positions are reachable in game
  • 4 of Activision Casino in both NTSC and PAL versions.
  • SuperCharger/AR ROMs now start with a random value in the CPU
  • accumulator. This should fix issues with Dragonstomper always
  • starting in exactly the same state.
  • Auto-detection for '3F' bankswitching improved; several ROMs
  • previously detected as 'F8' now work correctly.
  • Updated internal ROM properties database to ROM-Hunter version 5
  • (thanks go to RomHunter for his tireless research in this area).
  • Added '-exitlauncher' commandline argument and associated UI item,
  • to specify what happens when you exit a ROM. Normally, exiting a
  • ROM brings up the ROM launcher, but this can be disabled for those
  • using an external frontend (in which case exiting a ROM also exits
  • from Stella).
  • Re-added '-fastscbios' commandline argument, and added an associated
  • UI item. When enabled, the SuperCharger load bars are now completely
  • removed (and not just sped up as in previous releases).
  • The '-listrominfo' commandline argument now shows all ROM
  • information built in to the internal database, taking into account
  • any information in 'personal' stella.pro files.

New in Stella 2.7.7 (May 4, 2009)

  • Corrected emulation of CPU opcodes involving 'decimal' mode (ADC/RRA and SBC/ISB). Special thanks to SeaGtGruff and others on the Stella mailing list for in-depth discussion and creation of test ROMs.
  • Fixed bug in F4SC bankswitching mode; writes to bankswitch addresses weren't triggering a bank switch.
  • Changed internal sound frequency of Pitfall 2 from 15.75KHz to 20KHz, as this sounds much more authentic when compared to a real cartridge.

New in Stella 2.7.6 (Apr 15, 2009)

  • Added support for 'EF' bankswitching (Paul Slocum Homestar Runner), as well as auto-detection of this format.
  • Added support for 'EFSC' bankswitching, as well as auto-detection of this format. This is similar to the 'EF' scheme, but also includes 128 bytes SuperChip RAM.
  • Added autodetection for '0840' and 'SB' bankswitching formats.
  • Improved autodetection for 'UA' bankswitching format.
  • Fixed bug in selecting video modes larger than the current screen; the resulting video mode will now be the largest one available (previously it selected the smallest one available).
  • The currently selected CPU register now displays its value in decimal and binary (in addition to hex) in the debugger.

New in Stella 2.7.5 (Mar 28, 2009)

  • After about 2 years, finally fixed the infamous 'red screen' issue when using ATI video cards in OpenGL mode in Windows. In the end, it was determined to be a bug in the ATI drivers. Special thanks go to Phillip Pi for bugtesting and constant feedback wrt this bug.
  • Fixed bug in TIA SCORE mode emulation when the Priority bit is also set. This fixes a very noticable graphical glitch in 'Swordquest Waterworld', as well as minor glitches in several other ROMs such as 'Space Shuttle'.
  • Treat spaces as normal characters in the ROM launcher. This means that ROMs with spaces can be located with quick selection (ie, typing characters will automatically jump to a ROM with that name, and typing 'space' won't cause the launcher to jump back to the top of the list).
  • The debugger window can now have a minimum height of 620 lines (previously the minimum was 690), but you lose access to the TIA 'RAM' bytes when using this resolution. This should allow it to work better on devices with small displays.

New in Stella 2.6.1 (Nov 3, 2008)

  • Introduced more accurate timing for NTSC vs. PAL modes, where the framerate is based on the number of scanlines per frame. This should eliminate 'clicking' sounds when emulating ROMs that don't follow the exact NTSC or PAL scanline specs.
  • Added ability to see the current number of scanlines and corresponding framerate to the TIA emulation. This can be set with the '-stats' commandline argument, or dynamically turned on and off with the 'Alt-l' key combo.
  • Modified '-framerate' commandline argument, where a non-zero value overrides the automatic framerate calculation (based on number of scanlines). Setting 'framerate' to zero re-enables auto-frame calculation. Also, re-enabled changing the framerate from within the UI.
  • Added '-timing' commandline argument, which sets the type of waiting between processing frames. Setting it to 'sleep' emulates the previous behaviour in Stella; setting it to 'busy' emulates z26, and can in some cases eliminate screen tearing (at the expense of using all available CPU time).
  • Fixed issue with debugger disassembly and mirrored $40 TIA write addresses. They were actually defined at $30, and generating incorrect labels.
  • Fixed issue in AtariVox and SaveKey controllers where accessing the EEPROM sometimes failed after the first write.
  • Changed AtariVox and SaveKey EEPROM emulation to default to $FF for a blank EEPROM.
  • Fixed regression in cart auto-detection logic; some F6 ROMs were being misdetected as E7.
  • Fixed issue with M6532/RIOT timer initialization; it was causing some ROMs to hang (most notably Summer Games). Related to this, reworked the built-in random number generator to generate 'more' random numbers.
  • Fixed bug in CommandMenu where console buttons (Select, Reset, etc) weren't doing anything.

New in Stella 2.6 (May 22, 2008)

  • Added AtariVox support using a real AtariVox device, where Stella sends data directly to the AtariVox. For now, this is supported in Linux/UNIX, OSX, and Win32 only. You'll obviously need a real AtariVox, and a serialUSB adaptor to connect it to your system. Added '-avoxport' commandline argument used to set the serial port to which the AtariVox is connected. Special thanks to Al Yarusso and Richard H. for providing sample hardware.
  • Added AtariVox and SaveKey EEPROM emulation. This reads/writes data to a 32KB file, not to the actual hardware. Very useful for testing EEPROM support without actually wearing out the real device. Special thanks to J. Payson for providing the EEPROM emulation code, and A. Herbert for answering many driver-related questions.
  • Added support for CX-22, CX-80, and AmigaMouse trackball controllers.
  • Improved debugger symfile handling so that addresses accessed as read-only won't use write-only labels (and vice-versa). More work is still needed in this area.
  • Added M6532/RIOT tab to the debugger. This will be expanded on in a future release.
  • Added TIA emulation fixes for graphical glitches in Escape from the Mindmaster, Mission Survive, Solaris, and SWOOPS!
  • Fixed bug where fullscreen OpenGL scaling wasn't working on 4:3 monitors.
  • Further improvements to the M6532/RIOT emulation, which unfortunately have broken old state files (again).
  • Added deadzone setting, for adjusting the deadzone amount for analog joysticks. This can be set using the commandline argument '-joydeadzone' or dynamically within the UI.
  • Make ROM disassembly in debugger take advantage of a wide window.
  • Fixed bug in 6507 BCD handling introduced in the last release.
  • For the Win32 port; Win9x should be fully supported again.