PAL: up to core1/rumblemanager.c

This commit is contained in:
Banjo Kazooie
2024-09-05 00:43:07 -05:00
parent 4fce59f41e
commit 17a0530ff8
5 changed files with 105 additions and 49 deletions

View File

@@ -132,12 +132,12 @@ segments:
# type: bin # type: bin
# start: 0xD954B0 # start: 0xD954B0
# - name: soundfont2ctl - name: soundfont2ctl
# type: bin type: bin
# start: 0xEA3EB0 start: 0xEC85E0
# - name: soundfont2tbl - name: soundfont2tbl
# type: bin type: bin
# start: 0xEADE60 start: 0xED2590
- name: core1 - name: core1
dir: core1 dir: core1
@@ -164,11 +164,11 @@ segments:
- [0xF475C0, c, code_ABB0] - [0xF475C0, c, code_ABB0]
- [0xF49870, c, code_CE60] - [0xF49870, c, code_CE60]
- [0xF4AD70, c, code_E360] - [0xF4AD70, c, code_E360]
- [0xF4B4C0, bin, untouched] - [0xF4B4C0, c, code_EAF0]
# # - [0xF27D40, c, code_EAF0] #DONE - [0xF4D3D0, c, code_10A00]
# # - [0xF29C50, c,code_10A00] - [0xF4E490, c, code_11AC0]
# # - [0xF2AD10, c, code_11AC0] #DONE - [0xF4F890, c, rumblemanager]
# # - [0xF2C160, c, rumblemanager] #DONE - [0xF50010, bin, untouched]
# # - [0xF2C890, c, code_13640] #DONE # # - [0xF2C890, c, code_13640] #DONE
# # - [0xF2C8D0, c, code_13680] #DONE # # - [0xF2C8D0, c, code_13680] #DONE
# # - [0xF2C920, c, overlaymanager] #DONE # # - [0xF2C920, c, overlaymanager] #DONE
@@ -376,11 +376,10 @@ segments:
- [0xF74C60, .data, code_ABB0] - [0xF74C60, .data, code_ABB0]
- [0xF74C70, .data, code_CE60] - [0xF74C70, .data, code_CE60]
- [0xF74CE0, .data, code_E360] - [0xF74CE0, .data, code_E360]
- [0xF74DD0, bin, remain_core1_data] - [0xF74DD0, .data, code_EAF0]
- [0xF74DE0, .data, code_10A00]
# # - [0xF51550, .data, code_EAF0] - [0xF74DF0, .data, code_11AC0]
# # - [0xF51560, .data, code_10A00] - [0xF75380, bin, remain_core1_data]
# # - [0xF51570, .data, code_11AC0]
# # - [0xF51B00, .data, overlaymanager] # # - [0xF51B00, .data, overlaymanager]
# # - [0xF51DA0, .data, code_13990] # # - [0xF51DA0, .data, code_13990]
# # - [0xF51DB0, .data, code_15B30] # # - [0xF51DB0, .data, code_15B30]
@@ -417,13 +416,12 @@ segments:
- [0xF76710, .rodata, code_5650] - [0xF76710, .rodata, code_5650]
- [0xF76770, .rodata, code_72B0] - [0xF76770, .rodata, code_72B0]
- [0xF76790, .rodata, code_7F60] - [0xF76790, .rodata, code_7F60]
# - [0xF767B0, .rodata, code_9D30]
- [0xF767B0, .rodata, code_CE60] - [0xF767B0, .rodata, code_CE60]
- [0xF76A80, bin, remain_core1_rodata] - [0xF76A80, .rodata, code_EAF0]
# # - [0xF53220, .rodata, code_EAF0] - [0xF76B00, .rodata, code_10A00]
# # - [0xF532A0, .rodata, code_10A00] - [0xF77210, .rodata, code_11AC0]
# # - [0xF539B0, .rodata, code_11AC0] - [0xF77220, .rodata, rumblemanager]
# # - [0xF539C0, .rodata, rumblemanager] - [0xF77230, bin, remain_core1_rodata]
# # - [0xF539D0, .rodata, overlaymanager] # # - [0xF539D0, .rodata, overlaymanager]
# # - [0xF53A50, .rodata, code_13990] # # - [0xF53A50, .rodata, code_13990]
# # - [0xF53A70, .rodata, code_18350] # # - [0xF53A70, .rodata, code_18350]
@@ -469,10 +467,10 @@ segments:
- [0xF791D0, .bss, code_ABB0] - [0xF791D0, .bss, code_ABB0]
- [0xF791D0, .bss, code_CE60] - [0xF791D0, .bss, code_CE60]
- [0xF791D0, .bss, code_E360] - [0xF791D0, .bss, code_E360]
# # - [0xF791D0, .bss, code_EAF0] - [0xF791D0, .bss, code_EAF0]
# # - [0xF791D0, .bss, code_10A00] - [0xF791D0, .bss, code_10A00]
# # - [0xF791D0, .bss, code_11AC0] - [0xF791D0, .bss, code_11AC0]
# # - [0xF791D0, .bss, rumblemanager] - [0xF791D0, .bss, rumblemanager]
# # - [0xF791D0, .bss, code_13640] # # - [0xF791D0, .bss, code_13640]
# # - [0xF791D0, .bss, overlaymanager] # # - [0xF791D0, .bss, overlaymanager]
# # - [0xF791D0, .bss, code_13990] # # - [0xF791D0, .bss, code_13990]

View File

@@ -33,27 +33,19 @@ boot_gOverlayTable = gOverlayTable;
boot_func_8023DA20 = func_8023DA20; boot_func_8023DA20 = func_8023DA20;
/* Temporary Correct*/ /* Temporary Correct*/
viewport_get_position_vec3f = 0x8024c21c;
veiwport_get_position_vec3w = 0x8024c240;
viewport_get_rotation_vec3f = 0x8024c3b4;
func_8024E71C = 0x8024e36c;
pfsManager_update = 0x8024e418;
pfsManager_init = 0x8024ecac;
pfsManager_getStartReadData = 0x8024ee00;
musicInstruments_init = 0x8024f130;
func_80250034 = 0x8024fc84;
func_80250530 = 0x80250180;
func_80250650 = 0x802502a0;
rumbleManager_80250C08 = 0x80250858;
rumbleManager_init = 0x802508d4;
rumbleManager_80250FC0 = 0x80250c10;
spriteGetFramePtr = 0x80250d18; spriteGetFramePtr = 0x80250d18;
overlayManagerloadCore2 = 0x80250f58; overlayManagerloadCore2 = 0x80250f58;
mlMtxGet = 0x80251000;
mlMtxIdent = 0x8025175c;
mlMtxRotPitch = 0x802518c8;
mlMtxRotYaw = 0x802519d4;
func_8025235C = 0x80251fac;
func_80253034 = 0x80252c84; func_80253034 = 0x80252c84;
func_802535A8 = 0x802531f8; func_802535A8 = 0x802531f8;
func_80254008 = 0x80253c58; func_80254008 = 0x80253c58;
func_80254028 = 0x80253c78; func_80254028 = 0x80253c78;
func_8025425C = 0x80253eac; func_8025425C = 0x80253eac;
memcpy = 0x80254258;
heap_init = 0x80254360; heap_init = 0x80254360;
malloc = 0x802548f8; malloc = 0x802548f8;
free = 0x80254d40; free = 0x80254d40;
@@ -70,12 +62,15 @@ ml_distance_vec3f = 0x80255cb4;
ml_vec3f_normalize_copy = 0x80256008; ml_vec3f_normalize_copy = 0x80256008;
ml_vec3f_normalize = 0x802560a0; ml_vec3f_normalize = 0x802560a0;
ml_vec3f_set_length_copy = 0x80256230; ml_vec3f_set_length_copy = 0x80256230;
ml_vec3f_pitch_rotate_copy = 0x802564bc;
ml_vec3f_yaw_rotate_copy = 0x80256550; ml_vec3f_yaw_rotate_copy = 0x80256550;
func_80256E24 = 0x80256a74;
ml_init = 0x80257074; ml_init = 0x80257074;
ml_map_f = 0x80257768; ml_map_f = 0x80257768;
func_802585E0 = 0x80258230; func_802585E0 = 0x80258230;
ml_sin_deg = 0x8025840c; ml_sin_deg = 0x8025840c;
ml_cos_deg = 0x8025843c; ml_cos_deg = 0x8025843c;
mlNormalizeAngle = 0x8025846c;
ml_vec3f_copy = 0x802587f4; ml_vec3f_copy = 0x802587f4;
ml_vec3f_diff_copy = 0x80258810; ml_vec3f_diff_copy = 0x80258810;
ml_vec3f_diff = 0x80258844; ml_vec3f_diff = 0x80258844;
@@ -109,6 +104,21 @@ n_alSynSetPitch = 0x8025d1f0;
n_alSynSetFXMix = 0x8025d270; n_alSynSetFXMix = 0x8025d270;
n_alSynStopVoice = 0x8025d300; n_alSynStopVoice = 0x8025d300;
n_alSynFreeVoice = 0x8025d370; n_alSynFreeVoice = 0x8025d370;
n_alCSPNew = 0x8025e70c;
alCSPSetBank = 0x8025e880;
alCSPStop = 0x8025e8c0;
n_alCSeqNew = 0x8025ed0c;
alCSPSetSeq = 0x8025ef90;
alCSPPlay = 0x8025efd0;
alCSPSetVol = 0x8025f000;
func_8025F3F0 = 0x8025f040;
alCSPSetTempo = 0x8025f080;
func_8025F4A0 = 0x8025f0f0;
alCSPGetTempo = 0x8025f120;
func_8025F510 = 0x8025f160;
func_8025F570 = 0x8025f1c0;
func_8025F5C0 = 0x8025f210;
bzero = 0x80263790; bzero = 0x80263790;
osWriteBackDCacheAll = 0x80263830; osWriteBackDCacheAll = 0x80263830;
__osInitialize_common = 0x80263860; __osInitialize_common = 0x80263860;
@@ -158,6 +168,22 @@ osViSwapBuffer = 0x80265f90;
osViSetEvent = 0x80265fe0; osViSetEvent = 0x80265fe0;
osViGetNextFramebuffer = 0x80266050; osViGetNextFramebuffer = 0x80266050;
osViBlack = 0x80266090; osViBlack = 0x80266090;
guOrtho = 0x80266254;
guTranslate = 0x80266308;
guRotate = 0x802664f4;
osContStartReadData = 0x80266550;
osContGetReadData = 0x80266614;
osContInit = 0x802667b0;
osContSetCh = 0x80266b70;
alBnkfNew = 0x80266ce4;
osGetTime = 0x80266e30;
alCSeqGetTicks = 0x8026769c;
osMotorStop = 0x80267980;
osMotorStart = 0x80267ae8;
osMotorInit = 0x80267dd0;
osPfsInit = 0x80267fa0;
D_80276574 = 0x802762c4;
framebuffer_width = 0x802762d8; framebuffer_width = 0x802762d8;
framebuffer_height = 0x802762dc; framebuffer_height = 0x802762dc;
n_syn = 0x80276bd4; n_syn = 0x80276bd4;
@@ -168,6 +194,7 @@ core2_TEXT_START = 0x80286db0;
player_getPosition = 0x8028e7c4; player_getPosition = 0x8028e7c4;
player_getPosition_s32 = 0x8028e95c; player_getPosition_s32 = 0x8028e95c;
func_8028EE84 = 0x8028eca4; func_8028EE84 = 0x8028eca4;
player_is_present = 0x8028eff4;
func_8028F22C = 0x8028f04c; func_8028F22C = 0x8028f04c;
spawnQueue_func_802C3A18 = 0x802C3898; spawnQueue_func_802C3A18 = 0x802C3898;
spawnQueue_flush = 0x802c38b8; spawnQueue_flush = 0x802c38b8;
@@ -176,21 +203,26 @@ mapSpecificFlags_get = 0x802caeb8;
mapSpecificFlags_validateCRC1 = 0x802cb1cc; mapSpecificFlags_validateCRC1 = 0x802cb1cc;
func_802D686C = 0x802d6a4c; func_802D686C = 0x802d6a4c;
chmole_learnedAllSpiralMountainAbilities = 0x802da678; chmole_learnedAllSpiralMountainAbilities = 0x802da678;
chOverlayNoController_spawn = 0x802dd1e8;
chOverlayNoController_func_802DD040 = 0x802dd220;
func_802E3580 = 0x802E3770; func_802E3580 = 0x802E3770;
func_802E35D0 = 0x802E37C0; func_802E35D0 = 0x802E37C0;
func_802E35D8 = 0x802E37c8; func_802E35D8 = 0x802E37c8;
func_802E3F8C = 0x802E417c; func_802E3F8C = 0x802E417c;
func_802E4170 = 0x802E4360; func_802E4170 = 0x802E4360;
func_802E4214 = 0x802E4404; func_802E4214 = 0x802E4404;
func_802E4384 = 0x802e4574;
func_802E4424 = 0x802E4614; func_802E4424 = 0x802E4614;
game_defrag = 0x802e4ac8; game_defrag = 0x802e4ac8;
getGameMode = 0x802e4bec; getGameMode = 0x802e4bec;
func_802E4A08 = 0x802e4bf8;
func_802F9AA8 = 0x802f9c88; func_802F9AA8 = 0x802f9c88;
func_802F9F80 = 0x802fa160; func_802F9F80 = 0x802fa160;
func_802F9FD0 = 0x802fa1b0; func_802F9FD0 = 0x802fa1b0;
func_802FA060 = 0x802fa240; func_802FA060 = 0x802fa240;
func_80309B48 = 0x80309ce8; func_80309B48 = 0x80309ce8;
func_80309D58 = 0x80309ef8; func_80309D58 = 0x80309ef8;
gctransition_done = 0x8030bf38;
gctransition_8030BDC0 = 0x8030bf60; gctransition_8030BDC0 = 0x8030bf60;
gctransition_reset = 0x8030c07c; gctransition_reset = 0x8030c07c;
func_8030D90C = 0x8030daac; func_8030D90C = 0x8030daac;
@@ -209,6 +241,7 @@ func_8031C618 = 0x8031c9f8;
func_8031C638 = 0x8031ca18; func_8031C638 = 0x8031ca18;
func_80320240 = 0x80320630; func_80320240 = 0x80320630;
func_803203FC = 0x803207ec; func_803203FC = 0x803207ec;
func_803204E4 = 0x803208d4;
func_8032056C = 0x8032095C; func_8032056C = 0x8032095C;
func_80320B98 = 0x80320f88; func_80320B98 = 0x80320f88;
func_80320C94 = 0x80321084; func_80320C94 = 0x80321084;
@@ -219,16 +252,27 @@ levelSpecificFlags_validateCRC1 = 0x8032243c;
func_8032274C = 0x80322b4c; func_8032274C = 0x80322b4c;
func_80322758 = 0x80322b58; func_80322758 = 0x80322b58;
func_80323240 = 0x80323690; func_80323240 = 0x80323690;
timedFunc_set_3 = 0x803253b4;
marker_getActor = 0x80329db0; marker_getActor = 0x80329db0;
map_get = 0x80334d10; map_get = 0x80334d10;
sfxInstruments_init = 0x80335670; sfxInstruments_init = 0x80335670;
assetcache_release = 0x8033b828;
func_8033B788 = 0x8033bbd8;
assetcache_get = 0x8033bbe8;
assetCache_init = 0x8033bfd4; assetCache_init = 0x8033bfd4;
func_8033BD6C = 0x8033C1BC; func_8033BD6C = 0x8033C1BC;
func_8033DD04 = 0x8033e154;
func_8033DD90 = 0x8033e1e0;
time_getDelta = 0x8033e1ec; time_getDelta = 0x8033e1ec;
func_8033EF58 = 0x8033f3a8; func_8033EF58 = 0x8033f3a8;
func_8033EFB0 = 0x8033f400; func_8033EFB0 = 0x8033f400;
demo_readInput = 0x8034a334;
randf = 0x8034a7e0;
func_8034C630 = 0x8034ca90; func_8034C630 = 0x8034ca90;
func_8034E698 = 0x8034eaf8; func_8034E698 = 0x8034eaf8;
D_803727F4 = 0x80372d74;
D_80379B90 = 0x8037A560;
/* Temporary */ /* Temporary */

View File

@@ -2,6 +2,8 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "version.h"
extern s32 D_803727F4; extern s32 D_803727F4;
extern struct { extern struct {
@@ -30,8 +32,13 @@ typedef struct {
extern s32 D_80276574; extern s32 D_80276574;
/* .data */ /* .data */
#if VERSION == VERSION_USA_1_0
s32 D_80275D30 = 0xC3A68832; //WHAT IS THIS? s32 D_80275D30 = 0xC3A68832; //WHAT IS THIS?
s32 D_80275D34 = 0xDDC3A724; //WHAT IS THIS? s32 D_80275D34 = 0xDDC3A724; //WHAT IS THIS?
#elif VERSION == VERSION_PAL
s32 D_80275D30 = 0xED7BCDB7; //WHAT IS THIS?
s32 D_80275D34 = 0xF82DC7AC; //WHAT IS THIS?
#endif
s32 D_80275D38 = 0; s32 D_80275D38 = 0;
/* .bss */ /* .bss */

View File

@@ -5,6 +5,8 @@
#include "music.h" #include "music.h"
#include "n_libaudio.h" #include "n_libaudio.h"
#include "version.h"
extern void func_8025F570(ALCSPlayer *, u8); extern void func_8025F570(ALCSPlayer *, u8);
extern void func_8025F510(ALCSPlayer *, u8, u8); extern void func_8025F510(ALCSPlayer *, u8, u8);
extern void func_8025F5C0(ALCSPlayer *, u8); extern void func_8025F5C0(ALCSPlayer *, u8);
@@ -266,7 +268,11 @@ ALBank *music_get_sound_bank(void){
void func_8024F764(s32 arg0){//music track load void func_8024F764(s32 arg0){//music track load
if(D_802820E0[arg0] == NULL){ if(D_802820E0[arg0] == NULL){
func_8033B788(); func_8033B788();
#if VERSION == VERSION_USA_1_0
D_802820E0[arg0] = assetcache_get(arg0 + 0x1516); D_802820E0[arg0] = assetcache_get(arg0 + 0x1516);
#elif VERSION == VERSION_PAL
D_802820E0[arg0] = assetcache_get(arg0 + 0xd74);
#endif
} }
} }
@@ -532,8 +538,8 @@ void func_80250200(s32 arg0, s16 chan, s16 arg2, f32 arg3){
mask = osSetIntMask(OS_IM_NONE); mask = osSetIntMask(OS_IM_NONE);
tmpf = (!func_80250074(arg0))? func_8025F4A0(sp28, chan) :127.0f; tmpf = (!func_80250074(arg0))? func_8025F4A0(sp28, chan) :127.0f;
if(arg3 < 0.0333333351f){ if(arg3 < (2.0f/FRAMERATE)){
arg3 = 0.0333333351f; arg3 = (2.0f/FRAMERATE);
} }
for(i = 0; i< 0x20; i++){ for(i = 0; i< 0x20; i++){
@@ -543,7 +549,7 @@ void func_80250200(s32 arg0, s16 chan, s16 arg2, f32 arg3){
D_80282110[i].unk0 = arg0; D_80282110[i].unk0 = arg0;
D_80282110[i].chan = chan; D_80282110[i].chan = chan;
D_80282110[i].unk8 = tmpf; D_80282110[i].unk8 = tmpf;
D_80282110[i].unkC = (arg2 - tmpf)/((arg3 * 60.0f)/2); D_80282110[i].unkC = (arg2 - tmpf)/((arg3 * (float)FRAMERATE)/2);
D_80282110[i].unk10 = arg2; D_80282110[i].unk10 = arg2;
osSetIntMask(mask); osSetIntMask(mask);
return; return;
@@ -561,8 +567,8 @@ void func_80250360(s32 arg0, s32 arg1, f32 arg2){
sp24 = func_802500CC(arg0); sp24 = func_802500CC(arg0);
sp1C = osSetIntMask(1); sp1C = osSetIntMask(1);
tempo = alCSPGetTempo(sp24); tempo = alCSPGetTempo(sp24);
if( arg2 < 0.0333333351f){ if( arg2 < (2.0f/FRAMERATE)){
arg2 = 0.0333333351f; arg2 = (2.0f/FRAMERATE);
} }
for(i = 0; i < 0x20; i++){ for(i = 0; i < 0x20; i++){
if(D_80282110[i].unk8 == D_80282110[i].unk10 if(D_80282110[i].unk8 == D_80282110[i].unk10
@@ -571,7 +577,7 @@ void func_80250360(s32 arg0, s32 arg1, f32 arg2){
D_80282110[i].unk0 = arg0; D_80282110[i].unk0 = arg0;
D_80282110[i].chan = -1; D_80282110[i].chan = -1;
D_80282110[i].unk8 = tempo; D_80282110[i].unk8 = tempo;
D_80282110[i].unkC = (arg1 - tempo)/((arg2 * 60.0f)/2); D_80282110[i].unkC = (arg1 - tempo)/((arg2 * (float)FRAMERATE)/2);
D_80282110[i].unk10 = arg1; D_80282110[i].unk10 = arg1;
osSetIntMask(sp1C); osSetIntMask(sp1C);
return; return;

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "version.h"
void func_8024F35C(s32); void func_8024F35C(s32);
@@ -68,7 +69,7 @@ void __rumbleUpdate(void *arg0) {
do{ do{
osRecvMesg(&D_80282390, NULL, 1); osRecvMesg(&D_80282390, NULL, 1);
D_802827E0++; D_802827E0++;
if (!D_802823B0 && ((D_802827E0 % 60) == 0)) { if (!D_802823B0 && ((D_802827E0 % FRAMERATE) == 0)) {
func_80250930(); func_80250930();
} }
prev_state = rumble_state; prev_state = rumble_state;