Gotten quite a bit of ground covered since my last post… All the bugs I first encountered are fixed, but there’s plenty more to deal with. 🙂
I took a brief side-trek to write myself some console applications in C# to help with my work. My original method of compiling the game was as follows:
- Build each module source using A99, creating an object file
- Using Classic99, load the object file into memory, then dump the memory into a binary file
- Copy the memory sections with program data into my program file where they are loaded from
Not TOO bad, but I was quickly running into annoying problems, like anytime I changed code significantly in the root module, I had to also build the start module or things stopped working there. (Because addresses were offset from expected values.) And the fact I had to navigate with the mouse to do loading and debugging in Classic99 slowed me down quite a bit too.
Fortunately, Mike Brent helped out by sending me a simple object to binary program he’d thrown together. I was able to adapt it into a new binary for my purposes that translated the object file into a straight binary file, removing the need for Classic99 in the process entirely.
Then I wrote another console app that did binary copying from one file to another, only requiring you to supply base addresses in both files and a length. That lets me copy the resultant binaries into my program file directly. So now I can compile, build and create the program file all by clicking a single button!
Right now I’m debugging the statistic screens. I discovered that I hadn’t populated real values for item data at all, so that was my first fix. Besides that, mob movement seems weird; my monsters aren’t chasing me and they’re moving across water and other “inaccessible” tiles.
All you can do is just deal with each problem one at a time. Sooner or later you WILL fix them all.