Jump to content
IGNORED

Require alpha/beta testers for new version of Stella


stephena

Recommended Posts

OK, for those of you that have been keeping up on Stella development, you know that the next major release of Stella will be 3.0. The main features of this release will be improved TIA HMOVE emulation, and debugger/disassembler rework. I'm going to concentrate on the TIA stuff first, and this is what this message is about.

 

This coming Friday, and approx. every Friday thereafter, I'll be posting WIP builds of the TIA improvements that will eventually become Stella 3.0. I'd like as many people as possible to test these builds, and report (in detail) exactly how certain ROMs fail, and how they should look (preferably with snapshots). Note that these first builds may have regressions compared to version 2.8.4, so just because something works there doesn't mean that you don't need to check it. Please check as many ROMs as possible for each build.

 

When I'm satisfied that the builds have no regressions compared to 2.8.4, and they fix the most glaring problems in 2.8.4, I'll move on to the debugger stuff, and then be ready for the 3.0 release. I know many people have been waiting for these improvements for years, so now's your chance to step up and help fix these TIA problems for good.

 

I suspect (hope!) that this can be completed before September, as that's when work gets very busy again. And I hope that many people can help me make this happen, so I can move on to adding more features to Stella (like improved graphics filters, network play, movie recording and playback, etc).

 

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

Friday, July 17 - Alpha 1

 

OK, here's the first alpha release for 3.0:

 

Linux 32 & 64-bit binary

OSX binary (zip)

Windows 32-bit binary (zip)

 

Fixes:

 - Collision detection now works above first visible scanline; this also fixes some graphical garbage on the first scanline of some ROMs
- Mega Bitmap Demo: right column is now correct size (words still have gaps)
- Stay Frosty: snow now shown (not complete)
- G.I. Joe: cobra, missile launchers and roof of left house
- Kool Aid Man: score now correctly positioned, but the timer digits are still off
- Master of the Universe: background now scrolls correctly
- Ski Hunt: snow on mountains
- Moon Patrol: graphical garbage on right side of screen
- Labyrinth (AR): top and bottom of walls
- Survival Island: spacing of characters on title screen
- Homestar Runner Demo #2: columns aligned

 

Regressions:

 - Cosmic Ark: starfield effects not complete (movement is correct, but pixels aren't widened or blanked)
- Escape from Mindmaster: some ROMs have title screen scrambled
- Solaris: background stars do not scroll smoothly

All in all, not too bad I think. And I have a fair idea how to fix the things that broke, so thus far, there are more fixes than breakages.

 

Also, there are non-TIA changes from SVN trunk:

 - Backspace now moves up one level in all directory views in the UI.  This can also be remapped.
- Added '2in1' bankswitch support (2 games in a 4/8/16/32K ROM)
- Fixed RAMRacer ROM bug; cars were passing through the roadway (this is related to the collision detection fixes mentioned above)

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

Monday, August 3 - Alpha 2

 

OK, here's the second alpha release for 3.0:

 

Linux 32 & 64-bit binary

OSX binary (zip)

Windows 32-bit binary (zip)

 

I'm happy to report that except for a few corner cases, 'illegal' HMOVEs are now emulated correctly. This leads to the following fixes over alpha1:

 

Fixes:

 - Escape from Mindmaster: some ROMs have title screen scrambled
- Solaris: background stars do not scroll smoothly
- Lord of the Rings: title issues
- Bumper Bash: flipper issues
- Pole Position: symbol to left of screen shifted too far right

 

However, from communication on the Stella mailing list, it seems that Stella doesn't (and never did) properly deal with NUSIZx writes while a player/missile is currently being drawn. I'm rewriting this, and currently the code is broken for quite a few ROMs. I won't list them all, but the most obvious ones are as follows.

 

Regressions:

 - Galaxian: enemies not drawn correctly
- Space Instigators: same issue as Galaxian
- Battlezone: two 'dots' drawn to the right of the radar screen

 

Finally, I don't have the new debugger feature promised in a previous message finished yet. It's been very slow going, and work is starting to pick up sooner than last year (I normally have until late August before that happens). So I'll try to get new alphas as I get time, but it probably won't be every Friday.

 

I'll go ahead and explain the new debugger feature I'm working on: rewinds in the debugger. Basically, any time you enter the debugger and do a step/trace/scanline/frame advance, the state will be saved. There will be an Undo button that allows you to go backwards, undoing each operation in sequence. I'm adding this because it really helps in debugging the new TIA code, and I expect it will help homebrewers with writing new games as well. I hope to have it ready for the next alpha, but no promises ...

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

Tuesday, August 25 - Alpha 3

 

OK, here's another alpha release for 3.0:

 

Linux 32 & 64-bit binary

OSX binary (zip)

Windows 32-bit binary (zip)

 

As noted in a previous post, I'm essentially finished the TIA updates for this release, unless some other regression pops up. My main goal was HMOVE emulation fixes, and that's mostly complete. I've since found that NUSIZx writes concurrent with draws aren't always emulated correctly, but it's too late in the development cycle to address that. So I've reverted the changes, which unfortunately break Bumper Bash and Pole Position (but still improve them compared to 2.8.4). Fixing these remaining TIA bugs will be top priority for the 3.1 release. I'm happy with the TIA changes, since even though the emulation isn't 100% accurate yet, it greatly improves on version 2.8.4.

 

Now on to the other improvements in this release:

- Added rewind to the debugger.  This is only active inside the debugger *after* you've done a step/trace/frame/scanline advance.  Up to 100 such actions are
  currently buffered, but I'm looking into increasing this (and compressing the state info) for a future release.  There's a button to do the rewind, the 'Alt-r' key
  combo, and a prompt 'rewind' command.

- Added 'Fixed Debug Colours' option, which can be toggled with 'Alt-Comma'.  This is similar to the functionality in the no$26k emulator.  Right now, the
  colours are only optimized for NTSC ROMs.  Also, shared colour registers aren't separated (so P0 and M0 are drawn in the same colour).  These issues
  will be addressed in a future release.

- Fixed bugs with enable/disable of graphical objects; sometimes the entire object wasn't disabled.

- Fixed display and timing issues with ROMs that generate many more scanlines per frame than a real system can handle.  This fixes slowdowns and
  graphical trash in Q-Bert and the recent Playaround Adult ROM.

- Added support for 6K version of Supercharger ROMs (currently, only Cubis exists in this format).

- Added '-joyallow4' commandline argument and associated UI item.  This allows all 4 directions to be used on a joystick (which is required for the Bumper Bash
  ROM).  Be careful, this can cause strange problems with other ROMs like Berzerk.

- Added ability to completely disable fullscreen mode.  The '-fullscreen' commandline argument (and associated UI item) is no longer a boolean, but has three
  possible values (1/0/-1 for on/off/disabled).

- Changed NUSIZx descriptions in the debugger to be much clearer.

 

The next major item on my list is zero-page/SC disassembly in the debugger, and integration of distella. The releases will probably be several weeks apart from now on, since the new features are more involved. But I still welcome feedback, as well as reports of ROMs with graphical/TIA glitches (for improvement in version 3.1).

 

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

Friday, September 11 - Final 3.0 release

 

As indicated in my post below, due to time constraints and prior commitments, I've released the final 3.0 version without the disassembly or Blargg code. Don't worry, I'll definitely be finishing them for the 3.1 release, which I hope to do in October.

Edited by stephena
  • Like 1
Link to comment
Share on other sites

This coming Friday, and approx. every Friday thereafter, I'll be posting WIP builds of the TIA improvements that will eventually become Stella 3.0. I'd like as many people as possible to test these builds,

Sounds great! Count me in! Will we need a special link to access the WIP builds?

 

Michael

Link to comment
Share on other sites

This coming Friday, and approx. every Friday thereafter, I'll be posting WIP builds of the TIA improvements that will eventually become Stella 3.0. I'd like as many people as possible to test these builds,

Sounds great! Count me in! Will we need a special link to access the WIP builds?

 

Michael

No special access required. The links and most current info will be in the first post above. For now, I think I'll be providing a 32-bit Linux tarball, an OSX dmg, and a 32-bit Windows zip file. So no 64-bit for the WIP builds. Hopefully this won't be a problem.

Edited by stephena
Link to comment
Share on other sites

Just bumping the thread so it will be marked as new. The first alpha release is now available. Please torture-test it and let me know how it goes.

 

The linux 32-bit version works fine for me - it's great to see the TIA bugs finally being worked out. If you are interested in fixing all TIA problems, then the screen in Meltdown is not displayed properly yet. I believe this game rewrites the NUSIZx registers mid-line to get two sets of double-width sprites. Also, it doesn't yet display Thomas' 11 invaders demo properly yet.

 

Chris

Link to comment
Share on other sites

Just bumping the thread so it will be marked as new. The first alpha release is now available. Please torture-test it and let me know how it goes.

 

The linux 32-bit version works fine for me - it's great to see the TIA bugs finally being worked out. If you are interested in fixing all TIA problems, then the screen in Meltdown is not displayed properly yet. I believe this game rewrites the NUSIZx registers mid-line to get two sets of double-width sprites. Also, it doesn't yet display Thomas' 11 invaders demo properly yet.

 

Chris

Absolutely, that's what this thread is for. Report any errors you find in any ROM; I want to get the TIA problems fixed for good. I may not get everything done for 3.0, but I still want all problem ROMs documented, so I don't forget about them.

Link to comment
Share on other sites

I've been jumping back and forth between 2.8.4 and 3alpha to compare games from one version to the other and I've noticed something a bit odd.

My gamepad has buttons for Select & Start, so if I map those button to select & reset in Stella(either version) and then exit and start the other version, the key-mappings will have been reset to the defaults.

As long as I continue to use the same version, the key-mappings stay where I left them.

 

My os is WinXP SP3.

Link to comment
Share on other sites

This is also a problem in version 2.8.4, I cannot use the TV effects. I am using os X 10.4.10 and have a ATI Radeon HD2600 video card. I was able to use them in previous versions.

Nothing changed from 2.8.3 to 2.8.4 relating to OpenGL TV effects. Could you try each version from 2.8 and verify when it stopped working? Do you have PPC or Intel based system? In any event, I won't be able to research further until Monday, when I get access to a Mac again.

Link to comment
Share on other sites

I've been jumping back and forth between 2.8.4 and 3alpha to compare games from one version to the other and I've noticed something a bit odd.

My gamepad has buttons for Select & Start, so if I map those button to select & reset in Stella(either version) and then exit and start the other version, the key-mappings will have been reset to the defaults.

As long as I continue to use the same version, the key-mappings stay where I left them.

 

My os is WinXP SP3.

A new mapping was added to 'Go Up' to a previous directory in the alpha build. When mappings change between versions, the settings become incompatible, and defaults are used. Normally one wouldn't notice, since you'd upgrade to a new version and never use the old one again. Obviously this isn't the case here, since you're switching back and forth. Such is the result of being on the bleeding edge, I guess :)

 

I should add that save state files won't be compatible from 2.8.4 either. The state format will definitely change for 3.0, and it may also change multiple times before then too. This is a result of revamping the TIA code.

Edited by stephena
Link to comment
Share on other sites

This is also a problem in version 2.8.4, I cannot use the TV effects. I am using os X 10.4.10 and have a ATI Radeon HD2600 video card. I was able to use them in previous versions.

Nothing changed from 2.8.3 to 2.8.4 relating to OpenGL TV effects. Could you try each version from 2.8 and verify when it stopped working? Do you have PPC or Intel based system? In any event, I won't be able to research further until Monday, when I get access to a Mac again.

 

Strange, now its working :? False alarm.

Link to comment
Share on other sites

I've been jumping back and forth between 2.8.4 and 3alpha to compare games from one version to the other and I've noticed something a bit odd.

My gamepad has buttons for Select & Start, so if I map those button to select & reset in Stella(either version) and then exit and start the other version, the key-mappings will have been reset to the defaults.

As long as I continue to use the same version, the key-mappings stay where I left them.

 

My os is WinXP SP3.

A new mapping was added to 'Go Up' to a previous directory in the alpha build. When mappings change between versions, the settings become incompatible, and defaults are used. Normally one wouldn't notice, since you'd upgrade to a new version and never use the old one again. Obviously this isn't the case here, since you're switching back and forth. Such is the result of being on the bleeding edge, I guess :)

 

I should add that save state files won't be compatible from 2.8.4 either. The state format will definitely change for 3.0, and it may also change multiple times before then too. This is a result of revamping the TIA code.

 

Ok, as long as it was intentional, I can live with that.

I found a workaround though, I added a basedir.txt file in the folder with the alpha version and set the config folder to ~\Application Data\Stella-alpha.

Link to comment
Share on other sites

Is there any chance you could improve RSYNC emulation? Attached is a simple demo (not sure if you have the ability to run it on real hardware), when you press the fire button, the yellow bar should jump across the screen.

This is definitely on the TODO list for the TIA improvements. Problems in this area are also causing screen corruption in Qbert as well as several homebrew ROMs.

Link to comment
Share on other sites

Did you remove all tweaks (e.g. the one for SWOOPS!)?

 

And do you want to also emulate the differencies between the consoles? E.g. TomInv has some autodetection code, which recognizes a Chinese Jr. and changes the HMOVE values accordingly. Another example: Some 7800 (and IIRC the Gemini too) are 1/3rd cylce slower when updating the PF, causing problems with Thrust.

Link to comment
Share on other sites

Did you remove all tweaks (e.g. the one for SWOOPS!)?

Yes, there are no longer tweaks for SWOOPS! or any other ROM. Some of the regressions are because I removed tweaks, but I'm confident I can fix them before the final release.

And do you want to also emulate the differencies between the consoles? E.g. TomInv has some autodetection code, which recognizes a Chinese Jr. and changes the HMOVE values accordingly. Another example: Some 7800 (and IIRC the Gemini too) are 1/3rd cylce slower when updating the PF, causing problems with Thrust.

While emulating different consoles can be looked at afterwards, I want to concentrate on the average base system for now (as that's going to be enough work as it is). In your bug reports, could you please state only problems with a normal system for now (otherwise I'll be trying to fix 'bugs' that aren't really bugs at all).

Link to comment
Share on other sites

LOTR seems to have some issues:

I think I just realized what's wrong, and why some of the ROMs I tested look okay but others are messed up. I think it's the HMOVEs that occur during the vertical blank interval. If you look at screenshots from 2.8.4 and 3.0_alpha1-- placed one atop the other here for easier comparison-- you'll notice that the map on the scroll looks fine, but the title at the top is messed up. Furthermore, if you look closely, it looks like the players are all there, but they aren't lined up the way they should be. They must be getting set to their rough positions, then nudged left (player0) and right (player1) by HMOVEs, during the VBI. But it's as if the HMOVEs aren't being executed at all.

 

post-7456-1248639535_thumb.png

 

Another issue that I'd noticed in some of my own ROMs is that one or more of the missiles aren't getting positioned correctly. If you do a RESP0 and a RESM0 at the same cycle on a line, missile0 should be 1 color clock to the left of player0, because missile0 gets positioned 4 color clocks (IIRC) to the right of where RESM0 was strobed, whereas player0 gets positioned *5* color clocks to the right of where RESP0 was strobed. But I'm not sure if the bug is occurring all the time, or only when the missiles are being positioned in the VBI, or something else-- and I'm not sure if it's both missiles or just one of them. You can see this on the map, if you look closely-- the black dot is in the wrong spot:

 

post-7456-1248639563_thumb.png

 

Michael

Link to comment
Share on other sites

Bumper Bash also has a glitch.

Part of the right flipper is shown to the right of the right flipper.

post-4413-1248640963_thumb.png

 

It is better than it was in earlier versions where the right bumper above the right flipper was wrong.

post-4413-1248641577_thumb.png

Link to comment
Share on other sites

Another issue that I'd noticed in some of my own ROMs is that one or more of the missiles aren't getting positioned correctly. If you do a RESP0 and a RESM0 at the same cycle on a line, missile0 should be 1 color clock to the left of player0, because missile0 gets positioned 4 color clocks (IIRC) to the right of where RESM0 was strobed, whereas player0 gets positioned *5* color clocks to the right of where RESP0 was strobed.

After checking a little further, I don't think it has anything to do with the missiles, it's just whether or not a given sprite's position is being fine-adjusted with an HMOVE during the VBI. Any HMOVEs during normal screen time seem to be okay, but HMOVEs that are performed during the VBI seem to be getting ignored.

 

Michael

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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