summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon_storage_system.s248
-rwxr-xr-xasm/unk_text_8095904.s257
-rw-r--r--ld_script.txt1
3 files changed, 258 insertions, 248 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 735f19a64..447141b79 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -6,254 +6,6 @@
.text
- thumb_func_start sub_8095904
-sub_8095904: @ 8095904
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp]
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x3C]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r0, [sp]
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0
- bne _08095988
- movs r5, 0
- cmp r5, r8
- bcs _08095A2E
-_0809593E:
- ldr r1, [sp]
- adds r0, r1, r5
- ldrb r2, [r0]
- ldr r0, _08095980 @ =0x0000fff0
- ands r0, r2
- lsls r0, 6
- movs r1, 0xF
- ands r2, r1
- lsls r2, 5
- adds r0, r2
- ldr r1, _08095984 @ =gFont3LatinGlyphs
- adds r4, r0, r1
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, r2
- ldr r3, [sp, 0x4]
- adds r1, r7, r3
- movs r2, 0x10
- bl CpuSet
- adds r7, 0x20
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _0809593E
- b _08095A2E
- .align 2, 0
-_08095980: .4byte 0x0000fff0
-_08095984: .4byte gFont3LatinGlyphs
-_08095988:
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x8]
- lsls r0, r1, 28
- lsrs r0, 24
- str r0, [sp, 0xC]
- mov r2, r8
- lsls r0, r2, 21
- movs r1, 0
- lsrs r0, 1
- str r0, [sp, 0x10]
-_0809599E:
- movs r5, 0
- ldr r3, [sp, 0x4]
- adds r3, r7, r3
- str r3, [sp, 0x14]
- adds r0, r1, 0x1
- str r0, [sp, 0x18]
- cmp r5, r8
- bcs _08095A12
- movs r2, 0xF
- mov r12, r2
- lsls r1, 9
- ldr r0, _08095A40 @ =gFont3LatinGlyphs
- adds r1, r0
- mov r10, r1
-_080959BA:
- ldr r3, [sp]
- adds r0, r3, r5
- ldrb r1, [r0]
- ldr r0, _08095A44 @ =0x0000fff0
- ands r0, r1
- lsls r0, 6
- mov r2, r12
- ands r1, r2
- lsls r1, 5
- adds r0, r1
- mov r3, r10
- adds r4, r0, r3
- movs r6, 0
- adds r5, 0x1
-_080959D6:
- ldrb r0, [r4]
- movs r3, 0xF0
- ands r3, r0
- mov r2, r12
- ands r2, r0
- cmp r3, 0
- bne _080959E6
- ldr r3, [sp, 0xC]
-_080959E6:
- cmp r2, 0
- bne _080959EC
- ldr r2, [sp, 0x8]
-_080959EC:
- mov r0, r9
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r1, [sp, 0x40]
- adds r0, r1, r0
- orrs r3, r2
- strb r3, [r0]
- adds r4, 0x1
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _080959D6
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080959BA
-_08095A12:
- ldr r0, [sp, 0x40]
- adds r1, r7, 0
- ldr r3, [sp, 0x10]
- lsrs r2, r3, 16
- bl CpuSet
- ldr r7, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x18]
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _0809599E
-_08095A2E:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08095A40: .4byte gFont3LatinGlyphs
-_08095A44: .4byte 0x0000fff0
- thumb_func_end sub_8095904
-
- thumb_func_start unref_sub_8095A48
-unref_sub_8095A48: @ 8095A48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
-_08095A60:
- movs r3, 0
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _08095ACE
-_08095A6C:
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bhi _08095AA8
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- bne _08095A6C
- cmp r3, 0
- beq _08095ACE
- movs r6, 0x1
- cmp r3, 0x3
- bhi _08095AA8
- movs r2, 0
-_08095A96:
- adds r0, r3, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- add r0, sp
- adds r0, 0x8
- strb r2, [r0]
- cmp r3, 0x3
- bls _08095A96
-_08095AA8:
- mov r1, sp
- adds r1, r3
- adds r1, 0x8
- movs r0, 0xFF
- strb r0, [r1]
- str r7, [sp]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r5, 0
- mov r2, r8
- movs r3, 0x80
- bl sub_8095904
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- cmp r6, 0
- beq _08095A60
-_08095ACE:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8095A48
-
thumb_func_start sub_8095ADC
sub_8095ADC: @ 8095ADC
push {r4-r6,lr}
diff --git a/asm/unk_text_8095904.s b/asm/unk_text_8095904.s
new file mode 100755
index 000000000..4c1b662b3
--- /dev/null
+++ b/asm/unk_text_8095904.s
@@ -0,0 +1,257 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8095904
+sub_8095904: @ 8095904
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ str r0, [sp]
+ adds r7, r1, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x3C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r0, [sp]
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r4, 0
+ bne _08095988
+ movs r5, 0
+ cmp r5, r8
+ bcs _08095A2E
+_0809593E:
+ ldr r1, [sp]
+ adds r0, r1, r5
+ ldrb r2, [r0]
+ ldr r0, _08095980 @ =0x0000fff0
+ ands r0, r2
+ lsls r0, 6
+ movs r1, 0xF
+ ands r2, r1
+ lsls r2, 5
+ adds r0, r2
+ ldr r1, _08095984 @ =gFont3LatinGlyphs
+ adds r4, r0, r1
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x10
+ bl CpuSet
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r3, [sp, 0x4]
+ adds r1, r7, r3
+ movs r2, 0x10
+ bl CpuSet
+ adds r7, 0x20
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _0809593E
+ b _08095A2E
+ .align 2, 0
+_08095980: .4byte 0x0000fff0
+_08095984: .4byte gFont3LatinGlyphs
+_08095988:
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x8]
+ lsls r0, r1, 28
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ mov r2, r8
+ lsls r0, r2, 21
+ movs r1, 0
+ lsrs r0, 1
+ str r0, [sp, 0x10]
+_0809599E:
+ movs r5, 0
+ ldr r3, [sp, 0x4]
+ adds r3, r7, r3
+ str r3, [sp, 0x14]
+ adds r0, r1, 0x1
+ str r0, [sp, 0x18]
+ cmp r5, r8
+ bcs _08095A12
+ movs r2, 0xF
+ mov r12, r2
+ lsls r1, 9
+ ldr r0, _08095A40 @ =gFont3LatinGlyphs
+ adds r1, r0
+ mov r10, r1
+_080959BA:
+ ldr r3, [sp]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ ldr r0, _08095A44 @ =0x0000fff0
+ ands r0, r1
+ lsls r0, 6
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 5
+ adds r0, r1
+ mov r3, r10
+ adds r4, r0, r3
+ movs r6, 0
+ adds r5, 0x1
+_080959D6:
+ ldrb r0, [r4]
+ movs r3, 0xF0
+ ands r3, r0
+ mov r2, r12
+ ands r2, r0
+ cmp r3, 0
+ bne _080959E6
+ ldr r3, [sp, 0xC]
+_080959E6:
+ cmp r2, 0
+ bne _080959EC
+ ldr r2, [sp, 0x8]
+_080959EC:
+ mov r0, r9
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r1, [sp, 0x40]
+ adds r0, r1, r0
+ orrs r3, r2
+ strb r3, [r0]
+ adds r4, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1F
+ bls _080959D6
+ lsls r0, r5, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080959BA
+_08095A12:
+ ldr r0, [sp, 0x40]
+ adds r1, r7, 0
+ ldr r3, [sp, 0x10]
+ lsrs r2, r3, 16
+ bl CpuSet
+ ldr r7, [sp, 0x14]
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _0809599E
+_08095A2E:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095A40: .4byte gFont3LatinGlyphs
+_08095A44: .4byte 0x0000fff0
+ thumb_func_end sub_8095904
+
+ thumb_func_start unref_sub_8095A48
+unref_sub_8095A48: @ 8095A48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r6, 0
+_08095A60:
+ movs r3, 0
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ beq _08095ACE
+_08095A6C:
+ mov r0, sp
+ adds r0, r3
+ adds r0, 0x8
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bhi _08095AA8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ bne _08095A6C
+ cmp r3, 0
+ beq _08095ACE
+ movs r6, 0x1
+ cmp r3, 0x3
+ bhi _08095AA8
+ movs r2, 0
+_08095A96:
+ adds r0, r3, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ add r0, sp
+ adds r0, 0x8
+ strb r2, [r0]
+ cmp r3, 0x3
+ bls _08095A96
+_08095AA8:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x8
+ movs r0, 0xFF
+ strb r0, [r1]
+ str r7, [sp]
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r5, 0
+ mov r2, r8
+ movs r3, 0x80
+ bl sub_8095904
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ cmp r6, 0
+ beq _08095A60
+_08095ACE:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8095A48
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 9347967a5..e699cacf6 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -127,6 +127,7 @@ SECTIONS {
src/engine/trainer_card.o(.text);
src/engine/save_menu_util.o(.text);
src/battle/battle_party_menu.o(.text);
+ asm/unk_text_8095904.o(.text);
asm/pokemon_storage_system.o(.text);
src/pokemon/pokemon_storage_system.o(.text);
asm/pokemon_storage_system.o(.text_8098A38);