=========================================================================== SSSS tt lll lll SS SS tt ll ll SS tttttt eeee ll ll aaaa SSSS tt ee ee ll ll aa SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" SS SS tt ee ll ll aa aa SSSS ttt eeeee llll llll aaaaa =========================================================================== Release History =========================================================================== 3.0 to 3.1: (April xx, 2010) * Fixed a major bug with text drawing in software rendering mode. Switching between windowed and fullscreen mode while text was being shown could result in garbled text or even a program crash. * Integrated Distella disassembler, completely replacing the previous disassembler. The entire infrastructure has not been completely ported yet. As a result, labels defined by the user or from a DASM symbol file aren't actually used in the disassembly, and almost all distella config options are disabled. These will be addressed in a future release. * Completely reworked the debugger cartridge interface, so that the disassembly is dynamic (ie, the debugger tracks when cart address space has changed, and automatically performs a re-disassembly). * All carts with extended RAM that differentiate between read and write ports now behave correctly when a read from the write port occurs. * Added more complete support for the more esoteric bankswitch schemes in the debugger. These schemes now support accurate disassembly and ROM patch functionality. Related to this, fixed a bug in disassembler view when a failure to patch a ROM still showed the (incorrect) patched results. * Added ability to disable TIA object collisions, independent of enabling/disabling the objects. Previously, one had to completely disable an object to avoid collisions, but now an object can be enabled (and seen) but still have its collisions disabled. These actions are tied to the same keys as the enable ones, except the 'Shift' key is also used. * Added 'DPC+' bankswitching scheme, thanks to Darrell Spice Jr and Fred Quimby. * Added '16in1' bankswitching scheme, which works with various ROMs labeled '128-in-1' (the database has been updated for these). Related to this, switching between multicart ROMs for 2in1, 4in1, 8in1, 16in1 and 32in1 now shows a UI message indicating which ROM is active. * Reverted some of the TIA improvements with respect to 'starfield effect' as seen in "Cosmic Ark" and "Stay Frosty". The emulation is now more accurate as compared to the majority of consoles in use. * Added debugger pseudo-register '_rwport', which traps on a read from the write port. This differentiates from reads that are normally part of a write cycle (ie, it traps only on inadvertent reads). * Added 'resolvedata' commandline argument and associated UI item, used to set the "resolve data sections" config option in Distella (vs. treating all data as code). * Added 'runtopc' debugger command, used to step until encountering the given program counter. This is also available in the ROM disassembly UI. * Added 'listfunctions' and 'delfunction' debugger commands to access/remove user-defined functions. Related to this, fixed a bug in 'function' command that could cause a program crash. * Added 'cls' debugger command, used to erase the text and history from the debugger prompt. * Removed the 'listwatches' and 'poke' debugger commands, as they were redundant. * Removed the 'loadlst' debugger command and the ability to use a DASM .lst file. With the recent disassembler improvements, this support is no longer feasible. * Modified 'disasm' debugger command to accept a second argument indicating the number of lines to disassemble. * Added emulation of the "Sega Genesis" controller, with two buttons that are directly supported on a real system. * The ZLib library is now included in the core code, so Windows developers no longer have to track down the ZLIBWAPI archive. * Many changes to the MacOS X port, bringing it more in line with other systems: The application is now known as 'Stella' (instead of StellaOSX). Two versions are available: the first is a 32-bit Universal Binary for OSX 10.4 - 10.6, and the second is 32/64-bit Intel-only for OSX 10.5 - 10.6 (64-bit requires 10.6). The Intel version is compiled with the very latest compiler (Clang), resulting in better performance. The keyboard handling is changed to match other systems in terms of where the keys actually are on the keyboard (ie, the OSX Command key corresponds to Alt, and the OSX Control key corresponds to Control). The application menu has been cleaned up and simplified, and it now shows the correct shortcuts for menu items. The settings file is now (according to Apple standards) '~/Library/Preferences/net.sourceforge.Stella.plist'. The base directory (where all other Stella stuff is located) is now '~/Library/Application Support/Stella'. Because of these changes, all your settings will have to be entered again. * Added 'ctrlcombo' commandline argument, which toggles the use of the control key as a modifier key. This is useful if you want to press 'Control' and 'R' in a two player game, and not have the combination treated as 'Control-R' (which will issue a ROM reload). * Added 'usemouse' commandline argument and associated UI item. This toggles the use of the mouse as a controller of any type. * Added 'uimessages' commandline argument and associated UI item. This toggles showing of UI messages overlaid on the screen. Critical messages are still shown, though. * Many changes to the FrameBuffer and UI code for 'smaller' systems. Stella will now scale correctly to small screens, down to 320x240 (which is the absolute lower limit supported). Related to this, added 'maxres' commandline argument, which is useful for developers testing on such systems. * The About dialog now shows the version of SDL in use, and the type of CPU the application is running on (i386, x86_64, etc). * Improved 'listrominfo' commandline argument to list all information from Stella's internal ROM database, including a heading. This output can be imported into a spreadsheet or database program. * Renamed 'tiafloat' commandline argument to 'tiadriven'. The emulation of the behaviour of floating TIA pins is also much more accurate. * Reworked state files so that they're associated with the cartridge type used, not the MD5sum of the ROM. This is useful for developers, since the same state file can now be loaded from different ROMs, as long as the cart type stays the same. This also fixes a bug where loading from a non-existent state file could cause Stella to crash. * Fixed bug in certain editable text fields, where pressing Return/Enter would disable any further input. -Have fun! 2.8.4 to 3.0: (September 11, 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. 2.8.3 to 2.8.4: (July 4, 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. 2.8.2 to 2.8.3: (June 25, 2009) * Fixed OpenGL bug which caused an immediate program crash if the available OpenGL version was less than 2.0. 2.8.1 to 2.8.2: (June 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. 2.8 to 2.8.1: (June 19, 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. 2.7.7 to 2.8: (June 9, 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. 2.7.6 to 2.7.7: (May 1, 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. 2.7.5 to 2.7.6: (April 14, 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. 2.7.3 to 2.7.5: (Mar. 27, 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 Ant (http://aqfl.net) 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. 2.7.2 to 2.7.3: (Feb. 9, 2009) * Fixed rendering issues in software mode when using 24-bit colour depth. This isn't as fast as 16 or 32-bit modes, so you're recommended to use one of those whenever possible. * For the Win32 port: re-added ability to change the default location for storing Stella config files. To use this, simply create a file named 'basedir.txt' in the application directory containing the full path where all Stella-related items should be stored. * Tweaked the TIA info statistics overlay to be smaller while still including all relevant information. 2.7.1 to 2.7.2: (Jan. 27, 2009) * Fixed major bug in ROM Audit functionality; renaming ROMs would create files without an extension. 2.7 to 2.7.1: (Jan. 26, 2009) * Partial workaround for sound not working in OpenGL video mode in Windows with ATI video hardware. Sound will now work for the first ROM selected, but not for subsequent ones (you will have to quit and restart Stella for sound to work again). Related to this, added '-audiofirst' commandline argument, which initializes audio before video when emulating a ROM. Further work is required to completely fix this bug. * Fixed bug where volume wasn't being saved in 'Audio Settings' when started from the ROM launcher. * Fixed crash which sometimes occurred when viewing snapshots in the ROM Info viewer. * Allow setting window sizes for the ROM launcher and debugger to be larger than your desktop resolution. Be careful with this feature, as switching to fullscreen mode may cause problems in such cases. * Made the ROM launcher filename filtering be case-insensitive. This fixes a bug whereby ROMs with uppercase extensions were marked as invalid. * Added a pattern matching textbox to the ROM launcher, used to further filter the files shown in the listing. For now, this filters files only (directories are not filtered, and are always shown). * The location of EEPROM files used for AtariVox/Savekey emulation can now be changed with the '-eepromdir' commandline argument as well as in the UI. * Added '-gl_aspectn' and '-gl_aspectp' commandline arguments (and associated UI items), which replace the previous '-gl_aspect' setting. The aspect modes can now be set separately for NTSC and PAL mode. Related to this, the range of values is now 80 - 120. * Fixed bug with hold-select/reset/button0 when overriding ROM properties; the checkboxes in the UI weren't actually doing anything. * The 'grabmouse' option is now configurable from the UI; previously it was only accessible from the commandline or its shortcut key. * Removed 'Emulation_HmoveBlanks' ROM property and associated UI item. You can no longer optionally turn off HMOVE blanking; it is always enabled when necessary. 2.6.1 to 2.7: (Jan. 19, 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. 2.6 to 2.6.1: (May 22, 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. 2.5.1 to 2.6: (May 16, 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 serial<->USB 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. 2.5 to 2.5.1: (April 9, 2008) * Fixed M6532 RIOT timer emulation. More testing is needed, but the changes so far have fixed several ROMs that didn't work before. * Fixed issue with weird characters in the debugger disassembly when loading .lst files. * Fixed bug where entering the debugger for 4A50 and E0 carts caused the ROM to be frozen afterwords. * Removed logic whereby starting a ROM from something other than the built-in launcher wouldn't allow the user to go back to the ROM launcher. * Fixed bug (hopefully) with the app icon not showing on the Stella window. Further testing is needed, since I can't duplicate the error myself. * Fixed default snapshot folder issues; the folder will now be automatically created in the same place as state folders, ini files, etc (whereever that may be for your platform). * Re-added 'lastrom' functionality, where Stella will remember and auto-select the last ROM that was successfully launched in the ROM launcher. * For Stella developers, fixed SpeakJet emulation so it compiles again. No improvements have been made to the emulation itself, though. 2.4.2 to 2.5: (March 28, 2008) * Added RomInfo widget to the ROM launcher, which shows properties information and a snapshot of the currently selected ROM. Updated the UI and added '-romviewer' commandline argument to activate this setting. Note that the ROM launcher will have to be sized at least 640x480 for this to be used. Also note that the snapshots must be in 1x mode with a maximum size of 320x260. This will be expanded on in a future release. * Added ROM audit functionality, whereby ROMs can be physically renamed according to their properties' name. * Added bankswitching support for 0840, SB, X07 and 4A50. A special thanks to Eckhard Stolberg for much help in this area. * Removed "non-browse" functionality from the ROM launcher; it now always uses browse/filesystem mode. The previous 'pretty' names can now be seen by renaming all your ROMs with the new ROM audit feature. * Huge overhaul of controller handling and Stelladaptor support, making it much easier to add new controller types in a future release. * Fixed paddle issues in Night Driver; paddle emulation speed should be much better. * Fixed several 6507 emulation bugs related to BCD handling. * Updated ROM properties based on info from RomHunter. * ROM properties can now be edited from the ROM launcher; you no longer have to start a ROM to do so. * Added support for configurable font to ROM launcher (currently only 'small' and 'large'). Updated the UI and added -launcherfont' commandline argument to change this setting. * Added SECAM, NTSC50, PAL60 and SECAM60 to the list of formats that can be used. Also, switching between these modes with 'Ctrl-f' now switches the palette only; the number of scanlines won't change. * Fixed crash when switching between software and OpenGL mode with a Stelladaptor plugged in. * Added '-tiafloat' commandline argument, which determines whether or not the TIA pins are in a 'floating' state. This is useful for testing on certain CMOS EPROM chips where the unused TIA pins on a read are not floating but pulled high. * Fixed issue in debugger where once a .sym file was loaded, it was used in all ROMs loaded after that. * Fixed issue in debugger where equate names weren't showing up in the RAM and CPU widgets. Note that this still isn't perfect, and needs support from DASM for proper functionality. * Updated state file format, creating smaller files (and in preparation for state rewinding in a future release). Old state saves will no longer work. * Added '-bs' commandline argument, which is an alias for '-type' (which is still present). * Removed -pXspeed' commandline arguments, and replaced them with a single '-pspeed'. * Removed '-paddle' commandline argument. The paddle currently emulated by the mouse can still be changed with Ctrl-0..3 or within the UI, but the setting is no longer saved. * Reworked UI for specifying that the console ports have been swapped, hopefully making it easier to understand. * Added 'Ctrl-c' & 'Ctrl-v' to EditTextWidgets, allowing to copy and paste the text widget contents. More work in this area is coming in a future release. * Added 'Ctrl-leftarrow' and 'Ctrl-rightarrow' to EditTextWidgets, to move to the first character of previous and next words (respectively). * For the Win32 port: fixed OpenGL crashes in Vista. Graphical updates are still slower in Vista compared to XP, though. * For the Win32 port: default folder for Stella config files is now 'My Documents\Stella'; this can be disabled if necessary. This should fix issues with losing settings when launching Stella from an IDE, and the creation of stella.ini and 'state' directories in many different places. * For the Win32 port: several fixes to the Visual Studio project files, allowing building in debug or release mode, for both i386 and x86_64. The project files have been upgraded to Visual Studio 2008, and Stella can now be built and distributed without the VS runtime libraries. * Updated configure script for cross-compiling Win32 version in Linux. 2.4.1 to 2.4.2: (September 17, 2007) * Made usage of 'GL_TEXTURE_RECTANGLE_ARB' extension configurable, and have it default to off. This should take care of the black/white screen many people were experiencing with ATI video hardware. This is accessible using the 'gl_texrect' commandline argument). Set it to 'true' or 'false' to enable/disable the extension. 2.4 to 2.4.1: (August 27, 2007) * Re-added OpenGL aspect ratio setting ('gl_aspect' commandline argument). * Re-added non-browser mode to the ROM launcher. * For the Linux/UNIX port; fixed OpenGL vsync issue with Nvidia video cards. 2.3.5 to 2.4: (August 20, 2007) * Added new video sub-system where fullscreen and windowed modes are treated differently. Windowed modes now use '-zoom_tia' and '-zoom_ui' arguments, while fullscreen modes can be specified by resolution using the new '-fullres' argument. * Widescreen video modes are now supported; Stella will simply center the image with surrounding black borders. * Many UI-related changes, including resizable ROM launcher and debugger windows, and a new UI palette (the previous 'classic' palette is still available). This is still a work in progress. * The locations of all major config files (statedir, palette file, cheat file, properties file, etc) are now configurable from the commandline and within the UI. * Updates to TIA palette support. Added SECAM support, and removed the built-in 'original' palette. Standard, z26, and user are still available. * Various bugfixes to some debugger commands. The 'run' command no longer causes a crash, and several others have better error-checking. * Added more complete cartridge auto-detection for Commavid (CV), 3E, 3F and Activision (FE) formats. * Removed XStart and Width ROM properties, since the forthcoming TIA rework won't be using them. * Reworked internal storage of ROM properties to be faster and take up less space. * Added several different ways of stretching the OpenGL image to the '-gl_fsmax' argument, for more flexibility. * Removed OpenGL aspect ratio setting favour of the previously mentioned video changes. We'll see how this goes. * Removed dirty-rect support from software rendering, since it was actually sub-optimal in Windows and OSX and defaulted to off in previous versions. * Added support for gzipped ROMs. * Re-added pause support. * Re-added support for Windows 98. * Removed support for 'STELLA_BASEDIR' environment variable, since each config file can be now configured separately. * Removed '-fastscbios' argument, since it must always be turned on. * Removed PSP support, since it hasn't been updated in over a year, and someone else is maintaining another port elsewhere. * For the Unix/Linux port; fixed 'make install' issues, and changed icon to PNG format. 2.3 to 2.3.5: (January 17, 2007) * Greatly improved cartridge bankswitch type auto-detection. Stella can now (mostly) autodetect cartridge types 'E0', 'E7', '3E', '3F' and Superchip carts. Obviously, this autodetection is not infallible, but relies on patterns in the ROM data, and how it was compiled. Because of the auto-detection types already supported, almost all bankswitch info was removed from internal ROM properties. Set the ROM property "Cartridge.Type" to "Auto-detect" for this to take effect. * Added auto-detection of display type (NTSC or PAL). Currently, PAL60 ROMs will be detected as NTSC. This is almost 100% accurate, and fails in very few cases (for those that are mislabeled, the ROM properties can be set specifically). Set the ROM property "Display.Format" to "Auto-detect" for this to take effect. * Improved emulation timing when exiting one ROM and starting another. Previously, this could result in the second ROM having its sound start later than it should have. * Removed pause functionality from the core, since it's been superceded by the other event states. You can now enter one of the menus for a similar effect (options, command, debugger, etc). * Added toggle for PAL color-loss emulation, which defaults to off. Previous versions of Stella always used color-loss emulation. Related to this, added 'colorloss' commandline argument. * Added rudimentary support for configuring the UI palette ('uipalette' commandline argument) and ability to change the size of the launcher window ('launchersize' commandline argument). This will be expanded on in future releases. * Reworked options menu so it's now accessible from the ROM launcher as well as while playing a ROM. * Re-added ability to change the width and height of a Console. Related to this, changing XStart/YStart/Width/Height dynamically no longer resets the ROM. * Removed 'tiadefaults' commandline argument, since Stella will now default to using accurate positioning, and not use 'tweaks'. * Joystick code now allows all 4 directions; 'Bumper Bash' now works correctly. * Improved Keypad emulation; 'Alpha Beam with Ernie', 'Oscars Trash Race' and 'Magicard' now work correctly. * Reworked GUI code, so that all dialog boxes are automatically centered. * Added 'rominfo' commandline argument, which prints some detailed info for a ROM. * For the OSX port; fixed crashes in OpenGL mode. * For the GP2X port; some improvements to the sound code. * For the GP2X port; added vertical centering of the TIA image (when possible). 2.2 to 2.3: (December 22, 2006) * NOTE: Because of the many changes in this release, all settings will be reset to defaults. If this doesn't happen for you, it will be necessary to manually delete your previous settings. * Potentially huge speedups in software rendering mode, both in emulation and UI modes. Deactivating 'dirty rects' uses these new modes, which can be 2-3 times faster for many configurations. * For UI navigation, changed from using 'joymouse' to the more familiar 'tabbing' functionality, where you move from object to object by use of some tab key. As a result, completely removed the 'joymouse' commandline argument and all associated functionality. * Added event remapping for UI events, separate from events while in emulation mode. * Added support for PAL60 ROMs, which use the PAL palette and resolution but run at NTSC timing (60Hz). Added ROM property for this, and updated the internal properties database for many PAL60 ROMs. * Added support for user-definable palettes. For now, only one extra palette is supported, but in the future we may have them specified per-ROM. * Fixed bug in PAL colour-loss emulation, which wasn't actually being done for the original Stella and z26 palettes. * Fixed several TIA-related emulation bugs as reported on AtariAge. More fixes will come with the TIA rewrite, due in the next release. * Added new scaler infrastructure, replacing the '-zoom' commandline argument with '-scale_ui' and '-scale_tia'. This means the UI and emulation can now be scaled independently. * Added '-gl_vsync' commandline argument and associated UI elements, which uses synchronization to vertical blank interrupt in OpenGL on supported systems. This eliminates tearing in OpenGL rendering. * Changed naming of snapshots and state files. These files are now named based on the names given in the properties database, and no longer use the 'md5sum' name. As a result, state files from previous versions will no longer work unless they're manually renamed. Related to this, removed the '-ssname' commandline argument. * Fixed bug where 'Snapshot saved' appeared when taking snapshots in succession. * Added a 'Previous directory' entry to the top of each listing while in ROM Browse mode, which is equivalent to the 'Go Up' button. This makes it easier to navigate the filesystem, since you never have to 'tab out' of the ROM listing. * Added all sound related commandline options to the UI, so you no longer have to use the commandline to set those options. * Added new property to ROM properties specifying whether to swap paddles plugged into a virtual port. This eliminates the need to manually set the paddle mode for those ROMs that don't use paddle zero by default. * Added a 'Defaults' button to the Game Properties dialog, which resets the ROM properties to the internal defaults, deleting that ROMs properties from the external properties file. * Fixed bug whereby modified ROM properties weren't being reloaded when restarting a ROM. * Made 'phosphor' and 'phosphor blend' a ROM property, meaning it can be set per-ROM. * Added support for relocating the base Stella directory, by setting the environment variable 'STELLA_BASEDIR'. This must be done each time before Stella starts. * Added '-fastscbios' commandline argument, which speeds up loading of vertical bars in Supercharger ROMs, and made it the default. * Added '-autoslot' commandline argument, which automatically switches to the next available slot after saving a state. This defaults to off, and must be set from the commandline. * Fixed bug in debugger command 'runto', which could enter an infinite loop under some conditions. * Updated configure/build toolchain so patching is no longer required for Debian packages. * Removed dependency on PNG library (PNG snapshots are still present, but the actual library is no longer required). * For the OSX port, improved OpenGL performance on Mac Mini using Intel GMA950 video hardware. * For the GP2X port, added support for PAL ROMs, and updated SDL to use hardware scaling. 2.1 to 2.2: (April 7, 2006) * Added new ROM browser option which works like a normal filesystem browser, allowing navigation throughout the filesystem. The old mode of browsing is still present, and can be toggled at runtime. Related to this, fixed bug whereby sorting in the ROM launcher sometimes didn't work. * Integrated stella.pro properties into the application, resulting in faster startup time. Now Stella can be redistributed as a single binary; no external files are needed, but they will still be used if present. * Reworked ROM properties files once again. The 'user.pro' file has been removed, and all user-defined properties are stored in 'stella.pro' instead. You should delete all properties files when upgrading to this version, to take advantage of the speed increases. * Reworked settings files once again. Removed all references to a global settings file. Each user now gets a user-specific settings file only. If that file doesn't exist, the built-in defaults are used. * Added 'conditional saving' of the cheatcode and settings files, so that these files are only written to disk when absolutely necessary. This doesn't really affect desktop systems, but is very useful for systems with flashram-based storage (GP2X, WinCE, etc). * Reworked Settings class, hopefully fixing a bug whereby settings weren't being saved in certain cases (most evident in the OSX port). * Added 'tiadefaults' commandline option, which can also be toggled from within the GUI. This option disables all TIA positioning 'tweaks' that typically make a game look better, and present the image exactly as it would appear on a real 2600. * Added jitter-detection code for the paddle emulation, which should eliminate an annoying 'jittering' effect when using paddles with a Stelladaptor. * Related to jitter-detection, added '-pthresh' commandline option and GUI entry, which sets a bound below which the emulation detects jitter. * Fixed crash when adding one-shot cheats. * Fixed bug in RAM comparitive searches in the debugger. * Fixed bug with setting snapshot naming type from the GUI (it was always being set to 'romname'). * Re-added low compatibility CPU emulation mode, since it benefits some slower systems. This is activated with the commandline argument '-cpu low'. * For the OSX port, added Universal binary support. * For the OSX port, reworked the menu handling, so that certain menu options are only enabled when it makes sense to do so. * For the GP2X port, fixed joystick deadzone issues and scroll bug in ROM launcher. * For the GP2X port, fixed issue with PAL ROMs causing a crash because of screen size. A message is now shown indicating that PAL ROMs are not yet supported. 2.0.1 to 2.1: (January 29, 2006) * Added phosphor effect, similar to z26. Useful on ROMs which alternate sprites from one frame to another, resulting in an annoying flicker. When using phosphor mode, a pixels colour is mixed with its previous value, resulting in a blended image that doesn't flicker, emulating the phosphoresence effect on a real television. * Added 'pp' developer commandline argument to set the "Display.Phosphor" property, and 'ppblend' to set the amount to blend pixels in phosphor mode. Also added 'Alt p' key to enable/disable phosphor effect while ROM is emulated. By default, phosphor mode is only used when necessary, as specified in the stella.pro file. * Renamed 'cheetah' commandline argument to 'cheat'. * Added per-frame cheatcodes (4 characters long), which are evaluated each frame. * Added cheatcode GUI, where cheats can be named, edited, saved, etc. * Cheat codes are now saved to stella.cht file and are automatically reloaded when Stella starts. * Improved 'joymouse' functionality. While in GUI mode, any axis will simulate mouse movement, and any button will simulate a mouse click. So the GUI can be completely navigated without a mouse. * Improved CommandDialog and LauncherDialog wrt joymouse functionality. These dialogs are used more than any other on devices without a mouse, so joystick axis movement switches between GUI objects, rather than simulating the mouse. This leads to much faster selection of objects. * Added mapping of multiple SDL joystick axis to Event Mapping. * Added joystick hat support, and mapping of multiple hats to Event Mapping. * Added remapping of paddle emulation to the keyboard or joystick axis (the mouse is still used by default for paddles). Related to this, use more precise analog values when analog axis are mapped to analog-type events (such as paddles). * Treat joystick events as other types of controllers based on the virtual port entry in stella.pro. This means that mappings for a joystick will emulate other devices when necessary. * Added 'sp' developer commandline argument, which sets the "Console.SwapPorts" property and swaps the arrangement of the virtual ports. Useful for games like "Raiders of the Lost Ark", where the joysticks are normally swapped. * Added ability to set which Stelladaptor device emulates which virtual joystick port ('sa1' and 'sa2' commandline arguments, which accept 'left' or 'right'). * Fixed issues with jittering joysticks/mice causing weird events when starting Stella. * Added 'freq', 'tiafreq' and 'clipvol' commandline arguments, which affect the sound subsystem (see manual for further info). * Made state files completely cross-platform, both in terms of endianness as well as CPU size (32 vs. 64 bit). * Fixed crash with using 'cheat' and 'break' from the commandline. * Implemented dynamic loading of OpenGL library. 2.0 to 2.0.1: (October 24, 2005) * Added 'dirtyrects' support, which speeds up rendering for some Windows users. * Fixed bug where taking snapshots would fail if the snapshot directory wasn't specified. * Made ROM launcher case-insensitive, so upper and lowercase names are now mixed in the correct order. * Fixed ZIP ROM support to search the archive for ROMs ending with either .bin or .a26 (case insensitive). * ROMs which don't have an associated properties entry are no longer named 'Untitled' in the Stella window or when taking snapshots. The actual ROM name is now used. * Changed minimum height of debugger to be 27 lines in the prompt, or approx. 700 pixels high. This should make using the debugger easier for users with lower resolution monitors. Related to this, the RomWidget now uses all possible vertical space when changing the debugger height. * Fixed bug related to upgrading Stella and event mappings being incorrect. Stella now detects this, and uses the default mappings. So upgrading to version 2.0.1 means your event mappings will be reset. * Fixed bug in loading debugger symbol files generated on different operating systems. * For the Windows port; added exe installer based on InnoSetup. * For the Windows port; compiled icon into Stella, so it now looks like a real Win32 application. * For the OSX port, reverted window resize key combos back to 'Cmd =' and 'Cmd -' to match the 1.4.2 release. 1.4.2 to 2.0: (October 16, 2005) * Added integrated GUI. Stella is now a fully graphical application, and all settings can be changed dynamically while the application is running. That means the commandline is no longer required (but support is still there for those who want to use it). * Added ROM launcher. You can now exit a game and start playing another one from directly within Stella (you no longer have to quit Stella and restart it). * Because of the integrated GUI and ROM launcher, StellaX and KStella (the Windows and Linux frontends) have been discontinued. The OSX port now uses the launcher as well. * Added an integrated debugger for game developers. This is currently the first version of a debugger in Stella, but it's already quite usable. * Added new sound subsystem, which is much faster and more accurate. Related to this, added stereo sound output (used by some homebrew games). * Added ZIP support. Stella can now open ROM's compressed in zip format. * Added cartridge 'frying', thanks to Fred "batari" Quimby. This emulates the action of turning the power button on and off on a real Atari, often resulting in some strange effects. * Added ability to edit current ROM properties from directly within Stella, which can then be saved directly into the 'user.pro' file. So creating a properties entry for a new ROM can be done without any external tools. * Added initial support for using Stella in an 'arcade-box' environment without a keyboard. This consists of an in-game menu for choosing common actions in Stella, as well as using the joystick navigate the mouse pointer. * Reworked properties system to use both a system-wide 'stella.pro' and a per-user 'user.pro' properties files. Changes made by the user and stored in 'user.pro' are no longer erased when upgrading Stella. * Added support for cartridges with 3E bankswitching format. * Added preliminary Cheat support. * Added 'Alt/Shift-Cmd' z, x, c, v, b, n keys to enable/disable the P0, P1, M0, M1, BL, PL bits in the TIA, respectively. * Added 'Alt/Shift-Cmd .' key to disable all bits in the TIA. * Added 'Alt/Shift-Cmd /' key to enable all bits in the TIA. * Added 'Alt/Shift-Cmd g' key to switch dynamically switch between software and OpenGL modes while Stella is running. * Added 'Ctrl/Cmd r' key to reload the ROM currently being emulated. * Added 'Alt/Shift-Cmd s' key to merge the current game properties into the properties file. * Added 'help' commandline argument. Launching Stella from the commandline with no options now starts Stella in ROM launcher mode, instead of showing help (as in previous versions). * Added the following commandline arguments for developers: "pro, type, ld, rd, tv, lc, rc, bc, format, xstart, ystart, width height, cpu, hmove". Developers can consult the manual for further details. * Removed 'mergeprops' commandline argument, since there are now dedicated keys to either save or merge game properties. * Removed 'hidecursor' commandline argument. Stella will now automatically decide when to use this setting. * Fixed framerate when switching between NTSC and PAL modes. Stella now uses the correct framerate based on the format of the ROM, in terms of both video and audio. * Added 'configure' support to the build process for both Linux and Win32 (using MinGW). Developers can now use the familiar 'configure; make; make install' commands to compile Stella. * Further consolidation and integration of SDL. This should lead to faster operation and a more consistent look for all ports. * Fixed some 64-bit issues. Stella now compiles and runs correctly on AMD64 and PPC64 Linux systems. * Updated the Stella manual with pictures of the new integrated GUI. 1.4.2a to 1.4.2b: MacOSX version only (February 27, 2005) * Added fix to mute sound while user is loading a new cartridge, or using the Preferences window. 1.4.2 to 1.4.2a: MacOSX version only (February 21, 2005) * Fixed problem in timing loop which was causing crashes after 15-30 minutes. * Turned optimization on in compiler settings, which had somehow gotten turned off. 1.4.1 to 1.4.2: (February 19, 2005) * Updated the sound system. All popping and cracking sounds that previously occurred at program start/stop and when entering/exiting menu or pause mode have been eliminated. * Fixed the gl_fsmax argument to mean "switch to desktop resolution on fullscreen OpenGL", instead of to the maximum possible resolution (the two are not always the same). * Added Alt [ and Alt ] keys to dynamically adjust the sound volume during emulation. * Added Control 0, Control 1, Control 2, Control 3 keys to dynamically change which paddle the mouse should emulate. * Added video_driver argument. This accepts the different options that can be specified for SDL_VIDEODRIVER (see SDL homepage for more information). Basically, it eliminates the need to set the SDL_VIDEODRIVER environment variable. * Made sure screen is refreshed before taking a snapshot. This eliminates the problem with new snapshots containing the text "Snapshot saved". * For the Windows port; added windib and directx as options for 'video_driver' when using software rendering. The 'windib' option is now the default, and in many cases it's up to 10 times faster than using 'directx'. * For the OSX port; added 'Cmd-R' key to reload the currently loaded ROM. 1.4 to 1.4.1: (August 15, 2004) * Fixed PAL sound issues. PAL games now should sound correct (no distortion or missing sounds), but some games may still run too fast. This is still a work-in-progress, and will be fixed in Stella 1.5. * Cleaned up the SDL event gathering loop. This should hopefully fix the problems with "double-pumping events" reported by some Windows users. Event gathering and dispatching is now much faster as well. * Fixed a bug where the Control or Alt keys could be assigned to some event, but they could never be used. Control/Alt can now be used for any event. * Updated stella.pro file to work with the latest Good2600 ROMset release (Thanks go to Voch for helping to maintain the stella.pro file). * For the Windows port; removed requirement for ROM files to be named *.bin in the StellaX frontend. The ROM's can now have any name, but ZIP-files are not yet supported. * For the Windows port; fixed the problems with the included modified SDL library and Windows 98 users. Stella should now run in Windows 98. * For the OSX port; added preference to allow user to select the directory in which ROM images are stored. This sets the default directory to start the browsing for a ROM in, and doesn't preclude the user from selecting a file outside that directory. * For the OSX port; fixed preferences bug where Preferences changed before a game was opened were not being saved. * For the OSX port; fixed an issue which would prevent the program from working with OSX 10.1. 1.3 to 1.4: (July 17, 2004) * Codebase ported to SDL. The DOS and X11 ports have been discontinued. * Sound code ported to SDL. For the Linux versions, ALSA and OSS sound support has been discontinued. * The Linux, MacOSX and Windows ports are now based on the same codebase and are actively maintained. That means simultaneous (and hopefully more frequent) releases. * A new Windows port has been created, with the GUI based on StellaX. This is the first new release for Windows since Stella 1.2. (software mode is not yet optimized; OpenGL mode works much better) * A new Mac OSX port has been created by Mark Grebe. This is the first new release for Mac OSX since Stella 1.2. * Added OpenGL rendering support. * Added more refined in-game GUI. * Added event remapping. Emulation keys can now be remapped to the keyboard or up to 4 joysticks. * Added native Stelladaptor support. Joysticks, paddles, and driving controllers have been tested. * Digital sound support (used in games like Quadrun and Pitfall2) has been greatly improved. Sound generation is now more tightly synchronized with video updates. * Added support for switchable palettes. Currently you can switch between the current Stella palette, original Stella palette (pre-1.2 versions), and the z26 palette. * Added support for UA Limited style bankswitching (Funky Fish and Pleiades). * Switched to using high compatibility M6502 mode by default. This means old state saves from previous Stella versions will no longer work. * The meaning of the "-sound" command line option has been changed. This option now accepts either 'true' or 'false (1 or 0) to enable/disable sound. * Changed sound mixer functionality. The system volume/mixer settings will never be changed; volume changes in Stella will only affect the emulation itself. * Added "-video" command line option. This option accepts either 'soft' or 'gl', to use software/OpenGL rendering. * Added "-gl_filter" command line option. This option accepts either 'nearest' or 'linear', to use GL_NEAREST or GL_LINEAR filtering. * Added "-gl_aspect" command line option. This option accepts a decimal value specifying how much to scale the width of the emulation image (useful for giving an authentic 'square-looking' 4:3 mode). * Added "-gl_fsmax" command line option. This option accepts either 'true' or 'false, and specifies to use the maximum possible resolution when in fullscreen OpenGL mode (useful for Linux and for Windows on laptops). * Added "-fragsize" command line option. This option accepts the size to use for sound fragments. Linux/MacOSX works well with 512, Windows seems to need 2048. This value must be a power of two. * Modified "-volume" command line option. If you specify '-1', Stella will use the system volume. * Renamed the "-pro" command line option to "-altpro". * Renamed the "-fps" command line option to "-framerate". * Removed the "-center" command line option. Stella now automatically centers the window when possible. * Removed the "-paddle real" command line option, since it never really worked correctly (and Stelladaptor support adds that functionality anyway). * Removed all command line options relating to the X11 port (owncmap, display). 1.2 to 1.3: (February 17, 2003) * Improved TIA sound system so that games with digitized audio work * Added saving and loading of game state to the core; X11, SDL, and DOS versions current support saving and loading game state * Added support for F4 bankswitching method * Pitfall II DPC sound emulation completed * Fixed a bug which caused the difficulty switches to operate backwards * Changed DPC auto-detection to use file size so that Pitfall II mods work * Modified RIOT timer emulation so that startup values are random * Added 3F bankswitching auto-detection routine so that homebrews and demos work without a stella.pro entry * Updated the TIA message boxes so they look a little nicer * Latest stella.pro file included in distribution * Added some developer options to the core, and the ability to change game width, height, xstart, ystart, and others while the emulation is running. Added ability to switch between NTSC and PAL at runtime, and the ability to save the current properties to a file or to merge the changes into the stella.pro file; X11 and SDL versions supported for now (compile option) * External sound server for the X11 and SDL versions no longer required, as all sound code is now integrated into the core * Changed locations of the user's config files for the X11 and SDL versions; the user's stellarc file is now located in $HOME/.stella/stellarc, state files are located in $HOME/.stella/state/ and the stella.pro file is located in $HOME/.stella/stella.pro * Changed the way options are supplied on the commandline for the X11 and SDL versions. Now all commandline options take exactly the same arguments as in the INI file. * Added "-accurate" command line option to choose between accurate (CPU-intensive) timing or less accurate (CPU-friendly) timing to X11 and SDL versions. This is the final version of what was considered experimental timing code in Stella 1.2. * Added "-sound" command line option to choose which sound backend to use (alsa, oss, sdl) with the X11 and SDL versions. * Added the developer command line options to the X11 and SDL versions, which are only activated in developer builds: -Dformat, -Dwidth, -Dheight, -Dxstart, -Dystart, -Dmerge * Fixed window resize bug in the X11 port * Added "-nosound" command line option to the DOS port to disable audio * DOS port supports a "-vsync" option to synchronize emulation with the video blank of the video card * Changed VGA code in the DOS port to use a 60Hz 320x200 and a 60Hz 320x240 graphics mode * DOS port has been updated to run better under Windows NT, 2000, and XP. There are still issues with the sound, however, it is usable. * DOS port is using a new Sound Blaster driver created by Matt Conte which supports auto-detection of sound cards. * DOS port supports a STELLA_HOME environment variable that defines the location of config files. * In the DOS port the stella.pro file is searched for first in the current working director and then in the $STELLA_HOME directory * In the DOS port the ROM image is searched for first using the specified path, then in $STELLA_HOME/ROMS, and finally in $STELLA_HOME Cyberstella 1.2.1 (May 16, 2002) * Removed the built-in games until some legal stuff is sorted out Cyberstella 1.2 (May 10, 2002) * Initial release of a new WIN 32 port of Stella DOS 1.2 to DOS 1.2.1: (April 28, 2002) * Fixed a bug with control keys being confused with the pause key * Fixed a bug with the pause key causing the application to lockup 1.1 to 1.2: (April 21, 2002) * Improved illegal CPU instruction support. Thrust and Qb will now operate correctly. * Improved emulation of undefined TIA reads. The ball in Video Pinball finally bounces off of the paddles! * More accurate NTSC and PAL palettes. These palettes should be much more like the colors displayed on a real TV. * PAL color loss is now emulated. If a PAL game displays an odd number of scanlines then the next frame will be displayed in black & white. * TIA emulation improved to fix some problems with Pole Position, Fatal Run, Dolphin, Decathlon, Robot Tank, and Hole Hunter. * Support for Pitfall II has been added, however, the enhanced sound provided by the DPC chip found in the Pitfall II cartridge isn't currently emulated. * Support added for the Commavid (CV) bankswitching method. * Support added for the Megaboy cartridge. * Improved Supercharger emulation including a new BIOS that shows the vertical blue progress bars like the real thing. * Code for the emulation core has been updated to work with newer C++ compilers compliant with the C++ standard. * Basic message support added to the TIA emulation. This allows a short message to overlay the TIA frame. Currently, it's used when switching color modes and difficulty settings. * The internal data structure for the stella.pro file was changed from a resizable array to a binary search tree. This results in quicker startup times. * An SDL port of Stella is available (requires SDL 1.2.0 or greater) * Added option to not load in the whole stella.pro file when starting Stella. This option is enabled on the X11, SDL, and DOS versions. Win32 version is left alone since it's needed for loading multiple games from the UI. Saves on memory usage. * Added INI file option to the X11 and SDL versions. Options can be specified in this file instead of entering them on the commandline. Any options entered on the commandline override options in the INI file. File is called stellarc. For the X11 and SDL versions, it can be in either $HOME (as $HOME/.stellarc) or in /etc (as /etc/stellarc). The one in $HOME has higher priority than the one in /etc. * Added snapshot support to the X11 and SDL versions. Pressing F12 saves the current screen in PNG format. Requires PNG library. * Removed stella.pro file from the binary, resulting in large space savings. The stella.pro file is no longer optional. For the X11 and SDL versions, it can be in either $HOME (as $HOME/.stella.pro) or in /etc (as /etc/stella.pro). The one in $HOME has higher priority than the one in /etc. For DOS and Win32 versions, the stella.pro file must be in the same directory as the executable. * Added pause functionality to the core. Implemented in DOS, X11, and SDL versions for now. 1.0 to 1.1: (February 26, 1999) * DOS and Linux versions support real Atari 2600 paddles using a special PC game port adaptor * Linux version uses the new 1.2.x joystick driver API * Added support for the "-display" option to the X Window version * Added support for private colormaps to the X Window version * Fixed a few bugs in the Supercharger emulation - A major bug in the ROM loading routine was fixed - Multi-loading in "Escape from the Mindmaster" works correctly - All Supercharger games load and execute at this point * Added a small hack to the TIA code to fix a display problem in "Escape from the Mindmaster" * Improved TIA emulation to support the RESPx multi-sprite trick 1.0b1 to 1.0: (October 7, 1998) * DOS version supports 320x200 and 320x240 graphics modes * Several portability issues have been resolved * Preliminary support for Chris Wilkson's Megacart bank-switching scheme * BSDI target included in makefile * Improved Users Manual in several "popular" formats 0.7 to 1.0b1: (July 25, 1998) * Supports the following controllers: Joysticks, Paddles, Booster-Grip, Keyboard and Driving * Supports the following bank switching methods: 2K, 3F, 4K, AR, E0, E7, F4SC, F6, F8, F8SC, FASC, FE * Properties are associated with games using their MD5 checksum calculated on the entire ROM image * Uses the new 'stella.pro' file format for game properties * Includes Erik's latest stella.pro properties file * New frame rate throttle code for X windows GUI * Based on the new and improved M6502 CPU emulation * Improvements to TIA emulation - Support HMOVE blanks - Improved Cosmic Ark star field effect - Some support for the RESPx multiple sprite trick - Support NTSC and PAL palettes * Improvements to PIA emulation (timing) * Improved Supercharger emulation 0.6 to 0.7: (June 7, 1997) * Improved emulation speed of TIA and 6507 * Added Starpath Supercharger support * Added Tigervision bank-switching support (3F bank-switching) * Added pause game feature for Unix and DOS * VCS files combined into a single builtin property file * Added TIA HMOVE "feature" to support Cosmic Ark stars * Improved TIA VSYNC code so that it works more like the real thing (0.6 VSYNC code caused the graphics of some games to be off such as Alien and Battle Zone) * Added two 6507 emulators: one is designed to act more like the real thing, while the other is designed to be as fast as possible (required for Supercharger support) * Changed TIA peeking so lower nibble of byte read is the same as the TIA address being accessed (Warlords now works) 0.5 to 0.6: (January 18, 1997) * Fixed collision detection problem (Freeway works) * Changed PIA timing code to fix screen jitters * Added new bank-switching methods: F4SC (Fatal Run), E7 (Burgertime) * Fixed some code in the TIA emulation that caused SEGFAULTS * Improved frame rate throttling code to work better on fast machines * Improved TIA emulation (missle graphics are fully emulated now) * Included Bob Colbert's "Okie Dokie" game * Uses version 1.1 of the TIA Sound library by Ron Fries 0.4 to 0.5: (November 17, 1996) * Added sound support * Added new bank-switching methods: F8SC (Defender II), FASC (CBS RAM+) * Changed TIA so peeking $E and $F return $F not $0 for Haunted House * Changed PIA timing code to fix screen jitters in Frogger * Addressing scheme rewritten * Optimized 6507 memory accesses * Randomized memory in PIA upon startup * Removed auto-disabling of objects at the start of a frame so you can't walk through walls in Adventure * Changed the X windows terminal update method to make it faster and easier to understand 0.3 to 0.4 (August 28, 1996): * TIA code has been optimized some * Some games can be played with just a ROM image * New search method for ROM images (no more STELLA_PATH) * Delta screen update supported * Better error handling added to the "core" 0.2 to 0.3 (July 12, 1996): * Keyboard joystick support is much better (Daniel Marks) * Paddles are now supported via the mouse (Bradford Mott) * Many portability issues have been resolved (Keith Wilkins) * Fixed a problem with the 6507 ADC and SBC instructions that caused some games (Enduro) not to work correctly (Bradford Mott) * Power Macintosh port (Aaron Giles) * Windows 95 & NT port (Jeff Miller)