Posted By: wraggster
Pate has today released a new version of his Dos Emulator for the Nintendo DS
This version has a lot of minor fixes and improvements. There are about 50 new graphics (and normal) opcodes supported, including the 386-specific long conditional jumps. The problematic debugger breakpoint interrupt INT 03 has been adjusted so that it is silently ignored if a DOS program does not handle it and if the DSx86 inbuilt debugger is not active. I also fixed the IRQ handling, and added a debugger E command, as mentioned in the previous blog post. If you are feeling very adventurous, you can (at least in theory) use the new E command to replace an unsupported opcode with a NOP opcode (hex code 0x90) and then possibly continue a game has crashed with an unsupported opcode. This however needs a lot of knowledge about the x86 assembly language, and is not "supported" by me, so do it at your own risk! I'm just mentioning that it is possible. :-)
Since last weekend I have been searching and downloading a lot of games that have been marked as not working (or partially working) on the compatibility wiki, and I have been testing many of them, mainly looking for easy-to-fix problems. I have left the more difficult problems for the coming weeks, and have focused on games that seem to need only minor fixes to run properly. So far I have been working on the following games, which currently seem to work:
Bubble Ghost (INT10 AH=0E teletype output was buggy, and it needed a special JPE opcode hack)
Crystal Caves (It needed just one new EGA opcode, but the horizontal smooth scroll still jumps around)
Heimdall (EGA palette handling via INT10 was broken, the horizontal smooth scroll still jumps around)
History Line 1914-1918 (It used the DS segment for several graphics opcodes, and it used VGA VRAM also for program variable storage!)
Hocus Pocus (Fixed VGA Line Compare Register setting at mode change, several Mode-X opcodes added, and it needed improved Mode-X emulation in general)
I haven't actually played any of these any further, I've moved on to the next game when I have gotten to actual game to start. I'll leave the actual play testing to you who have reported the games on the compatibility wiki in the first place. Below are screen copies of Heimdall and Hocus Pocus, mainly because I thought they are two very pretty-looking games. :-)
This morning I tried to fix the jerky horizontal "smooth" scrolling in various games (Crystal Caves, Heimdall, Supaplex, etc), but I could not find the actual problem yet. I have studied the interaction of the VGA start address setting, horizontal panning register setting, and VSync/VBlank intervals in DOSBox, and have experimented with various timings in DSx86, but no change has so far solved the problem. I need to leave this fix for the next version, as it looks like I need to debug it more thoroughly than I had anticipated. It is interesting that the only game I know that does not suffer from this problem is Commander Keen 4, and it does not sync the scrolling to the screen vertical retrace signal at all!
Anyways, hopefully this new version again runs a few more games than the previous one, please send debug logs again and update the compatibility wiki for the games that have started working (or behave differently). Thanks again for your interest in DSx86!