Merge pull request #305 from tgsm/options

decompile Options
This commit is contained in:
Revo
2020-12-18 16:04:53 -05:00
committed by GitHub
47 changed files with 259 additions and 372 deletions
-239
View File
@@ -1,239 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.extern gMain
.text
thumb_func_start FUN_02024F30
FUN_02024F30: ; 0x02024F30
push {r4, lr}
mov r1, #0x2
bl AllocFromHeap
add r4, r0, #0x0
bl Options_init
add r0, r4, #0x0
pop {r4, pc}
.balign 4
thumb_func_start FUN_02024F44
FUN_02024F44: ; 0x02024F44
ldr r3, _02024F4C ; =MI_CpuCopy8
mov r2, #0x2
bx r3
nop
_02024F4C: .word MI_CpuCopy8
thumb_func_start Options_init
Options_init: ; 0x02024F50
push {r4, lr}
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2
bl MI_CpuFill8
ldrh r1, [r4, #0x0]
mov r0, #0xf
bic r1, r0
mov r0, #0x1
orr r0, r1
strh r0, [r4, #0x0]
ldrh r1, [r4, #0x0]
mov r0, #0x30
bic r1, r0
strh r1, [r4, #0x0]
ldrh r1, [r4, #0x0]
mov r0, #0x40
bic r1, r0
strh r1, [r4, #0x0]
ldrh r1, [r4, #0x0]
mov r0, #0x80
bic r1, r0
strh r1, [r4, #0x0]
ldrh r1, [r4, #0x0]
ldr r0, _02024F94 ; =0xFFFFFCFF
and r0, r1
strh r0, [r4, #0x0]
ldrh r1, [r4, #0x0]
ldr r0, _02024F98 ; =0xFFFF83FF
and r0, r1
strh r0, [r4, #0x0]
pop {r4, pc}
nop
_02024F94: .word 0xFFFFFCFF
_02024F98: .word 0xFFFF83FF
thumb_func_start FUN_02024F9C
FUN_02024F9C: ; 0x02024F9C
push {r3, lr}
cmp r0, #0x0
beq _02024FAC
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02025064
add r1, r0, #0x0
_02024FAC:
cmp r1, #0x0
beq _02024FCA
cmp r1, #0x1
beq _02024FBA
cmp r1, #0x2
beq _02024FC2
b _02024FCA
_02024FBA:
ldr r0, _02024FD4 ; =gMain
mov r1, #0x1
str r1, [r0, #0x34]
pop {r3, pc}
_02024FC2:
ldr r0, _02024FD4 ; =gMain
mov r1, #0x3
str r1, [r0, #0x34]
pop {r3, pc}
_02024FCA:
ldr r0, _02024FD4 ; =gMain
mov r1, #0x0
str r1, [r0, #0x34]
pop {r3, pc}
nop
_02024FD4: .word gMain
thumb_func_start FUN_02024FD8
FUN_02024FD8: ; 0x02024FD8
ldrh r0, [r0, #0x0]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
bx lr
thumb_func_start FUN_02024FE0
FUN_02024FE0: ; 0x02024FE0
ldrh r3, [r0, #0x0]
mov r2, #0xf
lsl r1, r1, #0x10
bic r3, r2
lsr r2, r1, #0x10
mov r1, #0xf
and r1, r2
orr r1, r3
strh r1, [r0, #0x0]
bx lr
thumb_func_start FUN_02024FF4
FUN_02024FF4: ; 0x02024FF4
push {r3, lr}
bl FUN_02024FD8
cmp r0, #0x0
bne _02025002
mov r0, #0x8
pop {r3, pc}
_02025002:
cmp r0, #0x1
bne _0202500A
mov r0, #0x4
pop {r3, pc}
_0202500A:
mov r0, #0x1
pop {r3, pc}
.balign 4
thumb_func_start FUN_02025010
FUN_02025010: ; 0x02025010
ldrh r0, [r0, #0x0]
lsl r0, r0, #0x1a
lsr r0, r0, #0x1e
bx lr
thumb_func_start FUN_02025018
FUN_02025018: ; 0x02025018
lsl r1, r1, #0x10
lsr r1, r1, #0x10
lsl r1, r1, #0x1e
ldrh r3, [r0, #0x0]
mov r2, #0x30
lsr r1, r1, #0x1a
bic r3, r2
orr r1, r3
strh r1, [r0, #0x0]
bx lr
thumb_func_start FUN_0202502C
FUN_0202502C: ; 0x0202502C
ldrh r0, [r0, #0x0]
lsl r0, r0, #0x18
lsr r0, r0, #0x1f
bx lr
thumb_func_start FUN_02025034
FUN_02025034: ; 0x02025034
lsl r1, r1, #0x10
lsr r1, r1, #0x10
lsl r1, r1, #0x1f
ldrh r3, [r0, #0x0]
mov r2, #0x80
lsr r1, r1, #0x18
bic r3, r2
orr r1, r3
strh r1, [r0, #0x0]
bx lr
thumb_func_start FUN_02025048
FUN_02025048: ; 0x02025048
ldrh r0, [r0, #0x0]
lsl r0, r0, #0x19
lsr r0, r0, #0x1f
bx lr
thumb_func_start FUN_02025050
FUN_02025050: ; 0x02025050
lsl r1, r1, #0x10
lsr r1, r1, #0x10
lsl r1, r1, #0x1f
ldrh r3, [r0, #0x0]
mov r2, #0x40
lsr r1, r1, #0x19
bic r3, r2
orr r1, r3
strh r1, [r0, #0x0]
bx lr
thumb_func_start FUN_02025064
FUN_02025064: ; 0x02025064
ldrh r0, [r0, #0x0]
lsl r0, r0, #0x16
lsr r0, r0, #0x1e
bx lr
thumb_func_start FUN_0202506C
FUN_0202506C: ; 0x0202506C
lsl r1, r1, #0x10
lsr r1, r1, #0x10
lsl r1, r1, #0x1e
ldrh r3, [r0, #0x0]
ldr r2, _02025080 ; =0xFFFFFCFF
lsr r1, r1, #0x16
and r2, r3
orr r1, r2
strh r1, [r0, #0x0]
bx lr
.balign 4
_02025080: .word 0xFFFFFCFF
thumb_func_start FUN_02025084
FUN_02025084: ; 0x02025084
ldrh r0, [r0, #0x0]
lsl r0, r0, #0x11
lsr r0, r0, #0x1b
bx lr
thumb_func_start FUN_0202508C
FUN_0202508C: ; 0x0202508C
lsl r1, r1, #0x10
lsr r1, r1, #0x10
lsl r1, r1, #0x1b
ldrh r3, [r0, #0x0]
ldr r2, _020250A0 ; =0xFFFF83FF
lsr r1, r1, #0x11
and r2, r3
orr r1, r2
strh r1, [r0, #0x0]
bx lr
.balign 4
_020250A0: .word 0xFFFF83FF
+1 -1
View File
@@ -2478,7 +2478,7 @@ FUN_020389CC: ; 0x020389CC
mov r0, #0x0
str r0, [r4, #0x18]
ldr r0, [sp, #0x0]
bl FUN_02025084
bl Options_GetFrame
str r0, [r4, #0x1c]
lsl r1, r6, #0x18
ldr r0, [r5, #0xc]
+5 -5
View File
@@ -116,7 +116,7 @@ _02047774:
lsl r1, r1, #0x4
str r0, [r7, r1]
add r0, r5, #0x0
bl FUN_02024F30
bl Options_new
mov r1, #0x13
lsl r1, r1, #0x4
str r0, [r7, r1]
@@ -237,7 +237,7 @@ FUN_02047814: ; 0x02047814
lsl r1, r1, #0x4
ldr r0, [sp, #0x14]
ldr r1, [r4, r1]
bl FUN_02024F44
bl Options_copy
add r0, r5, #0x0
bl Script_GetTimeOfDay
mov r1, #0x16
@@ -513,7 +513,7 @@ FUN_02047A78: ; 0x02047A78
lsl r1, r1, #0x4
ldr r0, [sp, #0xc]
ldr r1, [r5, r1]
bl FUN_02024F44
bl Options_copy
ldr r1, [sp, #0x8]
add r0, r5, #0x0
mov r2, #0x0
@@ -712,7 +712,7 @@ _02047C98:
lsl r1, r1, #0x4
ldr r0, [sp, #0x4]
ldr r1, [r6, r1]
bl FUN_02024F44
bl Options_copy
ldr r1, [sp, #0x8]
add r0, r6, #0x0
mov r2, #0x0
@@ -896,7 +896,7 @@ _02047E2C:
lsl r1, r1, #0x4
ldr r0, [sp, #0x10]
ldr r1, [r5, r1]
bl FUN_02024F44
bl Options_copy
ldr r1, [sp, #0x14]
add r0, r5, #0x0
mov r2, #0x0
+2 -2
View File
@@ -74,7 +74,7 @@ FUN_02054608: ; 0x02054608
bl FUN_0201AB08
add r6, r0, #0x0
add r0, r4, #0x0
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -119,7 +119,7 @@ FUN_02054658: ; 0x02054658
mov r0, #0x0
bl FUN_02002BB8
add r0, r6, #0x0
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r3, #0x0
str r3, [sp, #0x0]
str r0, [sp, #0x4]
+2 -2
View File
@@ -101,11 +101,11 @@ FUN_020625EC: ; 0x020625EC
str r0, [r4, r1]
add r0, r6, #0x0
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02024FF4
bl Options_GetTextFrameDelay
strh r0, [r4, #0x1a]
add r0, r6, #0x0
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02025084
bl Options_GetFrame
strh r0, [r4, #0x1c]
str r4, [r7, #0x8]
mov r0, #0x1
+2 -2
View File
@@ -67,11 +67,11 @@ FUN_020653EC: ; 0x020653EC
add r6, r0, #0x0
strb r1, [r4, #0x1a]
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02024FF4
bl Options_GetTextFrameDelay
strb r0, [r4, #0x16]
add r0, r6, #0x0
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02025084
bl Options_GetFrame
strh r0, [r4, #0x14]
add r0, r4, #0x0
ldr r2, [r4, #0x0]
+2 -2
View File
@@ -2343,7 +2343,7 @@ _0206DA26:
mov r1, #0x4
bl FUN_02018744
ldr r0, [r5, #0x2c]
bl FUN_02025084
bl Options_GetFrame
add r6, r0, #0x0
lsl r0, r6, #0x18
lsr r0, r0, #0x18
@@ -2675,7 +2675,7 @@ FUN_0206DD6C: ; 0x0206DD6C
mov r1, #0xff
bl FUN_02019620
ldr r0, [r4, #0x2c]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r3, #0x0
str r3, [sp, #0x0]
str r0, [sp, #0x4]
+1 -1
View File
@@ -1310,7 +1310,7 @@ FUN_0206FD24: ; 0x0206FD24
ldr r0, _0206FE70 ; =0x000005A4
ldr r0, [r5, r0]
ldr r0, [r0, #0xc]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
+1 -1
View File
@@ -1664,7 +1664,7 @@ FUN_0207322C: ; 0x0207322C
ldr r0, _0207326C ; =0x000005A4
ldr r0, [r4, r0]
ldr r0, [r0, #0xc]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r3, #0x0
str r3, [sp, #0x0]
str r0, [sp, #0x4]
+1 -1
View File
@@ -2355,7 +2355,7 @@ FUN_02077FE8: ; 0x02077FE8
mov r2, #0x12
bl FUN_02002EEC
ldr r0, [r5, #0x18]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
+2 -2
View File
@@ -1660,7 +1660,7 @@ _0207A99E:
lsl r0, r0, #0x2
ldr r0, [r5, r0]
ldr r0, [r0, #0x4]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -4738,7 +4738,7 @@ FUN_0207C23C: ; 0x0207C23C
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldr r0, [r0, #0x4]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
+1 -1
View File
@@ -32,7 +32,7 @@ FUN_02085338: ; 0x02085338
add r0, r6, #0x0
strb r1, [r4, #0x3]
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02025084
bl Options_GetFrame
str r0, [r4, #0x8]
cmp r5, #0x2
bne _02085390
+1 -1
View File
@@ -348,7 +348,7 @@ _02085A9A:
str r0, [r4, r1]
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
add r5, r0, #0x0
add r0, r4, #0x0
add r1, r4, #0x0
+2 -2
View File
@@ -36,11 +36,11 @@ FUN_02086084: ; 0x02086084
bl OverlayManager_GetField18
str r0, [r4, #0x0]
ldr r0, [r0, #0x10]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
str r0, [r4, #0x10]
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x10]
bl FUN_02025084
bl Options_GetFrame
str r0, [r4, #0x14]
bl FUN_02086468
str r0, [r4, #0x38]
+2 -2
View File
@@ -544,11 +544,11 @@ FUN_020880A0: ; 0x020880A0
str r0, [r4, #0x0]
ldr r0, [r5, #0xc]
ldr r0, [r0, #0x18]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
strb r0, [r4, #0xa]
ldr r0, [r5, #0xc]
ldr r0, [r0, #0x18]
bl FUN_02025084
bl Options_GetFrame
strb r0, [r4, #0xb]
ldr r0, _02088108 ; =UNK_020FD16C
ldr r2, [r5, #0x0]
+16 -16
View File
@@ -1586,23 +1586,23 @@
.extern FUN_02024EF4
.extern FUN_02024F0C
.extern FUN_02024F18
.extern FUN_02024F30
.extern FUN_02024F44
.extern Options_new
.extern Options_copy
.extern Options_init
.extern FUN_02024F9C
.extern FUN_02024FD8
.extern FUN_02024FE0
.extern FUN_02024FF4
.extern FUN_02025010
.extern FUN_02025018
.extern FUN_0202502C
.extern FUN_02025034
.extern FUN_02025048
.extern FUN_02025050
.extern FUN_02025064
.extern FUN_0202506C
.extern FUN_02025084
.extern FUN_0202508C
.extern Options_SetButtonModeOnMain
.extern Options_GetTextSpeed
.extern Options_SetTextSpeed
.extern Options_GetTextFrameDelay
.extern Options_GetSoundMethod
.extern Options_SetSoundMethod
.extern Options_GetBattleScene
.extern Options_SetBattleScene
.extern Options_GetBattleStyle
.extern Options_SetBattleStyle
.extern Options_GetButtonMode
.extern Options_SetButtonMode
.extern Options_GetFrame
.extern Options_SetFrame
.extern FUN_020250A4
.extern FUN_020250C4
.extern FUN_02025128
+1 -1
View File
@@ -205,7 +205,7 @@ MOD05_021E2D00: ; 0x021E2D00
ldr r0, [r0]
ldr r0, [r0, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02024FF4
bl Options_GetTextFrameDelay
pop {r3, pc}
.balign 4, 0
+1 -1
View File
@@ -16817,7 +16817,7 @@ _021EFC20:
str r1, [r0]
ldr r0, [r4, #0x34]
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
+3 -3
View File
@@ -8929,7 +8929,7 @@ _0223DA3E:
mov r0, #0x85
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -41696,12 +41696,12 @@ MOD06_0224DBA8: ; 0x0224DBA8
ldr r0, [r5, #8]
bl Sav2_PlayerData_GetOptionsAddr
add r4, r0, #0
bl FUN_02025084
bl Options_GetFrame
mov r1, #0x53
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r4, #0
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r1, #0x15
lsl r1, r1, #4
str r0, [r5, r1]
+7 -7
View File
@@ -120,7 +120,7 @@ _0222F30E:
mov r0, #0x13
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02025084
bl Options_GetFrame
add r4, r0, #0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
@@ -3600,7 +3600,7 @@ _02230E2E:
mov r1, #0x6d
lsl r1, r1, #2
ldr r0, [r0, r1]
bl FUN_0202502C
bl Options_GetBattleScene
cmp r0, #0
bne _02230E40
mov r0, #1
@@ -3613,11 +3613,11 @@ _02230E40:
MOD11_02230E44: ; 0x02230E44
mov r1, #0x6d
lsl r1, r1, #2
ldr r3, _02230E50 ; =FUN_02025084
ldr r3, _02230E50 ; =Options_GetFrame
ldr r0, [r0, r1]
bx r3
nop
_02230E50: .word FUN_02025084
_02230E50: .word Options_GetFrame
thumb_func_start MOD11_02230E54
MOD11_02230E54: ; 0x02230E54
@@ -3632,7 +3632,7 @@ _02230E62:
mov r1, #0x6d
lsl r1, r1, #2
ldr r0, [r0, r1]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
pop {r3, pc}
.align 2, 0
@@ -3640,11 +3640,11 @@ _02230E62:
MOD11_02230E70: ; 0x02230E70
mov r1, #0x6d
lsl r1, r1, #2
ldr r3, _02230E7C ; =FUN_02025048
ldr r3, _02230E7C ; =Options_GetBattleStyle
ldr r0, [r0, r1]
bx r3
nop
_02230E7C: .word FUN_02025048
_02230E7C: .word Options_GetBattleStyle
thumb_func_start MOD11_02230E80
MOD11_02230E80: ; 0x02230E80
+8 -8
View File
@@ -4224,7 +4224,7 @@ MOD12_0222F834: ; 0x0222F834
ldr r1, [r5]
ldr r0, _0222F930 ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02025084
bl Options_GetFrame
add r4, r0, #0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
@@ -6224,7 +6224,7 @@ MOD12_022308F0: ; 0x022308F0
ldr r1, [r5]
ldr r0, _022309C4 ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02025084
bl Options_GetFrame
add r4, r0, #0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
@@ -15253,7 +15253,7 @@ _02234F2A:
bne _02234F40
ldr r0, _02234FAC ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r4, r0, #0
b _02234F42
_02234F40:
@@ -25497,7 +25497,7 @@ MOD12_02239AD0: ; 0x02239AD0
bne _02239AF2
ldr r0, _02239B44 ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r4, r0, #0
b _02239AF4
_02239AF2:
@@ -34742,7 +34742,7 @@ MOD12_0223E1EC: ; 0x0223E1EC
bne _0223E20E
ldr r0, _0223E26C ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r4, r0, #0
b _0223E210
_0223E20E:
@@ -43529,7 +43529,7 @@ MOD12_022425F4: ; 0x022425F4
bne _02242616
ldr r0, _02242674 ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r4, r0, #0
b _02242618
_02242616:
@@ -43673,7 +43673,7 @@ MOD12_022426BC: ; 0x022426BC
ldr r1, [r5]
ldr r0, _02242784 ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02025084
bl Options_GetFrame
add r4, r0, #0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
@@ -43843,7 +43843,7 @@ MOD12_02242804: ; 0x02242804
ldr r1, [r6]
ldr r0, _022429D0 ; =0x00001988
ldr r0, [r1, r0]
bl FUN_02025084
bl Options_GetFrame
add r4, r0, #0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
+2 -2
View File
@@ -9849,11 +9849,11 @@ MOD14_021DC3AC: ; 0x021DC3AC
MOD14_021DC3B4: ; 0x021DC3B4
mov r1, #0x69
lsl r1, r1, #2
ldr r3, _021DC3C0 ; =FUN_02025084
ldr r3, _021DC3C0 ; =Options_GetFrame
ldr r0, [r0, r1]
bx r3
nop
_021DC3C0: .word FUN_02025084
_021DC3C0: .word Options_GetFrame
thumb_func_start MOD14_021DC3C4
MOD14_021DC3C4: ; 0x021DC3C4
+5 -5
View File
@@ -4666,7 +4666,7 @@ MOD17_021D9918: ; 0x021D9918
ldr r0, [r5, r0]
add r7, r2, #0
add r4, r3, #0
bl FUN_02025084
bl Options_GetFrame
add r6, r0, #0
mov r0, #0
mov r1, #0xe0
@@ -4847,7 +4847,7 @@ _021D9A7E:
bne _021D9ACE
add r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
b _021D9AD0
_021D9ACE:
mov r0, #1
@@ -11480,12 +11480,12 @@ _021DCA42:
ldr r1, [r4, #0xc]
bl MOD17_021DCC38
ldr r0, [r4, #0xc]
bl FUN_02025084
bl Options_GetFrame
mov r1, #0x4f
lsl r1, r1, #2
str r0, [r5, r1]
ldr r0, [r4, #0xc]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r1, #5
lsl r1, r1, #6
str r0, [r5, r1]
@@ -11760,7 +11760,7 @@ MOD17_021DCC38: ; 0x021DCC38
sub sp, #8
add r4, r0, #0
add r0, r1, #0
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
+1 -1
View File
@@ -7963,7 +7963,7 @@ MOD18_0223D414: ; 0x0223D414
add r6, r0, #0
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r4, r0, #0
ldr r0, _0223D580 ; =0x02251388
mov r2, #0x15
+1 -1
View File
@@ -116,7 +116,7 @@ MOD52_021D7594: ; 0x021D7594
bl MOD52_021D7688
add r0, r4, #0
mov r1, #0
bl FUN_02024F9C
bl Options_SetButtonModeOnMain
add r0, r5, #0
bl Sav2_SysInfo_MacAddressIsMine
cmp r0, #0
+1 -1
View File
@@ -846,7 +846,7 @@ MOD53_021D7B60: ; 0x021D7B60
bl FUN_020068C8
ldr r0, [r5, #8]
ldr r0, [r0, #8]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
+1 -1
View File
@@ -766,7 +766,7 @@ MOD54_021D7AA0: ; 0x021D7AA0
bl FUN_020068C8
ldr r0, [r5, #8]
ldr r0, [r0, #8]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
+2 -2
View File
@@ -808,7 +808,7 @@ MOD55_021D7AE0: ; 0x021D7AE0
bl FUN_020068C8
ldr r0, [r5, #8]
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -5349,7 +5349,7 @@ MOD55_021DA0A4: ; 0x021DA0A4
ldr r0, [r5, #8]
add r6, r1, #0
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r4, r0, #0
mov r0, #0xce
lsl r0, r0, #2
+2 -2
View File
@@ -1014,7 +1014,7 @@ MOD56_0221257C: ; 0x0221257C
add r5, #0xc4
ldr r0, [r5]
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -8164,7 +8164,7 @@ MOD56_02215EA4: ; 0x02215EA4
add r4, r1, #0
add r6, r2, #0
bl Sav2_PlayerData_GetOptionsAddr
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r7, r0, #0
mov r0, #0xdb
lsl r0, r0, #2
+2 -2
View File
@@ -662,7 +662,7 @@ MOD58_021D9F14: ; 0x021D9F14
mov r3, #5
bl FUN_020068C8
ldr r0, [r5, #0xc]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -2226,7 +2226,7 @@ MOD58_021DAB94: ; 0x021DAB94
mov r3, #0xa
bl FUN_0200D0BC
ldr r0, [r5, #0xc]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
+1 -1
View File
@@ -936,7 +936,7 @@ _021D7C5E:
add r0, r6, #0
bl String_dtor
ldr r0, [r5, #8]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r3, r4, #0
str r3, [sp]
str r0, [sp, #4]
+14 -14
View File
@@ -25,7 +25,7 @@ MOD60_021D74E0: ; 0x021D74E0
add r4, r0, #0
bl memset
add r0, r5, #0
bl FUN_02024FD8
bl Options_GetTextSpeed
ldrh r1, [r4, #0x18]
mov r2, #0xf
lsl r0, r0, #0x10
@@ -36,7 +36,7 @@ MOD60_021D74E0: ; 0x021D74E0
orr r0, r1
strh r0, [r4, #0x18]
add r0, r5, #0
bl FUN_0202502C
bl Options_GetBattleScene
lsl r0, r0, #0x10
lsr r0, r0, #0x10
lsl r0, r0, #0x1f
@@ -47,7 +47,7 @@ MOD60_021D74E0: ; 0x021D74E0
orr r0, r1
strh r0, [r4, #0x18]
add r0, r5, #0
bl FUN_02025048
bl Options_GetBattleStyle
lsl r0, r0, #0x10
lsr r0, r0, #0x10
lsl r0, r0, #0x1f
@@ -58,7 +58,7 @@ MOD60_021D74E0: ; 0x021D74E0
orr r0, r1
strh r0, [r4, #0x18]
add r0, r5, #0
bl FUN_02025010
bl Options_GetSoundMethod
lsl r0, r0, #0x10
lsr r0, r0, #0x10
lsl r0, r0, #0x1e
@@ -69,7 +69,7 @@ MOD60_021D74E0: ; 0x021D74E0
orr r0, r1
strh r0, [r4, #0x18]
add r0, r5, #0
bl FUN_02025064
bl Options_GetButtonMode
lsl r0, r0, #0x10
lsr r0, r0, #0x10
lsl r0, r0, #0x1e
@@ -80,7 +80,7 @@ MOD60_021D74E0: ; 0x021D74E0
orr r0, r1
strh r0, [r4, #0x18]
add r0, r5, #0
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x10
lsr r0, r0, #0x10
lsl r0, r0, #0x1b
@@ -172,32 +172,32 @@ MOD60_021D75B0: ; 0x021D75B0
ldr r0, [r4, #0x1c]
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
bl FUN_02024FE0
bl Options_SetTextSpeed
ldrh r1, [r4, #0x18]
ldr r0, [r4, #0x1c]
lsl r1, r1, #0x19
lsr r1, r1, #0x1f
bl FUN_02025034
bl Options_SetBattleScene
ldrh r1, [r4, #0x18]
ldr r0, [r4, #0x1c]
lsl r1, r1, #0x18
lsr r1, r1, #0x1f
bl FUN_02025050
bl Options_SetBattleStyle
ldrh r1, [r4, #0x18]
ldr r0, [r4, #0x1c]
lsl r1, r1, #0x1a
lsr r1, r1, #0x1e
bl FUN_02025018
bl Options_SetSoundMethod
ldrh r1, [r4, #0x18]
ldr r0, [r4, #0x1c]
lsl r1, r1, #0x16
lsr r1, r1, #0x1e
bl FUN_0202506C
bl Options_SetButtonMode
ldrh r1, [r4, #0x18]
ldr r0, [r4, #0x1c]
lsl r1, r1, #0x11
lsr r1, r1, #0x1b
bl FUN_0202508C
bl Options_SetFrame
b _021D769A
_021D7680:
cmp r0, #2
@@ -210,7 +210,7 @@ _021D7680:
mov r0, #0
lsl r1, r1, #0x16
lsr r1, r1, #0x1e
bl FUN_02024F9C
bl Options_SetButtonModeOnMain
_021D769A:
add r0, r5, #0
bl OverlayManager_FreeData
@@ -1270,7 +1270,7 @@ _021D7F3C:
add r1, r1, r2
add r1, #0x5e
ldrh r1, [r1]
bl FUN_02024F9C
bl Options_SetButtonModeOnMain
_021D7F54:
ldr r0, [sp, #0x14]
mov r1, #0x54
+2 -2
View File
@@ -44,11 +44,11 @@ MOD61_021D74E0: ; 0x021D74E0
strh r1, [r0]
ldr r0, [r4, #0x1c]
ldr r0, [r0, #4]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
strb r0, [r4, #0x10]
ldr r0, [r4, #0x1c]
ldr r0, [r0, #4]
bl FUN_02025084
bl Options_GetFrame
strh r0, [r4, #0xa]
mov r0, #1
pop {r3, r4, r5, pc}
+2 -2
View File
@@ -35,11 +35,11 @@ _021D7504:
bl OverlayManager_GetField18
add r4, r0, #0
ldr r0, [r4, #4]
bl FUN_02025084
bl Options_GetFrame
ldr r1, _021D7634 ; =0x000006A8
str r0, [r5, r1]
ldr r0, [r4, #4]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
ldr r1, _021D7638 ; =0x000006AC
str r0, [r5, r1]
mov r0, #8
+2 -2
View File
@@ -950,7 +950,7 @@ MOD65_021D7C04: ; 0x021D7C04
bl FUN_0200CB00
ldr r0, [r6, #0x20]
ldr r0, [r0, #0x18]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -1103,7 +1103,7 @@ _021D7D42:
_021D7D66:
ldr r0, [r5, #0x20]
ldr r0, [r0, #0x18]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r5, #0x7c
strb r0, [r5]
pop {r4, r5, r6, pc}
+2 -2
View File
@@ -278,7 +278,7 @@ MOD71_0222D820: ; 0x0222D820
bl MOD71_0222D780
ldr r0, [r4, #8]
ldr r0, [r0, #0x18]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r2, #0x5d
@@ -6668,7 +6668,7 @@ MOD71_02230C48: ; 0x02230C48
mov r1, #0
bl FUN_02019620
add r0, r4, #0
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
+2 -2
View File
@@ -55,11 +55,11 @@ _021D7536:
bl MOD73_021D8DF4
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x18]
bl FUN_02025084
bl Options_GetFrame
str r0, [r5, #0x24]
ldr r0, [r4, #0x10]
ldr r0, [r0, #0x18]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
str r0, [r5, #0x28]
mov r0, #0xae
mov r1, #1
+2 -2
View File
@@ -841,7 +841,7 @@ MOD75_021E7214: ; 0x021E7214
add r0, r4, #0
add r0, #0xd0
ldr r0, [r0]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -9447,7 +9447,7 @@ MOD75_021EB660: ; 0x021EB660
add r0, r4, #0
add r0, #0xd0
ldr r0, [r0]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
+2 -2
View File
@@ -437,7 +437,7 @@ MOD76_021D7814: ; 0x021D7814
bl FUN_0200CB00
ldr r0, [r4]
ldr r0, [r0, #8]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -2053,7 +2053,7 @@ MOD76_021D853C: ; 0x021D853C
bl FUN_02002B7C
ldr r0, [r4]
ldr r0, [r0, #8]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
+2 -2
View File
@@ -1383,7 +1383,7 @@ MOD77_021D7FAC: ; 0x021D7FAC
add r3, r1, #0
bl FUN_020068C8
ldr r0, [r5, #8]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -1685,7 +1685,7 @@ _021D82B0:
ldr r2, [r5, r2]
bl ReadMsgDataIntoString
ldr r0, [r5, #8]
bl FUN_02024FF4
bl Options_GetTextFrameDelay
add r3, r4, #0
str r3, [sp]
str r0, [sp, #4]
+10 -10
View File
@@ -2328,11 +2328,11 @@ MOD80_0222E7B0: ; 0x0222E7B0
thumb_func_start MOD80_0222E7BC
MOD80_0222E7BC: ; 0x0222E7BC
ldr r0, [r0]
ldr r3, _0222E7C4 ; =FUN_02024FF4
ldr r3, _0222E7C4 ; =Options_GetTextFrameDelay
ldr r0, [r0, #0x24]
bx r3
.align 2, 0
_0222E7C4: .word FUN_02024FF4
_0222E7C4: .word Options_GetTextFrameDelay
thumb_func_end MOD80_0222E7BC
thumb_func_start MOD80_0222E7C8
@@ -2805,7 +2805,7 @@ MOD80_0222EB6C: ; 0x0222EB6C
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -4099,7 +4099,7 @@ MOD80_0222F5A8: ; 0x0222F5A8
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -5388,7 +5388,7 @@ MOD80_02230054: ; 0x02230054
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -6395,7 +6395,7 @@ MOD80_02230840: ; 0x02230840
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -8807,7 +8807,7 @@ MOD80_02231BF4: ; 0x02231BF4
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -11836,7 +11836,7 @@ MOD80_0223346C: ; 0x0223346C
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -14380,7 +14380,7 @@ MOD80_022348CC: ; 0x022348CC
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -18024,7 +18024,7 @@ MOD80_02236488: ; 0x02236488
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
+2 -2
View File
@@ -1325,11 +1325,11 @@ _02238840: .word 0x0000014E
thumb_func_start MOD81_02238844
MOD81_02238844: ; 0x02238844
ldr r0, [r0]
ldr r3, _0223884C ; =FUN_02025084
ldr r3, _0223884C ; =Options_GetFrame
ldr r0, [r0, #0x14]
bx r3
.align 2, 0
_0223884C: .word FUN_02025084
_0223884C: .word Options_GetFrame
thumb_func_end MOD81_02238844
thumb_func_start MOD81_02238850
+1 -1
View File
@@ -1638,7 +1638,7 @@ MOD82_0222E264: ; 0x0222E264
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x10]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
+4 -4
View File
@@ -2561,7 +2561,7 @@ _0222E960:
add r3, r2, #0
bl FUN_0200CB00
ldr r0, [r4, #0x14]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -6152,7 +6152,7 @@ MOD83_02230668: ; 0x02230668
mov r2, #0x56
bl FUN_02002ED0
ldr r0, [r4, #8]
bl FUN_02025084
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -10287,7 +10287,7 @@ _022327E6:
ldr r1, _02232B58 ; =0x00002B48
str r0, [r4, r1]
ldr r0, [r4, r1]
bl FUN_02025084
bl Options_GetFrame
ldr r1, _02232B5C ; =0x00002B4C
str r0, [r4, r1]
sub r1, #0xc
@@ -18540,7 +18540,7 @@ MOD83_02236764: ; 0x02236764
ldr r0, [r4, #0x10]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0x18]
bl FUN_02025084
bl Options_GetFrame
str r0, [r4, #0x1c]
ldr r1, _022367F8 ; =0x00000496
mov r0, #9
+110
View File
@@ -0,0 +1,110 @@
#include "global.h"
#include "heap.h"
#include "main.h"
#include "MI_memory.h"
#include "options.h"
#include "player_data.h"
#pragma thumb on
struct Options * Options_new(u32 heap_id) {
struct Options * ret = AllocFromHeap(heap_id, sizeof(struct Options));
Options_init(ret);
return ret;
}
void Options_copy(struct Options * src, struct Options * dest) {
MI_CpuCopy8(src, dest, sizeof(struct Options));
}
void Options_init(struct Options * options) {
MI_CpuFill8(options, 0, sizeof(struct Options));
options->textSpeed = 1; // mid speed
options->soundMethod = 0; // stereo
options->battleStyle = 0; // shift
options->battleScene = 0; // on
options->buttonMode = 0; // normal
options->frame = 0; // frame 1
}
void Options_SetButtonModeOnMain(struct SaveBlock2 * sav2, u32 buttonMode) {
if (sav2 != NULL) {
buttonMode = Options_GetButtonMode(Sav2_PlayerData_GetOptionsAddr(sav2));
}
switch (buttonMode) {
case 1:
gMain.unk34 = 1;
break;
case 2:
gMain.unk34 = 3;
break;
case 0:
default:
gMain.unk34 = 0;
break;
}
}
u16 Options_GetTextSpeed(struct Options * options) {
return options->textSpeed;
}
void Options_SetTextSpeed(struct Options * options, u16 textSpeed) {
options->textSpeed = (u16)(u32)textSpeed;
}
u32 Options_GetTextFrameDelay(struct Options * options) {
u16 textSpeed = Options_GetTextSpeed(options);
if (textSpeed == 0) {
return 8;
}
if (textSpeed == 1) {
return 4;
}
return 1;
}
u16 Options_GetSoundMethod(struct Options * options) {
return options->soundMethod;
}
void Options_SetSoundMethod(struct Options * options, u16 soundMethod) {
options->soundMethod = (u16)(u32)soundMethod;
}
u16 Options_GetBattleScene(struct Options * options) {
return options->battleScene;
}
void Options_SetBattleScene(struct Options * options, u16 battleScene) {
options->battleScene = (u16)(u32)battleScene;
}
u16 Options_GetBattleStyle(struct Options * options) {
return options->battleStyle;
}
void Options_SetBattleStyle(struct Options * options, u16 battleStyle) {
options->battleStyle = (u16)(u32)battleStyle;
}
u16 Options_GetButtonMode(struct Options * options) {
return options->buttonMode;
}
void Options_SetButtonMode(struct Options * options, u16 buttonMode) {
options->buttonMode = (u16)(u32)buttonMode;
}
u16 Options_GetFrame(struct Options * options) {
return options->frame;
}
void Options_SetFrame(struct Options * options, u16 frame) {
options->frame = (u16)(u32)frame;
}
+1 -1
View File
@@ -38,7 +38,7 @@ void InitSoundData(void * a0, struct Options * a1)
FUN_020040A4(sdat);
UNK_02107070[1] = 0;
sdat->unk_BCD4C = a0;
FUN_02004D60(a1->unk0_4);
FUN_02004D60(a1->soundMethod);
}
void DoSoundUpdateFrame(void)
+22 -6
View File
@@ -2,14 +2,30 @@
#define POKEDIAMOND_OPTIONS_H
struct Options {
u16 unk0_0:4;
u16 unk0_4:2;
u16 unk0_6:1;
u16 unk0_7:1;
u16 unk0_8:2;
u16 unk0_A:5;
u16 textSpeed:4;
u16 soundMethod:2;
u16 battleStyle:1;
u16 battleScene:1;
u16 buttonMode:2;
u16 frame:5;
};
struct Options * Options_new(u32 heap_id);
void Options_copy(struct Options * src, struct Options * dest);
void Options_init(struct Options * options);
void Options_SetButtonModeOnMain(struct SaveBlock2 * sav2, u32 buttonMode);
u16 Options_GetTextSpeed(struct Options * options);
void Options_SetTextSpeed(struct Options * options, u16 textSpeed);
u32 Options_GetTextFrameDelay(struct Options * options);
u16 Options_GetSoundMethod(struct Options * options);
void Options_SetSoundMethod(struct Options * options, u16 soundMethod);
u16 Options_GetBattleScene(struct Options * options);
void Options_SetBattleScene(struct Options * options, u16 battleScene);
u16 Options_GetBattleStyle(struct Options * options);
void Options_SetBattleStyle(struct Options * options, u16 battleStyle);
u16 Options_GetButtonMode(struct Options * options);
void Options_SetButtonMode(struct Options * options, u16 buttonMode);
u16 Options_GetFrame(struct Options * options);
void Options_SetFrame(struct Options * options, u16 frame);
#endif //POKEDIAMOND_OPTIONS_H