A very incomplete overview of useful information to get started with 3DS development. Please add anything that’s missing :)
- 3DBrew is probably the best resource for the 3DS hardware/software internals
- ARM11 MPCore Reference Manual
- ARM946E-S ™ Reference Manual
A list of a variety of homebrew applications and demos can be found on 3DBrew at Homebrew Applications. They can be used for testing Citra if you have no means of dumping and decrypting commercial games. Smea’s Ninjhax Starter Kit contains pre-compiled binaries of some of these applications.
Here are some tools useful for homebrew development:
- devkitARM - Toolchain geared toward compiling homebrew
- CTR User Library (ctrulib) - Library for writing usermode arm11 code for the 3DS
- picasso and nihstro - Assemblers for shader code for the PICA200 GPU used in the 3DS. nihstro also includes a disassembler.
- Aemstro - Older shader (dis)assembler. Nowadays picasso or nihstro should be preferred.
- Result code decoder (Python) - This Python script will (hopefully) decode any result codes you might encounter.
- 3DS Game Database - Contains data on all 3DS games, their title IDs, update versions, etc.
- Homebrew Libraries and Tools - 3DBrew page with more tools and libraries useful for development.