diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-11-01 23:23:32 -0600 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-11-01 23:23:32 -0600 |
commit | 9d383609e21adfc35004cdf87f9231039c701b23 (patch) | |
tree | 3c93896b32329dd53fef2b52a99fba09d2d558c8 | |
parent | 22f19f8d55bdc749775438b34cdaa209d07bd8c1 (diff) |
some splitting and sync'ing declarations/vars
-rw-r--r-- | asm/code_8095014.s | 749 | ||||
-rw-r--r-- | asm/code_8097F40.s | 720 | ||||
-rw-r--r-- | include/save.h | 16 | ||||
-rwxr-xr-x | ld_script.txt | 2 | ||||
-rw-r--r-- | src/code_8097F40.c | 28 | ||||
-rw-r--r-- | src/save_mid.c | 32 |
6 files changed, 774 insertions, 773 deletions
diff --git a/asm/code_8095014.s b/asm/code_8095014.s index 4765d4d..a352f32 100644 --- a/asm/code_8095014.s +++ b/asm/code_8095014.s @@ -6336,753 +6336,4 @@ _08097F2C: bx r1 thumb_func_end sub_8097DF0 - thumb_func_start sub_8097F40 -sub_8097F40: - push {lr} - movs r2, 0 - ldr r1, _08097F58 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _08097F50 - movs r2, 0x1 -_08097F50: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_08097F58: .4byte gUnknown_810ACC0 - thumb_func_end sub_8097F40 - - thumb_func_start sub_8097F5C -sub_8097F5C: - ldr r1, _08097F64 - ldr r0, _08097F68 - str r0, [r1] - bx lr - .align 2, 0 -_08097F64: .4byte gUnknown_203B498 -_08097F68: .4byte gUnknown_2039840 - thumb_func_end sub_8097F5C - - thumb_func_start sub_8097F6C -sub_8097F6C: - ldr r0, _08097F70 - bx lr - .align 2, 0 -_08097F70: .4byte gUnknown_2039840 - thumb_func_end sub_8097F6C - - thumb_func_start sub_8097F74 -sub_8097F74: - push {r4,lr} - ldr r4, _08097FA0 - ldr r0, [r4] - movs r1, 0 - movs r2, 0x64 - bl memset - movs r2, 0 - ldr r3, _08097FA4 -_08097F86: - ldr r0, [r4] - adds r0, 0x58 - adds r0, r2 - ldrb r1, [r3, 0x2] - strb r1, [r0] - adds r3, 0x4 - adds r2, 0x1 - cmp r2, 0xB - ble _08097F86 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097FA0: .4byte gUnknown_203B498 -_08097FA4: .4byte gUnknown_810AD0C - thumb_func_end sub_8097F74 - - thumb_func_start sub_8097FA8 -sub_8097FA8: - lsls r0, 24 - ldr r1, _08097FCC - ldr r3, [r1] - lsrs r1, r0, 29 - lsls r1, 2 - adds r3, 0x48 - adds r3, r1 - movs r1, 0xF8 - lsls r1, 21 - ands r1, r0 - lsrs r1, 24 - movs r2, 0x1 - lsls r2, r1 - ldr r0, [r3] - orrs r0, r2 - str r0, [r3] - bx lr - .align 2, 0 -_08097FCC: .4byte gUnknown_203B498 - thumb_func_end sub_8097FA8 - - thumb_func_start sub_8097FD0 -sub_8097FD0: - lsls r0, 24 - ldr r1, _08097FF4 - ldr r3, [r1] - lsrs r1, r0, 29 - lsls r1, 2 - adds r3, 0x3C - adds r3, r1 - movs r1, 0xF8 - lsls r1, 21 - ands r1, r0 - lsrs r1, 24 - movs r2, 0x1 - lsls r2, r1 - ldr r0, [r3] - orrs r0, r2 - str r0, [r3] - bx lr - .align 2, 0 -_08097FF4: .4byte gUnknown_203B498 - thumb_func_end sub_8097FD0 - - thumb_func_start sub_8097FF8 -sub_8097FF8: - push {r4-r7,lr} - movs r4, 0 - ldr r6, _08098040 - movs r7, 0x1 -_08098000: - ldr r5, [r6] - adds r0, r4, 0 - cmp r4, 0 - bge _0809800A - adds r0, 0x1F -_0809800A: - asrs r0, 5 - lsls r3, r0, 2 - adds r1, r5, 0 - adds r1, 0x48 - adds r1, r3 - lsls r0, 5 - subs r0, r4, r0 - adds r2, r7, 0 - lsls r2, r0 - ldr r0, [r1] - ands r0, r2 - cmp r0, 0 - beq _08098030 - adds r1, r5, 0 - adds r1, 0x3C - adds r1, r3 - ldr r0, [r1] - orrs r0, r2 - str r0, [r1] -_08098030: - adds r4, 0x1 - cmp r4, 0x3F - ble _08098000 - bl sub_8098080 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098040: .4byte gUnknown_203B498 - thumb_func_end sub_8097FF8 - - thumb_func_start sub_8098044 -sub_8098044: - push {r4,r5,lr} - lsls r0, 24 - ldr r1, _0809807C - ldr r3, [r1] - lsrs r5, r0, 29 - lsls r5, 2 - adds r4, r3, 0 - adds r4, 0x3C - adds r4, r5 - movs r1, 0xF8 - lsls r1, 21 - ands r1, r0 - lsrs r1, 24 - movs r2, 0x1 - lsls r2, r1 - mvns r2, r2 - ldr r0, [r4] - ands r0, r2 - str r0, [r4] - adds r3, 0x48 - adds r3, r5 - ldr r0, [r3] - ands r0, r2 - str r0, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809807C: .4byte gUnknown_203B498 - thumb_func_end sub_8098044 - - thumb_func_start sub_8098080 -sub_8098080: - push {r4,lr} - movs r2, 0 - ldr r4, _080980A0 - movs r3, 0 -_08098088: - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, 0x48 - adds r0, r1 - str r3, [r0] - adds r2, 0x1 - cmp r2, 0x2 - ble _08098088 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080980A0: .4byte gUnknown_203B498 - thumb_func_end sub_8098080 - - thumb_func_start sub_80980A4 -sub_80980A4: - ldr r0, _080980B0 - ldr r2, [r0] - ldrb r0, [r2] - movs r1, 0x1 - strb r1, [r2] - bx lr - .align 2, 0 -_080980B0: .4byte gUnknown_203B498 - thumb_func_end sub_80980A4 - - thumb_func_start sub_80980B4 -sub_80980B4: - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - adds r3, r1, 0 - ldr r0, _080980F8 - cmp r1, r0 - beq _080980F4 - adds r0, 0x1 - cmp r1, r0 - beq _080980F4 - adds r0, 0x1 - cmp r1, r0 - beq _080980F4 - ldr r0, _080980FC - ldr r2, [r0] - adds r0, r1, 0 - cmp r1, 0 - bge _080980DA - adds r0, 0x1F -_080980DA: - asrs r0, 5 - lsls r1, r0, 2 - adds r2, 0x4 - adds r2, r1 - lsls r0, 5 - subs r0, r3, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] -_080980F4: - pop {r0} - bx r0 - .align 2, 0 -_080980F8: .4byte 0x000001a5 -_080980FC: .4byte gUnknown_203B498 - thumb_func_end sub_80980B4 - - thumb_func_start sub_8098100 -sub_8098100: - push {lr} - lsls r1, r0, 24 - lsrs r3, r1, 24 - cmp r3, 0x3F - bls _0809810E - movs r0, 0 - b _0809812C -_0809810E: - ldr r0, _08098130 - ldr r2, [r0] - lsrs r0, r1, 29 - lsls r0, 2 - adds r2, 0x3C - adds r2, r0 - movs r0, 0x1F - ands r0, r3 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _0809812C - movs r0, 0x1 -_0809812C: - pop {r1} - bx r1 - .align 2, 0 -_08098130: .4byte gUnknown_203B498 - thumb_func_end sub_8098100 - - thumb_func_start sub_8098134 -sub_8098134: - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - adds r3, r1, 0 - ldr r0, _0809816C - ldr r2, [r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08098148 - adds r0, 0x1F -_08098148: - asrs r0, 5 - lsls r1, r0, 2 - adds r2, 0x4 - adds r2, r1 - lsls r0, 5 - subs r0, r3, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _08098166 - movs r0, 0x1 -_08098166: - pop {r1} - bx r1 - .align 2, 0 -_0809816C: .4byte gUnknown_203B498 - thumb_func_end sub_8098134 - - thumb_func_start sub_8098170 -sub_8098170: - push {lr} - adds r3, r0, 0 - ldr r0, _0809819C - ldr r2, [r0] - adds r0, r3, 0 - cmp r3, 0 - bge _08098180 - adds r0, 0x1F -_08098180: - asrs r0, 5 - lsls r1, r0, 2 - adds r2, 0x54 - adds r2, r1 - lsls r0, 5 - subs r0, r3, r0 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0809819C: .4byte gUnknown_203B498 - thumb_func_end sub_8098170 - - thumb_func_start sub_80981A0 -sub_80981A0: - push {lr} - adds r3, r0, 0 - cmp r3, 0x1E - ble _080981AC - movs r0, 0 - b _080981D4 -_080981AC: - ldr r0, _080981D8 - ldr r2, [r0] - adds r1, r3, 0 - cmp r3, 0 - bge _080981B8 - adds r1, 0x1F -_080981B8: - asrs r1, 5 - lsls r0, r1, 2 - adds r2, 0x54 - adds r2, r0 - lsls r1, 5 - subs r1, r3, r1 - movs r0, 0x1 - lsls r0, r1 - ldr r2, [r2] - ands r2, r0 - cmp r2, 0 - beq _080981D2 - movs r2, 0x1 -_080981D2: - adds r0, r2, 0 -_080981D4: - pop {r1} - bx r1 - .align 2, 0 -_080981D8: .4byte gUnknown_203B498 - thumb_func_end sub_80981A0 - - thumb_func_start sub_80981DC -sub_80981DC: - push {r4,r5,lr} - lsls r0, 16 - asrs r3, r0, 16 - movs r1, 0 - ldr r4, _080981FC - ldr r2, _08098200 -_080981E8: - movs r5, 0 - ldrsh r0, [r2, r5] - cmp r0, r3 - bne _08098204 - ldr r0, [r4] - adds r0, 0x58 - adds r0, r1 - ldrb r0, [r0] - b _0809820E - .align 2, 0 -_080981FC: .4byte gUnknown_203B498 -_08098200: .4byte gUnknown_810AD0C -_08098204: - adds r2, 0x4 - adds r1, 0x1 - cmp r1, 0xB - ble _080981E8 - movs r0, 0x1 -_0809820E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80981DC - - thumb_func_start sub_8098214 -sub_8098214: - push {r4-r6,lr} - lsls r0, 16 - asrs r3, r0, 16 - movs r1, 0 - ldr r5, _08098240 - movs r4, 0x1 - ldr r2, _08098244 -_08098222: - movs r6, 0 - ldrsh r0, [r2, r6] - cmp r0, r3 - bne _08098232 - ldr r0, [r5] - adds r0, 0x58 - adds r0, r1 - strb r4, [r0] -_08098232: - adds r2, 0x4 - adds r1, 0x1 - cmp r1, 0xB - ble _08098222 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098240: .4byte gUnknown_203B498 -_08098244: .4byte gUnknown_810AD0C - thumb_func_end sub_8098214 - - thumb_func_start sub_8098248 -sub_8098248: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r7, r0, 0 - mov r5, sp - adds r5, 0x3 - movs r0, 0xFF - strb r0, [r5] - add r4, sp, 0x4 - movs r0, 0 - strb r0, [r4] - ldr r0, _08098300 - ldr r1, [r0] - adds r0, r7, 0 - movs r2, 0x1 - bl sub_809488C - movs r6, 0 - mov r9, r5 - mov r8, r4 - mov r4, sp - adds r4, 0x1 - mov r5, sp - adds r5, 0x2 -_0809827C: - lsls r0, r6, 16 - asrs r0, 16 - bl sub_8098134 - mov r1, sp - strb r0, [r1] - adds r0, r7, 0 - movs r2, 0x1 - bl sub_809488C - adds r6, 0x1 - ldr r0, _08098304 - cmp r6, r0 - ble _0809827C - movs r6, 0 -_0809829A: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_8098100 - strb r0, [r4] - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_809488C - adds r6, 0x1 - cmp r6, 0x3F - ble _0809829A - movs r6, 0 - adds r4, r5, 0 -_080982B8: - adds r0, r6, 0 - bl sub_80981A0 - strb r0, [r4] - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_809488C - adds r6, 0x1 - cmp r6, 0x1E - ble _080982B8 - movs r6, 0 -_080982D2: - ldr r0, _08098300 - ldr r0, [r0] - adds r0, 0x58 - adds r0, r6 - ldrb r0, [r0] - mov r1, r8 - cmp r0, 0 - beq _080982E4 - mov r1, r9 -_080982E4: - adds r0, r7, 0 - movs r2, 0x1 - bl sub_809488C - adds r6, 0x1 - cmp r6, 0xB - ble _080982D2 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098300: .4byte gUnknown_203B498 -_08098304: .4byte 0x000001a7 - thumb_func_end sub_8098248 - - thumb_func_start sub_8098308 -sub_8098308: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - ldr r4, _080983D0 - ldr r0, [r4] - movs r1, 0 - movs r2, 0x64 - bl memset - ldr r1, [r4] - adds r0, r6, 0 - movs r2, 0x1 - bl sub_8094924 - movs r4, 0 - mov r5, sp - adds r5, 0x1 - mov r7, sp - adds r7, 0x2 - movs r0, 0x3 - add r0, sp - mov r8, r0 -_08098338: - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _08098352 - lsls r0, r4, 16 - asrs r0, 16 - bl sub_80980B4 -_08098352: - adds r4, 0x1 - ldr r0, _080983D4 - cmp r4, r0 - ble _08098338 - movs r4, 0 -_0809835C: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094924 - ldrb r0, [r5] - cmp r0, 0 - beq _08098374 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8097FA8 -_08098374: - adds r4, 0x1 - cmp r4, 0x3F - ble _0809835C - movs r4, 0 - adds r5, r7, 0 -_0809837E: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094924 - ldrb r0, [r5] - cmp r0, 0 - beq _08098394 - adds r0, r4, 0 - bl sub_8098170 -_08098394: - adds r4, 0x1 - cmp r4, 0x1E - ble _0809837E - movs r4, 0 -_0809839C: - adds r0, r6, 0 - mov r1, r8 - movs r2, 0x1 - bl sub_8094924 - ldr r0, _080983D0 - ldr r1, [r0] - adds r1, 0x58 - adds r1, r4 - mov r0, sp - adds r0, 0x3 - ldrb r2, [r0] - movs r0, 0x1 - ands r0, r2 - strb r0, [r1] - adds r4, 0x1 - cmp r4, 0xB - ble _0809839C - bl sub_8097FF8 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080983D0: .4byte gUnknown_203B498 -_080983D4: .4byte 0x000001a7 - thumb_func_end sub_8098308 - - thumb_func_start sub_80983D8 -sub_80983D8: - push {r4,lr} - movs r2, 0 - ldrsh r3, [r1, r2] - movs r4, 0 - ldrsh r2, [r0, r4] - subs r2, r3, r2 - movs r3, 0x2 - ldrsh r1, [r1, r3] - movs r4, 0x2 - ldrsh r0, [r0, r4] - subs r1, r0 - cmp r2, 0 - bne _080983FA - cmp r1, 0 - bne _080983FA - movs r0, 0 - b _08098428 -_080983FA: - cmp r2, 0 - ble _08098400 - movs r2, 0x1 -_08098400: - cmp r1, 0 - ble _08098406 - movs r1, 0x1 -_08098406: - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - bgt _08098410 - adds r2, r0, 0 -_08098410: - cmp r1, r0 - bgt _08098416 - adds r1, r0, 0 -_08098416: - ldr r3, _08098430 - adds r2, 0x1 - adds r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] -_08098428: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08098430: .4byte gUnknown_8115E94 - thumb_func_end sub_80983D8 - - thumb_func_start sub_8098434 -sub_8098434: - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - movs r0, 0 - ldrsh r1, [r3, r0] - movs r2, 0 - ldrsh r0, [r4, r2] - subs r2, r1, r0 - cmp r2, 0 - bge _0809844A - negs r2, r2 -_0809844A: - movs r0, 0x2 - ldrsh r1, [r3, r0] - movs r3, 0x2 - ldrsh r0, [r4, r3] - subs r0, r1, r0 - cmp r0, 0 - bge _0809845A - negs r0, r0 -_0809845A: - cmp r0, r2 - bge _08098460 - adds r0, r2, 0 -_08098460: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8098434 - .align 2,0 diff --git a/asm/code_8097F40.s b/asm/code_8097F40.s new file mode 100644 index 0000000..7409774 --- /dev/null +++ b/asm/code_8097F40.s @@ -0,0 +1,720 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8097F74 +sub_8097F74: + push {r4,lr} + ldr r4, _08097FA0 + ldr r0, [r4] + movs r1, 0 + movs r2, 0x64 + bl memset + movs r2, 0 + ldr r3, _08097FA4 +_08097F86: + ldr r0, [r4] + adds r0, 0x58 + adds r0, r2 + ldrb r1, [r3, 0x2] + strb r1, [r0] + adds r3, 0x4 + adds r2, 0x1 + cmp r2, 0xB + ble _08097F86 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097FA0: .4byte gUnknown_203B498 +_08097FA4: .4byte gUnknown_810AD0C + thumb_func_end sub_8097F74 + + thumb_func_start sub_8097FA8 +sub_8097FA8: + lsls r0, 24 + ldr r1, _08097FCC + ldr r3, [r1] + lsrs r1, r0, 29 + lsls r1, 2 + adds r3, 0x48 + adds r3, r1 + movs r1, 0xF8 + lsls r1, 21 + ands r1, r0 + lsrs r1, 24 + movs r2, 0x1 + lsls r2, r1 + ldr r0, [r3] + orrs r0, r2 + str r0, [r3] + bx lr + .align 2, 0 +_08097FCC: .4byte gUnknown_203B498 + thumb_func_end sub_8097FA8 + + thumb_func_start sub_8097FD0 +sub_8097FD0: + lsls r0, 24 + ldr r1, _08097FF4 + ldr r3, [r1] + lsrs r1, r0, 29 + lsls r1, 2 + adds r3, 0x3C + adds r3, r1 + movs r1, 0xF8 + lsls r1, 21 + ands r1, r0 + lsrs r1, 24 + movs r2, 0x1 + lsls r2, r1 + ldr r0, [r3] + orrs r0, r2 + str r0, [r3] + bx lr + .align 2, 0 +_08097FF4: .4byte gUnknown_203B498 + thumb_func_end sub_8097FD0 + + thumb_func_start sub_8097FF8 +sub_8097FF8: + push {r4-r7,lr} + movs r4, 0 + ldr r6, _08098040 + movs r7, 0x1 +_08098000: + ldr r5, [r6] + adds r0, r4, 0 + cmp r4, 0 + bge _0809800A + adds r0, 0x1F +_0809800A: + asrs r0, 5 + lsls r3, r0, 2 + adds r1, r5, 0 + adds r1, 0x48 + adds r1, r3 + lsls r0, 5 + subs r0, r4, r0 + adds r2, r7, 0 + lsls r2, r0 + ldr r0, [r1] + ands r0, r2 + cmp r0, 0 + beq _08098030 + adds r1, r5, 0 + adds r1, 0x3C + adds r1, r3 + ldr r0, [r1] + orrs r0, r2 + str r0, [r1] +_08098030: + adds r4, 0x1 + cmp r4, 0x3F + ble _08098000 + bl sub_8098080 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098040: .4byte gUnknown_203B498 + thumb_func_end sub_8097FF8 + + thumb_func_start sub_8098044 +sub_8098044: + push {r4,r5,lr} + lsls r0, 24 + ldr r1, _0809807C + ldr r3, [r1] + lsrs r5, r0, 29 + lsls r5, 2 + adds r4, r3, 0 + adds r4, 0x3C + adds r4, r5 + movs r1, 0xF8 + lsls r1, 21 + ands r1, r0 + lsrs r1, 24 + movs r2, 0x1 + lsls r2, r1 + mvns r2, r2 + ldr r0, [r4] + ands r0, r2 + str r0, [r4] + adds r3, 0x48 + adds r3, r5 + ldr r0, [r3] + ands r0, r2 + str r0, [r3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809807C: .4byte gUnknown_203B498 + thumb_func_end sub_8098044 + + thumb_func_start sub_8098080 +sub_8098080: + push {r4,lr} + movs r2, 0 + ldr r4, _080980A0 + movs r3, 0 +_08098088: + ldr r0, [r4] + lsls r1, r2, 2 + adds r0, 0x48 + adds r0, r1 + str r3, [r0] + adds r2, 0x1 + cmp r2, 0x2 + ble _08098088 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080980A0: .4byte gUnknown_203B498 + thumb_func_end sub_8098080 + + thumb_func_start sub_80980A4 +sub_80980A4: + ldr r0, _080980B0 + ldr r2, [r0] + ldrb r0, [r2] + movs r1, 0x1 + strb r1, [r2] + bx lr + .align 2, 0 +_080980B0: .4byte gUnknown_203B498 + thumb_func_end sub_80980A4 + + thumb_func_start sub_80980B4 +sub_80980B4: + push {lr} + lsls r0, 16 + asrs r1, r0, 16 + adds r3, r1, 0 + ldr r0, _080980F8 + cmp r1, r0 + beq _080980F4 + adds r0, 0x1 + cmp r1, r0 + beq _080980F4 + adds r0, 0x1 + cmp r1, r0 + beq _080980F4 + ldr r0, _080980FC + ldr r2, [r0] + adds r0, r1, 0 + cmp r1, 0 + bge _080980DA + adds r0, 0x1F +_080980DA: + asrs r0, 5 + lsls r1, r0, 2 + adds r2, 0x4 + adds r2, r1 + lsls r0, 5 + subs r0, r3, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] +_080980F4: + pop {r0} + bx r0 + .align 2, 0 +_080980F8: .4byte 0x000001a5 +_080980FC: .4byte gUnknown_203B498 + thumb_func_end sub_80980B4 + + thumb_func_start sub_8098100 +sub_8098100: + push {lr} + lsls r1, r0, 24 + lsrs r3, r1, 24 + cmp r3, 0x3F + bls _0809810E + movs r0, 0 + b _0809812C +_0809810E: + ldr r0, _08098130 + ldr r2, [r0] + lsrs r0, r1, 29 + lsls r0, 2 + adds r2, 0x3C + adds r2, r0 + movs r0, 0x1F + ands r0, r3 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + beq _0809812C + movs r0, 0x1 +_0809812C: + pop {r1} + bx r1 + .align 2, 0 +_08098130: .4byte gUnknown_203B498 + thumb_func_end sub_8098100 + + thumb_func_start sub_8098134 +sub_8098134: + push {lr} + lsls r0, 16 + asrs r1, r0, 16 + adds r3, r1, 0 + ldr r0, _0809816C + ldr r2, [r0] + adds r0, r1, 0 + cmp r1, 0 + bge _08098148 + adds r0, 0x1F +_08098148: + asrs r0, 5 + lsls r1, r0, 2 + adds r2, 0x4 + adds r2, r1 + lsls r0, 5 + subs r0, r3, r0 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + beq _08098166 + movs r0, 0x1 +_08098166: + pop {r1} + bx r1 + .align 2, 0 +_0809816C: .4byte gUnknown_203B498 + thumb_func_end sub_8098134 + + thumb_func_start sub_8098170 +sub_8098170: + push {lr} + adds r3, r0, 0 + ldr r0, _0809819C + ldr r2, [r0] + adds r0, r3, 0 + cmp r3, 0 + bge _08098180 + adds r0, 0x1F +_08098180: + asrs r0, 5 + lsls r1, r0, 2 + adds r2, 0x54 + adds r2, r1 + lsls r0, 5 + subs r0, r3, r0 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_0809819C: .4byte gUnknown_203B498 + thumb_func_end sub_8098170 + + thumb_func_start sub_80981A0 +sub_80981A0: + push {lr} + adds r3, r0, 0 + cmp r3, 0x1E + ble _080981AC + movs r0, 0 + b _080981D4 +_080981AC: + ldr r0, _080981D8 + ldr r2, [r0] + adds r1, r3, 0 + cmp r3, 0 + bge _080981B8 + adds r1, 0x1F +_080981B8: + asrs r1, 5 + lsls r0, r1, 2 + adds r2, 0x54 + adds r2, r0 + lsls r1, 5 + subs r1, r3, r1 + movs r0, 0x1 + lsls r0, r1 + ldr r2, [r2] + ands r2, r0 + cmp r2, 0 + beq _080981D2 + movs r2, 0x1 +_080981D2: + adds r0, r2, 0 +_080981D4: + pop {r1} + bx r1 + .align 2, 0 +_080981D8: .4byte gUnknown_203B498 + thumb_func_end sub_80981A0 + + thumb_func_start sub_80981DC +sub_80981DC: + push {r4,r5,lr} + lsls r0, 16 + asrs r3, r0, 16 + movs r1, 0 + ldr r4, _080981FC + ldr r2, _08098200 +_080981E8: + movs r5, 0 + ldrsh r0, [r2, r5] + cmp r0, r3 + bne _08098204 + ldr r0, [r4] + adds r0, 0x58 + adds r0, r1 + ldrb r0, [r0] + b _0809820E + .align 2, 0 +_080981FC: .4byte gUnknown_203B498 +_08098200: .4byte gUnknown_810AD0C +_08098204: + adds r2, 0x4 + adds r1, 0x1 + cmp r1, 0xB + ble _080981E8 + movs r0, 0x1 +_0809820E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80981DC + + thumb_func_start sub_8098214 +sub_8098214: + push {r4-r6,lr} + lsls r0, 16 + asrs r3, r0, 16 + movs r1, 0 + ldr r5, _08098240 + movs r4, 0x1 + ldr r2, _08098244 +_08098222: + movs r6, 0 + ldrsh r0, [r2, r6] + cmp r0, r3 + bne _08098232 + ldr r0, [r5] + adds r0, 0x58 + adds r0, r1 + strb r4, [r0] +_08098232: + adds r2, 0x4 + adds r1, 0x1 + cmp r1, 0xB + ble _08098222 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098240: .4byte gUnknown_203B498 +_08098244: .4byte gUnknown_810AD0C + thumb_func_end sub_8098214 + + thumb_func_start sub_8098248 +sub_8098248: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r7, r0, 0 + mov r5, sp + adds r5, 0x3 + movs r0, 0xFF + strb r0, [r5] + add r4, sp, 0x4 + movs r0, 0 + strb r0, [r4] + ldr r0, _08098300 + ldr r1, [r0] + adds r0, r7, 0 + movs r2, 0x1 + bl sub_809488C + movs r6, 0 + mov r9, r5 + mov r8, r4 + mov r4, sp + adds r4, 0x1 + mov r5, sp + adds r5, 0x2 +_0809827C: + lsls r0, r6, 16 + asrs r0, 16 + bl sub_8098134 + mov r1, sp + strb r0, [r1] + adds r0, r7, 0 + movs r2, 0x1 + bl sub_809488C + adds r6, 0x1 + ldr r0, _08098304 + cmp r6, r0 + ble _0809827C + movs r6, 0 +_0809829A: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_8098100 + strb r0, [r4] + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_809488C + adds r6, 0x1 + cmp r6, 0x3F + ble _0809829A + movs r6, 0 + adds r4, r5, 0 +_080982B8: + adds r0, r6, 0 + bl sub_80981A0 + strb r0, [r4] + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_809488C + adds r6, 0x1 + cmp r6, 0x1E + ble _080982B8 + movs r6, 0 +_080982D2: + ldr r0, _08098300 + ldr r0, [r0] + adds r0, 0x58 + adds r0, r6 + ldrb r0, [r0] + mov r1, r8 + cmp r0, 0 + beq _080982E4 + mov r1, r9 +_080982E4: + adds r0, r7, 0 + movs r2, 0x1 + bl sub_809488C + adds r6, 0x1 + cmp r6, 0xB + ble _080982D2 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098300: .4byte gUnknown_203B498 +_08098304: .4byte 0x000001a7 + thumb_func_end sub_8098248 + + thumb_func_start sub_8098308 +sub_8098308: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + ldr r4, _080983D0 + ldr r0, [r4] + movs r1, 0 + movs r2, 0x64 + bl memset + ldr r1, [r4] + adds r0, r6, 0 + movs r2, 0x1 + bl sub_8094924 + movs r4, 0 + mov r5, sp + adds r5, 0x1 + mov r7, sp + adds r7, 0x2 + movs r0, 0x3 + add r0, sp + mov r8, r0 +_08098338: + adds r0, r6, 0 + mov r1, sp + movs r2, 0x1 + bl sub_8094924 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0 + beq _08098352 + lsls r0, r4, 16 + asrs r0, 16 + bl sub_80980B4 +_08098352: + adds r4, 0x1 + ldr r0, _080983D4 + cmp r4, r0 + ble _08098338 + movs r4, 0 +_0809835C: + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_8094924 + ldrb r0, [r5] + cmp r0, 0 + beq _08098374 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8097FA8 +_08098374: + adds r4, 0x1 + cmp r4, 0x3F + ble _0809835C + movs r4, 0 + adds r5, r7, 0 +_0809837E: + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_8094924 + ldrb r0, [r5] + cmp r0, 0 + beq _08098394 + adds r0, r4, 0 + bl sub_8098170 +_08098394: + adds r4, 0x1 + cmp r4, 0x1E + ble _0809837E + movs r4, 0 +_0809839C: + adds r0, r6, 0 + mov r1, r8 + movs r2, 0x1 + bl sub_8094924 + ldr r0, _080983D0 + ldr r1, [r0] + adds r1, 0x58 + adds r1, r4 + mov r0, sp + adds r0, 0x3 + ldrb r2, [r0] + movs r0, 0x1 + ands r0, r2 + strb r0, [r1] + adds r4, 0x1 + cmp r4, 0xB + ble _0809839C + bl sub_8097FF8 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080983D0: .4byte gUnknown_203B498 +_080983D4: .4byte 0x000001a7 + thumb_func_end sub_8098308 + + thumb_func_start sub_80983D8 +sub_80983D8: + push {r4,lr} + movs r2, 0 + ldrsh r3, [r1, r2] + movs r4, 0 + ldrsh r2, [r0, r4] + subs r2, r3, r2 + movs r3, 0x2 + ldrsh r1, [r1, r3] + movs r4, 0x2 + ldrsh r0, [r0, r4] + subs r1, r0 + cmp r2, 0 + bne _080983FA + cmp r1, 0 + bne _080983FA + movs r0, 0 + b _08098428 +_080983FA: + cmp r2, 0 + ble _08098400 + movs r2, 0x1 +_08098400: + cmp r1, 0 + ble _08098406 + movs r1, 0x1 +_08098406: + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + bgt _08098410 + adds r2, r0, 0 +_08098410: + cmp r1, r0 + bgt _08098416 + adds r1, r0, 0 +_08098416: + ldr r3, _08098430 + adds r2, 0x1 + adds r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] +_08098428: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08098430: .4byte gUnknown_8115E94 + thumb_func_end sub_80983D8 + + thumb_func_start sub_8098434 +sub_8098434: + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + movs r0, 0 + ldrsh r1, [r3, r0] + movs r2, 0 + ldrsh r0, [r4, r2] + subs r2, r1, r0 + cmp r2, 0 + bge _0809844A + negs r2, r2 +_0809844A: + movs r0, 0x2 + ldrsh r1, [r3, r0] + movs r3, 0x2 + ldrsh r0, [r4, r3] + subs r0, r1, r0 + cmp r0, 0 + bge _0809845A + negs r0, r0 +_0809845A: + cmp r0, r2 + bge _08098460 + adds r0, r2, 0 +_08098460: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8098434 + + .align 2,0 diff --git a/include/save.h b/include/save.h index 6d0f568..c4d8ca6 100644 --- a/include/save.h +++ b/include/save.h @@ -7,17 +7,17 @@ struct unkTimeStruct }; struct UnkStruct_203B184 { - /* 0x0 */ u32 unk0; - /* 0x4 */ u32 unk4; - /* 0x8 */ u32 unk8; - /* 0xC */ u32 unkC; - /* 0x10 */ u32 unk10; - /* 0x14 */ u32 unk14; + /* 0x0 */ u32 *unk0; + /* 0x4 */ u32 *unk4; + /* 0x8 */ u32 *unk8; + /* 0xC */ u32 *unkC; + /* 0x10 */ u32 *unk10; + /* 0x14 */ u32 *unk14; /* 0x18 */ u32 unk18; /* 0x1C */ u32 unk1C; /* 0x20 */ u32 unk20; - /* 0x24 */ u32 unk24; - /* 0x28 */ u32 unk28; + /* 0x24 */ u8 *unk24; + /* 0x28 */ u32 *unk28; /* 0x2C */ u32 unk2C; /* 0x30 */ struct unkTimeStruct *unk30; u32 unk34; diff --git a/ld_script.txt b/ld_script.txt index d70a9ca..875388b 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -118,6 +118,8 @@ SECTIONS { asm/code_8094F88.o(.text); src/code_8095014.o(.text); asm/code_8095014.o(.text); + src/code_8097F40.o(.text); + asm/code_8097F40.o(.text); asm/code_8098468.o(.text); src/code_8098BDC.o(.text); asm/code_8098BDC.o(.text); diff --git a/src/code_8097F40.c b/src/code_8097F40.c new file mode 100644 index 0000000..94d271c --- /dev/null +++ b/src/code_8097F40.c @@ -0,0 +1,28 @@ +#include "global.h" + +extern u8 gUnknown_810ACC0[]; +extern u8 *gUnknown_203B498; +extern u8 gUnknown_2039840; + +bool8 sub_8097F40(u32 r0) +{ + bool8 temp; + temp = FALSE; + if(gUnknown_810ACC0[r0] == 2) + { + temp = TRUE; + } + return temp; + +} + +void sub_8097F5C(void) +{ + gUnknown_203B498 = &gUnknown_2039840; +} + +u8 *sub_8097F6C(void) +{ + return &gUnknown_2039840; +} + diff --git a/src/save_mid.c b/src/save_mid.c index 43f8aaf..a124d66 100644 --- a/src/save_mid.c +++ b/src/save_mid.c @@ -25,41 +25,41 @@ struct unk_struct extern struct unk_203B188 *gUnknown_203B188; -extern u32 gUnknown_203B460; -extern u32 gUnknown_203B45C; -extern u32 gUnknown_203B480; -extern u32 gUnknown_203B484; -extern u32 gUnknown_203B488; -extern u32 gUnknown_203B48C; +extern u32 *gUnknown_203B460; +extern u32 *gUnknown_203B45C; +extern u32 *gUnknown_203B480; +extern u32 *gUnknown_203B484; +extern u32 *gUnknown_203B488; +extern u32 *gUnknown_203B48C; extern u32 gUnknown_203B490; extern u32 gUnknown_203B464; extern u32 gUnknown_203B494; -extern u32 gUnknown_203B498; -extern u32 gUnknown_203B468; +extern u8 *gUnknown_203B498; +extern u32 *gUnknown_203B468; extern u32 gUnknown_203B46C; extern void sub_800135C(void); -extern u32 sub_808CE00(void); +extern u32 *sub_808CE00(void); extern void sub_808CE08(void); -extern u32 sub_80909D0(void); +extern u32 *sub_80909D0(void); extern void sub_80909D8(void); extern u32 sub_809208C(void); extern void sub_8092094(void); -extern u32 sub_80923B0(void); +extern u32 *sub_80923B0(void); extern void sub_80923B8(void); extern u32 sub_8094990(void); extern void sub_8094998(u8 r0); -extern u32 sub_80950F8(void); -extern u32 sub_8095100(void); -extern u32 sub_8095108(void); -extern u32 sub_8095110(void); +extern u32 *sub_80950F8(void); +extern u32 *sub_8095100(void); +extern u32 *sub_8095108(void); +extern u32 *sub_8095110(void); extern void sub_8095118(void); extern u32 sub_80958F8(void); extern void sub_8095900(void); extern u32 sub_8097680(void); extern void sub_80972F4(void); extern void sub_80974E8(void); -extern u32 sub_8097F6C(void); +extern u8 *sub_8097F6C(void); extern void sub_8097F74(void); extern void sub_8011C28(u32 r0); |