Grab it from the site:* The interrupt registers have been split so a seperate register is kept for the ARM7 and ARM9. Even though they have the same register address, each CPU actually has a different register. This affects IME, IE and IF. Interrupts were pretty much broken in the previous version of DSEmu without this fix.
* Added the 'ARM7 specific IWRAM' memory area from 0x03800000 with a size of 64K. Thanks to DSTek for providing this information. Previously only the 32K Shared IWRAM area at 0x03000000 was implemented and ARM7 binaries greater than 32K were crashing the emulator as well as trashing the shared IWRAM.
* A few signed/unsigned comparision issues was causing the emulator to enter infinite loops.
* The VCOUNT register is now a single register rather than having one per lcd screen. Demo's that checked for the VCOUNT being in the VBlank area would hang due to this never being updated. Unfortunately these demo's still run very very slowly due to the 'busy loop' polling this register. I hope to have this fixed in the next release.
* The SWI values were wrong in the switch statement that handled these calls. This resulted in the wrong SWI call being made. The main result of this was the ARM7 code would do a 'halt' instead of an SWI Delay which meant any ndslib based code would have no ARM7 support.
* Fixed a problem with ARM7 interrupts meaning most IRQ code should work fine now.
* ndslib Console output would display incorrect characters. This has been fixed.
* With the exception of Space Invaders, all my demo programs run under this version of the emulator in some form or another. Sound doesn't play but the touch screen values are updated and directional keys are processed, etc.
* Using 'animated step' in the debugger now updates the display. Previously no graphics would be displayed while stepping.
* Using 'debug run', followed by pausing, then stepping, would not work. The stepper would be broken from then on. Fixed.
Or directly, via Coral Cache:
Binary | Source