Nusys 1.0 -> 2.05, Makefile cleanup

This commit is contained in:
Ethan Roseman 2020-10-17 23:48:26 -04:00
parent 16a9ee0a7b
commit 55e4a0df8f
6 changed files with 81 additions and 38 deletions

View File

@ -1,5 +1,3 @@
# Makefile to rebuild SM64 split image
SHELL=/bin/bash -o pipefail SHELL=/bin/bash -o pipefail
################ Target Executable and Sources ############### ################ Target Executable and Sources ###############
@ -33,12 +31,10 @@ YAY0_FILES := $(foreach file,$(YAY0_FILES),$(BUILD_DIR)/$(file:.bin=.bin.Yay0))
# N64 tools # N64 tools
TOOLS_DIR = tools TOOLS_DIR = tools
MIO0TOOL = $(TOOLS_DIR)/mio0
N64CKSUM = $(TOOLS_DIR)/n64crc N64CKSUM = $(TOOLS_DIR)/n64crc
##################### Compiler Options ####################### ##################### Compiler Options #######################
CROSS = mips-linux-gnu- CROSS = mips-linux-gnu-
CROSS_IRIX = mips-sgi-irix5-
AS = $(CROSS)as AS = $(CROSS)as
OLD_AS = $(TOOLS_DIR)/mips-nintendo-nu64-as OLD_AS = $(TOOLS_DIR)/mips-nintendo-nu64-as
CC = $(TOOLS_DIR)/cc1 CC = $(TOOLS_DIR)/cc1

View File

@ -35,7 +35,7 @@ glabel boot_main
/* 13D8 80025FD8 00000000 */ nop /* 13D8 80025FD8 00000000 */ nop
/* 13DC 80025FDC 0C009718 */ jal func_80025C60 /* 13DC 80025FDC 0C009718 */ jal func_80025C60
/* 13E0 80025FE0 00000000 */ nop /* 13E0 80025FE0 00000000 */ nop
/* 13E4 80025FE4 0C017D58 */ jal nuGfxInit /* 13E4 80025FE4 0C017D58 */ jal nuGfxInitEX2
/* 13E8 80025FE8 00000000 */ nop /* 13E8 80025FE8 00000000 */ nop
/* 13EC 80025FEC 0C017D84 */ jal nuContInit /* 13EC 80025FEC 0C017D84 */ jal nuContInit
/* 13F0 80025FF0 00000000 */ nop /* 13F0 80025FF0 00000000 */ nop

View File

@ -9,7 +9,7 @@
/* Ver 1.2 98/07/12 Modified by Kensaku Ohki(SLANP) */ /* Ver 1.2 98/07/12 Modified by Kensaku Ohki(SLANP) */
/* Ver 2.0 90/01/23 Modified by Kensaku Ohki(SLANP) */ /* Ver 2.0 90/01/23 Modified by Kensaku Ohki(SLANP) */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/* $Id: nusys.h,v 1.21 1999/01/26 02:33:26 ohki Exp $ */ /* $Id: nusys.h,v 1.26 1999/05/07 08:23:45 ohki Exp ohki $ */
/*======================================================================*/ /*======================================================================*/
#ifndef _NUSYS_H_ #ifndef _NUSYS_H_
#define _NUSYS_H_ #define _NUSYS_H_
@ -33,7 +33,7 @@ extern "C" {
/* DEFINE */ /* DEFINE */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
#define NU_VERSION "1.0" #define NU_VERSION "2.05"
/*--------------------------------------*/ /*--------------------------------------*/
/* NuSystem spec define */ /* NuSystem spec define */
@ -46,7 +46,7 @@ extern "C" {
/* Thread ID for DEBUG (a precaution) */ /* Thread ID for DEBUG (a precaution) */
/*--------------------------------------*/ /*--------------------------------------*/
#define NU_IDLE_THREAD_ID 1 #define NU_IDLE_THREAD_ID 1
#define NU_RMON_THERAD_ID 2 /* no use */ #define NU_RMON_THREAD_ID 2 /* no use */
#define NU_MAIN_THREAD_ID 3 #define NU_MAIN_THREAD_ID 3
@ -61,6 +61,7 @@ extern "C" {
/* NUSYS STACK SIZE */ /* NUSYS STACK SIZE */
/*--------------------------------------*/ /*--------------------------------------*/
#define NU_IDLE_STACK_SIZE 0x2000 /* Idle thread */ #define NU_IDLE_STACK_SIZE 0x2000 /* Idle thread */
#define NU_RMON_STACK_SIZE 0x2000 /* Rmon thread */
#define NU_MAIN_STACK_SIZE NU_SPEC_BOOT_STACK_SIZE /* Main thread */ #define NU_MAIN_STACK_SIZE NU_SPEC_BOOT_STACK_SIZE /* Main thread */
@ -89,6 +90,9 @@ extern "C" {
#define NU_SC_HANDLER_PRI 120 /* EVENT HANDLER THREAD PRORITY */ #define NU_SC_HANDLER_PRI 120 /* EVENT HANDLER THREAD PRORITY */
#define NU_SC_AUDIO_PRI 110 /* AUDIO DISPATCHER THREAD PRORITY */ #define NU_SC_AUDIO_PRI 110 /* AUDIO DISPATCHER THREAD PRORITY */
#define NU_SC_GRAPHICS_PRI 100 /* GFX DISPATCHER THREAD PRORITY */ #define NU_SC_GRAPHICS_PRI 100 /* GFX DISPATCHER THREAD PRORITY */
#define NU_SC_HANDLER_THREAD_ID 19
#define NU_SC_AUDIO_THREAD_ID 18
#define NU_SC_GRAPHICS_THREAD_ID 17
#define NU_SC_PRENMI_YET 0 /* PRE NMI has not occurred. */ #define NU_SC_PRENMI_YET 0 /* PRE NMI has not occurred. */
#define NU_SC_PRENMI_GET 1 /* PRE NMI received flag */ #define NU_SC_PRENMI_GET 1 /* PRE NMI received flag */
#define NU_SC_BEFORE_RESET 2 /* Pre-RESET flag for frame before reset */ #define NU_SC_BEFORE_RESET 2 /* Pre-RESET flag for frame before reset */
@ -139,13 +143,14 @@ extern "C" {
#endif /* F3DEX_GBI_2 */ #endif /* F3DEX_GBI_2 */
/*--------------------------------------*/ /*----------------------------------------------*/
/* The number of graphics task structures */ /* The number of graphics task structures */
/* should be set to a value at least as large as the Scheduler*/ /* should be set to a value at least as large as*/
/* the Scheduler */
/* message buffer size. */ /* message buffer size. */
/* Otherwise, a task structure in use may */ /* Otherwise, a task structure in use may */
/* be used. */ /* be used. */
/*--------------------------------------*/ /*----------------------------------------------*/
#define NU_GFX_TASK_NUM 10 /* Number of graphics task structures */ #define NU_GFX_TASK_NUM 10 /* Number of graphics task structures */
#define NU_GFX_RDP_OUTPUTBUFF_SIZE 0x20000 /* fifo buffer size */ #define NU_GFX_RDP_OUTPUTBUFF_SIZE 0x20000 /* fifo buffer size */
@ -175,6 +180,7 @@ extern "C" {
#define NU_GFX_DISPLAY_ON 1 /* Display */ #define NU_GFX_DISPLAY_ON 1 /* Display */
#define NU_GFX_DISPLAY_ON_TRIGGER 0x80 /* Trigger */ #define NU_GFX_DISPLAY_ON_TRIGGER 0x80 /* Trigger */
#define NU_GFX_YIELD_BUF_SIZE (OS_YIELD_DATA_SIZE + 0x10)
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/* SI MANAGER DEFINE */ /* SI MANAGER DEFINE */
@ -203,7 +209,7 @@ extern "C" {
#define NU_CONT_MAXCONTROLLERS MAXCONTROLLERS #define NU_CONT_MAXCONTROLLERS MAXCONTROLLERS
#define NU_CONT_STACK_SIZE 0x2000 #define NU_CONT_STACK_SIZE 0x2000
#define NU_CONT_MESG_MAX 8 #define NU_CONT_MESG_MAX 8
#define NU_CONT_THREAD_ID 5 #define NU_CONT_THREAD_ID 6
#define NU_CONT_THREAD_PRI 115 #define NU_CONT_THREAD_PRI 115
#define NU_CONT_DATA_UNLOCK 0 #define NU_CONT_DATA_UNLOCK 0
#define NU_CONT_DATA_LOCK 1 #define NU_CONT_DATA_LOCK 1
@ -318,8 +324,12 @@ extern "C" {
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/* DEBUG */ /* DEBUG */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
#define NU_DEB_PERF_BUF_NUM 3
#define NU_DEB_PERF_GFXTASK_CNT 8 /* Graphics task count */ #define NU_DEB_PERF_GFXTASK_CNT 8 /* Graphics task count */
#define NU_DEB_PERF_AUTASK_CNT 4 /* Audio task count */ #define NU_DEB_PERF_AUTASK_CNT 4 /* Audio task count */
#define NU_DEB_PERF_RUNNING 0 /* Sampling */
#define NU_DEB_PERF_STOP 1 /* Stop sampling */
#define NU_DEB_PERF_START 2 /* Start sampling */
#define NU_DEB_DP_CLOCK_CTR 0 /* RDP internal counter */ #define NU_DEB_DP_CLOCK_CTR 0 /* RDP internal counter */
#define NU_DEB_DP_CMD_CTR 1 /* CMD counter */ #define NU_DEB_DP_CMD_CTR 1 /* CMD counter */
#define NU_DEB_DP_PIPE_CTR 2 /* PIPE counter */ #define NU_DEB_DP_PIPE_CTR 2 /* PIPE counter */
@ -365,6 +375,8 @@ extern "C" {
#define NU_DEB_CON_WINDOW_OFF 0 #define NU_DEB_CON_WINDOW_OFF 0
#define NU_DEB_CON_WINDOW_ON 1 #define NU_DEB_CON_WINDOW_ON 1
#define NU_DEB_MARKER_NUM 10
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
@ -464,6 +476,21 @@ typedef void (*NUContRmbFunc)(void*); /* Rumble Pak control function callback */
typedef s32 (*NUCallBackFunc)(void*); /* Callback function */ typedef s32 (*NUCallBackFunc)(void*); /* Callback function */
/*--------------------------------------*/
/* PI Common Message */
/*--------------------------------------*/
typedef struct st_PiOverlaySegment {
u8* romStart; /* Segment's ROM start offset */
u8* romEnd; /* Segment's ROM end offset */
u8* ramStart; /* Segment's CPU start address */
u8* textStart; /* test attribute's DRAM start address */
u8* textEnd; /* test attribute's DRAM end address */
u8* dataStart; /* data attribute's DRAM start address */
u8* dataEnd; /* data attribute's DRAM end address */
u8* bssStart; /* bss attribute's DRAM start address */
u8* bssEnd; /* bss attribute's DRAM start address */
} NUPiOverlaySegment;
/*--------------------------------------*/ /*--------------------------------------*/
/* SI Common message */ /* SI Common message */
/*--------------------------------------*/ /*--------------------------------------*/
@ -600,6 +627,7 @@ typedef struct st_GfxTaskTime {
typedef struct st_DebTaskPerf { typedef struct st_DebTaskPerf {
s64 retraceTime; /* retrace event time*/ s64 retraceTime; /* retrace event time*/
s64 markerTime[NU_DEB_MARKER_NUM];
u8 gfxTaskCnt; /* Number of graphics tasks */ u8 gfxTaskCnt; /* Number of graphics tasks */
u8 auTaskCnt; /* Number of audio tasks */ u8 auTaskCnt; /* Number of audio tasks */
u8 gfxTaskStart; u8 gfxTaskStart;
@ -630,9 +658,9 @@ typedef struct st_DebConWindow {
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
extern u8 nuRDPOutputBuf[NU_GFX_RDP_OUTPUTBUFF_SIZE]; extern u8 nuRDPOutputBuf[];
extern u8 nuDramStack[SP_DRAM_STACK_SIZE8]; extern u8 nuDramStack[];
extern u8 nuYieldBuf[OS_YIELD_DATA_SIZE]; extern u8 nuYieldBuf[];
extern NUSched nusched; /* Scheduler structure */ extern NUSched nusched; /* Scheduler structure */
extern OSMesgQueue nuGfxMesgQ; /* Graphics thread queue */ extern OSMesgQueue nuGfxMesgQ; /* Graphics thread queue */
extern u32 nuScRetraceCounter; /* Retrace counter */ extern u32 nuScRetraceCounter; /* Retrace counter */
@ -648,16 +676,18 @@ extern u16* nuGfxZBuffer; /* Pointer to the Z buffer */
extern volatile u32 nuGfxTaskSpool; /* Number of tasks in queue */ extern volatile u32 nuGfxTaskSpool; /* Number of tasks in queue */
extern u32 nuGfxDisplay; /* Display on/off flag */ extern u32 nuGfxDisplay; /* Display on/off flag */
extern u32 nuGfxCfbCounter; /* For frame buffer swapping */ extern u32 nuGfxCfbCounter; /* For frame buffer swapping */
extern OSMesgQueue nuGfxMesgQ;
extern OSThread nuGfxThread; /* graphic thread */
/*--------------------------------------*/ /*--------------------------------------*/
/* controller Manager variables */ /* controller Manager variables */
/*--------------------------------------*/ /*--------------------------------------*/
extern OSContStatus nuContStatus[NU_CONT_MAXCONTROLLERS]; extern OSContStatus nuContStatus[];
extern OSContPad nuContData[NU_CONT_MAXCONTROLLERS]; extern OSContPad nuContData[];
extern u32 nuContNum; /* Number of controllers connected */ extern u32 nuContNum; /* Number of controllers connected */
extern u32 nuContDataLockKey; /* Lock Controller data. */ extern u32 nuContDataLockKey; /* Lock Controller data. */
extern OSMesgQueue nuContWaitMesgQ; /* Wait for Controller read */ extern OSMesgQueue nuContWaitMesgQ; /* Wait for Controller read */
extern OSPfs nuContPfs[4]; extern OSPfs nuContPfs[];
extern NUCallBackList nuContCallBack; extern NUCallBackList nuContCallBack;
extern u16 nuContPakCompanyCode; /* Company code */ extern u16 nuContPakCompanyCode; /* Company code */
extern u32 nuContPakGameCode; /* Game code */ extern u32 nuContPakGameCode; /* Game code */
@ -666,7 +696,7 @@ extern NUCallBackList nuContPakCallBack;
/*--------------------------------------*/ /*--------------------------------------*/
/* RUMBUL Manager variables */ /* RUMBUL Manager variables */
/*--------------------------------------*/ /*--------------------------------------*/
extern NUContRmbCtl nuContRmbCtl[4]; extern NUContRmbCtl nuContRmbCtl[];
extern u32 nuContRmbSearchTime; extern u32 nuContRmbSearchTime;
extern NUCallBackList nuContRmbCallBack; extern NUCallBackList nuContRmbCallBack;
@ -698,6 +728,7 @@ extern NUCallBackList* nuSiCallBackList;/* Callback function list */
/*--------------------------------------*/ /*--------------------------------------*/
extern OSPiHandle* nuPiCartHandle; extern OSPiHandle* nuPiCartHandle;
extern OSPiHandle* nuPiSramHandle; extern OSPiHandle* nuPiSramHandle;
extern OSPiHandle* nuPiDDRomHandle;
/*--------------------------------------*/ /*--------------------------------------*/
/* CALL BACK Function pointer */ /* CALL BACK Function pointer */
@ -713,8 +744,14 @@ extern NUContReadFunc nuContReadFunc; /* When controller read ends */
/*--------------------------------------*/ /*--------------------------------------*/
/* Debug */ /* Debug */
/*--------------------------------------*/ /*--------------------------------------*/
extern NUDebTaskPerf* nuDebTaskPerfPtr; extern NUDebTaskPerf* nuDebTaskPerfPtr;
extern NUDebConWindow nuDebConWin[]; extern NUDebConWindow nuDebConWin[];
extern NUDebTaskPerf nuDebTaskPerf[];
extern u32 nuDebTaskPerfInterval;
extern volatile u32 nuDebTaskPerfCnt;
extern volatile u32 nuDebTaskPerfEnd;
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
@ -733,7 +770,6 @@ extern void nuScCreateScheduler(u8 videoMode, u8 numFields);
extern void nuScAddClient(NUScClient *c, OSMesgQueue *mq, NUScMsg msgType); extern void nuScAddClient(NUScClient *c, OSMesgQueue *mq, NUScMsg msgType);
extern void nuScRemoveClient(NUScClient *client); extern void nuScRemoveClient(NUScClient *client);
extern void nuScResetClientMesgType(NUScClient* client, NUScMsg msgType); extern void nuScResetClientMesgType(NUScClient* client, NUScMsg msgType);
/* extern void nuPreNMIFuncSet(NUScPreNMIFunc func); redundant extern warning */
extern OSMesgQueue* nuScGetGfxMQ(void); extern OSMesgQueue* nuScGetGfxMQ(void);
extern OSMesgQueue* nuScGetAudioMQ(void); extern OSMesgQueue* nuScGetAudioMQ(void);
extern void nuScSetFrameBufferNum(u8 frameBufferNum); extern void nuScSetFrameBufferNum(u8 frameBufferNum);
@ -759,9 +795,9 @@ extern void nuGfxRetraceWait(u32 retrace_num);
extern void nuGfxDisplayOff(void); extern void nuGfxDisplayOff(void);
extern void nuGfxDisplayOn(void); extern void nuGfxDisplayOn(void);
/* #ifdef F3DEX_GBI_2 #ifdef F3DEX_GBI_2
#define nuGfxInit() nuGfxInitEX2() #define nuGfxInit() nuGfxInitEX2()
#endif /* F3DEX_GBI_2 */ #endif /* F3DEX_GBI_2 */
/*--------------------------------------*/ /*--------------------------------------*/
/* controller Manager function */ /* controller Manager function */
/*--------------------------------------*/ /*--------------------------------------*/
@ -858,6 +894,7 @@ extern void nuPiReadRom(u32 rom_addr, void* buf_ptr, u32 size);
extern void nuPiInitSram(void); extern void nuPiInitSram(void);
extern void nuPiInitDDrom(void); extern void nuPiInitDDrom(void);
extern void nuPiReadWriteSram(u32 addr, void* buf_ptr, u32 size, s32 flag); extern void nuPiReadWriteSram(u32 addr, void* buf_ptr, u32 size, s32 flag);
extern void nuPiReadRomOverlay(NUPiOverlaySegment* segment);
/*--------------------------------------*/ /*--------------------------------------*/
/* si functions */ /* si functions */
@ -891,11 +928,20 @@ extern s32 nuVrsMaskDictionary(NUVrsHandle* handle, u8* maskpattern, s32 size);
#define nuDebTaskPerfBar1(EX0 ,EX1 ,EX2) ((void)0) #define nuDebTaskPerfBar1(EX0 ,EX1 ,EX2) ((void)0)
#define nuDebTaskPerfBar0EX2(EX0 ,EX1 ,EX2) ((void)0) #define nuDebTaskPerfBar0EX2(EX0 ,EX1 ,EX2) ((void)0)
#define nuDebTaskPerfBar1EX2(EX0 ,EX1 ,EX2) ((void)0) #define nuDebTaskPerfBar1EX2(EX0 ,EX1 ,EX2) ((void)0)
#define nuDebPerfMarkSet(EX0) ((void)0)
#define nuDebTaskPerfIntervalSet(EX0) ((void)0)
#else #else
extern void nuDebTaskPerfBar0(u32 frameNum, u32 y, u32 flag); extern void nuDebTaskPerfBar0(u32 frameNum, u32 y, u32 flag);
extern void nuDebTaskPerfBar1(u32 frameNum, u32 y, u32 flag); extern void nuDebTaskPerfBar1(u32 frameNum, u32 y, u32 flag);
extern void nuDebTaskPerfBar0EX2(u32 frameNum, u32 y, u32 flag); extern void nuDebTaskPerfBar0EX2(u32 frameNum, u32 y, u32 flag);
extern void nuDebTaskPerfBar1EX2(u32 frameNum, u32 y, u32 flag); extern void nuDebTaskPerfBar1EX2(u32 frameNum, u32 y, u32 flag);
extern u32 nuDebPerfMarkSet(s32 markNo);
extern void nuDebTaskPerfIntervalSet(u32 interval);
#ifdef F3DEX_GBI_2
#define nuDebTaskPerfBar0(a, b, c) nuDebTaskPerfBar0EX2(a, b, c)
#define nuDebTaskPerfBar1(a, b, c) nuDebTaskPerfBar1EX2(a, b, c)
#endif /* F3DEX_GBI_2 */
#endif /* NDEBUG */ #endif /* NDEBUG */
extern void nuDebConDisp(u32 flag); extern void nuDebConDisp(u32 flag);
@ -917,10 +963,9 @@ extern void nuDebConPutc(u32 wndNo, u32 c);
extern void nuDebTaskPerfLoad(void); extern void nuDebTaskPerfLoad(void);
extern void nuDebConPrintf(u32 wndNo, const char* fmt, ...); extern void nuDebConPrintf(u32 wndNo, const char* fmt, ...);
#ifdef F3DEX_GBI_2 #ifdef F3DEX_GBI_2
#define nuDebConDisp(flag) nuDebConDispEX2(flag) #define nuDebConDisp(flag) nuDebConDispEX2(flag)
#define nuDebTaskPerfBar0(a, b, c) nuDebTaskPerfBar0EX2(a, b, c)
#define nuDebTaskPerfBar1(a, b, c) nuDebTaskPerfBar1EX2(a, b, c)
#endif /* F3DEX_GBI_2 */ #endif /* F3DEX_GBI_2 */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
@ -1045,6 +1090,8 @@ extern void nuDebConPrintf(u32 wndNo, const char* fmt, ...);
#define nuVrsCheckWord osVoiceCheckWord #define nuVrsCheckWord osVoiceCheckWord
#define nuVrsCountSyllables osVoiceCountSyllables #define nuVrsCountSyllables osVoiceCountSyllables
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */ #endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#ifdef _LANGUAGE_C_PLUS_PLUS #ifdef _LANGUAGE_C_PLUS_PLUS
} }

View File

@ -21,7 +21,7 @@ void boot_main(void) {
nuGfxDisplayOff(); nuGfxDisplayOff();
crash_create_monitor(); crash_create_monitor();
func_80025C60(); func_80025C60();
nuGfxInit(); nuGfxInitEX2();
GAME_STATUS->contBitPattern = nuContInit(); GAME_STATUS->contBitPattern = nuContInit();
func_8002D160(); func_8002D160();
func_802B2000(); func_802B2000();

View File

@ -6,7 +6,7 @@ extern UNK_PTR D_8009A610;
extern UNK_PTR D_80093BA0; extern UNK_PTR D_80093BA0;
extern Gfx rdpstateinit_dl[]; extern Gfx rdpstateinit_dl[];
void nuGfxInit(void) { void nuGfxInitEX2(void) {
Gfx gfx[0x100]; Gfx gfx[0x100];
Gfx* ptr; Gfx* ptr;

View File

@ -1122,7 +1122,7 @@ nuContRmbStart;0x8005FE90
nuGfxDisplayOff;0x8005F400 nuGfxDisplayOff;0x8005F400
nuGfxDisplayOn;0x8005F430 nuGfxDisplayOn;0x8005F430
nuGfxFuncSet;0x8005F250 nuGfxFuncSet;0x8005F250
nuGfxInit;0x8005F560 nuGfxInitEX2;0x8005F560
nuGfxPreNMIFuncSet;0x8005F290 nuGfxPreNMIFuncSet;0x8005F290
nuGfxRetraceWait;0x80060370 nuGfxRetraceWait;0x80060370
nuGfxSetCfb;0x8005F2F0 nuGfxSetCfb;0x8005F2F0