New in version 4.6
March 21st, 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 version 4.5 (January 2nd, 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 version 4.2 (October 31st, 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 version 4.1.1 (September 15th, 2014)
- Re-added 'uipalette' option due to popular demand (of at least one person :)).
- 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 version 4.1 (September 2nd, 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 version 4.0 (July 5th, 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 version 3.9.3 (January 21st, 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 version 3.9.2 (November 13th, 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 version 3.9 (June 28th, 2013)
- This version includes many debugger/disassembly improvements, including the ability to save DASM-compatible source code to an external file.
- Also included are improvements to the snapshot functionality, and an improved UI.
New in version 3.5.5 (February 5th, 2012)
- This version includes several improvements to the I/O debugger area, and greatly improves mouse controller functionality.
New in version 3.5 (January 1st, 2012)
- This version features many improvements to joystick and mouse handling and an internal logging system.
- It also includes an updated OpenGL backend, fixes for certain sound issues, and several debugger improvements.
- Finally, Stella is now DonationWare.
New in version 3.4 (May 30th, 2011)
- This version improves support for using the mouse in paddle games, adds support for the 2600-daptor device, and allows games to run using the DPC+ scheme that contains ARM code.
New in version 3.3 (November 17th, 2010)
- This version includes much improved disassembly output (by tracking accesses to ROM from the emulation core), and fixes for several video-related lockups and crashes.
New in version 3.2.1 (August 26th, 2010)
- This version fixes a major bug in debugger rewinding for bankswitched ROMs, and adds much improved joystick "hat" handling.
New in version 3.1.2 (May 10th, 2010)
- Modified 'showinfo' command to accept levels of output, where increasingly larger numbers provide more debug output. Related to this, added UI item to modify 'showinfo'.
- Updated DPC+ bankswitch scheme to latest specifications, including support for 32K ROMs with ARM code (the ARM code is ignored for now).
- Fixed bug in saving patched ROMs using DPC and DPC+ bankswitch schemes; the saved image didn't actually include any changes made by the user.
- Removed 'uselauncher' from the UI, since disabling it will remove the ROM launcher on all future runs, and not allow one to enable it again. It's still available from the commandline, for those that have a need for it.
New in version 2.8.4 (July 5th, 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.
- The smallest ROM that Stella can support is 64 bytes; this lower limit is now tested when loading Sub2K ROMs.
New in version 2.8.3 (June 26th, 2009)
- Fixed OpenGL bug which caused an immediate program crash if the available OpenGL version was less than 2.0.
New in version 2.8.2 (June 23rd, 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 version 2.8.1 (June 19th, 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 version 2.7.7 (May 4th, 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 version 2.7.6 (April 15th, 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 version 2.7.5 (March 27th, 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 version 2.7.3 (February 9th, 2009)
- Problems with software rendering in 24-bit color mode were fixed.
- The ability to relocate the base directory for the configuration files was added to the Win32 port.
- The TIA info stats area was reworked to take up less space on screen.
New in version 2.7 (January 19th, 2009)
- Totally reworked the built-in UI to be font-sensitive and use higher- resolution fonts. Stella now requires a minimum screen size of 640x480. If used in a resolution smaller than that, the fonts will be reduced accordingly. Related to this, switching between software and OpenGL rendering now requires an application restart.
- Added three different sized fonts (small, medium, large) which can be used in the ROM launcher.
- Added ability to temporarily override ROM properties from the UI. This is tied to a right mouse button context menu in the ROM launcher, and is very useful when you want to use a set of properties for all subsequent ROMs without having to manually change each one.
- Added ability to filter the files shown in the ROM launcher. Currently, the choices are 'all files', 'all roms', or 'roms ending with a certain extension'. This functionality is tied to a right mouse button context menu in the ROM launcher. Extensions can also be set with the '-launcherexts' commandline argument.
- Added ability to reload the listing in the ROM launcher, either from a right mouse button context menu or pressing the Control/Cmd-R key.
- Made the ROM info viewer in the ROM launcher configurable to show snapshots in 1x or 2x mode.
- Made the delay between consecutive keys being recognized as one word configurable in the ROM launcher. This is useful if you find that you have to press keys too quickly to jump to a specific ROM. This can be set in the UI or using the '-listdelay' commandline argument.
- Updated internal ROM properties database to ROM-Hunter version 4 (thanks go to RomHunter for his tireless research in this area).
- Expanded the statistics overlay for the TIA image to also show Display Format and Bankswitch type information.
- Added '-ss1x' commandline argument and associated UI item, used to generate snapshots in 1x mode, independent of the filtering/scaling currently in use.
- Various path textboxes in the UI now recognize './' (or '.') to mean the current directory and '~/' (or '~') to mean your home directory (for Windows, home directory will be your 'My Documents' folder).
- Large speedup in loading directories with many files in the ROM launcher.
- Fixed reset issue in 3E, 4A50, AR, CV, E7, F4SC, F6SC, F8SC, FASC and MC ROMs; the internal RAM wasn't being randomized after the initial reset.
- M6532/RIOT RAM is now randomized at every reset, not just when the emulation starts.
- Fixed bug in _diff pseudo-registers in the debugger; they were actually defined backwards.
- Added fix for 'Challenge/Surfers Delight' ROM; the startup bank was incorrect. Combined with the new 'Override Properties' functionality, you can now play both games directly from the UI (no need to use the commandline).
- Fixed paddle issue with Activision Casino ROM; the last card in game 4 can now be reached.
- Added new pseudo-registers to the debugger, useful for conditional breakpoints (_fcount, _cclocks, _vsync, _vblank).
- Added 'timing' commandline argument functionality to the UI, so you no longer need to use the commandline to set it.
- Size restrictions on the TIA image are now strictly enforced. The maximum height of a 1x TIA image is now 256 lines.
- Added a new setting to the 'fullres' option named 'auto'. Using 'auto' will let Stella decide the best videomode to use in fullscreen.
- Changed 'gl_fsmax' option to mean 'scale TIA image in fullscreen'. It will have no effect on UI modes.
- Changed 'gl_aspect' option to range 80-100 (previously, it was 50-100).
- Removed 'ui_zoom' and 'tia_zoom' options, replacing them with 'tia_filter' (which can be zoom1x, zoom2x, etc). There is no equivalent for ui_zoom, since the UI can no longer be scaled.
- Added experimental 64-bit version for Vista64 (may also work on WinXP64). This hasn't been extensively tested, and is probably quite a bit slower than the 32-bit version.
- OSX port now requires at least 10.3 and XCode 3.0 to compile. Sorry, but I no longer have access to older systems to compile for 10.2.
- Huge updates to the documentation, particularly concerning the debugger. Many features that have been in Stella for a while are now documented for the first time.