diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 5200f1e2..65b57882 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -160,8 +160,8 @@ segments: - [0xF44940, c, code_7090] - [0xF44b60, c, code_72B0] - [0xF45810, c, code_7F60] - - [0xF46500, bin, untouched] -# # - [0xF21EA0, c, code_8C50] #DONE + - [0xF46500, c, code_8C50] + - [0xF475C0, bin, untouched] # # - [0xF22F80, c, code_9D30] #DONE # # - [0xF23E00, c, code_ABB0] #DONE # # - [0xF260B0, c, code_CE60] #DONE @@ -358,9 +358,9 @@ segments: # # - [0xF4DCD0, c, io/epirawread] #DONE # # - [0xF4DD20, c, os/setglobalintmask] #DONE # # - [0xF4DD70, c, os/yieldthread] #DONE -# # - [0xF4DDC0, bin, n_aspMain_text] -# # - [0xF4EA20, bin, gSPF3DEX_fifo_text] -# # - [0xF4FE50, bin, gSPL3DEX_fifo_text] + - [0xF71750, bin, n_aspMain_text] + - [0xF723B0, bin, gSPF3DEX_fifo_text] + - [0xF737E0, bin, gSPL3DEX_fifo_text] - [0xF747D0, linker_offset, DATA_START] #data Section - [0xF747D0, .data, code_0] - [0xF74830, .data, code_660] @@ -373,8 +373,8 @@ segments: - [0xF74AA0, .data, code_7090] - [0xF74AB0, bin, data_37ED0] #unreferenced - [0xF74AC0, .data, code_7F60] - - [0xF74AD0, bin, remain_core1_data] -# # - [0xF51140, .data, code_8C50] + - [0xF74AD0, .data, code_8C50] + - [0xF74C60, bin, remain_core1_data] # # - [0xF51280, .data, code_9D30] # # - [0xF51430, .data, code_ABB0] # # - [0xF51440, .data, code_CE60] @@ -453,9 +453,9 @@ segments: # # - [0xF54600, .rodata, io/devmgr] # # - [0xF54620, .rodata, audio/env] # # - [0xF54670, .rodata, audio/resample] -# # - [0xF546B0, bin, n_aspMain_data] -# # - [0xF54960, bin, gSPF3DEX_fifo_data] -# # - [0xF55160, bin, gSPL3DEX_fifo_data] + - [0xF77F20, bin, n_aspMain_data] + - [0xF781D0, bin, gSPF3DEX_fifo_data] + - [0xF789D0, bin, gSPL3DEX_fifo_data] - [0xF791D0, .bss, code_0] - [0xF791D0, .bss, code_660] - [0xF791D0, .bss, inflate] @@ -466,7 +466,7 @@ segments: - [0xF791D0, .bss, code_5650] - [0xF791D0, .bss, code_7090] - [0xF791D0, .bss, code_72B0] -# # - [0xF791D0, .bss, code_8C50] + - [0xF791D0, .bss, code_8C50] # # - [0xF791D0, .bss, code_ABB0] # # - [0xF791D0, .bss, code_CE60] # # - [0xF791D0, .bss, code_E360] diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index aaf6b727..689bdc26 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -1,5 +1,4 @@ /* Microcode renames to match ucode.h names */ -/* n_aspMainTextStart = _binary_bin_core1_n_aspMain_text_bin_start; n_aspMainTextEnd = _binary_bin_core1_n_aspMain_text_bin_end; gSPF3DEX_fifoTextStart = _binary_bin_core1_gSPF3DEX_fifo_text_bin_start; @@ -12,9 +11,9 @@ gSPF3DEX_fifoDataStart = _binary_bin_core1_gSPF3DEX_fifo_data_bin_start; gSPF3DEX_fifoDataEnd = _binary_bin_core1_gSPF3DEX_fifo_data_bin_end; gSPL3DEX_fifoDataStart = _binary_bin_core1_gSPL3DEX_fifo_data_bin_start; gSPL3DEX_fifoDataEnd = _binary_bin_core1_gSPL3DEX_fifo_data_bin_end; -*/ /* Fixed-address buffers */ +D_80000300 = 0x80000300; D_8000E800 = 0x8000E800; D_8002D500 = 0x8002D500; D_8023DA00 = 0x8023DA00; /* confirm */ @@ -34,8 +33,9 @@ boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; /* Temporary Correct*/ -D_80000300 = 0x80000300; +func_8024BDAC = 0x8024ba3c; func_8024BE30 = 0x8024BAC0; +func_8024BFAC = 0x8024bc18; func_8024C428 = 0x8024C078; viewport_get_position_vec3f = 0x8024c21c; veiwport_get_position_vec3w = 0x8024c240; @@ -43,10 +43,12 @@ viewport_get_rotation_vec3f = 0x8024c3b4; func_8024E71C = 0x8024e36c; pfsManager_update = 0x8024e418; pfsManager_init = 0x8024ecac; +pfsManager_getStartReadData = 0x8024ee00; musicInstruments_init = 0x8024f130; func_80250650 = 0x802502a0; rumbleManager_80250C08 = 0x80250858; rumbleManager_init = 0x802508d4; +rumbleManager_80250FC0 = 0x80250c10; overlayManagerloadCore2 = 0x80250f58; func_802535A8 = 0x802531f8; func_80254008 = 0x80253c58; @@ -61,6 +63,7 @@ func_80255ACC = 0x8025571c; write_file_blocks = 0x80255780; func_80255C30 = 0x80255880; func_80255CD8 = 0x80255928; +func_80255D0C = 0x8025595c; func_80255D44 = 0x80255994; ml_dotProduct_vec3f = 0x80255c84; ml_distance_vec3f = 0x80255cb4; @@ -76,7 +79,9 @@ ml_vec3f_diff_copy = 0x80258810; ml_vec3f_diff = 0x80258844; ml_vec3f_add = 0x80258898; func_8025AFB0 = 0x8025AC00; +func_8025AFB8 = 0x8025ac08; sns_find_and_parse_payload = 0x8025ae30; +___osGetSR = 0x8025ac30; sns_write_payload_over_heap = 0x8025b350; DEBUG_use_special_bootmap = 0x8025b460; n_alInit = 0x8025bf70; @@ -98,7 +103,6 @@ osWriteBackDCacheAll = 0x80263830; __osInitialize_common = 0x80263860; osCreateThread = 0x80263b50; sinf = 0x80263ca0; -guMtxIdentF = 0x80264e30; alCents2Ratio = 0x80263e60; alHeapInit = 0x80263eb0; osCreateMesgQueue = 0x80263ef0; @@ -120,13 +124,27 @@ osDestroyThread = 0x80264a00; osSendMesg = 0x80264b00; osSetThreadPri = 0x80264c50; guMtxF2L = 0x80264d30; +guMtxIdentF = 0x80264e30; gu_sqrtf = 0x80264fa0; cosf = 0x80264fb0; osSetIntMask = 0x80265120; - +osDpSetStatus = 0x802651c0; +osSpTaskLoad = 0x802652ec; +osSpTaskStartGo = 0x8026547c; +osDpGetStatus = 0x802654c0; +osViGetCurrentFramebuffer = 0x802654d0; +osStopTimer = 0x80265510; +osSetTimer = 0x80265600; +__d_to_ull = 0x80265718; +__ull_to_d = 0x80265884; +osSpTaskYielded = 0x802658f0; +osSpTaskYield = 0x80265970; +osViSetMode = 0x80265990; +osSetEventMesg = 0x80265a00; framebuffer_width = 0x802762d8; framebuffer_height = 0x802762dc; n_syn = 0x80276bd4; +osClockRate = 0x80276e70; osViClock = 0x80276e78; core2_TEXT_START = 0x80286db0; @@ -174,4 +192,4 @@ func_8033EF58 = 0x8033f3a8; func_8034C630 = 0x8034ca90; func_8034E698 = 0x8034eaf8; -/* Temporary */ +/* Temporary */ \ No newline at end of file diff --git a/src/core1/code_1D00.c b/src/core1/code_1D00.c index e3a5e46a..bf022604 100644 --- a/src/core1/code_1D00.c +++ b/src/core1/code_1D00.c @@ -292,9 +292,8 @@ void audioManager_init(void){ if(osTvType != OS_TV_NTSC) osViClock = 0x2e6025c; #elif VERSION == VERSION_PAL -PAL_EXCLUSIVE( osViClock = 0x2f5b2d2; -) +#endif audioManager_create(); sfxInstruments_init(); musicInstruments_init(); @@ -610,6 +609,7 @@ void func_802403F0(void) { void *audioManager_getThread_PAL(void){ return &audioManager.thread; } +#endif void audioManager_stopThread(void){ if(D_80275774){ diff --git a/src/core1/code_8C50.c b/src/core1/code_8C50.c index 64f8958a..fba5eacb 100644 --- a/src/core1/code_8C50.c +++ b/src/core1/code_8C50.c @@ -1,7 +1,7 @@ #include #include "functions.h" #include "variables.h" - +#include "version.h" typedef struct { s32 unk0; @@ -283,7 +283,11 @@ void func_80246D78(void){ if(D_802806D0){ osStopTimer(&D_802806B0); +#if VERSION == VERSION_USA_1_0 osSetTimer(&D_802806B0, ((osClockRate / 60)* 2) / 3, 0, &D_8027FB60, CORE1_8C50_EVENT_CONT_TIMER); +#elif VERSION == VERSION_PAL + osSetTimer(&D_802806B0, ((osClockRate / 60.0)* 2) / 3, 0, &D_8027FB60, CORE1_8C50_EVENT_CONT_TIMER); +#endif } } @@ -389,16 +393,40 @@ void func_8024730C(void){ {640, 1024, 0x2501FF, 0xE0204, 2} } }; - +#if VERSION == VERSION_PAL + static OSViMode D_80275A48 = { + OS_VI_PAL_LPN1, /* type */ + { + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | 0x3200, /*ctrl*/ + 320, /*width*/ + 0x404233A, /*burst*/ + 0x271, /*vSync*/ + 0x150C69, /* hSync*/ + 0xC6F0C6E, /* leap*/ + 0x800300, /* hStart*/ + 0, /* xScale*/ + 0, /* vCurrent*/ + }, + { + {640, 1024, 0x5F0239, 0x9026B, 2}, + {640, 1024, 0x5F0239, 0x9026B, 2} + } + }; +#endif static s32 D_802806D4; if(!D_802806D4){ D_802806D4 = TRUE; +#if VERSION == VERSION_USA_1_0 if(osTvType != OS_TV_NTSC){ osViSetMode(&D_802759A8); } else { osViSetMode(&D_802759F8); } +#elif VERSION == VERSION_PAL + // if(&D_802759A8){} + osViSetMode(&D_80275A48); +#endif rumbleManager_80250FC0(); //stop controller motors do{ osDpSetStatus(DPC_STATUS_FLUSH);