Let's get the formalities out of the way. First Star Software owns the copyright to the game, so we can't go around developing our own versions and releasing them to the masses. So the way I've gone about this is to develop an engine capable of BoulderDash functionality (in general, it's a general engine capable of many games) while at the same time using BoulderDash as a basis for the development of various programming techniques in the engine.
While following this process I had occasional correspondence with First Star Software about the possibility of bringing a '2600 version to the masses. In general, our discussions have been encouraging and I am delighted to have received official permission to debut on hardware my current engine running '2600 BoulderDash ® at the Oklahoma show on June 18th.
Whilst I am unable to release binary versions of the game due to the copyright issues and the code pertaining to the BoulderDash mechanics must remain private, too... I do have official permission to regularly release MPGs showing the capability of my engine as it runs BoulderDash scenarios.
In short, I *am* writing BoulderDash for the '2600. First Star Software are aware of this, and have given me their blessing to continue doing so. We both hope that this will turn into a polished '2600 game that can see a release on the market for the '2600 fans. So yes, there is a possibility this may see the light of day after all. Please note, I am not saying that FSS are doing BoulderDash. I am doing it. They have been kind enough to allow me to continue along the current path, using their copyrighted property for my own private use to demo the capabilities of my engine. I think it's fair to say that we both (FSS and I) hope that this can turn into a great '2600 achievement that can bring fame and glory to all. But that's entirely up to me, so any failings are totally mine.
Now, I've previously posted MPGs of the engine as it has progressed from day to day in the other forums. I will continue regularly posting MPGs and maybe even a bit of a development blog in this forum. But for now, here's the most recent MPG (previously posted in the other forum)...
butterfly, firefly, slime, water, boulders, diamonds and two magic walls, all at the same time... with little slowdown. -- 2.2MB.
Currently I am rewriting the systems that control how the boulders and diamonds fall. Due to the complex architecture of the engine, getting the timing right has been difficult, and I'm getting duplicaed boulders and diamonds during the falling stage. I have written the code to fix this -- it just don't work, yet
I think I'll probably get the magic walls working next, so that you can drop boulders and diamonds through them and they change one to the other. That should be fun. After that, I will work on the slime/amoeba and see how to get it detecting when to change to diamonds (when it can't grow, of course... but it's not all that easy).
An overview of the system itself:
The addition of RAM has made a complex display engine possible. Nonetheless, additional RAM does not give you (much) additional processing time for the whole screen. My system doesn't actually draw that much during any frame -- it just looks like it does. But what it does do is efficiently use what time IS avaialble. It does this by using a sort of multitasking timeslice system, where any part of the game is guaranteed (well, supposed ... its not perfect) to use a maximum of a certain amount of time. By detecting if there's enough time left to do another timeslice, the game actually manages to get a hell of a lot done in any one frame, and due to the generic design of the architecture, I don't really care or know what any one timeslice is doing. That is, I don't say "draw the wall", "draw the slime", etc... I just put the wall in memory, and it automatically gets drawn by the timeslice system as a result of the system detecting a change in the data in the area of the board the screen is displaying. I should write this up in more detail sometime, if anyone is really interested.
The bottom line, though, is that I can have VERY complex interactions going on in the game at the same time (say, 10 butterflies, 20 boulders and 20 diamonds falling, with an amoeba expanding, and two magic walls... at the same time as the two players are each independantly scrolling their split-screen windows at a fair clip). Fast enough, anyway, that it seems real-time to the user with little sluggishness or slowdown.
If all goes well, as I said, you can come to the OK show and see it for yourself.
The most recent thing I implemented was a NTSC/PAL switch (right difficulty) so that there is only one cartridge type and it will play on pretty much any Atari in use today.
I will post another MPG as soon as I fix the boulder/diamond falling issues. Shouldn't be too long!
Cheers
A














