Releases: stella-emu/stella
Debugger and UI cleanup
While the TIA work is basically complete, we're now working on porting all missing features from Stella 4.x and/or improving the code. For this pre-release we concentrate on debugger stuff:
- The TIA core has improved optimizations and caching, allowing for up to 100% performance improvements; that means that all ROMs should be tested again, to make sure no regressions were introduced
- TIA tab in the debugger now works correctly for all widgets which existed in 4.x
- Non-editable UI items in the debugger are now shown with a different colour
- The debugger 'cls' no longer erases history
- Added DelayQueueWidget to TIA tab
- Debugger trap/read/write now work like the 'm' versions from Stella 4.x
- Added 'palette' and 'debugcolors' prompt commands
- Fixes for compiling with gcc 7+, Visual Studio 2017 and OSX Sierra
- Updated BUS and CDF bankswitch schemes
- Added ability to see contents of 'old' player/missile/ball registers
- Added 'crossed out' graphics to certain debugger UI objects, to clearly show they're not currently active
- Fixed long-standing bug in DPC+ 3-voice music output
- Added 'fixed debug colours' info to the TIA tab, including ability to toggle it
We're in the home stretch
As of this release, the TIA is regression-free compared to Stella 4.x. So that means a final release is probably coming soon. Updates for this release include:
- Improved Ystart detection, taking care of final corner cases
- Fixed long-standing bug that caused a crash in Windows XP
- Further improvements to NUSIZ handling during hblank
- Many improvements to the RIOT timer emulation; this is now almost complete, and is more accurate than any other tested emulator (fixes lockups in Acid Drop, Panda Chase, Ski Hunt, Zoo Fun, etc)
- Fix rendering of bottom line in Canyon Bomber
- Reduced CPU usage in ROM launcher mode
- Improved autodetection of Superchip ROMs (Dig Dug is now properly autodetected)
- Cosmic Ark starfield effect now matches output from most common consoles
- Add ARM Timer 1 support, and BUS/CDF bankswitching schemes
- Improvements to RESMPx handling (fixes Ice Hockey, which was the last TIA regression from 4.x)
- State loading/saving is now working again
- Debugger rewind is working again
Emulation Parity part 2
Work continues on parity with Stella 4.x, and also fixing new bugs and making improvements:
- Some changes to RIOT timer handling; this breaks at least Acid Drop and Panda Chase, but we want to know what others are broken
- PNG and zlib libs are the latest available, and now must be paired together when compiling into the app (fixes issues in OSX)
- Updated ystart for Coke Zero demo and Swoops, as well as removed many ystart properties from the internal database (auto-detection is used instead)
- Fixed TIA bug in Midnight Magic
- RESMx is now much more accurate
- Further improvements to writes to NUSIZx during draw
- Tracing by scanline in the debugger now works properly, and displays a greyed-out image when appropriate
- Minor RSYNC fixes
- Introduced new trakball classes and names, and reduced the resolution of the CX22 Trakball by half
- Fixed Maze Craze ystart auto-detection
- Init SP to correct value based on M6502 research by third parties
- Updated ROM properties to RomHunter v12
Emulation Parity
Starting with this release, emulation quality should be as good or better as the old core in all situations. The following changes are included:
- RESBL during hblank now behaves correctly -> fixes Keystone Kapers
- Several consecutive write cycles to WSYNC now behave similar to the old core (which is still not fully correct)
- Tweaked effective description of width modulation effects in startfield effect -> fixes Spike's Peak
- Fix RESMPx for 32 pixel players -> fixes Snoopy and the red baron
- Adjustments to RESMx and NUSIZx during draw counter decode to better match real hardware
- While autodetection of frame start should now work in all cases, ystart (together with frame height) are now supported and can be used to override autodetect
- Reliability of TV mode autodetect is improved, manually overriding the detected mode is now supported
- Timing for large frames, invalid or missing sync is improved. Among other things, thigs fixes PCM (speech) in Quadrun and the hectobyte demo
- YStart values in the ROM database have been removed or adjusted to match the new core
- RSYNC is now implemented and matches real hardware more closely than the old core
More bugfixes
This release contains a number of bugfixes
- CompuMate PAL ROM now displays in correct mode
- RESPM is fixed for 8 pixel players -> Frostbite displays correctly
- Fix spurios dispatch after RESPx for wide players -> Fixes glitch in Missile Command
- Frame rate stabilization
- Side effects of NUSIZ during decode are modelled -> Meltdown seems correct now
- Emulate final reset of more movement required counter -> Fixes glitch in Masters of the Universe
- Delay ENABL by one cycle -> fixes Super Challenge Football
- Fix INPT5
- Fix positioning regressions introduced between pre1 and pre2
- "Mega Bitmap Demo" now displays correctly; this is the first time that this ROM has ever worked in any emulator
The second iteration
In addition to work towards reenabling the missing Stella features, this release contains a number of bugfixes. Also, starting from this release, the old core is gone. In particular, the following items have changed or improved compared to 5.0.0-pre1
:
- RESMP matches real hardware fo 16 and 32 pixel players
- Starfield includes an effective description of modulation effects seen on real hardware (players not included for now)
- Frame and TV mode detection are improved, fixes multiple glitched ROMs
- Exception in Yar's revenge is fixed
- Keyboard controllers et. al. now work
- Delay for REFP[01] --- fixes Strawberry Shortcake
- Sprite positioning during extenden hblank has been adjusted. This fixes glitches in numerous games. (WARNING potential regressions ahead)
The eagle has landed
This is the initial preview release of the 6502.ts TIA core ported to Stella. Please check out the readme for instruction on how to switch cores.
Please check the issue tracker for a list of all currently know issues and for reporting new ones. In particular, the following things are known to be broken:
- Several Stella features like PAL color loss are currently not implemented in the
6502.ts
core - State saving is broken; don't try it, otherwise the emulation will lock up
- The debugger is functional for both cores, except for the TIA stuff
- The keyboard controller is currently broken with the
6502.ts
core, as are other ROMS that use registers related to paddles (CompuMate, etc) - The
6502.ts
core currently exhibits minor horizontal positioning glitches in some ROMs
stella-4.7.3
- 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.
stella-4.7.2
- 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.
stella-4.7.1
- 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.