January 9th, 2011, 23:20 Posted By: wraggster
Pate has released a new version of his Dos Emulator for DS (Which also requires a Supercard DSTWO )
Release notes for DS2x86 Alpha 0.02
This version does not have any major new features, mainly just some minor fixes and enhancements compared to 0.01. Here are the most notable changes:
Screen mode "Scale" works also in Mode-X graphics mode.
The upper and lower screens are swapped when using touchpad mouse.
Keyboard layout shows upper case characters when in Shift mode.
Some missing opcodes have been added, based on the log files I have received.
Screen refresh rate can be changed between 15, 30 and 60fps.
Lower screen refresh should be more robust than in 0.01 version.
Lots of protected mode work for DOS4GW, but this work is not yet finished so games using DOS4GW will not work in this version yet.
Protected mode work
I have continued adding the missing opcodes and other features for DOS4GW and other DOS protected mode extenders during the last week. After adding a few opcodes for each of the three games I tested, Zone 66, Jazz Jackrabbit and Doom, I had to drop Zone 66 from the list. That was because Zone 66 seems to go to Virtual 8086 mode to handle it's DOS needs, and I did not want to tackle that mode yet, until I have progressed much further with the plain protected mode handling. So, I continued adding features for Jazz Jackrabbit and Doom.
Curiously, both Jazz Jackrabbit (using Borland's RPM extender) and Doom (using DOS4GW) have stayed in the 16-bit 286-compatible protected mode, and have not gone into 32-bit protected mode at all. Zone 66 went into 32-bit protected mode immediately, so I had assumed that the extenders would use the 32-bit mode if it was available. However, it looks like they have been made to be compatible with 80286 processors, and thus use only the 16-bit protected mode. When I originally got my Trekmo demo ruuning, I only needed to add 32-bit protected mode features, so I have had to add quite a lot of new things to support 16-bit protected mode.
The current status with the three test games is the following:
Zone 66 is on hold until I get around to implementing Virtual 8086 mode. The DOSBox sources also mention Zone 66 in various comments, which looks to me like the game might need some special handling also in DS2x86 to get it to run properly.
Jazz Jackrabbit (and probably other games using the Borland RPM DOS extender) needs some enhancement to protected mode IRET opcode handling to invalidate invalid segment selectors. Using my special heavily modified debug version of DOSBox I have determined that after that it will encounter a HLT (halt) opcode with insufficient priviledges, which causes a General Protection Fault. Thus I also need to add proper GPF exception handling before I can progress further with it.
Doom (and other DOS4GW games) progress somewhat further, but then return to a location of code that contains only INT 3 (breakpoint) opcodes in a row, which means either some invalid memory address somewhere (more likely), or a need for handling the breakpoint instruction in the protected mode (less likely). My next step is to trace thru the execution before that happens, and compare the situation between DS2x86 and DOSBox. This might obviously take a lot of time, so I am currently adding various trace features to the DS2x86 internal debugger to help me in debugging the program flow. The game seems to progress somewhat differently during each test run, so I suspect my protected mode IRQ handling might also be somewhat broken.
I'll continue working on the protected mode features for now, so I hope you can wait a bit further for other enhancements (like high-resolution VGA screen and audio support). Those are coming, but I am currently more interested in getting some games that can not be run at all in the original DSx86 running in DS2x86.
For more information and downloads, click here!
There are 0 comments - Join In and Discuss Here