mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
Decomped sub_0205BFB0
Decomped by @slaw-22
This commit is contained in:
parent
afe08d279e
commit
9d62f5cd80
|
|
@ -1,10 +0,0 @@
|
|||
#pragma once
|
||||
.public Copy16BitsTo
|
||||
.public CopyBitsTo
|
||||
.public CopyMovesetTo
|
||||
.public _020B0A54
|
||||
.public _022B57BC
|
||||
.public sub_02050990
|
||||
.public sub_020509BC
|
||||
.public sub_02059AF8
|
||||
.public sub_0205C440
|
||||
|
|
@ -1,134 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "main_0205BFB0.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start sub_0205BFB0
|
||||
sub_0205BFB0: ; 0x0205BFB0
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r3, r0
|
||||
mov r2, r1
|
||||
add r0, sp, #0
|
||||
mov r1, r3
|
||||
bl sub_02050990
|
||||
ldr r1, _0205C194 ; =_022B57BC
|
||||
add r0, sp, #0
|
||||
mov r2, #0x20
|
||||
bl CopyBitsTo
|
||||
ldr r5, _0205C198 ; =_020B0A54
|
||||
mov r7, #0
|
||||
add r6, sp, #0
|
||||
mov r4, #0xb0
|
||||
_0205BFEC:
|
||||
ldr r1, [r5]
|
||||
mov r0, r6
|
||||
mla r1, r7, r4, r1
|
||||
bl sub_0205C440
|
||||
add r7, r7, #1
|
||||
cmp r7, #0x20
|
||||
blt _0205BFEC
|
||||
ldr r1, _0205C198 ; =_020B0A54
|
||||
add r0, sp, #0
|
||||
ldr r4, [r1, #8]
|
||||
mov r2, #4
|
||||
mov r1, r4
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #1
|
||||
mov r2, #7
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #2
|
||||
bl Copy16BitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #4
|
||||
mov r2, #0xb
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #6
|
||||
bl sub_02059AF8
|
||||
add r0, sp, #0
|
||||
add r1, r4, #7
|
||||
bl sub_02059AF8
|
||||
add r0, sp, #0
|
||||
add r1, r4, #8
|
||||
mov r2, #0xa
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0xa
|
||||
mov r2, #0xa
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0xc
|
||||
mov r2, #8
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0xd
|
||||
mov r2, #8
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0xe
|
||||
mov r2, #8
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0xf
|
||||
mov r2, #8
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0x10
|
||||
mov r2, #0x18
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0x14
|
||||
mov r2, #0x45
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0x20
|
||||
mov r2, #4
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0x22
|
||||
bl CopyMovesetTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0x3a
|
||||
mov r2, #0x50
|
||||
bl CopyBitsTo
|
||||
ldr r1, _0205C198 ; =_020B0A54
|
||||
add r0, sp, #0
|
||||
ldr r4, [r1, #8]
|
||||
mov r2, #0xb
|
||||
add r1, r4, #0x46
|
||||
bl CopyBitsTo
|
||||
add r0, sp, #0
|
||||
add r1, r4, #0x48
|
||||
mov r2, #0xb
|
||||
bl CopyBitsTo
|
||||
ldr r1, _0205C198 ; =_020B0A54
|
||||
add r0, sp, #0
|
||||
ldr r1, [r1, #4]
|
||||
mov r2, #0x20
|
||||
bl CopyBitsTo
|
||||
ldr r4, _0205C198 ; =_020B0A54
|
||||
mov r7, #0
|
||||
add r6, sp, #0
|
||||
mov r5, #0x40
|
||||
_0205C15C:
|
||||
ldr r1, [r4, #4]
|
||||
mov r0, r6
|
||||
add r1, r1, #4
|
||||
mov r2, r5
|
||||
add r1, r1, r7, lsl #3
|
||||
bl CopyBitsTo
|
||||
add r7, r7, #1
|
||||
cmp r7, #0x20
|
||||
blt _0205C15C
|
||||
add r0, sp, #0
|
||||
bl sub_020509BC
|
||||
ldr r0, [sp, #8]
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0205C194: .word _022B57BC
|
||||
_0205C198: .word _020B0A54
|
||||
arm_func_end sub_0205BFB0
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef PMDSKY_MAIN_0205BD14_H
|
||||
#define PMDSKY_MAIN_0205BD14_H
|
||||
|
||||
#include "main_02058FA4.h"
|
||||
#include "main_0205B690.h"
|
||||
#include "util.h"
|
||||
|
||||
void sub_0205BD14(u32 *dest, s32 index);
|
||||
|
|
@ -9,5 +11,7 @@ bool8 sub_0205BD5C(u32 val);
|
|||
u8 sub_0205BD78(void);
|
||||
u32 sub_0205BD90(u32 a0);
|
||||
u32 sub_0205BD9C(u32 arg0, u32 arg1);
|
||||
u32 sub_0205BFB0(u32 p0, u32 p1);
|
||||
void sub_0205C19C(struct WriteMonsterInfoToSave_struct *arg0, struct unkStruct_020B0A54 *arg1);
|
||||
|
||||
#endif //PMDSKY_MAIN_0205BD14_H
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
#ifndef PMDSKY_MAIN_0205C19C_H
|
||||
#define PMDSKY_MAIN_0205C19C_H
|
||||
|
||||
#include "main_02058FA4.h"
|
||||
#include "main_0205B690.h"
|
||||
|
||||
void sub_0205C19C(struct WriteMonsterInfoToSave_struct *arg0, struct unkStruct_020B0A54 *arg1);
|
||||
|
||||
#endif //PMDSKY_MAIN_0205C19C_H
|
||||
2
main.lsf
2
main.lsf
|
|
@ -158,8 +158,6 @@ Static main
|
|||
Object src/main_0205BBFC.o
|
||||
Object asm/main_0205BCC4.o
|
||||
Object src/main_0205BD14.o
|
||||
Object asm/main_0205BFB0.o
|
||||
Object src/main_0205C19C.o
|
||||
Object asm/main_0205C2A4.o
|
||||
Object src/dungeon_init_2.o
|
||||
Object asm/main_0206A750.o
|
||||
|
|
|
|||
|
|
@ -10,12 +10,16 @@ extern u32 _022B57BC;
|
|||
|
||||
extern void sub_02050974(void *v0, u32 v1, u32 v2);
|
||||
extern void CopyBitsFrom(void *read_info, void *buf_read, s32 nbits);
|
||||
extern void sub_0205C19C(struct WriteMonsterInfoToSave_struct *temp, struct unkStruct_020B0A54 *src);
|
||||
extern void* memset(void *s, s32 c, u32 n);
|
||||
extern void Copy16BitsFrom(void *read_info, void *buf_read);
|
||||
extern void CopyMovesetFrom(struct WriteMonsterInfoToSave_struct *read_info, void *dst);
|
||||
extern void sub_020509BC(struct WriteMonsterInfoToSave_struct *temp);
|
||||
extern void sub_020509BC(struct WriteMonsterInfoToSave_struct *write_info);
|
||||
extern void sub_020634F4(void);
|
||||
extern void sub_02050990(struct WriteMonsterInfoToSave_struct *write_info, u32 p1, u32 p2);
|
||||
extern void CopyBitsTo(void *write_info, void* buf_write, s32 nbits);
|
||||
extern void sub_0205C440(struct WriteMonsterInfoToSave_struct *write_info, const void *p1);
|
||||
extern void Copy16BitsTo(void *write_info, void *buf_write);
|
||||
extern void CopyMovesetTo(struct WriteMonsterInfoToSave_struct *write_info, void *buffer_write);
|
||||
|
||||
void sub_0205BD14(u32 *dest, s32 index)
|
||||
{
|
||||
|
|
@ -98,3 +102,71 @@ u32 sub_0205BD9C(u32 arg0, u32 arg1)
|
|||
|
||||
return temp.result;
|
||||
}
|
||||
|
||||
u32 sub_0205BFB0(u32 p0, u32 p1)
|
||||
{
|
||||
struct WriteMonsterInfoToSave_struct stack_var;
|
||||
|
||||
sub_02050990(&stack_var, p0, p1);
|
||||
CopyBitsTo(&stack_var, &_022B57BC, 32);
|
||||
|
||||
for (s32 i = 0; i < 32; i++)
|
||||
{
|
||||
sub_0205C440(&stack_var, &_020B0A54.struct0[i]);
|
||||
}
|
||||
|
||||
struct ground_monster *monster = _020B0A54.struct1.unk8.monster;
|
||||
CopyBitsTo(&stack_var, &monster->is_valid, 4);
|
||||
CopyBitsTo(&stack_var, &monster->level, 7);
|
||||
Copy16BitsTo(&stack_var, &monster->joined_at);
|
||||
CopyBitsTo(&stack_var, &monster->id, 11);
|
||||
sub_02059AF8(&stack_var, &monster->level_at_first_evo);
|
||||
sub_02059AF8(&stack_var, &monster->level_at_second_evo);
|
||||
CopyBitsTo(&stack_var, &monster->iq, 10);
|
||||
CopyBitsTo(&stack_var, &monster->max_hp, 10);
|
||||
CopyBitsTo(&stack_var, &monster->offensive_stats[0], 8);
|
||||
CopyBitsTo(&stack_var, &monster->offensive_stats[1], 8);
|
||||
CopyBitsTo(&stack_var, &monster->defensive_stats[0], 8);
|
||||
CopyBitsTo(&stack_var, &monster->defensive_stats[1], 8);
|
||||
CopyBitsTo(&stack_var, &monster->exp, 24);
|
||||
CopyBitsTo(&stack_var, &monster->iq_skill_flags, 69);
|
||||
CopyBitsTo(&stack_var, &monster->tactic, 4);
|
||||
CopyMovesetTo(&stack_var, monster->moves);
|
||||
CopyBitsTo(&stack_var, monster->name, 80);
|
||||
|
||||
struct unkStruct_020B0A54_unk8_inner *inner = _020B0A54.struct1.unk8.unk8;
|
||||
CopyBitsTo(&stack_var, &inner->unk46, 11);
|
||||
CopyBitsTo(&stack_var, &inner->unk48, 11);
|
||||
|
||||
CopyBitsTo(&stack_var, (void*) _020B0A54.struct1.unk4, 32);
|
||||
|
||||
for (s32 i = 0; i < 32; i++)
|
||||
{
|
||||
CopyBitsTo(&stack_var, _020B0A54.fp[1] + 4 + (i * 8), 64);
|
||||
}
|
||||
|
||||
sub_020509BC(&stack_var);
|
||||
|
||||
return stack_var.result;
|
||||
}
|
||||
|
||||
void sub_0205C19C(struct WriteMonsterInfoToSave_struct *arg0, struct unkStruct_020B0A54 *arg1)
|
||||
{
|
||||
CopyBitsFrom(arg0, &arg1->unk0, 4);
|
||||
Copy16BitsFrom(arg0, &arg1->unk4);
|
||||
CopyBitsFrom(arg0, &arg1->unk8.monster, 24);
|
||||
CopyBitsFrom(arg0, &arg1->unkC, 64);
|
||||
CopyBitsFrom(arg0, &arg1->unk14, 0x40);
|
||||
CopyBitsFrom(arg0, &arg1->unk1C, 4);
|
||||
CopyBitsFrom(arg0, &arg1->unk1D, 0x50);
|
||||
CopyBitsFrom(arg0, &arg1->unk32, 0x120);
|
||||
CopyBitsFrom(arg0, &arg1->unk56, 0x240);
|
||||
CopyBitsFrom(arg0, &arg1->unkA0, 0xb);
|
||||
CopyBitsFrom(arg0, &arg1->unkA2, 0xb);
|
||||
CopyBitsFrom(arg0, &arg1->unkA4, 0x40);
|
||||
CopyBitsFrom(arg0, &arg1->unkAC, 8);
|
||||
bool8 temp;
|
||||
CopyBitsFrom(arg0, &temp, 1);
|
||||
arg1->unkAD = temp != FALSE;
|
||||
CopyBitsFrom(arg0, &arg1->unkAE, 2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
#include "main_0205C19C.h"
|
||||
|
||||
extern void CopyBitsFrom(void *read_info, void *buf_read, s32 nbits);
|
||||
extern void Copy16BitsFrom(void *read_info, void *buf_read);
|
||||
|
||||
void sub_0205C19C(struct WriteMonsterInfoToSave_struct *arg0, struct unkStruct_020B0A54 *arg1)
|
||||
{
|
||||
CopyBitsFrom(arg0, &arg1->unk0, 4);
|
||||
Copy16BitsFrom(arg0, &arg1->unk4);
|
||||
CopyBitsFrom(arg0, &arg1->unk8.monster, 24);
|
||||
CopyBitsFrom(arg0, &arg1->unkC, 64);
|
||||
CopyBitsFrom(arg0, &arg1->unk14, 0x40);
|
||||
CopyBitsFrom(arg0, &arg1->unk1C, 4);
|
||||
CopyBitsFrom(arg0, &arg1->unk1D, 0x50);
|
||||
CopyBitsFrom(arg0, &arg1->unk32, 0x120);
|
||||
CopyBitsFrom(arg0, &arg1->unk56, 0x240);
|
||||
CopyBitsFrom(arg0, &arg1->unkA0, 0xb);
|
||||
CopyBitsFrom(arg0, &arg1->unkA2, 0xb);
|
||||
CopyBitsFrom(arg0, &arg1->unkA4, 0x40);
|
||||
CopyBitsFrom(arg0, &arg1->unkAC, 8);
|
||||
bool8 temp;
|
||||
CopyBitsFrom(arg0, &temp, 1);
|
||||
arg1->unkAD = temp != FALSE;
|
||||
CopyBitsFrom(arg0, &arg1->unkAE, 2);
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user