DescrizioneThis is the first Nintendo DS emulator for Android with a dynarec. Right now the NDS emulator is in beta so there are many bugs and it runs slow. However, I'll try and update it frequently so it gets much better!
What I've been working on
Right now, the emulator emulates both CPUs on a single thread. First it emulates the ARM9 CPU for a while, then emulates the ARM9 CPU for a while. The problem is that switching between emulating the two is extremely slow, since I basically have to flush all the registers into memory and then reload them. I've been trying to emulate the CPUs on separate threads, but right now, there's two problems. Syncing the threads is way too slow. On the interpreter, which I'm using since it's much easier to debug, multithreading basically gives no performance improvement. I'm pretty sure this is caused by a bug in my code, since there's literally no possible way to write this faster. I'm using a spinlock, and using a bigger time slice causes certain images on the screen to flash, since the graphics hardware isn't being update enough. The other problem is that exophase's dynarec isn't exactly built for multiple threads. Each thread needs its own separate copy of each data structure, but the dynarec has global variables everywhere. I'm thinking of literally copy-pasting the code. So basically, if you didn't understand any of that, I've been rewriting a lot of code, and at least, in theory, it should give a big speed boost.
Frequently Asked Questions (FAQ):
Do not use save states as long term saves. Use in game saves instead. There is no guarantee that save states will work in later updates. In game saves will work. If someone emails me complaining that save states are broken in a later update, I'll just laugh and delete it.
Please email me if you have any problems. I can't really fix bugs if you just post a 1 star review saying it's bad.
Other functions to be added
How to play?
Save your roms in the SD card and launch Dsoid. You will see a black screen showing the stuff in your device. This is the built in file explorer. Use the file explorer to navigate to your roms and select a rom to start playing! The touch button at the middle top of your screen enable/disable on screen control buttons. Refer to the FAQ should you have questions.
Based off of desmume and exophase's dynarec
Email for source