jpn/pal fix

This commit is contained in:
Jasper St. Pierre
2023-10-13 19:40:46 -07:00
parent a5641b0ba9
commit fca11f6233
8 changed files with 76 additions and 28 deletions
+6 -2
View File
@@ -417,7 +417,7 @@ public:
/* 0x47EC */ JKRArchive* mpCamResArchive;
/* 0x47F0 */ JKRArchive* mpSwimResArchive;
/* 0x47F4 */ JKRArchive* mpWindResArchive;
#if VERSION != VERSION_JP
#if VERSION != VERSION_JPN
/* 0x47F8 */ JKRArchive* mpEnglishTextArchive;
/* 0x47FC */ JKRArchive* mpHyruleTextArchive;
/* 0x4800 */ u8 mCARDHeap0[0x04];
@@ -565,7 +565,7 @@ public:
/* 0x1D1C1 */ u8 field_0x1d1c1;
};
#if VERSION != VERSION_JP
#if VERSION != VERSION_JPN
STATIC_ASSERT(sizeof(dComIfG_inf_c) == 0x1D1C8);
#endif
@@ -1458,6 +1458,10 @@ inline void dComIfGp_event_offEventFlag(s16 flag) {
g_dComIfG_gameInfo.play.getEvent().offEventFlag(flag);
}
inline void dComIfGp_event_remove() {
g_dComIfG_gameInfo.play.getEvent().remove();
}
inline void dComIfGp_event_reset() {
g_dComIfG_gameInfo.play.getEvent().reset();
}
+1 -1
View File
@@ -17,7 +17,7 @@ struct mDoRstData {
class mDoRst {
public:
#if VERSION != VERSION_JP
#if VERSION != VERSION_JPN
static void set3ButtonResetPort(int port) { mResetData->m3ButtonResetPort = port; }
static void off3ButtonReset() { mResetData->m3ButtonReset = 0; }
static void offResetPrepare() { mResetData->mResetPrepare = 0; }
+9 -9
View File
@@ -134,7 +134,7 @@ void* JKRArchive::getGlbResource(u32 param_0, const char* path, JKRArchive* arch
/* 802B8380-802B8450 .text getResource__10JKRArchiveFPCc */
void* JKRArchive::getResource(const char* path) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(337, isMounted());
#else
JUT_ASSERT(285, isMounted());
@@ -156,7 +156,7 @@ void* JKRArchive::getResource(const char* path) {
/* 802B8450-802B8528 .text getResource__10JKRArchiveFUlPCc */
void* JKRArchive::getResource(u32 type, const char* path) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(384, isMounted());
#else
JUT_ASSERT(332, isMounted());
@@ -198,7 +198,7 @@ u32 JKRArchive::readTypeResource(void* buffer, u32 bufferSize, u32 type, const c
/* 802B85F0-802B86DC .text readResource__10JKRArchiveFPvUlUlPCc */
u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u32 type, const char* path) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(543, isMounted());
#else
JUT_ASSERT(491, isMounted());
@@ -222,7 +222,7 @@ u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u32 type, const char*
/* 802B86DC-802B87C0 .text readResource__10JKRArchiveFPvUlPCc */
u32 JKRArchive::readResource(void* buffer, u32 bufferSize, const char* path) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(589, isMounted());
#else
JUT_ASSERT(537, isMounted());
@@ -246,7 +246,7 @@ u32 JKRArchive::readResource(void* buffer, u32 bufferSize, const char* path) {
/* 802B87C0-802B8878 .text readIdxResource__10JKRArchiveFPvUlUl */
u32 JKRArchive::readIdxResource(void* buffer, u32 bufferSize, u32 index) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(645, isMounted());
#else
JUT_ASSERT(593, isMounted());
@@ -264,7 +264,7 @@ u32 JKRArchive::readIdxResource(void* buffer, u32 bufferSize, u32 index) {
/* 802B8878-802B8930 .text readResource__10JKRArchiveFPvUlUs */
u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u16 id) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(679, isMounted());
#else
JUT_ASSERT(627, isMounted());
@@ -295,7 +295,7 @@ void JKRArchive::removeResourceAll() {
/* 802B89B8-802B8A54 .text removeResource__10JKRArchiveFPv */
bool JKRArchive::removeResource(void* resource) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(755, resource != 0);
#else
JUT_ASSERT(687, resource != 0);
@@ -312,7 +312,7 @@ bool JKRArchive::removeResource(void* resource) {
/* 802B8A54-802B8AE4 .text detachResource__10JKRArchiveFPv */
bool JKRArchive::detachResource(void* resource) {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(787, resource != 0);
#else
JUT_ASSERT(719, resource != 0);
@@ -328,7 +328,7 @@ bool JKRArchive::detachResource(void* resource) {
/* 802B8AE4-802B8B6C .text getResSize__10JKRArchiveCFPCv */
u32 JKRArchive::getResSize(const void* resource) const {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(814, resource != 0);
#else
JUT_ASSERT(746, resource != 0);
+4 -4
View File
@@ -420,7 +420,7 @@ static void dummy3() {
/* 802B0D70-802B0E14 .text state_register__7JKRHeapCFPQ27JKRHeap6TStateUl */
void JKRHeap::state_register(JKRHeap::TState* p, u32 id) const {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(1034, p != 0);
JUT_ASSERT(1035, p->getHeap() == this);
#else
@@ -431,7 +431,7 @@ void JKRHeap::state_register(JKRHeap::TState* p, u32 id) const {
/* 802B0E14-802B0E9C .text state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState */
bool JKRHeap::state_compare(const JKRHeap::TState& r1, const JKRHeap::TState& r2) const {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_ASSERT(1043, r1.getHeap() == r2.getHeap());
#else
JUT_ASSERT(1099, r1.getHeap() == r2.getHeap());
@@ -448,7 +448,7 @@ static void dummy4() {
/* 802B0E9C-802B0F24 .text state_dump__7JKRHeapCFRCQ27JKRHeap6TState */
void JKRHeap::state_dump(const JKRHeap::TState& p) const {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
JUT_LOG(1067, "check-code : 0x%08x", p.getCheckCode());
JUT_LOG(1068, "id : 0x%08x", p.getId());
JUT_LOG(1069, "used size : %u", p.getUsedSize());
@@ -469,7 +469,7 @@ u8 JKRHeap::do_getCurrentGroupId() {
return 0;
}
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
static void dummy5() {
OSReport("\x1B[41;37m:::addr %08x size %08x: Freeされた領域が浸食されている (%08x=%02x)\n\x1B[m");
}
+2 -2
View File
@@ -32,7 +32,7 @@ public:
/* 00000078-000000C8 .text _delete__13daTagKbItem_cFv */
bool daTagKbItem_c::_delete() {
#if VERSION != VERSION_JP
#if VERSION != VERSION_JPN
if (field_0x2a0 != 0xff && field_0x2a4 != 0xff) {
dComIfGs_offSwitch(field_0x2a4, orig.roomNo);
}
@@ -67,7 +67,7 @@ int daTagKbItem_c::_create() {
/* 000001BC-000001C4 .text _execute__13daTagKbItem_cFv */
bool daTagKbItem_c::_execute() {
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
if (field_0x29c != 0x1f && dComIfGs_isItem(field_0x29c, orig.roomNo) ||
field_0x2a4 != 0xff && dComIfGs_isSwitch(field_0x2a4, orig.roomNo))
{
+6
View File
@@ -64,11 +64,17 @@ s32 dScnOpen_c::create() {
JUT_ASSERT(0x48, rt == cPhs_COMPLEATE_e);
return rt;
}
return rt;
}
/* 80232BC4-80232CAC .text execute__10dScnOpen_cFv */
BOOL dScnOpen_c::execute() {
#if VERSION != VERSION_JPN
if (mpProc->field_0x2b0 >= 5 && !fopOvlpM_IsPeek() && !dComIfG_resetToOpening(this)) {
#else
if (!fopOvlpM_IsPeek() && !dComIfG_resetToOpening(this)) {
#endif
if (fpcM_GetName(this) == PROC_OPEN2_SCENE && (CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0) || CPad_CHECK_TRIG_START(0))) {
field_0x1d4 = 1;
mDoAud_bgmStop(20);
+44 -6
View File
@@ -7,6 +7,7 @@
#include "f_op/f_op_draw_iter.h"
#include "f_op/f_op_actor_mng.h"
#include "f_op/f_op_overlap_mng.h"
#include "f_op/f_op_msg_mng.h"
#include "f_op/f_op_scene_mng.h"
#include "f_pc/f_pc_leaf.h"
#include "f_pc/f_pc_manager.h"
@@ -22,18 +23,30 @@ namespace JAInter {
};
};
struct title_of_scene_class : public scene_class {
public:
/* 0x1C4 */ u32 pad[0x97];
/* 0x420 */ u32 mMoviePId;
};
class daMP_c : public fopAc_ac_c {
public:
/* 0x290 */ u32 (*mpCallBack1)();
/* 0x294 */ u32 (*mpCallBack2)(f32);
};
#if VERSION == VERSION_PAL
#define title_of_scene_class dScnTitle_c
#endif
struct title_of_scene_class : public scene_class {
public:
/* 0x1C4 */ u32 pad[0x97];
/* 0x420 */ u32 mMoviePId;
#if VERSION == VERSION_PAL
static daMP_c* mMp;
#endif
};
#if VERSION == VERSION_PAL
daMP_c* dScnTitle_c::mMp;
#endif
/* 802372F4-80237344 .text dScnTitle_Draw__FP20title_of_scene_class */
BOOL dScnTitle_Draw(title_of_scene_class* i_this) {
for (create_tag_class* pTag = fopDwIt_Begin(); pTag != NULL; pTag = fopDwIt_Next(pTag))
@@ -44,12 +57,25 @@ BOOL dScnTitle_Draw(title_of_scene_class* i_this) {
/* 80237344-802374C8 .text dScnTitle_Execute__FP20title_of_scene_class */
BOOL dScnTitle_Execute(title_of_scene_class* i_this) {
if (!fopOvlpM_IsPeek() && !dComIfG_resetToOpening(i_this)) {
#if VERSION == VERSION_PAL
daMP_c *movie = dScnTitle_c::mMp;
if (movie == NULL) {
s32 rt = fopAcM_SearchByID(i_this->mMoviePId, (fopAc_ac_c**)&movie);
JUT_ASSERT(0x8a, rt);
if (movie == NULL)
return TRUE;
dScnTitle_c::mMp = movie;
}
#else
daMP_c *movie;
s32 rt = fopAcM_SearchByID(i_this->mMoviePId, (fopAc_ac_c**)&movie);
JUT_ASSERT(0x83, rt);
if (movie == NULL)
return TRUE;
#endif
if (movie->mpCallBack1 == NULL || movie->mpCallBack2 == NULL)
return TRUE;
@@ -80,6 +106,9 @@ BOOL dScnTitle_IsDelete(title_of_scene_class* i_this) {
/* 802374D0-802374D8 .text dScnTitle_Delete__FP20title_of_scene_class */
BOOL dScnTitle_Delete(title_of_scene_class* i_this) {
#if VERSION == VERSION_PAL
dComIfGp_event_remove();
#endif
return TRUE;
}
@@ -94,7 +123,16 @@ s32 dScnTitle_Create(scene_class* i_scn) {
fopAc_ac_c::stopStatus = 0;
dComIfGp_offEnableNextStage();
u32 parameter = fpcM_GetName(i_this) == PROC_TITLE_SCENE ? 0 : 1;
i_this->mMoviePId = fopAcM_create(PROC_MP, parameter, NULL, -1, NULL, NULL, 0xFF, NULL);
#if VERSION == VERSION_PAL
dScnTitle_c::mMp = NULL;
if (fpcM_GetName(i_this) == PROC_ENDING_SCENE) {
fopMsgM_Create(PROC_MESG, 0, 0);
}
#endif
return cPhs_COMPLEATE_e;
}
+4 -4
View File
@@ -23,7 +23,7 @@ void destroyVideo() {
VIWaitForRetrace();
}
#if VERSION == VERSION_JP
#if VERSION == VERSION_JPN
int mDoRst::mResetFlag;
int mDoRst::mResetPrepare;
int mDoRst::m3ButtonResetFlag;
@@ -44,7 +44,7 @@ void mDoRst_reset(int param_0, unsigned long param_1, int param_2) {
JUTGamePad::clearForReset();
mDoAud_zelAudio_c::offInitFlag();
#if VERSION != VERSION_JP
#if VERSION != VERSION_JPN
VIWaitForRetrace();
VIWaitForRetrace();
#endif
@@ -64,7 +64,7 @@ void mDoRst_reset(int param_0, unsigned long param_1, int param_2) {
destroyVideo();
my_OSCancelAlarmAll();
LCDisable();
#if VERSION != VERSION_JP
#if VERSION != VERSION_JPN
OSSetSaveRegion(mDoRst::mResetData, (u8*)&mDoRst::getResetData + 0x10);
#endif
OSResetSystem(param_0, param_1, param_2);
@@ -92,7 +92,7 @@ void mDoRst_resetCallBack(int port, void*) {
JUTGamePad::clearForReset();
JUTGamePad::CRumble::setEnabled(0xF0000000);
}
#if VERSION != VERSION_JP
#if VERSION != VERSION_JPN
if (DVDCheckDisk() == 0) {
mDoRst_reset(1, 0x80000000, 0);
}