summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2024-07-10 17:16:55 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2024-07-10 17:16:55 -0400
commit9489cd4bcb7e4abfa66bedda20401fe4e275d5d5 (patch)
tree6febd34d57d8b1f4f0a15c3b0431acd3996eeaed
parent635a1fd05263e533042bed065fca886174f32fb0 (diff)
d_a_movie_player start
-rw-r--r--include/JSystem/JFramework/JFWDisplay.h10
-rw-r--r--include/d/actor/d_a_movie_player.h46
-rw-r--r--include/dolphin/dvd/dvd.h2
-rw-r--r--include/f_op/f_op_actor_mng.h2
-rw-r--r--include/m_Do/m_Do_graphic.h4
-rw-r--r--src/d/actor/d_a_movie_player.cpp305
-rw-r--r--src/d/d_bg_s_acch.cpp2
7 files changed, 297 insertions, 74 deletions
diff --git a/include/JSystem/JFramework/JFWDisplay.h b/include/JSystem/JFramework/JFWDisplay.h
index 1afbf118..bf4a609a 100644
--- a/include/JSystem/JFramework/JFWDisplay.h
+++ b/include/JSystem/JFramework/JFWDisplay.h
@@ -89,6 +89,16 @@ public:
JUTFader * getFader() { return mpFader; }
void setClearColor(JUtility::TColor color) { mClearColor = color; }
+ u16 getFrameRate() const { return mFrameRate; }
+ void setFrameRate(u16 framerate) {
+ mFrameRate = framerate;
+ mTickRate = 0;
+ }
+
+ void getEfbHeight() const {}
+ void getEfbWidth() const {}
+ void getXfbManager() const {}
+
static JFWDisplay* sManager;
private:
diff --git a/include/d/actor/d_a_movie_player.h b/include/d/actor/d_a_movie_player.h
index c627f342..99ca93ea 100644
--- a/include/d/actor/d_a_movie_player.h
+++ b/include/d/actor/d_a_movie_player.h
@@ -3,18 +3,19 @@
#include "f_op/f_op_actor.h"
#include "d/d_drawlist.h"
+#include "dolphin/dvd/dvd.h"
class daMP_c : public fopAc_ac_c {
public:
- void daMP_c_Get_arg_data();
- void daMP_c_Init();
- void daMP_c_Finish();
- void daMP_c_Main();
- void daMP_c_Draw();
+ u32 daMP_c_Get_arg_data();
+ int daMP_c_Init();
+ BOOL daMP_c_Finish();
+ BOOL daMP_c_Main();
+ BOOL daMP_c_Draw();
static int daMP_c_Callback_Init(fopAc_ac_c*);
- static int daMP_c_Callback_Finish(daMP_c*);
- static int daMP_c_Callback_Main(daMP_c*);
- static int daMP_c_Callback_Draw(daMP_c*);
+ static BOOL daMP_c_Callback_Finish(daMP_c*);
+ static BOOL daMP_c_Callback_Main(daMP_c*);
+ static BOOL daMP_c_Callback_Draw(daMP_c*);
public:
/* 0x290 */ u32 (*mpCallBack1)();
@@ -26,15 +27,38 @@ class daMP_Dlst_base_c : public dDlst_base_c {
};
struct daMP_THPReadBuffer {
-
+ /* 0x00 */ void* m00;
+ /* 0x04 */ s32 m04;
+};
+
+struct daMP_Player_c { // Fake name
+ /* 0x00 */ DVDFileInfo mFileInfo;
+ /* 0x3C */ u8 m3C[0x50 - 0x3C];
+ /* 0x50 */ u32 m50;
+ /* 0x54 */ u8 m54[0x64 - 0x54];
+ /* 0x64 */ s32 m64;
+ /* 0x68 */ u8 m68[0xA6 - 0x68];
+ /* 0xA6 */ u8 mA6;
+ /* 0xA7 */ u8 mA7[0xA8 - 0xA7];
+ /* 0xA8 */ s32 mA8;
+ /* 0xAC */ u8 mAC[0xB8 - 0xAC];
+ /* 0xB8 */ s32 mB8;
+ /* 0xBC */ s32 mBC;
+ /* 0xC0 */ s32 mC0;
};
struct THPVideoInfo {
-
+ /* 0x00 */ u8 m00[0x0C - 0x00];
};
struct THPAudioInfo {
-
+ /* 0x00 */ u8 m00[0x10 - 0x00];
};
+inline s32 daMP_NEXT_READ_SIZE(daMP_THPReadBuffer* readBuf) {
+ return *(s32*)readBuf->m00;
+}
+
+void daMP_PrepareReady(int);
+
#endif /* D_A_MOVIE_PLAYER_H */
diff --git a/include/dolphin/dvd/dvd.h b/include/dolphin/dvd/dvd.h
index e3b05cc5..2ebfd1a3 100644
--- a/include/dolphin/dvd/dvd.h
+++ b/include/dolphin/dvd/dvd.h
@@ -115,7 +115,7 @@ typedef void (*DVDOptionalCommandChecker)(DVDCommandBlock* block, void (*cb)(u32
void DVDInit(void);
BOOL DVDOpen(const char* filename, DVDFileInfo* fileinfo);
BOOL DVDClose(DVDFileInfo* fileinfo);
-BOOL DVDReadPrio(DVDFileInfo* fileinfo, void*, s32, s32, s32);
+int DVDReadPrio(DVDFileInfo* fileinfo, void*, s32, s32, s32);
DVDDiskID* DVDGetCurrentDiskID(void);
BOOL DVDFastOpen(long, DVDFileInfo* fileinfo);
s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block);
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index 411c0dcc..1ccc51c4 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -191,7 +191,7 @@ inline csXyz* fopAcM_GetShapeAngle_p(fopAc_ac_c* pActor) {
return &pActor->shape_angle;
}
-inline bool fopAcM_CheckCondition(fopAc_ac_c* p_actor, u32 flag) {
+inline u32 fopAcM_CheckCondition(fopAc_ac_c* p_actor, u32 flag) {
return p_actor->actor_condition & flag;
}
diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h
index e5f38bfd..2b43ae03 100644
--- a/include/m_Do/m_Do_graphic.h
+++ b/include/m_Do/m_Do_graphic.h
@@ -21,7 +21,6 @@ public:
static void onMonotone();
static void offMonotone();
static void calcMonotone();
- static void getFrameRate();
static void setFader(JUTFader* fader) {
JFWDisplay::getManager()->setFader(fader);
@@ -58,6 +57,8 @@ public:
static GXTexObj* getZbufferTexObj() { return &mZbufferTexObj; }
static GXTexObj* getFrameBufferTexObj() { return &mFrameBufferTexObj; }
static void fadeIn(f32 rate, GXColor& color) { fadeOut(-rate, color); }
+ static u16 getFrameRate() { return JFWDisplay::getManager()->getFrameRate(); }
+ static void setFrameRate(u16 framerate) { JFWDisplay::getManager()->setFrameRate(framerate); }
static void alloc32(u32) {}
static void getFrameBufferMemory() {}
@@ -65,7 +66,6 @@ public:
static void getMonotoneRate() {}
static void setBlureMtx(const Mtx) {}
static void setBlureRate(u8) {}
- static void setFrameRate(u16) {}
static void setMonotoneRate(s16 rate) { mMonotoneRate = rate; }
static void setMonotoneRateSpeed(s16 speed) { mMonotoneRateSpeed = speed; }
diff --git a/src/d/actor/d_a_movie_player.cpp b/src/d/actor/d_a_movie_player.cpp
index 65bfb860..2ee0e4a1 100644
--- a/src/d/actor/d_a_movie_player.cpp
+++ b/src/d/actor/d_a_movie_player.cpp
@@ -3,8 +3,92 @@
// Translation Unit: d_a_movie_player.cpp
//
+// This TU seems to disable inlining entirely, as there are several weak functions that get inlined
+// in other TUs, but not here.
+#pragma dont_inline on
+
#include "d/actor/d_a_movie_player.h"
+#include "f_op/f_op_actor_mng.h"
#include "d/d_procname.h"
+#include "d/d_com_inf_game.h"
+#include "m_Do/m_Do_graphic.h"
+#include "dolphin/os/OSMessage.h"
+
+static Vec bss_3569;
+// Not sure what these are, but they have size 1, and alignment 1 in the debug maps, but alignment 4 in the non-debug maps.
+static u8 bss_1036 ALIGN_DECL(4);
+static u8 bss_1034 ALIGN_DECL(4);
+static u8 bss_1032 ALIGN_DECL(4);
+static u8 bss_1031 ALIGN_DECL(4);
+static u8 bss_1026 ALIGN_DECL(4);
+static u8 bss_1024 ALIGN_DECL(4);
+static u8 bss_1022 ALIGN_DECL(4);
+static u8 bss_1021 ALIGN_DECL(4);
+static u8 bss_984 ALIGN_DECL(4);
+static u8 bss_982 ALIGN_DECL(4);
+static u8 bss_980 ALIGN_DECL(4);
+static u8 bss_979 ALIGN_DECL(4);
+static u8 bss_941 ALIGN_DECL(4);
+static u8 bss_939 ALIGN_DECL(4);
+static u8 bss_937 ALIGN_DECL(4);
+static u8 bss_936 ALIGN_DECL(4);
+
+u8 THPStatistics[0x460];
+
+daMP_Player_c daMP_ActivePlayer;
+
+BOOL daMP_ReadThreadCreated;
+OSMessageQueue daMP_FreeReadBufferQueue;
+OSMessageQueue daMP_ReadedBufferQueue;
+OSMessageQueue daMP_ReadedBufferQueue2;
+OSMessage daMP_FreeReadBufferMessage[10];
+OSMessage daMP_ReadedBufferMessage[10];
+OSMessage daMP_ReadedBufferMessage2[10];
+OSThread daMP_ReadThread;
+u8 daMP_ReadThreadStack[0x1000];
+
+BOOL daMP_VideoDecodeThreadCreated;
+OSThread daMP_VideoDecodeThread;
+u8 daMP_VideoDecodeThreadStack[0x64000];
+
+OSMessageQueue daMP_FreeTextureSetQueue;
+OSMessageQueue daMP_DecodedTextureSetQueue;
+OSMessage daMP_FreeTextureSetMessage[3];
+OSMessage daMP_DecodedTextureSetMessage[3];
+
+BOOL daMP_First;
+
+BOOL daMP_AudioDecodeThreadCreated;
+OSThread daMP_AudioDecodeThread;
+u8 daMP_AudioDecodeThreadStack[0x64000];
+OSMessageQueue daMP_FreeAudioBufferQueue;
+OSMessageQueue daMP_DecodedAudioBufferQueue;
+OSMessage daMP_FreeAudioBufferMessage[3];
+OSMessage daMP_DecodedAudioBufferMessage[3];
+
+BOOL daMP_Initialized;
+u8 daMP_WorkBuffer[0x40];
+OSMessageQueue daMP_PrepareReadyQueue;
+OSMessageQueue daMP_UsedTextureSetQueue;
+OSMessage daMP_PrepareReadyMessage;
+OSMessage daMP_UsedTextureSetMessage[3];
+VIRetraceCallback daMP_OldVIPostCallback;
+
+u32 daMP_SoundBufferIndex;
+u32 daMP_OldAIDCallback;
+
+s16 daMP_SoundBuffer[0x460][2];
+
+u32 daMP_DrawPosX;
+u32 daMP_DrawPosY;
+THPVideoInfo daMP_videoInfo;
+THPAudioInfo daMP_audioInfo;
+
+BOOL daMP_Fail_alloc;
+u16 daMP_backup_FrameRate;
+u8 daMP_backup_vfilter[7];
+
+daMP_Dlst_base_c daMP_c_Dlst_base;
extern "C" {
@@ -143,56 +227,99 @@ void THPInit() {
/* Nonmatching */
}
-/* 000031D4-00003208 .text OSInitFastCast */
-void OSInitFastCast() {
- /* Nonmatching */
-}
+// /* 000031D4-00003208 .text OSInitFastCast */
+// void OSInitFastCast() {
+// /* Nonmatching */
+// }
};
/* 00003208-0000323C .text daMP_PopReadedBuffer__Fv */
-void daMP_PopReadedBuffer() {
- /* Nonmatching */
+void* daMP_PopReadedBuffer() {
+ OSMessage msg;
+ OSReceiveMessage(&daMP_ReadedBufferQueue, &msg, 1);
+ return msg;
}
/* 0000323C-0000326C .text daMP_PushReadedBuffer__FPv */
-void daMP_PushReadedBuffer(void*) {
- /* Nonmatching */
+void daMP_PushReadedBuffer(void* r3) {
+ OSMessage msg = (OSMessage)r3;
+ OSSendMessage(&daMP_ReadedBufferQueue, msg, 1);
}
/* 0000326C-000032A0 .text daMP_PopFreeReadBuffer__Fv */
-void daMP_PopFreeReadBuffer() {
- /* Nonmatching */
+daMP_THPReadBuffer* daMP_PopFreeReadBuffer() {
+ OSMessage msg;
+ OSReceiveMessage(&daMP_FreeReadBufferQueue, &msg, 1);
+ return (daMP_THPReadBuffer*)msg;
}
/* 000032A0-000032D0 .text daMP_PushFreeReadBuffer__FPv */
-void daMP_PushFreeReadBuffer(void*) {
- /* Nonmatching */
+void daMP_PushFreeReadBuffer(void* r3) {
+ OSMessage msg = (OSMessage)r3;
+ OSSendMessage(&daMP_FreeReadBufferQueue, msg, 1);
}
/* 000032D0-00003304 .text daMP_PopReadedBuffer2__Fv */
-void daMP_PopReadedBuffer2() {
- /* Nonmatching */
+void* daMP_PopReadedBuffer2() {
+ OSMessage msg;
+ OSReceiveMessage(&daMP_ReadedBufferQueue2, &msg, 1);
+ return msg;
}
/* 00003304-00003334 .text daMP_PushReadedBuffer2__FPv */
-void daMP_PushReadedBuffer2(void*) {
- /* Nonmatching */
+void daMP_PushReadedBuffer2(void* r3) {
+ OSMessage msg = (OSMessage)r3;
+ OSSendMessage(&daMP_ReadedBufferQueue2, msg, 1);
}
/* 00003334-0000336C .text daMP_ReadThreadStart__Fv */
void daMP_ReadThreadStart() {
- /* Nonmatching */
+ if (daMP_ReadThreadCreated) {
+ OSResumeThread(&daMP_ReadThread);
+ }
}
/* 0000336C-000033B0 .text daMP_ReadThreadCancel__Fv */
void daMP_ReadThreadCancel() {
- /* Nonmatching */
+ if (daMP_ReadThreadCreated) {
+ OSCancelThread(&daMP_ReadThread);
+ daMP_ReadThreadCreated = FALSE;
+ }
}
/* 000033B0-00003494 .text daMP_Reader__FPv */
void daMP_Reader(void*) {
- /* Nonmatching */
+ /* Nonmatching - regalloc */
+ s32 r28 = 0;
+ s32 r30 = daMP_ActivePlayer.mB8;
+ s32 r29 = daMP_ActivePlayer.mBC;
+ while (true) {
+ daMP_THPReadBuffer* readBuf = daMP_PopFreeReadBuffer();
+ int readBytes = DVDReadPrio(&daMP_ActivePlayer.mFileInfo, readBuf->m00, r29, r30, 2);
+ if (readBytes != r29) {
+ if (readBytes == -1) {
+ daMP_ActivePlayer.mA8 = -1;
+ }
+ if (r28 == 0) {
+ daMP_PrepareReady(0);
+ }
+ OSSuspendThread(&daMP_ReadThread);
+ }
+ readBuf->m04 = r28;
+ daMP_PushReadedBuffer(readBuf);
+ r30 += r29;
+ r29 = daMP_NEXT_READ_SIZE(readBuf);
+ u32 r0 = (r28 + daMP_ActivePlayer.mC0) % daMP_ActivePlayer.m50;
+ if (r0 == daMP_ActivePlayer.m50 - 1) {
+ if (daMP_ActivePlayer.mA6 & 0x01) {
+ r30 = daMP_ActivePlayer.m64;
+ } else {
+ OSSuspendThread(&daMP_ReadThread);
+ }
+ }
+ r28++;
+ }
}
/* 000034A0-00003550 .text daMP_CreateReadThread__Fl */
@@ -201,23 +328,32 @@ void daMP_CreateReadThread(s32) {
}
/* 00003550-00003584 .text daMP_PopFreeTextureSet__Fv */
-void daMP_PopFreeTextureSet() {
- /* Nonmatching */
+OSMessage daMP_PopFreeTextureSet() {
+ OSMessage msg;
+ OSReceiveMessage(&daMP_FreeTextureSetQueue, &msg, 1);
+ return msg;
}
/* 00003584-000035B4 .text daMP_PushFreeTextureSet__FPv */
-void daMP_PushFreeTextureSet(void*) {
- /* Nonmatching */
+void daMP_PushFreeTextureSet(void* r3) {
+ OSMessage msg = (OSMessage)r3;
+ OSSendMessage(&daMP_FreeTextureSetQueue, msg, 0);
}
/* 000035B4-000035F8 .text daMP_PopDecodedTextureSet__Fl */
-void daMP_PopDecodedTextureSet(s32) {
- /* Nonmatching */
+void* daMP_PopDecodedTextureSet(s32 r3) {
+ OSMessage msg;
+ if (OSReceiveMessage(&daMP_DecodedTextureSetQueue, &msg, r3) == TRUE) {
+ return msg;
+ } else {
+ return NULL;
+ }
}
/* 000035F8-00003628 .text daMP_PushDecodedTextureSet__FPv */
-void daMP_PushDecodedTextureSet(void*) {
- /* Nonmatching */
+void daMP_PushDecodedTextureSet(void* r3) {
+ OSMessage msg = (OSMessage)r3;
+ OSSendMessage(&daMP_DecodedTextureSetQueue, msg, 1);
}
/* 00003628-00003760 .text daMP_VideoDecode__FP18daMP_THPReadBuffer */
@@ -242,12 +378,17 @@ void daMP_CreateVideoDecodeThread(s32, u8*) {
/* 00003A74-00003AAC .text daMP_VideoDecodeThreadStart__Fv */
void daMP_VideoDecodeThreadStart() {
- /* Nonmatching */
+ if (daMP_VideoDecodeThreadCreated) {
+ OSResumeThread(&daMP_VideoDecodeThread);
+ }
}
/* 00003AAC-00003AF0 .text daMP_VideoDecodeThreadCancel__Fv */
void daMP_VideoDecodeThreadCancel() {
- /* Nonmatching */
+ if (daMP_VideoDecodeThreadCreated) {
+ OSCancelThread(&daMP_VideoDecodeThread);
+ daMP_VideoDecodeThreadCreated = FALSE;
+ }
}
/* 00003AF0-00003B24 .text daMP_PopFreeAudioBuffer__Fv */
@@ -292,12 +433,17 @@ void daMP_CreateAudioDecodeThread(s32, u8*) {
/* 00003E70-00003EA8 .text daMP_AudioDecodeThreadStart__Fv */
void daMP_AudioDecodeThreadStart() {
- /* Nonmatching */
+ if (daMP_AudioDecodeThreadCreated) {
+ OSResumeThread(&daMP_AudioDecodeThread);
+ }
}
/* 00003EA8-00003EEC .text daMP_AudioDecodeThreadCancel__Fv */
void daMP_AudioDecodeThreadCancel() {
- /* Nonmatching */
+ if (daMP_AudioDecodeThreadCreated) {
+ OSCancelThread(&daMP_AudioDecodeThread);
+ daMP_AudioDecodeThreadCreated = FALSE;
+ }
}
/* 00003EEC-00004004 .text daMP_THPGXRestore__Fv */
@@ -396,13 +542,17 @@ void daMP_PlayControl(u32) {
}
/* 00005810-00005850 .text daMP_WaitUntilPrepare__Fv */
-void daMP_WaitUntilPrepare() {
- /* Nonmatching */
+s32 daMP_WaitUntilPrepare() {
+ OSMessage msg;
+ OSReceiveMessage(&daMP_PrepareReadyQueue, &msg, 1);
+ u32 temp = (s32)msg;
+ return (-temp | temp) >> 31; // fakematch? should be temp != 0;
}
/* 00005850-00005880 .text daMP_PrepareReady__Fi */
-void daMP_PrepareReady(int) {
- /* Nonmatching */
+void daMP_PrepareReady(int r3) {
+ OSMessage msg = (OSMessage)r3;
+ OSSendMessage(&daMP_PrepareReadyQueue, msg, 1);
}
/* 00005880-00005B68 .text daMP_THPPlayerPrepare__Flll */
@@ -456,7 +606,7 @@ void daMP_THPPlayerSetVolume(s32, s32) {
}
/* 00005F9C-00006104 .text daMP_ActivePlayer_Init__FPCc */
-void daMP_ActivePlayer_Init(const char*) {
+BOOL daMP_ActivePlayer_Init(const char*) {
/* Nonmatching */
}
@@ -476,68 +626,107 @@ void daMP_ActivePlayer_Draw() {
}
/* 00006230-000062F0 .text daMP_Get_MovieRestFrame__Fv */
-void daMP_Get_MovieRestFrame() {
+u32 daMP_Get_MovieRestFrame() {
/* Nonmatching */
}
/* 000062F0-00006370 .text daMP_Set_PercentMovieVolume__Ff */
-void daMP_Set_PercentMovieVolume(float) {
+u32 daMP_Set_PercentMovieVolume(f32) {
/* Nonmatching */
}
/* 00006370-00006390 .text daMP_c_Get_arg_data__6daMP_cFv */
-void daMP_c::daMP_c_Get_arg_data() {
- /* Nonmatching */
+u32 daMP_c::daMP_c_Get_arg_data() {
+ return fopAcM_GetParam(this);
}
/* 00006390-00006500 .text daMP_c_Init__6daMP_cFv */
-void daMP_c::daMP_c_Init() {
- /* Nonmatching */
+int daMP_c::daMP_c_Init() {
+ /* Nonmatching */
+ static u8 set_vfilter[7] = {
+ 0x00, 0x00, 0x15, 0x16, 0x15, 0x00, 0x00,
+ };
+ static const char* filename_table[2] = {
+ "/thpdemo/title_loop.thp",
+ "/thpdemo/end_st_epilogue.thp",
+ };
+
+ daMP_backup_FrameRate = mDoGph_gInf_c::getFrameRate();
+ mDoGph_gInf_c::setFrameRate(1);
+ GXRenderModeObj* renderMode = JUTVideo::getManager()->getRenderMode();
+ // daMP_backup_vfilter = renderMode->vfilter;
+ // renderMode->vfilter = set_vfilter;
+ daMP_Fail_alloc = FALSE;
+ mpCallBack1 = daMP_Get_MovieRestFrame;
+ mpCallBack2 = daMP_Set_PercentMovieVolume;
+ int r4 = daMP_c_Get_arg_data();
+ if (r4 >= 0 && r4 < 2) {
+ if (filename_table[r4] == NULL || !daMP_ActivePlayer_Init(filename_table[r4])) {
+ daMP_Fail_alloc = TRUE;
+ return cPhs_COMPLEATE_e;
+ }
+ } else {
+ OSReport("\x1B[43;30mムービーの番号がおかしい %d %d\n\x1B[m", r4, 2);
+ if (!daMP_ActivePlayer_Init(filename_table[0])) {
+ daMP_Fail_alloc = TRUE;
+ }
+ }
+ return cPhs_COMPLEATE_e;
}
/* 00006580-000065F8 .text daMP_c_Finish__6daMP_cFv */
-void daMP_c::daMP_c_Finish() {
+BOOL daMP_c::daMP_c_Finish() {
/* Nonmatching */
}
/* 000065F8-0000661C .text daMP_c_Main__6daMP_cFv */
-void daMP_c::daMP_c_Main() {
- /* Nonmatching */
+BOOL daMP_c::daMP_c_Main() {
+ daMP_ActivePlayer_Main();
+ return TRUE;
}
/* 0000661C-0000663C .text draw__16daMP_Dlst_base_cFv */
void daMP_Dlst_base_c::draw() {
- /* Nonmatching */
+ daMP_ActivePlayer_Draw();
}
/* 0000663C-00006668 .text daMP_c_Draw__6daMP_cFv */
-void daMP_c::daMP_c_Draw() {
- /* Nonmatching */
+BOOL daMP_c::daMP_c_Draw() {
+ dComIfGd_set2DOpa(&daMP_c_Dlst_base);
+ return TRUE;
}
/* 000066C4-00006728 .text daMP_c_Callback_Init__6daMP_cFP10fopAc_ac_c */
-int daMP_c::daMP_c_Callback_Init(fopAc_ac_c*) {
- /* Nonmatching */
+int daMP_c::daMP_c_Callback_Init(fopAc_ac_c* i_this) {
+ fopAcM_SetupActor(i_this, daMP_c);
+ daMP_c* a_this = (daMP_c*)i_this;
+ return a_this->daMP_c_Init();
}
/* 00006728-00006748 .text daMP_c_Callback_Finish__6daMP_cFP6daMP_c */
-int daMP_c::daMP_c_Callback_Finish(daMP_c*) {
- /* Nonmatching */
+BOOL daMP_c::daMP_c_Callback_Finish(daMP_c* i_this) {
+ return i_this->daMP_c_Finish();
}
/* 00006748-00006780 .text daMP_c_Callback_Main__6daMP_cFP6daMP_c */
-int daMP_c::daMP_c_Callback_Main(daMP_c*) {
- /* Nonmatching */
+BOOL daMP_c::daMP_c_Callback_Main(daMP_c* i_this) {
+ if (daMP_Fail_alloc) {
+ return TRUE;
+ }
+ return i_this->daMP_c_Main();
}
/* 00006780-000067B8 .text daMP_c_Callback_Draw__6daMP_cFP6daMP_c */
-int daMP_c::daMP_c_Callback_Draw(daMP_c*) {
- /* Nonmatching */
+BOOL daMP_c::daMP_c_Callback_Draw(daMP_c* i_this) {
+ if (daMP_Fail_alloc) {
+ return TRUE;
+ }
+ return i_this->daMP_c_Draw();
}
/* 000067B8-000067C0 .text daMP_Callback_Dummy__FP6daMP_c */
-static int daMP_Callback_Dummy(daMP_c*) {
- /* Nonmatching */
+static BOOL daMP_Callback_Dummy(daMP_c* i_this) {
+ return TRUE;
}
static actor_method_class daMP_METHODS = {
diff --git a/src/d/d_bg_s_acch.cpp b/src/d/d_bg_s_acch.cpp
index 6a6e63f8..b308a10e 100644
--- a/src/d/d_bg_s_acch.cpp
+++ b/src/d/d_bg_s_acch.cpp
@@ -460,6 +460,6 @@ f32 dBgS_Acch::GetWallAddY(Vec& vec, int) {
}
static void dummy2() {
- OSReport("\033[43;30m**************************************\ndBgS_ObjAcch::copy constructer called.\n**************************************\n\033[m");
+ OSReport("\x1B[43;30m**************************************\ndBgS_ObjAcch::copy constructer called.\n**************************************\n\033[m");
dBgS_ObjAcch acch; // fakematch to get dBgS_ObjAcch's vtable and destructor to show up in this TU
}