ref: 725cee7371f1b1862225e940e5c7271dc9444a1c
parent: 4e3ed078f9c8c486015d5c00e8d158671d3f740d
author: mid-kid <esteve.varela@gmail.com>
date: Wed Nov 21 07:12:22 EST 2018
Define first_music_cmd This replaces the uses of $d0 in the audio engine with proper constants.
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -1136,9 +1136,9 @@
ParseMusic:
; parses until a note is read or the song is ended
call GetMusicByte ; store next byte in a
- cp endchannel_cmd ; is the song over?
+ cp endchannel_cmd
jr z, .endchannel
- cp $d0 ; is it a note?
+ cp first_music_cmd
jr c, .readnote
; then it's a command
.readcommand
@@ -1350,7 +1350,7 @@
; reload command
ld a, [wCurMusicByte]
; get command #
- sub $d0 ; first command
+ sub first_music_cmd
ld e, a
ld d, 0
; seek command pointer
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -24,11 +24,11 @@
const CHAN3 ; 2
const CHAN4 ; 3
NUM_MUSIC_CHANS EQU const_value
-NUM_NOISE_CHANS EQU const_value
const CHAN5 ; 4
const CHAN6 ; 5
const CHAN7 ; 6
const CHAN8 ; 7
+NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
NUM_CHANNELS EQU const_value
; channel_struct members (see macros/wram.asm)
--- a/macros/scripts/audio.asm
+++ b/macros/scripts/audio.asm
@@ -21,12 +21,13 @@
; MusicCommands indexes (see audio/engine.asm)
enum_start $d8
+first_music_cmd EQU __enum__ + -8
- enum notetype_cmd ; $d8
octave: MACRO
- db notetype_cmd - (\1)
+ db first_music_cmd + 8 - (\1)
ENDM
+ enum notetype_cmd ; $d8
notetype: MACRO
db notetype_cmd
db \1 ; note_length