mirror of
https://github.com/zeldaret/oot-gc.git
synced 2026-09-29 23:14:48 -04:00
1310 lines
30 KiB
C
1310 lines
30 KiB
C
// Location: 0x0
|
|
long float _half$localstatic0$sqrtf__Ff;
|
|
|
|
// Location: 0x0
|
|
long float _three$localstatic1$sqrtf__Ff;
|
|
|
|
// Location: 0x0
|
|
long float _half$localstatic0$sqrt__Ff;
|
|
|
|
// Location: 0x0
|
|
long float _three$localstatic1$sqrt__Ff;
|
|
|
|
// size: 0x10
|
|
struct _XL_OBJECTTYPE
|
|
{
|
|
char *szName; // 0x0
|
|
int nSizeObject; // 0x4
|
|
_XL_OBJECTTYPE *pClassBase; // 0x8
|
|
int (*pfEvent)(void */* unknown0 */, int /* unknown1 */, void */* unknown2 */); // 0xC
|
|
};
|
|
|
|
// Location: 0x58B60E80
|
|
_XL_OBJECTTYPE gClassCPU;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x68B60E80
|
|
static char *gaszNameGPR[32];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x800EB6E8
|
|
static char *gaszNameFPR[32];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x50B80E80
|
|
static char *gaszNameCP0[32];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x4BB0E80
|
|
static char *gaszNameCP1[32];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x800EBB88
|
|
static signed long long ganMaskGetCP0[32];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x800EBC88
|
|
static signed long long ganMaskSetCP0[32];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x800EBD88
|
|
static unsigned char Opcode[64];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x800EBDC8
|
|
static unsigned char SpecialOpcode[64];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x8BE0E80
|
|
static unsigned char RegimmOpcode[32];
|
|
|
|
// Location: 0x801356E0
|
|
void *gHeapTree;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x28BE0E80
|
|
static unsigned int ganOpcodeSaveFP1[5];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x3CBE0E80
|
|
static unsigned int ganOpcodeSaveFP2_0[5];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x50BE0E80
|
|
static unsigned int ganOpcodeSaveFP2_1[3];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x5CBE0E80
|
|
static unsigned int ganOpcodeLoadFP[5];
|
|
|
|
// Location: 0x70BE0E80
|
|
int ganMapGPR[32];
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x801356E4
|
|
static int cpuCompile_DSLLV_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x801356E8
|
|
static int cpuCompile_DSRLV_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x801356EC
|
|
static int cpuCompile_DSRAV_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x801356F0
|
|
static int cpuCompile_DMULT_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x801356F4
|
|
static int cpuCompile_DMULTU_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x801356F8
|
|
static int cpuCompile_DDIV_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x801356FC
|
|
static int cpuCompile_DDIVU_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x571380
|
|
static int cpuCompile_DADD_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x4571380
|
|
static int cpuCompile_DADDU_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x8571380
|
|
static int cpuCompile_DSUB_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0xC571380
|
|
static int cpuCompile_DSUBU_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x10571380
|
|
static int cpuCompile_S_SQRT_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x14571380
|
|
static int cpuCompile_D_SQRT_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x18571380
|
|
static int cpuCompile_W_CVT_SD_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x1C571380
|
|
static int cpuCompile_L_CVT_SD_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x20571380
|
|
static int cpuCompile_CEIL_W_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x24571380
|
|
static int cpuCompile_FLOOR_W_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x28571380
|
|
static int cpuCompile_ROUND_W_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x2C571380
|
|
static int cpuCompile_TRUNC_W_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x30571380
|
|
static int cpuCompile_LB_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x34571380
|
|
static int cpuCompile_LH_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x38571380
|
|
static int cpuCompile_LW_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x3C571380
|
|
static int cpuCompile_LBU_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x40571380
|
|
static int cpuCompile_LHU_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x44571380
|
|
static int cpuCompile_SB_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x48571380
|
|
static int cpuCompile_SH_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x4C571380
|
|
static int cpuCompile_SW_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x50571380
|
|
static int cpuCompile_LDC_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x54571380
|
|
static int cpuCompile_SDC_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x58571380
|
|
static int cpuCompile_LWL_function;
|
|
|
|
// Local to compilation unit
|
|
// Location: 0x5C571380
|
|
static int cpuCompile_LWR_function;
|
|
|
|
// Location: 0x580A1380
|
|
unsigned int aHeapTreeFlag[125];
|
|
|
|
// size: 0x4
|
|
enum __anon_0x3D79A
|
|
{
|
|
SM_NONE = 4294967295,
|
|
SM_RUNNING = 0,
|
|
SM_STOPPED = 1
|
|
};
|
|
|
|
// size: 0x10
|
|
struct __anon_0x3D7FC
|
|
{
|
|
int nSize; // 0x0
|
|
int nOffsetRAM; // 0x4
|
|
int nOffsetROM; // 0x8
|
|
int (*pCallback)(); // 0xC
|
|
};
|
|
|
|
// size: 0x4
|
|
enum __anon_0x3D8AD
|
|
{
|
|
SRT_NONE = 4294967295,
|
|
SRT_MARIO = 0,
|
|
SRT_WAVERACE = 1,
|
|
SRT_MARIOKART = 2,
|
|
SRT_STARFOX = 3,
|
|
SRT_ZELDA1 = 4,
|
|
SRT_ZELDA2 = 5,
|
|
SRT_1080 = 6,
|
|
SRT_PANEL = 7,
|
|
SRT_MARIOPARTY1 = 8,
|
|
SRT_MARIOPARTY2 = 9,
|
|
SRT_MARIOPARTY3 = 10,
|
|
SRT_DRMARIO = 11,
|
|
SRT_UNKNOWN = 12
|
|
};
|
|
|
|
// size: 0x4
|
|
enum __anon_0x3D9D9
|
|
{
|
|
SOT_NONE = 4294967295,
|
|
SOT_CPU = 0,
|
|
SOT_PIF = 1,
|
|
SOT_RAM = 2,
|
|
SOT_ROM = 3,
|
|
SOT_RSP = 4,
|
|
SOT_RDP = 5,
|
|
SOT_MIPS = 6,
|
|
SOT_DISK = 7,
|
|
SOT_FLASH = 8,
|
|
SOT_SRAM = 9,
|
|
SOT_AUDIO = 10,
|
|
SOT_VIDEO = 11,
|
|
SOT_SERIAL = 12,
|
|
SOT_LIBRARY = 13,
|
|
SOT_PERIPHERAL = 14,
|
|
SOT_RDB = 15,
|
|
SOT_COUNT = 16
|
|
};
|
|
|
|
// size: 0x88
|
|
struct __anon_0x3DB14
|
|
{
|
|
void *pFrame; // 0x0
|
|
void *pSound; // 0x4
|
|
int bException; // 0x8
|
|
__anon_0x3D79A eMode; // 0xC
|
|
__anon_0x3D7FC romCopy; // 0x10
|
|
__anon_0x3D8AD eTypeROM; // 0x20
|
|
void *apObject[16]; // 0x24
|
|
unsigned long long nAddressBreak; // 0x68
|
|
__anon_0x3D9D9 storageDevice; // 0x70
|
|
unsigned char anException[16]; // 0x74
|
|
int bJapaneseVersion; // 0x84
|
|
};
|
|
|
|
// Location: 0x561380
|
|
__anon_0x3DB14 *gpSystem;
|
|
|
|
int cpuUpdateDiskChecksum(unsigned int *checksum, int startAddress, int endAddress)
|
|
{
|
|
int count;
|
|
int instruction;
|
|
int check;
|
|
unsigned int *opcode;
|
|
unsigned int part;
|
|
// References: gpSystem (0x561380)
|
|
}
|
|
|
|
// size: 0x8
|
|
struct __anon_0x3DE78
|
|
{
|
|
int nOffsetHost; // 0x0
|
|
int nAddressN64; // 0x4
|
|
};
|
|
|
|
// size: 0x8
|
|
struct cpu_callerID
|
|
{
|
|
int N64address; // 0x0
|
|
int GCNaddress; // 0x4
|
|
};
|
|
|
|
// size: 0x48
|
|
struct cpu_function
|
|
{
|
|
void *pnBase; // 0x0
|
|
void *pfCode; // 0x4
|
|
int nCountJump; // 0x8
|
|
__anon_0x3DE78 *aJump; // 0xC
|
|
int nAddress0; // 0x10
|
|
int nAddress1; // 0x14
|
|
cpu_callerID *block; // 0x18
|
|
int callerID_total; // 0x1C
|
|
int callerID_flag; // 0x20
|
|
unsigned int nChecksum; // 0x24
|
|
int timeToLive; // 0x28
|
|
int memory_size; // 0x2C
|
|
int heapID; // 0x30
|
|
int heapWhere; // 0x34
|
|
int treeheapWhere; // 0x38
|
|
cpu_function *prev; // 0x3C
|
|
cpu_function *left; // 0x40
|
|
cpu_function *right; // 0x44
|
|
};
|
|
|
|
// size: 0x8
|
|
union __anon_0x3E22D
|
|
{
|
|
char _0s8; // 0x0
|
|
char _1s8; // 0x1
|
|
char _2s8; // 0x2
|
|
char _3s8; // 0x3
|
|
char _4s8; // 0x4
|
|
char _5s8; // 0x5
|
|
char _6s8; // 0x6
|
|
char s8; // 0x7
|
|
signed short _0s16; // 0x0
|
|
signed short _1s16; // 0x2
|
|
signed short _2s16; // 0x4
|
|
signed short s16; // 0x6
|
|
int _0s32; // 0x0
|
|
int s32; // 0x4
|
|
signed long long s64; // 0x0
|
|
unsigned char _0u8; // 0x0
|
|
unsigned char _1u8; // 0x1
|
|
unsigned char _2u8; // 0x2
|
|
unsigned char _3u8; // 0x3
|
|
unsigned char _4u8; // 0x4
|
|
unsigned char _5u8; // 0x5
|
|
unsigned char _6u8; // 0x6
|
|
unsigned char u8; // 0x7
|
|
unsigned short _0u16; // 0x0
|
|
unsigned short _1u16; // 0x2
|
|
unsigned short _2u16; // 0x4
|
|
unsigned short u16; // 0x6
|
|
unsigned int _0u32; // 0x0
|
|
unsigned int u32; // 0x4
|
|
unsigned long long u64; // 0x0
|
|
};
|
|
|
|
// size: 0x8
|
|
union __anon_0x3E641
|
|
{
|
|
float _0f32; // 0x0
|
|
float f32; // 0x4
|
|
long float f64; // 0x0
|
|
int _0s32; // 0x0
|
|
int s32; // 0x4
|
|
signed long long s64; // 0x0
|
|
unsigned int _0u32; // 0x0
|
|
unsigned int u32; // 0x4
|
|
unsigned long long u64; // 0x0
|
|
};
|
|
|
|
// size: 0x34
|
|
struct __anon_0x3EB4F
|
|
{
|
|
int nType; // 0x0
|
|
void *pObject; // 0x4
|
|
int nOffsetAddress; // 0x8
|
|
int (*pfGet8)(void */* unknown0 */, unsigned int /* unknown1 */, char */* unknown2 */); // 0xC
|
|
int (*pfGet16)(void */* unknown0 */, unsigned int /* unknown1 */, signed short */* unknown2 */); // 0x10
|
|
int (*pfGet32)(void */* unknown0 */, unsigned int /* unknown1 */, int */* unknown2 */); // 0x14
|
|
int (*pfGet64)(void */* unknown0 */, unsigned int /* unknown1 */, signed long long */* unknown2 */); // 0x18
|
|
int (*pfPut8)(void */* unknown0 */, unsigned int /* unknown1 */, char */* unknown2 */); // 0x1C
|
|
int (*pfPut16)(void */* unknown0 */, unsigned int /* unknown1 */, signed short */* unknown2 */); // 0x20
|
|
int (*pfPut32)(void */* unknown0 */, unsigned int /* unknown1 */, int */* unknown2 */); // 0x24
|
|
int (*pfPut64)(void */* unknown0 */, unsigned int /* unknown1 */, signed long long */* unknown2 */); // 0x28
|
|
unsigned int nAddressPhysical0; // 0x2C
|
|
unsigned int nAddressPhysical1; // 0x30
|
|
};
|
|
|
|
// size: 0x84
|
|
struct cpu_treeRoot
|
|
{
|
|
unsigned short total; // 0x0
|
|
int total_memory; // 0x4
|
|
int root_address; // 0x8
|
|
int start_range; // 0xC
|
|
int end_range; // 0x10
|
|
int cache_miss; // 0x14
|
|
int cache[20]; // 0x18
|
|
cpu_function *left; // 0x68
|
|
cpu_function *right; // 0x6C
|
|
int kill_limit; // 0x70
|
|
int kill_number; // 0x74
|
|
int side; // 0x78
|
|
cpu_function *restore; // 0x7C
|
|
int restore_side; // 0x80
|
|
};
|
|
|
|
// size: 0xC
|
|
struct __anon_0x3F080
|
|
{
|
|
unsigned int nAddress; // 0x0
|
|
unsigned int nOpcodeOld; // 0x4
|
|
unsigned int nOpcodeNew; // 0x8
|
|
};
|
|
|
|
// size: 0x2C8
|
|
struct OSContext
|
|
{
|
|
unsigned long gpr[32]; // 0x0
|
|
unsigned long cr; // 0x80
|
|
unsigned long lr; // 0x84
|
|
unsigned long ctr; // 0x88
|
|
unsigned long xer; // 0x8C
|
|
long float fpr[32]; // 0x90
|
|
unsigned long fpscr_pad; // 0x190
|
|
unsigned long fpscr; // 0x194
|
|
unsigned long srr0; // 0x198
|
|
unsigned long srr1; // 0x19C
|
|
unsigned short mode; // 0x1A0
|
|
unsigned short state; // 0x1A2
|
|
unsigned long gqr[8]; // 0x1A4
|
|
unsigned long psf_pad; // 0x1C4
|
|
long float psf[32]; // 0x1C8
|
|
};
|
|
|
|
// size: 0x28
|
|
struct OSAlarm
|
|
{
|
|
void (*handler)(OSAlarm */* unknown0 */, OSContext */* unknown1 */); // 0x0
|
|
unsigned long tag; // 0x4
|
|
signed long long fire; // 0x8
|
|
OSAlarm *prev; // 0x10
|
|
OSAlarm *next; // 0x14
|
|
signed long long period; // 0x18
|
|
signed long long start; // 0x20
|
|
};
|
|
|
|
// size: 0x28
|
|
struct cpu_optimize
|
|
{
|
|
unsigned int validCheck; // 0x0
|
|
unsigned int destGPR_check; // 0x4
|
|
int destGPR; // 0x8
|
|
int destGPR_mapping; // 0xC
|
|
unsigned int destFPR_check; // 0x10
|
|
int destFPR; // 0x14
|
|
unsigned int addr_check; // 0x18
|
|
int addr_last; // 0x1C
|
|
unsigned int checkType; // 0x20
|
|
unsigned int checkNext; // 0x24
|
|
};
|
|
|
|
// size: 0x12090
|
|
struct _CPU
|
|
{
|
|
int nMode; // 0x0
|
|
int nTick; // 0x4
|
|
void *pHost; // 0x8
|
|
signed long long nLo; // 0x10
|
|
signed long long nHi; // 0x18
|
|
int nCountAddress; // 0x20
|
|
int iDeviceDefault; // 0x24
|
|
unsigned int nPC; // 0x28
|
|
unsigned int nWaitPC; // 0x2C
|
|
unsigned int nCallLast; // 0x30
|
|
cpu_function *pFunctionLast; // 0x34
|
|
int nReturnAddrLast; // 0x38
|
|
int survivalTimer; // 0x3C
|
|
__anon_0x3E22D aGPR[32]; // 0x40
|
|
__anon_0x3E641 aFPR[32]; // 0x140
|
|
unsigned long long aTLB[48][5]; // 0x240
|
|
int anFCR[32]; // 0x9C0
|
|
signed long long anCP0[32]; // 0xA40
|
|
int (*pfStep)(_CPU */* unknown0 */); // 0xB40
|
|
int (*pfJump)(_CPU */* unknown0 */); // 0xB44
|
|
int (*pfCall)(_CPU */* unknown0 */); // 0xB48
|
|
int (*pfIdle)(_CPU */* unknown0 */); // 0xB4C
|
|
int (*pfRam)(_CPU */* unknown0 */); // 0xB50
|
|
int (*pfRamF)(_CPU */* unknown0 */); // 0xB54
|
|
unsigned int nTickLast; // 0xB58
|
|
unsigned int nRetrace; // 0xB5C
|
|
unsigned int nRetraceUsed; // 0xB60
|
|
__anon_0x3EB4F *apDevice[256]; // 0xB64
|
|
unsigned char aiDevice[65536]; // 0xF64
|
|
void *gHeap1; // 0x10F64
|
|
void *gHeap2; // 0x10F68
|
|
unsigned int aHeap1Flag[192]; // 0x10F6C
|
|
unsigned int aHeap2Flag[13]; // 0x1126C
|
|
cpu_treeRoot *gTree; // 0x112A0
|
|
_CPU_ADDRESS aAddressCache[256]; // 0x112A4
|
|
int nCountCodeHack; // 0x11EA4
|
|
__anon_0x3F080 aCodeHack[32]; // 0x11EA8
|
|
signed long long nTimeRetrace; // 0x12028
|
|
OSAlarm alarmRetrace; // 0x12030
|
|
unsigned int nFlagRAM; // 0x12058
|
|
unsigned int nFlagCODE; // 0x1205C
|
|
unsigned int nCompileFlag; // 0x12060
|
|
cpu_optimize nOptimize; // 0x12064
|
|
};
|
|
|
|
int cpuCheckOpcodeHack(_CPU *pCPU, int startAddress, int instruction)
|
|
{
|
|
int iHack;
|
|
unsigned int *opcode;
|
|
}
|
|
|
|
// size: 0x40
|
|
struct cpu_disk_node
|
|
{
|
|
unsigned int functionLength; // 0x0
|
|
unsigned int checksum; // 0x4
|
|
int startAddress; // 0x8
|
|
int endAddress; // 0xC
|
|
unsigned int specialFlag; // 0x10
|
|
unsigned int frequency; // 0x14
|
|
unsigned int inCatalog; // 0x18
|
|
unsigned int *length; // 0x1C
|
|
unsigned int size; // 0x20
|
|
unsigned int GCNsize; // 0x24
|
|
unsigned int *N64code; // 0x28
|
|
unsigned int *GCNcode; // 0x2C
|
|
cpu_disk_node *prev; // 0x30
|
|
cpu_disk_node *left; // 0x34
|
|
cpu_disk_node *right; // 0x38
|
|
cpu_disk_node *same; // 0x3C
|
|
};
|
|
|
|
int cpuDoubleCheckSameChecksum(cpu_disk_node *pDisk, int start)
|
|
{
|
|
int count;
|
|
int instruction;
|
|
unsigned int *last;
|
|
unsigned int *current;
|
|
// References: gpSystem (0x561380)
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuOpcodeChecksum(unsigned int opcode)
|
|
{
|
|
int flag;
|
|
}
|
|
|
|
int treeMemory(_CPU *pCPU);
|
|
|
|
// Local to compilation unit
|
|
static int treePrintNode(_CPU *pCPU, cpu_function *tree, int print_flag, int *left, int *right)
|
|
{
|
|
cpu_function *current;
|
|
int flag;
|
|
int level;
|
|
// References: ganMapGPR (0x70BE0E80)
|
|
}
|
|
|
|
int treePrint(_CPU *pCPU)
|
|
{
|
|
cpu_treeRoot *root;
|
|
int left;
|
|
int right;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeForceCleanNodes(_CPU *pCPU, cpu_function *tree, int kill_limit)
|
|
{
|
|
cpu_function *current;
|
|
cpu_function *kill;
|
|
}
|
|
|
|
int treeForceCleanUp(_CPU *pCPU, cpu_function *node, int kill_value)
|
|
{
|
|
cpu_treeRoot *root;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeCleanNodes(_CPU *pCPU, cpu_function *top)
|
|
{
|
|
cpu_function **current;
|
|
cpu_function *kill;
|
|
cpu_treeRoot *root;
|
|
int kill_limit;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeCleanUp(_CPU *pCPU, cpu_treeRoot *root)
|
|
{
|
|
int done;
|
|
int complete;
|
|
}
|
|
|
|
int treeCleanUpCheck(_CPU *pCPU, cpu_function *node)
|
|
{
|
|
cpu_treeRoot *root;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeTimerCheck(_CPU *pCPU)
|
|
{
|
|
cpu_treeRoot *root;
|
|
int begin;
|
|
int end;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeKillReason(_CPU *pCPU, int *value);
|
|
|
|
// Local to compilation unit
|
|
static int treeKillRange(_CPU *pCPU, cpu_function *tree, int start, int end)
|
|
{
|
|
cpu_treeRoot *root;
|
|
cpu_function *node1;
|
|
cpu_function *node2;
|
|
cpu_function *save1;
|
|
cpu_function *save2;
|
|
cpu_function *connect;
|
|
int update;
|
|
int count;
|
|
// References: aHeapTreeFlag (0x580A1380)
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeSearchNode(cpu_function *tree, int target, cpu_function **node)
|
|
{
|
|
cpu_function *current;
|
|
}
|
|
|
|
int treeSearch(_CPU *pCPU, int target, cpu_function **node)
|
|
{
|
|
cpu_treeRoot *root;
|
|
int flag;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeAdjustRoot(_CPU *pCPU, int new_end)
|
|
{
|
|
int old_root;
|
|
int new_root;
|
|
int kill_start;
|
|
int check1;
|
|
int check2;
|
|
unsigned short total;
|
|
int total_memory;
|
|
int address;
|
|
cpu_treeRoot *root;
|
|
cpu_function *node;
|
|
cpu_function *change;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeBalance(cpu_treeRoot *root)
|
|
{
|
|
cpu_function *tree;
|
|
cpu_function *current;
|
|
cpu_function *save;
|
|
int total;
|
|
int count;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeInsertNode(cpu_function **tree, int start, int end, cpu_function **ppFunction)
|
|
{
|
|
cpu_function **current;
|
|
cpu_function *prev;
|
|
}
|
|
|
|
int treeInsert(_CPU *pCPU, int start, int end)
|
|
{
|
|
cpu_treeRoot *root;
|
|
cpu_function *current;
|
|
int flag;
|
|
}
|
|
|
|
int treeInsertAndReturn(_CPU *pCPU, int start, int end, cpu_function **ppFunction)
|
|
{
|
|
cpu_treeRoot *root;
|
|
int flag;
|
|
}
|
|
|
|
int treeRebuild(_CPU *pCPU, int start_address, cpu_function **node);
|
|
|
|
// Local to compilation unit
|
|
static int treeDeleteNode(_CPU *pCPU, cpu_function **top, cpu_function *kill)
|
|
{
|
|
cpu_treeRoot *root;
|
|
cpu_function *save1;
|
|
cpu_function *save2;
|
|
cpu_function *connect;
|
|
// References: aHeapTreeFlag (0x580A1380)
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeKillNodes(_CPU *pCPU, cpu_function *tree)
|
|
{
|
|
cpu_function *current;
|
|
cpu_function *kill;
|
|
int count;
|
|
// References: aHeapTreeFlag (0x580A1380)
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeKill(_CPU *pCPU)
|
|
{
|
|
cpu_treeRoot *root;
|
|
int count;
|
|
// References: aHeapTreeFlag (0x580A1380)
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeInitNode(cpu_function **tree, cpu_function *prev, int start, int end)
|
|
{
|
|
cpu_function *node;
|
|
int where;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeInit(_CPU *pCPU, int root_address)
|
|
{
|
|
cpu_treeRoot *root;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int treeCallerCheck(_CPU *pCPU, cpu_function *tree, int flag, int nAddress0, int nAddress1)
|
|
{
|
|
int count;
|
|
int saveGCN;
|
|
int saveN64;
|
|
int *addr_function;
|
|
int *addr_call;
|
|
}
|
|
|
|
int treeCallerKill(_CPU *pCPU, cpu_function *kill)
|
|
{
|
|
int left;
|
|
int right;
|
|
cpu_treeRoot *root;
|
|
}
|
|
|
|
void treeCallerInit(cpu_callerID *block, int total)
|
|
{
|
|
int count;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuDMAUpdateFunction(_CPU *pCPU, int start, int end)
|
|
{
|
|
cpu_treeRoot *root;
|
|
int count;
|
|
int cancel;
|
|
}
|
|
|
|
int cpuFindFunction(_CPU *pCPU, int theAddress, cpu_function **tree_node)
|
|
{
|
|
__anon_0x3EB4F **apDevice;
|
|
unsigned char *aiDevice;
|
|
unsigned int opcode;
|
|
unsigned char follow;
|
|
unsigned char valid;
|
|
unsigned char check;
|
|
unsigned char end_flag;
|
|
unsigned char save_restore;
|
|
unsigned char alert;
|
|
int beginAddress;
|
|
int cheat_address;
|
|
int current_address;
|
|
int temp_address;
|
|
int branch;
|
|
// References: Opcode (0x800EBD88)
|
|
// References: RegimmOpcode (0x8BE0E80)
|
|
// References: SpecialOpcode (0x800EBDC8)
|
|
}
|
|
|
|
int cpuTreeFree(cpu_function *pFunction)
|
|
{
|
|
unsigned int *anPack;
|
|
int iPack;
|
|
unsigned int nMask;
|
|
// References: aHeapTreeFlag (0x580A1380)
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuTreeTake(void *heap, int *where)
|
|
{
|
|
int done;
|
|
int nOffset;
|
|
int nCount;
|
|
int iPack;
|
|
unsigned int nPack;
|
|
unsigned int nMask;
|
|
unsigned int nMask0;
|
|
// References: gHeapTree (0x801356E0)
|
|
// References: aHeapTreeFlag (0x580A1380)
|
|
}
|
|
|
|
int cpuHeapFree(_CPU *pCPU, cpu_function *pFunction)
|
|
{
|
|
unsigned int *anPack;
|
|
int iPack;
|
|
unsigned int nMask;
|
|
}
|
|
|
|
int cpuHeapTake(void *heap, _CPU *pCPU, cpu_function *pFunction, int memory_size)
|
|
{
|
|
int done;
|
|
int second;
|
|
unsigned int *anPack;
|
|
int nPackCount;
|
|
int nBlockCount;
|
|
int nOffset;
|
|
int nCount;
|
|
int iPack;
|
|
unsigned int nPack;
|
|
unsigned int nMask;
|
|
unsigned int nMask0;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuHeapReset(unsigned int *array, int count)
|
|
{
|
|
int i;
|
|
}
|
|
|
|
int cpuGetFunctionChecksum(_CPU *pCPU, unsigned int *pnChecksum, cpu_function *pFunction)
|
|
{
|
|
int nSize;
|
|
unsigned int *pnBuffer;
|
|
unsigned int nChecksum;
|
|
unsigned int nData;
|
|
}
|
|
|
|
int cpuInvalidateCache(_CPU *pCPU, int nAddress0, int nAddress1);
|
|
|
|
int cpuGetOffsetAddress(_CPU *pCPU, unsigned int *anAddress, int *pnCount, unsigned int nOffset, unsigned int nSize)
|
|
{
|
|
int iEntry;
|
|
int iAddress;
|
|
unsigned int nAddress;
|
|
unsigned int nMask;
|
|
unsigned int nSizeMapped;
|
|
}
|
|
|
|
int cpuGetAddressBuffer(_CPU *pCPU, void *ppBuffer, unsigned int nAddress)
|
|
{
|
|
__anon_0x3EB4F *pDevice;
|
|
}
|
|
|
|
int cpuGetAddressOffset(_CPU *pCPU, int *pnOffset, unsigned int nAddress)
|
|
{
|
|
int iDevice;
|
|
}
|
|
|
|
int cpuEvent(_CPU *pCPU, int nEvent, void *pArgument);
|
|
|
|
int cpuSetFCR(_CPU *pCPU, int *anRegister)
|
|
{
|
|
int iRegister;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuSetFPR(_CPU *pCPU, long float *arRegister, int bDouble)
|
|
{
|
|
int iRegister;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuSetCP0(_CPU *pCPU, signed long long *anRegister)
|
|
{
|
|
int iRegister;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
// size: 0x4
|
|
enum __anon_0x42F73
|
|
{
|
|
CS_NONE = 4294967295,
|
|
CS_32BIT = 0,
|
|
CS_64BIT = 1
|
|
};
|
|
|
|
int cpuSetGPR(_CPU *pCPU, signed long long *anRegister)
|
|
{
|
|
int iRegister;
|
|
__anon_0x42F73 eSize;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuSetXPC(_CPU *pCPU, signed long long nPC, signed long long nLo, signed long long nHi)
|
|
{
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuGetFCR(_CPU *pCPU, int *anRegister)
|
|
{
|
|
int iRegister;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuGetFPR(_CPU *pCPU, long float *arRegister, int bDouble)
|
|
{
|
|
int iRegister;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuGetCP0(_CPU *pCPU, signed long long *anRegister)
|
|
{
|
|
int iRegister;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuGetGPR(_CPU *pCPU, signed long long *anRegister)
|
|
{
|
|
int iRegister;
|
|
__anon_0x42F73 eSize;
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuGetXPC(_CPU *pCPU, signed long long *pnPC, signed long long *pnLo, signed long long *pnHi)
|
|
{
|
|
// References: gClassCPU (0x58B60E80)
|
|
}
|
|
|
|
int cpuReset(_CPU *pCPU)
|
|
{
|
|
int iRegister;
|
|
int iTLB;
|
|
// References: gHeapTree (0x801356E0)
|
|
// References: aHeapTreeFlag (0x580A1380)
|
|
}
|
|
|
|
int cpuSetCodeHack(_CPU *pCPU, int nAddress, int nOpcodeOld, int nOpcodeNew)
|
|
{
|
|
int iHack;
|
|
}
|
|
|
|
int cpuSetDevicePut(__anon_0x3EB4F *pDevice, int (*pfPut8)(void */* unknown0 */, unsigned int /* unknown1 */, char */* unknown2 */), int (*pfPut16)(void */* unknown0 */, unsigned int /* unknown1 */, signed short */* unknown2 */), int (*pfPut32)(void */* unknown0 */, unsigned int /* unknown1 */, int */* unknown2 */), int (*pfPut64)(void */* unknown0 */, unsigned int /* unknown1 */, signed long long */* unknown2 */));
|
|
|
|
int cpuSetDeviceGet(__anon_0x3EB4F *pDevice, int (*pfGet8)(void */* unknown0 */, unsigned int /* unknown1 */, char */* unknown2 */), int (*pfGet16)(void */* unknown0 */, unsigned int /* unknown1 */, signed short */* unknown2 */), int (*pfGet32)(void */* unknown0 */, unsigned int /* unknown1 */, int */* unknown2 */), int (*pfGet64)(void */* unknown0 */, unsigned int /* unknown1 */, signed long long */* unknown2 */));
|
|
|
|
int cpuMapObject(_CPU *pCPU, void *pObject, unsigned int nAddress0, unsigned int nAddress1, int nType)
|
|
{
|
|
int iDevice;
|
|
int iAddress;
|
|
unsigned int nAddressVirtual0;
|
|
unsigned int nAddressVirtual1;
|
|
}
|
|
|
|
int cpuGetOpcodeText();
|
|
|
|
// size: 0x4
|
|
enum __anon_0x43B0A
|
|
{
|
|
RLM_NONE = 4294967295,
|
|
RLM_PART = 0,
|
|
RLM_FULL = 1,
|
|
RLM_COUNT_ = 2
|
|
};
|
|
|
|
// size: 0x10
|
|
struct __anon_0x43B69
|
|
{
|
|
int iCache; // 0x0
|
|
unsigned int nSize; // 0x4
|
|
unsigned int nTickUsed; // 0x8
|
|
char keep; // 0xC
|
|
};
|
|
|
|
// size: 0x14
|
|
struct __anon_0x43C7D
|
|
{
|
|
int bWait; // 0x0
|
|
int (*pCallback)(); // 0x4
|
|
unsigned char *pTarget; // 0x8
|
|
unsigned int nSize; // 0xC
|
|
unsigned int nOffset; // 0x10
|
|
};
|
|
|
|
// size: 0x30
|
|
struct __anon_0x43D5D
|
|
{
|
|
int bWait; // 0x0
|
|
int bDone; // 0x4
|
|
int nResult; // 0x8
|
|
unsigned char *anData; // 0xC
|
|
int (*pCallback)(); // 0x10
|
|
int iCache; // 0x14
|
|
int iBlock; // 0x18
|
|
int nOffset; // 0x1C
|
|
unsigned int nOffset0; // 0x20
|
|
unsigned int nOffset1; // 0x24
|
|
unsigned int nSize; // 0x28
|
|
unsigned int nSizeRead; // 0x2C
|
|
};
|
|
|
|
// size: 0x20
|
|
struct DVDDiskID
|
|
{
|
|
char gameName[4]; // 0x0
|
|
char company[2]; // 0x4
|
|
unsigned char diskNumber; // 0x6
|
|
unsigned char gameVersion; // 0x7
|
|
unsigned char streaming; // 0x8
|
|
unsigned char streamingBufSize; // 0x9
|
|
unsigned char padding[22]; // 0xA
|
|
};
|
|
|
|
// size: 0x30
|
|
struct DVDCommandBlock
|
|
{
|
|
DVDCommandBlock *next; // 0x0
|
|
DVDCommandBlock *prev; // 0x4
|
|
unsigned long command; // 0x8
|
|
long state; // 0xC
|
|
unsigned long offset; // 0x10
|
|
unsigned long length; // 0x14
|
|
void *addr; // 0x18
|
|
unsigned long currTransferSize; // 0x1C
|
|
unsigned long transferredSize; // 0x20
|
|
DVDDiskID *id; // 0x24
|
|
void (*callback)(long /* unknown0 */, DVDCommandBlock */* unknown1 */); // 0x28
|
|
void *userData; // 0x2C
|
|
};
|
|
|
|
// size: 0x3C
|
|
struct DVDFileInfo
|
|
{
|
|
DVDCommandBlock cb; // 0x0
|
|
unsigned long startAddr; // 0x30
|
|
unsigned long length; // 0x34
|
|
void (*callback)(long /* unknown0 */, DVDFileInfo */* unknown1 */); // 0x38
|
|
};
|
|
|
|
// size: 0x10EF8
|
|
struct __anon_0x443F6
|
|
{
|
|
void *pHost; // 0x0
|
|
void *pBuffer; // 0x4
|
|
int bFlip; // 0x8
|
|
int bLoad; // 0xC
|
|
char acNameFile[513]; // 0x10
|
|
unsigned int nSize; // 0x214
|
|
__anon_0x43B0A eModeLoad; // 0x218
|
|
__anon_0x43B69 aBlock[4096]; // 0x21C
|
|
unsigned int nTick; // 0x1021C
|
|
unsigned char *pCacheRAM; // 0x10220
|
|
unsigned char anBlockCachedRAM[1024]; // 0x10224
|
|
unsigned char anBlockCachedARAM[2046]; // 0x10624
|
|
__anon_0x43C7D copy; // 0x10E24
|
|
__anon_0x43D5D load; // 0x10E38
|
|
int nCountBlockRAM; // 0x10E68
|
|
int nSizeCacheRAM; // 0x10E6C
|
|
unsigned char acHeader[64]; // 0x10E70
|
|
unsigned int *anOffsetBlock; // 0x10EB0
|
|
int nCountOffsetBlocks; // 0x10EB4
|
|
DVDFileInfo fileInfo; // 0x10EB8
|
|
int offsetToRom; // 0x10EF4
|
|
};
|
|
|
|
// Location: 0x783E0F80
|
|
int __float_nan[];
|
|
|
|
// Location: 0x7C3E0F80
|
|
int __float_huge[];
|
|
|
|
// Location: 0x644E1380
|
|
float fTickScale;
|
|
|
|
// Location: 0x604E1380
|
|
unsigned int nTickMultiplier;
|
|
|
|
// size: 0x4
|
|
enum __anon_0x44829
|
|
{
|
|
RUM_NONE = 0,
|
|
RUM_IDLE = 1
|
|
};
|
|
|
|
int __cpuBreak(_CPU *pCPU);
|
|
|
|
int __cpuERET(_CPU *pCPU);
|
|
|
|
int cpuGetRegisterCP0(_CPU *pCPU, int iRegister, signed long long *pnData)
|
|
{
|
|
int bFlag;
|
|
// References: ganMaskGetCP0 (0x800EBB88)
|
|
}
|
|
|
|
int cpuSetRegisterCP0(_CPU *pCPU, int iRegister, signed long long nData)
|
|
{
|
|
int bFlag;
|
|
// References: ganMaskSetCP0 (0x800EBC88)
|
|
}
|
|
|
|
// size: 0x4
|
|
enum __anon_0x44AE9
|
|
{
|
|
CM_NONE = 4294967295,
|
|
CM_USER = 0,
|
|
CM_SUPER = 1,
|
|
CM_KERNEL = 2
|
|
};
|
|
|
|
// Local to compilation unit
|
|
static int cpuSetCP0_Status(_CPU *pCPU, unsigned long long nStatus)
|
|
{
|
|
__anon_0x44AE9 eMode;
|
|
__anon_0x44AE9 eModeLast;
|
|
__anon_0x42F73 eSize;
|
|
__anon_0x42F73 eSizeLast;
|
|
}
|
|
|
|
int cpuSetCP0_Config(_CPU *pCPU, unsigned int nConfig);
|
|
|
|
// Local to compilation unit
|
|
static int cpuGetSize(unsigned long long nStatus, __anon_0x42F73 *peSize, __anon_0x44AE9 *peMode)
|
|
{
|
|
__anon_0x44AE9 eMode;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuGetMode(unsigned long long nStatus, __anon_0x44AE9 *peMode);
|
|
|
|
int cpuVirtualToPhysical_Kernel64(_CPU *pCPU, unsigned long long nAddressVirtual, unsigned int *pnAddressPhysical);
|
|
|
|
int cpuVirtualToPhysical_Kernel32(_CPU *pCPU, unsigned long long nAddressVirtual, unsigned int *pnAddressPhysical);
|
|
|
|
int cpuVirtualToPhysical_Super64(_CPU *pCPU, unsigned long long nAddressVirtual, unsigned int *pnAddressPhysical);
|
|
|
|
int cpuVirtualToPhysical_Super32(_CPU *pCPU, unsigned long long nAddressVirtual, unsigned int *pnAddressPhysical);
|
|
|
|
int cpuVirtualToPhysical_User64(_CPU *pCPU, unsigned long long nAddressVirtual, unsigned int *pnAddressPhysical);
|
|
|
|
int cpuVirtualToPhysical_User32(_CPU *pCPU, unsigned long long nAddressVirtual, unsigned int *pnAddressPhysical);
|
|
|
|
int cpuFindTLB(_CPU *pCPU, unsigned long long nAddressVirtual, unsigned int *pnAddressPhysical)
|
|
{
|
|
int iEntry;
|
|
unsigned int nMask;
|
|
unsigned int nVirtual;
|
|
}
|
|
|
|
int cpuGetTLB(_CPU *pCPU, int iEntry);
|
|
|
|
// Local to compilation unit
|
|
static int cpuSetTLB(_CPU *pCPU, int iEntry)
|
|
{
|
|
int iDevice;
|
|
unsigned int nMask;
|
|
unsigned int nVirtual;
|
|
unsigned int nPhysical;
|
|
}
|
|
|
|
int cpuCountTLB(_CPU *pCPU, int *pnCount)
|
|
{
|
|
int iEntry;
|
|
int nCount;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuMapAddress(_CPU *pCPU, int *piDevice, unsigned int nVirtual, unsigned int nPhysical, int nSize)
|
|
{
|
|
int iDeviceTarget;
|
|
int iDeviceSource;
|
|
unsigned int nAddressVirtual0;
|
|
unsigned int nAddressVirtual1;
|
|
}
|
|
|
|
int cpuWipeDevices(_CPU *pCPU, int bFree)
|
|
{
|
|
int iDevice;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuFreeDevice(_CPU *pCPU, int iDevice)
|
|
{
|
|
int iAddress;
|
|
}
|
|
|
|
// Local to compilation unit
|
|
static int cpuMakeDevice(_CPU *pCPU, int *piDevice, void *pObject, int nOffset, unsigned int nAddress0, unsigned int nAddress1, int nType)
|
|
{
|
|
__anon_0x3EB4F *pDevice;
|
|
int iDevice;
|
|
}
|
|
|
|
// size: 0x4
|
|
enum __anon_0x45AE1
|
|
{
|
|
CEC_NONE = 4294967295,
|
|
CEC_INTERRUPT = 0,
|
|
CEC_TLB_MODIFICATION = 1,
|
|
CEC_TLB_LOAD = 2,
|
|
CEC_TLB_STORE = 3,
|
|
CEC_ADDRESS_LOAD = 4,
|
|
CEC_ADDRESS_STORE = 5,
|
|
CEC_BUS_INSTRUCTION = 6,
|
|
CEC_BUS_DATA = 7,
|
|
CEC_SYSCALL = 8,
|
|
CEC_BREAK = 9,
|
|
CEC_RESERVED = 10,
|
|
CEC_COPROCESSOR = 11,
|
|
CEC_OVERFLOW = 12,
|
|
CEC_TRAP = 13,
|
|
CEC_VCE_INSTRUCTION = 14,
|
|
CEC_FLOAT = 15,
|
|
CEC_RESERVED_16 = 16,
|
|
CEC_RESERVED_17 = 17,
|
|
CEC_RESERVED_18 = 18,
|
|
CEC_RESERVED_19 = 19,
|
|
CEC_RESERVED_20 = 20,
|
|
CEC_RESERVED_21 = 21,
|
|
CEC_RESERVED_22 = 22,
|
|
CEC_WATCH = 23,
|
|
CEC_RESERVED_24 = 24,
|
|
CEC_RESERVED_25 = 25,
|
|
CEC_RESERVED_26 = 26,
|
|
CEC_RESERVED_27 = 27,
|
|
CEC_RESERVED_28 = 28,
|
|
CEC_RESERVED_29 = 29,
|
|
CEC_RESERVED_30 = 30,
|
|
CEC_VCE_DATA = 31,
|
|
CEC_COUNT = 32
|
|
};
|
|
|
|
int cpuException(_CPU *pCPU, __anon_0x45AE1 eCode, int nMaskIP);
|
|
|
|
int cpuResetInterrupt(_CPU *pCPU, int nMaskIP);
|
|
|
|
int cpuTestInterrupt(_CPU *pCPU, int nMaskIP);
|
|
|
|
// size: 0xC
|
|
struct _CPU_ADDRESS
|
|
{
|
|
int nN64; // 0x0
|
|
int nHost; // 0x4
|
|
cpu_function *pFunction; // 0x8
|
|
};
|
|
|
|
// Local to compilation unit
|
|
static int cpuFindCachedAddress(_CPU *pCPU, int nAddressN64, int *pnAddressHost)
|
|
{
|
|
int iAddress;
|
|
cpu_function *pFunction;
|
|
_CPU_ADDRESS addressFound;
|
|
_CPU_ADDRESS *aAddressCache;
|
|
}
|
|
|
|
int cpuFreeCachedAddress(_CPU *pCPU, int nAddress0, int nAddress1)
|
|
{
|
|
int iAddress;
|
|
int iAddressNext;
|
|
int nAddressN64;
|
|
_CPU_ADDRESS *aAddressCache;
|
|
}
|
|
|
|
int cpuMakeCachedAddress(_CPU *pCPU, int nAddressN64, int nAddressHost, cpu_function *pFunction)
|
|
{
|
|
int iAddress;
|
|
_CPU_ADDRESS *aAddressCache;
|
|
}
|
|
|
|
// Location: 0x800ED6C8
|
|
_XL_OBJECTTYPE gClassRAM;
|
|
|
|
// Local to compilation unit
|
|
static int cpuHackHandler(_CPU *pCPU)
|
|
{
|
|
unsigned int nSize;
|
|
unsigned int *pnCode;
|
|
int iCode;
|
|
int iSave1;
|
|
int iSave2;
|
|
int iLoad;
|
|
// References: ganOpcodeLoadFP (0x5CBE0E80)
|
|
// References: ganOpcodeSaveFP2_1 (0x50BE0E80)
|
|
// References: ganOpcodeSaveFP2_0 (0x3CBE0E80)
|
|
// References: ganOpcodeSaveFP1 (0x28BE0E80)
|
|
// References: gClassRAM (0x800ED6C8)
|
|
}
|
|
|
|
int cpuHackCacheInstruction(_CPU *pCPU)
|
|
{
|
|
unsigned int *pnCode;
|
|
}
|
|
|
|
int cpuHackIdle(_CPU *pCPU)
|
|
{
|
|
__anon_0x3DB14 *pSystem;
|
|
}
|
|
|