Decomped sub_0205BC30

Decomped by @slaw-22
This commit is contained in:
AnonymousRandomPerson
2026-03-17 23:10:28 -04:00
parent 4997ae1ac3
commit 83bd973390
5 changed files with 46 additions and 35 deletions

View File

@@ -371,7 +371,6 @@
.public sub_02051134
.public sub_02051620
.public sub_02051648
.public sub_02051788
.public sub_02052C3C
.public sub_02052E2C
.public sub_02054F18
@@ -379,7 +378,6 @@
.public sub_02055474
.public sub_020554D8
.public sub_020555D0
.public sub_02055F04
.public sub_020568A4
.public sub_02056914
.public sub_02056D70

View File

@@ -1,39 +1,8 @@
.include "asm/macros.inc"
.include "main_0205BC30.inc"
.include "main_0205BC94.inc"
.text
arm_func_start sub_0205BC30
sub_0205BC30: ; 0x0205BC30
stmdb sp!, {r4, lr}
mov r4, r1
cmp r0, #0
bne _0205BC58
ldr r0, _0205BC90 ; =_020B0A54
mov r1, #0
ldr r0, [r0, #8]
mov r2, #0x44
bl MemsetSimple
ldmia sp!, {r4, pc}
_0205BC58:
ldr r2, _0205BC90 ; =_020B0A54
mov r1, r0
ldr r0, [r2, #8]
bl sub_02055F04
cmp r4, #0
ldmneia sp!, {r4, pc}
ldr r0, _0205BC90 ; =_020B0A54
ldr r0, [r0, #8]
ldrb r0, [r0, #2]
bl sub_02051788
ldr r1, _0205BC90 ; =_020B0A54
ldr r1, [r1, #8]
strb r0, [r1, #2]
ldmia sp!, {r4, pc}
.align 2, 0
_0205BC90: .word _020B0A54
arm_func_end sub_0205BC30
arm_func_start sub_0205BC94
sub_0205BC94: ; 0x0205BC94
ldr r1, _0205BCC0 ; =_020B0A54

6
include/main_0205BC30.h Normal file
View File

@@ -0,0 +1,6 @@
#ifndef PMDSKY_MAIN_0205BC30_H
#define PMDSKY_MAIN_0205BC30_H
void sub_0205BC30(u32 a, u32 b);
#endif //PMDSKY_MAIN_0205BC30_H

View File

@@ -157,7 +157,8 @@ Static main
Object src/main_0205B9C8.o
Object asm/main_0205BA0C.o
Object src/main_0205BBFC.o
Object asm/main_0205BC30.o
Object src/main_0205BC30.o
Object asm/main_0205BC94.o
Object src/dungeon_init_2.o
Object asm/main_0206A750.o
Object src/main_0206C98C.o

37
src/main_0205BC30.c Normal file
View File

@@ -0,0 +1,37 @@
#include "main_0205BC30.h"
#include "main_0200330C.h"
struct unkStruct_020B0A54_inner {
u8 padding[2];
u8 val;
};
// Should match the struct in main_0205B690, but haven't gotten it to match yet.
// https://decomp.me/scratch/e6YZI
struct unkStruct_020B0A54 {
u8 padding[8];
struct unkStruct_020B0A54_inner *inner;
};
extern void sub_02055F04(struct unkStruct_020B0A54_inner *p, u32 a);
extern u32 sub_02051788(u32 val);
extern struct unkStruct_020B0A54 _020B0A54;
void sub_0205BC30(u32 a, u32 b)
{
if (a == 0)
{
MemsetSimple((u8*) _020B0A54.inner, 0, 0x44);
return;
}
sub_02055F04(_020B0A54.inner, a);
if (b != 0)
{
return;
}
_020B0A54.inner->val = (u8)sub_02051788(_020B0A54.inner->val);
}