diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-06-23 17:35:37 -0500 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2021-06-23 17:35:37 -0500 |
commit | d1685379681008d41f78fa4a6ae17ace5ee2dbfa (patch) | |
tree | 22645f079beea40333e7e822f055c063781ef806 /asm | |
parent | f1fdcc2b0ade13ad1a4cc7360eac70f27396d26a (diff) |
Finish out game options and FatalError
Some data cleanup as well. Thanks pika for the noreturn tip for
FatalError.
Diffstat (limited to 'asm')
-rw-r--r-- | asm/code_2.s | 4 | ||||
-rw-r--r-- | asm/code_8009804.s | 30 | ||||
-rw-r--r-- | asm/code_800D090.s | 2 | ||||
-rw-r--r-- | asm/code_803B050.s | 8 | ||||
-rw-r--r-- | asm/code_809017C.s | 992 | ||||
-rw-r--r-- | asm/code_8090208.s | 922 | ||||
-rw-r--r-- | asm/code_8094D28.s | 314 | ||||
-rw-r--r-- | asm/code_8097670.s | 4 | ||||
-rw-r--r-- | asm/debug.s | 30 | ||||
-rw-r--r-- | asm/game_options.s | 801 |
10 files changed, 1245 insertions, 1862 deletions
diff --git a/asm/code_2.s b/asm/code_2.s index 23a31d1..2fca8d0 100644 --- a/asm/code_2.s +++ b/asm/code_2.s @@ -193,7 +193,7 @@ _080007CC: movs r0, 0x3F str r0, [sp] mov r0, sp - bl sub_8097688 + bl SetDungeonLocationInfo bl sub_80140DC cmp r5, 0x3 bhi _080007EC @@ -1160,7 +1160,7 @@ _08000FAC: _08000FB8: adds r0, r4, 0 adds r0, 0x80 - bl sub_8097688 + bl SetDungeonLocationInfo bl sub_8011924 movs r1, 0 ldrsh r0, [r7, r1] diff --git a/asm/code_8009804.s b/asm/code_8009804.s index ba1173b..4167e80 100644 --- a/asm/code_8009804.s +++ b/asm/code_8009804.s @@ -5,36 +5,6 @@ .text - thumb_func_start sub_80099F0 -sub_80099F0: - push {lr} - adds r2, r0, 0 - ldr r0, _08009A0C - movs r1, 0x7 - movs r3, 0xE2 - lsls r3, 1 - adds r0, r3 -_080099FE: - str r2, [r0] - subs r0, 0x40 - subs r1, 0x1 - cmp r1, 0 - bge _080099FE - pop {r0} - bx r0 - .align 2, 0 -_08009A0C: .4byte gUnknown_202D038 - thumb_func_end sub_80099F0 - - thumb_func_start sub_8009A10 -sub_8009A10: - push {lr} - ldr r0, [r0, 0x4] - bl sub_8009A1C - pop {r0} - bx r0 - thumb_func_end sub_8009A10 - thumb_func_start sub_8009A1C sub_8009A1C: push {r4-r6,lr} diff --git a/asm/code_800D090.s b/asm/code_800D090.s index a451e00..fc0455f 100644 --- a/asm/code_800D090.s +++ b/asm/code_800D090.s @@ -7711,7 +7711,7 @@ _08010BD0: bl sub_80073B8 ldr r0, _08010C08 adds r1, r5, 0 - bl sub_809027C + bl CopyDungeonName1toBuffer ldr r2, _08010C0C movs r0, 0 str r0, [sp] diff --git a/asm/code_803B050.s b/asm/code_803B050.s index ff10300..c9ff87c 100644 --- a/asm/code_803B050.s +++ b/asm/code_803B050.s @@ -1156,7 +1156,7 @@ _0803B916: add r4, sp, 0xE0 ldr r1, [r7, 0x8] adds r0, r4, 0 - bl sub_8090228 + bl PrintDungeonLocationtoBuffer ldr r1, _0803B938 add r0, sp, 0x4 adds r2, r4, 0 @@ -1167,7 +1167,7 @@ _0803B938: .4byte gUnknown_80E8884 _0803B93C: ldr r1, [r7, 0x8] add r0, sp, 0x4 - bl sub_8090228 + bl PrintDungeonLocationtoBuffer _0803B944: ldr r1, [r7, 0x48] adds r1, 0xC @@ -1819,7 +1819,7 @@ _0803BEC8: add r4, sp, 0x180 ldr r1, [r7, 0x8] adds r0, r4, 0 - bl sub_8090228 + bl PrintDungeonLocationtoBuffer ldr r1, _0803BF00 add r0, sp, 0x4 adds r2, r4, 0 @@ -1832,7 +1832,7 @@ _0803BF00: .4byte gUnknown_80E8884 _0803BF04: ldr r1, [r7, 0x8] add r0, sp, 0x4 - bl sub_8090228 + bl PrintDungeonLocationtoBuffer _0803BF0C: ldr r3, [r7] movs r0, 0 diff --git a/asm/code_809017C.s b/asm/code_809017C.s index 4c72eb6..3ef1c2c 100644 --- a/asm/code_809017C.s +++ b/asm/code_809017C.s @@ -86,996 +86,4 @@ _08090202: bx r0 thumb_func_end sub_80901D8 - thumb_func_start sub_8090208 -sub_8090208: - push {lr} - ldr r3, _08090220 - ldr r2, _08090224 - ldrb r1, [r1] - lsls r1, 3 - adds r1, r2 - ldr r2, [r1] - adds r1, r3, 0 - bl ExpandPlaceholdersBuffer - pop {r0} - bx r0 - .align 2, 0 -_08090220: .4byte gUnknown_8108F10 -_08090224: .4byte gDungeonNames - thumb_func_end sub_8090208 - - thumb_func_start sub_8090228 -sub_8090228: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, _08090250 - ldrb r3, [r4] - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809025C - ldr r1, _08090254 - ldr r2, _08090258 - lsls r0, r3, 3 - adds r0, r2 - ldr r2, [r0] - ldrb r3, [r4, 0x1] - adds r0, r5, 0 - bl ExpandPlaceholdersBuffer - b _0809026E - .align 2, 0 -_08090250: .4byte gDungeons -_08090254: .4byte gUnknown_8108F18 -_08090258: .4byte gDungeonNames -_0809025C: - ldr r1, _08090274 - ldr r2, _08090278 - lsls r0, r3, 3 - adds r0, r2 - ldr r2, [r0] - ldrb r3, [r4, 0x1] - adds r0, r5, 0 - bl ExpandPlaceholdersBuffer -_0809026E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08090274: .4byte gUnknown_8108F2C -_08090278: .4byte gDungeonNames - thumb_func_end sub_8090228 - - thumb_func_start sub_809027C -sub_809027C: - push {lr} - ldr r2, _08090294 - ldrb r1, [r1] - lsls r1, 3 - adds r1, r2 - ldr r1, [r1] - movs r2, 0x50 - bl strncpy - pop {r0} - bx r0 - .align 2, 0 -_08090294: .4byte gDungeonNames - thumb_func_end sub_809027C - - thumb_func_start sub_8090298 -sub_8090298: - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - bhi _080902AE - movs r0, 0x4 - b _080902C2 -_080902AE: - cmp r1, 0x3E - bhi _080902C0 - ldr r0, _080902BC - adds r0, r1, r0 - ldrb r0, [r0] - b _080902C2 - .align 2, 0 -_080902BC: .4byte gUnknown_81077A8 -_080902C0: - movs r0, 0x1 -_080902C2: - pop {r1} - bx r1 - thumb_func_end sub_8090298 - - thumb_func_start sub_80902C8 -sub_80902C8: - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - bls _080902EC - cmp r1, 0x3E - bhi _080902EC - ldr r0, _080902E8 - adds r0, r1, r0 - ldrb r0, [r0] - b _080902EE - .align 2, 0 -_080902E8: .4byte gUnknown_81077E8 -_080902EC: - movs r0, 0 -_080902EE: - pop {r1} - bx r1 - thumb_func_end sub_80902C8 - - thumb_func_start sub_80902F4 -sub_80902F4: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x7 - bl sub_809488C - adds r4, 0x1 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl sub_809488C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80902F4 - - thumb_func_start sub_8090314 -sub_8090314: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r0, r5, 0 - movs r2, 0x7 - bl sub_8094924 - adds r4, 0x1 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl sub_8094924 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8090314 - - thumb_func_start sub_809033C -sub_809033C: - lsls r0, 24 - ldr r1, _08090348 - lsrs r0, 20 - adds r0, r1 - ldrb r0, [r0, 0x1] - bx lr - .align 2, 0 -_08090348: .4byte gDungeons - thumb_func_end sub_809033C - - thumb_func_start sub_809034C -sub_809034C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xF8 - adds r7, r2, 0 - ldr r2, [sp, 0x118] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - asrs r1, 16 - str r1, [sp, 0xE0] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xE4] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0xE8] - bl sub_8090A34 - str r0, [sp, 0xEC] - movs r5, 0 - movs r0, 0 - str r0, [sp, 0xF4] - mov r8, r0 - add r4, sp, 0xC8 - movs r0, 0xA - strb r0, [r4] - add r1, sp, 0xF4 - ldrb r1, [r1] - strb r1, [r4, 0x1] - ldr r1, _0809040C - adds r0, r7, 0 - bl strcpy - movs r2, 0 - str r2, [sp, 0xF0] - movs r3, 0 - ldr r0, _08090410 - ldr r6, [r0] - movs r4, 0x1 -_080903A2: - movs r0, 0x58 - muls r0, r3 - adds r2, r6, r0 - ldrh r1, [r2] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _080903D0 - lsrs r0, r1, 1 - ands r0, r4 - cmp r0, 0 - beq _080903D0 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0 - beq _080903CA - ldr r0, [sp, 0xF0] - adds r0, 0x1 - str r0, [sp, 0xF0] -_080903CA: - adds r5, 0x1 - cmp r5, 0x4 - beq _080903DA -_080903D0: - adds r3, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r3, r0 - ble _080903A2 -_080903DA: - ldr r0, _08090414 - mov r2, r9 - lsls r1, r2, 4 - adds r0, r1, r0 - ldrb r0, [r0, 0x5] - mov r9, r1 - ldr r1, [sp, 0xE4] - cmp r1, 0 - bne _080903F2 - cmp r0, 0x3 - ble _080903F2 - movs r0, 0x3 -_080903F2: - cmp r5, r0 - ble _0809043C - cmp r0, 0x1 - bne _0809041C - ldr r0, _08090418 - ldr r0, [r0] - mov r1, sp - add r2, sp, 0xC8 - movs r3, 0 - bl xxx_format_string - b _08090430 - .align 2, 0 -_0809040C: .4byte gUnknown_8108F40 -_08090410: .4byte gRecruitedPokemonRef -_08090414: .4byte gDungeons -_08090418: .4byte gUnknown_8115A2C -_0809041C: - ldr r1, _08090464 - subs r0, r5, r0 - str r0, [r1] - ldr r0, _08090468 - ldr r0, [r0] - mov r1, sp - add r2, sp, 0xC8 - movs r3, 0 - bl xxx_format_string -_08090430: - adds r0, r7, 0 - mov r1, sp - bl sub_8090888 - movs r2, 0x1 - mov r8, r2 -_0809043C: - ldr r0, _0809046C - mov r2, r9 - adds r1, r2, r0 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0809048E - ldr r1, [sp, 0xEC] - cmp r0, r1 - bge _0809048E - ldr r1, _08090464 - str r0, [r1] - ldr r2, [sp, 0xEC] - subs r0, r2, r0 - str r0, [r1, 0x4] - mov r0, r8 - cmp r0, 0 - bne _08090474 - ldr r0, _08090470 - b _08090476 - .align 2, 0 -_08090464: .4byte gUnknown_202DE30 -_08090468: .4byte gUnknown_81159DC -_0809046C: .4byte gDungeons -_08090470: .4byte gUnknown_8115A80 -_08090474: - ldr r0, _080904AC -_08090476: - ldr r0, [r0] - mov r1, sp - add r2, sp, 0xC8 - movs r3, 0 - bl xxx_format_string - adds r0, r7, 0 - mov r1, sp - bl sub_8090888 - movs r1, 0x1 - mov r8, r1 -_0809048E: - ldr r2, [sp, 0xE0] - cmp r2, 0 - beq _0809054E - ldr r0, _080904B0 - adds r1, r2, 0 - bl CopyCyanSpeciesNametoBuffer - cmp r5, 0x3 - ble _080904D2 - mov r0, r8 - cmp r0, 0 - bne _080904B8 - ldr r0, _080904B4 - b _080904BA - .align 2, 0 -_080904AC: .4byte gUnknown_8115ADC -_080904B0: .4byte gAvailablePokemonNames -_080904B4: .4byte gUnknown_8115B3C -_080904B8: - ldr r0, _08090528 -_080904BA: - ldr r0, [r0] - mov r1, sp - add r2, sp, 0xC8 - movs r3, 0 - bl xxx_format_string - adds r0, r7, 0 - mov r1, sp - bl sub_8090888 - movs r1, 0x1 - mov r8, r1 -_080904D2: - ldr r0, [sp, 0xE0] - bl GetPokemonSize - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r2, _0809052C - mov r10, r2 - movs r6, 0x1 -_080904E4: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - mov r2, r10 - ldr r0, [r2] - adds r2, r0, r1 - ldrh r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08090510 - lsrs r0, r1, 1 - ands r0, r6 - cmp r0, 0 - beq _08090510 - movs r1, 0x8 - ldrsh r0, [r2, r1] - bl GetPokemonSize - lsls r0, 24 - lsrs r0, 24 - adds r5, r0 -_08090510: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _080904E4 - cmp r5, 0x6 - ble _0809054E - mov r2, r8 - cmp r2, 0 - bne _08090534 - ldr r0, _08090530 - b _08090536 - .align 2, 0 -_08090528: .4byte gUnknown_8115BA4 -_0809052C: .4byte gRecruitedPokemonRef -_08090530: .4byte gUnknown_8115BF4 -_08090534: - ldr r0, _080905D0 -_08090536: - ldr r0, [r0] - mov r1, sp - add r2, sp, 0xC8 - movs r3, 0 - bl xxx_format_string - adds r0, r7, 0 - mov r1, sp - bl sub_8090888 - movs r0, 0x1 - mov r8, r0 -_0809054E: - ldr r1, [sp, 0xE4] - cmp r1, 0 - beq _08090602 - add r5, sp, 0xCC - ldr r1, _080905D4 - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - add r4, sp, 0xD4 - ldr r1, _080905D8 - adds r0, r4, 0 - movs r2, 0x4 - bl memcpy - movs r6, 0 - mov r10, r4 - ldr r0, _080905DC - add r0, r9 - ldrb r5, [r0, 0xB] - add r4, sp, 0xCC -_08090578: - adds r0, r5, 0 - asrs r0, r6 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809059E - ldrh r0, [r4] - bl sub_8090820 - lsls r0, 24 - cmp r0, 0 - bne _0809059E - mov r2, r10 - adds r0, r2, r6 - ldrb r0, [r0] - bl sub_80911A4 - cmp r0, 0 - beq _080905A6 -_0809059E: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08090578 -_080905A6: - cmp r6, 0x3 - bgt _08090602 - add r4, sp, 0xD8 - lsls r0, r6, 1 - add r0, sp - adds r0, 0xCC - ldrh r1, [r0] - adds r0, r4, 0 - bl sub_8092A88 - ldr r0, _080905E0 - adds r1, r4, 0 - movs r2, 0 - bl sub_80928C0 - mov r0, r8 - cmp r0, 0 - bne _080905E8 - ldr r0, _080905E4 - b _080905EA - .align 2, 0 -_080905D0: .4byte gUnknown_8115C4C -_080905D4: .4byte gUnknown_8108F42 -_080905D8: .4byte gUnknown_8108F4A -_080905DC: .4byte gDungeons -_080905E0: .4byte gUnknown_202DE58 -_080905E4: .4byte gUnknown_8115CB8 -_080905E8: - ldr r0, _080906A0 -_080905EA: - ldr r0, [r0] - mov r1, sp - add r2, sp, 0xC8 - movs r3, 0 - bl xxx_format_string - adds r0, r7, 0 - mov r1, sp - bl sub_8090888 - movs r1, 0x1 - mov r8, r1 -_08090602: - ldr r0, _080906A4 - add r0, r9 - ldrb r1, [r0, 0xB] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080906CE - ldr r5, _080906A8 - ldr r2, [sp, 0xE0] - cmp r2, 0 - beq _0809063A - adds r0, r2, 0 - movs r1, 0 - bl GetPokemonType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08090638 - ldr r0, [sp, 0xE0] - movs r1, 0x1 - bl GetPokemonType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0809063A -_08090638: - movs r5, 0 -_0809063A: - ldr r0, _080906A8 - cmp r5, r0 - bne _080906CE - movs r5, 0 - movs r6, 0x1 -_08090644: - ldr r2, _080906AC - movs r0, 0x58 - adds r1, r5, 0 - muls r1, r0 - ldr r0, [r2] - adds r4, r0, r1 - ldrh r1, [r4] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08090686 - lsrs r0, r1, 1 - ands r0, r6 - cmp r0, 0 - beq _08090686 - movs r1, 0x8 - ldrsh r0, [r4, r1] - movs r1, 0 - bl GetPokemonType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08090690 - movs r2, 0x8 - ldrsh r0, [r4, r2] - movs r1, 0x1 - bl GetPokemonType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08090690 -_08090686: - adds r5, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - ble _08090644 -_08090690: - ldr r0, _080906A8 - cmp r5, r0 - bne _080906CE - mov r0, r8 - cmp r0, 0 - bne _080906B4 - ldr r0, _080906B0 - b _080906B6 - .align 2, 0 -_080906A0: .4byte gUnknown_8115D14 -_080906A4: .4byte gDungeons -_080906A8: .4byte 0x0000019d -_080906AC: .4byte gRecruitedPokemonRef -_080906B0: .4byte gUnknown_8115D5C -_080906B4: - ldr r0, _080906D8 -_080906B6: - ldr r0, [r0] - mov r1, sp - add r2, sp, 0xC8 - movs r3, 0 - bl xxx_format_string - adds r0, r7, 0 - mov r1, sp - bl sub_8090888 - movs r1, 0x1 - mov r8, r1 -_080906CE: - mov r2, r8 - cmp r2, 0 - beq _080906DC - movs r0, 0x1 - b _0809080E - .align 2, 0 -_080906D8: .4byte gUnknown_8115D94 -_080906DC: - ldr r0, _080907EC - add r0, r9 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _080906EC - ldr r0, [sp, 0xE8] - cmp r0, 0 - beq _0809071A -_080906EC: - ldr r1, [sp, 0xF4] - cmp r1, 0 - bne _08090708 - ldr r0, _080907F0 - ldr r1, [r0] - adds r0, r7, 0 - bl strcpy - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat - movs r2, 0x1 - str r2, [sp, 0xF4] -_08090708: - ldr r0, _080907F4 - ldr r1, [r0] - adds r0, r7, 0 - bl strcat - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat -_0809071A: - ldr r0, _080907EC - add r0, r9 - ldrb r0, [r0, 0x6] - cmp r0, 0 - beq _08090752 - ldr r0, [sp, 0xF4] - cmp r0, 0 - bne _08090740 - ldr r0, _080907F0 - ldr r1, [r0] - adds r0, r7, 0 - bl strcpy - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat - movs r1, 0x1 - str r1, [sp, 0xF4] -_08090740: - ldr r0, _080907F8 - ldr r1, [r0] - adds r0, r7, 0 - bl strcat - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat -_08090752: - ldr r0, _080907EC - add r0, r9 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08090792 - ldr r2, [sp, 0xEC] - ldr r0, [sp, 0xF0] - cmn r2, r0 - beq _08090792 - ldr r1, [sp, 0xF4] - cmp r1, 0 - bne _08090780 - ldr r0, _080907F0 - ldr r1, [r0] - adds r0, r7, 0 - bl strcpy - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat - movs r2, 0x1 - str r2, [sp, 0xF4] -_08090780: - ldr r0, _080907FC - ldr r1, [r0] - adds r0, r7, 0 - bl strcat - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat -_08090792: - ldr r0, _080907EC - add r0, r9 - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _080907DA - ldr r0, _08090800 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080907DA - ldr r2, [sp, 0xF4] - cmp r2, 0 - bne _080907C8 - ldr r0, _080907F0 - ldr r1, [r0] - adds r0, r7, 0 - bl strcpy - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat - movs r0, 0x1 - str r0, [sp, 0xF4] -_080907C8: - ldr r0, _08090804 - ldr r1, [r0] - adds r0, r7, 0 - bl strcat - adds r0, r7, 0 - add r1, sp, 0xC8 - bl strcat -_080907DA: - ldr r1, [sp, 0xF4] - cmp r1, 0 - bne _0809080C - ldr r1, _08090808 - adds r0, r7, 0 - bl ExpandPlaceholdersBuffer - movs r0, 0 - b _0809080E - .align 2, 0 -_080907EC: .4byte gDungeons -_080907F0: .4byte gUnknown_8115DD4 -_080907F4: .4byte gUnknown_8115E00 -_080907F8: .4byte gUnknown_8115E28 -_080907FC: .4byte gUnknown_8115E54 -_08090800: .4byte gUnknown_203B460 -_08090804: .4byte gUnknown_8115E80 -_08090808: .4byte gUnknown_8108F50 -_0809080C: - movs r0, 0x2 -_0809080E: - add sp, 0xF8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809034C - - thumb_func_start sub_8090820 -sub_8090820: - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r4, 0 - ldr r0, _08090868 - ldr r0, [r0] - mov r12, r0 - movs r7, 0x1 -_08090830: - movs r0, 0x58 - muls r0, r4 - mov r2, r12 - adds r1, r2, r0 - ldrh r2, [r1] - adds r0, r7, 0 - ands r0, r2 - cmp r0, 0 - beq _08090874 - lsrs r0, r2, 1 - ands r0, r7 - cmp r0, 0 - beq _08090874 - movs r3, 0 - movs r5, 0x1 - adds r2, r1, 0 - adds r2, 0x2C -_08090852: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _0809086C - ldrh r0, [r2, 0x2] - cmp r0, r6 - bne _0809086C - movs r0, 0x1 - b _08090880 - .align 2, 0 -_08090868: .4byte gRecruitedPokemonRef -_0809086C: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x3 - ble _08090852 -_08090874: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08090830 - movs r0, 0 -_08090880: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8090820 - - thumb_func_start sub_8090888 -sub_8090888: - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r6, 0 - b _0809089C -_08090892: - ldrb r0, [r4] - cmp r0, 0xA - bne _0809089A - adds r6, 0x1 -_0809089A: - adds r4, 0x1 -_0809089C: - ldrb r0, [r4] - cmp r0, 0 - bne _08090892 - ldrb r7, [r5] - b _080908AE -_080908A6: - movs r0, 0xA - strb r0, [r4] - adds r4, 0x1 - adds r6, 0x1 -_080908AE: - adds r0, r6, 0 - movs r1, 0x3 - bl __modsi3 - cmp r0, 0 - bne _080908A6 - adds r1, r7, 0 - lsls r0, r1, 24 - cmp r0, 0 - beq _080908CE -_080908C2: - strb r1, [r4] - adds r4, 0x1 - adds r5, 0x1 - ldrb r1, [r5] - cmp r1, 0 - bne _080908C2 -_080908CE: - movs r0, 0 - strb r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8090888 - - thumb_func_start sub_80908D8 -sub_80908D8: - push {lr} - adds r2, r0, 0 - ldrb r0, [r2] - cmp r0, 0x3E - bhi _08090908 - ldr r0, _08090900 - ldrb r3, [r2] - adds r0, r3, r0 - ldrb r1, [r2, 0x1] - ldrb r0, [r0] - cmp r1, r0 - bcs _08090908 - ldr r1, _08090904 - lsls r0, r3, 2 - adds r0, r1 - ldrb r1, [r2, 0x1] - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - b _0809090A - .align 2, 0 -_08090900: .4byte gUnknown_81077A8 -_08090904: .4byte gUnknown_8108084 -_08090908: - movs r0, 0x1 -_0809090A: - pop {r1} - bx r1 - thumb_func_end sub_80908D8 - - thumb_func_start sub_8090910 -sub_8090910: - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - ldr r4, _0809094C - adds r0, r4, 0 - bl RandomCapped - adds r6, r0, 0 - adds r0, r4, 0 - bl RandomCapped - adds r2, r0, 0 - ldrb r0, [r5] - cmp r0, 0x3E - bhi _08090954 - ldr r0, _08090950 - ldrb r1, [r5] - adds r1, r0 - ldrb r0, [r5, 0x1] - ldrb r1, [r1] - cmp r0, r1 - bcs _08090954 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_8091E94 - lsls r0, 24 - lsrs r0, 24 - b _08090956 - .align 2, 0 -_0809094C: .4byte 0x0000270f -_08090950: .4byte gUnknown_81077A8 -_08090954: - movs r0, 0x46 -_08090956: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8090910 - - thumb_func_start sub_809095C -sub_809095C: - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3E - bls _0809096A -_08090966: - movs r0, 0x1 - b _0809098C -_0809096A: - movs r2, 0 - ldr r0, _08090994 - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x3F - beq _0809098A - adds r1, r4, 0 -_08090978: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, r3 - beq _08090966 - adds r2, 0x1 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0x3F - bne _08090978 -_0809098A: - movs r0, 0 -_0809098C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08090994: .4byte gUnknown_810A350 - thumb_func_end sub_809095C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/code_8090208.s b/asm/code_8090208.s new file mode 100644 index 0000000..56fef8f --- /dev/null +++ b/asm/code_8090208.s @@ -0,0 +1,922 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8090298 +sub_8090298: + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x16 + bhi _080902AE + movs r0, 0x4 + b _080902C2 +_080902AE: + cmp r1, 0x3E + bhi _080902C0 + ldr r0, _080902BC + adds r0, r1, r0 + ldrb r0, [r0] + b _080902C2 + .align 2, 0 +_080902BC: .4byte gUnknown_81077A8 +_080902C0: + movs r0, 0x1 +_080902C2: + pop {r1} + bx r1 + thumb_func_end sub_8090298 + + thumb_func_start sub_80902C8 +sub_80902C8: + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x16 + bls _080902EC + cmp r1, 0x3E + bhi _080902EC + ldr r0, _080902E8 + adds r0, r1, r0 + ldrb r0, [r0] + b _080902EE + .align 2, 0 +_080902E8: .4byte gUnknown_81077E8 +_080902EC: + movs r0, 0 +_080902EE: + pop {r1} + bx r1 + thumb_func_end sub_80902C8 + + thumb_func_start sub_80902F4 +sub_80902F4: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r2, 0x7 + bl sub_809488C + adds r4, 0x1 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x7 + bl sub_809488C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80902F4 + + thumb_func_start sub_8090314 +sub_8090314: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r0, 0 + strb r0, [r4] + strb r0, [r4, 0x1] + adds r0, r5, 0 + movs r2, 0x7 + bl sub_8094924 + adds r4, 0x1 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x7 + bl sub_8094924 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8090314 + + thumb_func_start sub_809033C +sub_809033C: + lsls r0, 24 + ldr r1, _08090348 + lsrs r0, 20 + adds r0, r1 + ldrb r0, [r0, 0x1] + bx lr + .align 2, 0 +_08090348: .4byte gDungeons + thumb_func_end sub_809033C + + thumb_func_start sub_809034C +sub_809034C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xF8 + adds r7, r2, 0 + ldr r2, [sp, 0x118] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 16 + asrs r1, 16 + str r1, [sp, 0xE0] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xE4] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0xE8] + bl sub_8090A34 + str r0, [sp, 0xEC] + movs r5, 0 + movs r0, 0 + str r0, [sp, 0xF4] + mov r8, r0 + add r4, sp, 0xC8 + movs r0, 0xA + strb r0, [r4] + add r1, sp, 0xF4 + ldrb r1, [r1] + strb r1, [r4, 0x1] + ldr r1, _0809040C + adds r0, r7, 0 + bl strcpy + movs r2, 0 + str r2, [sp, 0xF0] + movs r3, 0 + ldr r0, _08090410 + ldr r6, [r0] + movs r4, 0x1 +_080903A2: + movs r0, 0x58 + muls r0, r3 + adds r2, r6, r0 + ldrh r1, [r2] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _080903D0 + lsrs r0, r1, 1 + ands r0, r4 + cmp r0, 0 + beq _080903D0 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + cmp r0, 0 + beq _080903CA + ldr r0, [sp, 0xF0] + adds r0, 0x1 + str r0, [sp, 0xF0] +_080903CA: + adds r5, 0x1 + cmp r5, 0x4 + beq _080903DA +_080903D0: + adds r3, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r3, r0 + ble _080903A2 +_080903DA: + ldr r0, _08090414 + mov r2, r9 + lsls r1, r2, 4 + adds r0, r1, r0 + ldrb r0, [r0, 0x5] + mov r9, r1 + ldr r1, [sp, 0xE4] + cmp r1, 0 + bne _080903F2 + cmp r0, 0x3 + ble _080903F2 + movs r0, 0x3 +_080903F2: + cmp r5, r0 + ble _0809043C + cmp r0, 0x1 + bne _0809041C + ldr r0, _08090418 + ldr r0, [r0] + mov r1, sp + add r2, sp, 0xC8 + movs r3, 0 + bl xxx_format_string + b _08090430 + .align 2, 0 +_0809040C: .4byte gUnknown_8108F40 +_08090410: .4byte gRecruitedPokemonRef +_08090414: .4byte gDungeons +_08090418: .4byte gUnknown_8115A2C +_0809041C: + ldr r1, _08090464 + subs r0, r5, r0 + str r0, [r1] + ldr r0, _08090468 + ldr r0, [r0] + mov r1, sp + add r2, sp, 0xC8 + movs r3, 0 + bl xxx_format_string +_08090430: + adds r0, r7, 0 + mov r1, sp + bl sub_8090888 + movs r2, 0x1 + mov r8, r2 +_0809043C: + ldr r0, _0809046C + mov r2, r9 + adds r1, r2, r0 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _0809048E + ldr r1, [sp, 0xEC] + cmp r0, r1 + bge _0809048E + ldr r1, _08090464 + str r0, [r1] + ldr r2, [sp, 0xEC] + subs r0, r2, r0 + str r0, [r1, 0x4] + mov r0, r8 + cmp r0, 0 + bne _08090474 + ldr r0, _08090470 + b _08090476 + .align 2, 0 +_08090464: .4byte gUnknown_202DE30 +_08090468: .4byte gUnknown_81159DC +_0809046C: .4byte gDungeons +_08090470: .4byte gUnknown_8115A80 +_08090474: + ldr r0, _080904AC +_08090476: + ldr r0, [r0] + mov r1, sp + add r2, sp, 0xC8 + movs r3, 0 + bl xxx_format_string + adds r0, r7, 0 + mov r1, sp + bl sub_8090888 + movs r1, 0x1 + mov r8, r1 +_0809048E: + ldr r2, [sp, 0xE0] + cmp r2, 0 + beq _0809054E + ldr r0, _080904B0 + adds r1, r2, 0 + bl CopyCyanSpeciesNametoBuffer + cmp r5, 0x3 + ble _080904D2 + mov r0, r8 + cmp r0, 0 + bne _080904B8 + ldr r0, _080904B4 + b _080904BA + .align 2, 0 +_080904AC: .4byte gUnknown_8115ADC +_080904B0: .4byte gAvailablePokemonNames +_080904B4: .4byte gUnknown_8115B3C +_080904B8: + ldr r0, _08090528 +_080904BA: + ldr r0, [r0] + mov r1, sp + add r2, sp, 0xC8 + movs r3, 0 + bl xxx_format_string + adds r0, r7, 0 + mov r1, sp + bl sub_8090888 + movs r1, 0x1 + mov r8, r1 +_080904D2: + ldr r0, [sp, 0xE0] + bl GetPokemonSize + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r2, _0809052C + mov r10, r2 + movs r6, 0x1 +_080904E4: + movs r0, 0x58 + adds r1, r4, 0 + muls r1, r0 + mov r2, r10 + ldr r0, [r2] + adds r2, r0, r1 + ldrh r1, [r2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08090510 + lsrs r0, r1, 1 + ands r0, r6 + cmp r0, 0 + beq _08090510 + movs r1, 0x8 + ldrsh r0, [r2, r1] + bl GetPokemonSize + lsls r0, 24 + lsrs r0, 24 + adds r5, r0 +_08090510: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _080904E4 + cmp r5, 0x6 + ble _0809054E + mov r2, r8 + cmp r2, 0 + bne _08090534 + ldr r0, _08090530 + b _08090536 + .align 2, 0 +_08090528: .4byte gUnknown_8115BA4 +_0809052C: .4byte gRecruitedPokemonRef +_08090530: .4byte gUnknown_8115BF4 +_08090534: + ldr r0, _080905D0 +_08090536: + ldr r0, [r0] + mov r1, sp + add r2, sp, 0xC8 + movs r3, 0 + bl xxx_format_string + adds r0, r7, 0 + mov r1, sp + bl sub_8090888 + movs r0, 0x1 + mov r8, r0 +_0809054E: + ldr r1, [sp, 0xE4] + cmp r1, 0 + beq _08090602 + add r5, sp, 0xCC + ldr r1, _080905D4 + adds r0, r5, 0 + movs r2, 0x8 + bl memcpy + add r4, sp, 0xD4 + ldr r1, _080905D8 + adds r0, r4, 0 + movs r2, 0x4 + bl memcpy + movs r6, 0 + mov r10, r4 + ldr r0, _080905DC + add r0, r9 + ldrb r5, [r0, 0xB] + add r4, sp, 0xCC +_08090578: + adds r0, r5, 0 + asrs r0, r6 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809059E + ldrh r0, [r4] + bl sub_8090820 + lsls r0, 24 + cmp r0, 0 + bne _0809059E + mov r2, r10 + adds r0, r2, r6 + ldrb r0, [r0] + bl sub_80911A4 + cmp r0, 0 + beq _080905A6 +_0809059E: + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08090578 +_080905A6: + cmp r6, 0x3 + bgt _08090602 + add r4, sp, 0xD8 + lsls r0, r6, 1 + add r0, sp + adds r0, 0xCC + ldrh r1, [r0] + adds r0, r4, 0 + bl sub_8092A88 + ldr r0, _080905E0 + adds r1, r4, 0 + movs r2, 0 + bl sub_80928C0 + mov r0, r8 + cmp r0, 0 + bne _080905E8 + ldr r0, _080905E4 + b _080905EA + .align 2, 0 +_080905D0: .4byte gUnknown_8115C4C +_080905D4: .4byte gUnknown_8108F42 +_080905D8: .4byte gUnknown_8108F4A +_080905DC: .4byte gDungeons +_080905E0: .4byte gUnknown_202DE58 +_080905E4: .4byte gUnknown_8115CB8 +_080905E8: + ldr r0, _080906A0 +_080905EA: + ldr r0, [r0] + mov r1, sp + add r2, sp, 0xC8 + movs r3, 0 + bl xxx_format_string + adds r0, r7, 0 + mov r1, sp + bl sub_8090888 + movs r1, 0x1 + mov r8, r1 +_08090602: + ldr r0, _080906A4 + add r0, r9 + ldrb r1, [r0, 0xB] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080906CE + ldr r5, _080906A8 + ldr r2, [sp, 0xE0] + cmp r2, 0 + beq _0809063A + adds r0, r2, 0 + movs r1, 0 + bl GetPokemonType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08090638 + ldr r0, [sp, 0xE0] + movs r1, 0x1 + bl GetPokemonType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _0809063A +_08090638: + movs r5, 0 +_0809063A: + ldr r0, _080906A8 + cmp r5, r0 + bne _080906CE + movs r5, 0 + movs r6, 0x1 +_08090644: + ldr r2, _080906AC + movs r0, 0x58 + adds r1, r5, 0 + muls r1, r0 + ldr r0, [r2] + adds r4, r0, r1 + ldrh r1, [r4] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08090686 + lsrs r0, r1, 1 + ands r0, r6 + cmp r0, 0 + beq _08090686 + movs r1, 0x8 + ldrsh r0, [r4, r1] + movs r1, 0 + bl GetPokemonType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08090690 + movs r2, 0x8 + ldrsh r0, [r4, r2] + movs r1, 0x1 + bl GetPokemonType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08090690 +_08090686: + adds r5, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + ble _08090644 +_08090690: + ldr r0, _080906A8 + cmp r5, r0 + bne _080906CE + mov r0, r8 + cmp r0, 0 + bne _080906B4 + ldr r0, _080906B0 + b _080906B6 + .align 2, 0 +_080906A0: .4byte gUnknown_8115D14 +_080906A4: .4byte gDungeons +_080906A8: .4byte 0x0000019d +_080906AC: .4byte gRecruitedPokemonRef +_080906B0: .4byte gUnknown_8115D5C +_080906B4: + ldr r0, _080906D8 +_080906B6: + ldr r0, [r0] + mov r1, sp + add r2, sp, 0xC8 + movs r3, 0 + bl xxx_format_string + adds r0, r7, 0 + mov r1, sp + bl sub_8090888 + movs r1, 0x1 + mov r8, r1 +_080906CE: + mov r2, r8 + cmp r2, 0 + beq _080906DC + movs r0, 0x1 + b _0809080E + .align 2, 0 +_080906D8: .4byte gUnknown_8115D94 +_080906DC: + ldr r0, _080907EC + add r0, r9 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _080906EC + ldr r0, [sp, 0xE8] + cmp r0, 0 + beq _0809071A +_080906EC: + ldr r1, [sp, 0xF4] + cmp r1, 0 + bne _08090708 + ldr r0, _080907F0 + ldr r1, [r0] + adds r0, r7, 0 + bl strcpy + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat + movs r2, 0x1 + str r2, [sp, 0xF4] +_08090708: + ldr r0, _080907F4 + ldr r1, [r0] + adds r0, r7, 0 + bl strcat + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat +_0809071A: + ldr r0, _080907EC + add r0, r9 + ldrb r0, [r0, 0x6] + cmp r0, 0 + beq _08090752 + ldr r0, [sp, 0xF4] + cmp r0, 0 + bne _08090740 + ldr r0, _080907F0 + ldr r1, [r0] + adds r0, r7, 0 + bl strcpy + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat + movs r1, 0x1 + str r1, [sp, 0xF4] +_08090740: + ldr r0, _080907F8 + ldr r1, [r0] + adds r0, r7, 0 + bl strcat + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat +_08090752: + ldr r0, _080907EC + add r0, r9 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _08090792 + ldr r2, [sp, 0xEC] + ldr r0, [sp, 0xF0] + cmn r2, r0 + beq _08090792 + ldr r1, [sp, 0xF4] + cmp r1, 0 + bne _08090780 + ldr r0, _080907F0 + ldr r1, [r0] + adds r0, r7, 0 + bl strcpy + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat + movs r2, 0x1 + str r2, [sp, 0xF4] +_08090780: + ldr r0, _080907FC + ldr r1, [r0] + adds r0, r7, 0 + bl strcat + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat +_08090792: + ldr r0, _080907EC + add r0, r9 + ldrb r0, [r0, 0x7] + cmp r0, 0 + bne _080907DA + ldr r0, _08090800 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080907DA + ldr r2, [sp, 0xF4] + cmp r2, 0 + bne _080907C8 + ldr r0, _080907F0 + ldr r1, [r0] + adds r0, r7, 0 + bl strcpy + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat + movs r0, 0x1 + str r0, [sp, 0xF4] +_080907C8: + ldr r0, _08090804 + ldr r1, [r0] + adds r0, r7, 0 + bl strcat + adds r0, r7, 0 + add r1, sp, 0xC8 + bl strcat +_080907DA: + ldr r1, [sp, 0xF4] + cmp r1, 0 + bne _0809080C + ldr r1, _08090808 + adds r0, r7, 0 + bl ExpandPlaceholdersBuffer + movs r0, 0 + b _0809080E + .align 2, 0 +_080907EC: .4byte gDungeons +_080907F0: .4byte gUnknown_8115DD4 +_080907F4: .4byte gUnknown_8115E00 +_080907F8: .4byte gUnknown_8115E28 +_080907FC: .4byte gUnknown_8115E54 +_08090800: .4byte gUnknown_203B460 +_08090804: .4byte gUnknown_8115E80 +_08090808: .4byte gUnknown_8108F50 +_0809080C: + movs r0, 0x2 +_0809080E: + add sp, 0xF8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809034C + + thumb_func_start sub_8090820 +sub_8090820: + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r4, 0 + ldr r0, _08090868 + ldr r0, [r0] + mov r12, r0 + movs r7, 0x1 +_08090830: + movs r0, 0x58 + muls r0, r4 + mov r2, r12 + adds r1, r2, r0 + ldrh r2, [r1] + adds r0, r7, 0 + ands r0, r2 + cmp r0, 0 + beq _08090874 + lsrs r0, r2, 1 + ands r0, r7 + cmp r0, 0 + beq _08090874 + movs r3, 0 + movs r5, 0x1 + adds r2, r1, 0 + adds r2, 0x2C +_08090852: + ldrb r1, [r2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _0809086C + ldrh r0, [r2, 0x2] + cmp r0, r6 + bne _0809086C + movs r0, 0x1 + b _08090880 + .align 2, 0 +_08090868: .4byte gRecruitedPokemonRef +_0809086C: + adds r2, 0x8 + adds r3, 0x1 + cmp r3, 0x3 + ble _08090852 +_08090874: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _08090830 + movs r0, 0 +_08090880: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8090820 + + thumb_func_start sub_8090888 +sub_8090888: + push {r4-r7,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r6, 0 + b _0809089C +_08090892: + ldrb r0, [r4] + cmp r0, 0xA + bne _0809089A + adds r6, 0x1 +_0809089A: + adds r4, 0x1 +_0809089C: + ldrb r0, [r4] + cmp r0, 0 + bne _08090892 + ldrb r7, [r5] + b _080908AE +_080908A6: + movs r0, 0xA + strb r0, [r4] + adds r4, 0x1 + adds r6, 0x1 +_080908AE: + adds r0, r6, 0 + movs r1, 0x3 + bl __modsi3 + cmp r0, 0 + bne _080908A6 + adds r1, r7, 0 + lsls r0, r1, 24 + cmp r0, 0 + beq _080908CE +_080908C2: + strb r1, [r4] + adds r4, 0x1 + adds r5, 0x1 + ldrb r1, [r5] + cmp r1, 0 + bne _080908C2 +_080908CE: + movs r0, 0 + strb r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8090888 + + thumb_func_start sub_80908D8 +sub_80908D8: + push {lr} + adds r2, r0, 0 + ldrb r0, [r2] + cmp r0, 0x3E + bhi _08090908 + ldr r0, _08090900 + ldrb r3, [r2] + adds r0, r3, r0 + ldrb r1, [r2, 0x1] + ldrb r0, [r0] + cmp r1, r0 + bcs _08090908 + ldr r1, _08090904 + lsls r0, r3, 2 + adds r0, r1 + ldrb r1, [r2, 0x1] + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + b _0809090A + .align 2, 0 +_08090900: .4byte gUnknown_81077A8 +_08090904: .4byte gUnknown_8108084 +_08090908: + movs r0, 0x1 +_0809090A: + pop {r1} + bx r1 + thumb_func_end sub_80908D8 + + thumb_func_start sub_8090910 +sub_8090910: + push {r4-r7,lr} + adds r5, r0, 0 + adds r7, r1, 0 + ldr r4, _0809094C + adds r0, r4, 0 + bl RandomCapped + adds r6, r0, 0 + adds r0, r4, 0 + bl RandomCapped + adds r2, r0, 0 + ldrb r0, [r5] + cmp r0, 0x3E + bhi _08090954 + ldr r0, _08090950 + ldrb r1, [r5] + adds r1, r0 + ldrb r0, [r5, 0x1] + ldrb r1, [r1] + cmp r0, r1 + bcs _08090954 + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_8091E94 + lsls r0, 24 + lsrs r0, 24 + b _08090956 + .align 2, 0 +_0809094C: .4byte 0x0000270f +_08090950: .4byte gUnknown_81077A8 +_08090954: + movs r0, 0x46 +_08090956: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8090910 + + thumb_func_start sub_809095C +sub_809095C: + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3E + bls _0809096A +_08090966: + movs r0, 0x1 + b _0809098C +_0809096A: + movs r2, 0 + ldr r0, _08090994 + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0x3F + beq _0809098A + adds r1, r4, 0 +_08090978: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, r3 + beq _08090966 + adds r2, 0x1 + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0x3F + bne _08090978 +_0809098A: + movs r0, 0 +_0809098C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08090994: .4byte gUnknown_810A350 + thumb_func_end sub_809095C + + .align 2,0 diff --git a/asm/code_8094D28.s b/asm/code_8094D28.s new file mode 100644 index 0000000..10991a1 --- /dev/null +++ b/asm/code_8094D28.s @@ -0,0 +1,314 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8094D28 +sub_8094D28: + push {r4-r7,lr} + ldr r2, _08094D64 + str r0, [r2] + ldr r1, _08094D68 + movs r0, 0x1 + str r0, [r1] + ldr r7, _08094D6C + adds r5, r2, 0 + adds r4, r1, 0 + ldr r6, _08094D70 +_08094D3C: + ldr r2, [r4] + lsls r3, r2, 2 + adds r3, r5 + subs r0, r2, 0x1 + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + lsrs r1, r0, 30 + eors r0, r1 + muls r0, r6 + adds r0, r2 + str r0, [r3] + adds r2, 0x1 + str r2, [r4] + cmp r2, r7 + ble _08094D3C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08094D64: .4byte gUnknown_3001198 +_08094D68: .4byte gUnknown_203B470 +_08094D6C: .4byte 0x0000026f +_08094D70: .4byte 0x6c078965 + thumb_func_end sub_8094D28 + + thumb_func_start sub_8094D74 +sub_8094D74: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + adds r7, r1, 0 + ldr r0, _08094E34 + bl sub_8094D28 + movs r4, 0x1 + movs r5, 0 + adds r3, r7, 0 + movs r0, 0x9C + lsls r0, 2 + cmp r3, r0 + bge _08094D96 + adds r3, r0, 0 +_08094D96: + ldr r6, _08094E38 + cmp r3, 0 + beq _08094DE2 + mov r9, r6 + ldr r0, _08094E3C + adds r0, r6 + mov r12, r0 + adds r2, r6, 0 +_08094DA6: + ldr r1, [r2] + lsrs r0, r1, 30 + eors r1, r0 + ldr r0, _08094E40 + muls r0, r1 + ldr r1, [r2, 0x4] + eors r1, r0 + lsls r0, r5, 2 + add r0, r8 + ldr r0, [r0] + adds r1, r0 + adds r1, r5 + str r1, [r2, 0x4] + adds r2, 0x4 + adds r4, 0x1 + adds r5, 0x1 + ldr r0, _08094E44 + cmp r4, r0 + ble _08094DD6 + mov r1, r12 + ldr r0, [r1] + str r0, [r6] + mov r2, r9 + movs r4, 0x1 +_08094DD6: + cmp r5, r7 + blt _08094DDC + movs r5, 0 +_08094DDC: + subs r3, 0x1 + cmp r3, 0 + bne _08094DA6 +_08094DE2: + ldr r3, _08094E44 + ldr r5, _08094E38 + ldr r0, _08094E3C + adds r0, r5 + mov r8, r0 + lsls r0, r4, 2 + subs r0, 0x4 + adds r2, r0, r5 + ldr r1, _08094E48 + mov r12, r1 + adds r7, r3, 0 +_08094DF8: + ldr r0, [r2] + lsrs r1, r0, 30 + eors r0, r1 + mov r1, r12 + muls r1, r0 + ldr r0, [r2, 0x4] + eors r0, r1 + subs r0, r4 + str r0, [r2, 0x4] + adds r2, 0x4 + adds r4, 0x1 + cmp r4, r7 + ble _08094E1C + mov r1, r8 + ldr r0, [r1] + str r0, [r6] + adds r2, r5, 0 + movs r4, 0x1 +_08094E1C: + subs r3, 0x1 + cmp r3, 0 + bne _08094DF8 + movs r0, 0x80 + lsls r0, 24 + str r0, [r6] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08094E34: .4byte 0x012bd6aa +_08094E38: .4byte gUnknown_3001198 +_08094E3C: .4byte 0x000009bc +_08094E40: .4byte 0x0019660d +_08094E44: .4byte 0x0000026f +_08094E48: .4byte 0x5d588b65 + thumb_func_end sub_8094D74 + + thumb_func_start sub_8094E4C +sub_8094E4C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _08094F54 + ldr r2, [r0] + ldr r1, _08094F58 + mov r8, r0 + cmp r2, r1 + ble _08094F1C + ldr r0, _08094F5C + cmp r2, r0 + bne _08094E6C + ldr r0, _08094F60 + bl sub_8094D28 +_08094E6C: + movs r3, 0 + ldr r0, _08094F64 + mov r9, r0 + ldr r7, _08094F68 + mov r12, r9 + adds r5, r7, 0 +_08094E78: + ldr r4, [r5] + movs r6, 0x80 + lsls r6, 24 + ands r4, r6 + ldr r0, [r5, 0x4] + ldr r1, _08094F6C + ands r0, r1 + orrs r4, r0 + ldr r1, _08094F70 + adds r0, r3, r1 + lsls r0, 2 + adds r0, r7 + lsrs r2, r4, 1 + ldr r1, [r0] + eors r1, r2 + movs r0, 0x1 + ands r4, r0 + lsls r0, r4, 2 + add r0, r12 + ldr r0, [r0] + eors r1, r0 + stm r5!, {r1} + adds r3, 0x1 + cmp r3, 0xE2 + ble _08094E78 + ldr r5, _08094F74 + cmp r3, r5 + bgt _08094EE6 + ldr r1, _08094F68 + ldr r4, _08094F64 + mov r12, r4 + lsls r0, r3, 2 + adds r2, r0, r1 + ldr r4, _08094F78 + adds r0, r4 + adds r7, r0, r1 +_08094EC0: + ldr r4, [r2] + ands r4, r6 + ldr r0, [r2, 0x4] + ldr r1, _08094F6C + ands r0, r1 + orrs r4, r0 + lsrs r0, r4, 1 + ldm r7!, {r1} + eors r1, r0 + movs r0, 0x1 + ands r4, r0 + lsls r0, r4, 2 + add r0, r12 + ldr r0, [r0] + eors r1, r0 + stm r2!, {r1} + adds r3, 0x1 + cmp r3, r5 + ble _08094EC0 +_08094EE6: + ldr r2, _08094F68 + ldr r0, _08094F7C + adds r3, r2, r0 + ldr r4, [r3] + movs r0, 0x80 + lsls r0, 24 + ands r4, r0 + ldr r0, [r2] + ldr r1, _08094F6C + ands r0, r1 + orrs r4, r0 + movs r1, 0xC6 + lsls r1, 3 + adds r2, r1 + lsrs r0, r4, 1 + ldr r1, [r2] + eors r1, r0 + movs r0, 0x1 + ands r4, r0 + lsls r0, r4, 2 + add r0, r9 + ldr r0, [r0] + eors r1, r0 + str r1, [r3] + movs r0, 0 + mov r4, r8 + str r0, [r4] +_08094F1C: + ldr r2, _08094F68 + mov r0, r8 + ldr r1, [r0] + lsls r0, r1, 2 + adds r0, r2 + ldr r4, [r0] + adds r1, 0x1 + mov r0, r8 + str r1, [r0] + lsrs r0, r4, 11 + eors r4, r0 + lsls r0, r4, 7 + ldr r1, _08094F80 + ands r0, r1 + eors r4, r0 + lsls r0, r4, 15 + ldr r1, _08094F84 + ands r0, r1 + eors r4, r0 + lsrs r0, r4, 18 + eors r4, r0 + adds r0, r4, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08094F54: .4byte gUnknown_203B470 +_08094F58: .4byte 0x0000026f +_08094F5C: .4byte 0x00000271 +_08094F60: .4byte 0x00001571 +_08094F64: .4byte gUnknown_203B474 +_08094F68: .4byte gUnknown_3001198 +_08094F6C: .4byte 0x7fffffff +_08094F70: .4byte 0x0000018d +_08094F74: .4byte 0x0000026e +_08094F78: .4byte 0xfffffc74 +_08094F7C: .4byte 0x000009bc +_08094F80: .4byte 0x9d2c5680 +_08094F84: .4byte 0xefc60000 + thumb_func_end sub_8094E4C + + .align 2,0 diff --git a/asm/code_8097670.s b/asm/code_8097670.s index d7266df..288edc3 100644 --- a/asm/code_8097670.s +++ b/asm/code_8097670.s @@ -609,7 +609,7 @@ sub_8097D60: adds r1, r3, 0 bl sub_809486C mov r0, sp - bl WriteSaveOptions + bl WriteGameOptions mov r0, sp bl WritePlayTime mov r0, sp @@ -634,7 +634,7 @@ sub_8097D98: adds r1, r3, 0 bl sub_809485C mov r0, sp - bl ReadSaveOptions + bl ReadGameOptions mov r0, sp bl ReadPlayTime mov r0, sp diff --git a/asm/debug.s b/asm/debug.s deleted file mode 100644 index e0f194d..0000000 --- a/asm/debug.s +++ /dev/null @@ -1,30 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start FatalError -FatalError: - push {r1-r3} - push {r4,lr} - sub sp, 0x100 - adds r1, r0, 0 - ldr r4, [sp, 0x108] - ldr r0, _08011C14 - bl FatalErrorPrintFuncFileLine - add r2, sp, 0x10C - mov r0, sp - adds r1, r4, 0 - bl vsprintf - ldr r0, _08011C18 - mov r1, sp - bl FatalErrorFormatMessage - bl FatalErrorHang - .align 2, 0 -_08011C14: .4byte gFatalText -_08011C18: .4byte gUnknown_80D42D4 - thumb_func_end FatalError - - .align 2,0 diff --git a/asm/game_options.s b/asm/game_options.s deleted file mode 100644 index aed77bf..0000000 --- a/asm/game_options.s +++ /dev/null @@ -1,801 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start GameOptionsNotChange -GameOptionsNotChange: - push {lr} - adds r2, r0, 0 - ldr r0, _08094A38 - ldr r1, [r0] - ldrb r0, [r1, 0x8] - ldrb r3, [r2, 0x8] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0x9] - ldrb r3, [r2, 0x9] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0xA] - ldrb r3, [r2, 0xA] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0xB] - ldrb r3, [r2, 0xB] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1] - ldrb r3, [r2] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0x1] - ldrb r3, [r2, 0x1] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0x2] - ldrb r3, [r2, 0x2] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0x3] - ldrb r3, [r2, 0x3] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0x4] - ldrb r3, [r2, 0x4] - cmp r0, r3 - bne _08094A3C - ldrb r0, [r1, 0xC] - ldrb r2, [r2, 0xC] - cmp r0, r2 - bne _08094A3C - movs r0, 0x1 - b _08094A3E - .align 2, 0 -_08094A38: .4byte gUnknown_203B46C -_08094A3C: - movs r0, 0 -_08094A3E: - pop {r1} - bx r1 - thumb_func_end GameOptionsNotChange - - thumb_func_start WriteSaveOptions -WriteSaveOptions: - push {r4-r7,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0xFF - mov r0, sp - strb r1, [r0] - mov r7, sp - adds r7, 0x1 - movs r0, 0 - strb r0, [r7] - ldr r5, _08094B14 - ldr r1, [r5] - adds r1, 0x8 - adds r0, r4, 0 - movs r2, 0x2 - bl sub_809488C - ldr r0, [r5] - ldrb r0, [r0, 0x9] - mov r1, sp - adds r6, r7, 0 - cmp r0, 0 - bne _08094A74 - adds r1, r6, 0 -_08094A74: - adds r0, r4, 0 - movs r2, 0x1 - bl sub_809488C - ldr r0, [r5] - ldrb r0, [r0, 0xA] - adds r1, r6, 0 - cmp r0, 0 - beq _08094A88 - mov r1, sp -_08094A88: - adds r0, r4, 0 - movs r2, 0x1 - bl sub_809488C - ldr r0, [r5] - ldrb r0, [r0, 0xB] - adds r1, r6, 0 - cmp r0, 0 - beq _08094A9C - mov r1, sp -_08094A9C: - adds r0, r4, 0 - movs r2, 0x1 - bl sub_809488C - ldr r0, [r5] - ldrb r0, [r0] - adds r1, r6, 0 - cmp r0, 0 - beq _08094AB0 - mov r1, sp -_08094AB0: - adds r0, r4, 0 - movs r2, 0x1 - bl sub_809488C - ldr r0, [r5] - ldrb r0, [r0, 0x1] - adds r1, r6, 0 - cmp r0, 0 - beq _08094AC4 - mov r1, sp -_08094AC4: - adds r0, r4, 0 - movs r2, 0x1 - bl sub_809488C - ldr r0, [r5] - ldrb r0, [r0, 0x2] - adds r1, r6, 0 - cmp r0, 0 - beq _08094AD8 - mov r1, sp -_08094AD8: - adds r0, r4, 0 - movs r2, 0x1 - bl sub_809488C - ldr r0, [r5] - ldrb r0, [r0, 0x3] - adds r1, r7, 0 - cmp r0, 0 - beq _08094AEC - mov r1, sp -_08094AEC: - adds r0, r4, 0 - movs r2, 0x1 - bl sub_809488C - ldr r1, [r5] - adds r1, 0x4 - adds r0, r4, 0 - movs r2, 0x3 - bl sub_809488C - ldr r1, [r5] - adds r1, 0xC - adds r0, r4, 0 - movs r2, 0x2 - bl sub_809488C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08094B14: .4byte gUnknown_203B46C - thumb_func_end WriteSaveOptions - - thumb_func_start ReadSaveOptions -ReadSaveOptions: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r6, r0, 0 - mov r1, sp - movs r2, 0x2 - bl sub_8094924 - ldr r5, _08094C10 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - movs r0, 0x3 - mov r8, r0 - ands r0, r1 - strb r0, [r2, 0x8] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2, 0x9] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2, 0xA] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2, 0xB] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2, 0x1] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - strb r0, [r2, 0x2] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8094924 - ldr r1, [r5] - mov r0, sp - ldrb r0, [r0] - ands r4, r0 - strb r4, [r1, 0x3] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x3 - bl sub_8094924 - ldr r2, [r5] - mov r0, sp - ldrb r1, [r0] - movs r0, 0x7 - ands r0, r1 - strb r0, [r2, 0x4] - adds r0, r6, 0 - mov r1, sp - movs r2, 0x2 - bl sub_8094924 - ldr r1, [r5] - mov r0, sp - ldrb r0, [r0] - mov r2, r8 - ands r2, r0 - strb r2, [r1, 0xC] - bl sub_8094C14 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08094C10: .4byte gUnknown_203B46C - thumb_func_end ReadSaveOptions - - thumb_func_start sub_8094C14 -sub_8094C14: - push {r4,lr} - sub sp, 0x10 - mov r1, sp - ldr r0, _08094C40 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - ldr r0, _08094C44 - ldr r0, [r0] - ldrb r1, [r0, 0x8] - movs r0, 0x3 - ands r0, r1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - bl sub_80099F0 - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08094C40: .4byte gUnknown_8109954 -_08094C44: .4byte gUnknown_203B46C - thumb_func_end sub_8094C14 - - thumb_func_start sub_8094C48 -sub_8094C48: - push {lr} - ldr r0, _08094C5C - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08094C60 - cmp r0, 0x3 - beq _08094C60 - movs r0, 0x1 - b _08094C62 - .align 2, 0 -_08094C5C: .4byte gUnknown_203B46C -_08094C60: - movs r0, 0 -_08094C62: - pop {r1} - bx r1 - thumb_func_end sub_8094C48 - - thumb_func_start sub_8094C68 -sub_8094C68: - push {lr} - ldr r0, _08094C7C - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0x2 - beq _08094C80 - cmp r0, 0x5 - beq _08094C80 - movs r0, 0x1 - b _08094C82 - .align 2, 0 -_08094C7C: .4byte gUnknown_203B46C -_08094C80: - movs r0, 0 -_08094C82: - pop {r1} - bx r1 - thumb_func_end sub_8094C68 - - thumb_func_start sub_8094C88 -sub_8094C88: - push {lr} - ldr r0, _08094C98 - ldr r1, [r0] - ldrb r0, [r1, 0x4] - cmp r0, 0x2 - bhi _08094C9C - movs r0, 0x1 - b _08094CA8 - .align 2, 0 -_08094C98: .4byte gUnknown_203B46C -_08094C9C: - subs r0, 0x3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _08094CAA - movs r0, 0x4 -_08094CA8: - strb r0, [r1, 0x4] -_08094CAA: - pop {r0} - bx r0 - thumb_func_end sub_8094C88 - - thumb_func_start sub_8094CB0 -sub_8094CB0: - ldr r1, _08094CBC - strh r1, [r0] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x2] - bx lr - .align 2, 0 -_08094CBC: .4byte 0x0000ffff - thumb_func_end sub_8094CB0 - - thumb_func_start sub_8094CC0 -sub_8094CC0: - ldr r1, _08094CCC - strh r1, [r0] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x2] - bx lr - .align 2, 0 -_08094CCC: .4byte 0x0000ffff - thumb_func_end sub_8094CC0 - - thumb_func_start sub_8094CD0 -sub_8094CD0: - ldr r1, _08094CDC - strh r1, [r0] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x2] - bx lr - .align 2, 0 -_08094CDC: .4byte 0x0000ffff - thumb_func_end sub_8094CD0 - - thumb_func_start sub_8094CE0 -sub_8094CE0: - ldr r1, _08094CEC - strh r1, [r0] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x2] - bx lr - .align 2, 0 -_08094CEC: .4byte 0x0000ffff - thumb_func_end sub_8094CE0 - - thumb_func_start sub_8094CF0 -sub_8094CF0: - ldr r1, _08094CFC - strh r1, [r0] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x2] - bx lr - .align 2, 0 -_08094CFC: .4byte 0x0000ffff - thumb_func_end sub_8094CF0 - - thumb_func_start sub_8094D00 -sub_8094D00: - ldr r1, _08094D0C - strh r1, [r0] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x2] - bx lr - .align 2, 0 -_08094D0C: .4byte 0x0000ffff - thumb_func_end sub_8094D00 - - thumb_func_start sub_8094D10 -sub_8094D10: - movs r0, 0 - bx lr - thumb_func_end sub_8094D10 - - thumb_func_start sub_8094D14 -sub_8094D14: - movs r0, 0 - bx lr - thumb_func_end sub_8094D14 - - thumb_func_start sub_8094D18 -sub_8094D18: - movs r0, 0 - bx lr - thumb_func_end sub_8094D18 - - thumb_func_start sub_8094D1C -sub_8094D1C: - movs r0, 0 - bx lr - thumb_func_end sub_8094D1C - - thumb_func_start sub_8094D20 -sub_8094D20: - movs r0, 0 - bx lr - thumb_func_end sub_8094D20 - - thumb_func_start sub_8094D24 -sub_8094D24: - movs r0, 0 - bx lr - thumb_func_end sub_8094D24 - - thumb_func_start sub_8094D28 -sub_8094D28: - push {r4-r7,lr} - ldr r2, _08094D64 - str r0, [r2] - ldr r1, _08094D68 - movs r0, 0x1 - str r0, [r1] - ldr r7, _08094D6C - adds r5, r2, 0 - adds r4, r1, 0 - ldr r6, _08094D70 -_08094D3C: - ldr r2, [r4] - lsls r3, r2, 2 - adds r3, r5 - subs r0, r2, 0x1 - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - lsrs r1, r0, 30 - eors r0, r1 - muls r0, r6 - adds r0, r2 - str r0, [r3] - adds r2, 0x1 - str r2, [r4] - cmp r2, r7 - ble _08094D3C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08094D64: .4byte gUnknown_3001198 -_08094D68: .4byte gUnknown_203B470 -_08094D6C: .4byte 0x0000026f -_08094D70: .4byte 0x6c078965 - thumb_func_end sub_8094D28 - - thumb_func_start sub_8094D74 -sub_8094D74: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - adds r7, r1, 0 - ldr r0, _08094E34 - bl sub_8094D28 - movs r4, 0x1 - movs r5, 0 - adds r3, r7, 0 - movs r0, 0x9C - lsls r0, 2 - cmp r3, r0 - bge _08094D96 - adds r3, r0, 0 -_08094D96: - ldr r6, _08094E38 - cmp r3, 0 - beq _08094DE2 - mov r9, r6 - ldr r0, _08094E3C - adds r0, r6 - mov r12, r0 - adds r2, r6, 0 -_08094DA6: - ldr r1, [r2] - lsrs r0, r1, 30 - eors r1, r0 - ldr r0, _08094E40 - muls r0, r1 - ldr r1, [r2, 0x4] - eors r1, r0 - lsls r0, r5, 2 - add r0, r8 - ldr r0, [r0] - adds r1, r0 - adds r1, r5 - str r1, [r2, 0x4] - adds r2, 0x4 - adds r4, 0x1 - adds r5, 0x1 - ldr r0, _08094E44 - cmp r4, r0 - ble _08094DD6 - mov r1, r12 - ldr r0, [r1] - str r0, [r6] - mov r2, r9 - movs r4, 0x1 -_08094DD6: - cmp r5, r7 - blt _08094DDC - movs r5, 0 -_08094DDC: - subs r3, 0x1 - cmp r3, 0 - bne _08094DA6 -_08094DE2: - ldr r3, _08094E44 - ldr r5, _08094E38 - ldr r0, _08094E3C - adds r0, r5 - mov r8, r0 - lsls r0, r4, 2 - subs r0, 0x4 - adds r2, r0, r5 - ldr r1, _08094E48 - mov r12, r1 - adds r7, r3, 0 -_08094DF8: - ldr r0, [r2] - lsrs r1, r0, 30 - eors r0, r1 - mov r1, r12 - muls r1, r0 - ldr r0, [r2, 0x4] - eors r0, r1 - subs r0, r4 - str r0, [r2, 0x4] - adds r2, 0x4 - adds r4, 0x1 - cmp r4, r7 - ble _08094E1C - mov r1, r8 - ldr r0, [r1] - str r0, [r6] - adds r2, r5, 0 - movs r4, 0x1 -_08094E1C: - subs r3, 0x1 - cmp r3, 0 - bne _08094DF8 - movs r0, 0x80 - lsls r0, 24 - str r0, [r6] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08094E34: .4byte 0x012bd6aa -_08094E38: .4byte gUnknown_3001198 -_08094E3C: .4byte 0x000009bc -_08094E40: .4byte 0x0019660d -_08094E44: .4byte 0x0000026f -_08094E48: .4byte 0x5d588b65 - thumb_func_end sub_8094D74 - - thumb_func_start sub_8094E4C -sub_8094E4C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08094F54 - ldr r2, [r0] - ldr r1, _08094F58 - mov r8, r0 - cmp r2, r1 - ble _08094F1C - ldr r0, _08094F5C - cmp r2, r0 - bne _08094E6C - ldr r0, _08094F60 - bl sub_8094D28 -_08094E6C: - movs r3, 0 - ldr r0, _08094F64 - mov r9, r0 - ldr r7, _08094F68 - mov r12, r9 - adds r5, r7, 0 -_08094E78: - ldr r4, [r5] - movs r6, 0x80 - lsls r6, 24 - ands r4, r6 - ldr r0, [r5, 0x4] - ldr r1, _08094F6C - ands r0, r1 - orrs r4, r0 - ldr r1, _08094F70 - adds r0, r3, r1 - lsls r0, 2 - adds r0, r7 - lsrs r2, r4, 1 - ldr r1, [r0] - eors r1, r2 - movs r0, 0x1 - ands r4, r0 - lsls r0, r4, 2 - add r0, r12 - ldr r0, [r0] - eors r1, r0 - stm r5!, {r1} - adds r3, 0x1 - cmp r3, 0xE2 - ble _08094E78 - ldr r5, _08094F74 - cmp r3, r5 - bgt _08094EE6 - ldr r1, _08094F68 - ldr r4, _08094F64 - mov r12, r4 - lsls r0, r3, 2 - adds r2, r0, r1 - ldr r4, _08094F78 - adds r0, r4 - adds r7, r0, r1 -_08094EC0: - ldr r4, [r2] - ands r4, r6 - ldr r0, [r2, 0x4] - ldr r1, _08094F6C - ands r0, r1 - orrs r4, r0 - lsrs r0, r4, 1 - ldm r7!, {r1} - eors r1, r0 - movs r0, 0x1 - ands r4, r0 - lsls r0, r4, 2 - add r0, r12 - ldr r0, [r0] - eors r1, r0 - stm r2!, {r1} - adds r3, 0x1 - cmp r3, r5 - ble _08094EC0 -_08094EE6: - ldr r2, _08094F68 - ldr r0, _08094F7C - adds r3, r2, r0 - ldr r4, [r3] - movs r0, 0x80 - lsls r0, 24 - ands r4, r0 - ldr r0, [r2] - ldr r1, _08094F6C - ands r0, r1 - orrs r4, r0 - movs r1, 0xC6 - lsls r1, 3 - adds r2, r1 - lsrs r0, r4, 1 - ldr r1, [r2] - eors r1, r0 - movs r0, 0x1 - ands r4, r0 - lsls r0, r4, 2 - add r0, r9 - ldr r0, [r0] - eors r1, r0 - str r1, [r3] - movs r0, 0 - mov r4, r8 - str r0, [r4] -_08094F1C: - ldr r2, _08094F68 - mov r0, r8 - ldr r1, [r0] - lsls r0, r1, 2 - adds r0, r2 - ldr r4, [r0] - adds r1, 0x1 - mov r0, r8 - str r1, [r0] - lsrs r0, r4, 11 - eors r4, r0 - lsls r0, r4, 7 - ldr r1, _08094F80 - ands r0, r1 - eors r4, r0 - lsls r0, r4, 15 - ldr r1, _08094F84 - ands r0, r1 - eors r4, r0 - lsrs r0, r4, 18 - eors r4, r0 - adds r0, r4, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08094F54: .4byte gUnknown_203B470 -_08094F58: .4byte 0x0000026f -_08094F5C: .4byte 0x00000271 -_08094F60: .4byte 0x00001571 -_08094F64: .4byte gUnknown_203B474 -_08094F68: .4byte gUnknown_3001198 -_08094F6C: .4byte 0x7fffffff -_08094F70: .4byte 0x0000018d -_08094F74: .4byte 0x0000026e -_08094F78: .4byte 0xfffffc74 -_08094F7C: .4byte 0x000009bc -_08094F80: .4byte 0x9d2c5680 -_08094F84: .4byte 0xefc60000 - thumb_func_end sub_8094E4C - - .align 2,0 |