Stella - Atari 2600 Emulator

Started by TrekMD, March 05, 2013, 02:14:31 AM

Previous topic - Next topic

zapiy

Very simple to use like Trek said, as for ROMs, google is your friend.. we can not link you direct fella..

Own: Jaguar, Lynx, Dreamcast, Saturn, MegaDrive, MegaCD, 32X, GameGear, PS3, PS, PSP, Wii, GameCube, N64, DS, GBA, GBC, GBP, GB,  Xbox, 3DO, CDi,  WonderSwan, WonderSwan Colour NGPC

hamie96


TrekMD

Stella 4.6 has been released!

* Finally fixed fullscreen rendering issues on some OpenGL implementations in Linux (mostly Intel-specific). Basically, the concept of 'dirty updates' has been removed; the window is now updated continuously. This may also fix issues some people were having with triple-buffering in Windows Direct3D, etc.

* Fixed sound corruption that happened when running a ROM for the first time. This was most obvious under OSX, but occasionally happened on other systems too.

* Reverted some minor C++11 features (std::regex and cbegin/cend iterators) in a few places, since otherwise GCC 4.9 is required to compile Stella, and it isn't available on many systems yet. These changes allow Stella to be built with GCC 4.8, which is present in the latest 'long term release' of Ubuntu.

* Fixed error messages on state loading; sometimes multiple messages were being added together and displayed.

* Fixed bug when running ROMs using AtariVox controllers; the app would crash upon exiting the ROM.

* Snapshot functionality now works while the emulation is paused.

* Certain textfields in the UI now have filtering enabled, preventing insertion of illegal characters. This will be extended throughout the code in future releases.

* DataGridWidgets in the debugger now respond to keypad '+' and '-'.

* Updated included PNG library to latest stable version.

Download at the link on the first post.  :)

Going to the final frontier, gaming...


Greyfox

Thanks for the heads up trek, wonder if VGAaTv knows about this new release? Could come in handy for doing gameplay video of the games :)

TrekMD

Sure thing.  I'd assume VGA is aware of Stella.  If not, it should be easy enough to point him here. :)

Going to the final frontier, gaming...


TrekMD

Stella 4.7 has been released!  

* 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!

Going to the final frontier, gaming...


zapiy

Cheers fella, i will grab that this week.

Own: Jaguar, Lynx, Dreamcast, Saturn, MegaDrive, MegaCD, 32X, GameGear, PS3, PS, PSP, Wii, GameCube, N64, DS, GBA, GBC, GBP, GB,  Xbox, 3DO, CDi,  WonderSwan, WonderSwan Colour NGPC

TrekMD

There's an important update about Stella that was posted that I want to share:

QuoteDue to popular demand, Stella has moved off of Sourceforge and to Github.  The new address is https://stella-emu.github.io.  There's a link at the old website that points to this, but all Sourceforge related stuff will be removed in approx. 3 months.  Many people have been experiencing issues with Sourceforge, so hopefully this will fix the issues.  If you visit other websites that mention Stella, please consider asking them to update their links.

For developers, we've moved from using Subversion to Git.  The new Stella webpage includes updated instructions on how to checkout with Git.  If you're not familiar with Git, now is the time to learn :)  The developer page is at https://github.com/stella-emu/stella.

Finally, we're in the middle of releasing test builds for the upcoming 5.0 release.  These can be checked out at https://github.com/s...stella/releases.

Let me know if there are any issues.  Since Stella has used Sourceforge for almost 15 years, it's possible I missed something in the changeover (but hopefully not).

EDIT: Github also has a very nice facility for reporting bugs (called issues), and tracking the progress of fixing these issues.  There was a similar feature on Sourceforge, but it was much harder to use.  Please consider using this for reporting bugs, as it's much easier to have them all documented in one place.

Going to the final frontier, gaming...


dot.fyre

I'll always appreciate and respect anyone that can create an emulator.
Along with M.A.M.E. and Spectaculator, Stella is an ever present on every PC I've ever owned.

But if anyone from the Stella project is reading, can you please look into updating the GUI!


TrekMD

Well, it's finally here. After 8 months of work, 10 pre-releases and feedback from dozens of people, Stella 5.0 is finally available. While we’ve had big point-0 releases before, this is the first time that we’ve had pre-releases, and the bug-fixing and valuable feedback that happened really shows.

The major highlight of this new release is a completely rewritten TIA core, ported from the 6502.ts project by Christian Speckner. There are also quite a few debugger improvements, as well as improved emulation of the RIOT and also some CPU stuff too. So really, some quite major changes right across the board. There are several ROMs that now work in Stella that have never worked in any other emulator. Almost all corner cases in TIA and RIOT behaviour are now correctly emulated. We even have a new TV phosphor emulation mode which is much more accurate than the old method.

So without further ado, here’s the considerable changelog:
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 '~/.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.

Going to the final frontier, gaming...


TrekMD

I wanted to post this update as version 6 has been released...

---------------

So, it's that time of year again.  And for a special gift, there is a new release of Stella! This one has been almost 6 months in the making, and is obviously a jump to a new major version.  There are huge changes all across the board, but the major new feature is cycle-exact TIA audio emulation.

For the first time, cycle-exact audio emulation allows several ROMs to work correctly that have never worked before.  E.T. and Ms. PacMan are the most obvious; they now sound exactly like they do on a real console.  Most other emulators (and Stella too, previous to 6.0) use an idealized emulation of sound, which in some cases results in better sounding, but incorrect, output.  The new code is based on FPGA work by Chris Brenner (crispy), and as a result AFAICT, this is the first time that E.T. has sounded correct in an emulator.

And for the first time in a long time, Stella gets a new coat of paint!  The themes have been modernized a little, which new schemes, titlebars on windows, etc.  Definitely makes the app look a little more modern.  We don't want to look too modern, though.  After all, we are emulating a 40+ year old system  :D

There are many other sound changes too, and bugfixes/improvements/new features all over the place.  Complete changelog as follows:
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 macOS 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.

As always, Stella can be downloaded from the usual place.  And as a shameless plug, please consider a donation if you like; I plan to build a new development workstation in 2019  :P

Special thanks to Christian Speckner and Thomas Jentzsch for work on this release; their work formed a large part of what became version 6.0.

Going to the final frontier, gaming...


LYNXGUY

Will Stella open .atr files and where might I find  .bin and .a26 files ???
thanks. . . . . . .
ATARI - The way gaming ought to be. . . . . . .

TrekMD

Stella is only for the 2600, so it opens binaries (.bin and .a26) files for those games only.  Atari Age has a ton of binaries you can download.

Going to the final frontier, gaming...


TrekMD

Stella 6.5 released!

So, it's time for the "Christmas" release of Stella.  Unfortunately, real life got in the way (as it sometimes does) and we missed the scheduled date.  As well, we weren't able to add all the things we were planning.  But enough apologizing, let's look at what was included.  Note that there were a lot of under-the-hood changes here, so even if the changelog looks relatively short, a lot of work/bugfixing was done.  One of the biggest new backend changes is moving the settings to an SQLite database.  Stella is getting much more complex, and having different settings (in different formats) all over the place was getting out of hand.  Another cool new feature is High Scores saving, even for ROMs that don't normally support it.  Finally, we extended the cut/copy/paste functionality in the UI a little further (more work to come).  So here's the changelog:

      New Features

      * Added high scores saving.

     

      * Improved text editing functionality (except PromptWidget):
        - Enhanced selection and cut/copy/paste from keyboard.
        - Added undo and redo support.
        - Added mouse support (selection, cut/copy/paste).
        - All actions have keyboard shortcuts.

     

      * Various improvements to the ROM launcher:
        - Added wildcard support to the dialog filter
        - Added option to search subdirectories

     

      * Added static tooltips to some UI items.

     

      * Added dynamic tooltips to most debugger items.

     

      * Added sound to Time Machine playback.

     

      * Added browser dialogs for user saved files.

     

      * Extended global hotkeys for input devices & ports settings.

     

      * Moved to using an SQLite database for storing user settings, properties and highscores.  More work will follow in future releases.

     

      * Increased sample size for CDFJ+.

     

      * Fixed autofire bug for trackball controllers.

     

      * Fixed bug in TV autodetection in filenames; a filename containing 'PAL' inside a word would sometimes misdetect as a PAL ROM.

     

      * Fixed Stelladaptor/2600'daptor devices sometimes not being assigned correct default mappings.

     

      * Codebase now uses C++17 features, which means a minimum of gcc7 or clang5 for Linux/Mac, and Visual Studio 2019 for Windows.
     

As usual, Stella can be downloaded at https://stella-emu.github.io/downloads.html, and donations are welcome at https://stella-emu.github.io/donations.html.  Note that we're still working out some last minute issues with the R77 port, so that one will come later this week.  Bugs can be reported here, or ideally by creating an issue at https://github.com/stella-emu/stella/issues.  Enjoy!

Going to the final frontier, gaming...


TrekMD

 Stella 6.5.2 is now released, which fixes a few bugs mentioned from the previous pages.  Changelog as follows:

    Fixed broken Driving Controller support for Stelladaptor/2600-daptor devices.
    Fixed missing QuadTari option in UI.
    Improved QuadTari timing.
    Added CPU usage stats to ARM cart classes debug widgets.

As usual, Stella can be downloaded at https://stella-emu.github.io/downloads.html, and donations can be made at https://stella-emu.github.io/donations.html.  Please report any bugs in this thread or as an issue on Github at https://github.com/stella-emu/stella/issues.

Going to the final frontier, gaming...