Skip to content

Releases: stella-emu/stella

Stella 5.1.3 released

10 Jun 12:26
Compare
Choose a tag to compare

Mostly just fixes for OpenBSD in this release, but the crashing bug could be seen on other systems too.

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

Stella 5.1.2 released

20 May 17:48
Compare
Choose a tag to compare

A minor update to 5.1.1, with just a few fixes:

  • Fixed bug with SaveKey autodetection; some ROMs were not correctly detecting that a virtual SaveKey device as 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.

Stella 5.1.1 released

21 Feb 20:10
Compare
Choose a tag to compare

A minor update to 5.1, with just one fix:

  • Fixed bug in Stargunner ROM starting with a blank screen.

Stella 5.1 released

04 Feb 23:18
Compare
Choose a tag to compare

Another huge release; changes as follows:

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

Stella 5.0.2 released

20 Aug 19:09
Compare
Choose a tag to compare

This is another point release, but a few extra updates this time before the next fairly major release of 5.1:

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

Stella 5.0.1 released

23 Jul 16:36
Compare
Choose a tag to compare

Minor point release, with one major bugfix. Changes as follows:

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

Stella 5.0 released

16 Jul 15:12
Compare
Choose a tag to compare
  • 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 lowercase. 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 '$HOME/.config/stella' instead of '$HOME/.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.

We're almost there

05 Jul 20:36
Compare
Choose a tag to compare
We're almost there Pre-release
Pre-release

This last release took a little longer than expected, but quite a few changes happened in the meantime:

  • Major improvements to the Xcode project file, and fixes to ROMs launching from Finder in version 10.9
  • Debugger lst and sym files now follow ROM filename, not properties file name
  • Fixes to ystart autodetection (the frame no longer jumps when finding the starting scanline)
  • Fixes to RSYNC behaviour in debugger
  • TV jittering won't take effect for differences of less than 3 scanlines, and for more than 3 frames (fixes Tapper, Yahtzee and several other ROMs)
  • Fixed scanline counter and issues with its position after CPU RDY has been set
  • TIA debug colours can now be set by the user (for now, the colours are pre-selected, and you can only change which object uses which colour; this may be expanded on in future releases)
  • System labels (aka, register names) can now be upper or lowercase in the debugger command prompt
  • Blargg TV effects and phosphor mode can now be used at the same time
  • Several performance optimizations in the Blargg/phosphor code, leading to measurable speedups.

I guess it's not the last release after all

29 May 19:06
Compare
Choose a tag to compare

I should have known better than to release a new feature and then say that there wouldn't be any other pre-releases 😄 :

  • Made range for phosphor blending from 0 - 100
  • Default phosphor blend mode is 30
  • Added Alt-i and Alt-o keyboard shortcuts to dynamically decrease/increase phosphor blend level

One last hurrah

28 May 22:36
Compare
Choose a tag to compare
One last hurrah Pre-release
Pre-release

So this is the final release before 5.0; one last chance to report some bugs:

  • Updates to the latest version of the BUS/CDF schemes
  • Cleanup of entire UI wrt colons; they have been removed in most places
  • Fixes for AArch64 and ppc64le architectures
  • Dialog boxes now open in 'small-window' modes, instead of simply failing to open and looking like the program has crashed
  • Moved to gcc5, Visual Studio 2017, and Xcode 8 for Linux, Windows, Mac, respectively
  • Fixed major bug in ROM Audit mode
  • Reimplemented TV jitter effect and PAL colour-loss effect
  • Some performance tuning in the TIA DelayQueue implementation
  • WSYNC is now properly implemented
  • Added scanline count for last frame to debugger, and fixed TIA display showing 2 frames in the past (instead of 1)
  • Implemented new phosphor mode by Thomas Jentzsch; currently this breaks phosphor mode with Blargg filtering (this will be fixed before the final release)

This last pre-release is to test new functionality, and to make sure we've taken care of all other bugs. In particular, the new phosphor mode is quite different from the old implementation, and should be properly tested. Feedback on this is welcome.