PDA

View Full Version : DSx86 News - Dos Emulator for DS - Version 0.10 Beta released!



wraggster
April 11th, 2010, 21:30
Pate has released a new version of his Dos Emulator for the Nintendo DS, heres whats new:

This is not version 0.08 alpha, but version 0.10 beta! I decided to increase the version number and move DSx86 forward from the Alpha state with this version, as it has quite a lot of changes and new features. This also means it probably has quite a lot of new bugs as well, so everything might not work quite right yet. But, this version does run Wolfenstein 3D, at least! :-)


Here is the almost complete list of changes I made into this version (direct from my updated TODO list). If you recognize the game name (in parentheses), feel free to test the game again in this version, you should get further in the game now!

VGA Mode-X support (Wolfenstein 3D, Fox Ranger). DSx86 now supports all 320-pixel wide Mode-X (and Mode-Y) variations (320x200, 320x240, 320x400, 320x480). In the modes with 400 or more lines the screen is prescaled vertically to 200 or 240 lines, even in ZOOM mode. This is to keep the aspect ratio sensible. If this scaling makes small fonts hard to read, try using screen update mode "Direct", as that will alternate between odd and even rows to display (a sort of jittering effect).
Mouse support (MJLAPTOP, etc.). You can select whether the D-Pad emulates cursor keys or mouse by toggling the "Mouse"/"Keybd" text on the touchpad. A/B buttons emulate the mouse buttons when in mouse mode.
CGA 640x200 monochrome mode support added (MJLAPTOP).
Key Repeat support (4DOS, etc.). Now when you keep the button (real or virtual) down, it will repeat, like in a real PC keyboard. This is the one change that I am most worried might have broken something.
Bug in "mov reg16,[BP+SI]" and "mov reg16,[BP+DI]" opcodes fixed (WIN).
Bug in "Interrupt Enabled" flag setting after returning from INT2F fixed (Wolfenstein 3D).
Bug in moving data within the EGA VRAM fixed.
Fixed the Brown color in the default EGA palette (KEEN4).
New game-specific "jpe" opcode hack added (CALGAMES).
New game-specific "jpo" opcode hack added (TOUTRUN).
Added "insb" opcode handling (OPENING).
Added all "imul r16, r16, imm16" opcodes (NCMAIN).
Added "imul r16, [di+disp16], imm8" opcodes (UNP2).
Added "imul r16, [idx+disp8], imm16" opcodes (STARTREK).
Added support for input from port 3C2 (FD).
Added support for input from port 3CC (RAIDEN).
Added support for input from port 3D9 (Crazy Cars).
Ignore "Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR" BIOS call (MIDWNTR).
Support for moving data from EGA VRAM to RAM added (REVENGE, BL, RAMPAGE).
EGA opcode "and es:[di],ax" added (BARD, DK).
EGA opcode "mov byte es:[disp16],imm8" added (KEEN1).
EGA opcode "mov es:[si],ax" added (G).
EGA opcode "and ax,es:[di+disp8]" added (SR).
MCGA Direct mode opcode "mov es:[di],bh" added (CREEPERS).
MCGA Direct mode opcode "mov es:[bx],al" added (MW).
Opcode "aad" handling added (JS3).
Added handling for opcode "repe scasw" when direction=down (STAROPEN, SS, PAL).
Opcode "sar word [bp+disp8],imm8" handling added (RUNVGA).
Added support for teletype text output in EGA mode (ULTIMA).
Added support for teletype text output in MCGA mode (EAGLE).
Added support for "GET ALL PALETTE REGS (VGA)" BIOS call (BASH1).
Added support for "WRITE STRING" BIOS call (RICK2, !STUNTS).
Added support for DOS text output in EGA mode (SIMCITY, SKWEEK).

The new Mode-X support requires it's own complete set of graphics opcodes, pretty much similarly to the EGA handling. I have only added very few of those opcodes, so it is extremely likely that any other games besides those I have tested that use Mode-X will crash with an unsupported opcode error. Please just send me the log file for all such games, and I'll add those opcodes to the next version! Btw, if a game displayed several small screens in the previous DSx86 version, it most likely used Mode-X, so please test it again in this version.

The past couple of days I have been working on improving the EMS memory support, as it is currently the only major obstacle in making Master of Orion (which uses Mode-X) run in DSx86. I actually tested MOO by giving it the full megabyte of EMS in DSx86 and got it to display all of the intro and go into the initial menu, but the graphics were pretty badly garbled as it kept receiving wrong data from my broken EMS handling. Sadly, so far I haven't been able to fix my EMS implementation and am having a hard time figuring out what exactly goes wrong there, so this version still has the limited amount of EMS enabled. Also, some games (like MOO and Wolfenstein 3D) want to check the availability of EMS using the EMMXXXX0 device, which is not yet supported in DSx86. That's why Wolfenstein 3D does not see the EMS memory (in case you were wondering :-).

I still have quite a lot of issues remaining in my TODO list, and I'll keep on working on the EMS memory problem, but feel free to send me your log files and information about other isues in this version again! Also, let me know if you find the above style of my reporting fixed issues by game useful.

http://dsx86.patrickaalto.com/DSblog.html