Merge branch 'docu_threads' into 'master'
Documented thread related variables See merge request banjo.decomp/banjo-kazooie!81
This commit is contained in:
commit
0f77761409
|
@ -150,10 +150,10 @@ segments:
|
|||
- [0xF3DFE0, c, code_660]
|
||||
- [0xF3E140, c, inflate]
|
||||
- [0xF3F680, c, code_1D00] # NONMATCHING
|
||||
- [0xF40490, c, code_2BD0]
|
||||
- [0xF40490, c, pimanager]
|
||||
- [0xF40650, c, defragmanager]
|
||||
- [0xF40850, c, code_2FA0]
|
||||
- [0xF40A70, c, code_31C0]
|
||||
- [0xF40A70, c, initthread]
|
||||
- [0xF40B00, c, code_3250]
|
||||
- [0xF41320, c, code_3A70]
|
||||
- [0xF42F00, c, code_5650]
|
||||
|
@ -456,9 +456,9 @@ segments:
|
|||
- [0xF791D0, .bss, code_660]
|
||||
- [0xF791D0, .bss, inflate]
|
||||
- [0xF791D0, .bss, code_1D00]
|
||||
- [0xF791D0, .bss, code_2BD0]
|
||||
- [0xF791D0, .bss, pimanager]
|
||||
- [0xF791D0, .bss, defragmanager]
|
||||
- [0xF791D0, .bss, code_31C0]
|
||||
- [0xF791D0, .bss, initthread]
|
||||
- [0xF791D0, .bss, code_5650]
|
||||
- [0xF791D0, .bss, code_7090]
|
||||
- [0xF791D0, .bss, code_72B0]
|
||||
|
|
|
@ -150,10 +150,10 @@ segments:
|
|||
- [0xF198B0, c, code_660] #DONE
|
||||
- [0xF19A10, c, inflate] #DONE
|
||||
- [0xF1AF50, c, code_1D00] #DONE
|
||||
- [0xF1BE20, c, code_2BD0]
|
||||
- [0xF1BE20, c, pimanager]
|
||||
- [0xF1BFF0, c, defragmanager] #DONE
|
||||
- [0xF1C1F0, c, code_2FA0] #DONE
|
||||
- [0xF1C410, c, code_31C0] #DONE
|
||||
- [0xF1C410, c, initthread] #DONE
|
||||
- [0xF1C4A0, c, code_3250] #DONE
|
||||
- [0xF1CCC0, c, code_3A70] #DONE
|
||||
- [0xF1E8A0, c, code_5650]
|
||||
|
@ -457,9 +457,9 @@ segments:
|
|||
- [0xF55960, .bss, code_660]
|
||||
- [0xF55960, .bss, inflate]
|
||||
- [0xF55960, .bss, code_1D00]
|
||||
- [0xF55960, .bss, code_2BD0]
|
||||
- [0xF55960, .bss, pimanager]
|
||||
- [0xF55960, .bss, defragmanager]
|
||||
- [0xF55960, .bss, code_31C0]
|
||||
- [0xF55960, .bss, initthread]
|
||||
- [0xF55960, .bss, code_5650]
|
||||
- [0xF55960, .bss, code_7090]
|
||||
- [0xF55960, .bss, code_72B0]
|
||||
|
|
|
@ -579,4 +579,6 @@ extern void miscFlag_set(enum misc_flag_e arg0);
|
|||
extern void miscFlag_clear(enum misc_flag_e arg0);
|
||||
extern void miscFlag_toggle(enum misc_flag_e arg0);
|
||||
|
||||
extern void piMgr_read(void *vaddr, s32 devaddr, s32 size);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
#include "version.h"
|
||||
#include "gc/gctransition.h"
|
||||
|
||||
#define MAIN_THREAD_STACK_SIZE 0x17F0
|
||||
|
||||
|
||||
void setBootMap(enum map_e);
|
||||
void func_8023DFF0(s32);
|
||||
|
@ -15,23 +17,24 @@ void func_8023DFF0(s32);
|
|||
s32 D_80275610 = 0;
|
||||
s32 D_80275614 = 0;
|
||||
u32 gGlobalTimer = 0;
|
||||
u32 D_8027561C[] = {
|
||||
u32 sDebugVar_8027561C[] = { // never used
|
||||
0x9, 0x4, 0xA, 0x3, 0xB, 0x2, 0xC, 0x5, 0x0,
|
||||
0x1, 0x6, 0xD, -1
|
||||
};
|
||||
u32 D_80275650 = VER_SELECT(0xAD019D3C, 0xA371A8F3, 0, 0); //SM_DATA_CRC_1
|
||||
u32 D_80275654 = VER_SELECT(0xD381B72F, 0xD0709154, 0, 0); //SM_DATA_CRC_2
|
||||
char D_80275658[] = VER_SELECT("HjunkDire:218755", "HjunkDire:300875", "HjunkDire:", "HjunkDire:");
|
||||
char sDebugVar_80275658[] = VER_SELECT("HjunkDire:218755", "HjunkDire:300875", "HjunkDire:", "HjunkDire:");
|
||||
|
||||
/* .bss */
|
||||
u32 D_8027A130;
|
||||
u8 pad_8027A138[0x400];
|
||||
u64 D_8027A538;
|
||||
u8 pad_8027A540[0x17F8];
|
||||
OSThread s_MainThread;
|
||||
s32 gBootMap;
|
||||
s32 gDisableInput;
|
||||
u64 D_8027BEF0;
|
||||
u8 pad_8027A138[0x400];
|
||||
u64 sDebugVar_8027A538; // never used
|
||||
u64 sDebugVar_8027A540; // never used
|
||||
u8 sMainThreadStack[MAIN_THREAD_STACK_SIZE]; // The real size of the stack is unclear yet, maybe there are some out-optimized debug variables below the stack
|
||||
OSThread sMainThread;
|
||||
s32 gBootMap;
|
||||
s32 gDisableInput;
|
||||
u64 sDebugVar_8027BEF0; // never used
|
||||
|
||||
extern u8 core2_TEXT_START[];
|
||||
|
||||
|
@ -42,7 +45,7 @@ void func_8023DA20(s32 arg0){
|
|||
osWriteBackDCacheAll();
|
||||
sns_find_and_parse_payload();
|
||||
osInitialize();
|
||||
func_80240BE0();
|
||||
initThread_create();
|
||||
}
|
||||
|
||||
void func_8023DA74(void){
|
||||
|
@ -100,7 +103,7 @@ void func_8023DBDC(void){
|
|||
func_8023DFF0(3);
|
||||
}
|
||||
|
||||
void core1_init(void){
|
||||
void core1_init(void) {
|
||||
#if VERSION == VERSION_PAL
|
||||
osTvType = 0;
|
||||
#endif
|
||||
|
@ -109,7 +112,7 @@ void core1_init(void){
|
|||
rarezip_init(); //initialize decompressor's huft table
|
||||
func_8024BE30();
|
||||
overlayManagerloadCore2();
|
||||
D_8027BEF0 = D_8027A538;
|
||||
sDebugVar_8027BEF0 = sDebugVar_8027A538;
|
||||
heap_init();
|
||||
func_80254028();
|
||||
dummy_func_8025AFB0();
|
||||
|
@ -201,10 +204,11 @@ void mainLoop(void){
|
|||
}//L8023DF70
|
||||
}
|
||||
|
||||
void __mainMethod(void *arg0){
|
||||
void mainThread_entry(void *arg) {
|
||||
core1_init();
|
||||
sns_write_payload_over_heap();
|
||||
while(1){ //main loop
|
||||
|
||||
while (1) {
|
||||
mainLoop();
|
||||
}
|
||||
}
|
||||
|
@ -221,14 +225,12 @@ void setBootMap(enum map_e map_id){
|
|||
gBootMap = map_id;
|
||||
}
|
||||
|
||||
void mainThread_create(void){
|
||||
// 5th argument should be a pointer to the end of an array, but the start is unknown
|
||||
// D_8027A538 is not the right symbol, but the end of the array is the important port and this is the closest symbol currently
|
||||
osCreateThread(&s_MainThread, 6, __mainMethod, NULL, ((u8*)&D_8027A538) + 0x1800, 0x14);
|
||||
void mainThread_create(void) {
|
||||
osCreateThread(&sMainThread, 6, mainThread_entry, NULL, sMainThreadStack + MAIN_THREAD_STACK_SIZE, 20);
|
||||
}
|
||||
|
||||
OSThread *mainThread_get(void){
|
||||
return &s_MainThread;
|
||||
OSThread *mainThread_get(void) {
|
||||
return &sMainThread;
|
||||
}
|
||||
|
||||
void disableInput_set(void){
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
#include "version.h"
|
||||
|
||||
#define PFSMANAGER_THREAD_STACK_SIZE 0x200
|
||||
|
||||
extern s32 D_803727F4;
|
||||
|
||||
extern struct {
|
||||
|
@ -57,8 +59,8 @@ f32 D_80281308[4];
|
|||
OSContStatus pfsManagerContStatus;
|
||||
u8 pad_D_80281320[0x8];
|
||||
volatile s32 pfsManagerBusy;
|
||||
OSThread pfsManagerThread;
|
||||
u8 D_802814E0[0x200];
|
||||
OSThread sPfsManagerThread;
|
||||
u8 sPfsManagerThreadStack[PFSMANAGER_THREAD_STACK_SIZE];
|
||||
f32 D_802816E0;
|
||||
OSMesgQueue D_802816E8;
|
||||
OSMesg D_80281700[4];
|
||||
|
@ -290,8 +292,8 @@ void pfsManager_readData(){
|
|||
}
|
||||
|
||||
|
||||
void pfsManager_handle(void *arg0){
|
||||
do{
|
||||
void pfsManager_entry(void *arg) {
|
||||
do {
|
||||
osRecvMesg(&pfsManagerContPollingMsqQ, 0, 1);
|
||||
if(pfsManagerBusy == TRUE){
|
||||
pfsManager_readData();
|
||||
|
@ -299,19 +301,19 @@ void pfsManager_handle(void *arg0){
|
|||
else{
|
||||
osSendMesg(&pfsManagerContReplyMsgQ, 0, 0);
|
||||
}
|
||||
}while(1);
|
||||
} while (1);
|
||||
}
|
||||
|
||||
void pfsManager_init(void){
|
||||
osCreateMesgQueue(&pfsManagerContPollingMsqQ, &pfsManagerContPollingMsqBuf, 1);
|
||||
osCreateMesgQueue(&pfsManagerContReplyMsgQ, &pfsManagerContReplyMsgBuf, 1);
|
||||
osCreateThread(&pfsManagerThread, 7, pfsManager_handle, NULL, D_802814E0 + 0x200, 0x28);
|
||||
osCreateThread(&sPfsManagerThread, 7, pfsManager_entry, NULL, sPfsManagerThreadStack + PFSMANAGER_THREAD_STACK_SIZE, 40);
|
||||
osSetEventMesg(OS_EVENT_SI, &pfsManagerContPollingMsqQ, &pfsManagerContPollingMsqBuf);
|
||||
osContInit(&pfsManagerContPollingMsqQ, &pfsManagerBitPattern, &pfsManagerContStatus);
|
||||
osContSetCh(1);
|
||||
func_8024F224();
|
||||
func_802476DC();
|
||||
osStartThread(&pfsManagerThread);
|
||||
osStartThread(&sPfsManagerThread);
|
||||
}
|
||||
|
||||
bool pfsManager_contErr(void){
|
||||
|
|
|
@ -14,7 +14,7 @@ void func_80255C30(void) {
|
|||
D_80283380 = *(s32 *)0xA4001000 ^ 6103;
|
||||
D_80283388 |= (D_80283380) ? 2 :0;
|
||||
if (D_80283388 == 0) {
|
||||
func_802405F0(&D_80283280, 0xB0000B70, 0x100);
|
||||
piMgr_read(&D_80283280, 0xB0000B70, 0x100);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "n_libaudio.h"
|
||||
|
||||
#define AUDIO_HEAP_SIZE VER_SELECT(0x21000, 0x23A00, 0x21000, 0x21000)
|
||||
#define AUDIOMANAGER_THREAD_STACK_SIZE 0xE78
|
||||
|
||||
extern void n_alInit(N_ALGlobals *, ALSynConfig *);
|
||||
|
||||
|
@ -55,7 +56,7 @@ typedef struct struct_core1_1D00_5_s{
|
|||
}OscState;
|
||||
|
||||
void audioManager_create(void);
|
||||
void audioManager_handle(void *);
|
||||
void audioManagerThread_entry(void *arg);
|
||||
// void func_802403B8(void);
|
||||
void audioManager_handleDoneMsg(AudioInfo *info);
|
||||
void *func_802403B8(void *state);
|
||||
|
@ -145,7 +146,7 @@ struct {
|
|||
OSMesgQueue audioReplyMsgQ;
|
||||
OSMesg audioReplyMsgBuf[8];
|
||||
} audioManager;
|
||||
u8 pad_8027C178[0xE78];
|
||||
u8 sAudioManagerThreadStack[AUDIOMANAGER_THREAD_STACK_SIZE];
|
||||
ALHeap D_8027CFF0;
|
||||
u8 * D_8027D000;
|
||||
s32 D_8027D004;
|
||||
|
@ -342,10 +343,11 @@ void audioManager_create(void) {
|
|||
audioManager.audioInfo[i]->unkC = audioManager.audioInfo[i];
|
||||
audioManager.audioInfo[i]->data = malloc(D_8027DD7C * 4);
|
||||
}
|
||||
osCreateThread(&audioManager.thread, 4, &audioManager_handle, 0, &D_8027CFF0, 0x32);
|
||||
|
||||
osCreateThread(&audioManager.thread, 4, &audioManagerThread_entry, 0, sAudioManagerThreadStack + AUDIOMANAGER_THREAD_STACK_SIZE, 50);
|
||||
}
|
||||
|
||||
void audioManager_handle(void *arg0) {
|
||||
void audioManagerThread_entry(void *arg) {
|
||||
s32 phi_s1;
|
||||
|
||||
phi_s1 = 1;
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
OSIoMesg D_8027E090;
|
||||
struct {
|
||||
OSMesg mesg;
|
||||
OSMesgQueue queue;
|
||||
} D_8027E0A8;
|
||||
OSMesg D_8027E0C8[16]; //g_PimgrMesgBuffer
|
||||
OSMesgQueue D_8027E108; //g_PimgrMesgQueue
|
||||
|
||||
void func_802405F0(u32 * arg0, s32 arg1, s32 size){
|
||||
s32 block_cnt;
|
||||
s32 block_remainder;
|
||||
s32 block_size = VER_SELECT(0x20000, 0x8000, 0, 0);
|
||||
int i;
|
||||
|
||||
osWritebackDCache(arg0, size);
|
||||
block_cnt = size / block_size;
|
||||
block_remainder = size % block_size;
|
||||
|
||||
for(i = 0; i < block_cnt; i++){
|
||||
osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, VER_SELECT(0x20000, 0x8000, 0, 0), &D_8027E0A8.queue);
|
||||
osRecvMesg(&D_8027E0A8.queue, NULL, 1);
|
||||
arg1 += VER_SELECT(0x20000, 0x8000, 0, 0);
|
||||
arg0 += VER_SELECT(0x8000, 0x2000, 0, 0);
|
||||
}
|
||||
|
||||
osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, block_remainder, &D_8027E0A8.queue);
|
||||
osRecvMesg(&D_8027E0A8.queue, NULL, 1);
|
||||
osInvalDCache(arg0, size);
|
||||
|
||||
}
|
||||
|
||||
void piMgr_create(void){
|
||||
osCreateMesgQueue(&D_8027E0A8.queue, &D_8027E0A8.mesg, 1);
|
||||
osCreateMesgQueue(&D_8027E108, &D_8027E0C8[0], 16);
|
||||
osCreatePiManager(OS_PRIORITY_PIMGR, &D_8027E108, &D_8027E0C8[0], 16);
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
|
||||
u8 D_8027EB10[0x200]; // Size based on the previous symbol's address
|
||||
OSThread D_8027ED10;
|
||||
|
||||
|
||||
void func_80240C30(void*);
|
||||
|
||||
void func_80240BE0(void){
|
||||
osCreateThread(&D_8027ED10, 1, func_80240C30, NULL, &D_8027EB10[0x200], 0);
|
||||
osStartThread(&D_8027ED10);
|
||||
}
|
||||
|
||||
void piMgr_create(void);
|
||||
void mainThread_create(void);
|
||||
OSThread *mainThread_get(void);
|
||||
|
||||
void func_80240C30(void *arg)
|
||||
{
|
||||
piMgr_create();
|
||||
mainThread_create();
|
||||
osStartThread(mainThread_get());
|
||||
while (1);
|
||||
}
|
|
@ -484,7 +484,11 @@ void func_80247560(void){
|
|||
D_80280684 = 0;
|
||||
D_80280680 = 0;
|
||||
tmp_v0 = D_8027EF40;
|
||||
while((u32)tmp_v0 % 0x10){((u32)tmp_v0)++;}
|
||||
|
||||
while ((u32) tmp_v0 % 0x10) {
|
||||
tmp_v0 = (u64 *) ((u32) tmp_v0 + 1);
|
||||
}
|
||||
|
||||
D_80275950.t.yield_data_ptr = tmp_v0;
|
||||
osCreateThread(&D_80280428, 5, func_802473B4, NULL, &D_8027FC28[2048], 60);
|
||||
osStartThread(&D_80280428);
|
||||
|
|
|
@ -152,7 +152,7 @@ void func_8024BE30(void){
|
|||
}
|
||||
D_802808D8 = 0;
|
||||
func_8024BF94(2);
|
||||
osCreateThread(&D_802808E0,0,func_8024C2F8,NULL,&thread0_stack[THREAD0_STACK_SIZE],80);
|
||||
osCreateThread(&D_802808E0,0,func_8024C2F8,NULL, thread0_stack + THREAD0_STACK_SIZE, 80);
|
||||
osStartThread(&D_802808E0);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,26 +2,28 @@
|
|||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
void __defrag_thread(s32 arg0);
|
||||
#define DEFRAG_THREAD_STACK_SIZE 0x800
|
||||
|
||||
void defragThread_entry(void *arg);
|
||||
|
||||
OSMesgQueue D_8027E120;
|
||||
OSMesg D_8027E138;
|
||||
OSMesgQueue D_8027E140;
|
||||
OSMesg D_8027E158;
|
||||
OSThread defragThread;
|
||||
u8 defragStack[0x800];
|
||||
OSThread sDefragThread;
|
||||
u8 sDefragThreadStack[0x800];
|
||||
|
||||
/* .code */
|
||||
void defragManager_init(void){
|
||||
osCreateMesgQueue(&D_8027E120, &D_8027E138, 1);
|
||||
osCreateMesgQueue(&D_8027E140, &D_8027E158, 1);
|
||||
osCreateThread(&defragThread, 2, __defrag_thread, NULL, &defragStack[0x800], 10);
|
||||
osStartThread(&defragThread);
|
||||
osCreateThread(&sDefragThread, 2, defragThread_entry, NULL, sDefragThreadStack + DEFRAG_THREAD_STACK_SIZE, 10);
|
||||
osStartThread(&sDefragThread);
|
||||
}
|
||||
|
||||
void defragManager_free(void){
|
||||
osStopThread(&defragThread);
|
||||
osDestroyThread(&defragThread);
|
||||
osStopThread(&sDefragThread);
|
||||
osDestroyThread(&sDefragThread);
|
||||
}
|
||||
|
||||
void defragManager_80240874(void){
|
||||
|
@ -38,11 +40,11 @@ void defragManager_802408B0(void){
|
|||
|
||||
void defragManager_setPriority(OSPri pri){
|
||||
if(func_8023E000() == 3){
|
||||
osSetThreadPri(&defragThread, pri);
|
||||
osSetThreadPri(&sDefragThread, pri);
|
||||
}
|
||||
}
|
||||
|
||||
void __defrag_thread(s32 arg0){
|
||||
void defragThread_entry(void *arg) {
|
||||
int tmp_v0;
|
||||
do{
|
||||
osRecvMesg(&D_8027E120, NULL, OS_MESG_BLOCK);
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
#define INIT_THREAD_STACK_SIZE 0x200
|
||||
|
||||
u8 sInitThreadStack[INIT_THREAD_STACK_SIZE]; // Size based on the previous symbol's address
|
||||
OSThread sInitThread;
|
||||
|
||||
void initThread_entry(void *arg);
|
||||
|
||||
void initThread_create(void) {
|
||||
osCreateThread(&sInitThread, 1, initThread_entry, NULL, sInitThreadStack + INIT_THREAD_STACK_SIZE, OS_PRIORITY_IDLE);
|
||||
osStartThread(&sInitThread);
|
||||
}
|
||||
|
||||
void piMgr_init(void);
|
||||
void mainThread_create(void);
|
||||
OSThread *mainThread_get(void);
|
||||
|
||||
void initThread_entry(void *arg)
|
||||
{
|
||||
piMgr_init();
|
||||
mainThread_create();
|
||||
osStartThread(mainThread_get());
|
||||
while (1);
|
||||
}
|
|
@ -42,7 +42,7 @@ void overlay_load(
|
|||
else{
|
||||
sp34 = &D_8002D500;
|
||||
}
|
||||
func_802405F0(sp34, rom_start, rom_end - rom_start);
|
||||
piMgr_read(sp34, rom_start, rom_end - rom_start);
|
||||
rarezip_uncompress(&sp34, &ram_start);
|
||||
sp2C = D_8027BF2C;
|
||||
sp30 = D_8027BF30;
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "version.h"
|
||||
|
||||
#define PIMGR_MESGBUFFER_SIZE 16
|
||||
|
||||
OSIoMesg sPiMgrIOMesg;
|
||||
|
||||
struct {
|
||||
OSMesg mesg;
|
||||
OSMesgQueue queue;
|
||||
} sPiMgrReadMesg;
|
||||
|
||||
OSMesg sPiMgrMesgBuffer[PIMGR_MESGBUFFER_SIZE];
|
||||
OSMesgQueue sPiMgrMesgQueue;
|
||||
|
||||
void piMgr_read(void *vaddr, s32 devaddr, s32 size) {
|
||||
s32 block_cnt;
|
||||
s32 block_remainder;
|
||||
s32 block_size = VER_SELECT(0x20000, 0x8000, 0, 0);
|
||||
int i;
|
||||
|
||||
osWritebackDCache(vaddr, size);
|
||||
block_cnt = size / block_size;
|
||||
block_remainder = size % block_size;
|
||||
|
||||
for(i = 0; i < block_cnt; i++){
|
||||
osPiStartDma(&sPiMgrIOMesg, OS_MESG_PRI_NORMAL, OS_READ, devaddr, vaddr, VER_SELECT(0x20000, 0x8000, 0, 0), &sPiMgrReadMesg.queue);
|
||||
osRecvMesg(&sPiMgrReadMesg.queue, NULL, 1);
|
||||
devaddr += VER_SELECT(0x20000, 0x8000, 0, 0);
|
||||
vaddr = (u32 *) vaddr + VER_SELECT(0x8000, 0x2000, 0, 0);
|
||||
}
|
||||
|
||||
osPiStartDma(&sPiMgrIOMesg, OS_MESG_PRI_NORMAL, OS_READ, devaddr, vaddr, block_remainder, &sPiMgrReadMesg.queue);
|
||||
osRecvMesg(&sPiMgrReadMesg.queue, NULL, 1);
|
||||
osInvalDCache(vaddr, size);
|
||||
}
|
||||
|
||||
void piMgr_init(void) {
|
||||
osCreateMesgQueue(&sPiMgrReadMesg.queue, &sPiMgrReadMesg.mesg, 1);
|
||||
osCreateMesgQueue(&sPiMgrMesgQueue, sPiMgrMesgBuffer, PIMGR_MESGBUFFER_SIZE);
|
||||
osCreatePiManager(OS_PRIORITY_PIMGR, &sPiMgrMesgQueue, sPiMgrMesgBuffer, PIMGR_MESGBUFFER_SIZE);
|
||||
}
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
#include "version.h"
|
||||
|
||||
#define RUMBLE_THREAD_STACK_SIZE 0x200
|
||||
|
||||
void func_8024F35C(s32);
|
||||
|
||||
OSMesgQueue D_80282390;
|
||||
|
@ -16,8 +18,8 @@ f32 D_80282420;
|
|||
f32 D_80282424;
|
||||
f32 D_80282428;
|
||||
f32 D_8028242C;
|
||||
OSThread rumbleThread;
|
||||
u8 rumbleStack[0x200];
|
||||
OSThread sRumbleThread;
|
||||
u8 sRumbleThreadStack[RUMBLE_THREAD_STACK_SIZE];
|
||||
|
||||
/* .code */
|
||||
void rumbleManager_80250D94(f32, f32, f32);
|
||||
|
@ -55,7 +57,7 @@ void func_80250930(void){
|
|||
}
|
||||
}
|
||||
|
||||
void __rumbleUpdate(void *arg0) {
|
||||
void rumbleThread_entry(void *arg) {
|
||||
static s32 D_802827E0;
|
||||
static s32 rumble_state;
|
||||
f32 temp_f2;
|
||||
|
@ -107,7 +109,7 @@ void rumbleManager_80250C08(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void rumbleManager_init(void){
|
||||
void rumbleManager_init(void) {
|
||||
s32 pfs_status;
|
||||
|
||||
func_8024F35C(4);
|
||||
|
@ -121,8 +123,8 @@ void rumbleManager_init(void){
|
|||
D_802823B0 = D_802823AC;
|
||||
if(D_802823AC){
|
||||
osCreateMesgQueue(&D_80282390, &D_802823A8, 1);
|
||||
osCreateThread(&rumbleThread, 8, __rumbleUpdate, NULL, &rumbleStack[0x200], 0x19);
|
||||
osStartThread(&rumbleThread);
|
||||
osCreateThread(&sRumbleThread, 8, rumbleThread_entry, NULL, sRumbleThreadStack + RUMBLE_THREAD_STACK_SIZE, 25);
|
||||
osStartThread(&sRumbleThread);
|
||||
func_8024BDAC(&D_80282390, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -398,7 +398,7 @@ void *assetcache_get(enum asset_e assetId) {
|
|||
uncompressed_file = malloc(comp_size);
|
||||
compressed_file = uncompressed_file;
|
||||
}
|
||||
func_802405F0(compressed_file, assetSectionRomMetaList[assetId].offset + D_80383CCC, sp3C);
|
||||
piMgr_read(compressed_file, assetSectionRomMetaList[assetId].offset + D_80383CCC, sp3C);
|
||||
if(assetSectionRomMetaList[assetId].compFlag & 0x0001){//decompress
|
||||
rarezip_inflate(compressed_file, uncompressed_file);
|
||||
realloc(uncompressed_file, assetCacheCurrentSize);
|
||||
|
@ -417,7 +417,7 @@ void *assetcache_get(enum asset_e assetId) {
|
|||
}
|
||||
|
||||
void func_8033BAB0(enum asset_e asset_id, s32 offset, s32 size, void *dst_ptr) {
|
||||
func_802405F0(dst_ptr, assetSectionRomMetaList[asset_id].offset + D_80383CCC + offset, size);
|
||||
piMgr_read(dst_ptr, assetSectionRomMetaList[asset_id].offset + D_80383CCC + offset, size);
|
||||
}
|
||||
|
||||
void assetCache_resizeAsset(void *assetPtr, s32 size){
|
||||
|
@ -438,9 +438,9 @@ void assetCache_init(void){
|
|||
assetCacheLength = 0;
|
||||
assetSectionRomHeader = (AssetROMHead *)malloc(sizeof(AssetROMHead));
|
||||
D_80383CC8 = (u32)assets_ROM_START;
|
||||
func_802405F0(assetSectionRomHeader, D_80383CC8, sizeof(AssetROMHead));
|
||||
piMgr_read(assetSectionRomHeader, D_80383CC8, sizeof(AssetROMHead));
|
||||
assetSectionRomMetaList = (AssetFileMeta *)malloc(assetSectionRomHeader->count*sizeof(AssetFileMeta));
|
||||
func_802405F0(assetSectionRomMetaList, D_80383CC8 + sizeof(AssetROMHead),assetSectionRomHeader->count*sizeof(AssetFileMeta));
|
||||
piMgr_read(assetSectionRomMetaList, D_80383CC8 + sizeof(AssetROMHead),assetSectionRomHeader->count*sizeof(AssetFileMeta));
|
||||
D_80383CCC = D_80383CC8 + sizeof(AssetROMHead) + assetSectionRomHeader->count*sizeof(AssetFileMeta);
|
||||
}
|
||||
|
||||
|
@ -531,7 +531,7 @@ s32 func_8033BDAC(enum asset_e id, void *dst, s32 size) {
|
|||
}
|
||||
}
|
||||
comp_size = assetSectionRomMetaList[id].offset + D_80383CCC;
|
||||
func_802405F0(comp_ptr, comp_size, sp34);
|
||||
piMgr_read(comp_ptr, comp_size, sp34);
|
||||
if (assetSectionRomMetaList[id].compFlag & 1) {
|
||||
rarezip_inflate(comp_ptr, dst);
|
||||
osWritebackDCache(dst, assetCacheCurrentSize);
|
||||
|
|
Loading…
Reference in New Issue