The Intel 80286 emulator for the DS, DSx86 has been updated to version 0.23.


* Maupiti Island memory allocation problem (as mentioned in the previous blog post) has been fixed.
* Support for tweaked 640x400 EGA mode added (used in Mahjong Fantasia, for example).
* Fixed the hang in Bart vs. the Space Mutants. The hang was caused by two timer interrupts happening immediately after each other. This should not normally happen, but as DSx86 uses the host machine timer IRQ to drive the emulated PC timer IRQ, it is possible for a timer IRQs to happen during screen blitting, which in turn might have interrupted the handling of the previous timer IRQ. I adjusted the timer IRQ handling so that timer IRQs that happen during screen blitting are ignored.
* Fixed the Space Hulk "Error in MIDI code!" problem that was introduced in 0.22 (caused by the new AdLib Timer 2 handling for B.A.T. 2). I improved the AdLib timer handling so that both B.A.T. 2 and Space Hulk are happy.
* Fixed the unsupported INT call at the start of Fire & Ice (it tries to load custom EGA fonts, which is not yet supported).
* Added some missing graphics opcodes, based on the error logs I have received.

Other notes: I also spent several hours tracing the null pointer jump problem in the Superhero Legend of Hoboken game, but could not fix it yet. I found out that the problem is caused by a routine overwriting data in the stack, so that the routine then returns to address 0000:0000. This same routine is used without problems hundreds of times before it fails, so tracing the actual reason for the failure is pretty difficult and time-consuming.

Not a lot of changes, and as I am moving my focus from DSx86 to the new SuperCard DSTwo version, at least for the time being, it is possible that DSx86 itself will progress very slowly for a while. I will possibly increase the two-week release cycle, especially if I have not had time to do any worthwhile improvements.

DS2x86 Progress

I have not yet received the free DSTwo card that SuperCard has sent me, so I have not been able to fully start coding for it yet. I have been learning MIPS assembly language and have started converting some of the ASM macros I have used in DSx86 to MIPS ASM for DS2x86, though. I am using mostly the same ideas that I have used in DSx86, but will include 386/486 opcodes from the start, and will switch from using the CPU flags directly to a Lazy Flags-type approach. MIPS has so many general purpose registers that I believe I can fit the lazy flags into registers, which should make the code run reasonably fast. Not as fast as the ARM version, obviously, but on the other hand the MIPS processor has quite a bit higher clock speed.

I hope the DSTwo card arrives next week!
Source- here