Jump to content
stephena

Stella 3.9 released

Recommended Posts

It's time for a new release of Stella! This one concentrates on debugger/disassembly improvements, but there are also several bugfixes and improvements for other parts of the application. The standout feature for this release is DASM-compatible disassembly output (currently for 4K ROMs only); Stella can now replace external Distella. Eventually this will be extended to multi-bank ROMs in a future release. Anyway, here are the changes:

 

 

* Greatly extended functionality of the debugger disassembly:

- There is now a new tab which lists information specific to the cartridge bankswitching scheme in use. This includes the ability to modify internal state even for esoteric ROMs which don't follow the standard layout of 4K per bank.

 

- The debugger now generates DASM-compatible disassembled code, which can be saved to an external file. This disassembly is based on both a static and runtime analysis, and is extremely accurate. It also automatically differentiates between CODE/PGFX/GFX/DATA/ROW areas, whereas normal Distella only differentiates between CODE/GFX/ROW. For now, only single-bank (4K and smaller) ROMs are supported; support for multi-bank ROMs will come in a future release.

 

- The disassembly now recognizes various TIA/RIOT read/write mirrors, and marks them as such (for example, INPT4|$30 instead of INPT4 for address $3C). Special thanks to Omegamatrix for sample code and idea for this feature.

 

- ROMS less than 2K in size (so called 'Sub2K' ROMs) now show only the actual data in the binary. This means, for example, that a 256 byte ROM will show only 256 bytes in the disassembly, instead of padding duplicated data to 2K boundary.

 

- Fixed bug when entering patched bytes; the current number base wasn't being used.

 

- Fixed labelling in ROW directives; it wasn't accurately setting a label in the case where it occurred in the middle of the data.

 

- Added a new dialog for changing Distella settings, located by right-clicking the disassembly code.

 

- The commandline option 'dis.resolvedata' has been renamed to 'dis.resolve', with new usage (see manual for further details).

 

* Fixed regression in handling ZIP files (as compared to version 3.7.5) created with newer versions of the ZIP program. Related to this, added better error messages for invalid/missing/unreadable ROM files.

 

* Added 'snapname' commandline argument and associated UI item, for specifying whether snapshots should be saved using either the internal ROM database name or the actual ROM filename. This feature was present in older releases of Stella, and due to popular demand it's now back again. Related to this, added a new dialog specifically for the numerous snapshot-related items.

 

* Fixed bug in Linux/OSX versions when starting Stella for the first time; it was previously creating mislabeled directories to store settings, snapshots, etc.

 

* Fixed redundant "New console created" message when entering the same ROM multiple times from the ROM launcher.

 

* Updated profile database for "BasketBall" ROMs; the joysticks are now swapped by default, which allows one and two-player games to work correctly.

 

* SuperCharger/AR ROMs now ignore the 'ramrandom' setting, and start with RAM containing all zeroes. This seems to fix issues with Dragonstomper always starting in exactly the same state.

 

* Fixed issue when debugging CompuMate ROMs; keystrokes entered while debugging would be interpreted as typing on the CompuMate keyboard.

 

* Changed colour of the 'current PC indicator' in the debugger to match the one used for line selection. This makes it easier to see for those with problems seeing lighter colours.

 

* Improved functionality of the various pop-up dialogs and context menus in the UI; they can now be navigated more fully by the keyboard and mouse.

 

* Updated internal ROM properties database to ROM-Hunter version 9 (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.

 

As usual, Stella can be downloaded here. If you find Stella useful, please consider a donation. Bug reports can be done here or by PM.

  • Like 18

Share this post


Link to post
Share on other sites

Speaking of the debugger, it looks like we have uppercase hexadecimal now, but has there been any progress on copy and paste and bold text yet:

 

http://atariage.com/...25#entry2300806

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

 

Suggestion #1: Copy and Paste

 

Speaking of this kind of thing, do you think you'll ever be able to allow text to be pasted into the Prompt area in the debugger? I use Ctrl + c and Ctrl + v a lot in other programs and it would be a great time saver if I could copy and paste prompt commands in the Prompt area.

 

 

 

Suggestion #2: Bold Text

 

Anywhere there is a brownish background in the debugger, plain text is hard to read. Example:

 

post-13-0-54540300-1372402869.png

 

 

Here's what it looks like bold:

 

post-13-0-60528200-1372402881.png

 

I know bold text takes up a little more room. Do you think you have the space to make the text bold in the brownish area at the top and in the TIA, I/O and Audio displays? (You wouldn't need to make text bold inside any of the yellowish boxes and yellowish areas. They seem perfectly readable to me.)

 

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

 

 

Thanks.

Share this post


Link to post
Share on other sites

Actually I rather need the values and not the labels. :)

 

So if anything should be made bold, then it has to be the values. But for me, they look OK.

 

Also I prefer lower case hexadecimals, because the characters are much more distinctive (especially B=8 and D=0).

Share this post


Link to post
Share on other sites
Speaking of the debugger, it looks like we have uppercase hexadecimal now

 

Also I prefer lower case hexadecimals, because the characters are much more distinctive (especially B=8 and D=0).

 

Obviously a case where we can't please everyone with one default :? I guess it could be made an option.

 

Suggestion #1: Copy and Paste

 

Speaking of this kind of thing, do you think you'll ever be able to allow text to be pasted into the Prompt area in the debugger? I use Ctrl + c and Ctrl + v a lot in other programs and it would be a great time saver if I could copy and paste prompt commands in the Prompt area.

 

Suggestion #2: Bold Text

 

Anywhere there is a brownish background in the debugger, plain text is hard to read. Example:

 

I forgot about some of these. The bolding is probably easy enough; it looks like there's space available in most places.

 

The copy/paste issue is much more involved. The problem here is that Stella has a home-grown UI, and none of these features are actually present in the underlying graphics library that it uses for rendering. Think of when you're making an Atari game, and you want to draw text. There aren't any primitive operations to do it; you need to position and draw each bit of text pixel by pixel. Stella is actually doing the same thing with the UI, so in that sense it perfectly matches how an Atari works :) However, it really does complicate copy/paste. I will give more thought on how to do it, but it might have to wait until Stella 4.0/SDL2, where such functionality might come as part of the graphics library itself.

 

EDIT: It looks like SDL2 will have native support for clipboard (ie, copy/pasting text). I just looked at their API, and it provides the following functions:

 

SDL_GetClipboardText

SDL_HasClipboardText

SDL_SetClipboardText

 

So I'll get this added for Stella 4.0. Now, when this will happen is anyone's guess. SDL2 hasn't even been released yet, but it is due sometime this year. So that's the most I can say about Stella 4.0 as well ...

 

EDIT2: Also, wrt bolding because of text on brown background, would it simply be more beneficial to allow changing the palette colours to suit the end user? Then maybe we don't need bold text at all ???

  • Like 1

Share this post


Link to post
Share on other sites

The main outstanding items in Stella are as follows. I haven't decided what order to do them in yet, or even if I can complete it all in time. Or whether I will remain with the project long enough to ever complete them all, for that matter.

  1. Move to SDL2. This is a requirement, and will probably be the defining feature for 4.0. It will be a complete re-write of all SDL-related classes (about 10 or so out of 160), and will require much testing afterwards. The current backend (SDL1.2) is really starting to show its age, especially when running on the latest Windows systems and newer platforms (iOS, Android, etc).
     
  2. Fix the remaining issues in the TIA emulation, either by extending what's already there or rewriting from scratch. I've mentioned this many times in the past, and it will depend on the help I get. Needs to be done at some point, but still not sure if it will be done for 4.0.
     
  3. Improve TV effects, particularly phosphor effect, interlace mode, and generating a palette from some sort of algorithm, rather than hardcoded colours. This will depend on how the TV effects are impacted by the move to SDL2, so it necessarily must come later.
     
  4. Improve the debugger, in particular extend the disassembly to multi-bank ROMs, so Stella can act as a complete replacement for external Distella and disassemble all existing ROMs. This is a fairly huge undertaking, and will be spread out over multiple releases. The current release is a very good start, though. Definitely won't be finished for 4.0 or any time this year.
     
  5. Add support for all remaining controllers.

Of course, there are the bugs that pop up every now and then, and the odd feature that someone requests that seems like a neat thing to add. But over the next few years (if I'm still around), the above are the major things I'd like to get completed.

Share this post


Link to post
Share on other sites

Hey, the debugger looks pretty great! :D I love the new "filled" checkboxes instead of having just an "x". Also, I love being able to see different banks now. I see you also implemented the "ram_". I use that in my disassemblies so that when I rename a ram location it doesn't accidentally rename all other hexadecimal values (like for data and graphics values). I also see you've implemented the address mirrors. I just fired up Dig Dug, and there they are! It's good to be able to read them now.

 

 

post-7074-0-66873400-1372523803_thumb.png

 

 

I don't have any problems reading the description text as is, and like Thomas I really only care about what is inside the boxes. I agree though that lowercase for Hexadecimal would be better as I do have trouble with B and 8, especially when it is highlighted red. I'm red-green color blind :(. Different background colors are also a great idea.

 

 

If I could request one nice to have feature, it would be to have the position values in decimal (0-159) and not hex. :)

 

 

post-7074-0-88051800-1372523816_thumb.png

 

 

Thanks Stephen for the great work on Stella!!

Jeff

  • Like 1

Share this post


Link to post
Share on other sites

2 questions:

 

1.) Do you plan to support a copy/paste function by using CompuMate?

Ctrl + c and Ctrl + v doesn´t work because the keys are mapped for another function.

It will be helpful if you have a longer Basic listing.

 

2.) How is the progress for the tape support (loading/saving) by using CompuMate?

Share this post


Link to post
Share on other sites

2 questions:

 

1.) Do you plan to support a copy/paste function by using CompuMate?

Ctrl + c and Ctrl + v doesn´t work because the keys are mapped for another function.

It will be helpful if you have a longer Basic listing.

 

2.) How is the progress for the tape support (loading/saving) by using CompuMate?

 

I suspect that when copy/paste is added, I'll also need to add a context menu for it, not just Ctrl-c/Ctrl-v. So that should enable it to work in CompuMate too.

 

As for progress, that falls under step 5 mentioned above. No further work as yet been done on the CompuMate support, but I hope to get back to it eventually.

Share this post


Link to post
Share on other sites

I suspect that when copy/paste is added, I'll also need to add a context menu for it, not just Ctrl-c/Ctrl-v. So that should enable it to work in CompuMate too.

 

As for progress, that falls under step 5 mentioned above. No further work as yet been done on the CompuMate support, but I hope to get back to it eventually.

 

Thanks for the answer! :)

Share this post


Link to post
Share on other sites

"Improve TV effects, particularly phosphor effect, interlace mode, and generating a palette from some sort of algorithm, rather than hardcoded colours.

This will depend on how the TV effects are impacted by the move to SDL2, so it necessarily must come later."

 

 

;-) ;-) ;-)

Share this post


Link to post
Share on other sites

stephena,

 

Huge Thanks for all your time and efforts making Stella the excellent emu it is today. Will give Dragonstomper and the Superchargers a spin....

Share this post


Link to post
Share on other sites

A cosmetic improvement to Stella.

 

It would be nice, while using TV Effects, to have some sort of color-killer when you switch to B/W using the main Color B/W switch on the console. Something to emulate a pure B/W CRT Phosphor. Eliminate all color from the screen and have only gray scales. This would allow us to see the game as a "true" B/W image with 0 color artifacting - while having TV effects on.

 

You can see what I mean by turning the Saturation down to 0 when in B/W mode. There are differences at edges and areas of contrast.

 

Perhaps couple it to the B/W Color switch, with the option to disable that coupling. Perhaps make a new switch option.

 

I'm talking about the emulator rendering, and not the b/w color setting on the VCS console itself. But rather the ability to specify if the TV set is using a color phosphor or B/W phosphor.

 

Did that make sense?

Share this post


Link to post
Share on other sites

I suspect that when copy/paste is added, I'll also need to add a context menu for it, not just Ctrl-c/Ctrl-v. So that should enable it to work in CompuMate too.

 

As for progress, that falls under step 5 mentioned above. No further work as yet been done on the CompuMate support, but I hope to get back to it eventually.

 

Any news about it?

Share this post


Link to post
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.

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