This emulator is still in DEVELOPMENT PHASE.
Some games work and are playable, others have broken graphics, others crash almost immediately.
- ARM
- Most opcodes implemented in both ARM and Thumb mode
- Disassemly for debugging support
- Correct cycle counting
- Correct handling of miasligned memory addresses
- Preliminar JIT (not fully working yet)
- 2D: BG layers
- Text mode (16/256 colors, scrolling)
- Affine modes (16bit bgmap, 8bit bitmap, direct bitmap)
- Different map sizes
- Priorities
- Extended palettes
- 2D: OBJ (sprites)
- Normal sprites
- Different sizes
- Extended palettes
- Bitmaps
- Affine (rotozoom)
- 2D: advanced modes
- VRAM display mode
- 2D: misc features
- Capturing: only basic support (normal BG+OBJ capture)
- Master brightness
- Window (OBJ and BG)
- Color special effects
- 3D: geometry processor
- Most commands implemented
- Accurate timing
- 3D: rasterizer
- Quadrangle splitting
- Backface culling
- Triangle rasterization
- All different texture formats
- Texture perspective correction
- Clipping
- Lighting and materials (with bugs...)
- Toon shading
- Sound
- PCM channels
- Noise
- 2D
- Mosaic
- 3D
- Tons of small fixes
- Light perspective corrections
- Edge marking
- Fog
- Sound
- Capture (also for reverbs)
- Mic input
- Emulator features
- Savestates
- Replays
To compile, you must clone into a ndsemu
subdirectory:
git clone https://github.com/rasky/ndsemu $GOPATH/src/ndsemu
cd $GOPATH/src/ndsemu
go get
go build
You need access to an official NDS BIOS and firmware. Put them within a "bios" subdirectory, like this:
ndsemu
|---bios
|---- firmware.bin
|---- biosnds7.rom
|---- biodnds9.rom
At this point, you can just run it with:
./ndsemu <path-to-your-rom-file>