diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c969792d..cd11f4574 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") include(FindFontconfig) if (WIN32) -include(cmake/automate-vcpkg.cmake) +include(libultraship/cmake/automate-vcpkg.cmake) # Forced to use MSVC set(MSVC ON) @@ -84,17 +84,19 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/racing ${CMAKE_CURRENT_SOURCE_DIR}/src/ending + ${CMAKE_CURRENT_SOURCE_DIR}/src/data + ${CMAKE_CURRENT_SOURCE_DIR}/src/buffers + ${CMAKE_CURRENT_SOURCE_DIR}/src/audio + ${CMAKE_CURRENT_SOURCE_DIR}/src/debug ) # Collect source files to build the executable -file(GLOB ALL_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} +file(GLOB ALL_FILES_ROOT RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/*.c" "src/*.h" ) file(GLOB_RECURSE ALL_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - "src/actors/*.c" - "src/actors/*.h" "src/buffers/*.c" "src/buffers/*.h" "src/data/*.c" @@ -113,6 +115,8 @@ file(GLOB_RECURSE ALL_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "assets/code" ) +list(APPEND ALL_FILES ${ALL_FILES_ROOT}) + # Exclude specific files from the ALL_FILES list list(FILTER ALL_FILES EXCLUDE REGEX ".*.inc.c") list(FILTER ALL_FILES EXCLUDE REGEX "./src/debug/crash_screen_enhancement.c") diff --git a/asm/os/parameters.s b/asm/os/parameters.s index f561f175d..0bdf0ee86 100644 --- a/asm/os/parameters.s +++ b/asm/os/parameters.s @@ -17,7 +17,7 @@ nop .endif .text -gsymbol osTvType 0x80000300 +# gsymbol osTvType 0x80000300 gsymbol osRomType 0x80000304 gsymbol osRomBase 0x80000308 gsymbol osResetType 0x8000030C diff --git a/include/mk64.h b/include/mk64.h index ea1a65b63..02fdeb9f3 100644 --- a/include/mk64.h +++ b/include/mk64.h @@ -1,6 +1,8 @@ #ifndef MK64_H #define MK64_H +#include + /** * @file mk64.h * Global header for mk64 diff --git a/include/stubs.h b/include/stubs.h new file mode 100644 index 000000000..4d76dd88d --- /dev/null +++ b/include/stubs.h @@ -0,0 +1,7 @@ +#include + + +extern u32 osTvType; +extern u32 osResetType; + +extern u8 osAppNmiBuffer[64]; diff --git a/src/audio/external.c b/src/audio/external.c index ead0d88eb..cdbfb9647 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -1,4 +1,5 @@ #include +#include #include #include #include diff --git a/src/audio/external.h b/src/audio/external.h index 42c8ab4c5..7e36ee965 100644 --- a/src/audio/external.h +++ b/src/audio/external.h @@ -1,7 +1,8 @@ #ifndef AUDIO_EXTERNAL_H #define AUDIO_EXTERNAL_H -#include "common_structs.h" +#include +#include #include "camera.h" #define ADSR_STATE_DISABLED 0 diff --git a/src/audio/port_eu.c b/src/audio/port_eu.c index eeb8e983c..ceeaaddb4 100644 --- a/src/audio/port_eu.c +++ b/src/audio/port_eu.c @@ -1,6 +1,6 @@ #include +#include #include -#include #include "audio/synthesis.h" #include "audio/seqplayer.h" @@ -62,7 +62,11 @@ struct SPTask *create_next_audio_frame_task(void) { if ((gAudioFrameCount % gAudioBufferParameters.presetUnk4) != 0) { return NULL; } - osSendMesg(D_800EA3A8, (OSMesg) gAudioFrameCount, 0); + + OSMesg audioMesg; // <-- new + audioMesg.ptr = (void*)gAudioFrameCount; // <-- new + //osSendMesg(D_800EA3A8, (OSMesg) gAudioFrameCount, 0); <-- original + osSendMesg(D_800EA3A8, audioMesg, OS_MESG_NOBLOCK); // <-- new gAudioTaskIndex ^= 1; gCurrAiBufferIndex++; @@ -93,13 +97,13 @@ struct SPTask *create_next_audio_frame_task(void) { gCurrAudioFrameDmaCount = 0; decrease_sample_dma_ttls(); if (osRecvMesg(D_800EA3B0, &sp58, 0) != -1) { - gAudioResetPresetIdToLoad = (u8) (u32) sp58; + //gAudioResetPresetIdToLoad = (u8) (u32) sp58; gAudioResetStatus = 5; } if (gAudioResetStatus != 0) { if (audio_shut_down_and_reset_step() == 0) { if (gAudioResetStatus == 0) { - osSendMesg(D_800EA3B4, (OSMesg) (u32) gAudioResetPresetIdToLoad, OS_MESG_NOBLOCK); + osSendMesg(D_800EA3B4, sp58, OS_MESG_NOBLOCK); } return NULL; } @@ -117,7 +121,7 @@ struct SPTask *create_next_audio_frame_task(void) { gAiBufferLengths[index] = gAudioBufferParameters.maxAiBufferLength; } if (osRecvMesg(D_800EA3AC, &sp54, 0) != -1) { - func_800CBCB0((u32) sp54); + func_800CBCB0((u32) sp54.data16); } gAudioCmd = synthesis_execute((Acmd *) gAudioCmd, &writtenCmds, currAiBuffer, gAiBufferLengths[index]); gAudioRandom = osGetCount() * (gAudioRandom + gAudioFrameCount); @@ -127,17 +131,17 @@ struct SPTask *create_next_audio_frame_task(void) { gAudioTask->msgqueue = NULL; // wtf? writtenCmdsCopy += 0; - gAudioTask->msg = NULL; + gAudioTask->msg.ptr = NULL; task = &gAudioTask->task.t; task->type = M_AUDTASK; task->flags = 0; - task->ucode_boot = rspF3DBootStart; - task->ucode_boot_size = (u8*) rspF3DBootEnd - (u8*) rspF3DBootStart; - task->ucode = rspAspMainStart; - task->ucode_data = rspAspMainDataStart; + //task->ucode_boot = rspF3DBootStart; + //task->ucode_boot_size = (u8*) rspF3DBootEnd - (u8*) rspF3DBootStart; + //task->ucode = rspAspMainStart; + //task->ucode_data = rspAspMainDataStart; task->ucode_size = 0x00001000; - task->ucode_data_size = (rspAspMainDataEnd - rspAspMainDataStart) * sizeof(u64); + //task->ucode_data_size = (rspAspMainDataEnd - rspAspMainDataStart) * sizeof(u64); task->dram_stack = NULL; task->dram_stack_size = 0; task->output_buff = NULL; @@ -267,7 +271,11 @@ void func_800CBC24(void){ if (D_800EA4A4 < test) { D_800EA4A4 = test; } - thing = (OSMesg) ((D_800EA3A0[0] & 0xFF) | ((D_800EA3A4[0] & 0xFF) << 8)); + + OSMesg audioMesg; + audioMesg.ptr = ((D_800EA3A0[0] & 0xFF) | ((D_800EA3A4[0] & 0xFF) << 8)); + + thing = audioMesg; osSendMesg(D_800EA3AC, thing, 0); D_800EA3A4[0] = D_800EA3A0[0]; } diff --git a/src/audio/synthesis.c b/src/audio/synthesis.c index f808e359c..c433e3201 100644 --- a/src/audio/synthesis.c +++ b/src/audio/synthesis.c @@ -378,7 +378,7 @@ Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct curLoadedBook = NULL; note = &gNotes[noteIndex]; flags = 0; - if (noteSubEu->needsInit == TRUE) { + if (noteSubEu->needsInit == true) { flags = A_INIT; synthesisState->restart = 0; synthesisState->samplePosInt = 0; @@ -434,13 +434,13 @@ Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct s32 samplesRemaining; s32 s1; - noteFinished = FALSE; - restart = FALSE; + noteFinished = false; + restart = false; s3 = synthesisState->samplePosInt & 0xF; samplesRemaining = endPos - synthesisState->samplePosInt; nSamplesToProcess = samplesLenAdjusted - nAdpcmSamplesProcessed; - if ((s3 == 0) && (synthesisState->restart == FALSE)) { + if ((s3 == 0) && (synthesisState->restart == false)) { s3 = 16; } @@ -485,11 +485,11 @@ Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct var_t2 = 0; } - if (synthesisState->restart != FALSE) { + if (synthesisState->restart != false) { aSetLoop(cmd++, VIRTUAL_TO_PHYSICAL2(audioBookSample->loop->state)); flags = A_LOOP; - synthesisState->restart = FALSE; + synthesisState->restart = false; } nSamplesInThisIteration = (s1 + a1) - var_s6; s5Aligned = ALIGN(s4 + 16, 4); @@ -541,7 +541,7 @@ Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct func_800B6FB4(updateIndex, noteIndex); } else { if (restart) { - synthesisState->restart = TRUE; + synthesisState->restart = true; synthesisState->samplePosInt = loopInfo->start; } else { synthesisState->samplePosInt += nSamplesToProcess; @@ -559,7 +559,7 @@ Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct aDownsampleHalf(cmd++, ALIGN(samplesLenAdjusted / 2, 3), 0x1A0 + spFC, DMEM_ADDR_RESAMPLED); resampledTempLen = samplesLenAdjusted; noteSamplesDmemAddrBeforeResampling = DMEM_ADDR_RESAMPLED; - if (noteSubEu->finished != FALSE) { + if (noteSubEu->finished != false) { aClearBuffer(cmd++, noteSamplesDmemAddrBeforeResampling + resampledTempLen, samplesLenAdjusted + 0x10); } break; @@ -570,15 +570,15 @@ Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct } break; } - if (noteSubEu->finished != FALSE) { + if (noteSubEu->finished != false) { break; } } } flags = 0; - if (noteSubEu->needsInit == TRUE) { + if (noteSubEu->needsInit == true) { flags = A_INIT; - noteSubEu->needsInit = FALSE; + noteSubEu->needsInit = false; } cmd = final_resample(cmd, synthesisState, inBuf * 2, resamplingRateFixedPoint, noteSamplesDmemAddrBeforeResampling, flags); diff --git a/src/camera.c b/src/camera.c index e82303eb1..6eb5396a5 100644 --- a/src/camera.c +++ b/src/camera.c @@ -7,7 +7,7 @@ #include "camera.h" #include "code_800029B0.h" -#include "math_util.h" +#include "racing/math_util.h" #include "racing/memory.h" #include "waypoints.h" #include "render_player.h" diff --git a/src/camera.h b/src/camera.h index fa0e01e5d..ba3c5926f 100644 --- a/src/camera.h +++ b/src/camera.h @@ -1,6 +1,7 @@ #ifndef CAMERA_H #define CAMERA_H +#include #include "common_structs.h" /** diff --git a/src/code_800029B0.c b/src/code_800029B0.c index d4c3c8747..e7b06f05f 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "code_800029B0.h" #include "memory.h" diff --git a/src/code_80086E70.h b/src/code_80086E70.h index a68e01797..03a1a6eaa 100644 --- a/src/code_80086E70.h +++ b/src/code_80086E70.h @@ -10,7 +10,7 @@ void func_80086EAC(s32, s32, s16); void func_80086EF0(s32); void func_80086F10(s32, s32, SplineData*); void func_80086F60(s32); -s32 func_80086FA4(s32); +bool func_80086FA4(s32); void func_80086FD4(s32); void func_8008701C(s32, s32); s32 func_80087060(s32, s32); @@ -40,11 +40,11 @@ void func_80087844(s32); f32 func_8008786C(f32, f32, f32, f32, f32); s32 func_8008789C(s32, s32); s32 func_80087954(s32, s32); -s32 func_80087A0C(s32, s16, s16, s16, s16); +bool func_80087A0C(s32, s16, s16, s16, s16); s32 func_80087B84(s32, f32, f32); s32 func_80087C48(s32, f32, f32, s32); s32 func_80087D24(s32, f32, f32, f32); -s32 func_80087E08(s32, f32, f32, f32, s16, s32); +bool func_80087E08(s32, f32, f32, f32, s16, s32); s32 func_80087F14(s32, f32, f32, f32, s16, s32); void func_80088038(s32, f32, u16); void func_800880DC(void); @@ -68,14 +68,14 @@ bool is_within_horizontal_distance_of_player(s32, Player*, f32); s32 are_between_distance_2d(s32, Player*, f32, f32); bool is_within_distance_to_player(s32, Player*, f32); bool is_within_horizontal_distance_to_camera(s32, Camera*, f32); -s32 is_within_bounds_to_camera(s32, Camera*, f32, f32); +UNUSED bool is_within_bounds_to_camera(s32, Camera*, f32, f32); bool is_within_distance_to_camera(s32, Camera*, f32); bool has_collided_horizontally_with_player(s32, Player*); bool has_collided_with_player(s32, Player*); bool has_collided_with_player_1d(s32, Player*, f32); bool has_collided_with_player_and_within_height(s32, Player*, f32); f32 func_80088F54(s32, Player*); -s32 func_80088F94(s32, Player*, f32); +UNUSED bool func_80088F94(s32, Player*, f32); void func_80088FF0(Player*); void func_8008900C(Player*); void func_80089020(s32, f32*); @@ -93,7 +93,7 @@ s32 func_80089E18(s32); s32 func_80089F24(s32); s32 func_8008A060(s32, Camera*, u16); s32 func_8008A0B4(s32, Player*, Camera*, u16); -s32 is_object_visible_on_camera(s32, Camera*, u16); +bool is_object_visible_on_camera(s32, Camera*, u16); void func_8008A1D0(s32, s32, s32, s32); void func_8008A2CC(s32, s32, u16); s32 func_8008A364(s32, s32, u16, s32); diff --git a/src/crash_screen.c b/src/crash_screen.c index 1afe58019..bd7d177c2 100644 --- a/src/crash_screen.c +++ b/src/crash_screen.c @@ -198,9 +198,11 @@ void thread9_crash_screen(UNUSED void *arg0) { static OSThread *thread; OSMesg mesg; + OSMesg newMesg; + newMesg.data16 = 16; - osSetEventMesg(12, &D_80162D40, (OSMesg) 16); - osSetEventMesg(10, &D_80162D40, (OSMesg) 16); + osSetEventMesg(12, &D_80162D40, newMesg); + osSetEventMesg(10, &D_80162D40, newMesg); sButtonSequenceIndex = 0; while (true) { @@ -231,7 +233,7 @@ void thread9_crash_screen(UNUSED void *arg0) } #endif #if DEBUG - crash_screen_draw(thread); + //crash_screen_draw(thread); #else crash_screen_draw_info(pFramebuffer, thread); #endif diff --git a/src/effects.h b/src/effects.h index bf114cc17..0210b0c22 100644 --- a/src/effects.h +++ b/src/effects.h @@ -111,7 +111,7 @@ void func_80090178(Player*, s8, Vec3f, Vec3f); void func_80090778(Player*); void func_80090868(Player*); void func_80090970(Player*, s8, s8); -s32 prevent_item_use(Player*); +bool prevent_item_use(Player*); void func_800911B4(Player*, s8); void func_80091298(Player*, s8); diff --git a/src/ending/podium_ceremony_actors.c b/src/ending/podium_ceremony_actors.c index f6d5231c0..1086510c0 100644 --- a/src/ending/podium_ceremony_actors.c +++ b/src/ending/podium_ceremony_actors.c @@ -3,6 +3,7 @@ #include #include #include +#include "../camera.h" #include "main.h" #include "memory.h" #include diff --git a/src/ending/podium_ceremony_actors.h b/src/ending/podium_ceremony_actors.h index 85c3549e5..bd27a1034 100644 --- a/src/ending/podium_ceremony_actors.h +++ b/src/ending/podium_ceremony_actors.h @@ -1,7 +1,8 @@ #ifndef podium_ceremony_actors_H #define podium_ceremony_actors_H -#include "common_structs.h" +#include +#include enum CeremonyActorType { Initial, diff --git a/src/gbiMacro.c b/src/gbiMacro.c index d1f2fefe4..d3b6cd243 100644 --- a/src/gbiMacro.c +++ b/src/gbiMacro.c @@ -1,6 +1,5 @@ #include #include -#include "PR/gu.h" #include "main.h" #include diff --git a/src/main.c b/src/main.c index 74146d418..460d08621 100644 --- a/src/main.c +++ b/src/main.c @@ -2,11 +2,12 @@ #define D_800DC510_AS_U16 #endif #include -#include -#include +#include +#include #include #include #include +#include #include "profiler.h" #include "main.h" @@ -206,7 +207,7 @@ void create_thread(OSThread *thread, OSId id, void (*entry)(void *), void *arg, void isPrintfInit(void); void main_func(void) { #ifdef VERSION_EU - osTvType = TV_TYPE_PAL; + osTvType = OS_TV_PAL; #endif osInitialize(); #ifdef DEBUG @@ -215,7 +216,7 @@ void main_func(void) { create_thread(&gIdleThread, 1, &thread1_idle, NULL, gIdleThreadStack + ARRAY_COUNT(gIdleThreadStack), 100); osStartThread(&gIdleThread); } - +extern OSViMode osViModeTable[]; /** * Initialize hardware, start main thread, then idle. */ @@ -224,7 +225,7 @@ void thread1_idle(void *arg) { #ifdef VERSION_EU osViSetMode(&osViModeTable[OS_VI_PAL_LAN1]); #else // VERSION_US - if (osTvType == TV_TYPE_NTSC) { + if (osTvType == OS_TV_NTSC) { osViSetMode(&osViModeTable[OS_VI_NTSC_LAN1]); } else { osViSetMode(&osViModeTable[OS_VI_MPAL_LAN1]); @@ -248,9 +249,9 @@ void setup_mesg_queues(void) { osCreateMesgQueue(&gDmaMesgQueue, gDmaMesgBuf, ARRAY_COUNT(gDmaMesgBuf)); osCreateMesgQueue(&gSPTaskMesgQueue, gSPTaskMesgBuf, ARRAY_COUNT(gSPTaskMesgBuf)); osCreateMesgQueue(&gIntrMesgQueue, gIntrMesgBuf, ARRAY_COUNT(gIntrMesgBuf)); - osViSetEvent(&gIntrMesgQueue, (OSMesg) MESG_VI_VBLANK, 1); - osSetEventMesg(OS_EVENT_SP, &gIntrMesgQueue, (OSMesg) MESG_SP_COMPLETE); - osSetEventMesg(OS_EVENT_DP, &gIntrMesgQueue, (OSMesg) MESG_DP_COMPLETE); + osViSetEvent(&gIntrMesgQueue, OS_MESG_32(MESG_VI_VBLANK), 1); + osSetEventMesg(OS_EVENT_SP, &gIntrMesgQueue, OS_MESG_32(MESG_SP_COMPLETE)); + osSetEventMesg(OS_EVENT_DP, &gIntrMesgQueue, OS_MESG_32(MESG_DP_COMPLETE)); } void start_sptask(s32 taskType) { @@ -270,27 +271,27 @@ void start_sptask(s32 taskType) { **/ void create_gfx_task_structure(void) { gGfxSPTask->msgqueue = &gGfxVblankQueue; - gGfxSPTask->msg = (OSMesg) 2; + gGfxSPTask->msg = OS_MESG_32(2); gGfxSPTask->task.t.type = M_GFXTASK; gGfxSPTask->task.t.flags = OS_TASK_DP_WAIT; - gGfxSPTask->task.t.ucode_boot = rspF3DBootStart; - gGfxSPTask->task.t.ucode_boot_size = ((u8 *) rspF3DBootEnd - (u8 *) rspF3DBootStart); + // gGfxSPTask->task.t.ucode_boot = rspF3DBootStart; + // gGfxSPTask->task.t.ucode_boot_size = ((u8 *) rspF3DBootEnd - (u8 *) rspF3DBootStart); // The split-screen multiplayer racing state uses F3DLX which has a simple subpixel calculation. // Singleplayer race mode and all other game states use F3DEX. // http://n64devkit.square7.ch/n64man/ucode/gspF3DEX.htm - if (gGamestate != RACING || gPlayerCountSelection1 == 1) { - gGfxSPTask->task.t.ucode = gspF3DEXTextStart; - gGfxSPTask->task.t.ucode_data = gspF3DEXDataStart; - } else { - gGfxSPTask->task.t.ucode = gspF3DLXTextStart; - gGfxSPTask->task.t.ucode_data = gspF3DLXDataStart; - } + // if (gGamestate != RACING || gPlayerCountSelection1 == 1) { + // gGfxSPTask->task.t.ucode = gspF3DEXTextStart; + // gGfxSPTask->task.t.ucode_data = gspF3DEXDataStart; + // } else { + // gGfxSPTask->task.t.ucode = gspF3DLXTextStart; + // gGfxSPTask->task.t.ucode_data = gspF3DLXDataStart; + // } gGfxSPTask->task.t.flags = 0; gGfxSPTask->task.t.flags = OS_TASK_DP_WAIT; - gGfxSPTask->task.t.ucode_size = SP_UCODE_SIZE; - gGfxSPTask->task.t.ucode_data_size = SP_UCODE_DATA_SIZE; + // gGfxSPTask->task.t.ucode_size = SP_UCODE_SIZE; + // gGfxSPTask->task.t.ucode_data_size = SP_UCODE_DATA_SIZE; gGfxSPTask->task.t.dram_stack = (u64 *) &gGfxSPTaskStack; - gGfxSPTask->task.t.dram_stack_size = SP_DRAM_STACK_SIZE8; + // gGfxSPTask->task.t.dram_stack_size = SP_DRAM_STACK_SIZE8; gGfxSPTask->task.t.output_buff = (u64 *) &gGfxSPTaskOutputBuffer; gGfxSPTask->task.t.output_buff_size = (u64 *) ((u8 *) gGfxSPTaskOutputBuffer + sizeof(gGfxSPTaskOutputBuffer)); gGfxSPTask->task.t.data_ptr = (u64 *) gGfxPool->gfxPool; @@ -303,7 +304,7 @@ void create_gfx_task_structure(void) { void init_controllers(void) { osCreateMesgQueue(&gSIEventMesgQueue, &gSIEventMesgBuf[0], ARRAY_COUNT(gSIEventMesgBuf)); - osSetEventMesg(OS_EVENT_SI, &gSIEventMesgQueue, (OSMesg) 0x33333333); + osSetEventMesg(OS_EVENT_SI, &gSIEventMesgQueue, OS_MESG_32(0x33333333)); osContInit(&gSIEventMesgQueue, &gControllerBits, gControllerStatuses); if ((gControllerBits & 1) == 0) { sIsController1Unplugged = true; @@ -372,7 +373,7 @@ void func_80000BEC(void) { void dispatch_audio_sptask(struct SPTask *spTask) { osWritebackDCacheAll(); - osSendMesg(&gSPTaskMesgQueue, spTask, OS_MESG_NOBLOCK); + osSendMesg(&gSPTaskMesgQueue, OS_MESG_PTR(spTask), OS_MESG_NOBLOCK); } void exec_display_list(struct SPTask *spTask) { @@ -381,7 +382,7 @@ void exec_display_list(struct SPTask *spTask) { if (sCurrentDisplaySPTask == NULL) { sCurrentDisplaySPTask = spTask; sNextDisplaySPTask = NULL; - osSendMesg(&gIntrMesgQueue, (OSMesg) MESG_START_GFX_SPTASK, OS_MESG_NOBLOCK); + osSendMesg(&gIntrMesgQueue, OS_MESG_32(MESG_START_GFX_SPTASK), OS_MESG_NOBLOCK); } else{ sNextDisplaySPTask = spTask; @@ -944,7 +945,7 @@ void receive_new_tasks(void) { void set_vblank_handler(s32 index, struct VblankHandler *handler, OSMesgQueue *queue, OSMesg *msg) { handler->queue = queue; - handler->msg = msg; + handler->msg = *msg; switch (index) { case 1: gVblankHandler1 = handler; @@ -1082,7 +1083,7 @@ void thread3_video(UNUSED void *arg0) { while (true) { osRecvMesg(&gIntrMesgQueue, &msg, OS_MESG_BLOCK); - switch ((u32) msg) { + switch ((u32) msg.data32) { case MESG_VI_VBLANK: handle_vblank(); break; @@ -1176,7 +1177,7 @@ void thread5_game_loop(UNUSED void *arg) { clear_nmi_buffer(); } - set_vblank_handler(2, &gGameVblankHandler, &gGameVblankQueue, (OSMesg) OS_EVENT_SW2); + set_vblank_handler(2, &gGameVblankHandler, &gGameVblankQueue, (OSMesg *)(OS_EVENT_SW2)); // These variables track stats such as player wins. // In the event of a console reset, it remembers them. gNmiUnknown1 = &pAppNmiBuffer[0]; // 2 u8's, tracks number of times player 1/2 won a VS race @@ -1213,7 +1214,7 @@ void thread4_audio(UNUSED void *arg) { UNUSED u32 unused[3]; audio_init(); osCreateMesgQueue(&sSoundMesgQueue, sSoundMesgBuf, ARRAY_COUNT(sSoundMesgBuf)); - set_vblank_handler(1, &sSoundVblankHandler, &sSoundMesgQueue, (OSMesg) 512); + set_vblank_handler(1, &sSoundVblankHandler, &sSoundMesgQueue, (OSMesg *) 512); while (true) { OSMesg msg; diff --git a/src/math_util_2.h b/src/math_util_2.h index e43a0df8d..fa765b224 100644 --- a/src/math_util_2.h +++ b/src/math_util_2.h @@ -1,7 +1,8 @@ #ifndef MATH_UTIL_2_H #define MATH_UTIL_2_H -#include "common_structs.h" +#include +#include #include "camera.h" /* Function Prototypes */ @@ -10,7 +11,7 @@ void operator_or(s32*, s32); void operator_and_not(s32*,s32); void operator_xor(s32*, s32); -s32 func_80040E84(s32*, s32); +UNUSED bool func_80040E84(s32*, s32); s32 func_80040EA4(s32*, s32); s32 f32_step_up_towards_alternate(f32*, f32, f32*); s32 f32_step_down_towards_alternate(f32*, f32, f32*); @@ -52,14 +53,14 @@ Vec3f *vec3f_set_xyz(Vec3f, f32, f32, f32); Vec3f *vec3f_normalize(Vec3f dest); Vec3f *vec3f_cross_product(Vec3f, Vec3f, Vec3f); s32 func_80041658(f32, f32); -f32 func_800416D8(f32, f32, u16); +f32 func_800416D8(f32 x, f32 z, u16 angle); f32 func_80041724(f32, f32, u16); s32 get_angle_between_xy(f32, f32, f32, f32); u16 func_800417B4(u16, u16); s32 func_800418AC(f32, f32, Vec3f); s32 func_800418E8(f32, f32, Vec3f); s32 func_80041924(Collision*, Vec3f); -s32 is_particle_on_screen(Vec3f, Camera*, u16); +bool is_particle_on_screen(Vec3f, Camera*, u16); void func_800419F8(void); void mtfx_translation_x_y(Mat4, s32, s32); void mtxf_u16_rotate_z(Mat4, u16); diff --git a/src/menus.h b/src/menus.h index 7d5101d03..e789caf7b 100644 --- a/src/menus.h +++ b/src/menus.h @@ -29,13 +29,13 @@ void controller_pak_menu_act(struct Controller *, u16); void splash_menu_act(struct Controller *, u16); void func_800B28C8(void); void main_menu_act(struct Controller *, u16); -s32 is_character_spot_free(s32); +bool is_character_spot_free(s32); void player_select_menu_act(struct Controller *, u16); void course_select_menu_act(struct Controller *, u16); void func_800B3F74(s32); void func_800B44AC(void); void func_800B44BC(void); -s32 func_800B4520(void); +bool func_800B4520(void); /* data */ extern s32 D_8018EDC0; diff --git a/src/os/__osDevMgrMain.c b/src/os/__osDevMgrMain.c index 10e074d29..37c2b7a31 100644 --- a/src/os/__osDevMgrMain.c +++ b/src/os/__osDevMgrMain.c @@ -23,7 +23,7 @@ void __osDevMgrMain(void *args) { ret = 0; sp34 = (OSMgrArgs *) args; while (true) { - osRecvMesg(sp34->cmdQueue, (OSMesg) &mb, OS_MESG_BLOCK); + osRecvMesg(sp34->cmdQueue, (OSMesg *) &mb, OS_MESG_BLOCK); if (mb->piHandle != NULL && mb->piHandle->type == 2 && (mb->piHandle->transferInfo.cmdType == 0 || mb->piHandle->transferInfo.cmdType == 1)) { @@ -43,7 +43,7 @@ void __osDevMgrMain(void *args) { __osEPiRawWriteIo(mb->piHandle, 0x05000510, (sp24->bmCtlShadow | 0x80000000)); while (true) { osRecvMesg(sp34->eventQueue, &em, OS_MESG_BLOCK); - sp30 = osSendMesg(mb->hdr.retQueue, mb, OS_MESG_NOBLOCK); + sp30 = osSendMesg(mb->hdr.retQueue, (OSMesg)mb, OS_MESG_NOBLOCK); if (sp2c != 1 || mb->piHandle->transferInfo.errStatus != 0) { break; } @@ -57,20 +57,20 @@ void __osDevMgrMain(void *args) { switch (mb->hdr.type) { case 11: osRecvMesg(sp34->accessQueue, &dummy, OS_MESG_BLOCK); - ret = sp34->dma_func(OS_READ, mb->devAddr, mb->dramAddr, mb->size); + ret = sp34->piDmaCallback(OS_READ, mb->devAddr, mb->dramAddr, mb->size); break; case 12: osRecvMesg(sp34->accessQueue, &dummy, OS_MESG_BLOCK); - ret = sp34->dma_func(OS_WRITE, mb->devAddr, mb->dramAddr, mb->size); + ret = sp34->piDmaCallback(OS_WRITE, mb->devAddr, mb->dramAddr, mb->size); break; case 15: osRecvMesg(sp34->accessQueue, &dummy, OS_MESG_BLOCK); - ret = sp34->edma_func(mb->piHandle, OS_READ, mb->devAddr, mb->dramAddr, + ret = sp34->epiDmaCallback(mb->piHandle, OS_READ, mb->devAddr, mb->dramAddr, mb->size); break; case 16: osRecvMesg(sp34->accessQueue, &dummy, OS_MESG_BLOCK); - ret = sp34->edma_func(mb->piHandle, OS_WRITE, mb->devAddr, mb->dramAddr, + ret = sp34->epiDmaCallback(mb->piHandle, OS_WRITE, mb->devAddr, mb->dramAddr, mb->size); break; case 10: diff --git a/src/os/__osSpDeviceBusy.c b/src/os/__osSpDeviceBusy.c index a40c402a2..e2bb83f4f 100644 --- a/src/os/__osSpDeviceBusy.c +++ b/src/os/__osSpDeviceBusy.c @@ -3,7 +3,7 @@ s32 __osSpDeviceBusy() { register u32 status = HW_REG(SP_STATUS_REG, u32); - if (status & (SPSTATUS_IO_FULL | SPSTATUS_DMA_FULL | SPSTATUS_DMA_BUSY)) { + if (status & (SP_STATUS_IO_FULL | SP_STATUS_DMA_FULL | SP_STATUS_DMA_BUSY)) { return 1; } return 0; diff --git a/src/os/__osSpSetPc.c b/src/os/__osSpSetPc.c index d074590c9..6a3933048 100644 --- a/src/os/__osSpSetPc.c +++ b/src/os/__osSpSetPc.c @@ -3,7 +3,7 @@ s32 __osSpSetPc(void *pc) { register u32 status = HW_REG(SP_STATUS_REG, u32); - if (!(status & SPSTATUS_HALT)) { + if (!(status & SP_CLR_HALT)) { return -1; } else { HW_REG(SP_PC_REG, void *) = pc; diff --git a/src/os/__osViInit.c b/src/os/__osViInit.c index c4e39e475..65b78ac6a 100644 --- a/src/os/__osViInit.c +++ b/src/os/__osViInit.c @@ -1,7 +1,8 @@ +#include +#include #include "libultra_internal.h" #include "hardware.h" - -extern u32 osTvType; +#include OSViContext sViContexts[2] = { 0 }; OSViContext *__osViCurr = &sViContexts[0]; @@ -20,10 +21,10 @@ void __osViInit(void) { __osViNext->retraceCount = 1; __osViCurr->retraceCount = 1; - if (osTvType == TV_TYPE_PAL) { + if (osTvType == OS_TV_PAL) { __osViNext->modep = &osViModePalLan1; osViClock = 0x02F5B2D2; - } else if (osTvType == TV_TYPE_MPAL) { + } else if (osTvType == OS_TV_MPAL) { __osViNext->modep = &osViModeMpalLan1; osViClock = 0x02E6025C; } else { @@ -31,7 +32,7 @@ void __osViInit(void) { osViClock = 0x02E6D354; } - __osViNext->unk00 = 0x20; + __osViNext->state = 0x20; __osViNext->features = __osViNext->modep->comRegs.ctrl; while (HW_REG(VI_CURRENT_REG, u32) > 0xa) { ; diff --git a/src/os/__osViSwapContext.c b/src/os/__osViSwapContext.c index 990cb11fd..a7008681b 100644 --- a/src/os/__osViSwapContext.c +++ b/src/os/__osViSwapContext.c @@ -18,28 +18,28 @@ void __osViSwapContext() { field = HW_REG(VI_V_CURRENT_LINE_REG, u32) & 1; s2 = osVirtualToPhysical(s1->buffer); origin = (s0->fldRegs[field].origin) + s2; - if (s1->unk00 & 2) { - s1->unk20 |= s0->comRegs.xScale & ~0xfff; + if (s1->state & 2) { + s1->x.scale |= s0->comRegs.xScale & ~0xfff; } else { - s1->unk20 = s0->comRegs.xScale; + s1->x.scale = s0->comRegs.xScale; } - if (s1->unk00 & 4) { + if (s1->state & 4) { sp34 = (u32)(s0->fldRegs[field].yScale & 0xfff); - s1->unk2c = s1->unk24 * sp34; - s1->unk2c |= s0->fldRegs[field].yScale & ~0xfff; + s1->y.scale = s1->y.factor * sp34; + s1->y.scale |= s0->fldRegs[field].yScale & ~0xfff; } else { - s1->unk2c = s0->fldRegs[field].yScale; + s1->y.scale = s0->fldRegs[field].yScale; } hStart = s0->comRegs.hStart; - if (s1->unk00 & 0x20) { + if (s1->state & 0x20) { hStart = 0; } - if (s1->unk00 & 0x40) { - s1->unk2c = 0; + if (s1->state & 0x40) { + s1->y.scale = 0; origin = osVirtualToPhysical(s1->buffer); } - if (s1->unk00 & 0x80) { - s1->unk2c = (s1->unk28 << 0x10) & 0x3ff0000; + if (s1->state & 0x80) { + s1->y.scale = (s1->y.offset << 0x10) & 0x3ff0000; origin = osVirtualToPhysical(s1->buffer); } HW_REG(VI_ORIGIN_REG, u32) = origin; @@ -52,8 +52,8 @@ void __osViSwapContext() { HW_REG(VI_V_START_REG, u32) = s0->fldRegs[field].vStart; HW_REG(VI_V_BURST_REG, u32) = s0->fldRegs[field].vBurst; HW_REG(VI_INTR_REG, u32) = s0->fldRegs[field].vIntr; - HW_REG(VI_X_SCALE_REG, u32) = s1->unk20; - HW_REG(VI_Y_SCALE_REG, u32) = s1->unk2c; + HW_REG(VI_X_SCALE_REG, u32) = s1->x.scale; + HW_REG(VI_Y_SCALE_REG, u32) = s1->y.scale; HW_REG(VI_CONTROL_REG, u32) = s1->features; __osViNext = __osViCurr; __osViCurr = s1; diff --git a/src/os/contramread.c b/src/os/contramread.c index 5f3b6e68d..b08409690 100644 --- a/src/os/contramread.c +++ b/src/os/contramread.c @@ -1,5 +1,5 @@ +#include #include "libultra_internal.h" -#include "PR/rcp.h" #include "controller.h" extern s32 __osPfsGetStatus(OSMesgQueue *, s32); diff --git a/src/os/contramwrite.c b/src/os/contramwrite.c index ebb8d77c5..c26fbfccb 100644 --- a/src/os/contramwrite.c +++ b/src/os/contramwrite.c @@ -1,5 +1,5 @@ +#include #include "libultra_internal.h" -#include "PR/rcp.h" #include "controller.h" extern s32 __osPfsGetStatus(OSMesgQueue *, s32); diff --git a/src/os/controller.h b/src/os/controller.h index 92af3d4bd..9035f6ffc 100644 --- a/src/os/controller.h +++ b/src/os/controller.h @@ -1,8 +1,6 @@ #ifndef _CONTROLLER_H #define _CONTROLLER_H -#include "PR/os_internal.h" #include -#include "PR/rcp.h" //should go somewhere else but #define ARRLEN(x) ((s32)(sizeof(x) / sizeof(x[0]))) diff --git a/src/os/libultra_internal.h b/src/os/libultra_internal.h index dafdbd8a9..dd1ac555f 100644 --- a/src/os/libultra_internal.h +++ b/src/os/libultra_internal.h @@ -1,15 +1,8 @@ #ifndef _LIBULTRA_INTERNAL_H_ #define _LIBULTRA_INTERNAL_H_ #include -#include #include "macros.h" -typedef struct __OSEventState -{ - OSMesgQueue *messageQueue; - OSMesg message; -} __OSEventState; - typedef struct __osThreadTail { OSThread *next; @@ -53,15 +46,15 @@ extern OSThread *__osRunningThread; extern u32 D_80365E00[15]; extern u32 D_80365E3C; -typedef struct { - u32 initialized; // probably something like initialized? - OSThread *mgrThread; - OSMesgQueue *cmdQueue; - OSMesgQueue *eventQueue; - OSMesgQueue *accessQueue; - s32 (*dma_func)(s32, u32, void *, size_t); - s32 (*edma_func)(OSPiHandle*, s32, u32, void *, size_t); -} OSMgrArgs; +// typedef struct { +// u32 initialized; // probably something like initialized? +// OSThread *mgrThread; +// OSMesgQueue *cmdQueue; +// OSMesgQueue *eventQueue; +// OSMesgQueue *accessQueue; +// s32 (*dma_func)(s32, u32, void *, size_t); +// s32 (*edma_func)(OSPiHandle*, s32, u32, void *, size_t); +// } OSMgrArgs; s32 __osDisableInt(void); void __osRestoreInt(s32); diff --git a/src/os/math/llmuldiv.c b/src/os/math/llmuldiv.c deleted file mode 100644 index 2af91aae5..000000000 --- a/src/os/math/llmuldiv.c +++ /dev/null @@ -1,53 +0,0 @@ -unsigned long long __ull_rshift(unsigned long long a0, unsigned long long a1) -{ - return a0 >> a1; -} -unsigned long long __ull_rem(unsigned long long a0, unsigned long long a1) -{ - return a0 % a1; -} -unsigned long long __ull_div(unsigned long long a0, unsigned long long a1) -{ - return a0 / a1; -} - -unsigned long long __ll_lshift(unsigned long long a0, unsigned long long a1) -{ - return a0 << a1; -} - -long long __ll_rem(unsigned long long a0, long long a1) -{ - return a0 % a1; -} - -long long __ll_div(long long a0, long long a1) -{ - return a0 / a1; -} - -unsigned long long __ll_mul(unsigned long long a0, unsigned long long a1) -{ - return a0 * a1; -} - -void __ull_divremi(unsigned long long *div, unsigned long long *rem, unsigned long long a2, unsigned short a3) -{ - *div = a2 / a3; - *rem = a2 % a3; -} -long long __ll_mod(long long a0, long long a1) -{ - long long tmp = a0 % a1; - if ((tmp < 0 && a1 > 0) || (tmp > 0 && a1 < 0)) - { - - tmp += a1; - } - return tmp; -} - -long long __ll_rshift(long long a0, long long a1) -{ - return a0 >> a1; -} diff --git a/src/os/osCreatePiManager.c b/src/os/osCreatePiManager.c index c65201934..a9a9888cc 100644 --- a/src/os/osCreatePiManager.c +++ b/src/os/osCreatePiManager.c @@ -44,8 +44,8 @@ void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgC __osPiDevMgr.cmdQueue = cmdQ; __osPiDevMgr.eventQueue = &__osPiMesgQueue; __osPiDevMgr.accessQueue = &gOsPiMessageQueue; - __osPiDevMgr.dma_func = osPiRawStartDma; - __osPiDevMgr.edma_func = osEPiRawStartDma; + __osPiDevMgr.piDmaCallback = osPiRawStartDma; + __osPiDevMgr.epiDmaCallback = osEPiRawStartDma; osCreateThread(&piMgrThread, 0, __osDevMgrMain, (void *) &__osPiDevMgr, &piMgrStack[0x400], pri); osStartThread(&piMgrThread); __osRestoreInt(int_disabled); diff --git a/src/os/osCreateViManager.c b/src/os/osCreateViManager.c index 950f43d81..e2635fbba 100644 --- a/src/os/osCreateViManager.c +++ b/src/os/osCreateViManager.c @@ -46,8 +46,8 @@ void osCreateViManager(OSPri pri) { viMgrMainArgs.cmdQueue = &__osViMesgQueue; viMgrMainArgs.eventQueue = &__osViMesgQueue; viMgrMainArgs.accessQueue = NULL; - viMgrMainArgs.dma_func = NULL; - viMgrMainArgs.edma_func = NULL; + viMgrMainArgs.piDmaCallback = NULL; + viMgrMainArgs.epiDmaCallback = NULL; osCreateThread(&viMgrThread, 0, viMgrMain, (void *) &viMgrMainArgs, &viMgrStack[0x400], pri); __osViInit(); diff --git a/src/os/osInitialize.c b/src/os/osInitialize.c index 292cbbc1c..254b9a036 100644 --- a/src/os/osInitialize.c +++ b/src/os/osInitialize.c @@ -1,4 +1,5 @@ #include "libultra_internal.h" +#include #include "hardware.h" #include @@ -58,7 +59,7 @@ void osInitialize(void) { } osClockRate = osClockRate * 3 / 4; if (osResetType == RESET_TYPE_COLD_RESET) { - bzero(osAppNmiBuffer, sizeof(osAppNmiBuffer)); + //bzero(osAppNmiBuffer, sizeof(osAppNmiBuffer)); } eu_sp30 = HW_REG(PI_STATUS_REG, u32); diff --git a/src/os/osViBlack.c b/src/os/osViBlack.c index 782e3b13c..3d0ffc0ca 100644 --- a/src/os/osViBlack.c +++ b/src/os/osViBlack.c @@ -1,3 +1,4 @@ +#include #include "libultra_internal.h" extern OSViContext *__osViNext; @@ -6,9 +7,9 @@ extern OSViContext *__osViNext; void osViBlack(u8 active) { register u32 int_disabled = __osDisableInt(); if (active) { - __osViNext->unk00 |= 0x20; + __osViNext->state |= 0x20; } else { - __osViNext->unk00 &= ~0x20; + __osViNext->state &= ~0x20; } __osRestoreInt(int_disabled); } diff --git a/src/os/osViSetMode.c b/src/os/osViSetMode.c index 716596fb5..ec6f7db8f 100644 --- a/src/os/osViSetMode.c +++ b/src/os/osViSetMode.c @@ -5,7 +5,7 @@ extern OSViContext *__osViNext; void osViSetMode(OSViMode *mode) { register u32 int_disabled = __osDisableInt(); __osViNext->modep = mode; - __osViNext->unk00 = 1; + __osViNext->state = 1; __osViNext->features = __osViNext->modep->comRegs.ctrl; __osRestoreInt(int_disabled); } diff --git a/src/os/osViSetSpecialFeatures.c b/src/os/osViSetSpecialFeatures.c index c1bf52b63..23eb98d89 100644 --- a/src/os/osViSetSpecialFeatures.c +++ b/src/os/osViSetSpecialFeatures.c @@ -30,6 +30,6 @@ void osViSetSpecialFeatures(u32 func) { __osViNext->features &= ~OS_VI_DITHER_FILTER; __osViNext->features |= __osViNext->modep->comRegs.ctrl & (OS_VI_UNK200 | OS_VI_UNK100); } - __osViNext->unk00 |= 8; + __osViNext->state |= 8; __osRestoreInt(int_disabled); } diff --git a/src/os/osViSwapBuffer.c b/src/os/osViSwapBuffer.c index eb341b6da..7908aeade 100644 --- a/src/os/osViSwapBuffer.c +++ b/src/os/osViSwapBuffer.c @@ -6,6 +6,6 @@ void osViSwapBuffer(void *vaddr) { u32 int_disabled = __osDisableInt(); __osViNext->buffer = vaddr; //! @todo figure out what this flag means - __osViNext->unk00 |= 0x10; + __osViNext->state |= 0x10; __osRestoreInt(int_disabled); } diff --git a/src/os/piint.h b/src/os/piint.h index 8b2a479a2..c636e274a 100644 --- a/src/os/piint.h +++ b/src/os/piint.h @@ -1,8 +1,5 @@ #ifndef _PIINT_H #define _PIINT_H -#include "PR/os_internal.h" -#include "PR/rcp.h" -#include "PR/os_pi.h" #include //https://github.com/LuigiBlood/64dd/wiki/Memory-Map diff --git a/src/racing/actors_extended.h b/src/racing/actors_extended.h index 89aa28e5a..ae6983748 100644 --- a/src/racing/actors_extended.h +++ b/src/racing/actors_extended.h @@ -16,7 +16,7 @@ void func_802B0648(struct BananaBunchParent*); void func_802B0788(s16, struct BananaBunchParent*, Player*); s32 func_802B09C0(s16); void update_actor_banana_bunch(struct BananaBunchParent*); -s32 is_shell_exist(s16); +bool is_shell_exist(s16); void update_actor_triple_shell(TripleShellParent*, s16); s32 use_banana_bunch_item(Player*); s32 use_triple_shell_item(Player*, s16); diff --git a/src/racing/math_util.c b/src/racing/math_util.c index 2590f0408..da376866e 100644 --- a/src/racing/math_util.c +++ b/src/racing/math_util.c @@ -4,7 +4,6 @@ #include #include #include "buffers.h" -#include #include "buffers/trig_tables.h" #include "math.h" #include "memory.h" diff --git a/src/racing/math_util.h b/src/racing/math_util.h index 6b7159556..94f8a2760 100644 --- a/src/racing/math_util.h +++ b/src/racing/math_util.h @@ -1,8 +1,8 @@ #ifndef MATH_UTIL_H #define MATH_UTIL_H -#include - +#include +#include //#define sins(x) gSineTable[(u16) (x) >> 4] //#define coss(x) gCosineTable[(u16) (x) >> 4] diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c index 0aef69c6b..7a89dd88e 100644 --- a/src/racing/render_courses.c +++ b/src/racing/render_courses.c @@ -1,9 +1,11 @@ #include +#include #include #include #include #include #include +#include "../camera.h" #include "render_courses.h" #include "code_800029B0.h" @@ -73,7 +75,7 @@ void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { Player *player = arg1->player; Camera *camera = arg1->camera; //! @todo Should be Gfx* - Gfx* gfx = (Gfx*) addr; + Gfx** gfx = (Gfx**) &addr; s16 var_a3; s16 temp_v1; s16 sp1E; @@ -177,7 +179,7 @@ void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { arg1->pathCounter = temp_v1; temp_v1 = ((temp_v1 - 1) * 4) + var_a3; - gSPDisplayList(gDisplayListHead++, gfx[temp_v1]); + gSPDisplayList(gDisplayListHead++, (Gfx *)gfx[temp_v1]); } void func_80291198(void) { diff --git a/src/racing/render_courses.h b/src/racing/render_courses.h index a41659f6c..abd71857d 100644 --- a/src/racing/render_courses.h +++ b/src/racing/render_courses.h @@ -2,6 +2,7 @@ #define RENDER_COURSES_H #include "code_800029B0.h" +#include "../camera.h" void func_8029122C(struct UnkStruct_800DC5EC*, s32); s32 func_80290C20(Camera*); diff --git a/src/racing/skybox_and_splitscreen.c b/src/racing/skybox_and_splitscreen.c index e0cd0ac7b..cbd6e22af 100644 --- a/src/racing/skybox_and_splitscreen.c +++ b/src/racing/skybox_and_splitscreen.c @@ -7,7 +7,7 @@ #include "code_800029B0.h" #include #include "memory.h" -#include "camera.h" +#include "../camera.h" #include #include "render_player.h" #include "code_80057C60.h" diff --git a/src/racing/skybox_and_splitscreen.h b/src/racing/skybox_and_splitscreen.h index 34d7c7456..274ea60b9 100644 --- a/src/racing/skybox_and_splitscreen.h +++ b/src/racing/skybox_and_splitscreen.h @@ -1,6 +1,7 @@ #ifndef SKYBOX_AND_SPLITSCREEN_H #define SKYBOX_AND_SPLITSCREEN_H +#include #include #include "code_800029B0.h" diff --git a/src/render_player.h b/src/render_player.h index 201c44ca2..ede2d5033 100644 --- a/src/render_player.h +++ b/src/render_player.h @@ -32,7 +32,7 @@ void func_80021F50(Mat4, Vec3f); void mtxf_scale2(Mat4, f32); void failed_fixed_point_matrix_conversion(Mtx*, Mat4); void convert_to_fixed_point_matrix(Mtx*, Mat4); -s32 adjust_angle(s16*, s16, s16); +bool adjust_angle(s16*, s16, s16); void move_s32_towards(s32*, s32, f32); void move_f32_towards(f32*, f32, f32); void move_s16_towards(s16*, s16, f32); @@ -48,7 +48,7 @@ void func_80022DB4(Player*, s8); void func_80022E84(Player*, s8, s8, s8); void change_player_color_effect_rgb(Player*, s8, s32, f32); void change_player_color_effect_cmy(Player*, s8, s32, f32); -s32 is_player_under_light_luigi_raceway(Player*, s8); +bool is_player_under_light_luigi_raceway(Player*, s8); void render_light_environment_on_player(Player*, s8); void func_800235AC(Player*, s8); void func_80023BF0(Player*, s8, s8, s8); diff --git a/src/spawn_players.h b/src/spawn_players.h index 504e2b057..e71325861 100644 --- a/src/spawn_players.h +++ b/src/spawn_players.h @@ -38,17 +38,17 @@ extern s16 gCopyNearestWaypointByPlayerId[]; extern s16 D_80165330[]; extern s16 D_80165340; extern Player *D_801653C0[]; -extern s32 gPlayerIsThrottleActive[]; +extern bool gPlayerIsThrottleActive[]; extern s32 D_80165400[]; extern s32 gFrameSinceLastACombo[]; extern s32 gCountASwitch[]; extern bool gIsPlayerTripleAButtonCombo[]; extern s32 gTimerBoostTripleACombo[]; -extern s32 gPlayerIsBrakeActive[]; +extern bool gPlayerIsBrakeActive[]; extern s32 D_801654C0[]; extern s32 gFrameSinceLastBCombo[]; extern s32 gCountBChangement[]; -extern s32 gIsPlayerTripleBButtonCombo[]; +extern bool gIsPlayerTripleBButtonCombo[]; extern s32 gTimerBoostTripleBCombo[]; extern s16 chooseKartAIPlayers[]; extern s16 D_8016556E; diff --git a/src/stubs.c b/src/stubs.c new file mode 100644 index 000000000..8e78a7a6c --- /dev/null +++ b/src/stubs.c @@ -0,0 +1,9 @@ +#include +#include +#include + + +u32 osTvType = OS_TV_NTSC; +u32 osResetType; + +u8 osAppNmiBuffer[64]; diff --git a/src/update_objects.h b/src/update_objects.h index a0fac60b5..4c592f23f 100644 --- a/src/update_objects.h +++ b/src/update_objects.h @@ -19,13 +19,13 @@ void func_80072180(void); void set_object_flag_status_true(s32, s32); void set_object_flag_status_false(s32, s32); void func_80072214(s32, s32); -s32 is_obj_flag_status_active(s32, s32); +bool is_obj_flag_status_active(s32, s32); s32 is_obj_index_flag_status_inactive(s32, s32); void func_800722A4(s32, s32); void func_800722CC(s32, s32); void func_800722F8(s32, s32); -s32 func_80072320(s32, s32); -s32 func_80072354(s32, s32); +bool func_80072320(s32, s32); +bool func_80072354(s32, s32); void set_object_unk_0CB(s32, s32); void init_object(s32, s32); void func_80072408(s32); @@ -55,8 +55,8 @@ s32 func_80072B48(s32, s32); void func_80072C00(s32, s32, s32, s32); void func_80072D3C(s32, s32, s32, s32, s32); s32 func_80072E54(s32, s32, s32, s32, s32, s32); -s32 func_80072F88(s32, s32, s32, s32, s32, s32); -s32 func_800730BC(s32, s32, s32, s32, s32, s32); +bool func_80072F88(s32, s32, s32, s32, s32, s32); +bool func_800730BC(s32, s32, s32, s32, s32, s32); s32 func_8007326C(s32, s32, s32, s32, s32, s32); void func_80073404(s32, u8, u8, Vtx*); void init_texture_object(s32, u8*, u8*, u8, u16); @@ -71,7 +71,7 @@ void func_80073654(s32); void func_8007369C(s32, s32); void func_800736E0(s32); void func_80073720(s32); -s32 func_8007375C(s32, s32); +bool func_8007375C(s32, s32); void func_80073800(s32, s32); void func_8007381C(s32); void func_80073844(s32); @@ -79,21 +79,21 @@ void func_80073884(s32); s32 func_800738A8(s32, s16*, s32, s32, s32, s32, s32); void func_80073998(s32, s16*, s32, s32, s32, s32, s32); void func_800739CC(s32, s16*, s32, s32, s32, s32, s32); -s32 func_80073A10(s32, s16*, s32, s32, s32, s32, s32); +bool func_80073A10(s32, s16*, s32, s32, s32, s32, s32); s32 func_80073B00(s32, s16*, s32, s32, s32, s32, s32); s32 func_80073B34(s32, s16*, s32, s32, s32, s32, s32); -s32 func_80073B78(s32, s32, s16*, s32, s32, s32, s32, s32); +bool func_80073B78(s32, s32, s16*, s32, s32, s32, s32, s32); bool func_80073CB0(s32, s16*, s32, s32, s32, s32, s32); bool func_80073D0C(s32, s16*, s32, s32, s32, s32, s32); void func_80073D68(s32, s16*, s16, s32); void func_80073DC0(s32, s16*, s16, s32); -s32 func_80073E18(s32, u16*, u16, s32); -s32 func_80073ED4(s32, u16*, u16, s32); +bool func_80073E18(s32, u16*, u16, s32); +UNUSED bool func_80073ED4(s32, u16*, u16, s32); void func_80073F90(s32, s32); void func_80073FAC(s32); void func_80073FD4(s32); void func_80074014(void); -s32 func_8007401C(s32, f32*, f32, f32, f32, s32, s32); +bool func_8007401C(s32, f32*, f32, f32, f32, s32, s32); s32 func_80074118(s32, f32*, f32, f32, f32, s32, s32); s32 func_8007415C(s32, f32*, f32, f32, f32, s32, s32); s32 func_800741B4(s32, f32*, f32, f32, f32, s32, s32); diff --git a/tools/yaml/mk64.eu1.yaml b/tools/yaml/mk64.eu1.yaml deleted file mode 100644 index 6cd4e543a..000000000 --- a/tools/yaml/mk64.eu1.yaml +++ /dev/null @@ -1,250 +0,0 @@ -name: Mario Kart 64 EU 1.0 -sha1: a729039453210b84f17019dda3f248d5888f7690 -options: - basename: mk64.eu - target_path: baserom.eu.z64 - base_path: . - compiler: IDO - platform: n64 - target_path: baserom.eu.z64 - build_path: build/eu - find_file_boundaries: True - header_encoding: ASCII - ld_script_path: mk64.eu.ld - asset_path: assets/eu - # platform: n64 - # undefined_funcs_auto: True - # undefined_funcs_auto_path: undefined_funcs_auto.txt - # undefined_syms_auto: True - # undefined_syms_auto_path: undefined_syms_auto.txt - # symbol_addrs_path: symbol_addrs.txt - asm_path: asm/eu - # src_path: src - extensions_path: tools/splat_ext - mips_abi_float_regs: o32 - section_order: [".text", ".data", ".rodata", ".bss"] - # auto_all_sections: [".data", ".rodata", ".bss"] -segments: - - name: header - type: header - start: 0x0 - - name: boot - type: code - start: 0x40 - vram: 0xA4000040 - subsegments: - - [0x40, asm, boot] - - [0xB70, i1, rspboot_font1, 13, 14] - - [0xB87, i1, rspboot_font2, 13, 14] - - [0xB9E, bin, rspboot_font] - - name: main - type: code - bss_size: 0x18985C - start: 0x1000 - vram: 0x80000400 - subsegments: - - [0x1000, asm, entry] - - [0x1050, c, main] - - [0x3590, c, code_80002990] - - [0x4130, c, profiler] - - [0x4CA0, c, crash_screen] - - [0x5320, c, code_80004740] - - [0x5AD0, c, staff_ghosts] - - [0x6B90, asm, unused_overflow_check] - - [0x6BB0, c, code_80005FD0] - - [0x1D0B0, c, camera] - - [0x20560, c, render_player] - - [0x27C20, c, kart_dma] - - [0x288E0, c, code_80027D00] - - [0x39FA0, c, spawn_players] - - [0x3E820, c, code_8003DC40] - - [0x40C10, asm, unused_mio0_decode] - - [0x40CB0, asm, mio0_decode] - - [0x411B0, asm, tkmk00_decode] - - [0x418E0, c, gbiMacro] - - [0x41A30, c, math_util_2] - - [0x43D90, c, code_800431B0] - - [0x58840, c, code_80057C60] - - [0x6F5A0, c, code_8006E9C0] - - [0x72AE0, c, update_objects] - - [0x87A50, c, code_80086E70] - - [0x8CDB0, c, effects] - - [0x920A0, c, code_800914A0] - - [0x92350, c, code_80091750] - - [0xB05B0, c, code_800AF9B0] - - [0xB0F50, c, menus] - - [0xB51E0, c, save] - - [0xB77F0, c, audio/synthesis] - - [0xB99E0, c, audio/heap] - - [0xBB680, c, audio/load] - - [0xBD170, c, audio/playback] - - [0xBEA30, c, audio/effects] - - [0xBF4D0, c, audio/seqplayer] - - [0xC2000, c, audio/external] - - [0xCBFC0, c, audio/port_eu] - - [0xCCC00, c, ../lib/src/osCreateThread] - - [0xCCD90, c, ../lib/src/osInitialize] - - [0xCD030, c, ../lib/src/osStartThread] - - [0xCD180, c, ../lib/src/osCreateViManager] - - [0xCD4E0, c, ../lib/src/osViSetMode] - - [0xCD550, c, ../lib/src/osViBlack] - - [0xCD5C0, c, ../lib/src/osViSetSpecialFeatures] - - [0xCD780, c, ../lib/src/osCreatePiManager] - - [0xCD910, c, ../lib/src/osSetThreadPri] - - [0xCD9F0, c, ../lib/src/osCreateMesgQueue] - - [0xCDA20, c, ../lib/src/osViSetEvent] - - [0xCDA90, c, ../lib/src/osSetEventMesg] - - [0xCDB00, c, ../lib/src/osSpTaskLoadGo] - - [0xCDDC0, c, ../lib/src/osContInit] - - [0xCE180, c, ../lib/src/osContStartReadData] - - [0xCE3E0, c, ../lib/src/osRecvMesg] - - [0xCE520, asm, ../lib/asm/osWritebackDCacheAll] - - [0xCE550, c, ../lib/src/osSendMesg] - - [0xCE6A0, c, ../lib/src/osViSwapBuffer] - - [0xCE6F0, asm, ../lib/asm/bzero] - - [0xCE790, asm, ../lib/asm/osInvalICache] - - [0xCE810, asm, ../lib/asm/osInvalDCache] - - [0xCE8C0, c, ../lib/src/osPiStartDma] - - [0xCE9D0, c, ../lib/src/osSpTaskYield] - - [0xCE9F0, c, ../lib/src/osSpTaskYielded] - - [0xCEA70, c, ../lib/src/osGetTime] - - [0xCEB00, c, ../lib/src/math/llmuldiv] - - [0xCEDC0, c, ../lib/src/__osGetCurrFaultedThread] - - [0xCEDD0, asm, ../lib/asm/sqrtf] - - [0xCEDE0, c, ../lib/src/guOrthoF] - - [0xCEFA0, c, ../lib/src/osSetTime] - - [0xCEFD0, c, ../lib/src/osEepromProbe] - - [0xCF040, c, ../lib/src/osPfsIsPlug] - - [0xCF3B0, c, ../lib/src/osPfsInit] - - [0xCF570, c, ../lib/src/osPfsNumFiles] - - [0xCF6C0, c, ../lib/src/osPfsFileState] - - [0xCF9B0, c, ../lib/src/osPfsFreeBlocks] - - [0xCFB00, c, ../lib/src/guRotateF] - - [0xCFCF0, c, ../lib/src/guScaleF] - - [0xCFD90, c, ../lib/src/guPerspectiveF] - - [0xD0020, c, ../lib/src/guLookAtF] - - [0xD0350, c, ../lib/src/guTranslateF] - - [0xD03F0, c, ../lib/src/osSyncPrintf] - - [0xD0450, c, ../lib/src/guMtxCatL] - - [0xD0510, c, ../lib/src/osPfsSearchFile] - - [0xD06D0, c, ../lib/src/osPfsDeleteFile] - - [0xD0CE0, c, ../lib/src/osEepromLongWrite] - - [0xD0E20, c, ../lib/src/osEepromLongRead] - - [0xD0F60, c, ../lib/src/osPfsReadWriteFile] - - [0xD1460, c, ../lib/src/osPfsAllocateFile] - - [0xD1B48, c, ../lib/src/osAiSetFrequency] - - [0xD1D70, c, ../lib/src/osAiGetLength] - - [0xD1D80, c, ../lib/src/osAiSetNextBuffer] - - [0xD1E30, c, ../lib/src/osGetCount] - - [0xD1E40, asm, ../lib/asm/__osException] - - [0xD2740, asm, ../lib/asm/__osDisableInt] - - [0xD2760, asm, ../lib/asm/__osRestoreInt] - - [0xD2780, c, ../lib/src/__osDequeueThread] - - [0xD27C0, asm, ../lib/asm/__osSetSR] - - [0xD27D0, asm, ../lib/asm/__osGetSR] - - [0xD27E0, asm, ../lib/asm/__osSetFpcCsr] - - [0xD27F0, c, ../lib/src/__osSiRawReadIo] - - [0xD2840, c, ../lib/src/__osSiRawWriteIo] - - [0xD2890, asm, ../lib/asm/osWritebackDCache] - - [0xD2910, asm, ../lib/asm/osMapTLBRdb] - - [0xD2970, c, ../lib/src/osPiRawReadIo] - - [0xD29D0, c, ../lib/src/__osSetHWIntrRoutine] - - [0xD2A20, c, ../lib/src/__osLeoInterrupt] - - [0xD32A0, c, ../lib/src/osTimer] - - [0xD36A0, c, ../lib/src/osGetThreadPri] - - [0xD36C0, c, ../lib/src/__osViInit] - - [0xD3810, c, ../lib/src/__osViGetCurrentContext] - - [0xD3820, c, ../lib/src/__osViSwapContext] - - [0xD3B80, c, ../lib/src/__osPiCreateAccessQueue] - - [0xD3C40, c, ../lib/src/osPiRawStartDma] - - [0xD3D20, c, ../lib/src/osEPiRawStartDma] - - [0xD3E00, c, ../lib/src/__osDevMgrMain] - - [0xD41B0, c, ../lib/src/bcopy] - - [0xD44C0, c, ../lib/src/osVirtualToPhysical] - - [0xD4540, c, ../lib/src/__osSpSetStatus] - - [0xD4550, c, ../lib/src/__osSpSetPc] - - [0xD4590, c, ../lib/src/__osSpRawStartDma] - - [0xD4620, c, ../lib/src/__osSpDeviceBusy] - - [0xD4650, c, ../lib/src/osSetTimer] - - [0xD4730, c, ../lib/src/__osSiRawStartDma] - - [0xD47E0, c, ../lib/src/__osSiCreateAccessQueue] - - [0xD48A0, c, ../lib/src/osJamMesg] - - [0xD49F0, c, ../lib/src/osPiGetCmdQueue] - - [0xD4A20, c, ../lib/src/__osSpGetStatus] - - [0xD4A30, c, ../lib/src/guMtxF2L] - - [0xD4CA0, c, ../lib/src/osEepromWrite] - - [0xD5180, c, ../lib/src/contpfs] - - [0xD5EE0, c, ../lib/src/osPfsChecker] - - [0xD6940, c, ../lib/src/contramread] - - [0xD6CF0, c, ../lib/src/guNormalize] - - [0xD6D80, c, ../lib/src/math/sinf] - - [0xD6F40, c, ../lib/src/math/cosf] - - [0xD70B0, c, ../lib/src/_Printf] - - [0xD7D70, c, ../lib/src/guMtxCatF] - - [0xD7F80, c, ../lib/src/contramwrite] - - [0xD8330, c, ../lib/src/osEepromRead] - - [0xD8630, c, ../lib/src/__osAiDeviceBusy] - - [0xD8660, asm, ../lib/asm/osSetIntMask] - - [0xD8700, c, ../lib/src/osDestroyThread] - - [0xD8800, c, ../lib/src/__osSiDeviceBusy] - - [0xD8830, c, ../lib/src/osLeoDiskInit] - - [0xD8920, asm, ../lib/asm/__osSetCompare] - - [0xD8930, c, ../lib/src/__osResetGlobalIntMask] - - [0xD8990, c, ../lib/src/__osEPiRawWriteIo] - - [0xD89E0, c, ../lib/src/osYieldThread] - - [0xD8A30, asm, ../lib/asm/__osProbeTLB] - - [0xD8AF0, c, ../lib/src/crc] - - [0xD8C70, c, ../lib/src/string] - - [0xD8D10, c, ../lib/src/_Litob] - - [0xD8FB0, c, ../lib/src/_Ldtob] - - [0xD9A70, c, ../lib/src/ldiv] - - [0xD9C00, bin, lib/PR/boot/F3D_boot] - - [0xD9CD0, bin, lib/PR/f3dex/F3DEX] - - [0xDB0B0, bin, lib/PR/f3dlx/F3DLX] - - [0xDD0D0, data, data_main] - - [0xDD304, i1, crash_screen_font, 8, 136] - - [0xDD38C, bin, unkDD38C] - - [0xEC358, rodata, rodata_main] - - [0xF7650, bss, bss_main] - - name: seg2 - type: code - bss_size: 0xFD180 # 0x3F460 - start: 0xF7650 - vram: 0x8028DF00 - subsegments: - - [0xF7650, c, race_logic] - - [0xFA370, c, render_courses] - - [0x100148, c, actors] - - [0x10CE80, c, skybox_and_splitscreen] - - [0x111360, c, memory] - - [0x119A00, c, actors_extended] - - [0x11E750, c, math_util] - - [0x121F80, data, data_seg2] - - [0x1229D0, rodata, rodata_seg2] - - [0x123840, bss, bss_seg2] - - name: credits - type: code - bss_size: 0x1A0 - start: 0x123840 # end: 0x12B360 - vram: 0x80280000 - subsegments: - - [0x123840, c, code_80280000] - - [0x123E90, c, code_80280650] - - [0x124E50, c, camera_junk] - - [0x124FC0, c, code_80281780] - - [0x125480, c, code_80281C40] - - [0x1257E0, c, code_80281FA0] - - [0x128680, data, data_credits] - - [0x12ACC4, rodata, rodata_credits] - - [0x12ACE0, bss, bss_credits] - #- name: unkData - # type: bin - # start: 0x1313E0 - # vram: 0xDD000000 - - #- name: models - # type: mio0 - # start: 0x821F10 - # vram: 0x0C000000 - - - [0xC00000] # end of rom diff --git a/tools/yaml/mk64.us.yaml b/tools/yaml/mk64.us.yaml deleted file mode 100644 index 8c8cc764c..000000000 --- a/tools/yaml/mk64.us.yaml +++ /dev/null @@ -1,255 +0,0 @@ -name: Mario Kart 64 US -sha1: 579c48e211ae952530ffc8738709f078d5dd215e -options: - basename: mk64 - target_path: baserom.us.z64 - base_path: . - compiler: IDO - platform: n64 - target_path: baserom.us.z64 - build_path: build/us - find_file_boundaries: True - header_encoding: ASCII - ld_script_path: mk64.us.ld - asset_path: assets/us - # platform: n64 - # undefined_funcs_auto: True - # undefined_funcs_auto_path: undefined_funcs_auto.txt - # undefined_syms_auto: True - # undefined_syms_auto_path: undefined_syms_auto.txt - # symbol_addrs_path: symbol_addrs.txt - asm_path: asm/us - # src_path: src - # extensions_path: tools/splat_ext - mips_abi_float_regs: o32 - section_order: [".text", ".data", ".rodata", ".bss"] - # auto_all_sections: [".data", ".rodata", ".bss"] -segments: - - name: header - type: header - start: 0x0 - - - name: boot - type: code - start: 0x40 - vram: 0xA4000040 - subsegments: - - [0x0040, asm, boot] - - [0x0B70, bin, rspboot_font] - - name: main - type: code - bss_size: 0x18985C - start: 0x1000 - vram: 0x80000400 - subsegments: - - [0x1000, asm, entry] - - [0x1050, c, main] - - [0x35B0, c, code_800029B0] - - [0x4150, c, profiler] - - [0x4CC0, c, crash_screen] - - [0x5340, c, code_80004740] - - [0x5AF0, c, staff_ghosts] - - [0x6BB0, asm, unused_overflow_check] - - [0x6BD0, c, code_80005FD0] - - [0x1D0D0, c, camera] - - [0x20580, c, render_player] - - [0x27C40, c, kart_dma] - - [0x28900, c, code_80027D00] - - [0x39FC0, c, spawn_players] - - [0x3E840, c, code_8003DC40] - - [0x40C30, asm, unused_mio0_decode] - - [0x40CD0, asm, mio0_decode] - - [0x411D0, asm, tkmk00_decode] - - [0x41900, c, gbiMacro] - - [0x41A50, c, math_util_2] - - [0x43DB0, c, code_800431B0] - - [0x58860, c, code_80057C60] - - [0x6F5C0, c, code_8006E9C0] - - [0x72B00, c, update_objects] - - [0x87A70, c, code_80086E70] - - [0x8CDD0, c, effects] - - [0x920C0, c, code_800914A0] - - [0x92350, c, code_80091750] - - [0xB05B0, c, code_800AF9B0] - - [0xB0F50, c, menus] - - [0xB51E0, c, save] - - [0xB77F0, c, audio/synthesis] - - [0xB99E0, c, audio/heap] - - [0xBB680, c, audio/load] - - [0xBD170, c, audio/playback] - - [0xBEA50, c, audio/effects] - - [0xBF4F0, c, audio/seqplayer] - - [0xC1FF0, c, audio/external] - - [0xCBF30, c, audio/port_eu] - - [0xCCB70, c, ../lib/src/osCreateThread] - - [0xCCCC0, c, ../lib/src/osInitialize] - - [0xCCF60, c, ../lib/src/osStartThread] - - [0xCD0B0, c, ../lib/src/osCreateViManager] - - [0xCD450, c, ../lib/src/osViSetMode] - - [0xCD4C0, c, ../lib/src/osViBlack] - - [0xCD530, c, ../lib/src/osViSetSpecialFeatures] - - [0xCD6F0, c, ../lib/src/osCreatePiManager] - - [0xCD880, c, ../lib/src/osSetThreadPri] - - [0xCD960, c, ../lib/src/osCreateMesgQueue] - - [0xCD990, c, ../lib/src/osViSetEvent] - - [0xCDA00, c, ../lib/src/osSetEventMesg] - - [0xCDA70, c, ../lib/src/osSpTaskLoadGo] - - [0xCDD30, c, ../lib/src/osContInit] - - [0xCE0F0, c, ../lib/src/osContStartReadData] - - [0xCE350, c, ../lib/src/osRecvMesg] - - [0xCE490, asm, ../lib/asm/osWritebackDCacheAll] - - [0xCE4C0, c, ../lib/src/osSendMesg] - - [0xCE610, c, ../lib/src/osViSwapBuffer] - - [0xCE660, asm, ../lib/asm/bzero] - - [0xCE700, asm, ../lib/asm/osInvalICache] - - [0xCE780, asm, ../lib/asm/osInvalDCache] # did this one - - [0xCE830, c, ../lib/src/osPiStartDma] # didn't do this one - - [0xCE940, c, ../lib/src/osSpTaskYield] - - [0xCE960, c, ../lib/src/osSpTaskYielded] - - [0xCE9E0, c, ../lib/src/osGetTime] - - [0xCEA70, c, ../lib/src/math/llmuldiv] - - [0xCED30, c, ../lib/src/__osGetCurrFaultedThread] - - [0xCED40, asm, ../lib/asm/sqrtf] - - [0xCED50, c, ../lib/src/guOrthoF] - - [0xCEF10, c, ../lib/src/osSetTime] - - [0xCEF40, c, ../lib/src/osEepromProbe] - - [0xCEFB0, c, ../lib/src/osPfsIsPlug] - - [0xCF320, c, ../lib/src/osPfsInit] - - [0xCF4E0, c, ../lib/src/osPfsNumFiles] - - [0xCF630, c, ../lib/src/osPfsFileState] - - [0xCF920, c, ../lib/src/osPfsFreeBlocks] - - [0xCFA70, c, ../lib/src/guRotateF] - - [0xCFC60, c, ../lib/src/guScaleF] - - [0xCFD00, c, ../lib/src/guPerspectiveF] - - [0xCFF90, c, ../lib/src/guLookAtF] - - [0xD02C0, c, ../lib/src/guTranslateF] - - [0xD0360, c, ../lib/src/osSyncPrintf] - - [0xD03C0, c, ../lib/src/guMtxCatL] - - [0xD0480, c, ../lib/src/osPfsSearchFile] - - [0xD0640, c, ../lib/src/osPfsDeleteFile] - - [0xD0C50, c, ../lib/src/osEepromLongWrite] - - [0xD0D90, c, ../lib/src/osEepromLongRead] - - [0xD0ED0, c, ../lib/src/osPfsReadWriteFile] - - [0xD13D0, c, ../lib/src/osPfsAllocateFile] - - [0xD1B80, c, ../lib/src/osAiSetFrequency] - - [0xD1CE0, c, ../lib/src/osAiGetLength] - - [0xD1CF0, c, ../lib/src/osAiSetNextBuffer] - - [0xD1DA0, c, ../lib/src/osGetCount] - - [0xD1DB0, asm, ../lib/asm/__osException] - - [0xD26B0, asm, ../lib/asm/__osDisableInt] - - [0xD26D0, asm, ../lib/asm/__osRestoreInt] - - [0xD26F0, c, ../lib/src/__osDequeueThread] - - [0xD2730, asm, ../lib/asm/__osSetSR] - - [0xD2740, asm, ../lib/asm/__osGetSR] - - [0xD2750, asm, ../lib/asm/__osSetFpcCsr] - - [0xD2760, c, ../lib/src/__osSiRawReadIo] - - [0xD27B0, c, ../lib/src/__osSiRawWriteIo] - - [0xD2800, asm, ../lib/asm/osWritebackDCache] - - [0xD2880, asm, ../lib/asm/osMapTLBRdb] - - [0xD28E0, c, ../lib/src/osPiRawReadIo] - - [0xD2940, c, ../lib/src/__osSetHWIntrRoutine] - - [0xD2990, c, ../lib/src/__osLeoInterrupt] - - [0xD3210, c, ../lib/src/osTimer] - - [0xD3610, c, ../lib/src/osGetThreadPri] - - [0xD3630, c, ../lib/src/__osViInit] - - [0xD3780, c, ../lib/src/__osViGetCurrentContext] - - [0xD3790, c, ../lib/src/__osViSwapContext] - - [0xD3AF0, c, ../lib/src/__osPiCreateAccessQueue] - - [0xD3BB0, c, ../lib/src/osPiRawStartDma] - - [0xD3C90, c, ../lib/src/osEPiRawStartDma] - - [0xD3D70, c, ../lib/src/__osDevMgrMain] - - [0xD4120, c, ../lib/src/bcopy] - - [0xD4430, c, ../lib/src/osVirtualToPhysical] - - [0xD44B0, c, ../lib/src/__osSpSetStatus] - - [0xD44C0, c, ../lib/src/__osSpSetPc] - - [0xD4500, c, ../lib/src/__osSpRawStartDma] - - [0xD4590, c, ../lib/src/__osSpDeviceBusy] - - [0xD45C0, c, ../lib/src/osSetTimer] - - [0xD46A0, c, ../lib/src/__osSiRawStartDma] - - [0xD4750, c, ../lib/src/__osSiCreateAccessQueue] - - [0xD4810, c, ../lib/src/osJamMesg] - - [0xD4960, c, ../lib/src/osPiGetCmdQueue] - - [0xD4990, c, ../lib/src/__osSpGetStatus] - - [0xD49A0, c, ../lib/src/guMtxF2L] - - [0xD4C10, c, ../lib/src/osEepromWrite] - - [0xD50F0, c, ../lib/src/contpfs] - - [0xD5E50, c, ../lib/src/osPfsChecker] - - [0xD68B0, c, ../lib/src/contramread] - - [0xD6C60, c, ../lib/src/guNormalize] - - [0xD6CF0, c, ../lib/src/math/sinf] - - [0xD6EB0, c, ../lib/src/math/cosf] - - [0xD7020, c, ../lib/src/_Printf] - - [0xD7CE0, c, ../lib/src/guMtxCatF] - - [0xD7EF0, c, ../lib/src/contramwrite] - - [0xD82A0, c, ../lib/src/osEepromRead] - - [0xD85A0, c, ../lib/src/__osAiDeviceBusy] - - [0xD85D0, asm, ../lib/asm/osSetIntMask] - - [0xD8670, c, ../lib/src/osDestroyThread] - - [0xD8770, c, ../lib/src/__osSiDeviceBusy] - - [0xD87A0, c, ../lib/src/osLeoDiskInit] - - [0xD8890, asm, ../lib/asm/__osSetCompare] - - [0xD88A0, c, ../lib/src/__osResetGlobalIntMask] - - [0xD8900, c, ../lib/src/__osEPiRawWriteIo] - - [0xD8950, c, ../lib/src/osYieldThread] - - [0xD89A0, asm, ../lib/asm/__osProbeTLB] - - [0xD8A60, c, ../lib/src/crc] - - [0xD8BE0, c, ../lib/src/string] - - [0xD8C80, c, ../lib/src/_Litob] - - [0xD8F20, c, ../lib/src/_Ldtob] - - [0xD99E0, c, ../lib/src/ldiv] - - [0xD9B70, bin, lib/PR/boot/F3D_boot] - - [0xD9C40, bin, lib/PR/f3dex/F3DEX] - - [0xDB020, bin, lib/PR/f3dlx/F3DLX] - - [0xDC430, bin, lib/PR/audio/aspMain] - - [0xDD0D0, data, data_main] - - [0xDD274, bin, textures/crash_screen/crash_screen_font] - - [0xEC358, rodata, rodata_main] - - [0xF4900, bin, lib/PR/f3d/F3DEX_data] - - [0xF5100, bin, lib/PR/f3d/F3DLX_data] - - [0xF5900, bin, lib/PR/audio/aspMain_data] - - name: seg2 - type: code - bss_size: 0xFD180 # 0x3F460 - start: 0xF7510 - vram: 0x8028DF00 - subsegments: - - [0xF7510, c, race_logic] - - [0xFA230, c, render_courses] - - [0x100060, c, actors] - - [0x10CD40, c, skybox_and_splitscreen] - - [0x111180, c, memory] - - [0x114080, c, code_802AAA70] - - [0x119820, c, actors_extended] - - [0x11E570, c, math_util] - - [0x121DA0, data, data_seg2] - #- [0x1227D0, data, race_logic] # race_logic .data location messed up?!? - #- [0x1227F0, rodata, race_logic] - - [0x1227D0, rodata, race_logic] - - [0x1228D0, rodata, render_courses] - - [0x122B10, rodata, actors] - - [0x1231C0, rodata, skybox_and_splitscreen] - - [0x123240, rodata, memory] - - [0x123410, rodata, code_802AAA70] - - [0x123490, rodata, actors_extended] - - [0x1235C0, rodata, math_util] - - [0x123640, hasm, bss_seg2] - - name: credits - type: code - bss_size: 0x1A0 - start: 0x123640 # end: 0x12B360 - vram: 0x80280000 - subsegments: - - [0x123640, c, code_80280000] - - [0x123C90, c, code_80280650] - - [0x124C50, c, camera_junk] - - [0x124DC0, c, code_80281780] - - [0x125280, c, code_80281C40] - - [0x1255E0, c, ceremony_and_credits] - - [0x128480, data, data_credits] - - [0x12A1B0, rodata, code_80280650] - - [0x12A1D0, rodata, camera_junk] - - [0x12A1F0, rodata, credits] - - [0x12AAB0, rodata, ceremony_and_credits] - - [0x12AAE0, bss, bss_credits] - - - [0xC00000] # end of rom diff --git a/tools/yaml/yamls are unused.txt b/tools/yaml/yamls are unused.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/yamls/us/data_segment2.yml b/yamls/us/data_segment2.yml deleted file mode 100644 index 117ad7297..000000000 --- a/yamls/us/data_segment2.yml +++ /dev/null @@ -1,327 +0,0 @@ -:config: - segments: - - [0x02, 0x12AAE0] - - [0x0D, 0x132B50] - header: - code: - - '#include ' - - '#include ' - - '#include ' - - '#include ' - - '#include ' - - '#include "data_segment2.h"' - - '#include ' - header: - - '#include ' -# D_02007650: -# symbol: D_02007650 -# type: gfx -# offset: 0x7650 -# D_020076B0: -# symbol: D_020076B0 -# type: Gfx -# offset: 0x76B0 -# D_020076E0: -# symbol: D_020076E0 -# type: Gfx -# offset: 0x76E0 -# D_02007708: -# symbol: D_02007708 -# type: Gfx -# offset: 0x7708 -# D_02007728: -# symbol: D_02007728 -# type: Gfx -# offset: 0x7728 -# D_02007748: -# symbol: D_02007748 -# type: Gfx -# offset: 0x7748 -# D_02007768: -# symbol: D_02007768 -# type: Gfx -# offset: 0x7768 -# D_02007788: -# symbol: D_02007788 -# type: Gfx -# offset: 0x7788 -# D_020077A8: -# symbol: D_020077A8 -# type: Gfx -# offset: 0x77A8 -# D_020077D8: -# symbol: D_020077D8 -# type: Gfx -# offset: 0x77D8 -# D_020077F8: -# symbol: D_020077F8 -# type: Gfx -# offset: 0x77F8 -# D_02007818: -# symbol: D_02007818 -# type: Gfx -# offset: 0x7818 -# D_02007838: -# symbol: D_02007838 -# type: Gfx -# offset: 0x7838 -# D_02007858: -# symbol: D_02007858 -# type: Gfx -# offset: 0x7858 -# D_02007878: -# symbol: D_02007878 -# type: Gfx -# offset: 0x7878 -# D_02007898: -# symbol: D_02007898 -# type: Gfx -# offset: 0x7898 -# D_020078B8: -# symbol: D_020078B8 -# type: Gfx -# offset: 0x78B8 -# D_020078D8: -# symbol: D_020078D8 -# type: Gfx -# offset: 0x78D8 -# D_020078F8: -# symbol: D_020078F8 -# type: Gfx -# offset: 0x78F8 -# D_02007918: -# symbol: D_02007918 -# type: Gfx -# offset: 0x7918 -# D_02007938: -# symbol: D_02007938 -# type: Gfx -# offset: 0x7938 -# D_02007958: -# symbol: D_02007958 -# type: Gfx -# offset: 0x7958 -# D_02007978: -# symbol: D_02007978 -# type: Gfx -# offset: 0x7978 -# D_02007998: -# symbol: D_02007998 -# type: Gfx -# offset: 0x7998 -# D_020079B8: -# symbol: D_020079B8 -# type: Gfx -# offset: 0x79B8 -# D_020079D8: -# symbol: D_020079D8 -# type: Gfx -# offset: 0x79D8 -# D_020079F8: -# symbol: D_020079F8 -# type: Gfx -# offset: 0x79F8 -# D_02007A18: -# symbol: D_02007A18 -# type: Gfx -# offset: 0x7A18 -# D_02007A38: -# symbol: D_02007A38 -# type: Gfx -# offset: 0x7A38 -# D_02007A58: -# symbol: D_02007A58 -# type: Gfx -# offset: 0x7A58 -# D_02007A78: -# symbol: D_02007A78 -# type: Gfx -# offset: 0x7A78 -# D_02007A98: -# symbol: D_02007A98 -# type: Gfx -# offset: 0x7A98 -# D_02007AB8: -# symbol: D_02007AB8 -# type: Gfx -# offset: 0x7AB8 -# D_02007AD8: -# symbol: D_02007AD8 -# type: Gfx -# offset: 0x7AD8 -# D_02007AF8: -# symbol: D_02007AF8 -# type: Gfx -# offset: 0x7AF8 -# D_02007B18: -# symbol: D_02007B18 -# type: Gfx -# offset: 0x7B18 -# D_02007B38: # unused -# symbol: D_02007B38 -# type: vtx -# offset: 0x7B38 -# count: 8 -# D_02007BB8: -# symbol: D_02007BB8 -# type: vtx -# offset: 0x7BB8 -# count: 54 -# D_02007BD8: -# symbol: D_02007BD8 -# type: vtx -# offset: 0x7BD8 -# count: 2 -# D_02007BF8: -# symbol: D_02007BF8 -# type: vtx -# offset: 0x7BF8 -# count: 2 -# D_02007C18: -# symbol: D_02007C18 -# type: vtx -# offset: 0x7C18 -# count: 2 -# D_02007C38: -# symbol: D_02007C38 -# type: vtx -# offset: 0x7C38 -# count: 2 -# D_02007C58: -# symbol: D_02007C58 -# type: vtx -# offset: 0x7C58 -# count: 2 -# D_02007C78: -# symbol: D_02007C78 -# type: vtx -# offset: 0x7C78 -# count: 2 -# D_02007C98: -# symbol: D_02007C98 -# type: vtx -# offset: 0x7C98 -# count: 2 -# D_02007CB8: -# symbol: D_02007CB8 -# type: vtx -# offset: 0x7CB8 -# count: 2 -# D_02007CD8: -# symbol: D_02007CD8 -# type: vtx -# offset: 0x7CD8 -# count: 2 -# D_02007CF8: -# symbol: D_02007CF8 -# type: vtx -# offset: 0x7CF8 -# count: 2 -# D_02007D18: -# symbol: D_02007D18 -# type: vtx -# offset: 0x7D18 -# count: 2 -# D_02007D38: -# symbol: D_02007D38 -# type: vtx -# offset: 0x7D38 -# count: 2 -# D_02007D58: -# symbol: D_02007D58 -# type: vtx -# offset: 0x7D58 -# count: 2 -# D_02007D78: -# symbol: D_02007D78 -# type: vtx -# offset: 0x7D78 -# count: 2 -# D_02007D98: -# symbol: D_02007D98 -# type: vtx -# offset: 0x7D98 -# count: 2 -# D_02007DB8: -# symbol: D_02007DB8 -# type: vtx -# offset: 0x7DB8 -# count: 2 -# D_02007DD8: -# symbol: D_02007DD8 -# type: vtx -# offset: 0x7DD8 -# count: 2 -# D_02007DF8: -# symbol: D_02007DF8 -# type: vtx -# offset: 0x7DF8 -# count: 2 -# D_02007E18: -# symbol: D_02007E18 -# type: vtx -# offset: 0x7E18 -# count: 2 -# D_02007E38: -# symbol: D_02007E38 -# type: vtx -# offset: 0x7E38 -# count: 2 -# D_02007E58: -# symbol: D_02007E58 -# type: vtx -# offset: 0x7E58 -# count: 2 -# D_02007E78: -# symbol: D_02007E78 -# type: vtx -# offset: 0x7E78 -# count: 2 -# D_02007E98: -# symbol: D_02007E98 -# type: vtx -# offset: 0x7E98 -# count: 2 -# D_02007EB8: -# symbol: D_02007EB8 -# type: vtx -# offset: 0x7EB8 -# count: 2 -# D_02007ED8: -# symbol: D_02007ED8 -# type: vtx -# offset: 0x7ED8 -# count: 2 -# D_02007EF8: -# symbol: D_02007EF8 -# type: vtx -# offset: 0x7EF8 -# count: 2 -# D_02007F18: -# symbol: D_02007F18 -# type: gfx -# offset: 0x7F18 -# D_02007F48: -# symbol: D_02007F48 -# type: gfx -# offset: 0x7F48 -# D_02007F60: -# symbol: D_02007F60 -# type: gfx -# offset: 0x7F60 -# D_02007FC8: -# symbol: D_02007FC8 -# type: gfx -# offset: 0x7FC8 -# D_02008008: -# symbol: D_02008008 -# type: gfx -# offset: 0x8008 -# D_02008030: -# symbol: D_02008030 -# type: gfx -# offset: 0x8030 -# D_02008058: -# symbol: D_02008058 -# type: gfx -# offset: 0x8058