Snu
Member
note: i did not write this, and i know almost nothing about the DS, so don't go arguing any points with me.
this is from a reputable source who prefers to remain anonymous, and i cant guarantee any more contact with them.
QUOTE
For everyone in here wondering wether nintendo DS emulation is possible or not on the pandora, I believe it's perfectly possible. Here are some tips on how to do it which are based on common knowledge, and legally reverse-engineered information:
Everyone knows the DS runs on ARM9/ARM7, and the open specs of the machine are here:
http://nocash.emubase.de/gbatek.htm
Handling the ARM7:
The truth, though is that there is not any need to emulate the ARM7, since all nintendo DS games run pretty much the same ARM7 code, which handles sound, networking and some of the input. The protocol used to communicate ARM9<->ARM7 is also pretty standard and works through a 32k, swappable between both CPUs, shared memory area. Nintendo will probably release a Nintendo DS without ARM7 at some point, which contains a much simpler processor/firmware to handle what the ARM7 did, and without GBA compatibility.
So, in short ARM7 can be handled with HLE, intercepting the ipc area.
Handling the ARM9:
The ARM9 mainly does video and some math, through pretty high level registers similar to opengl API. I really don't know which CPU does the Pandora use, and the compatibility to the CPU in the DS. In the worst case, some interpreter work or dynamic recompiling will be needed.
In the best case, the ARM9 code can run natively in a virtual address space, and the register areas can be emulated by using memory protection (handle the registers at a pagefault).
So that's pretty much it! Hope it's useful.
this is from a reputable source who prefers to remain anonymous, and i cant guarantee any more contact with them.
QUOTE
For everyone in here wondering wether nintendo DS emulation is possible or not on the pandora, I believe it's perfectly possible. Here are some tips on how to do it which are based on common knowledge, and legally reverse-engineered information:
Everyone knows the DS runs on ARM9/ARM7, and the open specs of the machine are here:
http://nocash.emubase.de/gbatek.htm
Handling the ARM7:
The truth, though is that there is not any need to emulate the ARM7, since all nintendo DS games run pretty much the same ARM7 code, which handles sound, networking and some of the input. The protocol used to communicate ARM9<->ARM7 is also pretty standard and works through a 32k, swappable between both CPUs, shared memory area. Nintendo will probably release a Nintendo DS without ARM7 at some point, which contains a much simpler processor/firmware to handle what the ARM7 did, and without GBA compatibility.
So, in short ARM7 can be handled with HLE, intercepting the ipc area.
Handling the ARM9:
The ARM9 mainly does video and some math, through pretty high level registers similar to opengl API. I really don't know which CPU does the Pandora use, and the compatibility to the CPU in the DS. In the worst case, some interpreter work or dynamic recompiling will be needed.
In the best case, the ARM9 code can run natively in a virtual address space, and the register areas can be emulated by using memory protection (handle the registers at a pagefault).
So that's pretty much it! Hope it's useful.