Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org
3DS's ARM9 processor emulation with qemu. Implemented devices :
Build:
./configure --disable-user --disable-gnutls --target-list=arm-softmmu
make
to compile with just arm support. SDL library required for LCD support, gcrypt required for crypto support.
To run a payload:
arm-softmmu/qemu-system-arm -kernel "path/to/payload.elf" -M ctr9
Debugging:
arm-softmmu/qemu-system-arm -S -gdb tcp:127.0.0.1:1234,ipv4 -kernel "path/to/payload.elf" -M ctr9
Optional support files:
3ds-data/sdmmc_info.bin - contains the csd and cid for the nand and sdcard
struct {
uint8_t nand_csd[16];
uint8_t nand_cid[16];
uint8_t sd_csd[16];
uint8_t sd_cid[16];
};
Key mapping:
3DS | PC |
---|---|
A | M |
B | N |
X | J |
Y | H |
RT | U |
LT | Y |
Dpad <-> arrow keys on the PC