mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
55 lines
1.2 KiB
C++
55 lines
1.2 KiB
C++
.macro song label:req, music_player:req, unknown:req
|
|
.4byte \label
|
|
.2byte \music_player
|
|
.2byte \unknown
|
|
.endm
|
|
|
|
.macro music_player info_struct:req, track_struct:req, num_tracks:req, unknown:req
|
|
.4byte \info_struct
|
|
.4byte \track_struct
|
|
.byte \num_tracks
|
|
.space 1 @ Padding
|
|
.2byte \unknown
|
|
.endm
|
|
|
|
.macro voice_group label:req, starting_note
|
|
.align 2
|
|
.global voicegroup_base_\label
|
|
voicegroup_base_\label:
|
|
.ifb \starting_note
|
|
.global voicegroup_\label
|
|
voicegroup_\label:
|
|
.else
|
|
.set voicegroup_\label, . - \starting_note * 0xC
|
|
.global voicegroup_\label
|
|
.endif
|
|
.endm
|
|
|
|
.macro keysplit label:req, starting_note
|
|
.ifb \starting_note
|
|
.global keysplit_\label
|
|
keysplit_\label:
|
|
.set _last_note, 0
|
|
.else
|
|
.set keysplit_\label, . - \starting_note
|
|
.set _last_note, \starting_note
|
|
.endif
|
|
.set _last_split, 0
|
|
.endm
|
|
|
|
.macro split index:req, ending_note:req
|
|
.if \ending_note < _last_note
|
|
.if _last_split == 0
|
|
.error "split's ending_note earlier than previous keysplit's starting_note"
|
|
.else
|
|
.error "split's ending_note earlier than previous split's ending_note"
|
|
.endif
|
|
.else
|
|
.rept \ending_note - _last_note
|
|
.byte \index
|
|
.endr
|
|
.endif
|
|
.set _last_note, \ending_note
|
|
.set _last_split, 1
|
|
.endm
|