src/core1: improvments and renamings on various files, added some header files

neue Datei:     include/core1/eeprom.h
        neue Datei:     include/core1/pfsmanager.h
        neue Datei:     include/core1/ucode.h
        umbenannt:      src/core1/code_18110.c -> src/core1/eeprom.c
        umbenannt:      src/core1/code_10A00.c -> src/core1/pfsmanager.c
        umbenannt:      src/core1/code_13640.c -> src/core1/stub_13640.c
        umbenannt:      src/core1/code_1D590.c -> src/core1/stub_1D590.c
        umbenannt:      src/core1/code_18210.c -> src/core1/ucode.c
        umbenannt:      src/core1/code_EAF0.c -> src/core1/viewport.c
This commit is contained in:
mariob92
2024-10-08 18:29:28 +02:00
parent 6fb4f2b3f1
commit 737ccf97c3
40 changed files with 278 additions and 201 deletions

View File

@@ -3,6 +3,8 @@
#include "variables.h"
#include "version.h"
#include "gc/gctransition.h"
#include "core1/eeprom.h"
#include "core1/ucode.h"
#define MAIN_THREAD_STACK_SIZE 0x17F0
@@ -70,7 +72,7 @@ void func_8023DA9C(s32 arg0){
if (D_8027A130 == 4){
dummy_func_802E35D0();
}
dummy_func_80255CD8();
ucode_stub1();
}
u32 globalTimer_getTimeMasked(u32 mask){
@@ -107,7 +109,7 @@ void core1_init(void) {
#if VERSION == VERSION_PAL
osTvType = 0;
#endif
func_80255C30();
ucode_load();
setBootMap(getDefaultBootMap());
rarezip_init(); //initialize decompressor's huft table
func_8024BE30();
@@ -158,7 +160,7 @@ void mainLoop(void){
rumbleManager_80250C08();
if(!mapSpecificFlags_validateCRC1()){
write_file_blocks(0, 0, 0x80397AD0, 0x40);
eeprom_writeBlocks(0, 0, 0x80397AD0, 0x40);
}
switch(D_8027A130){

View File

@@ -1,21 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
void func_8025108C(s32 arg0);
/* .bss */
s32 D_802827F0;
/* .code */
s32 func_80251060(void){
return D_802827F0;
}
void func_8025106C(void){
func_8025108C(0);
}
void func_8025108C(s32 arg0){
D_802827F0 = arg0;
}

View File

@@ -1,28 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "save.h"
#define ROUND_UP_DIVIDE(a, b) (((a) + (b) - 1) / (b))
// The round up divide is not technically needed, but will come in handy for modding
#define gameFile_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveData),EEPROM_BLOCK_SIZE)
s32 write_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) {
s32 address = (filenum * gameFile_NUM_BLOCKS) + blockOffset;
s32 ret;
func_8024F35C(3);
ret = osEepromLongWrite(pfsManager_getFrameReplyQ(), address, buffer, blockCount * EEPROM_BLOCK_SIZE);
func_8024F35C(0);
return ret;
}
s32 load_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) {
s32 address = (filenum * gameFile_NUM_BLOCKS) + blockOffset;
s32 ret;
func_8024F35C(3);
ret = osEepromLongRead(pfsManager_getFrameReplyQ(), address, buffer, blockCount * EEPROM_BLOCK_SIZE);
func_8024F35C(0);
return ret;
}

View File

@@ -1,32 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
/* .bss */
u8 D_80283280[0x100];
s32 D_80283380;
s32 D_80283384;
s32 D_80283388;
void func_80255C30(void) {
D_80283384 = *(s32 *)0xA4000000 ^ -1;
D_80283388 = (D_80283384) ? 1 :0;
D_80283380 = *(s32 *)0xA4001000 ^ 6103;
D_80283388 |= (D_80283380) ? 2 :0;
if (D_80283388 == 0) {
piMgr_read(&D_80283280, 0xB0000B70, 0x100);
}
}
void dummy_func_80255CD8(void){}
void func_80255CE0(void){
osPiReadIo(0, NULL);
}
s32 func_80255D04(void){return 0;}
void func_80255D0C(u64 **ucode_ptr, u32 *ucode_size){
*ucode_ptr = &D_80283280;
*ucode_size = 0x100;
}

View File

@@ -1,15 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
void dummy_func_8025AFB0(void) {}
void dummy_func_8025AFB8(void) {}
void dummy_func_8025AFC0(Gfx **arg0, Mtx **arg1, Vtx **arg2) {}
s32 dummy_func_8025AFD0(void)
{
return 0;
}

View File

@@ -2,6 +2,7 @@
#include "functions.h"
#include "variables.h"
#include "version.h"
#include "core1/ucode.h"
typedef struct {
s32 unk0;
@@ -120,7 +121,7 @@ void func_80246744(OSMesg arg0){
}
void func_80246794(Struct_Core1_8C50_s * arg0){
func_80255D0C(&D_80275910.t.ucode_boot, &D_80275910.t.ucode_boot_size);
ucode_getPtrAndSize(&D_80275910.t.ucode_boot, &D_80275910.t.ucode_boot_size);
D_80275910.t.ucode = n_aspMainTextStart;
D_80275910.t.ucode_data = n_aspMainDataStart;
D_80275910.t.data_ptr = (void*) arg0->unk8;
@@ -134,7 +135,7 @@ void func_80246794(Struct_Core1_8C50_s * arg0){
}
void func_80246844(Struct_Core1_8C50_s * arg0){
func_80255D0C(&D_80275950.t.ucode_boot, &D_80275950.t.ucode_boot_size);
ucode_getPtrAndSize(&D_80275950.t.ucode_boot, &D_80275950.t.ucode_boot_size);
D_80275950.t.ucode = gSPF3DEX_fifoTextStart;
D_80275950.t.ucode_data = gSPF3DEX_fifoDataStart;
D_80275950.t.data_ptr = (void*) arg0->unk8;
@@ -152,7 +153,7 @@ void func_80246844(Struct_Core1_8C50_s * arg0){
}
void func_8024692C(Struct_Core1_8C50_s * arg0){
func_80255D0C(&D_80275950.t.ucode_boot, &D_80275950.t.ucode_boot_size);
ucode_getPtrAndSize(&D_80275950.t.ucode_boot, &D_80275950.t.ucode_boot_size);
D_80275950.t.ucode = gSPL3DEX_fifoTextStart;
D_80275950.t.ucode_data = gSPL3DEX_fifoDataStart;
D_80275950.t.data_ptr = (void*) arg0->unk8;

31
src/core1/eeprom.c Normal file
View File

@@ -0,0 +1,31 @@
#include <ultra64.h>
#include "core1/eeprom.h"
#include "core1/pfsmanager.h"
#include "save.h"
#define ROUND_UP_DIVIDE(a, b) (((a) + (b) - 1) / (b))
// The round up divide is not technically needed, but will come in handy for modding
#define GAMEFILE_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveData), EEPROM_BLOCK_SIZE)
s32 eeprom_writeBlocks(s32 file, s32 offset, void *buffer, s32 count) {
s32 address = file * GAMEFILE_NUM_BLOCKS + offset;
s32 ret;
func_8024F35C(3);
ret = osEepromLongWrite(pfsManager_getFrameReplyQ(), address, buffer, count * EEPROM_BLOCK_SIZE);
func_8024F35C(0);
return ret;
}
s32 eeprom_readBlocks(s32 file, s32 offset, void *buffer, s32 count) {
s32 address = file * GAMEFILE_NUM_BLOCKS + offset;
s32 ret;
func_8024F35C(3);
ret = osEepromLongRead(pfsManager_getFrameReplyQ(), address, buffer, count * EEPROM_BLOCK_SIZE);
func_8024F35C(0);
return ret;
}

View File

@@ -1,4 +1,5 @@
#include <ultra64.h>
#include "core1/pfsmanager.h"
#include "functions.h"
#include "variables.h"
@@ -6,8 +7,6 @@
#define PFSMANAGER_THREAD_STACK_SIZE 0x200
extern s32 D_803727F4;
extern struct {
u8 pad0[4];
s32 unk4;
@@ -15,22 +14,7 @@ extern struct {
s32 unkC;
} D_80379B90;
typedef struct {
s32 face_button[6];
s32 side_button[3];
s32 unk24[4];
s32 start_button;
}Struct_core1_10A00_0;
typedef struct {
s16 unk0;
s16 unk2;
u16 unk4;
u16 unk6;
f32 unk8[2];
f32 joystick[2];
}Struct_core1_10A00_1;
extern s32 D_803727F4;
extern s32 D_80276574;
/* .data */
@@ -41,13 +25,14 @@ extern s32 D_80276574;
s32 D_80275D30 = 0xED7BCDB7; //WHAT IS THIS?
s32 D_80275D34 = 0xF82DC7AC; //WHAT IS THIS?
#endif
s32 D_80275D38 = 0;
static s32 D_80275D38 = 0;
/* .bss */
UNK_TYPE(s32) D_802810E0[4][5];
u8 pfsManagerBitPattern;
Struct_core1_10A00_0 D_80281138[4];
Struct_core1_10A00_0 D_80281218;
PfsManagerControllerData D_80281138[4];
PfsManagerControllerData D_80281218;
Struct_core1_10A00_1 D_80281250[4];
OSMesg pfsManagerContPollingMsqBuf;
OSMesg pfsManagerContReplyMsgBuf;
@@ -66,13 +51,6 @@ OSMesgQueue D_802816E8;
OSMesg D_80281700[4];
u8 pad_D_80281710[1];
/* .h */
void func_8024F224(void);
void func_8024F35C(bool arg0);
void func_8024F450(void);
void func_8024F4AC(void);
/* .code */
f32 func_8024E420(s32 arg0, s32 arg1, s32 arg2) {
f32 phi_f2;
@@ -92,7 +70,7 @@ f32 func_8024E420(s32 arg0, s32 arg1, s32 arg2) {
return phi_f2 *= arg0;
}
void func_8024E55C(s32 controller_index, s32 dst[6]){
void pfsManager_getControllerFaceButtonState(s32 controller_index, s32 dst[6]){
dst[FACE_BUTTON(BUTTON_A)] = D_80281138[controller_index].face_button[FACE_BUTTON(BUTTON_A)];
dst[FACE_BUTTON(BUTTON_B)] = D_80281138[controller_index].face_button[FACE_BUTTON(BUTTON_B)];
dst[FACE_BUTTON(BUTTON_C_LEFT)] = D_80281138[controller_index].face_button[FACE_BUTTON(BUTTON_C_LEFT)];
@@ -101,7 +79,7 @@ void func_8024E55C(s32 controller_index, s32 dst[6]){
dst[FACE_BUTTON(BUTTON_C_RIGHT)] = D_80281138[controller_index].face_button[FACE_BUTTON(BUTTON_C_RIGHT)];
}
void func_8024E5A8(s32 controller_index, s32 dst[6]){
void pfsManager_getFirstControllerFaceButtonState(s32 controller_index, s32 dst[6]){
dst[FACE_BUTTON(BUTTON_A)] = D_80281218.face_button[FACE_BUTTON(BUTTON_A)];
dst[FACE_BUTTON(BUTTON_B)] = D_80281218.face_button[FACE_BUTTON(BUTTON_B)];
dst[FACE_BUTTON(BUTTON_C_LEFT)] = D_80281218.face_button[FACE_BUTTON(BUTTON_C_LEFT)];
@@ -171,7 +149,9 @@ void pfsManager_update(void) {
if (func_8023E000() == 3) {
func_802E4384();
}
osSetThreadPri(0, 0x29);
D_802812D0.stick_x = pfsManagerContPadData[0].stick_x;
D_802812D0.stick_y = pfsManagerContPadData[0].stick_y;
D_802812D0.button = pfsManagerContPadData[0].button;
@@ -304,7 +284,7 @@ void pfsManager_entry(void *arg) {
} while (1);
}
void pfsManager_init(void){
void pfsManager_init(void) {
osCreateMesgQueue(&pfsManagerContPollingMsqQ, &pfsManagerContPollingMsqBuf, 1);
osCreateMesgQueue(&pfsManagerContReplyMsgQ, &pfsManagerContReplyMsgBuf, 1);
osCreateThread(&sPfsManagerThread, 7, pfsManager_entry, NULL, sPfsManagerThreadStack + PFSMANAGER_THREAD_STACK_SIZE, 40);
@@ -384,7 +364,7 @@ OSMesgQueue *pfsManager_getFrameMesgQ(void){
return &pfsManagerContPollingMsqQ;
}
void func_8024F35C(bool arg0){
void func_8024F35C(s32 arg0) {
if(!arg0)
func_8024F4AC();
else
@@ -408,10 +388,10 @@ OSContPad *func_8024F3F4(void){
}
/* initilizes D_802816E8 message queue */
void func_8024F400(void){
void func_8024F400(void) {
D_80275D38 = TRUE;
osCreateMesgQueue(&D_802816E8, &D_80281700, 5);
osSendMesg(&D_802816E8, 0, 0);
osSendMesg(&D_802816E8, 0, OS_MESG_NOBLOCK);
}
void func_8024F450(void){
@@ -422,5 +402,5 @@ void func_8024F450(void){
}
void func_8024F4AC(void){
osSendMesg(&D_802816E8, 0, 0);
osSendMesg(&D_802816E8, NULL, OS_MESG_NOBLOCK);
}

19
src/core1/stub_13640.c Normal file
View File

@@ -0,0 +1,19 @@
#include <ultra64.h>
s32 stub_13640_get(void);
void stub_13640_init(void);
void stub_13640_set(s32 value);
static s32 sUnused;
s32 stubVar_13640_get(void) {
return sUnused;
}
void stub_13640_init(void) {
stub_13640_set(0);
}
void stub_13640_set(s32 arg0) {
sUnused = arg0;
}

6
src/core1/stub_1D590.c Normal file
View File

@@ -0,0 +1,6 @@
#include <ultra64.h>
void dummy_func_8025AFB0(void) {}
void dummy_func_8025AFB8(void) {}
void dummy_func_8025AFC0(Gfx **gfx, Mtx **mtx, Vtx **vtx) {}
s32 dummy_func_8025AFD0(void) { return 0; }

39
src/core1/ucode.c Normal file
View File

@@ -0,0 +1,39 @@
#include <ultra64.h>
#include <PR/rcp.h>
#include "core1/ucode.h"
#include "functions.h"
#include "variables.h"
#define UCODE_SIZE 256
static u8 sUcodeData[UCODE_SIZE];
static s32 D_80283380;
static s32 D_80283384;
static s32 D_80283388;
void ucode_load(void) {
D_80283384 = *(s32 *)PHYS_TO_K1(0x04000000) ^ -1;
D_80283388 = D_80283384 ? 0x01 : 0x00;
D_80283380 = *(s32 *)PHYS_TO_K1(0x04001000) ^ 0x17D7;
D_80283388 |= D_80283380 ? 0x02 : 0x00;
if (D_80283388 == 0) {
piMgr_read(&sUcodeData, 0xB0000B70, UCODE_SIZE);
}
}
void ucode_stub1(void) {}
void ucode_stub2(void) {
osPiReadIo(0, NULL);
}
s32 ucode_stub3(void) {
return 0;
}
void ucode_getPtrAndSize(void **ptr, u32 *size) {
*ptr = &sUcodeData;
*size = UCODE_SIZE;
}