shithub: pokecrystal

Download patch

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