From 202737c1f0e252059f16a45dcda0c8a7b3dde78c Mon Sep 17 00:00:00 2001 From: Prakxo <87568477+Prakxo@users.noreply.github.com> Date: Sun, 21 Apr 2024 17:08:00 +0200 Subject: m_scene_ftr OK (#176) * 1 byte off.. * m_scene_ftr OK * newline * warnings --- include/6E30B0.h | 85 ------------------------------- include/6E3240.h | 80 +++++++++++++++++++++++++++++ include/m_scene_ftr.h | 16 ++++++ src/code/m_npc.c | 2 +- src/code/m_private.c | 2 +- src/code/m_scene.c | 2 +- src/code/m_scene_ftr.c | 44 ++++++++++++++++ src/code/m_start_data_init.c | 2 +- src/overlays/gamestates/ovl_play/m_play.c | 2 +- yamls/jp/code.yaml | 5 +- 10 files changed, 148 insertions(+), 92 deletions(-) delete mode 100644 include/6E30B0.h create mode 100644 include/6E3240.h create mode 100644 include/m_scene_ftr.h create mode 100644 src/code/m_scene_ftr.c diff --git a/include/6E30B0.h b/include/6E30B0.h deleted file mode 100644 index 62b8c17..0000000 --- a/include/6E30B0.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef C_6E30B0_H -#define C_6E30B0_H - -#include "ultra64.h" - -struct Game; -struct Game_Play; - -// void func_800BF410_jp(); -// void func_800BF480_jp(); -void mScn_ObtainCarpetBank(struct Game_Play*); -// void func_800BF56C_jp(); -void mScn_ObtainMyRoomBank(struct Game_Play*); -// void func_800BF5A0_jp(); -// void func_800BF5F4_jp(); -// void func_800BF770_jp(); -// void func_800BF7EC_jp(); -// void func_800BF8E8_jp(); -// void func_800BF9B0_jp(); -// void func_800BFA78_jp(); -// void func_800BFAA8_jp(); -// void func_800BFC00_jp(); -// void func_800BFC5C_jp(); -void mSP_SelectRandomItem_New(Game*, u16*, s32, u16*, s32, s32, s32); -// void func_800BFF8C_jp(); -// void func_800BFFC0_jp(); -// void func_800C0194_jp(); -// void func_800C0490_jp(); -// void func_800C05E0_jp(); -// void mSP_MakeRandomGoodsList(); -// void func_800C088C_jp(); -// void func_800C092C_jp(); -// void func_800C0AAC_jp(); -// void func_800C0BA0_jp(); -// void func_800C0CB4_jp(); -// void func_800C0CF0_jp(); -// void func_800C0D48_jp(); -// void func_800C0DA0_jp(); -// void func_800C0DEC_jp(); -// void func_800C0E98_jp(); -// void func_800C1070_jp(); -// void func_800C1230_jp(); -void mSP_ExchangeLineUp_InGame(struct Game* game); -// void func_800C1498_jp(); -// void func_800C15A8_jp(); -// void func_800C1610_jp(); -// void func_800C164C_jp(); -// void func_800C165C_jp(); -// void func_800C1674_jp(); -// void func_800C16F0_jp(); -// void func_800C1764_jp(); -// void func_800C17F8_jp(); -// void func_800C1BF0_jp(); -// void func_800C1C38_jp(); -// void func_800C1C70_jp(); -// void func_800C1CB8_jp(); -// void func_800C1CE8_jp(); -// void func_800C1D08_jp(); -// void func_800C1D3C_jp(); -// void func_800C1D5C_jp(); -// void mSP_DecideUniqueCommonList(); -// void func_800C1F08_jp(); -// void func_800C1F5C_jp(); -// void func_800C1F90_jp(); -// void func_800C2060_jp(); -// void func_800C2070_jp(); -// void func_800C22F8_jp(); -// void func_800C2354_jp(); -// void func_800C2380_jp(); -// void func_800C23EC_jp(); -// void func_800C2480_jp(); -// void func_800C2578_jp(); -// void func_800C2718_jp(); -// void func_800C284C_jp(); -void mSP_RandomUmbSelect(u16*, s32); -// void func_800C2AAC_jp(); -// void func_800C2B70_jp(); -// void func_800C2CC8_jp(); -// void func_800C2D2C_jp(); -// void func_800C2D8C_jp(); -// void func_800C2DF0_jp(); -// void func_800C2E80_jp(); -void func_800C2EE0_jp(void); - -#endif diff --git a/include/6E3240.h b/include/6E3240.h new file mode 100644 index 0000000..663ee20 --- /dev/null +++ b/include/6E3240.h @@ -0,0 +1,80 @@ +#ifndef C_6E3240_H +#define C_6E3240_H + +#include "ultra64.h" + +struct Game; +struct Game_Play; + +// void func_800BF5A0_jp(); +// void func_800BF5F4_jp(); +// void func_800BF770_jp(); +// void func_800BF7EC_jp(); +// void func_800BF8E8_jp(); +// void func_800BF9B0_jp(); +// void func_800BFA78_jp(); +// void func_800BFAA8_jp(); +// void func_800BFC00_jp(); +// void func_800BFC5C_jp(); +void mSP_SelectRandomItem_New(Game*, u16*, s32, u16*, s32, s32, s32); +// void func_800BFF8C_jp(); +// void func_800BFFC0_jp(); +// void func_800C0194_jp(); +// void func_800C0490_jp(); +// void func_800C05E0_jp(); +// void mSP_MakeRandomGoodsList(); +// void func_800C088C_jp(); +// void func_800C092C_jp(); +// void func_800C0AAC_jp(); +// void func_800C0BA0_jp(); +// void func_800C0CB4_jp(); +// void func_800C0CF0_jp(); +// void func_800C0D48_jp(); +// void func_800C0DA0_jp(); +// void func_800C0DEC_jp(); +// void func_800C0E98_jp(); +// void func_800C1070_jp(); +// void func_800C1230_jp(); +void mSP_ExchangeLineUp_InGame(struct Game* game); +// void func_800C1498_jp(); +// void func_800C15A8_jp(); +// void func_800C1610_jp(); +// void func_800C164C_jp(); +// void func_800C165C_jp(); +// void func_800C1674_jp(); +// void func_800C16F0_jp(); +// void func_800C1764_jp(); +// void func_800C17F8_jp(); +// void func_800C1BF0_jp(); +// void func_800C1C38_jp(); +// void func_800C1C70_jp(); +// void func_800C1CB8_jp(); +// void func_800C1CE8_jp(); +// void func_800C1D08_jp(); +// void func_800C1D3C_jp(); +// void func_800C1D5C_jp(); +// void mSP_DecideUniqueCommonList(); +// void func_800C1F08_jp(); +// void func_800C1F5C_jp(); +// void func_800C1F90_jp(); +// void func_800C2060_jp(); +// void func_800C2070_jp(); +// void func_800C22F8_jp(); +// void func_800C2354_jp(); +// void func_800C2380_jp(); +// void func_800C23EC_jp(); +// void func_800C2480_jp(); +// void func_800C2578_jp(); +// void func_800C2718_jp(); +// void func_800C284C_jp(); +void mSP_RandomUmbSelect(u16*, s32); +// void func_800C2AAC_jp(); +// void func_800C2B70_jp(); +// void func_800C2CC8_jp(); +// void func_800C2D2C_jp(); +// void func_800C2D8C_jp(); +// void func_800C2DF0_jp(); +// void func_800C2E80_jp(); +void func_800C2EE0_jp(void); + +#endif diff --git a/include/m_scene_ftr.h b/include/m_scene_ftr.h new file mode 100644 index 0000000..10b4c11 --- /dev/null +++ b/include/m_scene_ftr.h @@ -0,0 +1,16 @@ +#ifndef M_SCENE_FTR_H +#define M_SCENE_FTR_H + +#include "ultra64.h" +#include "other_types.h" + +struct Game_Play; +struct ObjectExchangeBank; + +void mScn_Dma2Bank(struct ObjectExchangeBank* exchange, s32 id, RomOffset vrom, size_t size); +void mScn_KeepMyRoomBankNew(struct ObjectExchangeBank* exchange, s16 id, size_t size); +void mScn_ObtainCarpetBank(struct Game_Play*); +s32 mScn_ObtainFurnitureBank(struct Game_Play* play, s32 bank); +void mScn_ObtainMyRoomBank(struct Game_Play*); + +#endif diff --git a/src/code/m_npc.c b/src/code/m_npc.c index f9e8fcd..1c85824 100644 --- a/src/code/m_npc.c +++ b/src/code/m_npc.c @@ -5,7 +5,7 @@ #include "m_time.h" #include "m_field_info.h" #include "m_mail_check.h" -#include "6E30B0.h" +#include "6E3240.h" #include "m_string.h" #include "m_handbill.h" #include "m_std_dma.h" diff --git a/src/code/m_private.c b/src/code/m_private.c index b799f9a..7560a8d 100644 --- a/src/code/m_private.c +++ b/src/code/m_private.c @@ -6,7 +6,7 @@ #include "m_player_lib.h" #include "6E2300.h" #include "m_field_info.h" -#include "6E30B0.h" +#include "6E3240.h" #include "69CB30.h" #include "m_handbill.h" #include "m_house.h" diff --git a/src/code/m_scene.c b/src/code/m_scene.c index 8c5ba7a..3f27d44 100644 --- a/src/code/m_scene.c +++ b/src/code/m_scene.c @@ -13,7 +13,7 @@ #include "m_player_lib.h" #include "m_std_dma.h" #include "m_scene_table.h" -#include "6E30B0.h" +#include "m_scene_ftr.h" #include "m_player_lib.h" #include "overlays/actors/player_actor/m_player.h" diff --git a/src/code/m_scene_ftr.c b/src/code/m_scene_ftr.c new file mode 100644 index 0000000..7e54fc0 --- /dev/null +++ b/src/code/m_scene_ftr.c @@ -0,0 +1,44 @@ +#include "m_scene_ftr.h" +#include "overlays/gamestates/ovl_play/m_play.h" + +void mScn_Dma2Bank(ObjectExchangeBank* exchange, s32 id, RomOffset vrom, size_t size) { + + if (vrom != NULL) { + DmaMgr_RequestSyncDebug(exchange->status[id + 3].unk14.vram, vrom, size, "../m_scene_ftr.c", 52); + } +} + +void mScn_KeepMyRoomBankNew(ObjectExchangeBank* exchange, s16 id, size_t size) { + ObjectStatus* bank = exchange->status + exchange->num; + + bank->id = id; + bank->vram = (void*)exchange->unk1800; + bank->segment = (void*)exchange->unk1800; + bank->size = size; + + if (exchange->num < (OBJECT_EXCHANGE_BANK_MAX - 1)) { + exchange->unk1800 = ALIGN16(exchange->unk1800 + size); + exchange->num++; + } +} + +void mScn_ObtainCarpetBank(Game_Play* play) { + ObjectExchangeBank* exchange = &play->objectExchangeBank; + s32 i; + + for (i = 0; i < 2; i++) { + mScn_KeepMyRoomBankNew(exchange, 18, 0x2020); + } + + for (i = 0; i < 2; i++) { + mScn_KeepMyRoomBankNew(exchange, 19, 0x1020); + } +} + +s32 mScn_ObtainFurnitureBank(UNUSED Game_Play* play, s32 bank) { + common_data.clip.unk_020 = bank; +} + +void mScn_ObtainMyRoomBank(Game_Play* play) { + mScn_ObtainCarpetBank(play); +} diff --git a/src/code/m_start_data_init.c b/src/code/m_start_data_init.c index 115182b..b936e89 100644 --- a/src/code/m_start_data_init.c +++ b/src/code/m_start_data_init.c @@ -7,7 +7,7 @@ #include "6C97F0.h" #include "6D9D80.h" #include "6DA460.h" -#include "6E30B0.h" +#include "6E3240.h" #include "m_string.h" #include "6ECD90.h" #include "6EDD10.h" diff --git a/src/overlays/gamestates/ovl_play/m_play.c b/src/overlays/gamestates/ovl_play/m_play.c index 33b75c4..0f5f6a2 100644 --- a/src/overlays/gamestates/ovl_play/m_play.c +++ b/src/overlays/gamestates/ovl_play/m_play.c @@ -13,7 +13,7 @@ #include "6EDD10.h" #include "69E2C0.h" #include "683030.h" -#include "6E30B0.h" +#include "6E3240.h" #include "6C97F0.h" #include "6EFC20.h" #include "67D890.h" diff --git a/yamls/jp/code.yaml b/yamls/jp/code.yaml index c4f22b9..7fda18f 100644 --- a/yamls/jp/code.yaml +++ b/yamls/jp/code.yaml @@ -72,7 +72,8 @@ - [0x6E08E0, asm, code/m_random_field] - [0x6E0F50, c, code/m_rcp] - [0x6E2300, asm, code/6E2300] - - [0x6E30B0, asm, code/6E30B0] + - [0x6E30B0, c, code/m_scene_ftr] + - [0x6E3240, asm, code/6E3240] - [0x6E6C90, c, code/m_start_data_init] - [0x6E7AD0, c, code/m_string] - [0x6E80C0, c, code/m_submenu] @@ -232,7 +233,7 @@ - [0x73B210, rodata, code/73B210] - [0x73B250, rodata, code/73B250] - [0x73B360, rodata, code/73B360] - - [0x73B3E0, rodata, code/m_scene_ftr] + - [0x73B3E0, .rodata, code/m_scene_ftr] - [0x73B400, rodata, code/m_shop] - [0x73B580, .rodata, code/m_string] - [0x73B5C0, .rodata, code/m_submenu] -- cgit v1.2.3