Stella Changelog

What's new in Stella 4.7.2

Apr 12, 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 (Jan 26, 2016)

  • 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.
  • 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!

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 28, 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 23, 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 (Mar 23, 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 (Feb 25, 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 (Sep 2, 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 28, 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.2 (Jun 11, 2012)

  • Fixed bug in handling filenames with the '~' character, as is used extensively by RomHunter rom-sets.

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.7 (Jun 1, 2012)

  • Added Blargg TV effects, with presets for Composite, S-video, RGB, and badly adjusted TV, and well as a custom mode with full configurability of contrast, brightness, gamma, etc. Many keyboard shortcuts and commandline arguments were added to support this. These effects are OpenGL-only.
  • Updated the CompuMate keyboard handler to recognize more keys on an actual keyboard, instead of having to remember the weird combinations used on the original CompuMate keyboard (although those original keys will continue to work). Related to this, fixed bug whereby 'ghost keys' would be detected by the CompuMate, particularly after pressing 'Enter' to start a game from the ROM launcher.
  • Added emulation for MindLink controller using the mouse; the 'Bionic Breakthrough' and 'Telepathy' ROMs now work.
  • Updated FA2 bankswitch scheme (Star Castle) to emulate load/save high score functionality to the Harmony cart flash RAM.
  • Added ability for ROM launcher to 'descend' into ZIP files when it contains more than one ROM file. This means you no longer have to unzip a multi-file archive before using each ROM. Thanks go to Roland Schabenberger (webOS maintainer) for this idea and sample code.
  • Several improvements to the debugger/disassembler:
  • The 'resolvedata', 'showaddr' and 'gfxformat' commandline arguments are renamed to start with 'dis', indicating that they're used with the built-in disassembler.
  • Zero-page code addresses no longer have their high-byte truncated, and system equates (TIA and I/O registers) are now properly marked as such.
  • The Distella '-r' option (Relocate calls out of address range) is no longer the default, resulting in output more consistent with normal usage of Distella. Related to this, added the '-dis.relocate' commandline argument (and associated UI item) to toggle this dynamically.
  • Fixed bug in EFSC bankswitch scheme state saving; the Superchip RAM wasn't actually being loaded and saved to state files.
  • Improved speed of loading and saving state files, as well as slightly reducing their size. Because of this, old state files will not work with this release.
  • Replaced commandline argument 'uselauncher' with 'exitlauncher'. The new option specifies the behaviour of the ROM launcher when exiting a ROM (always exit to launcher, or only when the launcher was actually used). This setting can now be changed in the GUI.
  • Several updates to the internal properties database:
  • 'Juno First' ROMs now use an AtariVox/SaveKey when possible
  • 'Astroblast' ROMs now use the paddles by default
  • 'Star Castle 2600' ROMs added
  • Changed key-combo for enabling TIA objects and collisions to be toggled on and off with the Alt-period and Shift-Alt-period respectively (instead of having two separate keys to turn them on and off).
  • When working on the commandline, relative filenames are now correctly handled (current working directory is used).
  • The Windows 98/ME/2000 builds have been discontinued, due to code and features that are only available on Windows XP/SP3 and later.
  • Updated included PNG library to latest stable version.

New in Stella 3.6 (Mar 19, 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 6, 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.3 (Nov 29, 2010)

  • Added the following Distella 'directives', which are used toverride and specifically tell the debugger how ttreat 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 tthis, the emulation core now tracks accesses tGRPx and PFx registers, automatically marking the addresses as GFX or PGFX sections. This will be improved in future releases, as there are many ways tstore 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) treally stand out in the disassembly. Related tthis, added ability tedit 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 tload and save configuration directives directly from the debugger.
  • Added the following commands tthe debugger prompt:
  • clearconfig, listconfig, loadconfig, saveconfig
  • (used for Distella configuration files)
  • code, data, gfx, pgfx, row
  • (directives used toverride automatic disassembly types)
  • jump (jumps ta specific address in the disassembly)
  • type (gives detailed inffor 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 intwith various load commands.
  • Many commands in the debugger prompt are now case-insensitive; further improvements will be made in future releases.
  • Many improvements tthe 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 tquickly 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 twbytes.
  • 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 tthe screen resolution. This prevents the message "PAL ROM not supported" from appearing.
  • Fixed bug in fullscreen OpenGL mode when using ATI videcards; 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 alsworks when switching between videmodes, not just when starting the application.
  • Added support for building a Windows version compatible with Windows 98 and 2000 (compiled with Visual Studi2005). Testing is very limited, since I nlonger have access tthese 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 nlonger work in this release, because of the extensive changes tthe debugger and disassembler.

New in Stella 3.1.1 (Apr 29, 2010)

  • Fixed program crash when using RIOT addresses and labels in the debugger console prompt.
  • Updated DPC+ bankswitch scheme to latest specifications.