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…
Download here.
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.