Next Generation Emulation banner

1 - 5 of 5 Posts

·
Registered
Joined
·
1,720 Posts
Discussion Starter · #1 ·
* 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.
Grab it from the site:
http://www.double.co.nz/nintendo_ds/dsemu.html

Or directly, via Coral Cache:
Binary | Source
 

·
Experenced But New User
Joined
·
866 Posts
Go DS Emulation!!!
 

·
It’s Me .. I still Exist
Joined
·
1,224 Posts
0.4.3 out ..

• The Delay SWI has been implemented.
• The POWER_CR register is now seperated into one for the ARM7 and one for the ARM9.
• A workaround has been implemented so ndslib console text displays correctly as well as some tile demos working ok. In 0.4.2 the latter was broken.
• A fix to VRAM mapping.
• The second screen did not work in 0.4.2. This has been fixed. Both screens should work now.
• The screens were often flipped compared to how they worked on hardware. This should be fixed.
• Responsiveness of the GUI has been improved for those demo's that enter 'busy loops'.
• Touchscreen has been re-implemented by implementing parts of the Serial Periphiral Interface (registers SERIAL_CR and SERIAL_DATA). This should mean that demo's using IPC v1 or IPC v2 work fine without having to hard code the IPC structure into DSEmu. This will require tweaks to get working right as I've done the minimum needed to get ndslib demo's working.
• The touchscreen bit of XKEYS now works. Programs can detect whether the screen is touched or not.
• Some logging data removed which was impacting performance.

http://www.double.co.nz/nintendo_ds/dsemu.html
 
1 - 5 of 5 Posts
Top