summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuroiIeWa5Da <tyuki@adu.me>2012-01-20 23:41:08 -0600
committerKuroiIeWa5Da <tyuki@adu.me>2012-01-20 23:41:08 -0600
commitc0aea369dabf0849e3d1cd54ddeeabc9941e925e (patch)
tree0d1a8a5a641c68e41d98f50df75fb9d74feecf05
parentfe1239fd8f7baf70e4734db07c8d40b66bd963e7 (diff)
Experimental change for actual music data
hg-commit-id: 57a01bf5d4f1
-rw-r--r--common.asm30
-rw-r--r--constants.asm130
2 files changed, 158 insertions, 2 deletions
diff --git a/common.asm b/common.asm
index 2de9759a..5c02ed61 100644
--- a/common.asm
+++ b/common.asm
@@ -2970,7 +2970,6 @@ SECTION "bank2",DATA,BANK[$2]
INCBIN "baserom.gbc",$8000,$822E - $8000
;Music Headers
-
;Pallet Town
PalletTown_mh: ;0x822E - 0x8236
db $80
@@ -3177,7 +3176,34 @@ INCBIN "baserom.gbc",$82FD,$9ba3 - $82FD
;Pokemon Healed Music
PkmnHealed_md_1: ;9BA3 - 9BC3
-INCBIN "baserom.gbc",$9ba3,$9bc4 - $9ba3
+;INCBIN "baserom.gbc",$9ba3,$9bc4 - $9ba3
+
+;Setup
+ mus_tempo $0, $90
+ mus_volume $77
+ mus_duty $2
+ db $E8
+ mus_vel $8, $1
+
+;Song
+ mus_note noteRst, note8
+ db $EB, $00
+ mus_note noteE, note2_4
+ mus_note noteB, note8
+ db $EB, $00
+ mus_note noteF, note4_16
+ mus_note noteB, note8
+ db $EB, $00
+ mus_note noteE, note4_16
+ mus_note noteE, note8
+ mus_note noteRst, note4
+ db $EB, $00
+ mus_note noteD#, note2_4
+ mus_note noteE, note4
+ db $EB, $00
+ mus_note noteE, note2_4
+ mus_note noteB, note4
+ mus_end
PkmnHealed_md_2: ;9BC4 - 9BD1
INCBIN "baserom.gbc",$9bc4,$9bd2 - $9bc4
diff --git a/constants.asm b/constants.asm
index 494e133e..097777e9 100644
--- a/constants.asm
+++ b/constants.asm
@@ -2576,3 +2576,133 @@ BRUNOS_ROOM_WIDTH EQU $05
; Agatha_h map_id=247
AGATHAS_ROOM_HEIGHT EQU $06
AGATHAS_ROOM_WIDTH EQU $05
+
+;Sound Constants (Copied from pkms.asm with modifications)
+MUSIC EQU 0
+SFX EQU 4
+CH1 EQU 0
+CH2 EQU 1
+CH3 EQU 2
+CH4 EQU 3
+
+;Note Pitch
+noteC EQU $0
+noteC# EQU $1
+noteD EQU $2
+noteD# EQU $3
+noteE EQU $4
+noteF EQU $5
+noteF# EQU $6
+noteG EQU $7
+noteG# EQU $8
+noteA EQU $9
+noteA# EQU $A
+noteB EQU $B
+noteRst EQU $C
+
+;Note Delay
+note16 EQU $0 ;1/16
+note8 EQU $1 ;1/8
+note8_16 EQU $2 ;1/8 + 1/16
+note4 EQU $3 ;1/4
+note4_16 EQU $4 ;1/4 + 1/16
+note4_8 EQU $5 ;1/4 + 1/8
+note4_8_16 EQU $6 ;1/4 + 1/8 + 1/16
+note2 EQU $7 ;1/2
+note2_16 EQU $8 ;1/2 + 1/16
+note2_8 EQU $9 ;1/2 + 1/8
+note2_8_16 EQU $A ;1/2 + 1/8 + 1/16
+note2_4 EQU $B ;1/2 + 1/4
+note2_4_16 EQU $C ;1/2 + 1/4 + 1/16
+note2_4_8 EQU $D ;1/2 + 1/4 + 1/8
+note2_4_8_16 EQU $E ;1/2 + 1/4 + 1/8 + 1/16
+note1 EQU $F ;1
+
+;Drum
+dNote EQU $B0
+dRst EQU $C0
+d5d3Spd EQU $D4
+d4d3Spd EQU $D8
+dNormSpd EQU $DC
+d2Spd EQU $D0
+
+; octaves
+oct0 EQU $E7
+oct1 EQU $E6
+oct2 EQU $E5
+oct3 EQU $E4
+oct4 EQU $E3
+oct5 EQU $E2
+oct6 EQU $E1
+oct7 EQU $E0
+
+;Write a music note
+;format: mus_note pitch delay
+mus_note: MACRO
+ db ((\1 << 4) | \2)
+ENDM
+
+; set velocity/note fade (\1 is velocity, \2 is note length, both 0-15)
+; format: mus_vel vel, length
+mus_vel: MACRO
+ db $DC
+ db ((\1 << 4) | \2)
+ENDM
+
+; stop sound
+; format: mus_end
+mus_end: MACRO
+ db $FF
+ENDM
+
+; ???
+; format: mus_E8
+mus_E8: MACRO
+ db $E8
+ENDM
+
+; set modulation (\1 is delay, \2 is depth, \3 is rate)
+; format: mus_mod delay, depth, rate
+mus_mod: MACRO
+ db $EA
+ db \1
+ db ((\2 << 4) | \3)
+ENDM
+
+; set duty cycle (\1: 0 = 12.5%, 1 = 25%, 2 = 50%, 3 = 75%)
+; format: mus_duty duty
+mus_duty: MACRO
+ db $EC
+ db \1
+ENDM
+
+; set music tempo (\1 is divider, \2 is modifier)
+; format: mus_tempo divider, modifier
+mus_tempo: MACRO
+ db $ED
+ db \1
+ db \2
+ENDM
+
+; set volume (\1 is volume)
+; format: mus_volume volume
+; (may actually be panning?)
+mus_volume: MACRO
+ db $F0
+ db \1
+ENDM
+
+; call \1
+; format: mus_call offset
+mus_call: MACRO
+ db $FD
+ dw ((\1 % $4000) + ((\1 >= $4000) * $4000))
+ENDM
+
+; jump \1 \2
+; format: mus_jump offset loop
+mus_jump: MACRO
+ db $FE
+ db \2
+ dw ((\1 % $4000) + ((\1 >= $4000) * $4000))
+ENDM