- 71
- Posts
- 7
- Years
- Age 25
- Seen Jul 11, 2022
I tried replacing the routine responsible for loading the victory music depending on the trainer class, with a routine that adds more trainer classes in, but every time I tested out my routine, the game freezes.
I wrote this routine:
And placed 01 48 00 47 E1 2F 8B 08 at 0x156EC.
Does anyone know what's wrong with the routine?
This is what's in IDA at that offset:
I wrote this routine:
Spoiler:
.text
.align 2
.thumb
.thumb_func
.global victorymusic
Main:
MOVS R0, #0xA
AND R1, R0
CMP R1, #8
BNE =(0x8015768)
BL =(0x8035314)
LDR R1, =(0x2023D74)
LDRB R0, =(0x81D87EF)
STR R0, [R1]
LDR R2, =(0x823EAC8)
LDR R0, =(0x20386AE)
LDRH R1, [R0]
LSL R0, R1, #0x2
ADD R0, R0, R1
LSL R0, R0, #0x3
ADD R0, R0, R2
LDRB R0, [R0, #1]
SUB R0, #0x53 @ 'S'
CMP R0, #2
BEQ Galactic
CMP R0, #0
BEQ Galactic
CMP R0, #7
BHI =(0x0801575F) @ jumptable 0801571C default case
LSL R0, R0, #0x2
LDR R1, =(0x08015734)
ADD R0, R0, R1
LDR R0, [R0]
MOV PC, R0 @ switch 8 cases
pop {r1}
bx r1
Galactic:
MOVS R0, #0xB6
LSL R0, R0, #0x1
ADD R0, R0, #0x1
BL =(0x080722A1)
B =(0x0801576F)
.align 2
.thumb
.thumb_func
.global victorymusic
Main:
MOVS R0, #0xA
AND R1, R0
CMP R1, #8
BNE =(0x8015768)
BL =(0x8035314)
LDR R1, =(0x2023D74)
LDRB R0, =(0x81D87EF)
STR R0, [R1]
LDR R2, =(0x823EAC8)
LDR R0, =(0x20386AE)
LDRH R1, [R0]
LSL R0, R1, #0x2
ADD R0, R0, R1
LSL R0, R0, #0x3
ADD R0, R0, R2
LDRB R0, [R0, #1]
SUB R0, #0x53 @ 'S'
CMP R0, #2
BEQ Galactic
CMP R0, #0
BEQ Galactic
CMP R0, #7
BHI =(0x0801575F) @ jumptable 0801571C default case
LSL R0, R0, #0x2
LDR R1, =(0x08015734)
ADD R0, R0, R1
LDR R0, [R0]
MOV PC, R0 @ switch 8 cases
pop {r1}
bx r1
Galactic:
MOVS R0, #0xB6
LSL R0, R0, #0x1
ADD R0, R0, #0x1
BL =(0x080722A1)
B =(0x0801576F)
And placed 01 48 00 47 E1 2F 8B 08 at 0x156EC.
Does anyone know what's wrong with the routine?
This is what's in IDA at that offset:
Spoiler:
ROM:080156EC loc_80156EC: @ CODE XREF: bc_8015670+5Aj
ROM:080156EC MOVS R0, #0xA
ROM:080156EE ANDS R1, R0
ROM:080156F0 CMP R1, #8
ROM:080156F2 BNE loc_8015768
ROM:080156F4 BL sub_8035314
ROM:080156F8 LDR R1, =0x2023D74
ROM:080156FA LDR R0, =byte_81D87EF
ROM:080156FC STR R0, [R1]
ROM:080156FE LDR R2, =0x823EAC8
ROM:08015700 LDR R0, =0x20386AE
ROM:08015702 LDRH R1, [R0]
ROM:08015704 LSLS R0, R1, #2
ROM:08015706 ADDS R0, R0, R1
ROM:08015708 LSLS R0, R0, #3
ROM:0801570A ADDS R0, R0, R2
ROM:0801570C LDRB R0, [R0,#1]
ROM:0801570E SUBS R0, #0x53 @ 'S'
ROM:08015710 CMP R0, #7
ROM:08015712 BHI def_801571C @ jumptable 0801571C default case
ROM:08015714 LSLS R0, R0, #2
ROM:08015716 LDR R1, =0x8015734
ROM:08015718 ADDS R0, R0, R1
ROM:0801571A LDR R0, [R0]
ROM:0801571C MOV PC, R0 @ switch 8 cases
ROM:080156EC MOVS R0, #0xA
ROM:080156EE ANDS R1, R0
ROM:080156F0 CMP R1, #8
ROM:080156F2 BNE loc_8015768
ROM:080156F4 BL sub_8035314
ROM:080156F8 LDR R1, =0x2023D74
ROM:080156FA LDR R0, =byte_81D87EF
ROM:080156FC STR R0, [R1]
ROM:080156FE LDR R2, =0x823EAC8
ROM:08015700 LDR R0, =0x20386AE
ROM:08015702 LDRH R1, [R0]
ROM:08015704 LSLS R0, R1, #2
ROM:08015706 ADDS R0, R0, R1
ROM:08015708 LSLS R0, R0, #3
ROM:0801570A ADDS R0, R0, R2
ROM:0801570C LDRB R0, [R0,#1]
ROM:0801570E SUBS R0, #0x53 @ 'S'
ROM:08015710 CMP R0, #7
ROM:08015712 BHI def_801571C @ jumptable 0801571C default case
ROM:08015714 LSLS R0, R0, #2
ROM:08015716 LDR R1, =0x8015734
ROM:08015718 ADDS R0, R0, R1
ROM:0801571A LDR R0, [R0]
ROM:0801571C MOV PC, R0 @ switch 8 cases
Last edited: