From b8f0332372ac35834e9106fa3404caa4858a01eb Mon Sep 17 00:00:00 2001 From: n64 Date: Mon, 30 Aug 2021 22:22:02 +0200 Subject: [PATCH] Add stub for rumble pc implementation --- src/game/rumble_init.c | 4 ++++ src/pc/ultra_reimplementation.c | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/game/rumble_init.c b/src/game/rumble_init.c index 6c89f86..cdabf24 100644 --- a/src/game/rumble_init.c +++ b/src/game/rumble_init.c @@ -238,6 +238,7 @@ void func_sh_8024CA04(void) { gCurrRumbleSettings.unk0C = 4; } +#ifdef TARGET_N64 static void thread6_rumble_loop(UNUSED void *a0) { OSMesg msg; @@ -266,6 +267,7 @@ static void thread6_rumble_loop(UNUSED void *a0) { } } } +#endif void cancel_rumble(void) { sRumblePakActive = osMotorInit(&gSIEventMesgQueue, &gRumblePakPfs, gPlayer1Controller->port) < 1; @@ -285,9 +287,11 @@ void cancel_rumble(void) { } void create_thread_6(void) { +#ifdef TARGET_N64 osCreateMesgQueue(&gRumbleThreadVIMesgQueue, gRumbleThreadVIMesgBuf, 1); osCreateThread(&gRumblePakThread, 6, thread6_rumble_loop, NULL, gThread6Stack + 0x2000, 30); osStartThread(&gRumblePakThread); +#endif } void rumble_thread_update_vi(void) { diff --git a/src/pc/ultra_reimplementation.c b/src/pc/ultra_reimplementation.c index 2b28ea8..2d8811a 100644 --- a/src/pc/ultra_reimplementation.c +++ b/src/pc/ultra_reimplementation.c @@ -32,7 +32,7 @@ s32 osJamMesg(UNUSED OSMesgQueue *mq, UNUSED OSMesg msg, UNUSED s32 flag) { return 0; } s32 osSendMesg(UNUSED OSMesgQueue *mq, UNUSED OSMesg msg, UNUSED s32 flag) { -#ifdef VERSION_EU +#if defined(VERSION_EU) || defined(VERSION_SH) s32 index; if (mq->validCount >= mq->msgCount) { return -1; @@ -44,7 +44,7 @@ s32 osSendMesg(UNUSED OSMesgQueue *mq, UNUSED OSMesg msg, UNUSED s32 flag) { return 0; } s32 osRecvMesg(UNUSED OSMesgQueue *mq, UNUSED OSMesg *msg, UNUSED s32 flag) { -#if VERSION_EU +#if defined(VERSION_EU) || defined(VERSION_SH) if (mq->validCount == 0) { return -1; } @@ -185,3 +185,32 @@ s32 osEepromLongWrite(UNUSED OSMesgQueue *mq, u8 address, u8 *buffer, int nbytes #endif return ret; } + +s32 gNumVblanks; + +s32 osMotorInit(UNUSED OSMesgQueue *mq, UNUSED void *pfs, UNUSED int channel) { + return 0; +} + +s32 osMotorStart(UNUSED void *pfs) { + return 0; +} + +s32 osMotorStop(UNUSED void *pfs) { + return 0; +} + +OSPiHandle *osCartRomInit(void) { + static OSPiHandle handle; + return &handle; +} + +OSPiHandle *osDriveRomInit(void) { + static OSPiHandle handle; + return &handle; +} + +s32 osEPiStartDma(UNUSED OSPiHandle *pihandle, OSIoMesg *mb, UNUSED s32 direction) { + memcpy(mb->dramAddr, (const void *) mb->devAddr, mb->size); + osSendMesg(mb->hdr.retQueue, mb, OS_MESG_NOBLOCK); +}