summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Naściszewski <matin1111@wp.pl>2020-12-15 02:37:00 +0100
committerMateusz Naściszewski <matin1111@wp.pl>2020-12-15 02:37:00 +0100
commit75b09a819a7dbb51d42aacd31ecc85a5c233d8a4 (patch)
tree655fbb5a9312c3818a41fe2011d38bf0ad0cbb6b
parentefdaf621cbebae7d73800cfb2def92a5466127ff (diff)
Finish translating code_800AAA0 to C!
-rw-r--r--asm/code_800AAA0.s101
-rwxr-xr-xld_script.txt1
-rw-r--r--src/file_system.c25
3 files changed, 25 insertions, 102 deletions
diff --git a/asm/code_800AAA0.s b/asm/code_800AAA0.s
deleted file mode 100644
index 5c8980b..0000000
--- a/asm/code_800AAA0.s
+++ /dev/null
@@ -1,101 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_800B294
-sub_800B294:
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _0800B2CC
- ldrb r0, [r1, 0x1]
- adds r2, r0, 0
- cmp r2, 0x54
- bne _0800B2B2
- ldrb r0, [r1, 0x2]
- cmp r0, 0x34
- bne _0800B2B2
- ldrb r0, [r1, 0x3]
- cmp r0, 0x50
- beq _0800B2C8
-_0800B2B2:
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _0800B2CC
- cmp r2, 0x54
- bne _0800B2CC
- ldrb r0, [r1, 0x2]
- cmp r0, 0x33
- bne _0800B2CC
- ldrb r0, [r1, 0x3]
- cmp r0, 0x50
- bne _0800B2CC
-_0800B2C8:
- movs r0, 0x1
- b _0800B2CE
-_0800B2CC:
- movs r0, 0
-_0800B2CE:
- pop {r1}
- bx r1
- thumb_func_end sub_800B294
-
- thumb_func_start sub_800B2D4
-sub_800B2D4:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- movs r2, 0
- cmp r2, r4
- bge _0800B324
-_0800B2E2:
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r0, r5, r2
- ldrb r3, [r0]
- adds r0, r1, 0
- subs r0, 0x41
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x19
- bhi _0800B2FE
- adds r0, r1, 0
- adds r0, 0x20
- lsls r0, 24
- lsrs r1, r0, 24
-_0800B2FE:
- adds r0, r3, 0
- subs r0, 0x41
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x19
- bhi _0800B312
- adds r0, r3, 0
- adds r0, 0x20
- lsls r0, 24
- lsrs r3, r0, 24
-_0800B312:
- cmp r1, r3
- beq _0800B31A
- movs r0, 0x1
- b _0800B326
-_0800B31A:
- cmp r1, 0
- beq _0800B324
- adds r2, 0x1
- cmp r2, r4
- blt _0800B2E2
-_0800B324:
- movs r0, 0
-_0800B326:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_800B2D4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 27cbb56..0e1ea51 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -68,7 +68,6 @@ SECTIONS {
asm/text.o(.text);
asm/code_8009804.o(.text);
src/file_system.o(.text);
- asm/code_800AAA0.o(.text);
src/main.o(.text);
asm/code_800B540.o(.text);
src/code_800B5F0.o(.text);
diff --git a/src/file_system.c b/src/file_system.c
index b2aad05..cd1bf83 100644
--- a/src/file_system.c
+++ b/src/file_system.c
@@ -1632,3 +1632,28 @@ void DecompressAT_Finish(void) {
if (gDecompressBufferByteInInt)
*gDecompressBufferPtr = gDecompressBufferCurrent;
}
+
+// 800B294
+bool32 IsATxPCompressed_unused(char *data) {
+ if ((data[0] == 'A' && data[1] == 'T' && data[2] == '4' && data[3] == 'P')) return TRUE;
+ if ((data[0] == 'A' && data[1] == 'T' && data[2] == '3' && data[3] == 'P')) return TRUE;
+ return FALSE;
+}
+
+// 800B2D4
+bool32 sub_800B2D4(char *arg0, char *arg1, int length) {
+ int i;
+ char a, b;
+ for (i = 0; i < length; i++) {
+ a = arg0[i];
+ b = arg1[i];
+ // convert to lowercase
+ if ('A' <= a && a <= 'Z') a += 0x20;
+ if ('A' <= b && b <= 'Z') b += 0x20;
+ if (a != b)
+ return TRUE;
+ if (a == '\0')
+ break;
+ }
+ return FALSE;
+}