Jump to content

Photo

Stella 6.0 released

stella new release cycle-exact audio debugger

79 replies to this topic

#1 stephena OFFLINE  

stephena

    River Patroller

  • 3,362 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Sun Dec 23, 2018 9:54 AM

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.
 
Bug reports can be posted here, or by creating an issue on the Github page.
 
Merry Christmas, and enjoy this latest release of Stella  :party:

  • Albert , Trebor , Thomas Jentzsch and 34 others like this

#2 Shawn OFFLINE  

Shawn

    As Above

  • 18,867 posts
  • So Below

Posted Sun Dec 23, 2018 9:56 AM

And a Merry Christmas to you too!



#3 Atari Nut OFFLINE  

Atari Nut

    Moonsweeper

  • 316 posts

Posted Sun Dec 23, 2018 10:34 AM

Thank you Stephena!



#4 Keatah OFFLINE  

Keatah

    Missile Commander

  • 21,950 posts

Posted Sun Dec 23, 2018 12:00 PM

Cool. An update to the premier virtual VCS! Thanks bud.



#5 Albert ONLINE  

Albert

    Quadrunner

  • 35,256 posts

Posted Sun Dec 23, 2018 12:58 PM

Thank you Stephena for all the work you've put into Stella over the years, and thank you to Christian Speckner and Thomas Jentzsch for their help with their contributions to 6.0.  Stella is an invaluable tool for development of new games, and of course the premier Atari 2600 emulator for everyone who wants to enjoy 2600 games on their computers.  

 

 ..Al


  • Nathan Strum , davidmt , ZeroPage Homebrew and 1 other like this

#6 Keatah OFFLINE  

Keatah

    Missile Commander

  • 21,950 posts

Posted Sun Dec 23, 2018 1:32 PM

For better compatibility, the Windows 32-bit version does not require SSE2 anymore.

 

If SSE2 is present, will it be used?



#7 stephena OFFLINE  

stephena

    River Patroller

  • Topic Starter
  • 3,362 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Sun Dec 23, 2018 1:42 PM

I'm not responsible for this part of the code, but I'm pretty sure it has been completely disabled for the 32-bit release.  It was causing problems on some systems, and doesn't really benefit to have it there anyway.  So we turned it off in the compiler settings.

 

The alternative is to provide multiple 32-bit builds.  And that's not something I want to do, since TBH the 32-bit version is on life support at this point.  Will probably disappear in Stella 7 (whenever that may be).


  • Keatah likes this

#8 ZeroPage Homebrew OFFLINE  

ZeroPage Homebrew

    Dragonstomper

  • 567 posts
  • Location:Vancouver Canada

Posted Mon Dec 24, 2018 12:48 PM

Thank you so much Stephen, I just made a donation to Stella in honour of your new release!! Thank you for everything you and the rest of your contributors do!

I use Stella all the time for testing out homebrew games before I stream them on the show, it has been an invaluable tool for what I do.



#9 Lordmonkus OFFLINE  

Lordmonkus

    Star Raider

  • 70 posts
  • Location:Ontario, Canada

Posted Mon Dec 24, 2018 7:05 PM

Thank you so much for this.



#10 TrekMD OFFLINE  

TrekMD

    River Patroller

  • 3,942 posts
  • Location:Coral Gables, FL

Posted Mon Dec 24, 2018 10:52 PM

Fantastic!  Thank you!



#11 Rom Hunter OFFLINE  

Rom Hunter

    VCS Games Archivist

  • 8,980 posts
  • Obtainer of Rare Antiquities

Posted Wed Dec 26, 2018 5:27 AM

Again: excellent work, Stephena & Team!

Thank you so much for keeping the VCS emulation alive and kicking!

Stephena, I just updated my ROM's collection to V15.0 (although the download page stuill says V14.0) so be my guest to incorporate it.

Thanks again!

8)
 


  • Keatah and ZeroPage Homebrew like this

#12 stephena OFFLINE  

stephena

    River Patroller

  • Topic Starter
  • 3,362 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Wed Dec 26, 2018 7:33 AM

Ahh, too bad I didn't know before; we could have got it integrated for 6.0.  Anyway, I'll get it done for the next point release.


  • Rom Hunter likes this

#13 Dionoid OFFLINE  

Dionoid

    Chopper Commander

  • 134 posts
  • Location:Leiden, Netherlands

Posted Thu Dec 27, 2018 4:25 AM

Thanks for all the hard work on version 6 of Stella!

I'm really happy about the new audio emulation, which makes developing in-game music much easier (I no longer need to check the sound on a real '2600 every time).

 

Pick 'N' Pile is a game I recently added to my collection, and I noticed in Stella 5 it didn't play like on an actual '2600. Stella 6 now fixes this and also shows the jumping number of scanlines that the original game has in the title & menu screens (which has very sloppy programming).

 

Thanks again, you guys make developing homebrew games more fun!!


  • DirtyHairy likes this

#14 israelg OFFLINE  

israelg

    Moonsweeper

  • 401 posts

Posted Thu Dec 27, 2018 5:54 AM

Thanks!  ;-)



#15 DirtyHairy OFFLINE  

DirtyHairy

    Dragonstomper

  • 505 posts
  • Location:Germany

Posted Thu Dec 27, 2018 2:50 PM

Pick 'N' Pile is a game I recently added to my collection, and I noticed in Stella 5 it didn't play like on an actual '2600. Stella 6 now fixes this and also shows the jumping number of scanlines that the original game has in the title & menu screens (which has very sloppy programming).

 

 

:P That sloppiness makes P'n'P the perfect test case for the new audio and threading code. In Stella 5, the irregular frame rate and the delay for rendering each frame to the screen would mess up timing and lead to speed variations that are not present on a real system. In Stella 6, speed is constant and almost identical to a real VCS; I had Stella and my Junior merrily play along in a duet for a minute or so before the drift became noticable.


  • alex_79 likes this

#16 Stephen ONLINE  

Stephen

    Quadrunner

  • 7,541 posts
  • A8 Gear Head
  • Location:No longer in Crakron, Ohio

Posted Fri Dec 28, 2018 5:01 PM

Awesome - thanks.  Just seeing this now.  I've got a nasty cold coming and don't feel like moving, so I know what I'll be doing this evening.


  • butterburp likes this

#17 JL OFFLINE  

JL

    Moonsweeper

  • 273 posts

Posted Sat Dec 29, 2018 10:46 AM

Stephen, many thanks for your time and efforts with Stella and also a special thanks for continuing basedir.txt support. For those using basedir.txt with Windows ensure your entry has a trailing  \


  • Keatah likes this

#18 stephena OFFLINE  

stephena

    River Patroller

  • Topic Starter
  • 3,362 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Sat Dec 29, 2018 1:17 PM

The trailing '\' shouldn't be necessary; that may be a bug that we should look into.

 

Related to this, I'm considering removing 'basedir.txt' and simply having a commandline argument to do the same thing.  So in Windows you'd just have the modify the icon to pass it the required information (this will be fully documented, of course).

 

I think this is a cleaner way of doing it?  Comments, feedback, etc?

 

So for example, instead of creating a file basedir.txt and having it contain, say, "C:\stella", you would right click and edit the icon, and put -basedir "C:\stella".  Would that make more sense?


  • slamthedoor likes this

#19 dgdgagdae OFFLINE  

dgdgagdae

    Chopper Commander

  • 194 posts

Posted Sat Dec 29, 2018 2:51 PM

Considering I'm still running Stella 3.7.4, maybe it's time to upgrade.


  • ls650 likes this

#20 JL OFFLINE  

JL

    Moonsweeper

  • 273 posts

Posted Sat Dec 29, 2018 4:06 PM

The trailing '\' shouldn't be necessary; that may be a bug that we should look into.

 

Related to this, I'm considering removing 'basedir.txt' and simply having a commandline argument to do the same thing.  So in Windows you'd just have the modify the icon to pass it the required information (this will be fully documented, of course).

 

I think this is a cleaner way of doing it?  Comments, feedback, etc?

 

So for example, instead of creating a file basedir.txt and having it contain, say, "C:\stella", you would right click and edit the icon, and put -basedir "C:\stella".  Would that make more sense?

 

 

 

Hi Stephen,

 

Prior to 6 , the trailing  \ was not required for me. When I started 6 the first time all items required proper basedir did not show up.

 

When I looked at the Stella system log I saw; "e:\emu\Atari\2600\Stellastella.ini"  

the \ was missing after 2600\Stella

 

I then changed my basedir.txt

 

from:

e:\emu\Atari\2600\Stella

 

to:

e:\emu\Atari\2600\Stella\

 

then all looked good when Stella started. The Stella system log displayed  e:\emu\Atari\2600\Stella\stella.ini  icon_smile.gif

 

As for commandline arg of -basedir as you mentioned - seems like a perfect idea to me!


Edited by JL, Sat Dec 29, 2018 4:10 PM.


#21 stephena OFFLINE  

stephena

    River Patroller

  • Topic Starter
  • 3,362 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Sat Dec 29, 2018 5:05 PM

OK, well that's a bug.  But I don't know if I'll fix it, or just move to the commandline arg for the next release.  In any case, I'll make sure the trailing backslash is taken care of.



#22 bhall408 OFFLINE  

bhall408

    Space Invader

  • 45 posts
  • Location:California

Posted Sun Dec 30, 2018 9:42 PM

Looking forward to this being integrated into 2600.emu (Android).

 

Related to that, I have a bug/feature request...

 

If you write files from a Mac to an SD card/thumb drive that you then use with an Android device (such as NVIDIA Shield Pro), the Mac places meta-data files on the drive of the form "._FILENAME"

 

It would be great if 2600.emu did not show these in the list of available files.

 

Is the filter that determines which files in a directory get displayed a function of Stella, or of the GUI on top of it? (ie, for the Android Stella port to address?)



#23 JL OFFLINE  

JL

    Moonsweeper

  • 273 posts

Posted Sun Dec 30, 2018 9:56 PM

Looking forward to this being integrated into 2600.emu (Android).

 

Related to that, I have a bug/feature request...

 

If you write files from a Mac to an SD card/thumb drive that you then use with an Android device (such as NVIDIA Shield Pro), the Mac places meta-data files on the drive of the form "._FILENAME"

 

It would be great if 2600.emu did not show these in the list of available files.

 

Is the filter that determines which files in a directory get displayed a function of Stella, or of the GUI on top of it? (ie, for the Android Stella port to address?)

 

 

Hi,  I may be wrong but I do not think Stephen has any involvement with 2600.emu, which is still based on Stella 4.7.3 .  I do like Robert's 2600.emu app but its updates now are usually a year or more apart so I'm not getting my hopes up. Serves me right for purchasing it :sigh


Edited by JL, Sun Dec 30, 2018 9:59 PM.


#24 bhall408 OFFLINE  

bhall408

    Space Invader

  • 45 posts
  • Location:California

Posted Sun Dec 30, 2018 10:13 PM

 

 

Hi,  I may be wrong but I do not think Stephen has any involvement with 2600.emu, which is still based on Stella 4.7.3 .  I do like Robert's 2600.emu app but its updates now are usually a year or more apart so I'm not getting my hopes up. Serves me right for purchasing it :sigh

 

 

I sent a similar email to the address listed for 2600.emu... I also offered to help if that would help... (Sources are posted on GitHub)



#25 Inky OFFLINE  

Inky

    Gobs of money!

  • 25,915 posts
  • Meh
  • Location:The Irradiated Wastelands

Posted Wed Jan 2, 2019 8:23 AM

Updated my Stella and the Rom Hunter rom pack!







Also tagged with one or more of these keywords: stella, new release, cycle-exact audio, debugger

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users