mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-07 06:05:31 -04:00
+8
-4
@@ -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")
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ nop
|
||||
.endif
|
||||
|
||||
.text
|
||||
gsymbol osTvType 0x80000300
|
||||
# gsymbol osTvType 0x80000300
|
||||
gsymbol osRomType 0x80000304
|
||||
gsymbol osRomBase 0x80000308
|
||||
gsymbol osResetType 0x8000030C
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef MK64_H
|
||||
#define MK64_H
|
||||
|
||||
#include <libultraship.h>
|
||||
|
||||
/**
|
||||
* @file mk64.h
|
||||
* Global header for mk64
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
#include <libultraship.h>
|
||||
|
||||
|
||||
extern u32 osTvType;
|
||||
extern u32 osResetType;
|
||||
|
||||
extern u8 osAppNmiBuffer[64];
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
#include <macros.h>
|
||||
#include <mk64.h>
|
||||
#include <defines.h>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#ifndef AUDIO_EXTERNAL_H
|
||||
#define AUDIO_EXTERNAL_H
|
||||
|
||||
#include "common_structs.h"
|
||||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
#include "camera.h"
|
||||
|
||||
#define ADSR_STATE_DISABLED 0
|
||||
|
||||
+20
-12
@@ -1,6 +1,6 @@
|
||||
#include <libultraship.h>
|
||||
#include <libultra/message.h>
|
||||
#include <macros.h>
|
||||
#include <PR/ucode.h>
|
||||
|
||||
#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];
|
||||
}
|
||||
|
||||
+11
-11
@@ -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);
|
||||
|
||||
+1
-1
@@ -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"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef CAMERA_H
|
||||
#define CAMERA_H
|
||||
|
||||
#include <libultraship.h>
|
||||
#include "common_structs.h"
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include <libultraship.h>
|
||||
#include <macros.h>
|
||||
#include <mk64.h>
|
||||
#include <stubs.h>
|
||||
|
||||
#include "code_800029B0.h"
|
||||
#include "memory.h"
|
||||
|
||||
+6
-6
@@ -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);
|
||||
|
||||
+5
-3
@@ -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
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <mk64.h>
|
||||
#include <debug.h>
|
||||
#include <common_structs.h>
|
||||
#include "../camera.h"
|
||||
#include "main.h"
|
||||
#include "memory.h"
|
||||
#include <assets/common_data.h>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#ifndef podium_ceremony_actors_H
|
||||
#define podium_ceremony_actors_H
|
||||
|
||||
#include "common_structs.h"
|
||||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
|
||||
enum CeremonyActorType {
|
||||
Initial,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#include <libultraship.h>
|
||||
#include <macros.h>
|
||||
#include "PR/gu.h"
|
||||
#include "main.h"
|
||||
#include <mk64.h>
|
||||
|
||||
|
||||
+29
-28
@@ -2,11 +2,12 @@
|
||||
#define D_800DC510_AS_U16
|
||||
#endif
|
||||
#include <libultraship.h>
|
||||
#include <PR/os.h>
|
||||
#include <PR/ucode.h>
|
||||
#include <libultra/vi.h>
|
||||
#include <libultra/os.h>
|
||||
#include <macros.h>
|
||||
#include <decode.h>
|
||||
#include <mk64.h>
|
||||
#include <stubs.h>
|
||||
|
||||
#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;
|
||||
|
||||
+5
-4
@@ -1,7 +1,8 @@
|
||||
#ifndef MATH_UTIL_2_H
|
||||
#define MATH_UTIL_2_H
|
||||
|
||||
#include "common_structs.h"
|
||||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
#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);
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
+6
-5
@@ -1,7 +1,8 @@
|
||||
#include <libultraship.h>
|
||||
#include <libultra/vi.h>
|
||||
#include "libultra_internal.h"
|
||||
#include "hardware.h"
|
||||
|
||||
extern u32 osTvType;
|
||||
#include <stubs.h>
|
||||
|
||||
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) {
|
||||
;
|
||||
|
||||
+14
-14
@@ -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;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <libultraship.h>
|
||||
#include "libultra_internal.h"
|
||||
#include "PR/rcp.h"
|
||||
#include "controller.h"
|
||||
|
||||
extern s32 __osPfsGetStatus(OSMesgQueue *, s32);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <libultraship.h>
|
||||
#include "libultra_internal.h"
|
||||
#include "PR/rcp.h"
|
||||
#include "controller.h"
|
||||
|
||||
extern s32 __osPfsGetStatus(OSMesgQueue *, s32);
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#ifndef _CONTROLLER_H
|
||||
#define _CONTROLLER_H
|
||||
#include "PR/os_internal.h"
|
||||
#include <libultraship.h>
|
||||
#include "PR/rcp.h"
|
||||
|
||||
//should go somewhere else but
|
||||
#define ARRLEN(x) ((s32)(sizeof(x) / sizeof(x[0])))
|
||||
|
||||
@@ -1,15 +1,8 @@
|
||||
#ifndef _LIBULTRA_INTERNAL_H_
|
||||
#define _LIBULTRA_INTERNAL_H_
|
||||
#include <libultraship.h>
|
||||
#include <PR/os_thread.h>
|
||||
#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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "libultra_internal.h"
|
||||
#include <stubs.h>
|
||||
#include "hardware.h"
|
||||
#include <macros.h>
|
||||
|
||||
@@ -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);
|
||||
|
||||
+3
-2
@@ -1,3 +1,4 @@
|
||||
#include <libultraship.h>
|
||||
#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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 <libultraship.h>
|
||||
|
||||
//https://github.com/LuigiBlood/64dd/wiki/Memory-Map
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include <math_util.h>
|
||||
#include <main.h>
|
||||
#include "buffers.h"
|
||||
#include <PR/rcp.h>
|
||||
#include "buffers/trig_tables.h"
|
||||
#include "math.h"
|
||||
#include "memory.h"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#ifndef MATH_UTIL_H
|
||||
#define MATH_UTIL_H
|
||||
|
||||
#include <libultra/types.h>
|
||||
|
||||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
|
||||
//#define sins(x) gSineTable[(u16) (x) >> 4]
|
||||
//#define coss(x) gCosineTable[(u16) (x) >> 4]
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#include <libultraship.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include <macros.h>
|
||||
#include <mk64.h>
|
||||
#include <common_structs.h>
|
||||
#include <defines.h>
|
||||
#include <course.h>
|
||||
#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) {
|
||||
|
||||
@@ -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*);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "code_800029B0.h"
|
||||
#include <common_structs.h>
|
||||
#include "memory.h"
|
||||
#include "camera.h"
|
||||
#include "../camera.h"
|
||||
#include <assets/common_data.h>
|
||||
#include "render_player.h"
|
||||
#include "code_80057C60.h"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef SKYBOX_AND_SPLITSCREEN_H
|
||||
#define SKYBOX_AND_SPLITSCREEN_H
|
||||
|
||||
#include <libultraship.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include "code_800029B0.h"
|
||||
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#include <libultraship.h>
|
||||
#include <libultraship/libultra.h>
|
||||
#include <stubs.h>
|
||||
|
||||
|
||||
u32 osTvType = OS_TV_NTSC;
|
||||
u32 osResetType;
|
||||
|
||||
u8 osAppNmiBuffer[64];
|
||||
+11
-11
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -1,327 +0,0 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x02, 0x12AAE0]
|
||||
- [0x0D, 0x132B50]
|
||||
header:
|
||||
code:
|
||||
- '#include <macros.h>'
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <common_structs.h>'
|
||||
- '#include <libultra/types.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
- '#include "data_segment2.h"'
|
||||
- '#include <assets/startup_logo.h>'
|
||||
header:
|
||||
- '#include <libultra/gbi.h>'
|
||||
# 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
|
||||
Reference in New Issue
Block a user