November 24, 2009
Aeon Version 0.51
Filed under: Aeon, New Version — Greg @ 3:41 pm
It’s been a while since I’ve posted a new build. A lot has changed in the code, but the single biggest visible change is the addition of protected mode emulation. It’s very far from complete. Right now, I’ve only gotten two protected mode games to work: Doom and Rise of the Triad – even so, those only work correctly if you disable Sound Blaster sound effects. Why those two games? I just happened to have them on my hard drive. Here’s the complete change list:
* 16/32-bit protected mode support added (no actual paging or protection works yet though)
* Fixed consistency issues with 16 vs. 32 bit stack and instruction pointers
* Fixed 32-bit addressing modes
* Small Sound Blaster
DSP fixes, still lots of playback issues though
* Added support for a few FPU instructions
* Added extended memory support (XMS)
* Most instructions now work with 16 or 32-bit operand sizes
* Fixed a few issues that caused hardware interrupts to get disabled when they shouldn’t
* Eliminated generation of multiple identical operand decoders (reduces memory usage, may increase performance somewhat)
* Fixed an issue with unchained 256-color (mode X) display modes sometimes getting rendered incorrectly
If you’re expecting your favorite 32-bit DOS game to work now, you’ll probably be disappointed (unless, of course, you wanted to play Doom with no sound). Also, performance is not all that great for 32-bit programs, as I haven’t really optimized it for speed yet. I’m going to focus on improving protected mode compatibility up through version 0.6; expect all of these things to gradually improve from here.