Jump to content

Photo

Stella 3.9 released

stella debugger

14 replies to this topic

#1 stephena OFFLINE  

stephena

    River Patroller

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

Posted Thu Jun 27, 2013 7:47 AM

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.

#2 israelg OFFLINE  

israelg

    Moonsweeper

  • 401 posts

Posted Fri Jun 28, 2013 12:27 AM

Thanks !!!

#3 Random Terrain ONLINE  

Random Terrain

    Visual batari Basic User

  • 28,952 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Fri Jun 28, 2013 1:04 AM

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:

stella_original.png


Here's what it looks like bold:

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

#4 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

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

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

Posted Fri Jun 28, 2013 5:19 AM

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

#5 stephena OFFLINE  

stephena

    River Patroller

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

Posted Fri Jun 28, 2013 7:22 AM

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

#6 israelg OFFLINE  

israelg

    Moonsweeper

  • 401 posts

Posted Fri Jun 28, 2013 12:00 PM

What is planned for 4.0 ?

#7 stephena OFFLINE  

stephena

    River Patroller

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

Posted Sat Jun 29, 2013 8:41 AM

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

#8 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,233 posts
  • Location:Canada

Posted Sat Jun 29, 2013 10:46 AM

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.


mirrors.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. :)


Positions.png


Thanks Stephen for the great work on Stella!!
Jeff

#9 AnnaWu OFFLINE  

AnnaWu

    Star Raider

  • 50 posts

Posted Sat Jun 29, 2013 11:40 PM

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?

#10 stephena OFFLINE  

stephena

    River Patroller

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

Posted Sun Jun 30, 2013 6:29 AM

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.

#11 AnnaWu OFFLINE  

AnnaWu

    Star Raider

  • 50 posts

Posted Sun Jun 30, 2013 8:20 AM

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! :)

#12 israelg OFFLINE  

israelg

    Moonsweeper

  • 401 posts

Posted Mon Jul 1, 2013 2:13 AM

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


;-) ;-) ;-)

#13 JL OFFLINE  

JL

    Moonsweeper

  • 273 posts

Posted Mon Jul 1, 2013 4:15 PM

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

#14 Keatah OFFLINE  

Keatah

    Missile Commander

  • 21,926 posts

Posted Wed Aug 21, 2013 7:42 AM

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?

#15 AnnaWu OFFLINE  

AnnaWu

    Star Raider

  • 50 posts

Posted Thu Aug 22, 2013 5:42 AM

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?





Also tagged with one or more of these keywords: stella, debugger

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users