10-16-2011, 03:14 PM
DSx86 is a PC emulator for Nintendo DS. It's purpose is to allow you to run old DOS games on your Nintendo DS game console. DSx86 is the winner of GBATemp's Homebrew Bounty 2011 competition.
http://dsx86.patrickaalto.com/
http://dsx86.patrickaalto.com/
Quote:Version 0.25 Release Notes
First off, sorry for the stupid bug that crept into the previous version. I copied some paging-enhancements to several string opcodes, and forgot to change the jump address in one of the code clips I copied, so that when the game tries to move unaligned 16-bit values in memory, it actually jumps to a code that moves 32-bit values. This means that too much data is copied, overwriting something in memory, which in turn causes either erratic behaviour or in many cases a blue screen crash. I use Doom as my sanity-check game, and always test that I haven't broken the code completely before release by running it for a while. However, Doom did not happen to use this unaligned memory copy, so I did not find this problem before the release.
All in all, this version is mostly just a maintenance version and has the following improvements:
-Fixed a copy-paste bug in REP MOVSW string opcode (as mentioned above). This fixes the BSOD in Heretic, Hexen, and various problems in many other games.
-Implemented INT10 calls AX=1008 (READ OVERSCAN (BORDER COLOR) REGISTER), AH=12/BL=34 (ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION), AH=F1/DX=0020 (EGA Register Interface Library - WRITE ONE REGISTER - Miscellaneous Output register), AH=F1/DX=0028 (EGA Register Interface Library - WRITE ONE REGISTER - Feature Control register).
-Implemented missing 66-prefix variations for LFS and LGS opcodes (NORM).
-Implemented missing RCL and RCR opcodes using 32-bit registers (SWS).
-Implemented read/write to/from CPU debug registers (RAYMAN).
-Enabled directory access using the alias of a long directory name. I had to hack into the DSTwo SDK directory.c source to enable this. I compared the source with the current NDS libFAT sources (which it is based on), and found a difference. In the DSTwo SDK version the check if the directory alias (the short 8.3 version of the long name) matches the requested directory name was simply commented out. I have no idea why, and hopefully my re-enabling this feature does not cause any new problems in file and directory handling. It is always rather scary changing the low-level file access library functions.
-Ignore writes to I/O ports 0x140..0x14F (DESCENTR).