mirror of https://github.com/zeldaret/mm.git
				
				
				
			Decomp controller.c
This commit is contained in:
		
							parent
							
								
									727a546fcf
								
							
						
					
					
						commit
						bb9de27a16
					
				| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
#include <PR/ultratypes.h>
 | 
			
		||||
#include <PR/gbi.h>
 | 
			
		||||
#include <io/controller.h>
 | 
			
		||||
#include <osint.h>
 | 
			
		||||
#include <viint.h>
 | 
			
		||||
#include <guint.h>
 | 
			
		||||
#include <os.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <xstdio.h>
 | 
			
		||||
#include <unk.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,14 +1,7 @@
 | 
			
		|||
#ifndef _FUNCTIONS_H_
 | 
			
		||||
#define _FUNCTIONS_H_
 | 
			
		||||
 | 
			
		||||
#include <PR/ultratypes.h>
 | 
			
		||||
#include <osint.h>
 | 
			
		||||
#include <viint.h>
 | 
			
		||||
#include <guint.h>
 | 
			
		||||
#include <unk.h>
 | 
			
		||||
#include <structs.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <xstdio.h>
 | 
			
		||||
 | 
			
		||||
void start(void); // func_80080060
 | 
			
		||||
void Idle_ClearMemory(void* begin, void* end); // func_80080150
 | 
			
		||||
| 
						 | 
				
			
			@ -245,7 +238,7 @@ void func_80087854(void); // func_80087854
 | 
			
		|||
int sprintf(char* s, char* fmt, ...); // func_800878A4
 | 
			
		||||
void func_80087900(void); // func_80087900
 | 
			
		||||
void func_80087934(void); // func_80087934
 | 
			
		||||
void wait_cycles(void); // func_80087960
 | 
			
		||||
void wait_cycles(OSTime uParm1); // func_80087960
 | 
			
		||||
void func_800879CC(void); // func_800879CC
 | 
			
		||||
void func_80087A1C(void); // func_80087A1C
 | 
			
		||||
void func_80087A6C(u32 param_1); // func_80087A6C
 | 
			
		||||
| 
						 | 
				
			
			@ -267,11 +260,11 @@ void osSpTaskLoad(OSTask* intp); // func_8008868C
 | 
			
		|||
void osSpTaskStartGo(OSTask* tp); // func_800887F4
 | 
			
		||||
void __ull_rshift(void); // func_80088840
 | 
			
		||||
void __ull_rem(void); // func_8008886C
 | 
			
		||||
u64 __ull_div(void); // func_800888A8
 | 
			
		||||
u64 __ull_div(u64 param_1, u64 param_2); // func_800888A8
 | 
			
		||||
void __ll_lshift(void); // func_800888E4
 | 
			
		||||
void __ll_rem(void); // func_80088910
 | 
			
		||||
void __ll_div(void); // func_8008894C
 | 
			
		||||
u64 __ll_mul(void); // func_800889A8
 | 
			
		||||
u64 __ll_mul(u64 param_1, u64 param_2); // func_800889A8
 | 
			
		||||
void __ull_divremi(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); // func_800889D8
 | 
			
		||||
void __ll_mod(void); // func_80088A38
 | 
			
		||||
void __ll_rshift(void); // func_80088AD4
 | 
			
		||||
| 
						 | 
				
			
			@ -295,7 +288,7 @@ void func_80089944(void); // func_80089944
 | 
			
		|||
void __osSiCreateAccessQueue(void); // func_80089AA0
 | 
			
		||||
void __osSiGetAccess(void); // func_80089AF0
 | 
			
		||||
void __osSiRelAccess(void); // func_80089B34
 | 
			
		||||
void osContInit(void); // func_80089B60
 | 
			
		||||
s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data); // func_80089B60
 | 
			
		||||
void __osContGetInitData(u8* pattern, OSContStatus* data); // func_80089CBC
 | 
			
		||||
void __osPackRequestData(u8 cmd); // func_80089D68
 | 
			
		||||
void osCreateThread(OSThread* t, OSId id, osCreateThread_func* entry, void* arg, void* sp, OSPri p); // func_80089E40
 | 
			
		||||
| 
						 | 
				
			
			@ -374,7 +367,7 @@ void osInvalICache(void* vaddr, s32 nbytes); // func_8008F270
 | 
			
		|||
void osInvalDCache(void* vaddr, s32 nbytes); // func_8008F2F0
 | 
			
		||||
void __osTimerServicesInit(void); // func_8008F3A0
 | 
			
		||||
void __osTimerInterrupt(void); // func_8008F42C
 | 
			
		||||
void __osSetTimerIntr(void); // func_8008F5A4
 | 
			
		||||
void __osSetTimerIntr(OSTime tim); // func_8008F5A4
 | 
			
		||||
void __osInsertTimer(OSTimer* t); // func_8008F644
 | 
			
		||||
void func_8008F7D0(void); // func_8008F7D0
 | 
			
		||||
int __osSpDeviceBusy(void); // func_8008FA00
 | 
			
		||||
| 
						 | 
				
			
			@ -450,12 +443,12 @@ void func_80093CC0(void); // func_80093CC0
 | 
			
		|||
u32 __osGetCause(void); // func_80093D90
 | 
			
		||||
void func_80093DA0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); // func_80093DA0
 | 
			
		||||
void func_80093FF0(void); // func_80093FF0
 | 
			
		||||
s32 osSetTimer(OSTimer* t, OSTime interval, OSMesgQueue* mq, OSMesg msg); // func_80094150
 | 
			
		||||
s32 osSetTimer(OSTimer* t, OSTime value, OSTime interval, OSMesgQueue* mq, OSMesg msg); // func_80094150
 | 
			
		||||
void _Ldtob(void); // func_800942E0
 | 
			
		||||
void func_80094770(void); // func_80094770
 | 
			
		||||
void func_80094828(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); // func_80094828
 | 
			
		||||
ldiv_t ldiv(s32 __numer, s32 __denom); // func_80094DF0
 | 
			
		||||
lldiv_t* lldiv(lldiv_t* __return_storage_ptr__, s64 __numer, s64 __denom); // func_80094E74
 | 
			
		||||
lldiv_t* lldiv(s64 __numer, s64 __denom); // func_80094E74
 | 
			
		||||
void _Litob(void); // func_80094F80
 | 
			
		||||
s32 __osSiRawWriteIo(u32 devAddr, u32 data); // func_80095220
 | 
			
		||||
u32 __osSpGetStatus(void); // func_80095270
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,8 @@
 | 
			
		|||
#ifndef _CONTROLLER_H_
 | 
			
		||||
#define _CONTROLLER_H_
 | 
			
		||||
 | 
			
		||||
#include <PR/ultratypes.h>
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    /* 0x00 */ u32 ramarray[15];
 | 
			
		||||
    /* 0x3C */ u32 pifstatus;
 | 
			
		||||
| 
						 | 
				
			
			@ -21,8 +21,7 @@ typedef struct {
 | 
			
		|||
    /* 0x4 */ OSPri priority;
 | 
			
		||||
} __OSThreadTail;
 | 
			
		||||
 | 
			
		||||
#include <variables.h> // TODO all variables should be moved to the file that logically defines them
 | 
			
		||||
                       // maybe put externs here?
 | 
			
		||||
#include <functions.h>
 | 
			
		||||
#include <global.h> // TODO this is just so libultra files can see function and variable declarations.
 | 
			
		||||
                    // Once all data sections have been split up, it should be removed.
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
#ifndef _SEGMENT_H_
 | 
			
		||||
#define _SEGMENT_H_
 | 
			
		||||
 | 
			
		||||
#include <PR/ultratypes.h>
 | 
			
		||||
#include <structs.h>
 | 
			
		||||
 | 
			
		||||
extern UNK_TYPE D_04029CB0; // D_04029CB0
 | 
			
		||||
extern UNK_TYPE D_04029CF0; // D_04029CF0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,7 @@
 | 
			
		|||
#ifndef _STRUCTS_H_
 | 
			
		||||
#define _STRUCTS_H_
 | 
			
		||||
 | 
			
		||||
#include <PR/ultratypes.h>
 | 
			
		||||
#include <PR/gbi.h>
 | 
			
		||||
#include <unk.h>
 | 
			
		||||
#include <os.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <all_types.h>
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
/* 0x0 */ s16 priority; // Lower means higher priority. -1 means it ignores priority
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,7 @@
 | 
			
		|||
#ifndef _VARIABLES_H_
 | 
			
		||||
#define _VARIABLES_H_
 | 
			
		||||
 | 
			
		||||
#include <PR/ultratypes.h>
 | 
			
		||||
#include <osint.h>
 | 
			
		||||
#include <viint.h>
 | 
			
		||||
#include <guint.h>
 | 
			
		||||
#include <unk.h>
 | 
			
		||||
#include <structs.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <xstdio.h>
 | 
			
		||||
#include <dmadata.h>
 | 
			
		||||
#include <segment.h>
 | 
			
		||||
#include <pre_boot_variables.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -308,12 +301,12 @@ extern OSTask tmp_task; // D_8009CD70
 | 
			
		|||
extern UNK_TYPE1 D_8009CDB0; // D_8009CDB0
 | 
			
		||||
extern UNK_TYPE1 D_8009CEB0; // D_8009CEB0
 | 
			
		||||
extern UNK_TYPE1 __osSiAccessQueue; // D_8009CEB8
 | 
			
		||||
extern UNK_TYPE4 __osContPifRam; // D_8009CED0
 | 
			
		||||
extern UNK_TYPE4 D_8009CF0C; // D_8009CF0C
 | 
			
		||||
extern OSPifRam __osContPifRam; // D_8009CED0
 | 
			
		||||
extern UNK_TYPE1 D_8009CF0C; // D_8009CF0C
 | 
			
		||||
extern u8 __osContLastCmd; // D_8009CF10
 | 
			
		||||
extern u8 __osMaxControllers; // D_8009CF11
 | 
			
		||||
extern UNK_TYPE1 D_8009CF38; // D_8009CF38
 | 
			
		||||
extern UNK_TYPE1 D_8009CF50; // D_8009CF50
 | 
			
		||||
extern OSMesgQueue D_8009CF38; // D_8009CF38
 | 
			
		||||
extern OSMesg D_8009CF50[1]; // D_8009CF50
 | 
			
		||||
extern UNK_TYPE1 D_8009CF60; // D_8009CF60
 | 
			
		||||
extern UNK_TYPE4 D_8009CF70; // D_8009CF70
 | 
			
		||||
extern UNK_TYPE1 __osThreadSave; // D_8009CF80
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,7 +48,7 @@ SECTIONS
 | 
			
		|||
        build/asm/bzero.o(.text)
 | 
			
		||||
        build/asm/boot_0x800896D0.o(.text)
 | 
			
		||||
        build/asm/siacs.o(.text)
 | 
			
		||||
        build/asm/controller.o(.text)
 | 
			
		||||
        build/src/libultra/io/controller.o(.text)
 | 
			
		||||
        build/src/libultra/os/createthread.o(.text)
 | 
			
		||||
        build/asm/contreaddata.o(.text)
 | 
			
		||||
        build/asm/boot_0x8008A170.o(.text)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,9 +6,9 @@ void CIC6105_Nop80081820(void) {}
 | 
			
		|||
void CIC6105_Nop80081828(void) {}
 | 
			
		||||
 | 
			
		||||
void CIC6105_PrintRomInfo(void) {
 | 
			
		||||
    FaultDraw_DrawText(80, 200, &D_80098280, (UNK_PTR)(*(u32*)0xA4040010));
 | 
			
		||||
    FaultDraw_DrawText(40, 184, &D_80098290, &D_800994D0);
 | 
			
		||||
    FaultDraw_DrawText(56, 192, &D_800982A4, &D_800994DC);
 | 
			
		||||
    FaultDraw_DrawText(80, 200, D_80098280, (UNK_PTR)(*(u32*)0xA4040010));
 | 
			
		||||
    FaultDraw_DrawText(40, 184, D_80098290, &D_800994D0);
 | 
			
		||||
    FaultDraw_DrawText(56, 192, D_800982A4, &D_800994DC);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CIC6105_AddRomInfoFaultPage(void) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,32 +1,32 @@
 | 
			
		|||
#include <osint.h>
 | 
			
		||||
 | 
			
		||||
#include "controller.h"
 | 
			
		||||
#include "io/controller.h"
 | 
			
		||||
#include "siint.h"
 | 
			
		||||
 | 
			
		||||
s32 osContStartQuery(OSMesgQueue* mq)
 | 
			
		||||
{
 | 
			
		||||
    s32 ret;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    __osSiGetAccess();
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    if (__osContLastCmd != 0) {
 | 
			
		||||
        __osPackRequestData(0);
 | 
			
		||||
        __osSiRawStartDma(1, &__osContPifRam);
 | 
			
		||||
        osRecvMesg(mq, NULL, 1);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    ret = __osSiRawStartDma(0, &__osContPifRam);
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    __osContLastCmd = 0;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    __osSiRelAccess();
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void osContGetQuery(OSContStatus* data)
 | 
			
		||||
{
 | 
			
		||||
    u8 pattern;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    __osContGetInitData(&pattern, data);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,88 @@
 | 
			
		|||
#include <ultra64.h>
 | 
			
		||||
#include <global.h>
 | 
			
		||||
 | 
			
		||||
s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) {
 | 
			
		||||
    OSMesg dummy;
 | 
			
		||||
    s32 ret = 0;
 | 
			
		||||
    OSTime t;
 | 
			
		||||
    OSTimer mytimer;
 | 
			
		||||
    OSMesgQueue timerMesgQueue;
 | 
			
		||||
 | 
			
		||||
    if (D_80097E40 != 0) {
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    D_80097E40 = 1;
 | 
			
		||||
 | 
			
		||||
    t = osGetTime();
 | 
			
		||||
    if (t < 0x165A0BC) {
 | 
			
		||||
        osCreateMesgQueue(&timerMesgQueue, &dummy, 1);
 | 
			
		||||
        osSetTimer(&mytimer, 0x165A0BC - t, 0, &timerMesgQueue, &dummy);
 | 
			
		||||
        osRecvMesg(&timerMesgQueue, &dummy, OS_MESG_BLOCK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    __osMaxControllers = 4;
 | 
			
		||||
 | 
			
		||||
    __osPackRequestData(0);
 | 
			
		||||
 | 
			
		||||
    ret = __osSiRawStartDma(1, &__osContPifRam);
 | 
			
		||||
    osRecvMesg(mq, &dummy, 1);
 | 
			
		||||
 | 
			
		||||
    ret = __osSiRawStartDma(0, &__osContPifRam);
 | 
			
		||||
    osRecvMesg(mq, &dummy, 1);
 | 
			
		||||
 | 
			
		||||
    __osContGetInitData(bitpattern, data);
 | 
			
		||||
    __osContLastCmd = 0;
 | 
			
		||||
    __osSiCreateAccessQueue();
 | 
			
		||||
    osCreateMesgQueue(&D_8009CF38, D_8009CF50, 1);
 | 
			
		||||
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void __osContGetInitData(u8* pattern, OSContStatus* data) {
 | 
			
		||||
    u8* ptr;
 | 
			
		||||
    __OSContRequesFormat requestformat;
 | 
			
		||||
    int i;
 | 
			
		||||
    u8 bits;
 | 
			
		||||
 | 
			
		||||
    bits = 0;
 | 
			
		||||
    ptr = (u8*)__osContPifRam.ramarray;
 | 
			
		||||
    for (i = 0; i < __osMaxControllers; i++, ptr += sizeof(requestformat), data++) {
 | 
			
		||||
        requestformat = *(__OSContRequesFormat*)ptr;
 | 
			
		||||
        data->errno = (requestformat.rxsize & 0xc0) >> 4;
 | 
			
		||||
        if (data->errno == 0) {
 | 
			
		||||
            data->type = requestformat.typel << 8 | requestformat.typeh;
 | 
			
		||||
            data->status = requestformat.status;
 | 
			
		||||
 | 
			
		||||
            bits |= 1 << i;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    *pattern = bits;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void __osPackRequestData(u8 cmd) {
 | 
			
		||||
    u8* ptr;
 | 
			
		||||
    __OSContRequesFormat requestformat;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < 0xF; i++) {
 | 
			
		||||
        __osContPifRam.ramarray[i] = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    __osContPifRam.pifstatus = 1;
 | 
			
		||||
    ptr = (u8*)__osContPifRam.ramarray;
 | 
			
		||||
    requestformat.dummy = 255;
 | 
			
		||||
    requestformat.txsize = 1;
 | 
			
		||||
    requestformat.rxsize = 3;
 | 
			
		||||
    requestformat.cmd = cmd;
 | 
			
		||||
    requestformat.typeh = 255;
 | 
			
		||||
    requestformat.typel = 255;
 | 
			
		||||
    requestformat.status = 255;
 | 
			
		||||
    requestformat.dummy1 = 255;
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < __osMaxControllers; i++) {
 | 
			
		||||
        *(__OSContRequesFormat*)ptr = requestformat;
 | 
			
		||||
        ptr += sizeof(requestformat);
 | 
			
		||||
    }
 | 
			
		||||
    *ptr = 254;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -235,7 +235,7 @@
 | 
			
		|||
    0x800878A4:("sprintf","int","char* s, char* fmt, ..."),
 | 
			
		||||
    0x80087900:("func_80087900","void","void"),
 | 
			
		||||
    0x80087934:("func_80087934","void","void"),
 | 
			
		||||
    0x80087960:("wait_cycles","void","void"),
 | 
			
		||||
    0x80087960:("wait_cycles","void","OSTime uParm1"),
 | 
			
		||||
    0x800879CC:("func_800879CC","void","void"),
 | 
			
		||||
    0x80087A1C:("func_80087A1C","void","void"),
 | 
			
		||||
    0x80087A6C:("func_80087A6C","void","u32 param_1"),
 | 
			
		||||
| 
						 | 
				
			
			@ -257,11 +257,11 @@
 | 
			
		|||
    0x800887F4:("osSpTaskStartGo","void","OSTask* tp"),
 | 
			
		||||
    0x80088840:("__ull_rshift","void","void"),
 | 
			
		||||
    0x8008886C:("__ull_rem","void","void"),
 | 
			
		||||
    0x800888A8:("__ull_div","u64","void"),
 | 
			
		||||
    0x800888A8:("__ull_div","u64","u64 param_1, u64 param_2"),
 | 
			
		||||
    0x800888E4:("__ll_lshift","void","void"),
 | 
			
		||||
    0x80088910:("__ll_rem","void","void"),
 | 
			
		||||
    0x8008894C:("__ll_div","void","void"),
 | 
			
		||||
    0x800889A8:("__ll_mul","u64","void"),
 | 
			
		||||
    0x800889A8:("__ll_mul","u64","u64 param_1, u64 param_2"),
 | 
			
		||||
    0x800889D8:("__ull_divremi","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5"),
 | 
			
		||||
    0x80088A38:("__ll_mod","void","void"),
 | 
			
		||||
    0x80088AD4:("__ll_rshift","void","void"),
 | 
			
		||||
| 
						 | 
				
			
			@ -285,7 +285,7 @@
 | 
			
		|||
    0x80089AA0:("__osSiCreateAccessQueue","void","void"),
 | 
			
		||||
    0x80089AF0:("__osSiGetAccess","void","void"),
 | 
			
		||||
    0x80089B34:("__osSiRelAccess","void","void"),
 | 
			
		||||
    0x80089B60:("osContInit","void","void"),
 | 
			
		||||
    0x80089B60:("osContInit","s32","OSMesgQueue* mq, u8* bitpattern, OSContStatus* data"),
 | 
			
		||||
    0x80089CBC:("__osContGetInitData","void","u8* pattern, OSContStatus* data"),
 | 
			
		||||
    0x80089D68:("__osPackRequestData","void","u8 cmd"),
 | 
			
		||||
    0x80089E40:("osCreateThread","void","OSThread* t, OSId id, osCreateThread_func* entry, void* arg, void* sp, OSPri p"),
 | 
			
		||||
| 
						 | 
				
			
			@ -364,7 +364,7 @@
 | 
			
		|||
    0x8008F2F0:("osInvalDCache","void","void* vaddr, s32 nbytes"),
 | 
			
		||||
    0x8008F3A0:("__osTimerServicesInit","void","void"),
 | 
			
		||||
    0x8008F42C:("__osTimerInterrupt","void","void"),
 | 
			
		||||
    0x8008F5A4:("__osSetTimerIntr","void","void"),
 | 
			
		||||
    0x8008F5A4:("__osSetTimerIntr","void","OSTime tim"),
 | 
			
		||||
    0x8008F644:("__osInsertTimer","void","OSTimer* t"),
 | 
			
		||||
    0x8008F7D0:("func_8008F7D0","void","void"),
 | 
			
		||||
    0x8008FA00:("__osSpDeviceBusy","int","void"),
 | 
			
		||||
| 
						 | 
				
			
			@ -440,12 +440,12 @@
 | 
			
		|||
    0x80093D90:("__osGetCause","u32","void"),
 | 
			
		||||
    0x80093DA0:("func_80093DA0","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5"),
 | 
			
		||||
    0x80093FF0:("func_80093FF0","void","void"),
 | 
			
		||||
    0x80094150:("osSetTimer","s32","OSTimer* t, OSTime interval, OSMesgQueue* mq, OSMesg msg"),
 | 
			
		||||
    0x80094150:("osSetTimer","s32","OSTimer* t, OSTime value, OSTime interval, OSMesgQueue* mq, OSMesg msg"),
 | 
			
		||||
    0x800942E0:("_Ldtob","void","void"),
 | 
			
		||||
    0x80094770:("func_80094770","void","void"),
 | 
			
		||||
    0x80094828:("func_80094828","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5"),
 | 
			
		||||
    0x80094DF0:("ldiv","ldiv_t","s32 __numer, s32 __denom"),
 | 
			
		||||
    0x80094E74:("lldiv","lldiv_t*","lldiv_t* __return_storage_ptr__, s64 __numer, s64 __denom"),
 | 
			
		||||
    0x80094E74:("lldiv","lldiv_t*","s64 __numer, s64 __denom"),
 | 
			
		||||
    0x80094F80:("_Litob","void","void"),
 | 
			
		||||
    0x80095220:("__osSiRawWriteIo","s32","u32 devAddr, u32 data"),
 | 
			
		||||
    0x80095270:("__osSpGetStatus","u32","void"),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -295,12 +295,12 @@
 | 
			
		|||
    0x8009CDB0:("D_8009CDB0","UNK_TYPE1",""),
 | 
			
		||||
    0x8009CEB0:("D_8009CEB0","UNK_TYPE1",""),
 | 
			
		||||
    0x8009CEB8:("__osSiAccessQueue","UNK_TYPE1",""),
 | 
			
		||||
    0x8009CED0:("__osContPifRam","UNK_TYPE4",""),
 | 
			
		||||
    0x8009CF0C:("D_8009CF0C","UNK_TYPE4",""),
 | 
			
		||||
    0x8009CED0:("__osContPifRam","OSPifRam",""),
 | 
			
		||||
    0x8009CF0C:("D_8009CF0C","UNK_TYPE1",""),
 | 
			
		||||
    0x8009CF10:("__osContLastCmd","u8",""),
 | 
			
		||||
    0x8009CF11:("__osMaxControllers","u8",""),
 | 
			
		||||
    0x8009CF38:("D_8009CF38","UNK_TYPE1",""),
 | 
			
		||||
    0x8009CF50:("D_8009CF50","UNK_TYPE1",""),
 | 
			
		||||
    0x8009CF38:("D_8009CF38","OSMesgQueue",""),
 | 
			
		||||
    0x8009CF50:("D_8009CF50","OSMesg","[1]"),
 | 
			
		||||
    0x8009CF60:("D_8009CF60","UNK_TYPE1",""),
 | 
			
		||||
    0x8009CF70:("D_8009CF70","UNK_TYPE4",""),
 | 
			
		||||
    0x8009CF80:("__osThreadSave","UNK_TYPE1",""),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -696,14 +696,7 @@ class Disassembler:
 | 
			
		|||
                    "\n"
 | 
			
		||||
                    )
 | 
			
		||||
 | 
			
		||||
            f.write("#include <PR/ultratypes.h>\n"
 | 
			
		||||
                    "#include <osint.h>\n"
 | 
			
		||||
                    "#include <viint.h>\n"
 | 
			
		||||
                    "#include <guint.h>\n"
 | 
			
		||||
                    "#include <unk.h>\n"
 | 
			
		||||
                    "#include <structs.h>\n"
 | 
			
		||||
                    "#include <stdlib.h>\n"
 | 
			
		||||
                    "#include <xstdio.h>\n"
 | 
			
		||||
            f.write("#include <structs.h>\n"
 | 
			
		||||
                    "\n"
 | 
			
		||||
                    )
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -721,14 +714,7 @@ class Disassembler:
 | 
			
		|||
                    "\n"
 | 
			
		||||
                    )
 | 
			
		||||
 | 
			
		||||
            f.write("#include <PR/ultratypes.h>\n"
 | 
			
		||||
                    "#include <osint.h>\n"
 | 
			
		||||
                    "#include <viint.h>\n"
 | 
			
		||||
                    "#include <guint.h>\n"
 | 
			
		||||
                    "#include <unk.h>\n"
 | 
			
		||||
                    "#include <structs.h>\n"
 | 
			
		||||
                    "#include <stdlib.h>\n"
 | 
			
		||||
                    "#include <xstdio.h>\n"
 | 
			
		||||
            f.write("#include <structs.h>\n"
 | 
			
		||||
                    "#include <dmadata.h>\n"
 | 
			
		||||
                    "#include <segment.h>\n"
 | 
			
		||||
                    "#include <pre_boot_variables.h>\n"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue