+stephena Posted April 22, 2010 Share Posted April 22, 2010 Well, it's that time of year again. No, it's not Christmas, it's a new release of Stella This one contains some nice debugger improvements, but more importantly, some fixes for lockups/crashes (hopefully). The Mac port has received some extra love as well, now that my secondary development system is a Macbook Pro. As usual, Stella can be downloaded from http://stella.sf.net. Please test and report any bugs here, or directly by email. Anyway, here's the complete changelog: * 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. * Fixed issues when using 'sleep' timing, whereby a lockup could occur when changing video modes, and/or Stella would consume more CPU time than was necessary. * 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 preliminary support for '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 address space as code). * Added 'runtopc' debugger command, used to step until encountering the given program counter. This is also available in the ROM disassembly UI from the right-click context menu. * 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. This code was incomplete, and no longer fits with the recent disassembler improvements. Support for this may return in a future release. * Modified 'disasm' debugger command to accept a second argument indicating the number of lines to disassemble. * Improved tab-completion in the debugger prompt; it now completes on functions and pseudo-registers. * 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.6 (aka Snow Leopard). The Intel version is compiled with the very latest compiler (LLVM/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. * Added ability to take multiple snapshots in a given interval every x seconds. This is currently tied to the 'Alt-s' key and is not remappable (for now). The interval can be set with the 'ssinterval' commandline argument and within the UI, and defaults to 2. * 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. Because of these changes, old state files will no longer work. * Fixed bug in certain editable text fields, where pressing Return/Enter would disable any further input. 5 Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.