summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
Diffstat (limited to 'src/code')
-rw-r--r--src/code/__osMalloc.c2
-rw-r--r--src/code/code_800D31A0.c2
-rw-r--r--src/code/fault.c27
-rw-r--r--src/code/gfxprint.c2
-rw-r--r--src/code/padmgr.c6
-rw-r--r--src/code/printutils.c14
-rw-r--r--src/code/sched.c2
-rw-r--r--src/code/sleep.c33
-rw-r--r--src/code/z_debug.c2
-rw-r--r--src/code/z_demo.c8
-rw-r--r--src/code/z_parameter.c7
-rw-r--r--src/code/z_room.c14
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