Nintendo DS Development
Versión en Español
blog
This is my page about Nintendo DS development.
All NDS C sources are written for the devkitPro toolchain.
avelinoherrera@gmail.com
Software
- DS Delay Line is a simple sound delay line. This homebrew delays the mic input signal to the speakers. The delay time can be adjusted from 0 (no delay) to 7.8 seconds. The source here and the rom here (fixed a bug in sound timming).
Hardware
- It's is possible to build a simple MIDI IO interface for the DSerial Edge using a 6N136 optocoupler, a 200 ohm resistor, a 4K7 resistor and a simple 1N4148 diode :-)
- I have connected the GBA cartridge port (Slot-2) to a 74CH373 latch using a 74HC00 NAND gate so with "compatible mode" SRAM transfers (0A000000h) we can write bits in the latch for general purpose output.
The circuit can be modified to use only one D flip-flop. The 74HC74 (a dual D flip-flip with positive-edge trigger) can be used as a latch without any external gate connecting A16 (D0) to the D input and /CS2 to the clock input. My purpose is to build a MIDI out interface so I only need one output bit.
To access the SRAM we must to tell the NDS wich processor (either ARM7 or ARM9) will "owns" the GBA cartridge port: just use
WAIT_CR &= ~ARM7_OWNS_ROM
to bring the SRAM to ARM9 or WAIT_CR |= ARM7_OWNS_ROM
to bring SRAM area to ARM7. Now, writing into the SRAM area with *SRAM = data
(see libnds) will output the data on the circuit latch. NOTE: The 74CH373, the 74HC00 and the 74HC74 *MUST* be the HC models because of the 3V3 voltaje restriction.
- Starting from the previous circuit and modifying some resistors it is possible to implement a basic software controlled MIDI out interface. The next figure shows the electrical diagram of this simple modification.
Here is the example code used to test this mod. The UART simulation is done by ARM7 and the ARM9 sends the MIDI messages to the ARM7 using the NDS system FIFO.
Links and resources
This work is licensed under a Creative Commons License.