From eeecf4cf69788130496ffc21ec0d0b5fa6578f03 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Sun, 21 Feb 2021 17:50:16 -0500 Subject: [PATCH] fopScnM_ChangeReq OK --- asm/c/c_dylink.s | 2 +- asm/d/s/d_s_logo.s | 2 +- asm/d/s/d_s_name.s | 2 +- asm/d/s/d_s_play.s | 2 +- asm/d/s/d_s_room.s | 2 +- asm/f/op/scene/f_op_scene_req.s | 4 +-- asm/sdata.s | 4 +-- .../d_com/d_com_inf_game/asm/func_8002CC54.s | 4 +-- include/d/d_stage/asm/func_80024460.s | 2 +- include/f/f_ap_game/asm/func_80018A44.s | 2 +- include/f/f_ap_game/asm/func_80018AA0.s | 2 +- include/f/f_op/f_op_scene_mng.h | 9 +++++ include/f/f_op/f_op_scene_req.h | 11 ++++++ include/f/f_op_scene_mng/asm/func_8001ECE0.s | 4 +-- include/f/f_op_scene_mng/asm/func_8001ED3C.s | 2 +- include/f/f_op_scene_mng/asm/func_8001ED84.s | 2 +- include/f/f_op_scene_mng/asm/func_8001EDCC.s | 2 +- src/d/d_com/d_com_inf_game.cpp | 3 ++ src/d/d_stage.cpp | 2 ++ src/f/f_op/f_op_scene_mng.cpp | 35 ++++++++----------- 20 files changed, 58 insertions(+), 40 deletions(-) create mode 100644 include/f/f_op/f_op_scene_req.h diff --git a/asm/c/c_dylink.s b/asm/c/c_dylink.s index 61363a662dc..55563205b6a 100644 --- a/asm/c/c_dylink.s +++ b/asm/c/c_dylink.s @@ -243,7 +243,7 @@ cDyl_InitCallback: /* 80018720 00015660 38 80 7F FF */ li r4, 0x7fff /* 80018724 00015664 38 A0 00 00 */ li r5, 0 /* 80018728 00015668 38 C0 00 00 */ li r6, 0 -/* 8001872C 0001566C 48 00 66 59 */ bl fopScnM_CreateReq +/* 8001872C 0001566C 48 00 66 59 */ bl fopScnM_CreateReq__FssUsUl /* 80018730 00015670 3C 60 80 3C */ lis r3, lbl_803C34C0@ha /* 80018734 00015674 38 03 34 C0 */ addi r0, r3, lbl_803C34C0@l /* 80018738 00015678 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/asm/d/s/d_s_logo.s b/asm/d/s/d_s_logo.s index 84b1075d8fb..0e9fca62942 100644 --- a/asm/d/s/d_s_logo.s +++ b/asm/d/s/d_s_logo.s @@ -2430,7 +2430,7 @@ dScnLogo_c_NS_dvdDataLoad: /* 80258460 002553A0 38 80 00 09 */ li r4, 9 /* 80258464 002553A4 38 A0 00 00 */ li r5, 0 /* 80258468 002553A8 38 C0 00 05 */ li r6, 5 -/* 8025846C 002553AC 4B DC 68 75 */ bl fopScnM_ChangeReq +/* 8025846C 002553AC 4B DC 68 75 */ bl fopScnM_ChangeReq__FP11scene_classssUs lbl_80258470: /* 80258470 002553B0 38 60 00 01 */ li r3, 1 /* 80258474 002553B4 80 01 00 14 */ lwz r0, 0x14(r1) diff --git a/asm/d/s/d_s_name.s b/asm/d/s/d_s_name.s index 6c94491455d..2b581138bf6 100644 --- a/asm/d/s/d_s_name.s +++ b/asm/d/s/d_s_name.s @@ -676,7 +676,7 @@ lbl_802590E4: /* 8025913C 0025607C 7C 04 07 34 */ extsh r4, r0 /* 80259140 00256080 38 A0 00 00 */ li r5, 0 /* 80259144 00256084 38 C0 00 05 */ li r6, 5 -/* 80259148 00256088 4B DC 5B 99 */ bl fopScnM_ChangeReq +/* 80259148 00256088 4B DC 5B 99 */ bl fopScnM_ChangeReq__FP11scene_classssUs /* 8025914C 0025608C 38 00 00 00 */ li r0, 0 /* 80259150 00256090 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 80259154 00256094 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l diff --git a/asm/d/s/d_s_play.s b/asm/d/s/d_s_play.s index c335a9f3a17..54317cbb0ba 100644 --- a/asm/d/s/d_s_play.s +++ b/asm/d/s/d_s_play.s @@ -94,7 +94,7 @@ dScnPly_env_debugHIO_c: /* 80259538 00256478 38 A5 31 58 */ addi r5, r5, lbl_803C3158@l /* 8025953C 0025647C 7C A5 02 AE */ lhax r5, r5, r0 /* 80259540 00256480 38 C0 00 05 */ li r6, 5 -/* 80259544 00256484 4B DC 57 9D */ bl fopScnM_ChangeReq +/* 80259544 00256484 4B DC 57 9D */ bl fopScnM_ChangeReq__FP11scene_classssUs /* 80259548 00256488 4B F4 64 C9 */ bl dKy_getdaytime_hour /* 8025954C 0025648C 38 00 00 00 */ li r0, 0 /* 80259550 00256490 2C 03 00 06 */ cmpwi r3, 6 diff --git a/asm/d/s/d_s_room.s b/asm/d/s/d_s_room.s index 2bf32250911..27a4d95ae78 100644 --- a/asm/d/s/d_s_room.s +++ b/asm/d/s/d_s_room.s @@ -565,7 +565,7 @@ lbl_8025B5B4: /* 8025B5C4 00258504 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 8025B5C8 00258508 41 82 00 10 */ beq lbl_8025B5D8 /* 8025B5CC 0025850C 7F E3 FB 78 */ mr r3, r31 -/* 8025B5D0 00258510 4B DC 37 6D */ bl fopScnM_DeleteReq +/* 8025B5D0 00258510 4B DC 37 6D */ bl fopScnM_DeleteReq__FP11scene_class /* 8025B5D4 00258514 48 00 00 84 */ b lbl_8025B658 lbl_8025B5D8: /* 8025B5D8 00258518 88 1F 01 D4 */ lbz r0, 0x1d4(r31) diff --git a/asm/f/op/scene/f_op_scene_req.s b/asm/f/op/scene/f_op_scene_req.s index 4702e3a9d04..3657769b4e2 100644 --- a/asm/f/op/scene/f_op_scene_req.s +++ b/asm/f/op/scene/f_op_scene_req.s @@ -149,8 +149,8 @@ lbl_8001F020: /* 8001F02C 0001BF6C 38 21 00 10 */ addi r1, r1, 0x10 /* 8001F030 0001BF70 4E 80 00 20 */ blr -.global fopScnRq_Request -fopScnRq_Request: +.global fopScnRq_Request__FiP11scene_classsPvsUs +fopScnRq_Request__FiP11scene_classsPvsUs: /* 8001F034 0001BF74 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8001F038 0001BF78 7C 08 02 A6 */ mflr r0 /* 8001F03C 0001BF7C 90 01 00 24 */ stw r0, 0x24(r1) diff --git a/asm/sdata.s b/asm/sdata.s index 97eef9aa519..e9938c4f0af 100644 --- a/asm/sdata.s +++ b/asm/sdata.s @@ -32,8 +32,8 @@ lbl_804505AC: .global l_fopOvlpM_overlap l_fopOvlpM_overlap: .incbin "baserom.dol", 0x3D0310, 0x8 -.global lbl_804505B8 -lbl_804505B8: +.global l_scnRqID +l_scnRqID: .incbin "baserom.dol", 0x3D0318, 0x8 .global lbl_804505C0 lbl_804505C0: diff --git a/include/d/d_com/d_com_inf_game/asm/func_8002CC54.s b/include/d/d_com/d_com_inf_game/asm/func_8002CC54.s index 9c8113cd3da..65d47519740 100644 --- a/include/d/d_com/d_com_inf_game/asm/func_8002CC54.s +++ b/include/d/d_com/d_com_inf_game/asm/func_8002CC54.s @@ -48,10 +48,10 @@ lbl_8002CD08: /* 8002CD0C 00029C4C 7F E4 FB 78 */ mr r4, r31 /* 8002CD10 00029C50 38 A0 00 00 */ li r5, 0 /* 8002CD14 00029C54 38 C0 00 1E */ li r6, 0x1e -/* 8002CD18 00029C58 4B FF 1F C9 */ bl fopScnM_ChangeReq +/* 8002CD18 00029C58 4B FF 1F C9 */ bl fopScnM_ChangeReq__FP11scene_classssUs /* 8002CD1C 00029C5C 7F E3 FB 78 */ mr r3, r31 /* 8002CD20 00029C60 38 80 00 00 */ li r4, 0 -/* 8002CD24 00029C64 4B FF 20 A9 */ bl fopScnM_ReRequest +/* 8002CD24 00029C64 4B FF 20 A9 */ bl fopScnM_ReRequest__FsUl /* 8002CD28 00029C68 38 60 00 01 */ li r3, 1 /* 8002CD2C 00029C6C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8002CD30 00029C70 83 C1 00 18 */ lwz r30, 0x18(r1) diff --git a/include/d/d_stage/asm/func_80024460.s b/include/d/d_stage/asm/func_80024460.s index bdc18eded68..68cc3c7f23d 100644 --- a/include/d/d_stage/asm/func_80024460.s +++ b/include/d/d_stage/asm/func_80024460.s @@ -18,7 +18,7 @@ lbl_80024498: /* 800244A0 000213E0 38 80 7F FF */ li r4, 0x7fff /* 800244A4 000213E4 38 A0 00 00 */ li r5, 0 /* 800244A8 000213E8 7F E6 FB 78 */ mr r6, r31 -/* 800244AC 000213EC 4B FF A8 D9 */ bl fopScnM_CreateReq +/* 800244AC 000213EC 4B FF A8 D9 */ bl fopScnM_CreateReq__FssUsUl /* 800244B0 000213F0 2C 03 00 00 */ cmpwi r3, 0 /* 800244B4 000213F4 40 82 00 18 */ bne lbl_800244CC /* 800244B8 000213F8 7F E3 FB 78 */ mr r3, r31 diff --git a/include/f/f_ap_game/asm/func_80018A44.s b/include/f/f_ap_game/asm/func_80018A44.s index 01265e63b39..3b054d6ba33 100644 --- a/include/f/f_ap_game/asm/func_80018A44.s +++ b/include/f/f_ap_game/asm/func_80018A44.s @@ -1,7 +1,7 @@ /* 80018A44 00015984 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80018A48 00015988 7C 08 02 A6 */ mflr r0 /* 80018A4C 0001598C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80018A50 00015990 48 00 63 C1 */ bl fopScnM_Management +/* 80018A50 00015990 48 00 63 C1 */ bl fopScnM_Management__Fv /* 80018A54 00015994 48 00 5B FD */ bl fopOvlpM_Management__Fv /* 80018A58 00015998 48 00 59 1D */ bl fopCamM_Management /* 80018A5C 0001599C 80 01 00 14 */ lwz r0, 0x14(r1) diff --git a/include/f/f_ap_game/asm/func_80018AA0.s b/include/f/f_ap_game/asm/func_80018AA0.s index 75ea6c239cc..ae821aab5cd 100644 --- a/include/f/f_ap_game/asm/func_80018AA0.s +++ b/include/f/f_ap_game/asm/func_80018AA0.s @@ -2,7 +2,7 @@ /* 80018AA4 000159E4 7C 08 02 A6 */ mflr r0 /* 80018AA8 000159E8 90 01 00 14 */ stw r0, 0x14(r1) /* 80018AAC 000159EC 48 00 98 0D */ bl fpcM_Init -/* 80018AB0 000159F0 48 00 63 81 */ bl fopScnM_Init +/* 80018AB0 000159F0 48 00 63 81 */ bl fopScnM_Init__Fv /* 80018AB4 000159F4 48 00 5C 35 */ bl fopOvlpM_Init__Fv /* 80018AB8 000159F8 48 00 58 C1 */ bl fopCamM_Init__Fv /* 80018ABC 000159FC 48 00 7A 5D */ bl fopDwTg_CreateQueue diff --git a/include/f/f_op/f_op_scene_mng.h b/include/f/f_op/f_op_scene_mng.h index e8fe8e87bb9..74b2e309284 100644 --- a/include/f/f_op/f_op_scene_mng.h +++ b/include/f/f_op/f_op_scene_mng.h @@ -1,5 +1,14 @@ #ifndef F_F_OP_SCENE_MNG_H_ #define F_F_OP_SCENE_MNG_H_ +#include "f/f_op/f_op_scene_pause.h" + +void* fopScnM_SearchByID(unsigned int id); +int fopScnM_ChangeReq(scene_class*, s16, s16, u16); +void fopScnM_DeleteReq(scene_class*); +void fopScnM_CreateReq(s16, s16, u16, u32); +void fopScnM_ReRequest(s16, u32) ; void fopScnM_Management(void); +void fopScnM_Init(void); + #endif \ No newline at end of file diff --git a/include/f/f_op/f_op_scene_req.h b/include/f/f_op/f_op_scene_req.h new file mode 100644 index 00000000000..903058e795b --- /dev/null +++ b/include/f/f_op/f_op_scene_req.h @@ -0,0 +1,11 @@ +#ifndef F_F_OP_SCENE_REQ_H_ +#define F_F_OP_SCENE_REQ_H_ + +extern "C" { +void fopScnRq_Handler(void); +void fopScnRq_ReRequest(void); +} + +u32 fopScnRq_Request(int,scene_class*,s16,void*,s16,u16); + +#endif \ No newline at end of file diff --git a/include/f/f_op_scene_mng/asm/func_8001ECE0.s b/include/f/f_op_scene_mng/asm/func_8001ECE0.s index 14f3a4a9fcc..ee06fc28144 100644 --- a/include/f/f_op_scene_mng/asm/func_8001ECE0.s +++ b/include/f/f_op_scene_mng/asm/func_8001ECE0.s @@ -9,14 +9,14 @@ /* 8001ED00 0001BC40 7D 24 4B 78 */ mr r4, r9 /* 8001ED04 0001BC44 7C 05 03 78 */ mr r5, r0 /* 8001ED08 0001BC48 38 C0 00 00 */ li r6, 0 -/* 8001ED0C 0001BC4C 48 00 03 29 */ bl fopScnRq_Request +/* 8001ED0C 0001BC4C 48 00 03 29 */ bl fopScnRq_Request__FiP11scene_classsPvsUs /* 8001ED10 0001BC50 3C 03 00 01 */ addis r0, r3, 1 /* 8001ED14 0001BC54 28 00 FF FF */ cmplwi r0, 0xffff /* 8001ED18 0001BC58 40 82 00 0C */ bne lbl_8001ED24 /* 8001ED1C 0001BC5C 38 60 00 00 */ li r3, 0 /* 8001ED20 0001BC60 48 00 00 0C */ b lbl_8001ED2C lbl_8001ED24: -/* 8001ED24 0001BC64 90 6D 80 38 */ stw r3, lbl_804505B8-_SDA_BASE_(r13) +/* 8001ED24 0001BC64 90 6D 80 38 */ stw r3, l_scnRqID-_SDA_BASE_(r13) /* 8001ED28 0001BC68 38 60 00 01 */ li r3, 1 lbl_8001ED2C: /* 8001ED2C 0001BC6C 80 01 00 14 */ lwz r0, 0x14(r1) diff --git a/include/f/f_op_scene_mng/asm/func_8001ED3C.s b/include/f/f_op_scene_mng/asm/func_8001ED3C.s index 95594e7868d..91b6bc9b7ee 100644 --- a/include/f/f_op_scene_mng/asm/func_8001ED3C.s +++ b/include/f/f_op_scene_mng/asm/func_8001ED3C.s @@ -7,7 +7,7 @@ /* 8001ED54 0001BC94 38 C0 00 00 */ li r6, 0 /* 8001ED58 0001BC98 38 E0 7F FF */ li r7, 0x7fff /* 8001ED5C 0001BC9C 39 00 00 00 */ li r8, 0 -/* 8001ED60 0001BCA0 48 00 02 D5 */ bl fopScnRq_Request +/* 8001ED60 0001BCA0 48 00 02 D5 */ bl fopScnRq_Request__FiP11scene_classsPvsUs /* 8001ED64 0001BCA4 20 63 FF FF */ subfic r3, r3, -1 /* 8001ED68 0001BCA8 30 03 FF FF */ addic r0, r3, -1 /* 8001ED6C 0001BCAC 7C 00 19 10 */ subfe r0, r0, r3 diff --git a/include/f/f_op_scene_mng/asm/func_8001ED84.s b/include/f/f_op_scene_mng/asm/func_8001ED84.s index c8a5ff98d64..9f3d5778203 100644 --- a/include/f/f_op_scene_mng/asm/func_8001ED84.s +++ b/include/f/f_op_scene_mng/asm/func_8001ED84.s @@ -7,7 +7,7 @@ /* 8001ED9C 0001BCDC 38 60 00 00 */ li r3, 0 /* 8001EDA0 0001BCE0 38 80 00 00 */ li r4, 0 /* 8001EDA4 0001BCE4 7C 05 03 78 */ mr r5, r0 -/* 8001EDA8 0001BCE8 48 00 02 8D */ bl fopScnRq_Request +/* 8001EDA8 0001BCE8 48 00 02 8D */ bl fopScnRq_Request__FiP11scene_classsPvsUs /* 8001EDAC 0001BCEC 20 63 FF FF */ subfic r3, r3, -1 /* 8001EDB0 0001BCF0 30 03 FF FF */ addic r0, r3, -1 /* 8001EDB4 0001BCF4 7C 00 19 10 */ subfe r0, r0, r3 diff --git a/include/f/f_op_scene_mng/asm/func_8001EDCC.s b/include/f/f_op_scene_mng/asm/func_8001EDCC.s index 9e8765ec4e1..d1d4014be65 100644 --- a/include/f/f_op_scene_mng/asm/func_8001EDCC.s +++ b/include/f/f_op_scene_mng/asm/func_8001EDCC.s @@ -3,7 +3,7 @@ /* 8001EDD4 0001BD14 90 01 00 14 */ stw r0, 0x14(r1) /* 8001EDD8 0001BD18 7C 66 1B 78 */ mr r6, r3 /* 8001EDDC 0001BD1C 7C 85 23 78 */ mr r5, r4 -/* 8001EDE0 0001BD20 80 6D 80 38 */ lwz r3, lbl_804505B8-_SDA_BASE_(r13) +/* 8001EDE0 0001BD20 80 6D 80 38 */ lwz r3, l_scnRqID-_SDA_BASE_(r13) /* 8001EDE4 0001BD24 3C 03 00 01 */ addis r0, r3, 1 /* 8001EDE8 0001BD28 28 00 FF FF */ cmplwi r0, 0xffff /* 8001EDEC 0001BD2C 40 82 00 0C */ bne lbl_8001EDF8 diff --git a/src/d/d_com/d_com_inf_game.cpp b/src/d/d_com/d_com_inf_game.cpp index 02e76da05dc..eda882934f8 100644 --- a/src/d/d_com/d_com_inf_game.cpp +++ b/src/d/d_com/d_com_inf_game.cpp @@ -10,6 +10,7 @@ #include "m_Do/m_Do_controller_pad/m_Do_controller_pad.h" #include "m_Do/m_Do_ext/m_Do_ext.h" #include "msl_c/string.h" +#include "f/f_op/f_op_scene_mng.h" extern "C" { bool dComIfGp_checkMapShow(void); @@ -280,6 +281,8 @@ void setBottleNum__24dSv_player_item_record_cFUcUc(u8, u8); void setCollect__20dSv_player_collect_cFiUc(int, u8); void setWarpItemData__14dComIfG_play_cFPCc4cXyzsScUcUc(void); void ct__13dComIfG_inf_cFv(void); +void fopScnM_ReRequest__FsUl(void); +void fopScnM_ChangeReq__FP11scene_classssUs(void); } extern u8 lbl_80430188; diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 65b51f5f142..79e6f9ba1e4 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -5,6 +5,7 @@ #include "f/f_op/f_op_actor_mng.h" #include "f/f_op/f_op_camera_mng.h" #include "f/f_op/f_op_scene_iter.h" +#include "f/f_op/f_op_scene_mng.h" #include "f/f_pc/f_pc_stdcreate_req.h" #include "global.h" #include "m_Do/m_Do_Reset/m_Do_Reset.h" @@ -73,6 +74,7 @@ void set__19dStage_startStage_cFPCcScsSc(const char*, s8, s16, s8); void stage_tgsc_data_class_NS_dtor(void); void stage_tgsc_data_class(void); void* memalignB__3cMlFiUl(int pAlign, u32 pSize); +void fopScnM_CreateReq__FssUsUl(void); } extern char lbl_80378A50[0x3F8]; // d_stage string literals diff --git a/src/f/f_op/f_op_scene_mng.cpp b/src/f/f_op/f_op_scene_mng.cpp index 31508686d90..0663462f442 100644 --- a/src/f/f_op/f_op_scene_mng.cpp +++ b/src/f/f_op/f_op_scene_mng.cpp @@ -2,27 +2,17 @@ #include "f/f_op/f_op_scene_mng.h" #include "f/f_op/f_op_scene_iter.h" +#include "f/f_op/f_op_scene_req.h" #include "f/f_pc/f_pc_searcher.h" #include "global.h" -// additional symbols needed for f_op_scene_mng.cpp -// autogenerated by split.py v0.4 at 2021-02-13 20:33:37.409404 extern "C" { -void fopScnM_ChangeReq(void); -void fopScnM_CreateReq(void); -void fopScnM_DeleteReq(void); -void fopScnM_Init(void); -void fopScnM_ReRequest(void); -void fopScnM_SearchByID(void); -void fopScnRq_Handler(void); -void fopScnRq_ReRequest(void); -void fopScnRq_Request(void); -void fopScnIt_Judge__FPFPvPv_PvPv(void); +void fopScnRq_Request__FiP11scene_classsPvsUs(void); } // additional symbols needed for f_op_scene_mng.cpp // autogenerated by split.py v0.4 at 2021-02-13 20:33:37.409412 -extern u8 lbl_804505B8; +extern int l_scnRqID; // matches but is proabably wrong void* fopScnM_SearchByID(unsigned int id) { @@ -31,31 +21,35 @@ void* fopScnM_SearchByID(unsigned int id) { return fopScnIt_Judge(fpcSch_JudgeByID, (void*)local_8); } -extern "C" { // fopScnM_ChangeReq__FP11scene_classssUs // fopScnM_ChangeReq(scene_class*, s16, s16, u16) -asm void fopScnM_ChangeReq(void) { - nofralloc -#include "f/f_op_scene_mng/asm/func_8001ECE0.s" +int fopScnM_ChangeReq(scene_class* pScene, s16 param_2, s16 param_3, u16 param_4) { + u32 sceneRequestID = fopScnRq_Request(2, pScene, param_2, 0, param_3, param_4); + + if (sceneRequestID == -1) { + return 0; + } + l_scnRqID = sceneRequestID; + return 1; } // fopScnM_DeleteReq__FP11scene_class // fopScnM_DeleteReq(scene_class*) -asm void fopScnM_DeleteReq(void) { +asm void fopScnM_DeleteReq(scene_class*) { nofralloc #include "f/f_op_scene_mng/asm/func_8001ED3C.s" } // fopScnM_CreateReq__FssUsUl // fopScnM_CreateReq(s16, s16, u16, u32) -asm void fopScnM_CreateReq(void) { +asm void fopScnM_CreateReq(s16, s16, u16, u32) { nofralloc #include "f/f_op_scene_mng/asm/func_8001ED84.s" } // fopScnM_ReRequest__FsUl // fopScnM_ReRequest(s16, u32) -asm void fopScnM_ReRequest(void) { +asm void fopScnM_ReRequest(s16, u32) { nofralloc #include "f/f_op_scene_mng/asm/func_8001EDCC.s" } @@ -73,4 +67,3 @@ asm void fopScnM_Init(void) { nofralloc #include "f/f_op_scene_mng/asm/func_8001EE30.s" } -};