Category: Nintendo DS

Pate has today released a new version of his Dos emulator for the Nintendo DS which is a version of DSx86 for the SuperCard DSTwo flash cart:

Changes in DS2x86 0.05
The major improvements and fixes in this version are the following:

Preliminary support for high resolution EGA/VGA modes 640x200, 640x350 and 640x480 added. NOTE! Scaling does not work properly in these modes yet.
Implemented preliminary support for Mode-X mode 360x240 (for the Settlers game).
Implemented a lot of missing opcode variations, now a majority of the most common opcodes have been implemented, but many rare opcodes are still missing.
Increased the EMS memory size to 4MB, which allows Elder Scrolls: Arena to start up.
You can now switch between the configuration sections in the INI file on-the-fly, by clicking on the current configuration name.
Fixed a stack alignment problem in overlay loading, which caused an "Exception 5" error in some programs.
Fixed a bug in SETZ opcode, which caused Warcraft to hang when giving a command to dig gold. NOTE! It is recommended that you play Warcraft with "no sound", as the SoundBlaster emulation in DS2x86 seems to cause intermittent freezes and crashes.
Fixed a bug in division-by-zero interrupt handling, which caused Formula One: Grand Prix to fail.
Please send me the debug logs from this version again, they are very helpful when I improve DS2x86!

DSx86 progress
During the past week I also started working on the 286 protected mode features for the original DSx86, specifically when running in DSi mode. Since Windows 3.0 needs HIMEM.SYS to be installed when running in Standard Mode (meaning the 286 protected mode), I started by implementing the HIMEM.SYS features. The next (rather big) step is to change the memory access methods to support accessing memory beyond the first megabyte of RAM. This will sadly make the code slightly slower, as I can not keep all the needed variables in registers any more. This difference should not be anything major, though. I plan to release the next DSx86 version only after I have made this change, so no new DSx86 version today, sorry.

I had partly forgotten how easy and fast it is to work with devkitARM and libnds, after working for over half a year with the DSTwo SDK. You can build the software straight from the Programmer's Notepad, and after that you can test the build using No$GBA. The whole thing takes a few seconds. With DS2x86 it takes nowadays a bit over 8 minutes to FTP-transfer a new build to the DSTwo cart, which is the only place where the new build can be tested. So, I'm very much looking forward to moving my main development focus back to DSx86. I still need to work on improving DS2x86 also for quite a while, though.