stella
stella copied to clipboard
Old BUS demos not working correctly
Some old BUS demos from SpiceWare are not working as described and on real hardware.
https://atariage.com/forums/topic/258191-bus-stuffing-demos/?do=findComment&comment=3676378
Yep, someone was discussing making use of versioning, so old BUS ROMs would work. It would be really nice to get these working again, since I look on this as a regression (they did work in an older version of Stella). I suspect the best approach is to find the last time they worked in Stella, and then see what code changed. Some stuff in CartBUS
obviously changed, but I think some was in Thumbulator
too.
Darrell plans to update the demos to the latest BUS driver, but maybe we are faster. 😈
This is the commit that broke the ROMS: https://github.com/stella-emu/stella/commit/490724c07978317e74c6491d5084fa58056fd805. Don't know how feasible it is to add support; perhaps we should wait for @SpiceWare to update the ROMs??
Yes, probably better. The changes are too large and we do not really understand how the code works.
I seem to recall @sa666666 had decided we wouldn't support the preliminary BUS driver since only some tech demos were done with it. That was a few years ago, so I could have misremembered it.
@thrust26 - if there's a specific demo you're interested in I could take a look at it this week.
@SpiceWare The one posted above would be nice.
Will do.
No, that's probably what I said. While it would be nice to have the ROMs working, it seems like a lot of work to change the scheme and never have it used again. Probably better to spend the time on the ROMs themselves. Of course, only you @SpiceWare can work on that part, so it all falls to what you want to do.
Yes, changing the ROMs, that's what I meant too.
Forgot how primitive the old build process was
- run dasm
- copy the echoed out #define statements and paste them in a c header file.
- compile C code
- run dasm again
Decided it would be best to migrate it to the new build process, seen in the CDFJ tutorial, that uses a makefile to do everything. The c header file is now automatically created by parsing the dasm symbol file for all symbols beginning with an underscore character.
Took a while, but finally got the first image to show. Over the next week or two I'll migrate the rest of the 128 pixel demo routines over, clean up the code, then post it in the BUS subforum of the Harmony/Melody club.

Looking back at this again, it seems that Stella is freezing on those old BUS ROMs. It would be nice if we could detect those old ROMs, and just display a message saying they're not supported.
@SpiceWare, has this been resolved, or will you have time to work on this soon? Just attempting to clean up the Stella Github issues list.
Sorry, RL has kept me away from Atari projects for so long I'd forgotten about this and #745
Looks like I'd started porting the BUS Demos to the last version of the driver. I'll try to resume work on that this weekend. I'll also look into detecting if a ROM is using an obsolete BUS driver so an unsupported message can be shown.
I've reconsidered porting the old demos to the latest BUS driver - I decided it's to much effort to update all of those old projects to the new toolsets we're using for something that we've pretty much abandoned due to the hardware compatibility issues.
Instead I've decided to update Stella to also support the older version of BUS.
Did run into a problem, I got the latest source for Stella and built it - it fails to run the RPG demo, which it should be able to. It crashes in PlusROM.hxx on this line:
bool isValid() const { return myIsPlusROM; }
with this error:
Thread 1: EXC_BAD_ACCESS (code=1, address=0x18)
Not familiar with the Plus ROM stuff.
The PlusROM initialization was missing in CartBUS.cxx
. I committed a fix, please try again.
Thanks! Made some good headway this evening. So far I've identified 3 versions of the BUS driver in the demos that are linked to in the first post of Bus Stuffing Demos:
- RPG driver (newest driver)
- Draconian driver (oldest driver)
- all others
and have updated Stella to detect and run them.
Still need to update the debugger tabs for BUS, clean up the code, then remember how to submit the changes. It's been so long since I last did anything with github that I just issued the following in Terminal to get the latest source:
git clone https://github.com/stella-emu/stella.git



Thanks! Made some good headway this evening. So far I've identified 3 versions of the BUS driver in the demos that are linked to in the first post of Bus Stuffing Demos:
- RPG driver (newest driver)
- Draconian driver (oldest driver)
- all others
and have updated Stella to detect and run them.
Still need to update the debugger tabs for BUS, clean up the code, then remember how to submit the changes.
That sounds good. 👍
It's been so long since I last did anything with github that I just issued the following in Terminal to get the latest source:
git clone https://github.com/stella-emu/stella.git
I don't work with GitHub for committing my changes too. Commandline or e.g. TortoiseGit are perfect.
@SpiceWare Is bus stuffing really dead? Or are you still working on a solution?
I'm not working on a solution, it's beyond my skill set. Chris was the one working on the BUS driver, with help from Fred. On Friday I was talking with Chris about Boom!, he mentioned: "I don't think we will get stable bus-stuffing any time soon, so I was glad to be able to reboot the game with CDFJ."
Both Chris and John have rebooted their BUS projects to use CDFJ. My most recent changes to Stella were to update CDFJ with the optional ability to override LDX # and/or LDY # for Fast Fetcher use. That change was for John's conversion of his BUS project, Elevator Action, to CDFJ.
Last week's conversation with Chris was the tipping point for me to decide that it didn't make sense to spend a lot of time on the BUS projects. I decided to update Stella as that will take significantly less time than updating all the BUS projects.
I just found 2 old demos that were posted but do not work with my changes, which adds the BUS support from Stella 5 to the most recent BUS support that was added in Stella 6.
They do have Stella screenshots of 4.8 pre_BUS_TEST. I tracked down source for that, but it doesn't run them. Not surprised as BUS was undergoing a lot of changes at the time.
I'll spend a little time to see if I can figure out how to get those to work. If I'm not able to it's not a major loss as they were never supported in a released version of Stella, and both have newer versions that do work with my current changes.
@SpiceWare, we are planning on the 6.7 release for Saturday, June 11. Do you think you can get this stuff included if I push the release to Monday, June 13 instead?
@SpiceWare Agreed, if there are newer ROMs available,which work with your changes, then I wouldn't invest too much time.
@sa666666 There's not much left if I'm not going to worry about those 2 old demos, so I'll be able to get the changes checked in by tomorrow night.
I've already shifted the BUS version numbers by 1. BUS0 is now used for the older demos and shows an unsupported message in the debugger.
Is there another way to flag a ROM as unsupported so Stella shows a message when you attempt to load the ROM?

Is there another way to flag a ROM as unsupported so Stella shows a message when you attempt to load the ROM?
Maybe setMessageCallback
would work for you.
Thanks! I'll look into setMessageCallback this evening.
@SpiceWare, can you also post/send all the BUS ROMs you've tested?
He doesn't have to post them, just commit them within the test folder.
Yes, committing them is fine too.
Will commit the additional test ROMs with the exception of the 3 I'm not free to hand out. Should I include my notes text file about the identified versions?
I'd contacted Chris and John this morning about my BUS update for Stella:
John sent me the BUS version of Elevator Action to test, but he doesn't want it released until after he's revealed the CDFJ reboot. After that he'll post the BUS version in the Bus Stuffing Demos topic.
Haven't heard back from Chris yet, though I did find a couple early versions of Boom! that he'd previously sent me via PM. I don't think he's publicly released those.
Sure, only commit what you have permission for. As for the notes, you can commit that to the BUS ROMs folder as well, I guess.