Jump to content

Photo

Stella 5.1 released

stella new release rewind debugger improvements

72 replies to this topic

#1 stephena OFFLINE  

stephena

    River Patroller

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

Posted Sun Feb 4, 2018 5:40 PM

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

 



#2 LidLikesIntellivision OFFLINE  

LidLikesIntellivision

    River Patroller

  • 3,638 posts
  • HSC Player
  • Location:Brasil

Posted Sun Feb 4, 2018 7:12 PM

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.



#3 israelg OFFLINE  

israelg

    Moonsweeper

  • 334 posts

Posted Mon Feb 5, 2018 12:56 AM

Thanks!  :)



#4 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,279 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Mon Feb 5, 2018 2:31 AM

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.



#5 Keatah OFFLINE  

Keatah

    Missile Commander

  • 20,567 posts

Posted Mon Feb 5, 2018 2:49 AM

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, Mon Feb 5, 2018 3:22 AM.


#6 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,279 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Mon Feb 5, 2018 3:29 AM

I suppose that's a matter of taste if you like the old or the new frame stats display. The previous one sometimes hid something.

 

The Stella directory is used for saving several files (dump, disassemblies, scripts...).



#7 Keatah OFFLINE  

Keatah

    Missile Commander

  • 20,567 posts

Posted Mon Feb 5, 2018 3:34 AM

Is there a way to relocate that folder?



#8 vidak OFFLINE  

vidak

    Moonsweeper

  • 424 posts
  • Location:Sydney, Australia

Posted Mon Feb 5, 2018 3:50 AM

Thank you so much for your hard work!!

 

You make homebrew game development so much more logical and straightforward.



#9 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,279 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Mon Feb 5, 2018 4:40 AM

<double post>


Edited by Thomas Jentzsch, Mon Feb 5, 2018 4:40 AM.


#10 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,279 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Mon Feb 5, 2018 4:40 AM

Is there a way to relocate that folder?

Nope.

What's the big problem with it?



#11 Keatah OFFLINE  

Keatah

    Missile Commander

  • 20,567 posts

Posted Mon Feb 5, 2018 5:20 AM

Simply a matter of keeping all Stella related items, configs, roms, everything, in one folder.

 

It's also good practice not to be using the "My Documents" folder for settings and other things.



#12 stephena OFFLINE  

stephena

    River Patroller

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

Posted Mon Feb 5, 2018 5:40 AM

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.



#13 Keatah OFFLINE  

Keatah

    Missile Commander

  • 20,567 posts

Posted Mon Feb 5, 2018 6:00 AM

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, Mon Feb 5, 2018 6:01 AM.


#14 Nathan Strum ONLINE  

Nathan Strum

    Quadrunner

  • 7,922 posts
  • Enjoying a sandwich
  • Location:Newhall, CA

Posted Mon Feb 5, 2018 11:08 AM

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/...&showentry=5503

 

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



#15 stephena OFFLINE  

stephena

    River Patroller

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

Posted Mon Feb 5, 2018 11:14 AM

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.



#16 mr_me OFFLINE  

mr_me

    River Patroller

  • 2,748 posts
  • Location:Ontario

Posted Mon Feb 5, 2018 11:49 AM

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.



#17 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,279 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Mon Feb 5, 2018 11:56 AM

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.

 

 

Attached Thumbnails

  • launcher_options_files.png


#18 AW127 OFFLINE  

AW127

    Moonsweeper

  • 313 posts
  • Location:Germany

Posted Mon Feb 5, 2018 12:35 PM

Great !!! :thumbsup:  I will test around with the new release and OF COURSE play Atari-Games. PHOENIX waits for me.  :)



#19 Richard H. OFFLINE  

Richard H.

    Stargunner

  • 1,030 posts
  • VirtualBoy 32MBit cart
  • Location:UK

Posted Tue Feb 6, 2018 9:17 AM

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

 

I actually have a few I want to give away.

 

PM me.



#20 Keatah OFFLINE  

Keatah

    Missile Commander

  • 20,567 posts

Posted Tue Feb 6, 2018 12:32 PM

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.



#21 vidak OFFLINE  

vidak

    Moonsweeper

  • 424 posts
  • Location:Sydney, Australia

Posted Wed Feb 7, 2018 5:00 AM

I'm of the school that programs should be transparently configurable, too.

 

...but I use Linux so it's not my problem hahahah



#22 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 23,279 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany, Europe, Earth

Posted Wed Feb 7, 2018 5:20 AM

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

 

That definitely makes me wonder... :ponder:



#23 TonVH OFFLINE  

TonVH

    Star Raider

  • 51 posts

Posted Wed Feb 7, 2018 9:10 AM

Is there a way to play games using the keyboard instead of joystick?



#24 stephena OFFLINE  

stephena

    River Patroller

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

Posted Wed Feb 7, 2018 9:36 AM

See the documentation:   https://stella-emu.g...x.html#Keyboard



#25 vidak OFFLINE  

vidak

    Moonsweeper

  • 424 posts
  • Location:Sydney, Australia

Posted Thu Feb 8, 2018 12:42 AM

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.







Also tagged with one or more of these keywords: stella, new release, rewind, debugger improvements

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users