mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-14 22:37:06 -05:00
Decomped sub_0205BC30
Decomped by @slaw-22
This commit is contained in:
@@ -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
|
||||
@@ -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
6
include/main_0205BC30.h
Normal 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
|
||||
3
main.lsf
3
main.lsf
@@ -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
37
src/main_0205BC30.c
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user