Blackbox Musicbox Sound System for Gameboy (BMSS)


Here is what I've found.  I've been in touch with the author, and he
has given me permission to distribute this document. 


$0000 - $000F: Sound Parameters
$0010 - $00FF: Waveform data
$0100 - $01FF: Pattern Orders for Channels 1-4
$0200 - $02FF: ABCDE for $20 Instruments, plus 3 extra bytes for expansion
$0300 - $03FF: Arpeggio Table
$0400 - $1FFF: Note/Instrument table


** SOUND PARAMETERS **

$0000: Tempo
$0001: NR50 ($77 for full volume, do not set bits 3 and 7, Vin only)
$0002: NR51 ($FF for all voices, both terminals, $A5 or $5A for stereo effect)

$0003: $00
$0004: $43 = C (Format check - C.M.)
$0005: $2E = .
$0006: $4D = M
$0007: $2E = .
$0008 - $000F: $00


** WAVEFORM DATA **

$0010 - $001F: Waveform $00
$0020 - $002F: Waveform $01
$0030 - $003F: Waveform $02
$0040 - $004F: Waveform $03
$0050 - $005F: Waveform $04
$0060 - $006F: Waveform $05
$0070 - $007F: Waveform $06
$0080 - $008F: Waveform $07
$0090 - $009F: Waveform $08
$00A0 - $00AF: Waveform $09
$00B0 - $00BF: Waveform $0A
$00C0 - $00CF: Waveform $0B
$00D0 - $00DF: Waveform $0C
$00E0 - $00EF: Waveform $0D
$00F0 - $00FF: Waveform $0E


** PATTERN ORDER **

$0100 - $013F: Pattern order for Channel 1 (Valid values $00 - $37, $FE, $FF)
$0140 - $017F: Pattern order for Channel 2 (Valid values $00 - $37)
$0180 - $01BF: Pattern order for Channel 3 (Valid values $00 - $37)
$01C0 - $01FF: Pattern order for Channel 4 (Valid values $00 - $37)


** INSTRUMENTS **

$0200 - $0207: ABCDE $01 ( What each means depends on the channel )
$0208 - $020F: ABCDE $02 ( Extra 3 bytes are for future expansion )
$0210 - $0217: ABCDE $03 
$0218 - $021F: ABCDE $04 
$0220 - $0227: ABCDE $05 
$0228 - $022F: ABCDE $06 
$0230 - $0237: ABCDE $07 
$0238 - $023F: ABCDE $08
$0240 - $0247: ABCDE $09
$0248 - $024F: ABCDE $0A
$0250 - $0257: ABCDE $0B
$0258 - $025F: ABCDE $0C
$0260 - $0267: ABCDE $0D
$0268 - $026F: ABCDE $0E
$0270 - $0277: ABCDE $0F
$0278 - $027F: ABCDE $10
$0280 - $0287: ABCDE $11
$0288 - $028F: ABCDE $12
$0290 - $0297: ABCDE $13
$0298 - $029F: ABCDE $14
$02A0 - $02A7: ABCDE $15
$02A8 - $02AF: ABCDE $16
$02B0 - $02B7: ABCDE $17
$02B8 - $02BF: ABCDE $18
$02C0 - $02C7: ABCDE $19
$02C8 - $02CF: ABCDE $1A
$02D0 - $02D7: ABCDE $1B
$02D8 - $02DF: ABCDE $1C
$02E0 - $02E7: ABCDE $1D
$02E8 - $02EF: ABCDE $1E
$02F0 - $02F7: ABCDE $1F
$02F8 - $02FF: ABCDE $20

(Channel 1: A - NR10, B - NR11, C - NR12, D - bit 6 of NR14, E - Arpeggio pointer)
(Channel 2: A - Unused/Ignored, B - NR21, C - NR22, D - bit 6 of NR24, E - Arpeggio pointer)
(Channel 3: A - Waveform pointer, B - NR31, C - NR32, D - bit 6 of NR34, E - Arpeggio pointer)
(Channel 4: A - NR43, B - NR41, C - NR42, D - bit 6 of NR44, E - Unused/Ignored)


** ARPEGGIO TABLE **

$0300 - $03FF: Arpeggio Table
$00 - Do nothing, $01 - $7f: add to base note, $80: Jump, $81 - $FF: subtract from base note


** PATTERNS **

$0400 - $047F: Note Set for Pattern $00: 
$0480 - $04FF: Note Set for Pattern $01: ( Valid values for Note: $00 - $48 )
$0500 - $057F: Note Set for Pattern $02: ( Valid values for Instrument: $00 - $20 )
$0580 - $05FF: Note Set for Pattern $03: ( Note $00 = nothing, Instrument $00 = empty )
$0600 - $067F: Note Set for Pattern $04: ( Format: Note/Instrument )
$0680 - $06FF: Note Set for Pattern $05: ( See 'GB Sound Table' )
$0700 - $077F: Note Set for Pattern $06: 
$0780 - $07FF: Note Set for Pattern $07: 
$0800 - $087F: Note Set for Pattern $08: 
$0880 - $08FF: Note Set for Pattern $09: 
$0900 - $097F: Note Set for Pattern $0A: 
$0980 - $09FF: Note Set for Pattern $0B: 
$0A00 - $0A7F: Note Set for Pattern $0C: 
$0A80 - $0AFF: Note Set for Pattern $0D: 
$0B00 - $0B7F: Note Set for Pattern $0E: 
$0B80 - $0BFF: Note Set for Pattern $0F: 
$0C00 - $0C7F: Note Set for Pattern $10: 
$0C80 - $0CFF: Note Set for Pattern $11: 
$0D00 - $0D7F: Note Set for Pattern $12: 
$0D80 - $0DFF: Note Set for Pattern $13: 
$0E00 - $0E7F: Note Set for Pattern $14: 
$0E80 - $0EFF: Note Set for Pattern $15: 
$0F00 - $0F7F: Note Set for Pattern $16: 
$0F80 - $0FFF: Note Set for Pattern $17: 
$1000 - $107F: Note Set for Pattern $18: 
$1080 - $10FF: Note Set for Pattern $19: 
$1100 - $117F: Note Set for Pattern $1A: 
$1180 - $11FF: Note Set for Pattern $1B: 
$1200 - $127F: Note Set for Pattern $1C: 
$1280 - $12FF: Note Set for Pattern $1D: 
$1300 - $137F: Note Set for Pattern $1E: 
$1380 - $13FF: Note Set for Pattern $1F: 
$1400 - $147F: Note Set for Pattern $20: 
$1480 - $14FF: Note Set for Pattern $21: 
$1500 - $157F: Note Set for Pattern $22: 
$1580 - $15FF: Note Set for Pattern $23: 
$1600 - $167F: Note Set for Pattern $24: 
$1680 - $16FF: Note Set for Pattern $25: 
$1700 - $177F: Note Set for Pattern $26: 
$1780 - $17FF: Note Set for Pattern $27: 
$1800 - $187F: Note Set for Pattern $28: 
$1880 - $18FF: Note Set for Pattern $29: 
$1900 - $197F: Note Set for Pattern $2A: 
$1980 - $19FF: Note Set for Pattern $2B: 
$1A00 - $1A7F: Note Set for Pattern $2C: 
$1A80 - $1AFF: Note Set for Pattern $2D: 
$1B00 - $1B7F: Note Set for Pattern $2E: 
$1B80 - $1BFF: Note Set for Pattern $2F: 
$1C00 - $1C7F: Note Set for Pattern $30: 
$1C80 - $1CFF: Note Set for Pattern $31: 
$1D00 - $1D7F: Note Set for Pattern $32: 
$1D80 - $1DFF: Note Set for Pattern $33: 
$1E00 - $1E7F: Note Set for Pattern $34: 
$1E80 - $1EFF: Note Set for Pattern $35: 
$1F00 - $1F7F: Note Set for Pattern $36: 
$1F80 - $1FFF: Note Set for Pattern $37: 

 
      GB Sound Table
      --------------      

C--3: $01 	 	C--6: $25
C#-3: $02	 	C#-6: $26
D--3: $03	 	D--6: $27
D#-3: $04	 	D#-6: $28
E--3: $05	 	E--6: $29
F--3: $06	 	F--6: $2A
F#-3: $07	 	F#-6: $2B
G--3: $08	 	G--6: $2C
G#-3: $09	 	G#-6: $2D
A--3: $0A	 	A--6: $2E
A#-3: $0B	 	A#-6: $2F
B--3: $0C	 	B--6: $30
C--4: $0D		C--7: $31
C#-4: $0E	 	C#-7: $32
D--4: $0F	 	D--7: $33
D#-4: $10	 	D#-7: $34
E--4: $11	 	E--7: $35
F--4: $12	 	F--7: $36
F#-4: $13	 	F#-7: $37
G--4: $14	 	G--7: $38
G#-4: $15	 	G#-7: $39
A--4: $16	 	A--7: $3A
A#-4: $17		A#-7: $3B
B--4: $18	 	B--7: $3C
C--5: $19	 	C--8: $3D
C#-5: $1A	 	C#-8: $3E
D--5: $1B	 	D--8: $3F
D#-5: $1C	 	D#-8: $40
E--5: $1D	 	E--8: $41
F--5: $1E	 	F--8: $42
F#-5: $1F	 	F#-8: $43
G--5: $20	 	G--8: $44
G#-5: $21	 	G#-8: $45
A--5: $22	 	A--8: $46
A#-5: $23	 	A#-8: $47
B--5: $24	 	B--8: $48

These are the values you use for the patterns, starting at $0480
(I like to leave $0400 - $047F filled with zero for an empty pattern)
So, if you want to play C-5 (Middle C) with the 3rd instrument, the
value at $0480/81 would be $1903


Special thanks go out to BlackBox for providing this free music system.
You can check out BlackBox at http://blackbox.n3.net 


Questions/corrections about this document:
<ts_garp@ownzjoo.net>
