diff options
author | Mateusz Naściszewski <matin1111@wp.pl> | 2020-12-15 02:37:00 +0100 |
---|---|---|
committer | Mateusz Naściszewski <matin1111@wp.pl> | 2020-12-15 02:37:00 +0100 |
commit | 75b09a819a7dbb51d42aacd31ecc85a5c233d8a4 (patch) | |
tree | 655fbb5a9312c3818a41fe2011d38bf0ad0cbb6b | |
parent | efdaf621cbebae7d73800cfb2def92a5466127ff (diff) |
Finish translating code_800AAA0 to C!
-rw-r--r-- | asm/code_800AAA0.s | 101 | ||||
-rwxr-xr-x | ld_script.txt | 1 | ||||
-rw-r--r-- | src/file_system.c | 25 |
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; +} |