Skip to content

How do Donkey Konga tracks work?

Donkey Konga 2 and Donkey Konga 3's songs are managed in two parts: as audio files and MIDI scores. The games organizes the metadata for the songs in the SongInfo.res file. In total, they both support up to 33 songs (not including the tutorial).

Songs

Format

Songs in Donkey Konga 2 and Donkey Konga 3 are stored as stereo DSP files in the score directory, a subdirectory of stream. There is no known limit to track sizes; however, Konga Beat has a soft limit of 90 minutes.

Metadata

To start off, this information is based on RadioTails's work on the ROMHacking.net forum back in 2013. In Donkey Konga 2 (US and EU) and Donkey Konga 3, song information is stored in the SongInfo.res file (inside the Resource directory). For example, here is Boombastic in the North American version of Donkey Konga 2 with comments:

#9
SONGNAME=Boombastic // Song title
FILENAME=09Boombastic // The filename for the song and scores.
OFFSET=0.8 // The delay before a song starts.
LENGTH=180 // Length of the track, but this does not appear to be used by the game. Adjusting this value did not have any observable effect.
PRICE=480 // The cost for unlocking the Gorilla version of the song.
1E=4 // 1P Monkey difficulty level
1H=6 // 1P Chimp difficulty level
1X=3 // 1P Gorilla difficulty level
2E=2 // 2P Monkey difficulty level
2H=6 // 2P Chimp difficulty level
2X=4 // 2P Gorilla difficulty level
4=4 // 4P difficulty level
B=3 // Battle difficulty level
C=5 // Challenge difficulty level
RUBY= // Text displayed over the title of the song
COMMENT=farewell version // Text displayed under the title of the song
GENRE=1 // The song's genre. Affects the background color of the song's card in the song selection screen.

INFO

Any text that appears in the game (song name, ruby, and comment) must use Shift JIS compatible characters.

Scores

Scores are managed as MIDI files. Every MIDI files begins with important information about the song. For example, this is Predictable in the North American version of Donkey Konga 2:

PlayerTimePropertyValueAdditional Information
00Sequence/Track NamePredictableTitle of the song
00Copyright NoticeonodaName of the author who composed the score
00System Exclusive10, 125, 68, 75, 5, 8, 46, 0, 0, 70, 247See System Exclusive Data
00Time Signature4, 4, 24, 8Song's starting time signature
00Set Tempo357142Song's starting tempo
10Program Change0, 0The start of Player 1's notes
19600Note On9, 64, 127Start of a left note (64)
19600Note Off9, 64, 127End of a left note (64)

System Exclusive Data

Some of the data stored in System Exclusive (sysex) remains a bit of a mystery. From what I can figure out so far, the values correspond to the following:

  • 10 - Start of the sysex byte array.
  • 125 / 7D - Manufacturer ID. Normally, 7D is reserved for private, non-commercial use, but is used as the ID for the scores included in retail copies of Donkey Konga 2 and Donkey Konga 3, as well as scores exported by Konga Beat for consistency.
  • 68, 75, 5, 8, 46 - Assuming the files adhere to the MIDI spec, the first two bytes are part of the manufacturer ID. However, I'm not sure. Some combination of these bytes contributes to the offset of the notes in the retail scores. I haven't been able to discern the meaning of these values quite yet.
  • 0 - Mode. Used only by 1P and 2P songs.
  • 0 - Difficulty level (0 is Monkey, 1 is Chimp, 2 is Gorilla). Used only by 1P and 2P songs.
  • 70 - Speed
  • 247 - End of sysex byte array