mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
refactor main and irqmgr
This commit is contained in:
@@ -193,6 +193,10 @@ lb_reki.c:
|
||||
.text: [0x8040752C, 0x80407AE8]
|
||||
.rodata: [0x806437A0, 0x806437C0]
|
||||
.data: [0x8065ECD8, 0x8065F110]
|
||||
#main.c:
|
||||
# .text: [0x80407AE8, 0x80407CF4]
|
||||
# .data: [0x8065F110, 0x8065F138]
|
||||
# .bss: [0x812F4CC0, 0x812F5038]
|
||||
#sys_math.c:
|
||||
# .text: [0x80408940, 0x80408A44]
|
||||
# .rodata: [0x806437C0, 0x806437D0]
|
||||
|
||||
+1
-1
@@ -7917,7 +7917,7 @@ global:
|
||||
0x80407A78: lbRk_HarvestMoonDay
|
||||
0x80407AE8: mainproc
|
||||
0x80407C70: entry
|
||||
0x80407CB9: foresta_main
|
||||
0x80407CB8: foresta_main
|
||||
0x80407CF4: padmgr_LockSerialMesgQ
|
||||
0x80407D30: padmgr_UnlockSerialMesgQ
|
||||
0x80407D64: padmgr_LockContData
|
||||
|
||||
+1
-2
@@ -23,8 +23,7 @@ import common as c
|
||||
|
||||
# Check CodeWarrior was added
|
||||
assert os.path.exists("tools/1.3.2/mwcceppc.exe") and \
|
||||
os.path.exists("tools/1.2.5/mwcceppc.exe") and \
|
||||
os.path.exists("tools/1.3.2/mwldeppc.exe"), \
|
||||
os.path.exists("tools/1.2.5n/mwcceppc.exe"), \
|
||||
"Error: Codewarrior not found!"
|
||||
|
||||
# Check binaries were added
|
||||
|
||||
@@ -70,6 +70,7 @@ typedef struct famicom_common_s {
|
||||
|
||||
typedef u8 (*FAMICOM_GETSAVECHAN_PROC)(int* player_no, int* slot_card_result);
|
||||
extern void famicom_setCallback_getSaveChan(FAMICOM_GETSAVECHAN_PROC getSaveChan_proc);
|
||||
extern int famicom_mount_archive();
|
||||
extern int famicom_mount_archive_end_check();
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -47,6 +47,7 @@ enum resource_index {
|
||||
|
||||
extern void JW_Init();
|
||||
extern void JW_Init2();
|
||||
extern void JW_Init3();
|
||||
extern void* JW_Alloc(size_t size, int align);
|
||||
extern void JW_Free(void* ptr);
|
||||
extern s32 JW_Resize(void* ptr, size_t new_size);
|
||||
@@ -71,6 +72,9 @@ extern void* JC_JFWDisplay_getManager();
|
||||
extern void JC_JFWDisplay_startFadeOut(void* manager, int len);
|
||||
extern void JC_JFWDisplay_startFadeIn(void* manager, int len);
|
||||
|
||||
extern void JC_JKRAramHeap_dump(void* heap);
|
||||
extern void* JC_JKRAram_getAramHeap();
|
||||
|
||||
extern int JC_JKRHeap_dump(void* heap);
|
||||
extern s32 JC_JKRHeap_getTotalFreeSize(void* heap);
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#ifndef SETTHREADPRI_H
|
||||
#define SETTHREADPRI_H
|
||||
|
||||
#include "types.h"
|
||||
#include "libultra/osThread.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void osSetThreadPri(OSThread* thread, OSPri priority);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
@@ -11,6 +11,7 @@ extern "C" {
|
||||
extern u8 mCD_GetThisLandSlotNo_code(int* player_no, int* slot_card_results);
|
||||
extern void mCD_save_data_aram_malloc();
|
||||
extern void mCD_set_aram_save_data();
|
||||
extern void mCD_init_card();
|
||||
|
||||
extern void mCD_PrintErrInfo(gfxprint_t* gfxprint);
|
||||
extern void mCD_InitAll();
|
||||
|
||||
@@ -76,6 +76,7 @@ extern Debug_mode* debug_mode;
|
||||
#define GETREG(reg, idx) ((s16)(REGADDR(reg, idx)))
|
||||
#define SETREG(reg, idx, val) (REGADDR(reg, idx) = (val))
|
||||
|
||||
extern void new_Debug_mode();
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -220,6 +220,7 @@ extern mMsg_Window_c* mMsg_Get_base_window_p();
|
||||
extern void mMsg_Set_free_str(mMsg_Window_c* msg, int free_str_no, u8* str, int str_size);
|
||||
extern void mMsg_debug_draw(gfxprint_t* gfxprint);
|
||||
extern void mMsg_aram_init();
|
||||
extern void mMsg_aram_init2();
|
||||
extern int mMsg_Check_MainHide(mMsg_Window_c* msg);
|
||||
extern void mMsg_Set_item_str(mMsg_Window_c* msg_win, int str_no, u8* item_str, int str_len);
|
||||
extern void mMsg_Set_mail_str(mMsg_Window_c* msg_win, int str_no, u8* str, int str_len);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "irqmgr.h"
|
||||
#include "libu64/pad.h"
|
||||
#include "dolphin/os/OSMessage.h"
|
||||
#include "libultra/osThread.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -67,6 +68,8 @@ extern int padmgr_isConnectedController(int pad);
|
||||
extern void padmgr_force_stop_ON();
|
||||
extern void padmgr_force_stop_OFF();
|
||||
extern void padmgr_RumbleSet(int pad, int intensity);
|
||||
extern void padmgr_Create(OSMessageQueue* queue, OSId id, OSPri priority, void* stack, size_t stackSize);
|
||||
extern void padmgr_Init(OSMessageQueue* queue);
|
||||
|
||||
#define padmgr_setClient(callback_proc, param) \
|
||||
do { \
|
||||
|
||||
@@ -3,8 +3,14 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#define IRQMGR_STACK_SIZE 0x1000
|
||||
#define PADMGR_STACK_SIZE 0x1000
|
||||
#define GRAPH_STACK_SIZE 0x2000
|
||||
|
||||
extern u8 graphStack[];
|
||||
extern u8 padmgrStack[];
|
||||
extern u8 irqmgrStack[];
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
+34
-12
@@ -1,12 +1,34 @@
|
||||
#include "main.h"
|
||||
|
||||
#include "boot.h"
|
||||
#include "irqmgr.h"
|
||||
#include "sys_stacks.h"
|
||||
#include "graph.h"
|
||||
#include "libultra/osMesg.h"
|
||||
#include "libultra/os_thread.h"
|
||||
#include "libjsys/jsyswrapper.h"
|
||||
#include "m_card.h"
|
||||
#include "_mem.h"
|
||||
#include "padmgr.h"
|
||||
#include "libultra/setthreadpri.h"
|
||||
#include "m_msg.h"
|
||||
#include "Famicom/famicom.h"
|
||||
#include "m_debug.h"
|
||||
#include "libforest/osreport.h"
|
||||
|
||||
//TODO: actually add all the stacks and headers
|
||||
|
||||
void mainproc (void* val){
|
||||
static OSMessageQueue l_serialMsgQ;
|
||||
static OSMessage serialMsgBuf;
|
||||
IrqMgrClient irqClient;
|
||||
static OSMessageQueue l_serialMsgQ;
|
||||
static OSMessage serialMsgBuf;
|
||||
extern OSThread graphThread;
|
||||
extern u8 SegmentBaseAddress[0x40];
|
||||
|
||||
int ScreenHeight = SCREEN_HEIGHT;
|
||||
int ScreenWidth = SCREEN_WIDTH;
|
||||
|
||||
extern void mainproc (void* val){
|
||||
|
||||
irqmgr_client_t irqClient;
|
||||
OSMessageQueue irqMgrMsgQueue;
|
||||
OSMessage irqMsgBuf[10];
|
||||
OSMessage msg;
|
||||
@@ -33,7 +55,7 @@ void mainproc (void* val){
|
||||
JW_EndFrame();
|
||||
|
||||
osStartThread(&graphThread);
|
||||
osSetThreadPri(0, 5);
|
||||
osSetThreadPri(NULL, 5);
|
||||
|
||||
JW_Init3();
|
||||
mMsg_aram_init2();
|
||||
@@ -41,7 +63,7 @@ void mainproc (void* val){
|
||||
famicom_mount_archive();
|
||||
|
||||
JC_JKRAramHeap_dump(JC_JKRAram_getAramHeap());
|
||||
osSetThreadPri(0, 13);
|
||||
osSetThreadPri(NULL, 13);
|
||||
|
||||
do {
|
||||
msg = NULL;
|
||||
@@ -55,19 +77,19 @@ void mainproc (void* val){
|
||||
|
||||
|
||||
|
||||
u32 entry(void) { // TODO: debug_mode struct thing
|
||||
padmgr_Init(0);
|
||||
u32 entry(void) {
|
||||
padmgr_Init(NULL);
|
||||
new_Debug_mode();
|
||||
|
||||
debug_mode.idk = 0;
|
||||
mainproc(0);
|
||||
SETREG(SREG, 0, 0);
|
||||
mainproc(NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void main_foresta(void){
|
||||
void foresta_main(void){
|
||||
OSReport("どうぶつの森 main2 開始");
|
||||
HotStartEntry = (u32)&entry;
|
||||
HotStartEntry = &entry;
|
||||
}
|
||||
|
||||
+1
-3
@@ -1,8 +1,6 @@
|
||||
#include "types.h"
|
||||
|
||||
#define IRQMGR_STACK_SIZE 0x1000
|
||||
#define PADMGR_STACK_SIZE 0x1000
|
||||
#define GRAPH_STACK_SIZE 0x2000
|
||||
#include "sys_stacks.h"
|
||||
|
||||
u8 graphStack[GRAPH_STACK_SIZE];
|
||||
u8 padmgrStack [PADMGR_STACK_SIZE];
|
||||
|
||||
Reference in New Issue
Block a user