Jump to content
IGNORED

Stella 5.1 released


stephena

Recommended Posts

So, it's time for another release of Stella. This one was a long time coming, and was actually supposed to be released for Xmas. But real life got in the way, and we're pushed until now. Anyway, this one has several huge features, including finally implementing a request that's been on the TODO list for about 10 years; rewind outside the debugger! We call it 'Time Machine', and it basically allows one to unwind/rewind the emulation state both inside and outside the debugger. One obvious use-case for this is when you're trying to track down a bug during development. You can now play the ROM, experience the bug, go into the debugger and rewind (and unwind!) until you find the issue. So it will be much easier to track down and fix a bug!! Or course, another use-case would be playing a game and getting killed, then rewinding and trying again. But we all know you wouldn't cheat like that, right? :)

There are also quite a few debugger improvements, TIA fixes, and really changes all over the map. I want to single out Thomas J. and Christian Speckner for this release. Quite a lot of crap happened in my life over the past few months, and I didn't get to work on Stella as much as I'd have liked. But these two guys kept at it, and are in fact responsible for most of the stuff in the changelog. Thanks for the help!

Anyway, without further ado, here's the (huge) changelog:

 

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

 

 

As usual, bugs can be reported here, but adding them as an issue on the github page is preferred. Donations are also welcome. Enjoy ...

 

  • Like 17
Link to comment
Share on other sites

I don't understand how the atarivox and save key feature works.

1) Does it emulate atarivox and save key hardware ?

2) I do have the atarivox and even a stelladaptor. Does this feature allow me to connect the atavox via stelladaptor to my computer?

 

And, finally, a big thank you for all work envolved. I use Stella since around 2002! I was so happy I gave floppy disks with stella and some roms to friends so they could also play Atari again.

  • Like 1
Link to comment
Share on other sites

I don't understand how the atarivox and save key feature works.

1) Does it emulate atarivox and save key hardware ?

2) I do have the atarivox and even a stelladaptor. Does this feature allow me to connect the atavox via stelladaptor to my computer?

 

And, finally, a big thank you for all work envolved. I use Stella since around 2002! I was so happy I gave floppy disks with stella and some roms to friends so they could also play Atari again.

Yes, Stella emulates the EEPROM (SaveKey) part, so you don't need the hardware here.

 

Regarding the voice part, Stella does not emulate it yet, it communicates with the real hardware. Not sure how this works, probably the hardware you have should do the job.

Link to comment
Share on other sites

I think the readability of <ALT>-L was better in previous versions where the green text was overlayed on an enforced black background.

 

And how can I stop Stella from creating a directory called "Stella" in the My Documents folder? It does this each time on startup.

Edited by Keatah
Link to comment
Share on other sites

This issue comes up intermittently over the last 5 years or so. The problem is that Windows doesn't really have a clearly defined place to put preferences (other than the registry, which won't work in our case). If we put the stuff in a hidden folder, then users' won't be able to navigate to it in Explorer (because it's hidden). And if we put it in a user-visible location (like My Documents), then people complain that stuff like that shouldn't be put there.

 

This is an area, I think, where Linux and OSX are far superior. They have a clearly defined place to put these type of things, and it is non-ambiguous. We've changed the location in Windows a few times now, and each time we do, it confuses users' that got used to the old location, and they have to manually transfer their old settings to the new location.

 

As well, sometimes people want files to be stored with their ROMs, sometimes separately. And sometimes it depends on the type of file (so store a distella config file with the ROM, a snapshot file in a separate directory, and some other type of file with the app itself). It's becoming a hugely complex ball of code to deal with all these possibilities.

 

We may have to revisit this, but also at some point we just have to say "look, this is how the application works". I don't recall people using browsers, office suites, etc having these kinds of issues with settings and locations.

  • Like 2
Link to comment
Share on other sites

I'm of the school that programs of this style should have all their input/output configurable. In the past it got bad enough (with other applications) people just ignored the My Documents folder and made their own user data folder. I even seem to recall MS had issued programming recommendations regarding this, nobody followed them, and eventually MS went against it too.

 

I'm sure you'll do what's best for the project and I won't bug ya'll about it.

Edited by Keatah
Link to comment
Share on other sites

Yes, Stella emulates the EEPROM (SaveKey) part, so you don't need the hardware here.

 

Regarding the voice part, Stella does not emulate it yet, it communicates with the real hardware. Not sure how this works, probably the hardware you have should do the job.

 

 

You need an AtariVox and an AtariVox USB interface (and speakers, of course).

 

More info here: http://atariage.com/forums/index.php?automodule=blog&blogid=118&showentry=5503

 

I don't know if Richard still has these available or not.

Link to comment
Share on other sites

There's an issue created on Github for emulating the AVox sound itself in Stella. But we may never get to it, since the Speakjet chip (the chip inside the AVox that produces sound) is proprietary, and nobody has been able to reverse-engineer it so far.

Link to comment
Share on other sites

This issue comes up intermittently over the last 5 years or so. The problem is that Windows doesn't really have a clearly defined place to put preferences (other than the registry, which won't work in our case). If we put the stuff in a hidden folder, then users' won't be able to navigate to it in Explorer (because it's hidden). And if we put it in a user-visible location (like My Documents), then people complain that stuff like that shouldn't be put there.

 

This is an area, I think, where Linux and OSX are far superior. They have a clearly defined place to put these type of things, and it is non-ambiguous. We've changed the location in Windows a few times now, and each time we do, it confuses users' that got used to the old location, and they have to manually transfer their old settings to the new location.

 

As well, sometimes people want files to be stored with their ROMs, sometimes separately. And sometimes it depends on the type of file (so store a distella config file with the ROM, a snapshot file in a separate directory, and some other type of file with the app itself). It's becoming a hugely complex ball of code to deal with all these possibilities.

 

We may have to revisit this, but also at some point we just have to say "look, this is how the application works". I don't recall people using browsers, office suites, etc having these kinds of issues with settings and locations.

I thought Windows recommends the following directories for program settings/preferences files. Display of hidden folders and file extensions can be toggled on by the user. In Windows XP the directory names were different.

 

common for all users:

C:\ProgramData

 

user specific:

C:\Users\<username>\AppData\Roaming

 

The c:\ProgramData directory may, by default, have restricted access to general users. It's assumed that users don't need to access the files directly, that it's taken care of through the program interface. Not an issue if you're an administrator

 

Many programs that don't use an installer just store the settings/preferences files under the same directory as the program itself. One of the reasons for keeping the settings files separate from the program files is because users may not have rights to read/write the C:\Program Files directory ie. no rights to install programs. When there is no installer involved this is not an issue. The other reason is to make backing up program settings easier.

Link to comment
Share on other sites

I thought Windows recommends the following directories for program settings/preferences files.

...

user specific:

C:\Users\<username>\AppData\Roaming

And that's where Stella stores its settings too (see below), but files in the Documents/Stella folder are not settings related.

 

 

post-45-0-96251600-1517853331.png

Link to comment
Share on other sites

And that's where Stella stores its settings too (see below), but files in the Documents/Stella folder are not settings related.

 

Right. They're output files. Pretty much every application allows you to choose where the output data is saved.

 

---

 

In other notes it good to see the first opening frames of a game aren't lost. For what it's worth, you can now see the full "rezz-up" of the Cosmic Ark ship, and the Air-Sea Battle planes don't pop into view 1/4th of the way through from the left side.

Link to comment
Share on other sites

Hm... A release full of new features results into discussing folders only.

 

That definitely makes me wonder... :ponder:

 

I think I may finally have work in the next week or so - so I'll definitely donate some money soon.

 

The work you're doing is really important, and deserves recognition.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...