6.0 to 6.0.1: (June 5, 2019)
* Added support for CDFJ bankswitching type (Galaga, Wizard of War, etc).
* Allow the DPC+ scheme to not enable playfield 'jitter' effect for
certain older DPC+ driver versions; this allows 'Epic Adventure' ROM
to finally work in Stella.
-Have fun!
Fixes builds with newer GCC.
This is a small release that improves support for a few bankswitching schemes:
* Added support for CDFJ bankswitching type (Galaga, Wizard of War, etc).
* Allow the DPC+ scheme to not enable playfield 'jitter' effect for certain
older DPC+ driver versions; this allows 'Epic Adventure' ROM to finally
work in Stella.
5.1.3 to 6.0: (December 23, 2018)
* Note: because of major TIA sound changes, the state file format has
changed, and old state files will not work with this release.
* New cycle exact audio core based on work by Chris Brenner (crispy);
greatly improved audio emulation accuracy (i.e. E.T., Ms. Pacman).
* Full rewrite of the audio subsystem; resample TIA output to target
sample rate directly in Stella.
* Added option to force stereo sound for all ROMs, or to use the
setting on a per-ROM basis.
* Threading: decouple emulation from frame rendering.
* Main loop rewritten; emulating speed and timing is now much more
faithful (i.e. speed in Pick'n'Pile).
* Added preliminary support for 'CTY' bankswitching scheme and recently
released 'Chetiry' ROMs. Special thanks to SpiceWare for adding music
support to this scheme.
* UI modernization (new widget look, dialog titles added, dialogs
refactored).
* The bankswitch scheme can now be forced by naming the ROM with a
specific extension (ie: .f8s for F8SC, .fe for FE, etc). The
supported extensions are the same as the ones from HarmonyCart and
UnoCart.
* Audio settings replaced with new 'audio.xxx' settings.
* FPS setting replaced with speed setting for adjusting emulation speed.
* Extra functionality for Time Machine dialog (start/stop recording;
minor fixes).
* When logging messages to the System Logger, condense similar messages
that arrive in batches into fewer messages (including timestamps).
* Fixes for collision corner cases (during HBlank).
* Fixed excessive CPU usage while in UI modes (ROM launcher, debugger,
etc).
* The 'launcherexts' option has been replaced by a true/false option
named 'launcherroms', which specifies to show only ROMs or all files
in the ROM launcher.
* Changes in 'Game Properties' dialog
- 'Default' button now affects only current tab like in all other
dialogs.
- 'Display' and 'Console' tab changes are now immediate.
- Fixed bug when selecting 'Auto-detect' format for 50Hz ROMs
* Fixed bug in autodetecting Genesis controllers.
* Fixed bug with 'thumb.trapfatal' commandline argument; sometimes Stella
would lock up when encountering a fatal error instead of entering the
debugger and displaying a message.
* Fixed bug in reading from settings file with entries that were empty;
the parsing was failing. This affected the 'cpurandom' argument; when
all options in it were turned off, they were all turned on again during
the next program run.
* Fixed bug with 'hold' events; they are now released a short time after
starting a ROM.
* When starting Stella for the first time, the first ROM selected will
determine which path to use by default for subsequent runs.
* Fixed emulator crash when starting SaveKey ROMs from commandline with
SaveKey messages enabled.
* Fixed missing TV format update in frame stats dialog when switching
display type.
* Fixed missing debug color update when switching display type.
* 'Fill to scanline' now works for scanlines above current scanline too.
* The debugger 'uhex' command is now honoured in CDF and BUS schemes.
* When switching screenmodes, the sound is now paused and later resumed.
This fixes popping and cracking sounds apparent on some systems, notably
OSX when toggling windowed/fullscreen mode.
* State file format has been optimized to be smaller, and faster loading
and saving. This affects both the files saved to your computer as well
as Time Machine functionality.
* The ROM name saved in a PNG tEXt chunk now honours the 'snapname'
setting.
* Improved snapshots when phosphor is enabled.
* Updated PAL palette.
* Added 'Cartridge.StartBank' ROM property, to force a ROM to use a
specific bank for its reset vector.
* Added Developer setting, which breaks on reads from write ports. It
now detects such conditions in many more cases. This new way of
detecting RWP errors obsoletes the old '_rwport' debugger command,
which has now been removed.
* Added recently released 'Arkyology' prototype ROM to the database.
* Added 'Amoeba Jump' and 'Flappy' ROMs (from the Retron77) to the
database.
* Fixed 'Street Racer' and 'Video Olympics' ROMs to use paddles in both
ports.
* If using SDL 2.0.5 or above, the calculated desktop size now takes
the taskbar/dock into account (so windows should no longer overlap
those areas).
* For UNIX systems: in the ROM launcher, when using symlinks use the
symlink pathname instead of the underlying filesystem pathname.
* The UNIX builds now use the system-installed PNG and ZLIB libraries
by default.
* The Macintosh builds are now named 'macOS' throughout the codebase to
reflect the new naming from Apple.
* For better compatibility, the Windows 32-bit version does not require
SSE2 anymore.
* Updated included PNG library to latest stable version.
5.1.2 to 5.1.3: (June 10, 2018)
* Fixed crash in OpenBSD when quitting the app, which can also be
happening on other systems (no reports yet, but the problem is now
fixed for good).
* Fixed configure/build scripts to work natively under OpenBSD.
5.1.1 to 5.1.2: (May 20, 2018)
* Fixed bug with SaveKey autodetection; some ROMs were not correctly
detecting that a virtual SaveKey device was plugged in. This notably
fixes issues in "Super Cobra" and "Scramble" ROMs.
* Make previously mentioned ROMs use the SaveKey device by default.
* Fixed bug in UI navigation with joystick hat movement.
5.1 to 5.1.1: (February 21, 2018)
* Fixed bug in Stargunner ROM starting with a blank screen.
5.0.2 to 5.1: (February 4, 2018)
* Added "Time Machine" mode, which automatically creates save states
in user-defined intervals. The user can navigate back and forth within
these states inside the emulator and the debugger.
* Huge improvements to the disassembly view in the debugger and
disassembly files created:
- reformatting in debugger for better space utilization
- much improved code and data detection
- access tracking and indicators for TIA/IO/RAM adresses in disassembly
- break vector is tracked (if used)
- improved cycle count (page penalties, sums created in disassembly)
- improved handling of instruction masking opcodes (e.g. BIT)
* Fixed change tracking bug during rewind; changes were accumulated
instead of being displayed only for the last rewind step.
* Extended 'rewind' to take a second parameter which allows rewinding
multiple states.
* Added 'unwind' command, which undoes the latest rewind(s)
* Added '<' (unwind) button to debugger.
* Thumbulator support is not conditional any more.
* Moved various developer related settings in new Developer Settings
dialog. These settings now come in two groups (player/developer) and
allow switching all settings at once.
* Don't trap write accesses to the datastream pointers in CDF and BUS.
This fixes -dev.thumb.trapfatal 1.
* Complete rework of TV mode and ystart autodetection. The new
implementation is more robust and reduces startup time.
* Add two "grace lines" of black to the top of the frame when
autodetecting ystart.
* Fixed Genesis controller autodetect (Stay Frosty 2, Scramble, etc).
* Fixed a bug in ystart autodetection that could cause screen jumps.
* Fixed several bugs in holdselect, holdreset and holdjoyX commandline
arguments; these now work as expected.
* Fixed bug in TIA collision handling; it is now disabled in VBlank.
* Improve TIA PF collision handling during hblank; this fixes a bug in
Thrust ROM.
* Fixed wrong display of HM values in debugger after 'HMCLR' has been
executed.
* Fixed bug with the debugger 'savedis' command in Windows; it wasn't
actually saving the files at all. This has never been reported
before, so I guess it shows how many people use that functionality.
* The debugger 'savedis', 'saverom' and 'saveses' now save files in
a default, user-visible directory (see the documentation for more
information). In the case of 'saveses', the filename is now named
based on the date and time of when the command was entered.
* Fixed bug with saving snapshots in 1x mode; there was graphical
corruption in some cases. Such snapshots also now include any TV
effects / phosphor blending currently in use.
* Fixed regular-sized snapshots when phosphor effect was enabled;
sometimes the image was 'double-blended', resulting in a snapshot that
was too dark.
* Fixed crash when selecting 'CompuMate' as a controller type for a non-
CompuMate ROM; this controller type can no longer be manually
selected, and will be used automatically used for CompuMate ROMs.
* Fixed cheat codes, so 7 digits codes are now accepted as described in
the doc.
* Fixed swapped ports being displayed wrong in System Logs and debugger.
* Added options to erase the AtariVox/Savekey flash memory, either for
all ROMs or only the current one. Also added a message (configurable)
when the flash memory is accessed.
* Access to the AtariVox/SaveKey can be signaled with a message.
* Added new interface palette 'Light'.
* Frame stats display made transparent. Also it now displays the real
frame rate and if the developer settings group is enabled.
* Improved tab auto-complete in debugger.
* Added conditional traps and savestate creation to debugger.
* Added 'Options...' button to debugger which gives access to the options
menu during debugging.
* Added debugger pseudo-register '_cyclesLo' and '_cyclesHi', which give
the number of CPU cycles that have occurred since emulation started.
* Added debugger pseudo-register '_fcycles', which gives the number of
CPU cycles that have occurred since the frame started.
* Added debugger pseudo-register '_icycles', which gives the number of
CPU cycles of the last instruction.
* Extended debugger 'dump' command to take a second argument, indicating
the end of the range to dump data.
* Improved change tracking; more values are tracked and change tracking
now works in case of a break too.
* Added widgets for trackball and SaveKey/AtariVox controllers.
* Improved emulation of 'FE' bankswitch scheme (no user-visible changes,
but internally the emulation is much more accurate compared to the
real thing). Related to this, improved the debugger support for this
scheme (you can now switch banks in the debugger view).
* Added emulation of 7800 initial RAM values and Pause key.
* Added ROM properties for 'Scramble' ROMs, and updated info for all
"Champ Games" ROMs.
* Added ROM properties for 'Zippy the Porcupine' ROMs, and updated
info for all "Chris Spry (Sprybug)" ROMs.
* Support UNIX style builds (configure / make) on OSX with both
XCode / clang and g++.
* Fixed error when building with uClibc-ng for ARM (thanks to Sergio
Prado).
* Updated included PNG library to latest stable version.
5.0.1 to 5.0.2: (August 20, 2017)
* Improved emulation of Trakball controller, eliminating bias in left/
right directions. Thanks to Thomas Jentzsch for the idea and code.
Related to this, added 'tsense' commandline argument and associated
UI item, to allow changing sensitivity of mouse trackball emulation.
* Added preliminary support for multi-threading in the Blargg TV effects
code. This is still a WIP; more improvements are coming. Related to
this, further optimized the TIA rendering code. Also added 'threads'
commandline argument and associated UI item to enable/disable
multi-threading. Thanks to Thomas Jentzsch for the bulk of the work
in this area.
* Blargg TV effects now no longer cut off the right side of the image
(by several pixels) in certain cases.
* Updated CDF scheme to latest version from Spiceware. In addition,
this scheme now supports versioning, so older and newer ROMs will
continue to work.
* Fixed an annoying bug in Linux, where Alt-Tab'ing out of a window and
then back again would pass a 'Tab' key event to the app, which in
most cases would navigate to the next UI element.
* Fixed potential issue with state file saving and the debugger; under
certain circumstances a rewind would give a different state than
before (note that the state file format has changed because of this).
* Fixed lockups when entering the debugger under certain circumstances.
* The debugger 'listtraps' command now shows all traps set, not just
the first one(s).
* Reverted joystick changes for Decathlon ROMs from last release, as
it was added by mistake.
5.0 to 5.0.1: (July 23, 2017)
* Fixed issues in keypad, Genesis and various other controllers that use
INPTx registers; the emulation is now much more accurate in this area.
* Various 'Bumper Bash' and 'Decathlon' ROMs are marked as always having
all 4 directions on a joystick enabled, since they can't be played
properly otherwise.
* Added 'Hunchy II' from Chris Walton (cd-w) to ROM properties database.
* Codebase now uses C++14 features.
4.7.3 to 5.0: (July 16, 2017)
* Note: because of major TIA/6502/RIOT changes, the state file format
has changed, and old state files will not work with this release.
* Stella has moved from Sourceforge to Github.
* Completely new TIA core is now available, ported from 6502ts by
Christian Speckner (DirtyHairy). This new core is extremely accurate,
and matches real hardware in almost every test we've performed.
New features include:
- Meltdown emulates correct
- The lap number in Pole Positions displays correctly
- Artifacts in the mountains on Snoopy and the Red baron are gone
- Line artifacts in Title Match Pro Wrestling and Realsports Boxing
are fixed
- The spurious line at the left border of Video Chess now displays
correctly
- All 32 char text demos from AtariAge now work perfectly (Stella 4
shows artifacts on several of these)
- Stella is now the only emulator to display the "Mega Bitmap Demo"
(atext.bin) from AtariAge correctly
- Improved starfield effect for missiles (still TODO for ball and
players)
- RSYNC emulation has improved, all testcases now match real
hardware
- Several other ROMs that have never worked in any emulator are now
emulated correctly
- RDY behavior with respect to write cycles is accurate
- Optional YStart autodetect and more robust frame handling
- NUSIZ during player draw matches hardware
- RESMx during missile draw matches hardware
- Paddle emulation is slightly more accurate. As a consequence, the
"paddle feel" may be slightly different from Stella 4
- Fixed debug colors can now be set for each graphical object, from
a choice of 'red', 'orange', 'yellow', 'green', 'blue' and
'purple'. This is accessible through the new 'tia.dbgcolors'
commandline argument and within the UI.
* Implemented new phosphor emulation mode, which is much closer to real
TV output. Related to this, added ability to change the default
phosphor blend level in the UI and through the new 'tv.phosblend'
commandline argument. Special thanks to Thomas Jentzsch for the idea
and implementation.
* TV phosphor effect can now be force-enabled for all ROMs, instead
of manually setting ROM properties for each ROM. This is accessible
in the UI and through the 'tv.phosphor' commandline argument, and
defaults to being off (or enabled per-ROM).
* PAL color-loss and Blargg TV effects can now be enabled at the same
time. Previously, when Blargg effects were enabled, PAL color-loss
couldn't be shown. Related to this, the Blargg effects now use much
less memory and in some cases run faster than before.
* Much improved RIOT timer emulation never before seen in any emulator.
Special thanks to Christian Speckner (DirtyHairy) for the
implementation, and alex_79 for finding documentation that finally
describes in more detail how the M6532 chip actually works.
* Added BUS (experimental) and CDF bankswitching schemes, and also
ARM Timer 1 support; special thanks to SpiceWare for the code.
* Fixed bug with SaveKey and AtariVox not properly closing their memory
files before starting another instance of the same ROM, when the ROM
was opened in the ROM launcher.
* Various improvements to the debugger and command prompt:
- The 'cls' command now only clears the screen, not the history
- The 'help' command now accepts other commands, and gives extra
information about the command (ie, 'help breakif' prints extended
information about the breakif command)
- Added 'palette' command, which shows a color swatch of the
currently active TIA palette
- Added 'debugcolors' command, which shows a legend for 'fixed debug
colors' mode
- The previous trap'm' commands now work when setting TIA read
addresses; previously they only worked for write addresses
- The previous trap'm' commands are now renamed 'trap', 'trapread'
and 'trapwrite'
- The TIA tab now shows 'old' contents of player and ball registers
- Various UI items are crossed out when disabled, to more clearly
indicate their current state
- Various UI items that previously required a double-click to toggle
(pixel and bit widgets) now require only a single-click.
- Command completion now works with internal functions and pseudo-ops
(basically, anything starting with the '_' character)
- System labels (aka, register names, etc) can now be typed in lower-
case. Previously, these labels always had to be uppercase.
- In general, input error checking is much more strictly enforced
- Read-only UI items now have a different background color, to
clearly indicate if an item can be modified.
- Debugger '.lst' and '.sym' files are now searched based on the name
of the ROM file, and not on the internal properties name.
- Snapshots can now be saved by pressing the F12 key (the various
other ways to save snapshots still exist).
* Mouse grabbing is now enabled in windowed mode only when the ROM is
using a virtual analog controller (paddles, trakball, etc).
* Renamed various trakball-like controllers more accurately: AmigaMouse,
AtariMouse (previously CX80) and Trakball (previously CX22). Related
to this, reduced the resolution of the Trakball by half, to properly
match real hardware.
* The stack pointer (SP) is now initialized to $FD instead of $FF, to
match research done in other 6502 projects.
* Fixed bug in debugger tracing and displaying the partial TIA image;
the first time entering the debugger and starting to trace, the image
was blanked out (black) instead of being drawn in greyscale. Also, the
image is now synchronized, instead of being two frames behind.
* Fixed crash with zipped ROMs that are less than 4K in size; so far
this bug has only ever occurred in Windows XP, but it's been there
since Stella 4.1.
* Fixed bug in 'Rom Audit' functionality; sometimes ROMs without a
valid properties entry were being renamed as "Untitled.bin".
* For the entire UI, removed colons and generally made the UI items
easier to read.
* When in 'ROM launcher mode', Stella now uses slightly less CPU time.
More work is required in this area, though.
* Added ROM properties for D.K. VCS homebrew ROM, thanks to Andreas
Dietrich.
* Added slight improvement for auto-detecting Superchip bankswitching;
the new implementation now works for the NTSC 'Dig Dug' ROM. Special
thanks for SpiceWare for the idea and modified implementation.
* Fixed long-standing bug in 3-voice music in DPC+ bankswitching scheme;
the music now sounds much more like the real thing.
* For the Linux/UNIX port:
- The settings directory now uses the XDG Base Directory Specification.
In most cases, this means that your files will now be stored in
'~/.config/stella' instead of '~/.stella'. To keep your old settings,
run the following commands from the terminal:
cd ~
mv .stella .config/stella
You will probably need to edit '~/.config/stella/stellarc' and change
some paths accordingly.
* For the OSX port:
- Always use the built-in png and zlib libraries instead of the system
versions.
- The preferences file has changed from 'net.sourceforge.Stella.plist'
to 'Stella-emu.plist'. To keep your old settings, run the following
commands from the terminal:
cd ~/Library/Preferences
mv net.sourceforge.Stella.plist Stella-emu.plist
* Updated internal ROM properties database to ROM-Hunter version 13
(thanks go to RomHunter for his tireless research in this area).
Related to this, updated the snapshot collection.
* Updated included PNG and ZLIB libraries to latest stable version. Also,
both libraries are now compiled into the app whenever one is selected.
This fixes issues with a newer ZLIB not working with an older PNG, etc.
* Updated build scripts for Visual Studio 2017 (Windows) and MacOS
Sierra (latest version of Xcode), and make these the minimum supported
versions for building Stella.
* Updated UNIX configure script to work with the clang 5+ and gcc 7+
compiler versions, and fixed compile issues on AArch64 and ppc64le
architectures.
---------------------------------
4.7.2 to 4.7.3: (Nov. 21, 2016)
* Added preliminary support for the 3E+ bankswitching scheme, developed
by Thomas Jentzsch.
* Fixed HMOVE positioning bug that occurred under certain circumstances.
Thanks to Omegamatrix of AtariAge for the bug report and patch to fix
the issue.
* Added 'trapm', 'trapreadm', 'trapwritem' commands to debugger prompt.
These are similar to the non-'m' versions, except that they also trap
on all mirrors of the given address.
* Fixed bug in debugger 'reset' command; it wasn't resetting the
bankswitching, so after a reset the banks were in an undefined state.
* Updated UNIX configure script to fix a bug where it fails in
cross-compilation under certain circumstances. Thanks to Vlad
Zakharov for providing a patch to fix this issue.
4.7.1 to 4.7.2: (Mar. 25, 2016)
* Fixed bug when entering and exiting the debugger; sometimes the
character corresponding to the '`' key would be output in the
prompt area.
* Updated DPC+ Thumb ARM emulation code to latest from David Welch.
In particular, this fixes incorrect handling of the V flag when
adding and subtracting, but also fixes compile-time warnings that
I couldn't get rid of before.
* Updated UNIX configure script to work with GCC 6.x compilers, and to
remove references to obsolete compiler versions that can no longer
be used to compile Stella.
4.7 to 4.7.1: (Feb. 13, 2016)
* Improved TV 'jitter' emulation; the recovery time can now be spread
over multiple frame, to simulate a real TV taking multiple frames to
recover. Related to this, added new commandline argument
'tv.jitter_recovery' to set the recovery time. Finally, enabling
the jitter effect and the recovery time are now accessible through
the UI. Special thanks to SpiceWare of AtariAge for the initial idea
and implementation.
* Fixed bug with 'Medieval Mayhem' ROMs; the paddle range was set too
low, and as a result the number of players couldn't be selected.
* Fixed bug when using more than two input controllers with the same
name; each controller after the second one was named the same as the
second one. This caused the joystick mappings to be lost, since there
was only information about two controllers being saved.
* Indirectly fixed issues with Stelladaptor/2600-daptor devices and
paddles having too large of a deadzone in Linux. Currently, this
involves running an external application to set the deadzone,
since SDL2 does not yet expose this information. The program is
called 'evdev-joystick', and will be released separately from Stella.
* Updated internal ROM properties database to ROM-Hunter version 11
(thanks go to RomHunter for his tireless research in this area).
Related to this, updated the snapshot collection.
4.6.7 to 4.7: (January 25, 2016)
* Improved paddle emulation in several ways:
- Added ability to specify the maximum range of movement for paddles
when using a mouse or digital device to emulate the paddle. This is
useful since on a real console most paddle games use very little of
the paddle range, and could result in moving the mouse onscreen with
nothing appearing to happen (when in effect it was as if you turned
a real paddle all the way to the end of the range). This eliminates
issues in (for example) Kaboom, where there was a huge 'deadzone'
when moving to the left. All applicable ROMS in the internal
database have been updated.
- The range for paddle emulation now takes an integer from 1 - 20,
indicating how much to scale movement (ie, how fast the onscreen
paddle will move when you move the mouse). The movement itself
is now also smoother than before.
* Fixed bug in 'Score mode' in TIA emulation; the TIA object colours
were correct, but the associated priority was sometimes incorrect.
* Fixed bug in ROM launcher; selecting 'Options -> Game Properties' after
loading a ROM would always point to the last opened ROM, not to the one
currently selected.
* Fixed bug in storing ROM properties; in some cases, a copy of the
ROM properties was being stored in the external file when it was
exactly the same as the internal entry.
* Added 'CV+' bankswitching scheme, developed by myself and LS_Dracon
(of AtariAge). This scheme contains RAM like the CV scheme, and
also switchable 2K ROM segments by writing to $3D.
* Added more C++11 updates all over the codebase, and ran Stella
through Coverity for the first time. I'm proud to say that Stella
now has a 0.00 defect rate!
pkgsrc changes: depend on hicolor-icon-theme as it installs files in
share/icons/hicolor and pkglint says so.
Upstream changes:
August 31, 2013
Stella release 3.9.2 for Linux, MacOS X and Windows is now available.
- 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).
-Have fun!
August 21, 2013
Stella release 3.9.1 for Linux, MacOS X and Windows is now available.
*** Note: because of TIA/6502 changes, the state file format has ***
*** changed again, and old state files will not work with this ***
*** release. ***
- Several bugfixes and improvements to the debugger:
- Improved display of debugger when using larger video
modes. There are now three font sizes, which are automatically
selected when the debugger is sized accordingly. When using larger
fonts, the extra space is now used more efficiently.
- Fixed bug in disassembly when the mirror used for the current
PC didn't match the mirror for the current bank. In this case, the
disassembler became confused and didn't properly track the PC
address.
- Fixed bug in display of current TIA frame number in the UI;
depending on how breakpoints were set, it was sometimes off by
one.
- Fixed RAM widget Search/Compare textboxes; entering any data
and then pressing 'Enter' / clicking 'OK' locked the UI until
exiting and re-entering the debugger.
- Changed display for various TIA position counters to decimal
(from hex) in the TIA tab. Related to this, all data input widgets
in the UI now have the ability to enter binary, decimal or hex
values by using the proper leading character (\, #, $,
respectively).
- Added 'INTIM Clks' to the 'I/O' tab. which shows the number of
clocks between each 'step' of the INTIM timer.
- Added ability to modify 'tiadriven' commandline argument to the
'TIA' tab, and 'ramrandom' to the 'I/O' tab. These options were
available for quite some time, but they weren't exposed in the UI.
- Added 'cpurandom' commandline argument, and associated UI item
to the 'I/O' tab. This works similar to 'ramrandom', and
randomizes the contents of the CPU registers on ROM startup.
- Added 'uhex' debugger prompt command, which toggles all
hexadecimal display between upper/lower case. This setting is also
saved in the settings file as argument 'dbg.uhex'.
- Removed 'loadsym' command from the debugger prompt, since the
DASM symbol file is always loaded anyway, making the command
redundant. Related to this, fixed loading symbols with ###.name
convention; the leading number is now stripped.
- Added support for DASM lst files (created with the -l
option). For now, the contents are only partially used, to detect
constants vs. symbolic addresses in the symbol file. Eventually,
further information from the lst file may be used.
- The GRPx and PFx registers in the TIA output now show inactive
background pixels as either blanked or with the underlying object
colour, instead of always being black. This gives a more accurate
representation of how the registers are actually drawn
onscreen. Thanks to Tjoppen of AtariAge for this idea and sample
code.
- The 'Source Address' locations for the CPU registers now show
labels where appropriate.
- Renamed 'Override properties' dialog (accessible from the ROM
launcher by a right-mouse-button click) to 'Power-on options', with
the following new options:
- Set start-up state for both joysticks as well as console
select/ reset buttons. Related to this, added 'holdjoy01' and
'holdjoy1' commandline arguments, and removed 'holdbutton0'
argument.
- The ability to load the ROM directly from this dialog, after
changing any settings, and also to start in the debugger.
- Added more detailed information as to how to use this
functionality to the UI.
- Buttons held down are reset approx. 0.5 seconds after starting
the ROM, to simulate pressing and releasing the buttons on a real
console.
- Fixed bug when using event remapping; changes were being saved only
when launching a ROM from the launcher, not in standalone mode.
- Improved bankswitch autodetection for newer EF and EFSC ROMs
generated by batari Basic, thanks to RevEng of AtariAge.
- Added properties database info for "Princess Rescue" ROM.
For the Linux/UNIX port:
- Fixed bug whereby a maximize button was always present in the
window title bar. Stella could not be expanded in this way, so the
button was removed.
- Added Startup notification protocol patch to the .desktop file
from Dan Fandrich.
- Updated included PNG library to latest stable version.
June 27, 2013
Stella release 3.9 for Linux, MacOS X and Windows is now available.
- Greatly extended functionality of the debugger disassembly:
- There is now a new tab which lists information specific to the
cartridge bankswitching scheme in use. This includes the ability
to modify internal state even for esoteric ROMs which don't follow
the standard layout of 4K per bank.
- The debugger now generates DASM-compatible disassembled code,
which can be saved to an external file. This disassembly is based
on both a static and runtime analysis, and is extremely
accurate. It also automatically differentiates between
CODE/PGFX/GFX/DATA/ROW areas, whereas normal Distella only
differentiates between CODE/GFX/ROW. For now, only single-bank (4K
and smaller) ROMs are supported; support for multi-bank ROMs will
come in a future release.
- The disassembly now recognizes various TIA/RIOT read/write
mirrors, and marks them as such (for example, INPT4|$30 instead of
INPT4 for address $3C). Special thanks to Omegamatrix for sample
code and idea for this feature.
- ROMS less than 2K in size (so called 'Sub2K' ROMs) now show
only the actual data in the binary. This means, for example, that
a 256 byte ROM will show only 256 bytes in the disassembly,
instead of padding duplicated data to 2K boundary.
- Fixed bug when entering patched bytes; the current number base
wasn't being used.
- Fixed labelling in ROW directives; it wasn't accurately setting
a label in the case where it occurred in the middle of the data.
- Added a new dialog for changing Distella settings, located by
right-clicking the disassembly code.
- The commandline option 'dis.resolvedata' has been renamed to
'dis.resolve', with new usage (see manual for further details).
- Fixed regression in handling ZIP files (as compared to version
3.7.5) created with newer versions of the ZIP program. Related to
this, added better error messages for invalid/missing/unreadable ROM
files.
- Added 'snapname' commandline argument and associated UI item, for
specifying whether snapshots should be saved using either the internal
ROM database name or the actual ROM filename. This feature was present
in older releases of Stella, and due to popular demand it's now back
again. Related to this, added a new dialog specifically for the
numerous snapshot-related items.
- Fixed bug in Linux/OSX versions when starting Stella for the first
time; it was previously creating mislabeled directories to store
settings, snapshots, etc.
- Fixed redundant "New console created" message when entering the
same ROM multiple times from the ROM launcher.
- Updated profile database for "BasketBall" ROMs; the joysticks are
now swapped by default, which allows one and two-player games to work
correctly.
- SuperCharger/AR ROMs now ignore the 'ramrandom' setting, and start
with RAM containing all zeroes. This seems to fix issues with
Dragonstomper always starting in exactly the same state.
- Fixed issue when debugging CompuMate ROMs; keystrokes entered while
debugging would be interpreted as typing on the CompuMate keyboard.
- Changed colour of the 'current PC indicator' in the debugger to
match the one used for line selection. This makes it easier to see for
those with problems seeing lighter colours.
- Improved functionality of the various pop-up dialogs and context
menus in the UI; they can now be navigated more fully by the keyboard
and mouse.
- Updated internal ROM properties database to ROM-Hunter version 9
(thanks go to RomHunter for his tireless research in this
area). Related to this, updated the snapshot collection.
- Updated included PNG and ZLIB libraries to latest stable version.
March 13, 2013
The Subversion repository used by Stella has been changed. All
developers will need to checkout again from trunk, or relocate their
current directory to the new system.
March 3, 2013
Stella release 3.8.1 for Linux, MacOS X and Windows is now available.
- Added support for TIA RSYNC writes, thanks to Omegamatrix of
AtariAge. This allows the recently released "Extra Terrestrials" ROM
to run, as well as improving emulation of "Fatal Run" and several
other test ROMs.
- Fixed typo in TIA HMOVE writes, thanks to Thomas Jentzsch. This
fixes the constant collision issues in "Kool-Aid Man", and several
other homebrew ROMs.
- Fixed sound issues on OSX PPC machines (all sound was in
little-endian format, but PPC is big-endian).
- The OSX DMG archive now contains proper modification dates.
February 23, 2013
Added an expanded explanation for first-time developers to the Development section of the Stella webpage.
February 21, 2013
Stella release 3.8 for Linux, MacOS X and Windows is now available.
- Huge changes to the sound system:
- The sound code now uses 16-bit signed samples instead of 8-bit
unsigned samples, making it more compatible with a wider variety
of systems.
- Improved sound output for several ROMs, including "Space Rocks"
(the 'heartbeat' sound can now be clearly heard).
- The 'volume clipping' option has been removed, since in 16-bit
mode it's no longer needed.
- The 'Tia freq' option has been removed.
- Selecting more common sample rates (other than 31400) now works
much better, but there are still a few ROMS (like Quadrun) where
31400Hz still works best.
Many changes to handling ZIP archives:
- Files in multiple levels are now recognized. This fixes issues
in Windows where such files couldn't be loaded at all, and in all
systems where ROMs with the same name (but in different
directories) weren't being recognized.
- ZIP contents are now handled more intelligently. Archives
containing only one ROM are automatically loaded, whereas those
with multiple files are treated as directories.
- Opening an archive from the commandline now works as in the UI,
where opening a multi-ROM archive will pop up the UI and show the
archive contents (as a directory).
- The ZIP code behind the scenes is now much faster by making use
of caching (the old code was actually from 1998!).
- This new 'archive' infrastructure may eventually lead to 7-Zip
support, as well as 'virtual' formats (such as showing the list of
files for 2in1/4in1/8in1/etc within the UI).
- Improved bankswitch autodetection for FA2 ROMs; 29K and 32K
versions (meant for Harmony cart) are now recognized.
- Improved bankswitch autodetection for X07 ROMs (although there's
only two known ROMs in existence, so the detection probably isn't
robust).
- Tweaked bankswitch autodetection for the 0840, F8 and FE schemes;
several homebrews that didn't run before now work correctly.
- Fixed regression in RIOT INTIM reads; at least one known ROM
(Mr. Roboto Berzerk hack) wasn't working properly.
- Fixed bug in the debugger with RIOT INTIM/TIMINT display; reads
were being done multiple times, changing the state of the registers
and resulting in incorrect emulation.
- Worked around bug in debugger disassembly of zero-page RAM; for
now, the resolving of address vs. data sections is turned off in such
a case. This fixes lockups in 'Meltdown' ROM.
- Added support for different directories for saving/loading PNG
files. These are set with the 'snapsavedir' and 'snaploaddir'
commandline arguments (which replace the old 'snapdir'), and are also
available within the UI.
- Changed 'eepromdir' commandline argument to 'nvramdir', and changed
the default location to BASEDIR/nvram (where BASEDIR depends on your
OS). This means all your EEPROM and Flash files will have to be
manually moved to this new directory. This affects developers, and
those people playing ROMs with AtariVox/SaveKey support as well as the
newer 'Star Castle' FA2 ROMs.
- Updated included PNG and ZLIB libraries to latest stable version.
December 22, 2012
Stella release 3.7.5 for Linux, MacOS X and Windows is now available.
- Improved regressions in PAL format autodetection, introduced in the
past several releases.
- Fixed crash when loading invalid PNG files in ROM browser.
- Snapshots generated by Stella now include more informative info,
such as the build number, platform architecture, TV effects in use,
etc.
October 31, 2012
Stella release 3.7.4 for Linux, MacOS X and Windows is now available.
- Fixed screen blanking regression in 'Video Chess', and improved
behaviour of ROMs that don't use VSYNC.
October 26, 2012
Stella release 3.7.3 for Linux, MacOS X and Windows is now available.
*** Note: because of TIA/RIOT changes, the state file format has ***
*** changed again, and old state files will not work with this ***
*** release. ***
- Improved handling of 'illegal' VSYNC signals, which sometimes
created 'short' frames that caused massive flickering. Also improved
related behaviour when VSYNC isn't used at all.
- Improved sound generation with ROMs that have irregular scanline
counts. This fixes many demo ROMs as well as Quadrun, where previously
there would be 'gaps' in the sound output.
- Improved emulation of RIOT chip, in particular the behaviour of
reading from TIMINT. Also, D6 of the Interrupt Flag register is now
properly set on active transition of the PA7 pin.
- Fixed bug in DPC+ bankswitch scheme; the music in several ROMS
wasn't playing correctly.
- The ROM properties database now uses 'Auto' instead of
'Auto-select' everywhere. This makes for less typing when running from
the commandline.
- Updated included PNG library to latest stable version.
- Fix a bit of pkglint.
- patch-aa is no longer needed.
Upstream changelog:
3.7.1 to 3.7.2: (June 10, 2012)
* Fixed bug in handling filenames with the '~' character, as is used
extensively by RomHunter rom-sets.
-Have fun!
3.7 to 3.7.1: (June 8, 2012)
* Note: because of TIA changes, the state file format has changed again,
and old state files will not work with this release.
* Improved TIA emulation with ROMs that have too few or too many
scanlines; the output is now more accurate compared to a real TV.
Special thanks to Omegamatrix of AtariAge for test ROMs in this area.
* Modified hotkey for "Change console palette" (Control-f) to also
change the display properties of the TIA. This allows you to switch
between NTSC/PAL/SECAM (and variant) modes dynamically. Related to
this, added Shift-Control-f key to step backwards through the
available modes.
* Added '64in1' and '128in1' multicart bankswitching schemes, which work
the same as the 2in1/4in1/etc ones (Control-r switches to each
consecutive game in the ROM).
* Fixed several bugs in DPC+ bankswitching scheme, including ability
to load and save state files. As well, ROMs now work correctly after
console format autodetection.
* Fixed bugs in handling relative filenames on the commandline,
introduced in the last release. The new functionality should be much
more robust.
3.6.1 to 3.7: (June 1, 2012)
* Added Blargg TV effects, with presets for Composite, S-video, RGB,
and badly adjusted TV, and well as a custom mode with full
configurability of contrast, brightness, gamma, etc. Many
keyboard shortcuts and commandline arguments were added to support
this; see the documentation for a detailed explanation. These
effects are OpenGL-only. Special thanks to Ian Bogost and the
Georgia Tech Atari Team for the preliminary implementation.
* Updated the CompuMate keyboard handler to recognize more keys on an
actual keyboard, instead of having to remember the weird combinations
used on the original CompuMate keyboard (although those original keys
will continue to work). Related to this, fixed bug whereby
'ghost keys' would be detected by the CompuMate, particularly after
pressing 'Enter' to start a game from the ROM launcher.
* Added emulation for MindLink controller using the mouse; the 'Bionic
Breakthrough' and 'Telepathy' ROMs now work.
* Updated FA2 bankswitch scheme (Star Castle) to emulate load/save
high score functionality to the Harmony cart flash RAM.
* Added ability for ROM launcher to 'descend' into ZIP files when it
contains more than one ROM file. This means you no longer have to
unzip a multi-file archive before using each ROM. Thanks go to Roland
Schabenberger (webOS maintainer) for this idea and sample code.
* Several improvements to the debugger/disassembler:
- The 'resolvedata', 'showaddr' and 'gfxformat' commandline
arguments are renamed to start with 'dis', indicating that
they're used with the built-in disassembler.
- Zero-page code addresses no longer have their high-byte
truncated, and system equates (TIA and I/O registers) are now
properly marked as such.
- The Distella '-r' option (Relocate calls out of address range)
is no longer the default, resulting in output more consistent
with normal usage of Distella. Related to this, added the
'-dis.relocate' commandline argument (and associated UI item)
to toggle this dynamically.
* Fixed bug in EFSC bankswitch scheme state saving; the Superchip RAM
wasn't actually being loaded and saved to state files.
* Improved speed of loading and saving state files, as well as slightly
reducing their size. Because of this, old state files will not work
with this release.
* Replaced commandline argument 'uselauncher' with 'exitlauncher'. The
new option specifies the behaviour of the ROM launcher when exiting
a ROM (always exit to launcher, or only when the launcher was actually
used). This setting can now be changed in the GUI.
* Several updates to the internal properties database:
- 'Juno First' ROMs now use an AtariVox/SaveKey when possible
- 'Astroblast' ROMs now use the paddles by default
- 'Star Castle 2600' ROMs added
* Changed key-combo for enabling TIA objects and collisions to be
toggled on and off with the Alt-period and Shift-Alt-period
respectively (instead of having two separate keys to turn them on
and off).
* When working on the commandline, relative filenames are now
correctly handled (current working directory is used).
* The Windows 98/ME/2000 builds have been discontinued, due to code and
features that are only available on Windows XP/SP3 and later.
* Updated included PNG library to latest stable version.
3.6 to 3.6.1: (March 30, 2012)
* Extended FA2 bankswitch scheme to handle 28K ROMs (in addition to
the previously supported 24K ROMs).
3.5.5 to 3.6: (March 16, 2012)
* Added support for 2600-daptor II device, including native support
for 7800 controllers, BoosterGrip and Keypad controllers. Special
thanks go to Tom Hafner for a complimentary test sample of this
device, and also for donating a BoosterGrip controller.
* Added ability to dynamically swap the port order of Stelladaptor/
2600-daptor devices with the 'Control-1' key combo (useful if you
have only one 2600-daptor and want to use it as a left port
normally, but as a right port for Star Raiders, etc).
* Added CompuMate bankswitching/controller support to the emulation
core; the Spectravideo CompuMate ROMs (NTSC and PAL) now work.
Frequently used keys on the CompuMate are directly mapped to your
keyboard (ie, Func-Space for backspace is mapped to Backspace, etc).
Loading/saving from the cassette player is not yet supported, and
will come in a future release.
* Fixed bug in BoosterGrip controller emulation; the functionality
of the booster and trigger buttons was reversed. Related to this,
renamed these actions in the Event Mapping dialog to be more clear.
* Reverted to SDL 1.2.14 for the Windows 98/2k release, since SDL
1.2.15 isn't supported in that environment.
* Updated included PNG library to latest stable version.
3.5 to 3.5.5: (February 4, 2012)
* Due to changes in the debugger, old state files will not work with
this release.
* Fixed bug in sound restructuring introduced in the last release; in
some cases, there could be some sound 'crackling' when starting a
ROM after at least one ROM had already been loaded.
* Several significant improvements to the debugger I/O tab:
- added controller input widgets for many of the built-in
controllers, allowing to control joysticks, paddles, etc
from within the debugger.
- added ability to modify the SWCHB/SWBCNT port B registers.
- added ability to view TIA INPTx and VBLANK latch/dump bits.
* Reworked 'mcontrol' argument, and added ability to map the mouse
axes separately for paddles 0-3 or driving controllers 0-1. In
such modes, the left mouse button is tied to the x-axis, and the
right button is tied to the y-axis.
* Mouse 'specific-axis' mode is now saved per-ROM, meaning that each
ROM can have separate settings. For example, this allows one ROM to
use paddles 0 and 1, while another can use paddles 0 and 2, etc.
* The key-combo for switching the mouse between controller modes is now
'Control-0' (Control-1,2,3 have been removed). This switches
between all possible modes for the current virtual controllers.
* Fixed bug in 'Fixed Debug Colors' mode; under certain circumstances,
playfield graphics could be coloured as being player graphics.
* Fixed bug in PAL color-loss setting in Video Settings; changing the
settings wouldn't take effect until the ROM was reloaded.
* Fixed bugs with cheatcode handling; loading a ROM with a cheat
disabled would sometimes trash the emulation. More work is
required in this area, including the ability to create more
advanced types of cheats.
* Updated ROM properties database for all Sega Genesis controller
compatible ROMs. Also, the mouse can now emulate a Genesis
controller, with the left/right buttons mapped to buttons B and C,
respectively.
* Added 'FA2' bankswitch scheme, thanks to code from Chris D.
Walton. This scheme will be used in an upcoming 'Star Castle' ROM.
* Updated internal ROM properties database to ROM-Hunter version 7
(thanks go to RomHunter for his tireless research in this area).
* Added several PERL tools to help in automation of analyzing RomHunter
ROM set releases.
* Fixed compile issues in Irix when using the default compiler
instead of gcc. Thanks go to Rainer M. Canavan for this code.
* Updated included PNG library to latest stable version.
3.4.1 to 3.5: (December 29, 2011)
* Stella is now DonationWare! Please see the DonationWare link on the
main webpage for more information.
* Added several improvements to the joystick management code. Joystick
event mapping is now saved per device, meaning that if you map events
to a certain joystick device, remove the device and then later insert
it again, Stella will remember the original mapping.
* The total number of joysticks present and their associated properties
(number of axes, buttons and hats) is now dynamic. That is, there's
no longer a hard-coded limit on the number of joysticks that Stella
can use, or the number of buttons, etc that it contains. This fixes
a serious bug with PS3 controllers with 27 buttons, whereby adding a
mapping for joystick 0 would inadvertantly change settings for
joystick 1, and could potentially lead to a program crash.
* Added 'mcontrol' commandline argument, which can specify to use each
mouse axis as a separate paddle. The old (and default) behaviour can
be activated by setting this argument to 'auto'. Related to this,
removed redundant 'usemouse' argument.
* Huge restructuring of the OpenGL code, making it compatible with
OpenGL 2.x+ features (such as vertex buffer objects), while at the
same time keeping compatibility with OpenGL 1.5 / OpenGL ES.
Because of the required changes, TV effects were removed (they will
be added again for the next release).
* Improvements to audio handling, particularly for certain cases of
Windows, ATI video cards, and OpenGL mode. The sound device is now
opened only once when Stella starts, and is paused between loading
different ROMs. This fixes a problem whereby sound could possibly
not be functional after loading the first ROM. Related to this,
removed the 'audiofirst' commandline argument as it's now redundant.
* Fixed bug with displaying the ROM launcher in Windows XP; the initial
load was sometimes taking up to 30 seconds to complete.
* Added logging facility, whereby the output of the application is
available within Stella itself. This can still be printed to the
console, or also saved to a file. Add the 'loglevel' and
'logtoconsole' commandline arguments which control these settings,
and removed the 'showinfo' argument as it's now redundant.
* Updated DPC+ bankswitching scheme to latest code provided by
SpiceWare.
* Added MAMCR handling to the Thumb ARM emulation code. Note that
MAMCR isn't actually emulated, it is just ignored for now. This
fixes a bug whereby accessing MAMCR would crash the ARM emulation.
* Added 'thumb.trapfatal' commandline argument, which causes the
Thumb ARM emulation to either trap on a fatal error (throw an
exception to the debugger and exit emulation) or simply log the
error and continue. This should normally always be enabled, but
can be disabled by developers for testing reasons.
* Updated default snapshot directory to be much saner and easier to
find. For most systems, it now defaults to the users 'Desktop'.
Note that the commandline argument has changed to 'snapdir'.
* The debugger 'print' command now indicates "special" addresses if
they are read-only (R), write-only (W) or read-write (R/W).
* Fixed a bug where scrolling the mouse-wheel in certain debugger UI
items would cause the program to crash; scrolling now works as
expected.
* Fixed minor display issue in the debugger RAM area; some addresses
were being displayed as '...'.
* Fixed compile issues in the latest versions of Ubuntu and Debian, and
fixed UNIX desktop file so that Stella will launch with a ROM when
selected from its icon. Thanks go to Stephen Kitt for this code.
* Updated included PNG library to latest stable version.
* Updated the credits list in the documentation, listing people that
have donated hardware to the Stella team.
3.4 to 3.4.1: (June 11, 2011)
* Re-enabled 'grabmouse' commandline argument and associated
functionality with the following changes:
- it is changed in the "Input Settings' UI, not in 'Video Settings'
- it only has meaning while in emulation mode
- it is enabled by default
* Fixed bug with emulation of paddles using the mouse most evident in
Warlords; movement was being filtered out if the mouse was moved too
fast. There's still more work required in this area, however.
* Fixed bug with analog axes on gamepad devices, whereby jittering in
these axes would override input from digital axis, hat or keyboard
input.
* Fixed bug when switching to the debugger and back again would
sometimes cause an extra mouse motion event (which would cause the
emulation to think the mouse was moved and move the player
accordingly).
* Tweaked bankswitch autodetection code for 4A50 bankswitching; several
more test ROMs are automatically detected.
* The 'saverom' debugger command now saves ROMs in your home
directory by default if you don't specify a valid path. This fixes
a bug whereby ROMs were saved in strange locations and couldn't later
be found.
* Fixed bug in automatically executing the debugger 'autoexec.stella'
file; any commands it contained weren't actually being executed.
* Zero-byte ROMs are no longer loaded and mis-detected as Supercharger
images.
3.3 to 3.4: (May. 29, 2011)
* Many improvements to input handling, particularly with the mouse and
paddles:
- The mouse can now be used to emulate a joystick, booster-grip or
driving controller.
- The mouse now controls only one device at a time (1 of 4 paddles,
1 of 2 joysticks, etc), instead of devices from both virtual ports.
- The sensitivity for digital and mouse input (for paddles) can now
be set separately with the 'dsense' and 'msense' commandline
arguments, and from within the Input Settings UI.
* Added support for the 2600-daptor device (2600-daptor.com), which is
similar to a Stelladaptor but improves handling of paddles. Thanks
go to Tom Hafner for a complimentary test sample of this device.
* Added new controller types 'Paddles_IAxis', 'Paddles_IDir', and
'Paddles_IAxDr', which invert the paddle axis, direction, and
axis+direction, respectively. These are used for certain ROMs
that have the axis or direction inverted from normal (for example,
using the paddles causes on onscreen object to move up and down vs.
left and right). All applicable ROMs in the internal database
have been updated.
* Added preliminary support for emulating ARM code to the DPC+
bankswitching scheme (thanks to Batari). Related to this, fatal
errors in the DPC+ ARM code are now caught and shown in the debugger.
* Updated internal ROM properties database to ROM-Hunter version 6
(thanks go to RomHunter for his tireless research in this area).
* The ROM audit dialog now automatically selects the current
directory in the ROM launcher, and reloads the directory after
the audit is complete.
* Removed the 'grabmouse' functionality; the mouse is now always
grabbed while playing a game, and released otherwise.
* Updated built-in version of the PNG library to the latest version.
pkgsrc changes: none.
upstream changelog:
3.2.1 to 3.2.2: (September 17, 2010)
* Fixed bug with window centering; if enabled and the the window was
larger than the desktop, the window would be moved offscreen.
-Have fun!
3.2 to 3.2.1: (August 25, 2010)
* Improved behaviour of joystick 'hat' movement. This should fix bugs
most visible in Yars' Revenge.
* Fixed bug in debugger rewind states; bankswitching wasn't being
performed during the rewind. Related to this, fixed a similar issue
with the debugger 'loadstate' and 'savestate' commands.
* Added game properties info and snapshot for the newly released
'Halo 2600' ROM.
3.1.2 to 3.2: (August 20, 2010)
* NOTE: because of the many event-related changes in this release, all
event mapping should be reset to defaults after starting Stella for
the first time. As well, because of other internal changes, older
save-state files are no longer valid.
* Many improvements to joystick handling code, particularly for analog
axes. Navigating the UI should be much smoother now, and remapping
events to analog axes should be less 'twitchy'.
* Added ability to assign and remap 'combo' events in emulation mode.
Combo events are basically a sequence of normal events (up to 8)
that are generated from a single event (ie, one button on a joystick
could generate up to 8 events). Updated Input Settings UI to
access and modify these events.
* Default mappings are now available in UI and emulation mode for the
first 'hat' detected on a joystick/gamepad. Related to this, a hat
now works exactly like an axis in UI mode (holding down a direction
continues that direction until the hat is released/centered).
* Several major improvements to the debugger:
- the disassembler can now process multiple entry points, and
caches entry points as they're encountered (ie, the disassembly
isn't 'reset' each time a bank change occurs or you exit and
re-enter the debugger)
- preliminary support for disassembling from zero-page RAM
- re-added ability to change banks with the 'bank' debugger
prompt command and within the ROM disassembly UI
- user labels in disassembly are now supported again
- 'runto' command is now case-insensitive, and shows a progressbar
while searching through the disassembly
- the debugger window can be resized between ROM loads (previously,
the app had to be restarted)
- fixed bug in Distella disassembler output, where it sometimes
generated addresses above $FFFF
- a vertical line separates the disassembly from the raw bytes
* Fixed behaviour of SWCHB and SWBCNT; pins set to output now remember
the values previously written. Some ROMs use this functionality for
extra storage. Special thanks to Omegamatrix of AtariAge for advice
and test ROMs in this area.
* Fixed bug when reading from illegal TIA addresses; a Space Invaders
hack was showing pink enemies instead of white ones. Again, special
thanks to to Omegamatrix of AtariAge for advice and test ROMs in this
area.
* Fixed bug in handling INPT4/INPT5 latches from VBLANK; a least one
ROM was working in Stella when it didn't on real hardware.
* Added 'ramrandom' commandline argument, which is used to randomize
all RAM in the system; otherwise, the RAM is zeroed.
* Added 'finishing touches' to some of the UI descriptions, giving a
better explanation of the functions. Related to this, certain
options now show a message box explaining the option in further
detail (particularly the ROM Audit mode). As well, when starting
Stella for the first time, a prompt appears to select a ROM
directory.
* Fixed bugs in the ROM launcher when viewing certain PNG images not
created by Stella. Related to this, the official PNG library is now
included in the Stella codebase (version 1.4.3). Also added composite
snapshots for those ROMs which consist of several games. Thanks go
to Buzbard of AtariAge for these images.
* Added several fixes for crashes on 'small' systems (those systems
where the maximum resolution is less than 640x480).
* Tweaked bankswitch autodetection for 0840, DPC+, E7 and UA schemes.
* Improved F8 bankswitch autodetection for Yars Revenge in 8in1 ROM.
* Updated DPC+ bankswitch scheme to latest specifications.
* Snapshots taken in continuous snapshot mode are now timestamped, so
older files are never overwritten.
* Fixed a TIA segfault that could occur with certain ROMs.
* The 'center' application window functionality can now be changed
without having to restart the application. Related to this, mouse
positioning bugs when using the Linux version in OpenGL mode with
SDL 1.2.14 have been fixed.
* Reworked the manual, dividing it into 'Getting Started' and
'Advanced Configuration' sections. It still contains the same info
as before, but hopefully in a better organized way.
* Updated Help dialog; it was showing incorrect info for some OSX
shortcuts.
* Updated OSX build script to not crash when a previous build is
detected, and to properly handle filenames with spaces.
* Updated included ZLib to latest release version (1.2.5).
3.1.1 to 3.1.2: (May 3, 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.
3.1 to 3.1.1: (April 26, 2010)
* Fixed program crash when using RIOT addresses and labels in the
debugger console prompt.
* Updated DPC+ bankswitch scheme to latest specifications.
3.0 to 3.1: (April 22, 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.
* 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.
Upstream changes:
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.
Shared directories can now be created independently by the pacakges
needing them and will be removed automatically by pkg_delete when empty.
Packages needing empty directories can use the @pkgdir command in PLIST.
Discussed and ok'd in thread starting at
http://mail-index.netbsd.org/tech-pkg/2009/06/30/msg003546.html
aalib-x11 and aview-x11.
SDL dependencies change, so bump PKGREVISION (and BUILDLINK_RECOMMENDED)
for affected packages.
Addresses PR 32046 by Leonard Schmidt.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
* system properties file was never used.
Changes in 1.4.1:
* Fixed PAL sound issues.
* Cleaned up the SDL event gathering loop.
* 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).
Changes:
* Codebase ported to SDL. X11/OSS ports have been discontinued.
* Added OpenGL rendering support. (not enabled in pkgsrc)
* 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 has been greatly improved.
* Added support for switchable palettes.
* 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.
Changes since 1.1:
* 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
* 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.
* Added snapshot support to the X11 and SDL versions. Pressing F12
saves the current screen in PNG format. Requires PNG library.
* Added pause functionality to the core. Implemented in DOS, X11,
and SDL versions for now.
USE_GCC2 or USE_GCC3 where appropriate.
the functionality of the old gcc.buildlink2.mk has been rolled into
compiler.mk now, which is automatically used.
more changes to come later...
now and not NetBSD-*-arm32. Changes include one or more of:
- Change MACHINE_ARCH == arm32 to also match arm
- Where ONLY_FOR_PLATFORM includes NetBSD-*-arm32, add NetBSD-*-arm
- Where BROKEN or worked around for arm gcc bugs, set USE_GCC3
The last may shake out a few more broken packages the next bulk build.
optimisation loop. The first problem is at:
c++ -c -O2 -fno-rtti -I. -I../emucore -I../emucore/m6502/src \
-I../emucore/m6502/src/bspf/src -I../ui/x11 -I../ui/sound \
-I/usr/X11R6/include -DBSPF_UNIX ../emucore/m6502/src/M6502.cxx
XXX It would probably be best to turn off optimisation on the relevant files