Merge pull request #13 from ProjectRevoTPP/sound

decompile sound.c
This commit is contained in:
Marcus Huderle
2018-10-05 23:21:03 -05:00
committed by GitHub
30 changed files with 730 additions and 1654 deletions
+16 -16
View File
@@ -272,7 +272,7 @@ _080726EE:
beq _08072706
cmp r8, r0
bne _080726EC
ldr r0, _0807272C @ =gMPlay_BGM
ldr r0, _0807272C @ =gMPlayInfo_BGM
movs r2, 0x80
bl m4aMPlayVolumeControl
_08072706:
@@ -295,7 +295,7 @@ _08072706:
bx r0
.align 2, 0
_08072728: .4byte 0x0000ffff
_0807272C: .4byte gMPlay_BGM
_0807272C: .4byte gMPlayInfo_BGM
_08072730: .4byte gUnknown_2022984
_08072734: .4byte gUnknown_2022986
_08072738: .4byte gUnknown_2022988
@@ -868,9 +868,9 @@ _08072B62:
_08072B6C: .4byte gUnknown_2037F12
_08072B70: .4byte gUnknown_2037EE0
_08072B74:
ldr r0, _08072BE8 @ =gMPlay_SE1
ldr r0, _08072BE8 @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _08072BEC @ =gMPlay_SE2
ldr r0, _08072BEC @ =gMPlayInfo_SE2
bl m4aMPlayStop
_08072B80:
ldr r1, _08072BF0 @ =gUnknown_2037F12
@@ -905,7 +905,7 @@ _08072BB2:
mov r1, r8
cmp r1, 0
bne _08072BDC
ldr r0, _08072C00 @ =gMPlay_BGM
ldr r0, _08072C00 @ =gMPlayInfo_BGM
ldr r1, _08072BF4 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -923,13 +923,13 @@ _08072BDC:
pop {r0}
bx r0
.align 2, 0
_08072BE8: .4byte gMPlay_SE1
_08072BEC: .4byte gMPlay_SE2
_08072BE8: .4byte gMPlayInfo_SE1
_08072BEC: .4byte gMPlayInfo_SE2
_08072BF0: .4byte gUnknown_2037F12
_08072BF4: .4byte 0x0000ffff
_08072BF8: .4byte gUnknown_83ACC08
_08072BFC: .4byte gUnknown_2037EEE
_08072C00: .4byte gMPlay_BGM
_08072C00: .4byte gMPlayInfo_BGM
_08072C04: .4byte gUnknown_2037EE1
thumb_func_end sub_8072B08
@@ -3652,17 +3652,17 @@ ScriptCmd_waitsound: @ 80740E0
lsrs r0, 16
cmp r0, 0x5A
bls _0807412E
ldr r0, _08074120 @ =gMPlay_SE1
ldr r0, _08074120 @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _08074124 @ =gMPlay_SE2
ldr r0, _08074124 @ =gMPlayInfo_SE2
bl m4aMPlayStop
strh r5, [r4]
b _08074152
.align 2, 0
_08074118: .4byte gUnknown_2037EE3
_0807411C: .4byte gUnknown_2037F12
_08074120: .4byte gMPlay_SE1
_08074124: .4byte gMPlay_SE2
_08074120: .4byte gMPlayInfo_SE1
_08074124: .4byte gMPlayInfo_SE2
_08074128:
ldr r1, _08074138 @ =gUnknown_2037F12
movs r0, 0
@@ -4088,9 +4088,9 @@ _08074454: .4byte gSprites
thumb_func_start sub_8074458
sub_8074458: @ 8074458
push {lr}
ldr r0, _08074474 @ =gMPlay_SE1
ldr r0, _08074474 @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _08074478 @ =gMPlay_SE2
ldr r0, _08074478 @ =gMPlayInfo_SE2
bl m4aMPlayStop
ldr r1, _0807447C @ =gUnknown_2037ED4
ldr r0, [r1]
@@ -4099,8 +4099,8 @@ sub_8074458: @ 8074458
pop {r0}
bx r0
.align 2, 0
_08074474: .4byte gMPlay_SE1
_08074478: .4byte gMPlay_SE2
_08074474: .4byte gMPlayInfo_SE1
_08074478: .4byte gMPlayInfo_SE2
_0807447C: .4byte gUnknown_2037ED4
thumb_func_end sub_8074458
+6 -6
View File
@@ -381,7 +381,7 @@ _0803A936:
lsrs r0, 24
cmp r0, 0x1
bne _0803A988
ldr r0, _0803A978 @ =gMPlay_BGM
ldr r0, _0803A978 @ =gMPlayInfo_BGM
bl m4aMPlayContinue
b _0803A988
.align 2, 0
@@ -392,9 +392,9 @@ _0803A968: .4byte SpriteCallbackDummy
_0803A96C: .4byte gUnknown_2024018
_0803A970: .4byte 0x000027f9
_0803A974: .4byte gBattleTypeFlags
_0803A978: .4byte gMPlay_BGM
_0803A978: .4byte gMPlayInfo_BGM
_0803A97C:
ldr r0, _0803A9B4 @ =gMPlay_BGM
ldr r0, _0803A9B4 @ =gMPlayInfo_BGM
ldr r1, _0803A9B8 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -424,7 +424,7 @@ _0803A9AA:
pop {r0}
bx r0
.align 2, 0
_0803A9B4: .4byte gMPlay_BGM
_0803A9B4: .4byte gMPlayInfo_BGM
_0803A9B8: .4byte 0x0000ffff
_0803A9BC: .4byte gUnknown_2024018
_0803A9C0: .4byte gActiveBattler
@@ -1078,7 +1078,7 @@ sub_803AEDC: @ 803AEDC
lsls r0, 24
cmp r0, 0
bne _0803AF14
ldr r0, _0803AF20 @ =gMPlay_BGM
ldr r0, _0803AF20 @ =gMPlayInfo_BGM
ldr r1, _0803AF24 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -1090,7 +1090,7 @@ _0803AF14:
.align 2, 0
_0803AF18: .4byte gUnknown_2024018
_0803AF1C: .4byte gActiveBattler
_0803AF20: .4byte gMPlay_BGM
_0803AF20: .4byte gMPlayInfo_BGM
_0803AF24: .4byte 0x0000ffff
thumb_func_end sub_803AEDC
+6 -6
View File
@@ -394,7 +394,7 @@ _08035CD0:
ands r0, r1
cmp r0, 0
beq _08035DA4
ldr r0, _08035DA0 @ =gMPlay_BGM
ldr r0, _08035DA0 @ =gMPlayInfo_BGM
bl m4aMPlayContinue
b _08035DB0
.align 2, 0
@@ -405,9 +405,9 @@ _08035D90: .4byte SpriteCallbackDummy
_08035D94: .4byte gUnknown_2024018
_08035D98: .4byte 0x000027f9
_08035D9C: .4byte gBattleTypeFlags
_08035DA0: .4byte gMPlay_BGM
_08035DA0: .4byte gMPlayInfo_BGM
_08035DA4:
ldr r0, _08035DD8 @ =gMPlay_BGM
ldr r0, _08035DD8 @ =gMPlayInfo_BGM
ldr r1, _08035DDC @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -435,7 +435,7 @@ _08035DD2:
pop {r0}
bx r0
.align 2, 0
_08035DD8: .4byte gMPlay_BGM
_08035DD8: .4byte gMPlayInfo_BGM
_08035DDC: .4byte 0x0000ffff
_08035DE0: .4byte gUnknown_2024018
_08035DE4: .4byte gActiveBattler
@@ -1074,7 +1074,7 @@ sub_80362E8: @ 80362E8
lsls r0, 24
cmp r0, 0
bne _08036320
ldr r0, _0803632C @ =gMPlay_BGM
ldr r0, _0803632C @ =gMPlayInfo_BGM
ldr r1, _08036330 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -1086,7 +1086,7 @@ _08036320:
.align 2, 0
_08036324: .4byte gUnknown_2024018
_08036328: .4byte gActiveBattler
_0803632C: .4byte gMPlay_BGM
_0803632C: .4byte gMPlayInfo_BGM
_08036330: .4byte 0x0000ffff
thumb_func_end sub_80362E8
+8 -8
View File
@@ -2775,7 +2775,7 @@ _0802F934:
ands r0, r1
cmp r0, 0
beq _0802F9D0
ldr r0, _0802F9CC @ =gMPlay_BGM
ldr r0, _0802F9CC @ =gMPlayInfo_BGM
bl m4aMPlayContinue
b _0802F9DC
.align 2, 0
@@ -2786,9 +2786,9 @@ _0802F9BC: .4byte SpriteCallbackDummy
_0802F9C0: .4byte gUnknown_2024018
_0802F9C4: .4byte 0x000027f9
_0802F9C8: .4byte gBattleTypeFlags
_0802F9CC: .4byte gMPlay_BGM
_0802F9CC: .4byte gMPlayInfo_BGM
_0802F9D0:
ldr r0, _0802FA38 @ =gMPlay_BGM
ldr r0, _0802FA38 @ =gMPlayInfo_BGM
ldr r1, _0802FA3C @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -2840,7 +2840,7 @@ _0802FA32:
pop {r0}
bx r0
.align 2, 0
_0802FA38: .4byte gMPlay_BGM
_0802FA38: .4byte gMPlayInfo_BGM
_0802FA3C: .4byte 0x0000ffff
_0802FA40: .4byte gBattlerPartyIndexes
_0802FA44: .4byte gActiveBattler
@@ -3153,7 +3153,7 @@ sub_802FCAC: @ 802FCAC
lsls r0, 24
cmp r0, 0
bne _0802FCFA
ldr r0, _0802FD08 @ =gMPlay_BGM
ldr r0, _0802FD08 @ =gMPlayInfo_BGM
ldr r1, _0802FD0C @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -3176,7 +3176,7 @@ _0802FCFA:
.align 2, 0
_0802FD00: .4byte gUnknown_2024018
_0802FD04: .4byte gActiveBattler
_0802FD08: .4byte gMPlay_BGM
_0802FD08: .4byte gMPlayInfo_BGM
_0802FD0C: .4byte 0x0000ffff
_0802FD10: .4byte gBattlerPartyIndexes
_0802FD14: .4byte gPlayerParty
@@ -3291,7 +3291,7 @@ c3_0802FDF4: @ 802FDF4
lsls r0, 24
cmp r0, 0
bne _0802FE16
ldr r0, _0802FE1C @ =gMPlay_BGM
ldr r0, _0802FE1C @ =gMPlayInfo_BGM
ldr r1, _0802FE20 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -3303,7 +3303,7 @@ _0802FE16:
pop {r0}
bx r0
.align 2, 0
_0802FE1C: .4byte gMPlay_BGM
_0802FE1C: .4byte gMPlayInfo_BGM
_0802FE20: .4byte 0x0000ffff
thumb_func_end c3_0802FDF4
+4 -4
View File
@@ -676,9 +676,9 @@ mplay_80342A4: @ 80342A4
ldrb r0, [r0, 0x8]
cmp r0, 0x1D
bls _080342F0
ldr r0, _080342FC @ =gMPlay_SE1
ldr r0, _080342FC @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _08034300 @ =gMPlay_SE2
ldr r0, _08034300 @ =gMPlayInfo_SE2
bl m4aMPlayStop
_080342EC:
cmp r5, 0
@@ -689,8 +689,8 @@ _080342F0:
.align 2, 0
_080342F4: .4byte gUnknown_2024018
_080342F8: .4byte gActiveBattler
_080342FC: .4byte gMPlay_SE1
_08034300: .4byte gMPlay_SE2
_080342FC: .4byte gMPlayInfo_SE1
_08034300: .4byte gMPlayInfo_SE2
_08034304:
ldr r0, _0803431C @ =gUnknown_2024018
ldr r0, [r0]
+1 -1
View File
@@ -154,7 +154,7 @@ _080F4D30:
cmp r0, 0
bne _080F4D50
movs r0, 0x5
bl sub_8071BC4
bl PlayFanfareByFanfareNum
ldr r0, _080F4D68 @ =gTasks
lsls r1, r4, 2
adds r1, r4
+4 -4
View File
@@ -2151,7 +2151,7 @@ _080F2F0C:
cmp r0, 0
beq _080F2F26
bl StopCryAndClearCrySongs
ldr r0, _080F2F2C @ =gMPlay_BGM
ldr r0, _080F2F2C @ =gMPlayInfo_BGM
ldr r1, _080F2F30 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -2161,7 +2161,7 @@ _080F2F26:
str r0, [r4]
b _080F2FD8
.align 2, 0
_080F2F2C: .4byte gMPlay_BGM
_080F2F2C: .4byte gMPlayInfo_BGM
_080F2F30: .4byte 0x0000ffff
_080F2F34: .4byte sub_80F2FEC
_080F2F38:
@@ -2174,7 +2174,7 @@ _080F2F38:
cmp r0, 0
beq _080F2F5A
bl StopCryAndClearCrySongs
ldr r0, _080F2F6C @ =gMPlay_BGM
ldr r0, _080F2F6C @ =gMPlayInfo_BGM
ldr r1, _080F2F70 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -2189,7 +2189,7 @@ _080F2F5A:
str r0, [r1]
b _080F2FD8
.align 2, 0
_080F2F6C: .4byte gMPlay_BGM
_080F2F6C: .4byte gMPlayInfo_BGM
_080F2F70: .4byte 0x0000ffff
_080F2F74: .4byte gTasks
_080F2F78: .4byte sub_80F2FEC
+8 -8
View File
@@ -83,9 +83,9 @@ _0813B90C: .4byte gMain
_0813B910: .4byte gUnknown_203F175
_0813B914: .4byte gUnknown_3005ECC
_0813B918:
ldr r0, _0813B94C @ =gMPlay_SE1
ldr r0, _0813B94C @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _0813B950 @ =gMPlay_SE2
ldr r0, _0813B950 @ =gMPlayInfo_SE2
bl m4aMPlayStop
movs r0, 0xFA
bl PlaySE
@@ -93,7 +93,7 @@ _0813B918:
ldrb r0, [r0]
cmp r0, 0
bne _0813B93C
ldr r0, _0813B958 @ =gMPlay_BGM
ldr r0, _0813B958 @ =gMPlayInfo_BGM
ldr r1, _0813B95C @ =0x0000ffff
movs r2, 0x80
bl m4aMPlayVolumeControl
@@ -106,10 +106,10 @@ _0813B93C:
movs r0, 0x1
b _0813BB22
.align 2, 0
_0813B94C: .4byte gMPlay_SE1
_0813B950: .4byte gMPlay_SE2
_0813B94C: .4byte gMPlayInfo_SE1
_0813B950: .4byte gMPlayInfo_SE2
_0813B954: .4byte gUnknown_203F174
_0813B958: .4byte gMPlay_BGM
_0813B958: .4byte gMPlayInfo_BGM
_0813B95C: .4byte 0x0000ffff
_0813B960: .4byte gUnknown_203F177
_0813B964: .4byte gUnknown_203F178
@@ -269,7 +269,7 @@ _0813BAE0:
ldrb r0, [r0]
cmp r0, 0
bne _0813BAF4
ldr r0, _0813BB08 @ =gMPlay_BGM
ldr r0, _0813BB08 @ =gMPlayInfo_BGM
ldr r1, _0813BB0C @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -282,7 +282,7 @@ _0813BAF4:
b _0813BB22
.align 2, 0
_0813BB04: .4byte gUnknown_203F174
_0813BB08: .4byte gMPlay_BGM
_0813BB08: .4byte gMPlayInfo_BGM
_0813BB0C: .4byte 0x0000ffff
_0813BB10: .4byte gUnknown_203F178
_0813BB14:
+1 -1
View File
@@ -838,7 +838,7 @@ sub_80A1648: @ 80A1648
lsls r4, 24
lsrs r4, 24
movs r0, 0xB
bl sub_8071BC4
bl PlayFanfareByFanfareNum
ldr r1, _080A166C @ =gTasks
lsls r0, r4, 2
adds r0, r4
+6 -6
View File
@@ -3234,11 +3234,11 @@ c2_800ACD4: @ 800ACD4
movs r0, 0
movs r1, 0
bl SetGpuReg
ldr r0, _0800ADE0 @ =gMPlay_SE1
ldr r0, _0800ADE0 @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _0800ADE4 @ =gMPlay_SE2
ldr r0, _0800ADE4 @ =gMPlayInfo_SE2
bl m4aMPlayStop
ldr r0, _0800ADE8 @ =gMPlay_SE3
ldr r0, _0800ADE8 @ =gMPlayInfo_SE3
bl m4aMPlayStop
ldr r0, _0800ADEC @ =gHeap
movs r1, 0xE0
@@ -3333,9 +3333,9 @@ _0800ADD8:
pop {r0}
bx r0
.align 2, 0
_0800ADE0: .4byte gMPlay_SE1
_0800ADE4: .4byte gMPlay_SE2
_0800ADE8: .4byte gMPlay_SE3
_0800ADE0: .4byte gMPlayInfo_SE1
_0800ADE4: .4byte gMPlayInfo_SE2
_0800ADE8: .4byte gMPlayInfo_SE3
_0800ADEC: .4byte gHeap
_0800ADF0: .4byte gUnknown_3003F3C
_0800ADF4: .4byte gUnknown_2022854
+2 -2
View File
@@ -2409,7 +2409,7 @@ _08055DDC:
subs r0, 0x7
cmp r0, 0xA
bgt _08055E24
ldr r0, _08055E1C @ =gMPlay_BGM
ldr r0, _08055E1C @ =gMPlayInfo_BGM
ldr r1, [r0]
ldr r0, _08055E20 @ =gUnknown_86E6B0C
cmp r1, r0
@@ -2420,7 +2420,7 @@ _08055DDC:
.align 2, 0
_08055E14: .4byte gSaveBlock1Ptr
_08055E18: .4byte 0x00004f01
_08055E1C: .4byte gMPlay_BGM
_08055E1C: .4byte gMPlayInfo_BGM
_08055E20: .4byte gUnknown_86E6B0C
_08055E24:
bl sub_8055D8C
+1 -1
View File
@@ -15270,7 +15270,7 @@ sub_8126350: @ 8126350
adds r1, r4, 0
bl sub_80A2294
movs r0, 0
bl sub_8071BC4
bl PlayFanfareByFanfareNum
ldrb r0, [r6, 0x9]
adds r1, r4, 0
bl sub_8126440
+4 -4
View File
@@ -1287,7 +1287,7 @@ _0804B34E:
lsls r0, 24
cmp r0, 0
beq _0804B3A6
ldr r0, _0804B398 @ =gMPlay_BGM
ldr r0, _0804B398 @ =gMPlayInfo_BGM
bl m4aMPlayStop
b _0804B3A6
.align 2, 0
@@ -1295,9 +1295,9 @@ _0804B388: .4byte gBattlerPartyIndexes
_0804B38C: .4byte gPlayerParty
_0804B390: .4byte gUnknown_2024018
_0804B394: .4byte gBattleTypeFlags
_0804B398: .4byte gMPlay_BGM
_0804B398: .4byte gMPlayInfo_BGM
_0804B39C:
ldr r0, _0804B3C4 @ =gMPlay_BGM
ldr r0, _0804B3C4 @ =gMPlayInfo_BGM
ldr r1, _0804B3C8 @ =0x0000ffff
movs r2, 0x80
bl m4aMPlayVolumeControl
@@ -1318,7 +1318,7 @@ _0804B3C0:
movs r4, 0
b _0804B3F2
.align 2, 0
_0804B3C4: .4byte gMPlay_BGM
_0804B3C4: .4byte gMPlayInfo_BGM
_0804B3C8: .4byte 0x0000ffff
_0804B3CC: .4byte gUnknown_2024018
_0804B3D0:
+4 -4
View File
@@ -69,7 +69,7 @@ _080F515C:
.align 2, 0
_080F5168: .4byte gUnknown_3005430
_080F516C:
ldr r0, _080F5184 @ =gMPlay_BGM
ldr r0, _080F5184 @ =gMPlayInfo_BGM
ldr r1, _080F5188 @ =0x0000ffff
movs r2, 0x80
bl m4aMPlayVolumeControl
@@ -79,7 +79,7 @@ _080F516C:
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F5184: .4byte gMPlay_BGM
_080F5184: .4byte gMPlayInfo_BGM
_080F5188: .4byte 0x0000ffff
_080F518C: .4byte gUnknown_203AB50
_080F5190:
@@ -206,7 +206,7 @@ _080F5298:
.align 2, 0
_080F52B0: .4byte gUnknown_203AB50
_080F52B4:
ldr r0, _080F52DC @ =gMPlay_BGM
ldr r0, _080F52DC @ =gMPlayInfo_BGM
ldr r1, _080F52E0 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
@@ -225,7 +225,7 @@ _080F52D8:
pop {r1}
bx r1
.align 2, 0
_080F52DC: .4byte gMPlay_BGM
_080F52DC: .4byte gMPlayInfo_BGM
_080F52E0: .4byte 0x0000ffff
_080F52E4: .4byte gUnknown_3005430
_080F52E8: .4byte gUnknown_203AB50
+2 -2
View File
@@ -3897,7 +3897,7 @@ sub_806BB9C: @ 806BB9C
bl sub_809D2F0
adds r0, r4, 0
movs r1, 0
bl sub_8071F24
bl PlayCry7
movs r0, 0
pop {r4,r5}
pop {r1}
@@ -5165,7 +5165,7 @@ ScrCmd_playmoncry: @ 806C508
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8071F24
bl PlayCry7
movs r0, 0
pop {r4,r5}
pop {r1}
-1541
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2859,7 +2859,7 @@ _08151E6C:
cmp r0, 0x1
bne _08151E8C
movs r0, 0xA
bl sub_8071BC4
bl PlayFanfareByFanfareNum
ldr r0, [r4]
movs r2, 0xAA
lsls r2, 1
@@ -3054,7 +3054,7 @@ _08151FF0:
cmp r0, 0x1
bne _08152010
movs r0, 0xA
bl sub_8071BC4
bl PlayFanfareByFanfareNum
ldr r0, [r4]
movs r3, 0xAA
lsls r3, 1
+4 -4
View File
@@ -5,8 +5,8 @@ gMPlayJumpTable
gCgbChans
gPokemonCryTracks
gPokemonCrySong
gMPlay_BGM
gMPlay_SE1
gMPlay_SE2
gMPlayInfo_BGM
gMPlayInfo_SE1
gMPlayInfo_SE2
gMPlayMemAccArea
gMPlay_SE3
gMPlayInfo_SE3
+1
View File
@@ -0,0 +1 @@
gDisableMusic
+1 -1
View File
@@ -1553,7 +1553,7 @@ gUnknown_83AC960:: @ 83AC960
gUnknown_83AC970:: @ 83AC970
.incbin "baserom.gba", 0x3AC970, 0x20
gUnknown_83AC990:: @ 83AC990
sFanfares:: @ 83AC990
.incbin "baserom.gba", 0x3AC990, 0x278
gUnknown_83ACC08:: @ 83ACC08
+2 -2
View File
@@ -3,7 +3,7 @@
voicegroup_pokemon_cry:: @ 8489C8C
.incbin "baserom.gba", 0x489C8C, 0x2C88
gUnknown_848C914:: @ 848C914
gCryTable:: @ 848C914
.incbin "baserom.gba", 0x48C914, 0x600
gUnknown_848CF14:: @ 848CF14
@@ -15,7 +15,7 @@ gUnknown_848D514:: @ 848D514
gUnknown_848DB14:: @ 848DB14
.incbin "baserom.gba", 0x48DB14, 0x30
gUnknown_848DB44:: @ 848DB44
gCryTable2:: @ 848DB44
.incbin "baserom.gba", 0x48DB44, 0x600
gUnknown_848E144:: @ 848E144
+1
View File
@@ -1,6 +1,7 @@
#ifndef GUARD_CONSTANTS_SONGS_H
#define GUARD_CONSTANTS_SONGS_H
#define MUS_DUMMY 0
#define SE_STOP 0
#define SE_KAIFUKU 1
#define SE_PC_LOGON 2
+4
View File
@@ -404,6 +404,10 @@ void SampleFreqSet(u32 freq);
void m4aSoundVSyncOn(void);
void m4aSoundVSyncOff(void);
void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch);
void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);
void ClearModM(struct MusicPlayerTrack *track);
void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth);
void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed);
+1 -1
View File
@@ -115,7 +115,7 @@ SECTIONS {
asm/start_menu.o(.text);
asm/tileset_anims.o(.text);
asm/palette.o(.text);
asm/sound.o(.text);
src/sound.o(.text);
asm/battle_anim.o(.text);
asm/battle_anim_8074480.o(.text);
src/task.o(.text);
+4 -4
View File
@@ -11,10 +11,10 @@ void *gMPlayJumpTable[36];
struct CgbChannel gCgbChans[4];
struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2];
struct PokemonCrySong gPokemonCrySong;
struct MusicPlayerInfo gMPlay_BGM;
struct MusicPlayerInfo gMPlay_SE1;
struct MusicPlayerInfo gMPlay_SE2;
struct MusicPlayerInfo gMPlay_SE3;
struct MusicPlayerInfo gMPlayInfo_BGM;
struct MusicPlayerInfo gMPlayInfo_SE1;
struct MusicPlayerInfo gMPlayInfo_SE2;
struct MusicPlayerInfo gMPlayInfo_SE3;
u8 gMPlayMemAccArea[0x10];
u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust)
+628
View File
@@ -0,0 +1,628 @@
#include "global.h"
#include "gba/m4a_internal.h"
#include "sound.h"
#include "battle.h"
#include "m4a.h"
#include "main.h"
#include "pokemon.h"
#include "constants/songs.h"
#include "task.h"
struct Fanfare
{
u16 songNum;
u16 duration;
};
// TODO: what are these
extern u8 gUnknown_2031DD8;
extern u8 gUnknown_203ADFA;
extern u8 gUnknown_203F174;
// ewram
EWRAM_DATA struct MusicPlayerInfo* gMPlay_PokemonCry = NULL;
EWRAM_DATA u8 gPokemonCryBGMDuckingCounter = 0;
// iwram bss
IWRAM_DATA static u16 sCurrentMapMusic;
IWRAM_DATA static u16 sNextMapMusic;
IWRAM_DATA static u8 sMapMusicState;
IWRAM_DATA static u8 sMapMusicFadeInSpeed;
IWRAM_DATA static u16 sFanfareCounter;
// iwram common
bool8 gDisableMusic;
extern u32 gBattleTypeFlags;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
extern struct MusicPlayerInfo gMPlayInfo_SE3;
extern struct ToneData gCryTable[];
extern struct ToneData gCryTable2[];
extern const struct Fanfare sFanfares[];
extern u16 SpeciesToCryId(u16);
static void Task_Fanfare(u8 taskId);
static void CreateFanfareTask(void);
static void Task_DuckBGMForPokemonCry(u8 taskId);
static void RestoreBGMVolumeAfterPokemonCry(void);
#define CRY_VOLUME 120 // was 125 in R/S
void InitMapMusic(void)
{
gDisableMusic = FALSE;
ResetMapMusic();
}
void MapMusicMain(void)
{
switch (sMapMusicState)
{
case 0:
break;
case 1:
sMapMusicState = 2;
PlayBGM(sCurrentMapMusic);
break;
case 2:
case 3:
case 4:
break;
case 5:
if (IsBGMStopped())
{
sNextMapMusic = 0;
sMapMusicState = 0;
}
break;
case 6:
if (IsBGMStopped() && IsFanfareTaskInactive())
{
sCurrentMapMusic = sNextMapMusic;
sNextMapMusic = 0;
sMapMusicState = 2;
PlayBGM(sCurrentMapMusic);
}
break;
case 7:
if (IsBGMStopped() && IsFanfareTaskInactive())
{
FadeInNewBGM(sNextMapMusic, sMapMusicFadeInSpeed);
sCurrentMapMusic = sNextMapMusic;
sNextMapMusic = 0;
sMapMusicState = 2;
sMapMusicFadeInSpeed = 0;
}
break;
}
}
void ResetMapMusic(void)
{
sCurrentMapMusic = 0;
sNextMapMusic = 0;
sMapMusicState = 0;
sMapMusicFadeInSpeed = 0;
}
u16 GetCurrentMapMusic(void)
{
return sCurrentMapMusic;
}
void PlayNewMapMusic(u16 songNum)
{
sCurrentMapMusic = songNum;
sNextMapMusic = 0;
sMapMusicState = 1;
}
void StopMapMusic(void)
{
sCurrentMapMusic = 0;
sNextMapMusic = 0;
sMapMusicState = 1;
}
void FadeOutMapMusic(u8 speed)
{
if (IsNotWaitingForBGMStop())
FadeOutBGM(speed);
sCurrentMapMusic = 0;
sNextMapMusic = 0;
sMapMusicState = 5;
}
void FadeOutAndPlayNewMapMusic(u16 songNum, u8 speed)
{
FadeOutMapMusic(speed);
sCurrentMapMusic = 0;
sNextMapMusic = songNum;
sMapMusicState = 6;
}
void FadeOutAndFadeInNewMapMusic(u16 songNum, u8 fadeOutSpeed, u8 fadeInSpeed)
{
FadeOutMapMusic(fadeOutSpeed);
sCurrentMapMusic = 0;
sNextMapMusic = songNum;
sMapMusicState = 7;
sMapMusicFadeInSpeed = fadeInSpeed;
}
void FadeInNewMapMusic(u16 songNum, u8 speed)
{
FadeInNewBGM(songNum, speed);
sCurrentMapMusic = songNum;
sNextMapMusic = 0;
sMapMusicState = 2;
sMapMusicFadeInSpeed = 0;
}
bool8 IsNotWaitingForBGMStop(void)
{
if (sMapMusicState == 6)
return FALSE;
if (sMapMusicState == 5)
return FALSE;
if (sMapMusicState == 7)
return FALSE;
return TRUE;
}
void PlayFanfareByFanfareNum(u8 fanfareNum)
{
u16 songNum;
if(gUnknown_203ADFA == 2)
{
sFanfareCounter = 0xFF;
}
else
{
m4aMPlayStop(&gMPlayInfo_BGM);
songNum = sFanfares[fanfareNum].songNum;
sFanfareCounter = sFanfares[fanfareNum].duration;
m4aSongNumStart(songNum);
}
}
bool8 WaitFanfare(bool8 stop)
{
if (sFanfareCounter)
{
sFanfareCounter--;
return FALSE;
}
else
{
if (!stop)
m4aMPlayContinue(&gMPlayInfo_BGM);
else
m4aSongNumStart(MUS_DUMMY);
return TRUE;
}
}
void StopFanfareByFanfareNum(u8 fanfareNum)
{
m4aSongNumStop(sFanfares[fanfareNum].songNum);
}
void PlayFanfare(u16 songNum)
{
s32 i;
for (i = 0; (u32)i < 14; i++)
{
if (sFanfares[i].songNum == songNum)
{
PlayFanfareByFanfareNum(i);
CreateFanfareTask();
return;
}
}
PlayFanfareByFanfareNum(0);
CreateFanfareTask();
}
bool8 IsFanfareTaskInactive(void)
{
if (FuncIsActiveTask(Task_Fanfare) == TRUE)
return FALSE;
return TRUE;
}
static void Task_Fanfare(u8 taskId)
{
if (sFanfareCounter)
{
sFanfareCounter--;
}
else
{
m4aMPlayContinue(&gMPlayInfo_BGM);
DestroyTask(taskId);
}
}
static void CreateFanfareTask(void)
{
if (FuncIsActiveTask(Task_Fanfare) != TRUE)
CreateTask(Task_Fanfare, 80);
}
void FadeInNewBGM(u16 songNum, u8 speed)
{
if (gDisableMusic)
songNum = 0;
if (songNum == 0xFFFF)
songNum = 0;
m4aSongNumStart(songNum);
m4aMPlayImmInit(&gMPlayInfo_BGM);
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0);
m4aSongNumStop(songNum);
m4aMPlayFadeIn(&gMPlayInfo_BGM, speed);
}
void FadeOutBGMTemporarily(u8 speed)
{
m4aMPlayFadeOutTemporarily(&gMPlayInfo_BGM, speed);
}
bool8 IsBGMPausedOrStopped(void)
{
if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE)
return TRUE;
if (!(gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_TRACK))
return TRUE;
return FALSE;
}
void FadeInBGM(u8 speed)
{
m4aMPlayFadeIn(&gMPlayInfo_BGM, speed);
}
void FadeOutBGM(u8 speed)
{
m4aMPlayFadeOut(&gMPlayInfo_BGM, speed);
}
bool8 IsBGMStopped(void)
{
if (!(gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_TRACK))
return TRUE;
return FALSE;
}
void PlayCry1(u16 species, s8 pan)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85);
PlayCryInternal(species, pan, CRY_VOLUME, 10, 0);
gPokemonCryBGMDuckingCounter = 2;
RestoreBGMVolumeAfterPokemonCry();
}
void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority)
{
PlayCryInternal(species, pan, volume, priority, 0);
}
void PlayCry3(u16 species, s8 pan, u8 mode)
{
if (mode == 1)
{
PlayCryInternal(species, pan, CRY_VOLUME, 10, 1);
}
else
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85);
PlayCryInternal(species, pan, CRY_VOLUME, 10, mode);
gPokemonCryBGMDuckingCounter = 2;
RestoreBGMVolumeAfterPokemonCry();
}
}
void PlayCry4(u16 species, s8 pan, u8 mode)
{
if (mode == 1)
{
PlayCryInternal(species, pan, CRY_VOLUME, 10, 1);
}
else
{
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85);
PlayCryInternal(species, pan, CRY_VOLUME, 10, mode);
}
}
// PlayCry5 and 6 are not in FR/LG.
void PlayCry7(u16 species, u8 mode) // exclusive to FR/LG
{
if((u8)(gUnknown_203ADFA - 2) >= 2)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 85);
PlayCryInternal(species, 0, CRY_VOLUME, 10, mode);
}
gPokemonCryBGMDuckingCounter = 2;
RestoreBGMVolumeAfterPokemonCry();
}
void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode)
{
bool32 v0;
u32 release;
u32 length;
u32 pitch;
u32 chorus;
u32 index;
u8 table;
species--;
length = 140;
v0 = FALSE;
release = 0;
pitch = 15360;
chorus = 0;
switch (mode)
{
case 0:
break;
case 1:
length = 20;
release = 225;
break;
case 2:
release = 225;
pitch = 15600;
chorus = 20;
volume = 90;
break;
case 3:
length = 50;
release = 200;
pitch = 15800;
chorus = 20;
volume = 90;
break;
case 4:
length = 25;
v0 = TRUE;
release = 100;
pitch = 15600;
chorus = 192;
volume = 90;
break;
case 5:
release = 200;
pitch = 14440;
break;
case 6: // _08072044
release = 220;
pitch = 15555;
chorus = 192;
volume = 90; // FR/LG changed this from 70 to 90
break;
case 7:
length = 10;
release = 100;
pitch = 14848;
break;
case 8:
length = 60;
release = 225;
pitch = 15616;
break;
case 9:
length = 15;
v0 = TRUE;
release = 125;
pitch = 15200;
break;
case 10:
length = 100;
release = 225;
pitch = 15200;
break;
case 12:
length = 20;
release = 225;
case 11:
pitch = 15000;
break;
}
SetPokemonCryVolume(volume);
SetPokemonCryPanpot(pan);
SetPokemonCryPitch(pitch);
SetPokemonCryLength(length);
SetPokemonCryProgress(0);
SetPokemonCryRelease(release);
SetPokemonCryChorus(chorus);
SetPokemonCryPriority(priority);
// This is a fancy way to get a cry of a pokemon.
// It creates 4 sets of 128 mini cry tables.
// If you wish to expand pokemon, you need to
// append new cases to the switch.
species = SpeciesToCryId(species);
index = species & 0x7F;
table = species / 128;
switch (table)
{
case 0:
gMPlay_PokemonCry = SetPokemonCryTone(
v0 ? &gCryTable2[(128 * 0) + index] : &gCryTable[(128 * 0) + index]);
break;
case 1:
gMPlay_PokemonCry = SetPokemonCryTone(
v0 ? &gCryTable2[(128 * 1) + index] : &gCryTable[(128 * 1) + index]);
break;
case 2:
gMPlay_PokemonCry = SetPokemonCryTone(
v0 ? &gCryTable2[(128 * 2) + index] : &gCryTable[(128 * 2) + index]);
break;
case 3:
gMPlay_PokemonCry = SetPokemonCryTone(
v0 ? &gCryTable2[(128 * 3) + index] : &gCryTable[(128 * 3) + index]);
break;
}
}
bool8 IsCryFinished(void)
{
if (FuncIsActiveTask(Task_DuckBGMForPokemonCry) == TRUE)
{
return FALSE;
}
else
{
ClearPokemonCrySongs();
return TRUE;
}
}
void StopCryAndClearCrySongs(void)
{
m4aMPlayStop(gMPlay_PokemonCry);
ClearPokemonCrySongs();
}
void StopCry(void)
{
m4aMPlayStop(gMPlay_PokemonCry);
}
bool8 IsCryPlayingOrClearCrySongs(void)
{
if (IsPokemonCryPlaying(gMPlay_PokemonCry))
{
return TRUE;
}
else
{
ClearPokemonCrySongs();
return FALSE;
}
}
bool8 IsCryPlaying(void)
{
if (IsPokemonCryPlaying(gMPlay_PokemonCry))
return TRUE;
else
return FALSE;
}
static void Task_DuckBGMForPokemonCry(u8 taskId)
{
if (gPokemonCryBGMDuckingCounter)
{
gPokemonCryBGMDuckingCounter--;
return;
}
if (!IsPokemonCryPlaying(gMPlay_PokemonCry))
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
DestroyTask(taskId);
}
}
static void RestoreBGMVolumeAfterPokemonCry(void)
{
if (FuncIsActiveTask(Task_DuckBGMForPokemonCry) != TRUE)
CreateTask(Task_DuckBGMForPokemonCry, 80);
}
void PlayBGM(u16 songNum)
{
if (gDisableMusic)
songNum = 0;
if (songNum == 0xFFFF)
songNum = 0;
m4aSongNumStart(songNum);
}
void PlaySE(u16 songNum)
{
if(gUnknown_2031DD8 == 0 && gUnknown_203ADFA != 2)
m4aSongNumStart(songNum);
}
void PlaySE12WithPanning(u16 songNum, s8 pan)
{
m4aSongNumStart(songNum);
m4aMPlayImmInit(&gMPlayInfo_SE1);
m4aMPlayImmInit(&gMPlayInfo_SE2);
m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan);
m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan);
}
void PlaySE1WithPanning(u16 songNum, s8 pan)
{
m4aSongNumStart(songNum);
m4aMPlayImmInit(&gMPlayInfo_SE1);
m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan);
}
void PlaySE2WithPanning(u16 songNum, s8 pan)
{
m4aSongNumStart(songNum);
m4aMPlayImmInit(&gMPlayInfo_SE2);
m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan);
}
void SE12PanpotControl(s8 pan)
{
m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan);
m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan);
}
bool8 IsSEPlaying(void)
{
if ((gMPlayInfo_SE1.status & MUSICPLAYER_STATUS_PAUSE) && (gMPlayInfo_SE2.status & MUSICPLAYER_STATUS_PAUSE))
return FALSE;
if (!(gMPlayInfo_SE1.status & MUSICPLAYER_STATUS_TRACK) && !(gMPlayInfo_SE2.status & MUSICPLAYER_STATUS_TRACK))
return FALSE;
return TRUE;
}
bool8 IsBGMPlaying(void)
{
if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE)
return FALSE;
if (!(gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_TRACK))
return FALSE;
return TRUE;
}
bool8 IsSpecialSEPlaying(void)
{
if (gMPlayInfo_SE3.status & MUSICPLAYER_STATUS_PAUSE)
return FALSE;
if (!(gMPlayInfo_SE3.status & MUSICPLAYER_STATUS_TRACK))
return FALSE;
return TRUE;
}
void sub_8072474(u16 volume)
{
gUnknown_203F174 = 1;
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, volume);
}
void sub_807249C(void)
{
gUnknown_203F174 = 0;
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
}
+4 -4
View File
@@ -680,17 +680,17 @@ _08005A84:\n\
bl FillWindowPixelBuffer\n\
b _0800589E\n\
_08005A96:\n\
ldr r0, _08005AA0 @ =gMPlay_BGM\n\
ldr r0, _08005AA0 @ =gMPlayInfo_BGM\n\
bl m4aMPlayStop\n\
b _0800589E\n\
.align 2, 0\n\
_08005AA0: .4byte gMPlay_BGM\n\
_08005AA0: .4byte gMPlayInfo_BGM\n\
_08005AA4:\n\
ldr r0, _08005AAC @ =gMPlay_BGM\n\
ldr r0, _08005AAC @ =gMPlayInfo_BGM\n\
bl m4aMPlayContinue\n\
b _0800589E\n\
.align 2, 0\n\
_08005AAC: .4byte gMPlay_BGM\n\
_08005AAC: .4byte gMPlayInfo_BGM\n\
_08005AB0:\n\
ldr r0, [r6]\n\
ldrb r4, [r0]\n\
+2 -14
View File
@@ -129,21 +129,9 @@ gUnknown_3000FB8: @ 3000FB8
gUnknown_3000FBC: @ 3000FBC
.space 0x4
gUnknown_3000FC0: @ 3000FC0
.space 0x2
gUnknown_3000FC2: @ 3000FC2
.space 0x2
gUnknown_3000FC4: @ 3000FC4
.space 0x1
gUnknown_3000FC5: @ 3000FC5
.space 0x1
gUnknown_3000FC6: @ 3000FC6
.space 0x2
.include "src/sound.o"
.align 2
gUnknown_3000FC8: @ 3000FC8
.space 0x20
+1 -3
View File
@@ -195,9 +195,7 @@ gUnknown_3005078: @ 3005078
gUnknown_300507C: @ 300507C
.space 0x4
gUnknown_3005080: @ 3005080
.space 0x10
.include "sound.o"
.include "task.o"
@ what is this?
+2 -5
View File
@@ -815,12 +815,9 @@ gUnknown_2037AC8: @ 2037AC8
gUnknown_2037ACC: @ 2037ACC
.space 0x400
gUnknown_2037ECC: @ 2037ECC
.space 0x4
gUnknown_2037ED0: @ 2037ED0
.space 0x4
.include "src/sound.o"
.align 2
gUnknown_2037ED4: @ 2037ED4
.space 0x4