mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
d_a_e_pz equivalent (#2330)
* d_a_e_pz equivalent * rename var * match f_pc closer to debug * hopefully fix decompctx * sdk done * remove unneeded file
This commit is contained in:
@@ -1433,7 +1433,7 @@ d/d_k_wpillar.cpp:
|
||||
.sdata2 start:0x80454FF0 end:0x80455008
|
||||
|
||||
PowerPC_EABI_Support/Runtime/Src/__mem.c:
|
||||
.init start:0x80003458 end:0x800035E4
|
||||
.init start:0x80003458 end:0x80003590
|
||||
|
||||
DynamicLink.cpp:
|
||||
.text start:0x802621CC end:0x802631D4
|
||||
@@ -3601,7 +3601,7 @@ TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/flush_cache.
|
||||
.text start:0x8036F548 end:0x8036F580
|
||||
|
||||
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mem_TRK.c:
|
||||
.init start:0x800035E4 end:0x80005544
|
||||
.init start:0x80003590 end:0x800035E4
|
||||
.text start:0x8036F580 end:0x8036F638
|
||||
|
||||
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/targimpl.c:
|
||||
@@ -3610,13 +3610,17 @@ TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/targimpl.c:
|
||||
.data start:0x803D3238 end:0x803D3268
|
||||
.bss start:0x8044F290 end:0x8044F810
|
||||
|
||||
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.c:
|
||||
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.s:
|
||||
.text start:0x803711D0 end:0x803711F0
|
||||
|
||||
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/mpc_7xx_603e.c:
|
||||
.text start:0x803711F0 end:0x80371560
|
||||
|
||||
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/exception.s:
|
||||
.init start:0x800035E4 end:0x80005518
|
||||
|
||||
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk.c:
|
||||
.init start:0x80005518 end:0x80005544
|
||||
.text start:0x80371560 end:0x80371B9C
|
||||
.data start:0x803D3268 end:0x803D32A8
|
||||
.bss start:0x8044F810 end:0x8044F818
|
||||
|
||||
+13
-12
@@ -212,7 +212,7 @@ cflags_base = [
|
||||
"-i src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include",
|
||||
"-i src/PowerPC_EABI_Support/Runtime/Inc",
|
||||
"-i src/PowerPC_EABI_Support/MetroTRK",
|
||||
"-Iinclude/dolphin",
|
||||
"-i include/dolphin",
|
||||
f"-DVERSION={version_num}",
|
||||
"-D__GEKKO__",
|
||||
]
|
||||
@@ -245,7 +245,6 @@ cflags_runtime = [
|
||||
*cflags_base,
|
||||
"-use_lmw_stmw on",
|
||||
"-str reuse,pool,readonly",
|
||||
"-gccinc",
|
||||
"-common off",
|
||||
"-char signed",
|
||||
]
|
||||
@@ -291,7 +290,7 @@ cflags_dolphin = [
|
||||
"-i src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include",
|
||||
"-i src/PowerPC_EABI_Support/Runtime/Inc",
|
||||
"-i src/PowerPC_EABI_Support/MetroTRK",
|
||||
"-Iinclude/dolphin",
|
||||
"-i include/dolphin",
|
||||
f"-DVERSION={version_num}",
|
||||
"-D__GEKKO__",
|
||||
"-DSDK_REVISION=2",
|
||||
@@ -484,6 +483,7 @@ config.libs = [
|
||||
Object(MatchingFor("GZ2E01"), "f_pc/f_pc_draw.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "f_pc/f_pc_fstcreate_req.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "f_pc/f_pc_stdcreate_req.cpp"),
|
||||
Object(NonMatching, "f_pc/f_pc_debug_sv.cpp"),
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -1276,10 +1276,10 @@ config.libs = [
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/__va_arg.c"),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/global_destructor_chain.c"),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/CPlusLibPPC.cp"),
|
||||
Object(NonMatching, "PowerPC_EABI_Support/Runtime/Src/NMWException.cp"),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/NMWException.cp", extra_cflags=["-Cpp_exceptions on"]),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/ptmf.c"),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/runtime.c"),
|
||||
Object(NonMatching, "PowerPC_EABI_Support/Runtime/Src/__init_cpp_exceptions.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/__init_cpp_exceptions.cpp"),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/Gecko_ExceptionPPC.cp"),
|
||||
Object(MatchingFor("GZ2E01"), "PowerPC_EABI_Support/Runtime/Src/GCN_Mem_Alloc.c", extra_cflags=["-str reuse,nopool,readonly"]),
|
||||
],
|
||||
@@ -1370,11 +1370,12 @@ config.libs = [
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mutex_TRK.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/notify.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/flush_cache.c"),
|
||||
Object(NonMatching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mem_TRK.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mem_TRK.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/targimpl.c"),
|
||||
Object(NonMatching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.c", extra_cflags=["-func_align 32"]),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.s"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/mpc_7xx_603e.c"),
|
||||
Object(NonMatching, "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/exception.s"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/main_TRK.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk_glue.c"),
|
||||
Object(MatchingFor("GZ2E01"), "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/targcont.c"),
|
||||
@@ -1402,12 +1403,12 @@ config.libs = [
|
||||
},
|
||||
{
|
||||
"lib": "odemuexi2",
|
||||
"mw_version": MWVersion(config.version),
|
||||
"mw_version": "GC/1.2.5n",
|
||||
"cflags": cflags_runtime,
|
||||
"progress_category": "sdk",
|
||||
"host": False,
|
||||
"objects": [
|
||||
Object(NonMatching, "odemuexi2/DebuggerDriver.c"),
|
||||
Object(MatchingFor("GZ2E01"), "odemuexi2/DebuggerDriver.c"),
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -1431,7 +1432,7 @@ config.libs = [
|
||||
"objects": [
|
||||
Object(MatchingFor("GZ2E01"), "REL/executor.c"),
|
||||
Object(
|
||||
NonMatching,
|
||||
MatchingFor("GZ2E01"),
|
||||
"REL/global_destructor_chain.c",
|
||||
source="PowerPC_EABI_Support/Runtime/Src/global_destructor_chain.c",
|
||||
),
|
||||
@@ -1658,7 +1659,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_ph"),
|
||||
ActorRel(NonMatching, "d_a_e_pm"),
|
||||
ActorRel(NonMatching, "d_a_e_po"),
|
||||
ActorRel(NonMatching, "d_a_e_pz"),
|
||||
ActorRel(Equivalent, "d_a_e_pz", extra_cflags=['-pragma "nosyminline off"']), # weak func order, inline issue
|
||||
ActorRel(NonMatching, "d_a_e_rb"),
|
||||
ActorRel(NonMatching, "d_a_e_rdb"),
|
||||
ActorRel(NonMatching, "d_a_e_rdy"),
|
||||
|
||||
@@ -4904,14 +4904,14 @@ public:
|
||||
|
||||
class daAlinkHIO_wallHang_c1 {
|
||||
public:
|
||||
/* 0x00 */ s16 field_0x0;
|
||||
/* 0x02 */ s16 field_0x2;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xC;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x00 */ s16 small_jump_input_time;
|
||||
/* 0x02 */ s16 grab_input_time;
|
||||
/* 0x04 */ f32 auto_walk_height;
|
||||
/* 0x08 */ f32 small_jump_height;
|
||||
/* 0x0C */ f32 climb_height;
|
||||
/* 0x10 */ f32 jump_climb_height;
|
||||
/* 0x14 */ f32 jump_hang_height;
|
||||
/* 0x18 */ f32 hang_foot_pos_height;
|
||||
}; // Size: 0x1C
|
||||
|
||||
class daAlinkHIO_wallHang_c0 {
|
||||
|
||||
+95
-13
@@ -2,6 +2,9 @@
|
||||
#define D_A_E_PZ_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
@@ -13,15 +16,24 @@
|
||||
*/
|
||||
class daE_PZ_c : public fopEn_enemy_c {
|
||||
public:
|
||||
void onBombArrowHit() { field_0x845 = 1; }
|
||||
enum Action_e {
|
||||
ACTION_SEARCH_POINT_e,
|
||||
ACTION_OPENING_DEMO_e,
|
||||
ACTION_WAIT_e,
|
||||
ACTION_ATTACK_e,
|
||||
ACTION_DAMAGE_e,
|
||||
ACTION_DEAD_e,
|
||||
};
|
||||
|
||||
/* 807585BC */ void draw();
|
||||
void onBombArrowHit() { mBombArrowHit = true; }
|
||||
|
||||
/* 807585BC */ int draw();
|
||||
/* 80758800 */ void setBck(int, u8, f32, f32);
|
||||
/* 807588AC */ void setActionMode(int, int);
|
||||
/* 807588B8 */ void mEntrySUB(bool);
|
||||
/* 80758A94 */ void mPzScaleSet(bool);
|
||||
/* 80758A94 */ bool mPzScaleSet(bool);
|
||||
/* 80758BA0 */ void mEnemyScaleSet();
|
||||
/* 80758D44 */ void getCutType();
|
||||
/* 80758D44 */ u8 getCutType();
|
||||
/* 80758DA4 */ void mSetFirePos();
|
||||
/* 80758E04 */ void damage_check();
|
||||
/* 807592F4 */ void executeSearchPoint();
|
||||
@@ -38,23 +50,93 @@ public:
|
||||
/* 8075F578 */ void fire_mtx_set();
|
||||
/* 8075F734 */ void mtx_set();
|
||||
/* 8075F7E8 */ void cc_set();
|
||||
/* 8075F964 */ void execute();
|
||||
/* 8075FA88 */ void _delete();
|
||||
/* 8075FB4C */ void CreateHeap();
|
||||
/* 8076010C */ void create();
|
||||
/* 8075F964 */ int execute();
|
||||
/* 8075FA88 */ int _delete();
|
||||
/* 8075FB4C */ int CreateHeap();
|
||||
/* 8076010C */ int create();
|
||||
/* 807607EC */ daE_PZ_c();
|
||||
|
||||
private:
|
||||
/* 0x5AC */ u8 field_0x5ac[0x845 - 0x5ac];
|
||||
/* 0x845 */ u8 field_0x845;
|
||||
/* 0x846 */ u8 field_0x846[0xef8 - 0x846];
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x5B8 */ mDoExt_McaMorfSO* mpBallModelMorf;
|
||||
/* 0x5BC */ J3DModel* mpPortalModel;
|
||||
/* 0x5C0 */ mDoExt_btkAnm* mpPortalBtk;
|
||||
/* 0x5C4 */ mDoExt_brkAnm* mpPortalBrk[2];
|
||||
/* 0x5CC */ mDoExt_brkAnm* mpBallBrk;
|
||||
/* 0x5D0 */ mDoExt_btkAnm* mpPzBtk;
|
||||
/* 0x5D4 */ mDoExt_brkAnm* mpPzBrk;
|
||||
/* 0x5D8 */ int field_0x5d8;
|
||||
/* 0x5DC */ Z2CreatureEnemy field_0x5dc;
|
||||
/* 0x680 */ int mActionMode;
|
||||
/* 0x684 */ int mMoveMode;
|
||||
/* 0x688 */ u32 mShadowKey;
|
||||
/* 0x68C */ int mAnm;
|
||||
/* 0x690 */ cXyz mPointPos[10];
|
||||
/* 0x708 */ cXyz field_0x708[10];
|
||||
/* 0x780 */ u8 field_0x780[10];
|
||||
/* 0x78A */ u8 mPointNum;
|
||||
/* 0x78B */ u8 mCurrentPoint;
|
||||
/* 0x78C */ u8 field_0x78c;
|
||||
/* 0x790 */ cXyz field_0x790;
|
||||
/* 0x79C */ cXyz mPzScale;
|
||||
/* 0x7A8 */ cXyz field_0x7a8;
|
||||
/* 0x7B4 */ u8 field_0x7B4[0x7BC - 0x7B4];
|
||||
/* 0x7BC */ f32 field_0x7bc;
|
||||
/* 0x7C0 */ f32 field_0x7c0;
|
||||
/* 0x7C4 */ f32 field_0x7c4;
|
||||
/* 0x7C8 */ f32 field_0x7c8;
|
||||
/* 0x7CC */ f32 field_0x7cc;
|
||||
/* 0x7D0 */ u8 field_0x7d0;
|
||||
/* 0x7D1 */ u8 field_0x7d1;
|
||||
/* 0x7D2 */ u8 field_0x7d2;
|
||||
/* 0x7D3 */ u8 field_0x7d3;
|
||||
/* 0x7D4 */ u8 arg0;
|
||||
/* 0x7D5 */ u8 arg1;
|
||||
/* 0x7D6 */ u8 bitSw;
|
||||
/* 0x7D7 */ u8 field_0x7d7;
|
||||
/* 0x7D8 */ u8 field_0x7d8;
|
||||
/* 0x7DC */ fpc_ProcID field_0x7dc[25];
|
||||
/* 0x840 */ u8 field_0x840;
|
||||
/* 0x841 */ u8 field_0x841;
|
||||
/* 0x842 */ u8 field_0x842;
|
||||
/* 0x843 */ u8 field_0x843;
|
||||
/* 0x844 */ u8 field_0x844;
|
||||
/* 0x845 */ u8 mBombArrowHit;
|
||||
/* 0x846 */ u8 field_0x846;
|
||||
/* 0x847 */ u8 field_0x847;
|
||||
/* 0x848 */ u8 field_0x848;
|
||||
/* 0x84C */ int field_0x84c;
|
||||
/* 0x850 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x890 */ dBgS_ObjAcch mAcch;
|
||||
/* 0xA68 */ u32 field_0xa68[3];
|
||||
/* 0xA74 */ u32 field_0xa74[2];
|
||||
/* 0xA7C */ u8 field_0xA7C[0xAB4 - 0xA7C];
|
||||
/* 0xAB4 */ u32 field_0xab4[2];
|
||||
/* 0xABC */ cXyz mDemoCameraEye;
|
||||
/* 0xAC8 */ cXyz mDemoCameraCenter;
|
||||
/* 0xAD4 */ dCcD_Stts mColliderStts;
|
||||
/* 0xB10 */ dCcD_Cyl mCylCollider;
|
||||
/* 0xC4C */ dCcD_Cyl mWarpCylCollider;
|
||||
/* 0xD88 */ dCcD_Sph mBulletAtCollider;
|
||||
/* 0xEC0 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xEE4 */ u8 mInitHIO;
|
||||
/* 0xEE5 */ u8 field_0xee5[0xEF8 - 0xEE5];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_PZ_c) == 0xEF8);
|
||||
|
||||
class daE_PZ_HIO_c {
|
||||
public:
|
||||
/* 8075856C */ daE_PZ_HIO_c();
|
||||
/* 80760C60 */ ~daE_PZ_HIO_c();
|
||||
/* 80760C60 */ virtual ~daE_PZ_HIO_c() {}
|
||||
|
||||
/* 0x04 */ s8 no;
|
||||
/* 0x08 */ f32 body_model_size;
|
||||
/* 0x0C */ f32 portal_model_size;
|
||||
/* 0x10 */ f32 bullet_speed;
|
||||
/* 0x14 */ f32 weapon_hit_warp_speed;
|
||||
/* 0x18 */ s16 after_attack_wait_time;
|
||||
/* 0x1A */ s16 blur_start_timing;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1039,6 +1039,7 @@ public:
|
||||
void offPressedDamage() { offNoResetFlg2(FLG2_PRESSED_DAMAGE); }
|
||||
void onForceSubjectCancel() { onEndResetFlg0(ERFLG0_FORCE_SUBJECT_CANCEL); }
|
||||
void onEnemyDead() { onEndResetFlg0(ERFLG0_ENEMY_DEAD); }
|
||||
void offDkCaught2() { offNoResetFlg0(FLG0_UNK_20000); }
|
||||
|
||||
u32 checkBoarSingleBattle() const { return checkNoResetFlg2(daPy_FLG2(FLG2_UNK_1000000 | FLG2_BOAR_SINGLE_BATTLE)); }
|
||||
u32 checkWolfDashAutoJump() const { return checkNoResetFlg2(FLG2_WOLF_DASH_AUTO_JUMP); }
|
||||
|
||||
@@ -45,4 +45,6 @@ int fpcBs_Delete(base_process_class* i_proc);
|
||||
base_process_class* fpcBs_Create(s16 i_profname, fpc_ProcID i_procID, void* i_append);
|
||||
int fpcBs_SubCreate(base_process_class* i_proc);
|
||||
|
||||
extern int g_fpcBs_type;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -29,14 +29,14 @@ typedef struct create_request {
|
||||
/* 0x44 */ layer_class* layer;
|
||||
} create_request; // Size: 0x48
|
||||
|
||||
bool fpcCtRq_isCreatingByID(create_tag* i_createTag, fpc_ProcID* i_id);
|
||||
BOOL fpcCtRq_isCreatingByID(create_tag* i_createTag, fpc_ProcID* i_id);
|
||||
BOOL fpcCtRq_IsCreatingByID(fpc_ProcID i_id);
|
||||
void fpcCtRq_CreateQTo(create_request* i_request);
|
||||
void fpcCtRq_ToCreateQ(create_request* i_request);
|
||||
BOOL fpcCtRq_Delete(create_request* i_request);
|
||||
BOOL fpcCtRq_Cancel(create_request* i_request);
|
||||
BOOL fpcCtRq_IsDoing(create_request* i_request);
|
||||
void fpcCtRq_Handler();
|
||||
int fpcCtRq_Handler();
|
||||
create_request* fpcCtRq_Create(layer_class* i_layer, u32 i_size,
|
||||
create_request_method_class* i_methods);
|
||||
|
||||
|
||||
@@ -9,6 +9,6 @@ typedef struct base_process_class base_process_class;
|
||||
BOOL fpcCt_IsCreatingByID(fpc_ProcID id);
|
||||
BOOL fpcCt_IsDoing(base_process_class* pProc);
|
||||
BOOL fpcCt_Abort(base_process_class* pProc);
|
||||
void fpcCt_Handler();
|
||||
int fpcCt_Handler();
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
#ifndef F_PC_DEBUG_SV_H_
|
||||
#define F_PC_DEBUG_SV_H_
|
||||
|
||||
#include <dolphin.h>
|
||||
|
||||
#ifdef DEBUG
|
||||
|
||||
char* fpcDbSv_getNameString(s16 i_name);
|
||||
|
||||
typedef void (*fpcDbSv_callback)(void* i_process);
|
||||
extern const fpcDbSv_callback g_fpcDbSv_service[50];
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -42,7 +42,7 @@ s32 fpcLy_ToQueue(layer_class* i_layer, int treeListIdx, create_tag_class* i_cre
|
||||
s32 fpcLy_QueueTo(layer_class* i_layer, create_tag_class* i_createTag);
|
||||
|
||||
int fpcLy_Cancel(layer_class* i_layer);
|
||||
bool fpcLy_CancelMethod(process_method_tag_class* i_layer);
|
||||
BOOL fpcLy_CancelMethod(process_method_tag_class* i_layer);
|
||||
|
||||
void fpcLy_CancelQTo(process_method_tag_class* i_methods);
|
||||
s32 fpcLy_ToCancelQ(layer_class* i_layer, process_method_tag_class* i_methods);
|
||||
|
||||
@@ -36,6 +36,10 @@ typedef struct node_create_request {
|
||||
/* 0x58 */ s16 name;
|
||||
/* 0x5C */ void* data;
|
||||
/* 0x60 */ s16 unk_0x60;
|
||||
#ifdef DEBUG
|
||||
/* 0x64 */ int unk_0x64;
|
||||
/* 0x68 */ int unk_0x68;
|
||||
#endif
|
||||
} node_create_request; // Size: 0x64
|
||||
|
||||
typedef struct request_node_class {
|
||||
|
||||
@@ -10,17 +10,17 @@ enum {
|
||||
fpcPi_NONE_e = 0xFFFF,
|
||||
};
|
||||
|
||||
typedef struct process_priority_queue_info {
|
||||
typedef struct priority_id {
|
||||
/* 0x0 */ unsigned int layer_id;
|
||||
/* 0x4 */ u16 list_id;
|
||||
/* 0x6 */ u16 list_priority;
|
||||
} process_priority_queue_info;
|
||||
} priority_id;
|
||||
|
||||
typedef struct process_priority_class {
|
||||
/* 0x00 */ create_tag_class base;
|
||||
/* 0x14 */ process_method_tag_class method_tag;
|
||||
/* 0x30 */ process_priority_queue_info queue_info;
|
||||
/* 0x38 */ process_priority_queue_info current_info;
|
||||
/* 0x30 */ priority_id queue_info;
|
||||
/* 0x38 */ priority_id current_info;
|
||||
} process_priority_class;
|
||||
|
||||
s32 fpcPi_IsInQueue(process_priority_class* pPi);
|
||||
|
||||
@@ -14,6 +14,9 @@ typedef struct standard_create_request_class {
|
||||
/* 0x54 */ void* process_append;
|
||||
/* 0x58 */ stdCreateFunc create_post_method;
|
||||
/* 0x5C */ void* unk_0x5C;
|
||||
#ifdef DEBUG
|
||||
/* 0x60 */ int unk_0x60;
|
||||
#endif
|
||||
} standard_create_request_class;
|
||||
|
||||
s32 fpcSCtRq_phase_CreateProcess(standard_create_request_class* i_request);
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
#ifndef MWCPLUSLIB_H
|
||||
#define MWCPLUSLIB_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define CTORARG_TYPE int
|
||||
#define CTORARG_PARTIAL (0)
|
||||
#define CTORARG_COMPLETE (1)
|
||||
|
||||
#define CTORCALL_COMPLETE(ctor, objptr) (((void (*)(void*, CTORARG_TYPE))ctor)(objptr, CTORARG_COMPLETE))
|
||||
|
||||
#define DTORARG_TYPE int
|
||||
|
||||
#define DTORCALL_COMPLETE(dtor, objptr) (((void (*)(void*, DTORARG_TYPE))dtor)(objptr, -1))
|
||||
|
||||
typedef void* ConstructorDestructor;
|
||||
|
||||
extern void __construct_array(void* ptr, ConstructorDestructor ctor, ConstructorDestructor dtor, size_t size, size_t n);
|
||||
extern void __destroy_arr(void* block, ConstructorDestructor* dtor, size_t size, size_t n);
|
||||
extern void* __construct_new_array(void* block, ConstructorDestructor ctor, ConstructorDestructor dtor_arg, size_t size, size_t n);
|
||||
extern void __destroy_new_array(void* block, ConstructorDestructor dtor);
|
||||
extern void __destroy_new_array2();
|
||||
extern void __destroy_new_array3();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MWCPLUSLIB_H */
|
||||
@@ -7,7 +7,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define DTORCALL(dtor, objptr) (((void (*)(void*, int))dtor)(objptr, -1))
|
||||
typedef short vbase_ctor_arg_type;
|
||||
typedef char local_cond_type;
|
||||
|
||||
typedef struct DestructorChain {
|
||||
struct DestructorChain* next;
|
||||
@@ -24,4 +25,4 @@ void __destroy_global_chain(void);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* NMWEXCEPTION_H */
|
||||
#endif /* NMWEXCEPTION_H */
|
||||
|
||||
@@ -1,121 +1,218 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: NMWException
|
||||
//
|
||||
|
||||
#include "NMWException.h"
|
||||
#include "stddef.h"
|
||||
#include "dol2asm.h"
|
||||
#include "MWCPlusLib.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
typedef void (*unexpected_handler)();
|
||||
unexpected_handler set_unexpected(unexpected_handler handler);
|
||||
void unexpected();
|
||||
|
||||
struct __partial_array_destructor {
|
||||
/* 80361E5C */ ~__partial_array_destructor();
|
||||
};
|
||||
typedef void (*terminate_handler)();
|
||||
terminate_handler set_terminate(terminate_handler handler);
|
||||
void terminate();
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
#define ARRAY_HEADER_SIZE 16
|
||||
|
||||
#pragma section "extabindex_"
|
||||
extern void* const data_8000569C[8];
|
||||
extern "C" void __destroy_new_array();
|
||||
extern "C" void __destroy_arr();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void __dt__26__partial_array_destructorFv();
|
||||
extern "C" void __construct_new_array();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
#pragma section "extab_"
|
||||
extern "C" extern void* const _section_symbol_extab[18];
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __dla__FPv();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80361C6C-80361CE8 35C5AC 007C+00 2/0 11/11 3/3 .text __destroy_new_array */
|
||||
void __destroy_new_array() {
|
||||
// NONMATCHING
|
||||
extern "C" {
|
||||
extern void abort();
|
||||
}
|
||||
|
||||
/* 80361CE8-80361D60 35C628 0078+00 1/0 58/58 350/350 .text __destroy_arr */
|
||||
void __destroy_arr() {
|
||||
// NONMATCHING
|
||||
namespace std {
|
||||
static void dthandler() { abort(); }
|
||||
|
||||
static terminate_handler thandler = dthandler;
|
||||
|
||||
static void duhandler() { terminate(); }
|
||||
|
||||
static unexpected_handler uhandler = duhandler;
|
||||
|
||||
extern terminate_handler set_terminate(terminate_handler handler) {
|
||||
terminate_handler old = thandler;
|
||||
thandler = handler;
|
||||
return old;
|
||||
}
|
||||
|
||||
/* 80361D60-80361E5C 35C6A0 00FC+00 1/0 98/98 461/461 .text __construct_array */
|
||||
void __construct_array() {
|
||||
// NONMATCHING
|
||||
extern void terminate() { thandler(); }
|
||||
|
||||
extern unexpected_handler set_unexpected(unexpected_handler handler) {
|
||||
unexpected_handler old = uhandler;
|
||||
uhandler = handler;
|
||||
return old;
|
||||
}
|
||||
|
||||
/* 80361E5C-80361F14 35C79C 00B8+00 1/0 1/0 0/0 .text __dt__26__partial_array_destructorFv */
|
||||
__partial_array_destructor::~__partial_array_destructor() {
|
||||
// NONMATCHING
|
||||
extern void unexpected() { uhandler(); }
|
||||
} // namespace std
|
||||
|
||||
extern char __throw_catch_compare(const char* throwtype, const char* catchtype, long* offset_result) {
|
||||
const char *cptr1, *cptr2;
|
||||
|
||||
*offset_result = 0;
|
||||
|
||||
if ((cptr2 = catchtype) == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
cptr1 = throwtype;
|
||||
|
||||
if (*cptr2 == 'P') {
|
||||
cptr2++;
|
||||
if (*cptr2 == 'C')
|
||||
cptr2++;
|
||||
if (*cptr2 == 'V')
|
||||
cptr2++;
|
||||
if (*cptr2 == 'v') {
|
||||
if (*cptr1 == 'P' || *cptr1 == '*') {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
cptr2 = catchtype;
|
||||
}
|
||||
|
||||
switch (*cptr1) {
|
||||
case '*':
|
||||
case '!':
|
||||
if (*cptr1++ != *cptr2++)
|
||||
return false;
|
||||
for (;;) {
|
||||
if (*cptr1 == *cptr2++) {
|
||||
if (*cptr1++ == '!') {
|
||||
long offset;
|
||||
|
||||
for (offset = 0; *cptr1 != '!';) {
|
||||
offset = offset * 10 + *cptr1++ - '0';
|
||||
}
|
||||
*offset_result = offset;
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
while (*cptr1++ != '!') { }
|
||||
while (*cptr1++ != '!') { }
|
||||
if (*cptr1 == 0)
|
||||
return false;
|
||||
|
||||
cptr2 = catchtype + 1;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
while ((*cptr1 == 'P' || *cptr1 == 'R') && *cptr1 == *cptr2) {
|
||||
cptr1++;
|
||||
cptr2++;
|
||||
|
||||
if (*cptr2 == 'C') {
|
||||
if (*cptr1 == 'C')
|
||||
cptr1++;
|
||||
cptr2++;
|
||||
}
|
||||
if (*cptr1 == 'C')
|
||||
return false;
|
||||
|
||||
if (*cptr2 == 'V') {
|
||||
if (*cptr1 == 'V')
|
||||
cptr1++;
|
||||
cptr2++;
|
||||
}
|
||||
if (*cptr1 == 'V')
|
||||
return false;
|
||||
}
|
||||
|
||||
for (; *cptr1 == *cptr2; cptr1++, cptr2++) {
|
||||
if (*cptr1 == 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80361F14-80362018 35C854 0104+00 1/0 28/28 13/13 .text __construct_new_array */
|
||||
void __construct_new_array() {
|
||||
// NONMATCHING
|
||||
class __partial_array_destructor {
|
||||
private:
|
||||
void* p;
|
||||
size_t size;
|
||||
size_t n;
|
||||
ConstructorDestructor dtor;
|
||||
|
||||
public:
|
||||
size_t i;
|
||||
|
||||
__partial_array_destructor(void* array, size_t elementsize, size_t nelements, ConstructorDestructor destructor) {
|
||||
p = array;
|
||||
size = elementsize;
|
||||
n = nelements;
|
||||
dtor = destructor;
|
||||
i = n;
|
||||
}
|
||||
|
||||
~__partial_array_destructor() {
|
||||
char* ptr;
|
||||
|
||||
if (i < n && dtor) {
|
||||
for (ptr = (char*)p + size * i; i > 0; i--) {
|
||||
ptr -= size;
|
||||
DTORCALL_COMPLETE(dtor, ptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
extern void* __construct_new_array(void* block, ConstructorDestructor ctor, ConstructorDestructor dtor, size_t size, size_t n) {
|
||||
char* ptr;
|
||||
|
||||
if ((ptr = (char*)block) != 0L) {
|
||||
size_t* p = (size_t*)ptr;
|
||||
|
||||
p[0] = size;
|
||||
p[1] = n;
|
||||
ptr += ARRAY_HEADER_SIZE;
|
||||
|
||||
if (ctor) {
|
||||
__partial_array_destructor pad(ptr, size, n, dtor);
|
||||
char* p;
|
||||
|
||||
for (pad.i = 0, p = (char*)ptr; pad.i < n; pad.i++, p += size) {
|
||||
CTORCALL_COMPLETE(ctor, p);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80005660-8000566C -00001 000C+00 1/0 0/0 0/0 .extabindex @206 */
|
||||
SECTION_EXTABINDEX static void* const lit_206[3] = {
|
||||
(void*)__destroy_new_array,
|
||||
(void*)0x0000007C,
|
||||
(void*)&_section_symbol_extab,
|
||||
};
|
||||
extern void __construct_array(void* ptr, ConstructorDestructor ctor, ConstructorDestructor dtor, size_t size, size_t n) {
|
||||
__partial_array_destructor pad(ptr, size, n, dtor);
|
||||
char* p;
|
||||
|
||||
/* 8000566C-80005678 -00001 000C+00 0/0 0/0 0/0 .extabindex @211 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_EXTABINDEX static void* const lit_211[3] = {
|
||||
(void*)__destroy_arr,
|
||||
(void*)0x00000078,
|
||||
(void*)(((char*)&_section_symbol_extab) + 0x8),
|
||||
};
|
||||
#pragma pop
|
||||
for (pad.i = 0, p = (char*)ptr; pad.i < n; pad.i++, p += size) {
|
||||
CTORCALL_COMPLETE(ctor, p);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80005678-80005684 -00001 000C+00 0/0 0/0 0/0 .extabindex @232 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_EXTABINDEX static void* const lit_232[3] = {
|
||||
(void*)__construct_array,
|
||||
(void*)0x000000FC,
|
||||
(void*)(((char*)&_section_symbol_extab) + 0x10),
|
||||
};
|
||||
#pragma pop
|
||||
extern void __destroy_arr(void* block, ConstructorDestructor* dtor, size_t size, size_t n) {
|
||||
char* p;
|
||||
|
||||
/* 80005684-80005690 -00001 000C+00 0/0 0/0 0/0 .extabindex @240 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_EXTABINDEX static void* const lit_240[3] = {
|
||||
(void*)__dt__26__partial_array_destructorFv,
|
||||
(void*)0x000000B8,
|
||||
(void*)(((char*)&_section_symbol_extab) + 0x28),
|
||||
};
|
||||
#pragma pop
|
||||
for (p = (char*)block + size * n; n > 0; n--) {
|
||||
p -= size;
|
||||
DTORCALL_COMPLETE(dtor, p);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80005690-8000569C -00001 000C+00 0/0 0/0 0/0 .extabindex @263 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_EXTABINDEX static void* const lit_263[3] = {
|
||||
(void*)__construct_new_array,
|
||||
(void*)0x00000104,
|
||||
(void*)(((char*)&_section_symbol_extab) + 0x30),
|
||||
};
|
||||
#pragma pop
|
||||
extern void __destroy_new_array(void* block, ConstructorDestructor dtor) {
|
||||
if (block) {
|
||||
if (dtor) {
|
||||
size_t i, objects, objectsize;
|
||||
char* p;
|
||||
|
||||
/* 8000569C-800056BC -00001 0020+00 1/0 1/1 0/0 .extabindex None */
|
||||
SECTION_EXTABINDEX extern void* const data_8000569C[8] = {
|
||||
(void*)&lit_206, (void*)&data_8000569C, (void*)__destroy_new_array,
|
||||
(void*)0x000003AC, (void*)NULL, (void*)NULL,
|
||||
(void*)NULL, (void*)NULL,
|
||||
};
|
||||
objectsize = *(size_t*)((char*)block - ARRAY_HEADER_SIZE);
|
||||
objects = ((size_t*)((char*)block - ARRAY_HEADER_SIZE))[1];
|
||||
p = (char*)block + (objectsize * objects);
|
||||
|
||||
for (i = 0; i < objects; i++) {
|
||||
p -= objectsize;
|
||||
DTORCALL_COMPLETE(dtor, p);
|
||||
}
|
||||
}
|
||||
|
||||
::operator delete[]((char*)block - ARRAY_HEADER_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
void __destroy_new_array2(void) {}
|
||||
|
||||
void __destroy_new_array3(void) {}
|
||||
|
||||
@@ -23,20 +23,20 @@ extern int __register_fragment(struct __eti_init_info* info, char* TOC);
|
||||
/* 80450AD0-80450AD8 000550 0004+04 2/2 0/0 0/0 .sdata fragmentID */
|
||||
static int fragmentID = -2;
|
||||
|
||||
/* clang-format off */
|
||||
static asm char* GetR2() {
|
||||
nofralloc
|
||||
mr r3, r2
|
||||
blr
|
||||
extern void GetR2(char** R2) {
|
||||
register char* temp;
|
||||
asm {
|
||||
mr temp, r2
|
||||
}
|
||||
*R2 = temp;
|
||||
}
|
||||
/* clang-format on */
|
||||
|
||||
/* 80362870-803628AC 35D1B0 003C+00 1/0 1/0 0/0 .text __init_cpp_exceptions */
|
||||
void __init_cpp_exceptions(void) {
|
||||
// NONMATCHING
|
||||
char* R2;
|
||||
|
||||
if (fragmentID == -2) {
|
||||
R2 = GetR2();
|
||||
GetR2(&R2);
|
||||
fragmentID = __register_fragment(_eti_init_info, R2);
|
||||
}
|
||||
}
|
||||
@@ -51,13 +51,16 @@ void __fini_cpp_exceptions(void) {
|
||||
}
|
||||
|
||||
/* 803737C0-803737C4 000000 0004+00 0/0 1/1 0/0 .ctors __init_cpp_exceptions_reference */
|
||||
__declspec(section ".ctors")
|
||||
#pragma section ".ctors$10"
|
||||
__declspec(section ".ctors$10")
|
||||
extern void* const __init_cpp_exceptions_reference = __init_cpp_exceptions;
|
||||
|
||||
/* 80373980-80373984 000000 0004+00 0/0 1/1 0/0 .dtors __destroy_global_chain_reference */
|
||||
__declspec(section ".dtors")
|
||||
#pragma section ".dtors$10"
|
||||
__declspec(section ".dtors$10")
|
||||
extern void* const __destroy_global_chain_reference = __destroy_global_chain;
|
||||
|
||||
/* 80373984-80373988 000004 0004+00 0/0 0/1 0/0 .dtors __fini_cpp_exceptions_reference */
|
||||
__declspec(section ".dtors")
|
||||
extern void* const __fini_cpp_exceptions_reference = __fini_cpp_exceptions;
|
||||
#pragma section ".dtors$15"
|
||||
__declspec(section ".dtors$15")
|
||||
extern void* const __fini_cpp_exceptions_reference = __fini_cpp_exceptions;
|
||||
|
||||
@@ -1,24 +1,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include <dolphin.h>
|
||||
|
||||
/* 800035C0-800035E4 0004C0 0024+00 0/0 12/12 0/0 .init TRK_memcpy */
|
||||
SECTION_INIT void* TRK_memcpy(void* dst, const void* src, size_t n) {
|
||||
const unsigned char* s = (const unsigned char*)src - 1;
|
||||
unsigned char* d = (unsigned char*)dst - 1;
|
||||
|
||||
n++;
|
||||
while (--n != 0)
|
||||
*++d = *++s;
|
||||
return dst;
|
||||
}
|
||||
|
||||
/* 80003590-800035C0 000490 0030+00 0/0 1/1 0/0 .init TRK_memset */
|
||||
SECTION_INIT void* TRK_memset(void* dst, int val, size_t n) {
|
||||
TRK_fill_mem(dst, val, n);
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
/* 80003540-80003590 000440 0050+00 1/1 63/63 6/6 .init memcpy */
|
||||
SECTION_INIT void* memcpy(void* dst, const void* src, size_t n) {
|
||||
const unsigned char* s;
|
||||
@@ -104,4 +86,4 @@ SECTION_INIT void* memset(void* dst, int val, size_t n) {
|
||||
__fill_mem(dst, val, n);
|
||||
|
||||
return dst;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "NMWException.h"
|
||||
#include "MWCPlusLib.h"
|
||||
|
||||
/* 80451988-80451990 000E88 0004+04 2/2 0/0 0/0 .sbss __global_destructor_chain */
|
||||
DestructorChain* __global_destructor_chain;
|
||||
@@ -17,11 +18,12 @@ void __destroy_global_chain(void) {
|
||||
DestructorChain* iter;
|
||||
while ((iter = __global_destructor_chain) != 0) {
|
||||
__global_destructor_chain = iter->next;
|
||||
DTORCALL(iter->destructor, iter->object);
|
||||
DTORCALL_COMPLETE(iter->destructor, iter->object);
|
||||
}
|
||||
}
|
||||
|
||||
/* clang-format off */
|
||||
__declspec(section ".dtors")
|
||||
#pragma section ".dtors$10"
|
||||
__declspec(section ".dtors$10")
|
||||
static void* const __destroy_global_chain_reference = __destroy_global_chain;
|
||||
/* clang-format on */
|
||||
/* clang-format on */
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "global.h"
|
||||
#include "__ar.h"
|
||||
|
||||
extern u32 _db_stack_addr;
|
||||
|
||||
#define EXCEPTIONMASK_ADDR 0x80000044
|
||||
|
||||
/* 8044F810-8044F818 07C530 0004+04 3/3 0/0 0/0 .bss lc_base */
|
||||
@@ -28,6 +30,9 @@ static u32 TRK_ISR_OFFSETS[15] = {PPC_SystemReset,
|
||||
PPC_SystemManagementInterrupt,
|
||||
PPC_ThermalManagementInterrupt};
|
||||
|
||||
void __TRK_copy_vectors(void);
|
||||
__declspec(section ".init") void __TRK_reset(void) { OSResetSystem(FALSE, 0, FALSE); }
|
||||
|
||||
/* 80371B7C-80371B9C 36C4BC 0020+00 0/0 1/1 0/0 .text EnableMetroTRKInterrupts */
|
||||
void EnableMetroTRKInterrupts(void) {
|
||||
EnableEXI2Interrupts();
|
||||
@@ -46,11 +51,11 @@ u32 TRKTargetTranslate(u32 param_0) {
|
||||
return param_0 & 0x3FFFFFFF | 0x80000000;
|
||||
}
|
||||
|
||||
extern u8 __TRK_unknown_data[];
|
||||
extern u8 gTRKInterruptVectorTable[];
|
||||
|
||||
void TRK_copy_vector(u32 offset) {
|
||||
void* destPtr = (void*)TRKTargetTranslate(offset);
|
||||
TRK_memcpy(destPtr, (void*)(__TRK_unknown_data + offset), 0x100);
|
||||
TRK_memcpy(destPtr, (void*)(gTRKInterruptVectorTable + offset), 0x100);
|
||||
TRK_flush_cache(destPtr, 0x100);
|
||||
}
|
||||
|
||||
@@ -246,8 +251,8 @@ asm void InitMetroTRK() {
|
||||
mtspr 0x3f2, r0
|
||||
mtspr 0x3f5, r0
|
||||
//Restore stack pointer
|
||||
lis r1, 0x80459BC8@h
|
||||
ori r1, r1, 0x80459BC8@l
|
||||
lis r1, _db_stack_addr@h
|
||||
ori r1, r1, _db_stack_addr@l
|
||||
mr r3, r5
|
||||
bl InitMetroTRKCommTable //Initialize comm table
|
||||
/*
|
||||
@@ -307,8 +312,8 @@ asm void InitMetroTRK_BBA() {
|
||||
mtspr 0x3f2, r0
|
||||
mtspr 0x3f5, r0
|
||||
//Restore the stack pointer
|
||||
lis r1, 0x80459BC8@h
|
||||
ori r1, r1, 0x80459BC8@l
|
||||
lis r1, _db_stack_addr@h
|
||||
ori r1, r1, _db_stack_addr@l
|
||||
li r3, 2
|
||||
bl InitMetroTRKCommTable //Initialize comm table as BBA hardware
|
||||
/*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user