Game Boy to MIDI (and tracker) converters
Technical discussion which is not directly related to VGM files. Talk about Hardware and Software.
Moderator: Staff
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
Game Boy to MIDI (and tracker) converters
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.)
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.)
- ValleyBell Offline
- Posts: 4936
- Joined: 2011-12-01, 20:20:07
- Location: Germany
Re: Game Boy to MIDI (and tracker) converters
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.
I once thought about writing a "gb2mid" converter for Mark Cooksey's driver, but I never researched the sequence format.
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
Re: Game Boy to MIDI (and tracker) converters
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.
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.
- Sharrif001 Offline
- Posts: 34
- Joined: 2020-02-10, 23:56:45
Re: Game Boy to MIDI (and tracker) converters
This is interesting! Can it be used on games made by Japanese developers?
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
Re: Game Boy to MIDI (and tracker) converters
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).
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).
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
Re: Game Boy to MIDI (and tracker) converters
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.Sharrif001 wrote: ↑2024-07-08, 19:28:41 This is interesting! Can it be used on games made by Japanese developers?
Fun fact: the Game Gear version of Martin Walker's driver is used in Mega Man for Game Gear!
- Sharrif001 Offline
- Posts: 34
- Joined: 2020-02-10, 23:56:45
Re: Game Boy to MIDI (and tracker) converters
Nice! Hopefully someone can make some MIDIs of Rolan's Curse and Rolan's Curse 2 in the future!
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
Re: Game Boy to MIDI (and tracker) converters
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.
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.
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
Re: Game Boy to MIDI (and tracker) converters
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
https://github.com/turboboy215/NINT2MID
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
Re: Game Boy to MIDI (and tracker) converters
Another one, OCN2MID:
https://github.com/turboboy215/OCN2MID
https://github.com/turboboy215/OCN2MID
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17
- birdmanager6 Offline
- Posts: 33
- Joined: 2015-12-08, 3:01:17