I’m not sure how long this next stage will take, as I want to get a mostly-working solution up-and-running rather than something 100% complete.
I’m starting with a test framework, then moving on to writing the test suites (possibly in tandem), and finally the automated build server. Having not used Java for a while, I think the build server will take the longest. Also, it’s quite an involved side-side project.
For period-correct solutions, I did check out check, but it relies on fork which would mean writing a whole set of new functions and figuring out how to use paged memory. I may give it another try, but I’m not sure how much more development time it will add. It may be worth another shot as I’ll need either exec functions or a lightweight program that lives at the end of memory to shuck in a drive/external program loader. At the moment, I’m thinking it would make sense to use a directory of tests with a Makefile that automatically runs CodeScape and GD Workshop to load in the programs and any data required. Luckily, both have scripting interfaces.
I don’t have another dev kit to run the tests on, so it would have to be a strictly local thing for now. With the price of dev kits having gone up so high, it might be worth using a retail kit with an ODE, printing out the results over serial. For the Windows side of things, I have two Sun PCi cards that I haven’t yet tested. They both look to be the 600MHz Pentium III versions, which is extremely lucky. I’m going to try one out in my Blade 1000 at some point and use it as one of the build slaves.
The hope is that with all this automation, I can kick off builds which will run tests on the dev kit or have them generate a full CIM at any time. This can then be converted to a GDI, compressed, and uploaded on a regular basis for all to see and try out. By the end, this means that at any point a new build will be playable (or at least usable) with new features. It’s an effort to try to expose this project to the wider world. With any luck, it will be ready to share by the end of next year or the start of the one after that.
There’s still so much to do and I’m looking to get the following done and/or started in the year:
Building (3 months, 1 week)
- Automated testing (3 weeks)
- Automatic build server (2 months)
- Test framework (2 weeks)
Scripting (5 months, 2 weeks)
- VM (2 months)
- Assembler (1 month, 2 weeks)
- Compiler (2 months)
Shambler (5 months)
- Game server list (3 weeks)
- Lobbies (3 weeks)
- Microphone support (1 month)
- Storage unit saving/loading (2 weeks)
- GUI (2 months)
- Player profile (unknown)
- Friends list (unknown)
- Rich presence (unknown)
- Messaging (unknown)
By “done” I don’t mean 100% working, tested, and complete. I mean a working, stable version that can be improved upon. The one thing about games in any aspect (art, programming, audio, design) is that they’re never “done” as there’s always something to polish, add, or tweak right up until that moment when you have to say it’s time to stop. The estimates are aiming for a “good enough” or “workable” state. There’s much to do on the research side of what will become Dreamcast Live, which I need a better name for.
I also need to make the site for Shambler and continue with the hardware projects. I keep putting off the hardware side of things unintentionally. The Verilog books I bought this month are all very useful and should help a lot. I’ve made it through one of them but haven’t done anything practical just because I’m unsure on how to apply what I’ve read, outside of what I’m looking to do with FPGAs. I must have gone over the same material from different sources at least ten times, but none of them have been as good at completely explaining how everything works as what I’ve read from the first book on my list. Time for the hardware projects will need to be carved out at some point.