stella icon indicating copy to clipboard operation
stella copied to clipboard

Old BUS demos not working correctly

Open thrust26 opened this issue 4 years ago • 47 comments

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

128bus_20170120.zip

thrust26 avatar Sep 28 '20 18:09 thrust26

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.

sa666666 avatar Sep 28 '20 18:09 sa666666

Darrell plans to update the demos to the latest BUS driver, but maybe we are faster. 😈

thrust26 avatar Sep 28 '20 18:09 thrust26

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

sa666666 avatar Sep 28 '20 19:09 sa666666

Yes, probably better. The changes are too large and we do not really understand how the code works.

thrust26 avatar Sep 28 '20 20:09 thrust26

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 avatar Sep 28 '20 20:09 SpiceWare

@SpiceWare The one posted above would be nice.

thrust26 avatar Sep 28 '20 20:09 thrust26

Will do.

SpiceWare avatar Sep 28 '20 20:09 SpiceWare

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.

sa666666 avatar Sep 28 '20 20:09 sa666666

Yes, changing the ROMs, that's what I meant too.

thrust26 avatar Sep 28 '20 20:09 thrust26

Forgot how primitive the old build process was

  1. run dasm
  2. copy the echoed out #define statements and paste them in a c header file.
  3. compile C code
  4. 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.

Screen Shot 2020-10-25 at 7 35 51 PM

SpiceWare avatar Oct 26 '20 01:10 SpiceWare

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.

sa666666 avatar May 14 '22 20:05 sa666666

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

sa666666 avatar May 30 '22 21:05 sa666666

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.

SpiceWare avatar May 31 '22 14:05 SpiceWare

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.

SpiceWare avatar Jun 06 '22 20:06 SpiceWare

The PlusROM initialization was missing in CartBUS.cxx. I committed a fix, please try again.

thrust26 avatar Jun 06 '22 20:06 thrust26

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:

  1. RPG driver (newest driver)
  2. Draconian driver (oldest driver)
  3. 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

Screen Shot 2022-06-06 at 6 51 50 PM Screen Shot 2022-06-06 at 6 52 36 PM Screen Shot 2022-06-06 at 6 49 44 PM

SpiceWare avatar Jun 07 '22 00:06 SpiceWare

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:

  1. RPG driver (newest driver)
  2. Draconian driver (oldest driver)
  3. 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.

thrust26 avatar Jun 07 '22 06:06 thrust26

@SpiceWare Is bus stuffing really dead? Or are you still working on a solution?

thrust26 avatar Jun 07 '22 12:06 thrust26

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.

SpiceWare avatar Jun 07 '22 14:06 SpiceWare

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.

  • parrot on August 28, 2016
  • 128 on September 3, 2016

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 avatar Jun 09 '22 15:06 SpiceWare

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

sa666666 avatar Jun 09 '22 15:06 sa666666

@SpiceWare Agreed, if there are newer ROMs available,which work with your changes, then I wouldn't invest too much time.

thrust26 avatar Jun 09 '22 15:06 thrust26

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

Screen Shot 2022-06-09 at 12 57 17 PM

SpiceWare avatar Jun 09 '22 18:06 SpiceWare

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.

thrust26 avatar Jun 09 '22 18:06 thrust26

Thanks! I'll look into setMessageCallback this evening.

SpiceWare avatar Jun 09 '22 18:06 SpiceWare

@SpiceWare, can you also post/send all the BUS ROMs you've tested?

sa666666 avatar Jun 09 '22 18:06 sa666666

He doesn't have to post them, just commit them within the test folder.

thrust26 avatar Jun 09 '22 18:06 thrust26

Yes, committing them is fine too.

sa666666 avatar Jun 09 '22 18:06 sa666666

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.

SpiceWare avatar Jun 09 '22 19:06 SpiceWare

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.

sa666666 avatar Jun 09 '22 19:06 sa666666