+stephena Posted February 4, 2018 Share Posted February 4, 2018 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 ... 17 Quote Link to comment Share on other sites More sharing options...
LidLikesIntellivision Posted February 5, 2018 Share Posted February 5, 2018 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. 1 Quote Link to comment Share on other sites More sharing options...
israelg Posted February 5, 2018 Share Posted February 5, 2018 Thanks! Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2018 Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
Keatah Posted February 5, 2018 Share Posted February 5, 2018 (edited) 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 February 5, 2018 by Keatah Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2018 Share Posted February 5, 2018 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...). Quote Link to comment Share on other sites More sharing options...
Keatah Posted February 5, 2018 Share Posted February 5, 2018 Is there a way to relocate that folder? Quote Link to comment Share on other sites More sharing options...
vidak Posted February 5, 2018 Share Posted February 5, 2018 Thank you so much for your hard work!! You make homebrew game development so much more logical and straightforward. 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2018 Share Posted February 5, 2018 (edited) <double post> Edited February 5, 2018 by Thomas Jentzsch Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2018 Share Posted February 5, 2018 Is there a way to relocate that folder? Nope. What's the big problem with it? Quote Link to comment Share on other sites More sharing options...
Keatah Posted February 5, 2018 Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
+stephena Posted February 5, 2018 Author Share Posted February 5, 2018 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. 2 Quote Link to comment Share on other sites More sharing options...
Keatah Posted February 5, 2018 Share Posted February 5, 2018 (edited) 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 February 5, 2018 by Keatah Quote Link to comment Share on other sites More sharing options...
+Nathan Strum Posted February 5, 2018 Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
+stephena Posted February 5, 2018 Author Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
mr_me Posted February 5, 2018 Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2018 Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
AW127 Posted February 5, 2018 Share Posted February 5, 2018 Great !!! I will test around with the new release and OF COURSE play Atari-Games. PHOENIX waits for me. 1 Quote Link to comment Share on other sites More sharing options...
Richard H. Posted February 6, 2018 Share Posted February 6, 2018 I don't know if Richard still has these available or not. I actually have a few I want to give away. PM me. 1 Quote Link to comment Share on other sites More sharing options...
Keatah Posted February 6, 2018 Share Posted February 6, 2018 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. Quote Link to comment Share on other sites More sharing options...
vidak Posted February 7, 2018 Share Posted February 7, 2018 I'm of the school that programs should be transparently configurable, too. ...but I use Linux so it's not my problem hahahah Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 7, 2018 Share Posted February 7, 2018 Hm... A release full of new features results into discussing folders only. That definitely makes me wonder... 2 Quote Link to comment Share on other sites More sharing options...
TonVH Posted February 7, 2018 Share Posted February 7, 2018 Is there a way to play games using the keyboard instead of joystick? Quote Link to comment Share on other sites More sharing options...
+stephena Posted February 7, 2018 Author Share Posted February 7, 2018 See the documentation: https://stella-emu.github.io/docs/index.html#Keyboard Quote Link to comment Share on other sites More sharing options...
vidak Posted February 8, 2018 Share Posted February 8, 2018 Hm... A release full of new features results into discussing folders only. That definitely makes me wonder... 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. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.