DSx86 is a PC/DOS emulator for Nintendo DS written by Patrick Aalto. It’s purpose is to allow you to run old DOS games on your Nintendo DS game console. Some of the older games run quite good and bring back memories.


* New TPMXScale and TPMYScale ini file parameters. These can be used to adjust the TouchPad Mouse scaling for each game. The default values (when the parameters have not been given in the INI file) are 1.0 for both. You need to experiment with different values to find the best scaling factor for each game. Note that changing these might still not make the TPM work in a certain game, as the game might not use the mouse in a way that is compatible with the touchpad mouse emulation. These new parameters should help in some games, though.
* The key repeat function in the keyboard emulation was fixed so that it repeats the actual key that was pressed, not just the non-enhanced version of the key. This will help with the stuck cursor key problem in Frontier.
* The graphics mode detection code has been enhanced, so that both methods of entering 240-row Mode-X graphics modes (either 320×240 or 360×240 as in Albion) will be detected, and the correct graphics mode initiated.
* DSx86 has been built with libNDS 1.5.3, which should allow write access to the SD card when using Sudokuhax. I have no way of testing this feature, so it might work, not work, or corrupt your SD card completely! Please use caution and back up your SD card before using this version with Sudokuhax!
* This new libNDS version 1.5.3 had the same problem as the 1.5.0 version I had been using, where ARM7 (or at least the AdLib audio emulation) freezed after a few seconds of playing AdLib audio. In 1.5.0 I got everything to work when I disabled all references to the i2C code, commented out the secondary ARM7 IRQ table handling, and removed the whole i2c.c source module from the libnds7.a sources. I did the same thing with the 1.5.3 version sources and built the libraries again, and that seemed to help again. I don’t know why the i2C code is incompatible with my AdLib emulation, but as long as this hack works it is not a big problem for me.
* DSx86 also has much faster Smooth scaling routines in the 320×200 256-color modes (MCGA and Mode-X). The new code is courtesy of “sverx”, who kindly spent some time looking at my scaling code and inventing various speed tricks that hadn’t occurred to me. For example, the new code uses DTCM for the palette lookup table, instead of the actual (and slow) BG_PALETTE VRAM memory I had been using. The 75%/25% weighted average calculation is also much faster. The new smooth scaling code is still a lot slower than Zoom, Scale or Jitter modes, but it is noticeably faster than before. Thanks again to “sverx”!