mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-29 23:38:09 -04:00
d_seafightgame, m_Do_machine_exception, m_Do_reset, m_Do_DVDError OK (#41)
* m_Do_machine_exception OK * m_Do_Reset OK * m_Do_DVDError OK * some fixes for JP * JP OK again * d_seafightgame OK * cleanup m_Do_Reset a bit
This commit is contained in:
+88
-18
@@ -1,32 +1,102 @@
|
||||
//
|
||||
// Generated by dtk
|
||||
// Translation Unit: m_Do_Reset.cpp
|
||||
//
|
||||
/**
|
||||
* m_Do_Reset.cpp
|
||||
* Game Reset Management
|
||||
*/
|
||||
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JUtility/JUTGamePad.h"
|
||||
#include "JSystem/JUtility/JUTXfb.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "m_Do/m_Do_DVDError.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
|
||||
/* 80017D40-80017D44 .text my_OSCancelAlarmAll__Fv */
|
||||
void my_OSCancelAlarmAll() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
static void my_OSCancelAlarmAll() {}
|
||||
|
||||
/* 80017D44-80017D7C .text destroyVideo__Fv */
|
||||
void destroyVideo() {
|
||||
/* Nonmatching */
|
||||
JUTVideo::destroyManager();
|
||||
GXSetDrawDoneCallback(NULL);
|
||||
VISetBlack(1);
|
||||
VIFlush();
|
||||
VIWaitForRetrace();
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_JP
|
||||
int mDoRst::mResetFlag;
|
||||
int mDoRst::mResetPrepare;
|
||||
int mDoRst::m3ButtonResetFlag;
|
||||
int mDoRst::m3ButtonResetPort = -1;
|
||||
#else
|
||||
mDoRstData* mDoRst::mResetData;
|
||||
#endif
|
||||
|
||||
/* 80017D7C-80017E40 .text mDoRst_reset__FiUli */
|
||||
void mDoRst_reset(int, unsigned long, int) {
|
||||
/* Nonmatching */
|
||||
void mDoRst_reset(int param_0, unsigned long param_1, int param_2) {
|
||||
if (DVDGetDriveStatus() == DVD_STATE_FATAL_ERROR) {
|
||||
do {
|
||||
} while (true);
|
||||
}
|
||||
|
||||
JUTXfb::getManager()->clearIndex();
|
||||
mDoDvdErr_ThdCleanup();
|
||||
JUTGamePad::clearForReset();
|
||||
mDoAud_zelAudio_c::offInitFlag();
|
||||
|
||||
#if VERSION != VERSION_JP
|
||||
VIWaitForRetrace();
|
||||
VIWaitForRetrace();
|
||||
#endif
|
||||
|
||||
OSThread* gxThread = GXGetCurrentGXThread();
|
||||
s32 enable = OSDisableInterrupts();
|
||||
|
||||
if (gxThread != OSGetCurrentThread()) {
|
||||
OSCancelThread(gxThread);
|
||||
GXSetCurrentGXThread();
|
||||
}
|
||||
|
||||
GXFlush();
|
||||
GXAbortFrame();
|
||||
GXDrawDone();
|
||||
OSRestoreInterrupts(enable);
|
||||
destroyVideo();
|
||||
my_OSCancelAlarmAll();
|
||||
LCDisable();
|
||||
#if VERSION != VERSION_JP
|
||||
OSSetSaveRegion(mDoRst::mResetData, (u8*)&mDoRst::getResetData + 0x10);
|
||||
#endif
|
||||
OSResetSystem(param_0, param_1, param_2);
|
||||
|
||||
do {
|
||||
VIWaitForRetrace();
|
||||
} while (true);
|
||||
}
|
||||
|
||||
/* 80017E40-80017EF0 .text mDoRst_resetCallBack__FiPv */
|
||||
void mDoRst_resetCallBack(int, void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80017EF0-80017EF8 .text getResetData__6mDoRstFv */
|
||||
void mDoRst::getResetData() {
|
||||
/* Nonmatching */
|
||||
void mDoRst_resetCallBack(int port, void*) {
|
||||
if (!mDoRst::isReset()) {
|
||||
if (port == -1) {
|
||||
JUTGamePad::clearForReset();
|
||||
JUTGamePad::CRumble::setEnabled(0xF0000000);
|
||||
} else {
|
||||
if (mDoRst::is3ButtonReset()) {
|
||||
JUTGamePad::C3ButtonReset::sResetOccurred = false;
|
||||
JUTGamePad::C3ButtonReset::sCallback = mDoRst_resetCallBack;
|
||||
JUTGamePad::C3ButtonReset::sCallbackArg = NULL;
|
||||
return;
|
||||
}
|
||||
mDoRst::on3ButtonReset();
|
||||
mDoRst::set3ButtonResetPort(port);
|
||||
JUTGamePad::clearForReset();
|
||||
JUTGamePad::CRumble::setEnabled(0xF0000000);
|
||||
}
|
||||
#if VERSION != VERSION_JP
|
||||
if (DVDCheckDisk() == 0) {
|
||||
mDoRst_reset(1, 0x80000000, 0);
|
||||
}
|
||||
#endif
|
||||
mDoRst::onReset();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user