Posted By: wraggster
Pate has released a new version of his Dos Emulator for the DS, heres whats new
This version actually has the longest list of changes in any version yet, but the great majority of the changes are new graphics opcodes and support for new INT calls and port I/O (most of which are actually just silently ignored, as in DOSBox). However, there are also some bigger changes.
Improved touchpad mouse (TPM) emulation, with new configuration options that can be set in the DSx86.ini file, either in the default section or adjusted by each game if needed:
TPMScroll is a boolean that determines whether the screen should be scrolled when the stylus moves near the screen border in Zoom mode.
TPMTap is a boolean that determines whether tapping the screen with the stylus is registered as a left mouse click.
TPMLeft determines the DS button to use for the left mouse button.
TPMRight determines the DS button to use for the right mouse button.
The defaults if DSx86.ini does not have any of those set are as follows:
TPMScroll=FALSE
TPMTap=TRUE
TPMLeft=KEY_LEFT
TPMRight=KEY_RIGHT
New built-in commands on the 4DOS prompt:
VER command can have a parameter to change the reported DOS version number, like "VER 4.00" or "VER SET 4".
SETVER command works like VER command with a parameter.
LOADFIX command can be used to launch games that otherwise would give "Packed file corrupt" problems. This still does not seem to work for games that consist of several executables, though.
DEBUG command can be used to start the game and immediately go to the debugger. That is mainly for my own use.
The Zoom modes now scroll smoother than before (using the trigger KEY_L and KEY_R buttons). When already at the left/right edge, they start scrolling up/down, with the KEY_L preferring to scroll up and KEY_R preferring to scroll down. The longer you keep the button down the faster it will scroll, so quick taps will move the screen in short increments.
Fixed a bug in REP CMPS Carry flag setting after the string comparison. This could have caused string comparisons to return the opposite order.
Fixed problems in string opcodes when indices wrap around the segment. This caused Jumpman 2 to crash, for example. This also seemed to get rid of the problems in Wing Commander 2 intro when using full EMS memory.
Fixed a bug in EGA 16-bit Read Mode 1 code (FS3).
Fixed VGA Line Compare Register handling (GOT).
Fixed VGA palette handling (Star Control 2).
Added support for VGA offset handling in 320x400 ModeX mode (GOT).
Added support for BIOS functions to clear and scroll up an area on the screen for all supported graphics modes (Ultima, etc).
Added BIOS INT1 default handler at F000:E987 (STARGATE).
Adjust disk free space calculation when SectorsPerCluster*BytesPerSector = 64K.
A large number of EGA and Mode-X opcodes added.
A large number of new INT calls supported (mostly just ignored).
A large number of new port I/O addresses supported (mostly just ignored).
I still did not manage to fix the problems causing some games to execute data instead of code. Debugging and finding these problems seems to be more difficult by every release, as I get the easy problems fixed. I will continue looking into these in the future version.
I also did not have time to improve the screen scaling features, I'll see if I can add those to the next version. Please send me again the debug logs, those have been very helpful in my improving the compatibility of DSx86!