Skip to content

Game Boy to MIDI (and tracker) converters

Technical discussion which is not directly related to VGM files. Talk about Hardware and Software.

Moderator: Staff

Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

I know I haven't been on this website for years, but since then, I have learned a lot and I wanted to showcase some projects I have worked on, MC2MID, TT2MID, and GHXM.

These are the first three in a series of programs that convert music from Game Boy and Game Boy Color music to MIDI format, or in GHXM's case, XM (FastTracker II).

They can be found here, complete with source code:

MC2MID (Mark Cooksey (GB/GBC) to MIDI)
https://github.com/turboboy215/MC2MID

TT2MID (Tiertex (GB/GBC) to MIDI)
https://github.com/turboboy215/TT2MID

GHXM (GHX (Shin'en GBC) to XM)
https://github.com/turboboy215/GHXM

All three of these programs are command-line and work with ROMs by specifying the sound data's bank number in hexadecimal. (GBS files currently aren't supported, but might be in the future.)
For lists of games each program supports, check the "README.md" file for the programs. A list of the bank values for each known game can be found here: https://drive.google.com/file/d/13ROJE_ ... sp=sharing

What I plan on working on next is a MIDI converter for the AudioArts GBC driver and a MOD converter for Climax's "IMEDGBoy" format (I have already reverse-engineered these two formats).

If you have any requests for specific GB/GBC sound engines or games you would like to see a MIDI/tracker converter for, please let me know and I will look into it. (In the future, I will also figure out the architecture of other systems so I can work on converters for those as well.)
  • User avatar
  • ValleyBell Offline
  • Posts: 4936
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Re: Game Boy to MIDI (and tracker) converters

Post by ValleyBell »

That's really cool stuff!

I once thought about writing a "gb2mid" converter for Mark Cooksey's driver, but I never researched the sequence format.

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Update: Added AudioArts to MIDI converter:
https://github.com/turboboy215/AA2MID/tree/main

In my opinion, the AudioArts sound engine is one of the best-sounding, if not the best-sounding GBC sound engine.

Re: Game Boy to MIDI (and tracker) converters

Post by Sharrif001 »

This is interesting! Can it be used on games made by Japanese developers?

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Finally completed my Climax to MOD converter!
https://github.com/turboboy215/IMED2MOD/tree/main

It also works with the Game Gear format, since it's almost the same. Note that unlike other converters, this actually requires the individual "modules" to be extracted from the ROMs, and some games actually store all or most of them compressed using RNC/ProPack, so those need to be decompressed first (the compressor/decompressor can be found in the Devr's GB section, and needs to be run using DOSBox).

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Sharrif001 wrote: 2024-07-08, 19:28:41 This is interesting! Can it be used on games made by Japanese developers?
Yes, I do plan to add support for Japanese sound engines as well! After I complete my next converter, which is for Martin Walker's driver (most notably used in the first Earthworm Jim), I plan to start with one of the various drivers used in the Mega Man series, either Dr. Wily's Revenge or the Xtreme games.

Fun fact: the Game Gear version of Martin Walker's driver is used in Mega Man for Game Gear!

Re: Game Boy to MIDI (and tracker) converters

Post by Sharrif001 »

Nice! Hopefully someone can make some MIDIs of Rolan's Curse and Rolan's Curse 2 in the future! :D

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Sorry this took so long, but here's my next converter, MW2MID (Martin Walker):

https://github.com/turboboy215/MW2MID

This is a weird one - although it uses all four channels, the driver only supports three "voices" at a time, which is a sign that this was originally developed for the Commodore 64, since its sound chip only has three channels (which aren't limited to certain sounds unlike the Game Boy). Turns out that Speedball 2 uses an early version which differs significantly from that used in the final - this is also supported, but it's not currently perfect. Game Gear is also supported since its format is practically the same.

With so many converters, I'm starting to think that eventually I should absorb all of these into one big "GB2MID" project. However, this poses several issues relating to detection of the correct sound driver, which bank to use, etc. Maybe a database-driven approach like what SubDrag's (admittingly awesome) Nintendo 64 tools use would work the best, although this would also mean that public domain/homebrew and hacked ROMs wouldn't be supported, and Game Gear/Master System wouldn't be supported either. If you have an opinion about this, please let me know.

Next up will be Mega Man: Dr. Wily's Revenge - the first game developed in Japan to be supported.

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Completed my Mega Man converter:

https://github.com/turboboy215/MM12MID

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

DW2MID (David Whittaker):

https://github.com/turboboy215/DW2MID

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Just finished one that covers what might be the most important sound engine on the system, used in a number of first-party Nintendo games, including Super Mario Land 1 and 2:

https://github.com/turboboy215/NINT2MID

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

And another one! We're on a roll...

https://github.com/turboboy215/MM22MID

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Re: Game Boy to MIDI (and tracker) converters

Post by birdmanager6 »

Completed another one today:

https://github.com/turboboy215/IMGN2MID
Post Reply