diff options
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/__osMalloc.c | 2 | ||||
| -rw-r--r-- | src/code/code_800D31A0.c | 2 | ||||
| -rw-r--r-- | src/code/fault.c | 27 | ||||
| -rw-r--r-- | src/code/gfxprint.c | 2 | ||||
| -rw-r--r-- | src/code/padmgr.c | 6 | ||||
| -rw-r--r-- | src/code/printutils.c | 14 | ||||
| -rw-r--r-- | src/code/sched.c | 2 | ||||
| -rw-r--r-- | src/code/sleep.c | 33 | ||||
| -rw-r--r-- | src/code/z_debug.c | 2 | ||||
| -rw-r--r-- | src/code/z_demo.c | 8 | ||||
| -rw-r--r-- | src/code/z_parameter.c | 7 | ||||
| -rw-r--r-- | src/code/z_room.c | 14 |
12 files changed, 80 insertions, 39 deletions
diff --git a/src/code/__osMalloc.c b/src/code/__osMalloc.c index d5501c663..6b4d84eaf 100644 --- a/src/code/__osMalloc.c +++ b/src/code/__osMalloc.c @@ -711,7 +711,7 @@ void __osDisplayArena(Arena* arena) { iter->size); if (!iter->isFree) { - osSyncPrintf(" [%016llu:%2d:%s:%d]", (iter->time * 64ll) / 3ull, iter->threadId, + osSyncPrintf(" [%016llu:%2d:%s:%d]", OS_CYCLES_TO_NSEC(iter->time), iter->threadId, iter->filename ? iter->filename : "**NULL**", iter->line); } diff --git a/src/code/code_800D31A0.c b/src/code/code_800D31A0.c index 3f7382440..54201e35f 100644 --- a/src/code/code_800D31A0.c +++ b/src/code/code_800D31A0.c @@ -9,7 +9,7 @@ u32 D_8012DBC0 = false; void func_800D31A0() { osSyncPrintf(VT_FGCOL(RED) "\n**** Freeze!! ****\n" VT_RST); while (true) { - func_800FF4AC(1000); // msleep + Sleep_Msec(1000); } } diff --git a/src/code/fault.c b/src/code/fault.c index 05bee87d5..92f252647 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -2,6 +2,7 @@ #include <global.h> #include <alloca.h> #include <vt.h> +#include <PR/os_cont.h> // data const char* sExceptionNames[] = { @@ -42,7 +43,7 @@ FaultThreadStruct gFaultStruct; void Fault_SleepImpl(u32 duration) { u64 value = (duration * OS_CPU_COUNTER) / 1000ull; - func_800FF3A0(value); + Sleep_Cycles(value); } void Fault_ClientProcessThread(FaultClientContext* ctx) { @@ -582,7 +583,7 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) { count--; Fault_Sleep(0x10); Fault_UpdatePadImpl(); - if (!~(curInput->padPressed | ~0x20)) { + if (!~(curInput->padPressed | ~L_TRIG)) { sFaultStructPtr->faultActive = false; } } @@ -592,40 +593,40 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) { Fault_UpdatePadImpl(); } while (curInput->padPressed == 0); - if (!~(curInput->padPressed | ~0x1000)) { + if (!~(curInput->padPressed | ~START_BUTTON)) { return; } - if (!~(curInput->raw.pad | ~0x8000)) { + if (!~(curInput->raw.pad | ~A_BUTTON)) { return; } off = 0x10; - if (!~(curInput->raw.pad | ~0x2000)) { + if (!~(curInput->raw.pad | ~Z_TRIG)) { off = 0x100; } - if (!~(curInput->raw.pad | ~0x4000)) { + if (!~(curInput->raw.pad | ~B_BUTTON)) { off <<= 8; } - if (!~(curInput->raw.pad | ~0x800)) { + if (!~(curInput->raw.pad | ~U_JPAD)) { addr -= off; } - if (!~(curInput->raw.pad | ~0x400)) { + if (!~(curInput->raw.pad | ~D_JPAD)) { addr += off; } - if (!~(curInput->raw.pad | ~0x8)) { + if (!~(curInput->raw.pad | ~U_CBUTTONS)) { addr = pc; } - if (!~(curInput->raw.pad | ~0x4)) { + if (!~(curInput->raw.pad | ~D_CBUTTONS)) { addr = sp; } - if (!~(curInput->raw.pad | ~0x2)) { + if (!~(curInput->raw.pad | ~L_CBUTTONS)) { addr = unk0; } - if (!~(curInput->raw.pad | ~0x1)) { + if (!~(curInput->raw.pad | ~R_CBUTTONS)) { addr = unk1; } - if (!~(curInput->raw.pad | ~0x20)) { + if (!~(curInput->raw.pad | ~L_TRIG)) { break; } } diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c index 7d17af790..0555e1cec 100644 --- a/src/code/gfxprint.c +++ b/src/code/gfxprint.c @@ -388,7 +388,7 @@ Gfx* GfxPrint_Close(GfxPrint* this) { } void GfxPrint_VPrintf(GfxPrint* this, const char* fmt, va_list args) { - func_800FF340(&this->callback, fmt, args); + PrintUtils_VPrintf(&this->callback, fmt, args); } void GfxPrint_Printf(GfxPrint* this, const char* fmt, ...) { diff --git a/src/code/padmgr.c b/src/code/padmgr.c index dc3e9c472..ac345c86b 100644 --- a/src/code/padmgr.c +++ b/src/code/padmgr.c @@ -233,7 +233,7 @@ void PadMgr_Run(PadMgr* padmgr) { while (bVar2 == 0) { if ((D_8012D280 > 2) && (padmgr->queue3.validCount == 0)) { // EUC-JP: コントローラスレッドイベント待ち | Waiting for controller thread event - osSyncPrintf("コントローラスレッドイベント待ち %lld\n", (osGetTime() * 64) / 3000); + osSyncPrintf("コントローラスレッドイベント待ち %lld\n", OS_CYCLES_TO_USEC(osGetTime())); } osRecvMesg(&padmgr->queue3, &mesg, OS_MESG_BLOCK); @@ -242,13 +242,13 @@ void PadMgr_Run(PadMgr* padmgr) { switch (*mesg) { case OS_SC_RETRACE_MSG: if (D_8012D280 > 2) { - osSyncPrintf("padmgr_HandleRetraceMsg START %lld\n", (osGetTime() * 64) / 3000); + osSyncPrintf("padmgr_HandleRetraceMsg START %lld\n", OS_CYCLES_TO_USEC(osGetTime())); } func_800C7C14(padmgr); if (D_8012D280 > 2) { - osSyncPrintf("padmgr_HandleRetraceMsg END %lld\n", (osGetTime() * 64) / 3000); + osSyncPrintf("padmgr_HandleRetraceMsg END %lld\n", OS_CYCLES_TO_USEC(osGetTime())); } break; diff --git a/src/code/printutils.c b/src/code/printutils.c new file mode 100644 index 000000000..e1e70f076 --- /dev/null +++ b/src/code/printutils.c @@ -0,0 +1,14 @@ +#include <global.h> + +void PrintUtils_VPrintf(char** arg0, const char* fmt, va_list args) +{ + _Printf(*arg0, arg0, fmt, args); +} + +void PrintUtils_Printf(void* arg0, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + + PrintUtils_VPrintf(arg0, fmt, args); +} diff --git a/src/code/sched.c b/src/code/sched.c index af971ff2e..b7306425d 100644 --- a/src/code/sched.c +++ b/src/code/sched.c @@ -35,7 +35,7 @@ void func_800C8910(SchedContext* sc) { osSpTaskYield(); if (D_8012D290 != 0) { - osSyncPrintf("%08d:osSpTaskYield\n", (u32)((osGetTime() * 64) / 3000)); + osSyncPrintf("%08d:osSpTaskYield\n", (u32)(OS_CYCLES_TO_USEC(osGetTime()))); } } } diff --git a/src/code/sleep.c b/src/code/sleep.c new file mode 100644 index 000000000..f83ccc070 --- /dev/null +++ b/src/code/sleep.c @@ -0,0 +1,33 @@ +#include <global.h> + +void Sleep_Cycles(OSTime cycles) +{ + OSMesgQueue mq; + OSMesg msg; + OSTimer timer; + + osCreateMesgQueue(&mq, &msg, OS_MESG_BLOCK); + osSetTimer(&timer, cycles, 0, &mq, NULL); + osRecvMesg(&mq, NULL, OS_MESG_BLOCK); +} + +void Sleep_Nsec(u32 nsec) +{ + Sleep_Cycles(OS_NSEC_TO_CYCLES(nsec)); +} + +void Sleep_Usec(u32 usec) +{ + Sleep_Cycles(OS_USEC_TO_CYCLES(usec)); +} + +// originally "msleep" +void Sleep_Msec(u32 ms) +{ + Sleep_Cycles((ms * OS_CPU_COUNTER) / 1000ull); +} + +void Sleep_Sec(u32 sec) +{ + Sleep_Cycles((sec * OS_CPU_COUNTER)); +} diff --git a/src/code/z_debug.c b/src/code/z_debug.c index adda7974b..cb21e0125 100644 --- a/src/code/z_debug.c +++ b/src/code/z_debug.c @@ -114,7 +114,7 @@ void func_8006390C(Input* input) { s32 i; regGroup = (gGameInfo->regGroup * REG_PAGES + gGameInfo->regPage) * REG_PER_PAGE - REG_PER_PAGE; - dpad = input->raw.pad & 0xF00; + dpad = input->raw.pad & (U_JPAD | L_JPAD | R_JPAD | D_JPAD); if (!~(input->raw.pad | ~L_TRIG) || !~(input->raw.pad | ~R_TRIG) || !~(input->raw.pad | ~START_BUTTON)) { input_combo = inputCombos; for (i = 0; i < REG_GROUPS; i++) { diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 5735a5689..f43eb59f0 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -444,15 +444,15 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt if ((gSaveContext.game_mode != 0) && (gSaveContext.game_mode != 3) && (globalCtx->sceneNum != SCENE_SPOT00) && (csCtx->frames > 20) && - (!~(globalCtx->state.input[0].padPressed | 0xFFFF7FFF) || !~(globalCtx->state.input[0].padPressed | -0x4001) || - !~(globalCtx->state.input[0].padPressed | -0x1001)) && + (!~(globalCtx->state.input[0].padPressed | ~A_BUTTON) || !~(globalCtx->state.input[0].padPressed | ~B_BUTTON) || + !~(globalCtx->state.input[0].padPressed | ~START_BUTTON)) && (gSaveContext.file_num != 0xFEDC) && (globalCtx->sceneLoadFlag == 0)) { Audio_PlaySoundGeneral(NA_SE_SY_PIECE_OF_HEART, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); temp = 1; } if ((csCtx->frames == cmd->startFrame) || (temp != 0) || - ((csCtx->frames > 20) && (!~(globalCtx->state.input[0].padPressed | -0x1001)) && + ((csCtx->frames > 20) && (!~(globalCtx->state.input[0].padPressed | ~START_BUTTON)) && (gSaveContext.file_num != 0xFEDC))) { csCtx->state = CS_STATE_UNSKIPPABLE_EXEC; func_800F68BC(0); @@ -1524,7 +1524,7 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, return; } - if (!~(globalCtx->state.input[0].padPressed | -0x101)) { + if (!~(globalCtx->state.input[0].padPressed | ~R_JPAD)) { csCtx->state = CS_STATE_UNSKIPPABLE_INIT; return; } diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index d94f95a3a..19e5915aa 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -1,6 +1,7 @@ #include <ultra64.h> #include <global.h> #include <vt.h> +#include <PR/os_cont.h> typedef struct { /* 0x00 */ u8 scene; @@ -3981,13 +3982,13 @@ void Interface_Update(GlobalContext* globalCtx) { u16 action; Input* input = &globalCtx->state.input[2]; - if (!~(input->padPressed | -0x201)) { + if (!~(input->padPressed | ~L_JPAD)) { gSaveContext.language = 0; osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language); - } else if (!~(input->padPressed | -0x801)) { + } else if (!~(input->padPressed | ~U_JPAD)) { gSaveContext.language = 1; osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language); - } else if (!~(input->padPressed | -0x101)) { + } else if (!~(input->padPressed | ~R_JPAD)) { gSaveContext.language = 2; osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language); } diff --git a/src/code/z_room.c b/src/code/z_room.c index 690ce974c..dd181d606 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -230,11 +230,7 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) { #define JPEG_MARKER 0xFFD8FFE0 -#ifdef NON_MATCHING -// long multiplication by 64 doesn't quite match s32 func_80096238(void* data) { - OSTime timeBefore; - OSTime timeAfter; OSTime time; if (*(u32*)data == JPEG_MARKER) { @@ -245,13 +241,12 @@ s32 func_80096238(void* data) { // Translates to: "WORK BUFFER ADDRESS (Z BUFFER) %08x" osSyncPrintf("ワークバッファアドレス(Zバッファ)%08x\n", gZBuffer); - timeBefore = osGetTime(); + time = osGetTime(); if (!func_8006E418(data, gZBuffer, gGfxSPTaskOutputBuffer, sizeof(gGfxSPTaskOutputBuffer))) { - timeAfter = osGetTime(); - time = ((timeAfter - timeBefore) * 64) / 3000; + time = osGetTime() - time; // Translates to: "SUCCESS... I THINK. time = %6.3f ms" - osSyncPrintf("成功…だと思う。 time = %6.3f ms \n", (f64)(time / 1000.0f)); + osSyncPrintf("成功…だと思う。 time = %6.3f ms \n", (f64)(OS_CYCLES_TO_USEC(time) / 1000.0f)); // Translates to: "WRITING BACK TO ORIGINAL ADDRESS FROM WORK BUFFER." osSyncPrintf("ワークバッファから元のアドレスに書き戻します。\n"); // Translates to: "IF THE ORIGINAL BUFFER SIZE ISN'T AT LEAST 150KB, IT WILL BE OUT OF CONTROL." @@ -266,9 +261,6 @@ s32 func_80096238(void* data) { return 0; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_room/func_80096238.s") -#endif #ifdef NON_MATCHING // pointer arithmetic doesn't quite match |
