unk_0201B8B8.c

This commit is contained in:
PikalaxALT 2020-06-20 09:39:29 -04:00
parent 448adae329
commit faad0fa286
3 changed files with 42 additions and 83 deletions

View File

@ -1,83 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start FUN_0201B8B8
FUN_0201B8B8: ; 0x0201B8B8
push {r4, lr}
add r4, r0, #0x0
ldrh r1, [r4, #0x0]
ldr r0, _0201B8DC ; =0x0000FFFE
cmp r1, r0
beq _0201B8C8
bl ErrorHandling
_0201B8C8:
ldrh r1, [r4, #0x0]
ldr r0, _0201B8DC ; =0x0000FFFE
cmp r1, r0
bne _0201B8D8
ldrh r0, [r4, #0x4]
add r1, r4, #0x6
lsl r0, r0, #0x1
add r4, r1, r0
_0201B8D8:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_0201B8DC: .word 0x0000FFFE
thumb_func_start FUN_0201B8E0
FUN_0201B8E0: ; 0x0201B8E0
push {r4, lr}
add r4, r0, #0x0
ldrh r1, [r4, #0x0]
ldr r0, _0201B8F4 ; =0x0000FFFE
cmp r1, r0
beq _0201B8F0
bl ErrorHandling
_0201B8F0:
ldrh r0, [r4, #0x2]
pop {r4, pc}
.balign 4
_0201B8F4: .word 0x0000FFFE
thumb_func_start FUN_0201B8F8
FUN_0201B8F8: ; 0x0201B8F8
push {r3, lr}
bl FUN_0201B8E0
mov r1, #0xff
lsl r1, r1, #0x8
and r1, r0
mov r0, #0x1
lsl r0, r0, #0x8
cmp r1, r0
bne _0201B910
mov r0, #0x1
pop {r3, pc}
_0201B910:
mov r0, #0x0
pop {r3, pc}
thumb_func_start FUN_0201B914
FUN_0201B914: ; 0x0201B914
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
ldrh r1, [r5, #0x0]
ldr r0, _0201B938 ; =0x0000FFFE
cmp r1, r0
beq _0201B926
bl ErrorHandling
_0201B926:
ldrh r0, [r5, #0x4]
cmp r4, r0
blo _0201B930
bl ErrorHandling
_0201B930:
lsl r0, r4, #0x1
add r0, r5, r0
ldrh r0, [r0, #0x6]
pop {r3-r5, pc}
.balign 4
_0201B938: .word 0x0000FFFE

33
arm9/src/unk_0201B8B8.c Normal file
View File

@ -0,0 +1,33 @@
#include "global.h"
#include "unk_0201B8B88.h"
#pragma thumb on
const u16 * FUN_0201B8B8(const u16 * r4)
{
GF_ASSERT(*r4 == 0xFFFE);
if (*r4 == 0xFFFE) {
u16 r0 = r4[2];
r4 += 3;
r4 += r0;
}
return r4;
}
u16 FUN_0201B8E0(const u16 * r4)
{
GF_ASSERT(*r4 == 0xFFFE);
return r4[1];
}
BOOL FUN_0201B8F8(const u16 * r4)
{
return (FUN_0201B8E0(r4) & 0xFF00) == 0x100;
}
u16 FUN_0201B914(const u16 * r5, u32 r4)
{
GF_ASSERT(*r5 == 0xFFFE);
GF_ASSERT(r4 < r5[2]);
return r5[3 + r4];
}

9
include/unk_0201B8B88.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef POKEDIAMOND_UNK_0201B8B88_H
#define POKEDIAMOND_UNK_0201B8B88_H
const u16 * FUN_0201B8B8(const u16 * r4);
u16 FUN_0201B8E0(const u16 * r4);
BOOL FUN_0201B8F8(const u16 * r4);
u16 FUN_0201B914(const u16 * r5, u32 r4);
#endif //POKEDIAMOND_UNK_0201B8B88_H