From 6e91cff71e8caa2dab6675220acab56e979700e3 Mon Sep 17 00:00:00 2001 From: Chesyon <55322011+Chesyon@users.noreply.github.com> Date: Wed, 6 May 2026 12:09:44 -0400 Subject: [PATCH] Decomp CopyMovesetFromStream Decomp CopyMovesetTo --- .../{main_02014ABC.inc => main_02014B1C.inc} | 2 -- asm/include/overlay_01.inc | 4 +-- asm/{main_02014ABC.s => main_02014B1C.s} | 36 +------------------ asm/overlay_01.s | 4 +-- include/main_02014A4C.h | 2 ++ main.lsf | 2 +- src/main_02014A4C.c | 30 +++++++++++----- src/main_02059334.c | 8 ++--- src/main_0205BD14.c | 8 ++--- 9 files changed, 38 insertions(+), 58 deletions(-) rename asm/include/{main_02014ABC.inc => main_02014B1C.inc} (56%) rename asm/{main_02014ABC.s => main_02014B1C.s} (71%) diff --git a/asm/include/main_02014ABC.inc b/asm/include/main_02014B1C.inc similarity index 56% rename from asm/include/main_02014ABC.inc rename to asm/include/main_02014B1C.inc index d0118cfa..9ce2952b 100644 --- a/asm/include/main_02014ABC.inc +++ b/asm/include/main_02014B1C.inc @@ -1,6 +1,4 @@ #pragma once .public CopyBitsFrom .public CopyBitsTo -.public CopyMoveFromStream -.public CopyMoveToStream .public memset diff --git a/asm/include/overlay_01.inc b/asm/include/overlay_01.inc index b03149e4..cb43caad 100644 --- a/asm/include/overlay_01.inc +++ b/asm/include/overlay_01.inc @@ -23,8 +23,8 @@ .public Copy16BitsTo .public CopyBitsFrom .public CopyBitsTo -.public CopyMovesetFrom -.public CopyMovesetTo +.public CopyMovesetFromStream +.public CopyMovesetToStream .public CreateAdvancedMenu .public CreateAdvancedTextBox .public CreateControlsChart diff --git a/asm/main_02014ABC.s b/asm/main_02014B1C.s similarity index 71% rename from asm/main_02014ABC.s rename to asm/main_02014B1C.s index 6a2d6de7..bee03cd1 100644 --- a/asm/main_02014ABC.s +++ b/asm/main_02014B1C.s @@ -1,42 +1,8 @@ .include "asm/macros.inc" - .include "main_02014ABC.inc" + .include "main_02014B1C.inc" .text - arm_func_start CopyMovesetTo -CopyMovesetTo: ; 0x02014ABC - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, #0 - mov r4, #6 -_02014AD0: - mla r1, r5, r4, r6 - mov r0, r7 - bl CopyMoveToStream - add r5, r5, #1 - cmp r5, #4 - blt _02014AD0 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end CopyMovesetTo - - arm_func_start CopyMovesetFrom -CopyMovesetFrom: ; 0x02014AEC - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, #0 - mov r4, #6 -_02014B00: - mla r1, r5, r4, r6 - mov r0, r7 - bl CopyMoveFromStream - add r5, r5, #1 - cmp r5, #4 - blt _02014B00 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end CopyMovesetFrom - arm_func_start sub_02014B1C sub_02014B1C: ; 0x02014B1C stmdb sp!, {r3, r4, r5, lr} diff --git a/asm/overlay_01.s b/asm/overlay_01.s index 18b783d1..85cf54de 100644 --- a/asm/overlay_01.s +++ b/asm/overlay_01.s @@ -6245,7 +6245,7 @@ ov01_0232E334: ; 0x0232E334 bl sub_0200DFE4 mov r0, r7 add r1, r6, #0x2a - bl CopyMovesetTo + bl CopyMovesetToStream add r0, sp, #0xc mov r1, #0x18 bl MemZero @@ -6411,7 +6411,7 @@ ov01_0232E58C: ; 0x0232E58C mov r0, r6 add r1, r5, #0x2a strh r2, [r5, #0x28] - bl CopyMovesetFrom + bl CopyMovesetFromStream add r1, sp, #0 mov r0, r6 mov r2, #0xa0 diff --git a/include/main_02014A4C.h b/include/main_02014A4C.h index 62c05abf..df3779b3 100644 --- a/include/main_02014A4C.h +++ b/include/main_02014A4C.h @@ -5,5 +5,7 @@ void CopyMoveToStream(struct bitstream * stream, struct ground_move * move ); void CopyMoveFromStream(struct bitstream * stream, struct ground_move * move ); +void CopyMovesetToStream(struct bitstream * stream, struct ground_move * src); +void CopyMovesetFromStream(struct bitstream * stream, struct ground_move * dst); #endif //PMDSKY_MAIN_02014A4C_H diff --git a/main.lsf b/main.lsf index 923f3da6..539db911 100644 --- a/main.lsf +++ b/main.lsf @@ -67,7 +67,7 @@ Static main Object src/moves_3.o Object asm/main_02013C30.o Object src/main_02014A4C.o - Object asm/main_02014ABC.o + Object asm/main_02014B1C.o Object src/main_02014CEC.o Object asm/main_02014D18.o Object src/main_020251AC.o diff --git a/src/main_02014A4C.c b/src/main_02014A4C.c index 8e74425e..b37a1fe3 100644 --- a/src/main_02014A4C.c +++ b/src/main_02014A4C.c @@ -3,16 +3,30 @@ extern void CopyBitsTo(struct bitstream *stream, void *src, u32 nbits); extern void CopyBitsFrom(struct bitstream *stream, void *dst, u32 nbits); -void CopyMoveToStream(struct bitstream * stream, struct ground_move * move ) +void CopyMoveToStream(struct bitstream * stream, struct ground_move * src ) { - CopyBitsTo(stream, &move->flags0, 4); - CopyBitsTo(stream, &move->id, 10); - CopyBitsTo(stream, &move->ginseng, 7); + CopyBitsTo(stream, &src->flags0, 4); + CopyBitsTo(stream, &src->id, 10); + CopyBitsTo(stream, &src->ginseng, 7); } -void CopyMoveFromStream(struct bitstream * stream, struct ground_move * move ) +void CopyMoveFromStream(struct bitstream * stream, struct ground_move * dst ) { - CopyBitsFrom(stream, &move->flags0, 4); - CopyBitsFrom(stream, &move->id, 10); - CopyBitsFrom(stream, &move->ginseng, 7); + CopyBitsFrom(stream, &dst->flags0, 4); + CopyBitsFrom(stream, &dst->id, 10); + CopyBitsFrom(stream, &dst->ginseng, 7); +} + +void CopyMovesetToStream(struct bitstream * stream, struct ground_move * src) +{ + for (s32 i = 0; i < 4; i++) { + CopyMoveToStream(stream, &src[i]); + } +} + +void CopyMovesetFromStream(struct bitstream * stream, struct ground_move * dst) +{ + for (s32 i = 0; i < 4; i++) { + CopyMoveFromStream(stream, &dst[i]); + } } diff --git a/src/main_02059334.c b/src/main_02059334.c index be1d15fd..3586fe12 100644 --- a/src/main_02059334.c +++ b/src/main_02059334.c @@ -3,11 +3,11 @@ extern void CopyBitsTo(void *ctx, void *src, s32 nbits); extern void Copy16BitsTo(void *stream, void *buf_write); -extern void CopyMovesetTo(struct bitstream *stream, void *buffer_write); +extern void CopyMovesetToStream(struct bitstream *stream, void *buffer_write); extern void* memset(void *s, s32 c, u32 n); extern void CopyBitsFrom(void *stream, void *buf_read, s32 nbits); extern void Copy16BitsFrom(void *stream, void *buf_read); -extern void CopyMovesetFrom(struct bitstream *stream, void *dst); +extern void CopyMovesetFromStream(struct bitstream *stream, void *dst); void WriteMonsterToSave(struct bitstream *stream, struct ground_monster *monster) { @@ -26,7 +26,7 @@ void WriteMonsterToSave(struct bitstream *stream, struct ground_monster *monster CopyBitsTo(stream, &monster->exp, 24); CopyBitsTo(stream, &monster->iq_skill_flags, 69); CopyBitsTo(stream, &monster->tactic, 4); - CopyMovesetTo(stream, &monster->moves); + CopyMovesetToStream(stream, &monster->moves); CopyBitsTo(stream, &monster->name, 80); } @@ -48,6 +48,6 @@ void ReadMonsterFromSave(struct bitstream *stream, struct ground_monster *monste CopyBitsFrom(stream, &monster->exp, 24); CopyBitsFrom(stream, &monster->iq_skill_flags, 69); CopyBitsFrom(stream, &monster->tactic, 4); - CopyMovesetFrom(stream, &monster->moves); + CopyMovesetFromStream(stream, &monster->moves); CopyBitsFrom(stream, &monster->name, 80); } diff --git a/src/main_0205BD14.c b/src/main_0205BD14.c index 34e5da8f..ffcb39ce 100644 --- a/src/main_0205BD14.c +++ b/src/main_0205BD14.c @@ -13,13 +13,13 @@ extern void InitBitstreamForWrite(struct bitstream *stream, u32 v1, u32 v2); extern void CopyBitsFrom(struct bitstream *stream, void *buf_read, s32 nbits); extern void* memset(void *s, s32 c, u32 n); extern void Copy16BitsFrom(struct bitstream *stream, void *buf_read); -extern void CopyMovesetFrom(struct bitstream *stream, void *dst); +extern void CopyMovesetFromStream(struct bitstream *stream, void *dst); extern void BitstreamDebug(struct bitstream *stream); extern void sub_020634F4(void); extern void InitBitstreamForRead(struct bitstream *stream, u32 p1, u32 p2); extern void CopyBitsTo(struct bitstream *stream, void* buf_write, s32 nbits); extern void Copy16BitsTo(struct bitstream *stream, void *buf_write); -extern void CopyMovesetTo(struct bitstream *stream, void *buffer_write); +extern void CopyMovesetToStream(struct bitstream *stream, void *buffer_write); void sub_0205BD14(u32 *dest, s32 index) { @@ -81,7 +81,7 @@ u32 sub_0205BD9C(u32 arg0, u32 arg1) CopyBitsFrom(&stream, &monster->exp, 24); CopyBitsFrom(&stream, &monster->iq_skill_flags, 69); CopyBitsFrom(&stream, &monster->tactic, 4); - CopyMovesetFrom(&stream, monster->moves); + CopyMovesetFromStream(&stream, monster->moves); CopyBitsFrom(&stream, monster->name, 80); struct unkStruct_020B0A54_unk8_inner *inner = _020B0A54.struct1.unk8.unk8; @@ -131,7 +131,7 @@ u32 sub_0205BFB0(u32 p0, u32 p1) CopyBitsTo(&stream, &monster->exp, 24); CopyBitsTo(&stream, &monster->iq_skill_flags, 69); CopyBitsTo(&stream, &monster->tactic, 4); - CopyMovesetTo(&stream, monster->moves); + CopyMovesetToStream(&stream, monster->moves); CopyBitsTo(&stream, monster->name, 80); struct unkStruct_020B0A54_unk8_inner *inner = _020B0A54.struct1.unk8.unk8;