January 17, 2010

Aeon Version 0.55

Finally time for a new build! I’ve made a pretty good amount of progress. Most of the floating-point instructions are working, and I’ve implemented some of the actual protection mechanisms in protected mode, along with paging. Most of the 32-bit DOS extenders I’ve tried work at least somewhat now, with one notable exception being Borland’s DPMI.000 extender (which, in my humble opinion, is the most evil piece of code ever written). Some of the more advanced 32-bit games don’t work yet either, though some do (Daggerfall, for example, if you’re willing to jump through a few hoops). Here’s the change list:

Implemented about 90% of x87 floating point unit

Partially implemented CPU protection levels

Added support for paging

Fixed a few DOS memory allocation bugs

Minor Sound Blaster fixes

Fixed some protected mode instruction bugs

Added keystroke to release captured input (CTRL+F12)

Implemented a few more missing instructions

Better support for TSR’s

In order to support paging, I had to change a lot of code – unfortunately, Aeon may run a little slower as a result, though I haven’t noticed any change on my test system. Also, it’s possible that I’ve broken compatibility with something that used to work. Again, I haven’t seen anything in my regression tests, but my tests don’t include running every game in the world…

Update: It seems that some of the changes I’ve made may have broken Aeon on 32-bit versions of Windows. I’m going fix this and repost a new version, then set up a proper 32-bit test system so this doesn’t happen again.

Then it looks like I’ve broken the 32-bit version again. I guess I have to break down and finally set up a propery 32-bit test system, since running this in a VM hasn’t been terribly convenient. Thanks for letting me know.