+16
-16
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
gDisableMusic
|
||||
+1
-1
@@ -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
@@ -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,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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user