Gameboy project week 3: A simple MIDI ROM

January 20th, 2013

nitromidi1 is a very simple Gameboy MIDI ROM. It can be used with an Arduinoboy or Nanoloop USB MIDI adapter. It’s not meant to be all that practically useful atm. Rather, I created it to have all the plumbing in place for future MIDI software.

It currently responds to the following things:

  • MIDI channel 1 only.
  • Gameboy pulse channel 1 only.
  • Note ons. (But currently not note offs!)
  • The typical “panic” button. (Channel mode messages $7B, all notes off and $78, all sound off.)
  • The pitch wheel, currently with a fixed range of +/-7 semitones.
  • CC 71/$47 which controls the pulse width of the wave.
  • CC 72/$48 which is a combined attack/release control, ie. the second nibble of the envelope byte. The control scans from short decay to long decay to constant volume output to slow rise to fast rise. In other word, the following envelope values mapped onto a knob: 1-7,8,F-9.
    As noted above, it doesn’t respond to note offs, so be careful with rising envelopes!
  • It has no GUI except a lines pattern indicating CPU usage. This is literally
    made by changing the background palette when the CPU is busy.

Have fun, and report any bugs/anomalies/feature requests.

Download nitromidi1

3 Responses to “Gameboy project week 3: A simple MIDI ROM”

  1. georg says:

    love the idea of the weekly project, what about a github repo of all the weekly projects source code? :)

  2. nitro2k01 says:

    The way these programs are written, I suspect it will lead to more questions about what some parts of the code are doing, alternatively questioning my sanity. I want the code to be somewhat clean if I’m going to put on public display. (Of course, anyone with a debugger can still have a look.)

  3. swiddcheese says:

    thank you for the midi love

Leave a Reply

If you'd rather contact me directly, please use the following e-mail address: It appears that you have Javascript disabled. Please enable it to see my e-mail address.