Jump to content
stephena

Stella 5.0 released

Recommended Posts

Hey Stella Team: :)

 

1) Is there a way to dump ram to a text file? I tried dump and it shows in the debugger. I would like to be able to export it or at least be able to copy paste it.

2) Stella recently caught a bug for me where I had a cmp ($F7,X) command reading an somewhere that must have had some undefined bits. I am thankful for that, but it was extremely hard to pin down that one line of code. The problem was I once I saw it happen in the debbuger I would rewind and go forward again scanline by scanline, but the undefined value would not be the same when I hit that line of code so it would work. I had the same issue with trying to locate it with savestates.

3) It looks like strobes are now working in the debugger, thank you very much!

4) I made use of "X" and "Y" in the terminal command set by using a breakif statement for pc==address and y==some value. The listing in the debugger seems to imply to me that X an Y can only be used to set a value, but obviously and to our benefit that is not the case. Can this info please be updated to be more clearer?

5) I ran into glitch in Stella with a rom that changes from a splash screen to instruction screen. The first few frames of instruction screen the bottom line of text is unchanged, but as soon after it rises up a few lines. Looking in the debugger the scanline those graphics appear on is the same. I am just taking a guess, but maybe this is some code that automatically adjusts the Y pos start of the display? Something that has been tweeked so that Stella can handle games that change the display count (i.e. PAL --> NTSC) on the fly with a menu?

 

I will PM the rom to you stephena and DirtyHairy.

 

Thanks again for all the hardwork. I know that I am listing a lot of problems here, but I only want to make Stella better.

 

I will address each point in turn:

  • There is no way to save RAM to text file currently. I have created an issue for it: https://github.com/stella-emu/stella/issues/202. BTW, this is now the preferred way to report bugs and or request enhancements; create an issue on Github. Also, each issue should be for one specific thing.
  • Rewind outside the debugger is https://github.com/stella-emu/stella/issues/71. There is no ETA for this yet. As for the undefined value changing, this was because the random data wasn't being saved to the state file; this is now fixed.
  • Good that strobes are working. In addition to a completely new TIA implementation, the debugger got a huge overhaul in 5.0 too.
  • I'm not sure what you mean. The 'X' and 'Y' commands can indeed only be used to set the registers; try just typing the command itself, and it will request you to enter more data. The fact that the registers can be used in conditional breakpoints has nothing to do with the 'X' and 'Y' commands. In fact, all registers can be used in conditional breakpoints.
  • This is being looked into.

Share this post


Link to post
Share on other sites

These are the settings I used. Screenshot is from older stella, but the settings are the same. I'm looking to get more bloom and smear in the vertical direction. Not sure that's possible with these settings.

 

Anyways. Does the team plan ever plan on making additions or changes to the Blargg library? Is that realistic? It's pretty good. But it's also dated. 10 years of hardware advancements and progress in OpenGL surely allow for more capability.

post-4806-0-55722200-1503078714_thumb.png

Share this post


Link to post
Share on other sites

Blargg is very efficiently coded, with preference to speed. And it mostly concentrates on horizontal effects. The code is very difficulty to maintain, we were lucky to get some minor fixes into it. So no major changes from us to be expected there.

 

We lately looked for other libraries, but we have not decided anything. Most other filter libraries are used for scaling etc. which is not what we want. OpenEmu has a library called CRT which looks promising, but maybe has less flexibility. We would have to find the time to investigate. If you want to help, you are more than welcome to evaluate the various existing filters in other emulators and make suggestions.

 

BTW: What would be the benefits you are expecting? Do you really want to play emulating a very bad CRT?

Share this post


Link to post
Share on other sites

BTW: What would be the benefits you are expecting? Do you really want to play emulating a very bad CRT?

 

I suppose I'm looking for something with a little more bloom and spill over. Not necessarily a bad CRT. Maybe get some crystal-like scintillation (sparkle) going. More depth and vibrancy. Get rid of the flat feel - which comes from the display technology.

 

Well my immediate solution is to place a piece of glass in front of the LCD and turn up the saturation/brightness. Provides for an interesting look. A glass feel.

 

Anyways. It's all just ideas and things to think about for the future.

Edited by Keatah

Share this post


Link to post
Share on other sites

BTW, this is now the preferred way to report bugs and or request enhancements; create an issue on Github. Also, each issue should be for one specific thing.

I'll about making a Github account to report issues.

 

I'm not sure what you mean. The 'X' and 'Y' commands can indeed only be used to set the registers; try just typing the command itself, and it will request you to enter more data. The fact that the registers can be used in conditional breakpoints has nothing to do with the 'X' and 'Y' commands. In fact, all registers can be used in conditional breakpoints.

When I was thinking about using 'y' in a breakif statement, the first thing I did was use help to see if it could. The listing for 'y' says:

 

y - Set Y register to value xx

 

That led me to tunnel thinking that 'y' could only be use to set values, not read them. Now I know different, but it was a little misleading to me.

Share this post


Link to post
Share on other sites

I'll about making a Github account to report issues.

 

In the process, make sure to quickly look over the already reported issues, so that you don't report something that is already there.

Share this post


Link to post
Share on other sites

I'll about making a Github account to report issues.

 

Also, please consider when creating an issue to subscribe to it, so that if I follow up with any questions/further clarification, you will see it. Basically, I'm trying to move all discussion to Github for bugs/enhancements. They can be mentioned here, but for anything more in-depth, the discussion should happen there (so it's all in one place, and all relevant developers can see it).

 

EDIT: For example, I need clarification on saving to RAM. Please see https://github.com/stella-emu/stella/issues/202 for more info.

Share this post


Link to post
Share on other sites

Stella 5.0.2 is now released, with fixes for some of the issues mentioned in this thread (the others are still in Github tracker, and will be looked at soon). As usual, downloads are at https://stella-emu.github.io/downloads.html, and donations would be appreciated at https://stella-emu.github.io/donations.html.

 

Changes are as follows:

  • Improved emulation of Trakball controller, eliminating bias in left/right directions. Thanks to Thomas Jentzsch for the idea and code. Related to this, added 'tsense' commandline argument and associated UI item, to allow changing sensitivity of mouse trackball emulation.
  • Added preliminary support for multi-threading in the Blargg TV effects code. This is still a WIP; more improvements are coming. Related to this, further optimized the TIA rendering code. Also added 'threads' commandline argument and associated UI item to enable/disable multi-threading. Thanks to Thomas Jentzsch for the bulk of the work in this area.
  • Blargg TV effects now no longer cut off the right side of the image (by several pixels) in certain cases.
  • Updated CDF scheme to latest version from Spiceware. In addition, this scheme now supports versioning, so older and newer ROMs will continue to work.
  • Fixed an annoying bug in Linux, where Alt-Tab'ing out of a window and then back again would pass a 'Tab' key event to the app, which in most cases would navigate to the next UI element.
  • Fixed potential issue with state file saving and the debugger; under certain circumstances a rewind would give a different state than before (note that the state file format has changed because of this).
  • Fixed lockups when entering the debugger under certain circumstances.
  • The debugger 'listtraps' command now shows all traps set, not just the first one(s).
  • Reverted joystick changes for Decathlon ROMs from last release, as it was added by mistake.

Finally, while bugs can be reported and briefly discussed here, the main method of reporting bugs is now to create an issue in the Stella github tracker: https://github.com/stella-emu/stella/issues

  • Like 11

Share this post


Link to post
Share on other sites

Had a helluva time just downloading 5.0.2, Norton Antivirus would delete it before I could do anything with it.

Kept reporting a "Heur.AdvMLC" virus, turns out it's just low reputation because there's not much community usage yet.

I got it sorted and working fine.

 

Thanks for all the hard work on this release, very much appreciated! :)

Edited by Buzbard

Share this post


Link to post
Share on other sites

Norton used to be good. ;)

For me it still is, kinda, my ISP provides it for free. So, I guess I can't really complain.

Share this post


Link to post
Share on other sites

I've been using Stella for a while now, and it just keeps getting better and better! I'm in the middle of writing my own emulator as a challenge in a scripting language, and the debugging tools in Stella have proved invaluable! Is there currently a way to set the initial value of INTIM? At the moment I've got the CPU done and I'm moving on to the timer stuff (basically adding features as the test rom needs them) and it would be nice to always have the same value used on boot rather than random.

 

I'm not looking forward to trying to get an actual picture out of it though :(

Share this post


Link to post
Share on other sites

I'm in the middle of writing my own emulator as a challenge in a scripting language, and the debugging tools in Stella have proved invaluable!

 

If you're looking for inspiration, you can also take a peek at 6502.ts :) It is a VCS emulator for the browser written in Typescript (a typed superset of Javascript), and the TIA is identical to Stella (the Stella core started as a port of the 6502.ts core, and they evolved in sync after that). There's also a debugging console which, however, is much less sophisticated and does not provide any VCS specific functionality (just CPU stuff like stepping, breaking and tracing).

Edited by DirtyHairy

Share this post


Link to post
Share on other sites

 

If you're looking for inspiration, you can also take a peek at 6502.ts :) It is a VCS emulator for the browser written in Typescript (a typed superset of Javascript), and the TIA is identical to Stella (the Stella core started as a port of the 6502.ts core, and they evolved in sync after that). There's also a debugging console which, however, is much less sophisticated and does not provide any VCS specific functionality (just CPU stuff like stepping, breaking and tracing).

 

Thanks! I have gone though many emulators and documentation to get the CPU working (It's not fully tested... it's mainly the memory address methods that may be bugged, especially on the illegal opcodes). Sadly I'd never be able to release what I've done due to the scripting language being proprietary to where I work, I'm just doing this for fun and to prove what can be done with a limited language that is most certainly not designed for this. Getting the TIA functional is going to be the hardest part by far, but for now I just need to master the timers. Like, I think Stella deals with this by increment the machine clock on every peek? Maybe? and extra based on same page checks? Anyway, this is not the place for such discussion. If there is a good place to chat about such things, like a discord or something, that would be great. I am just happy that Stella continues to get better and better!

Edited by Omnituens

Share this post


Link to post
Share on other sites

 

Anyway, this is not the place for such discussion. If there is a good place to chat about such things, like a discord or something, that would be great.

 

Just open another thread if you'd like to continue discussing emulation details without derailing this thread ;)

Share this post


Link to post
Share on other sites

 

 

I will address each point in turn:

  • There is no way to save RAM to text file currently. I have created an issue for it: https://github.com/stella-emu/stella/issues/202. BTW, this is now the preferred way to report bugs and or request enhancements; create an issue on Github. Also, each issue should be for one specific thing.
  • Rewind outside the debugger is https://github.com/stella-emu/stella/issues/71. There is no ETA for this yet. As for the undefined value changing, this was because the random data wasn't being saved to the state file; this is now fixed.
  • Good that strobes are working. In addition to a completely new TIA implementation, the debugger got a huge overhaul in 5.0 too.
  • I'm not sure what you mean. The 'X' and 'Y' commands can indeed only be used to set the registers; try just typing the command itself, and it will request you to enter more data. The fact that the registers can be used in conditional breakpoints has nothing to do with the 'X' and 'Y' commands. In fact, all registers can be used in conditional breakpoints.
  • This is being looked into.

 

Current progress in Git on these items:

  • The first issue is addressed by allowing 'dump' to take a second argument, indicating the end of the data range to use. And 'saveses' can be used to save the output. This will have to be sufficient until copy/paste is complete.
  • I am working on rewind outside the debugger, which will (finally, after many years of requests) be present in the next release.
  • The last issue (screen jumping) is fixed.

Share this post


Link to post
Share on other sites

Possible bug: Maze repeats itself after the second one is generated. Don't know if it's a Stella bug or problem with the ROM. 1st maze is always unique. 2nd maze and subsequent mazes are the same, even after exiting and restarting the emulator. The dev of the ROM claims he isn't having that issue.

 

http://atariage.com/forums/topic/269995-2600-random-maze-generator/

Share this post


Link to post
Share on other sites

A-VCS-tec Challenge (ROMs provided by developer at provided link).

 

The Left Difficulty switch, per the manual, controls whether or not a player will encounter Gauntlet and Stairs, or just the Gauntlet:

 

post-18-0-67361500-1517084448.png

 

However, when setting to the 'B' position, followed up with a reset, power cycle the console, or reload of the ROM, most (all?) of the time, the Stairs challenge does not take place, it just provides the Gauntlet.

 

I saw Nathan's review, and he makes mention of: "the Stairs challenge isn't even a part of the game by default - you have to flip the left difficulty switch to A/Expert (misprinted in the manual as B) in order to play it at all."

 

Several more attempts were made keeping now the Left Difficulty switch in the 'A' position. Still, most (all?) of the time, the Stairs challenge does not happen, only the Gauntlet.

 

In fact, out of well over a dozen attempts, only once was the Stairs challenge encountered, and unfortunately, I do not recall which position the Left Difficulty switch was at the time.

 

I am utilizing Stella v5.0.2 with the NTSC ROM. In light of the my own results and Nathan's comment, I'm believing this may have to due with the ROM/program more than Stella itself (Perhaps some sort of initializing state check of the difficulty switches that may have some sort of loophole?)

 

I'm not certain and just bringing it up with the team to hopefully get to the bottom of it and figure out the root cause.

 

The Right Difficulty switch (Toggling between music or sound effects) works perfectly. It can even be 'hot-switched' in game. No issue whatsoever.

Share this post


Link to post
Share on other sites

Sorry, I cannot reproduce the issue, with A I always get to the stairs.

 

Maybe your ROM is faulty? Can you post it?

Share this post


Link to post
Share on other sites

It is the same ROM provided in the link. Regardless, the one below is the one utilized under Stella 5.0.2 and...

 

A-VCS-Tec Challenge (NTSC) (SP).bin

 

...the Harmony Encore. Tested with and it did work perfectly with it every time with my Woody. Indeed, Left Difficulty Switch positioned to A always provisions the Steps level.

 

I'm going to test again with Stella 5.0.2 with Left Difficulty Switch is to A.

Share this post


Link to post
Share on other sites

If the check for 'A' difficulty is done during initialization of the ROM, it may be too late to change it once the game starts playing. On a real console, do you have to select 'A' before loading the game, or can it be done during the game? If during the game, then changing it in Stella with F5 key should work the same. But if it needs to be at ROM startup, you either have to change the ROM properties to always use 'A', or right-click on the ROM in the ROM launcher, select "Power-on options", then "Left Difficulty -> A", and finally click "Load ROM".

  • Like 1

Share this post


Link to post
Share on other sites

I have the Left Difficulty switch set ahead of time to 'A', but then press the key mapped to "P0 Difficulty A" to ensure it is set in the 'A' position again. Here's what happened, I kid you not...

 

The very first try, same results as before - set Left Difficulty switch "A" and no Stairs level. I thought now it was time to make a video capture.

 

The next three consecutive playthrough thereafter, the Stairs level appears. I don't have a rhyme or reason, and I'm baffled as I did nothing different all the other times when the level did not appear. At this point though with Thomas' confirmation of it working fine, and my latest results, I'll chalk this up as user/local error/issue.

 

Your time and attention is very much appreciated, gentlemen...Thanks for the feedback.

Share this post


Link to post
Share on other sites

Many additional thanks for Stella!

 

I decided to try and build the latest github version with the updated TIA sound.

I remember trying and failing to get a build of VLC. That took weeks to get everything to work, and hours to compile.

 

After only few hours of installing, rebooting, and configuring, on the 3rd build attempt it started and succeeded in seconds!

 

I love the sound and the added subtle "light" selection for the GUI.

 

 

Things about compiling:

 

I had success on my Win 10 laptop cross-compiling for the Harmony ARM, so I went and downloaded Microsoft Visual Studio not knowing if that would even work at all, but it had C++ parts.

 

The first build said I needed something for older Windows.

 

The second build said it needed SDL2. I followed an easy YouTube step-by-step video on how to show SDL2 Libraries and Includes to Microsoft Visual Studio.

That was very tedious.

 

On the 3rd build attempt it succeeded in a few seconds!

  • Like 4

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