News
Wolfenstein 2011-04-03 20:23:00
I recently started work on resolving symbols (variables, functions, etc) in my ACS compiler. One of the things I determined was that ACC++ was going to treat any variable type as a object. This will allow for the definition of custom primitive types, which will make handling fixed point variables much easier. There will still be a difference between normal classes and primitives, namely primitives will not have member variables. (Which should be expected since they would be represented by a single value.) So in essence you'll be able to define custom operators and functions without having the overhead of going through allocating room on the heap. It also means I have to build much less logic into the compiler, instead moving most of the code into the optimization stage of the assembler. I hope that this summer I can get the work needed to get ACC++ compiling done, but I can't make any guarantees.
I didn't get very far with that though as my attention was diverted over to the ECWolf project. I completed the request for aspect ratio correction code. ECWolf now renders with rectangular pixels as well as proper support for wide screen. This only applies to the game renderer, as much more work is required to correct the 2D elements. Even if I tried I would probably end up doing twice the amount of work required, which brings me to my next point.
I've imported the entirety of ZDoom's texture loading code into ECWolf along with everything it depends on (palette, translations, random number generator, etc). As a result it is now able to load any graphic format that ZDoom can, minus the graphics for the build engine since that would have brought in more dependencies and would probably never get used (at least it should never get used). At this point a few other things are disabled in order to get things compiling, for example the animation system is not hooked into the game yet, but there's no reason these things can't be enabled with a little bit of work. I can't really show anything here in screen shots since at this point it looks unimpressive since it's still using a mix of the old and new texture system (so there are palette conflicts), and besides once everything is done you shouldn't notice anything different unless you're making mods for the game.
Once that is done, which implies quite a bit since I need to move all graphic drawing to a name based system instead of an indexed one, all I need to do is figure out a new map format for the game (or find some way to adapt the existing one since I have to support it any ways). Once the engine doesn't depend on the non-user friendly file formats I'll be able to do a stable release of the source port within about a year which will finally support Spear of Destiny as well. In regards to Wolfenstein 3D, I'm only going to support one version which means I need to find a way to generate patch data. I'm still not sure if I should support the 1.4 with or without the "Read This" option, the former is probably more favorable to mod authors, the latter to players as I'm sure that's the one distributed through steam.
And for anyone wondering about my other projects such as ZDoom's Doom 64 branch. Yes I'm still planning to finish them.