shithub: pokecrystal

Download patch

ref: 047aaff15b061f2af4e31af904c1ceaa6d7a4f86
parent: f6be64dc7e8eda93c5d88e7d7f13e19d3248fe27
author: IIMarckus <[email protected]>
date: Mon Sep 10 15:57:41 EDT 2012

Add the logic for selecting the battle music.

--- a/main.asm
+++ b/main.asm
@@ -5617,7 +5617,84 @@
 	db "ROCKET@"
 	db "MYSTICALMAN@"
 
-INCBIN "baserom.gbc",$2C41a,$30000 - $2C41a
+INCBIN "baserom.gbc",$2C41a,$2ee8f - $2C41a
+
+; XXX this is not the start of the routine
+	ld a, [$d22f] ; are we fighting a trainer?
+	and a
+	jr nz, .trainermusic
+	ld a, $72
+	ld hl, $6ea1
+	rst $8 ; XXX check region
+	ld a, e
+	and a
+	jr nz, .kantowild
+	ld de, $0029 ; johto daytime wild battle music
+	ld a, [$d269] ; check time of day
+	cp $2 ; nighttime?
+	jr nz, .done ; if no, then done
+	ld de, $004a ; johto nighttime wild battle music
+	jr .done
+.kantowild
+	ld de, $0008 ; kanto wild battle music
+	jr .done
+.trainermusic
+	ld de, $002f ; lance battle music
+	cp CHAMPION
+	jr z, .done
+	cp RED
+	jr z, .done
+	; really, they should have included admins and scientists here too...
+	ld de, $0031 ; rocket battle music
+	cp GRUNTM
+	jr z, .done
+	cp GRUNTF
+	jr z, .done
+	ld de, $0006 ; kanto gym leader battle music
+	ld a, $f
+	ld hl, $5123
+	rst $8 ; XXX check if kanto gym leader
+	jr c, .done
+	ld de, $002e ; johto gym leader battle music
+	ld a, $f
+	ld hl, $5128
+	rst $8 ; XXX check if johto gym leader / elite four member
+	jr c, .done
+	ld de, $0030 ; rival battle music
+	ld a, [$d22f]
+	cp RIVAL1
+	jr z, .done
+	cp RIVAL2
+	jr nz, .othertrainer
+	ld a, [$d231] ; which rival are we fighting?
+	cp $4
+	jr c, .done ; if it's not the fight inside Indigo Plateau, we're done
+	ld de, $002f ; rival indigo plateau battle music
+	jr .done
+
+.othertrainer
+	ld a, [$c2dc]
+	and a
+	jr nz, .linkbattle ; XXX link battle?
+	ld a, $72
+	ld hl, $6ea1
+	rst $8
+	ld a, e
+	and a
+	jr nz, .kantotrainer
+.linkbattle
+	ld de, $002a ; johto trainer battle music
+	jr .done
+.kantotrainer
+	ld de, $0007 ; kanto trainer battle music
+.done
+	call $3b97
+	pop bc
+	pop de
+	pop hl
+	ret
+
+INCBIN "baserom.gbc",$2ef18,$30000 - $2ef18
 
 SECTION "bankC",DATA,BANK[$C]