Tony Hawk's Pro Skater

From en64 wiki
Jump to navigation Jump to search

Data structures/enumerations

typedef struct
{
    float xscale, yscale;
    u32 xpos, ypos;
} print_info;
 
typedef enum
{
    align_left = 0,
    align_right = 1,
    align_center = 2
} text_align;
 
typedef enum
{
    valign_bottom = 0,
    valign_top = 1,
    valign_center = 2
}text_valign;

Functions

/* 0x800057E4 */
int sprintf(char *dst, char *fmt, ...)

/* 0x8000574C */
int strlen(char *str)

memset = 0x8009F240

/* 0x800B2A6C */
screen_print(print_info *info, char *str, float, float, float, text_align, text_valign, float, u32, u32, u32, u32, float)

/* 80001330 - NOTE: This function was hand written. All standard register usage is ignored.*/

decompress_ERZ(void *src, void *dst);

Library Functions

0x800004c0,__libm_qnan_f
0x80000570,__osRcpImTable
0x800018c0,__cosf/fcos/cosf
0x80001a30,guMtxF2L
0x80001b30,guMtxIdentF
0x80001bb8,guMtxIdent
0x80001be8,guMtxL2F
0x80001ca0,__sinf/fsin/sinf
0x80002a90,__osGetSR
0x80002aa0,osInvalICache
0x80002b20,osSetIntMask
0x80002bc0,__osSetFpcCsr
0x80002bd0,__osSetSR
0x80002be0,osMapTLBRdb
0x80002c40,osWritebackDCache
0x80002cc0,osDestroyThread
0x80002dc0,__osDisableInt
0x80002de0,__osRestoreInt
0x80002e00,osSetEventMesg
0x80002e70,__osDequeueThread
0x80002eb0,osAiSetFrequency
0x80003010,osViBlack
0x800031c0,__osViSwapContext
0x80003520,osVirtualToPhysical
0x800035a0,__osProbeTLB
0x80003660,__osSiRawReadIo
0x80003660,__osSpRawReadIo
0x800036b0,__osSiDeviceBusy
0x800036e0,__osSpRawWriteIo
0x800036e0,__osSiRawWriteIo
0x80003730,osPiRawReadIo
0x800043d0,osCreateThread
0x80004520,osGetThreadPri
0x80004540,osSetThreadPri
0x80004620,osStartThread
0x80004770,osPiRawStartDma
0x80004ed0,osRecvMesg
0x80005010,__osResetGlobalIntMask
0x80005070,osSendMesg
0x800051c0,__osSetGlobalIntMask
0x80005210,osYieldThread
0x80005260,osEPiRawReadIo
0x800052b0,osEPiRawWriteIo
0x800053c0,bzero/_bzero/blkclr/_blkclr
0x80005460,__ull_rshift
0x8000548c,__ull_rem
0x800054c8,__ull_div
0x80005504,__ll_lshift
0x80005530,__ll_rem
0x8000556c,__ll_div
0x800055c8,__ll_mul
0x800055f8,__ull_divremi
0x80005658,__ll_mod
0x800056f4,__ll_rshift
0x80005720,memcpy
0x8000574c,strlen
0x80005774,strchr
0x800057c0,sprintf
0x80006500,_Litob
0x800067a0,lldiv
0x800068a0,ldiv
0x80006930,_Ldtob
0x800073f0,sqrtf
0x80007400,osGetCount
0x80007410,osContStartQuery
0x80007494,osContGetQuery
0x800074c0,__osSiRawStartDma
0x80007570,osInvalDCache
0x800076e0,osContInit
0x800078d8,__osContGetInitData
0x800079a8,__osPackRequestData
0x80007aa0,osGetTime
0x80007b30,osSetTimer
0x80008010,__osSetCompare
0x80008020,osPfsIsPlug
0x800081c0,__osPfsRequestData
0x800082bc,__osPfsGetInitData
0x80008990,__osContAddressCrc
0x80008a40,__osContDataCrc
0x80008b10,__osSumcalc
0x80008b6c,__osIdCheckSum
0x80008bd4,__osRepairPackId
0x80008fec,__osCheckPackId
0x80009184,__osGetId
0x800093e0,__osCheckId
0x800094dc,__osPfsRWInode
0x800097fc,__osPfsSelectBank
0x80009bf0,osPfsChecker
0x8000a2b4,corrupted_init
0x8000a468,corrupted
0x8000ad80,osGetThreadId
0x8000ada0,osStopThread
0x8000ae60,osViSetYScale
0x8000aec0,osWritebackDCacheAll
0x8000aef0,__osSpSetPc
0x8000b220,__osSpDeviceBusy
0x8000b250,__osSpSetStatus
0x8000b260,__osSpRawStartDma
0x8000b2f0,osSpTaskYield
0x8000b310,osSpTaskYielded
0x8000b390,__osSpGetStatus
0x8000b3a0,osViGetCurrentFramebuffer
0x8000b3a0,osViGetNextFramebuffer
0x8000b3e0,osCreateViManager
0x8000b740,__osViGetCurrentContext
0x8000b740,__osViGetNextContext
0x8000b740,__osGetCurrFaultedThread
0x8000b740,osPiGetDeviceType
0x8000b740,__osGetActiveQueue
0x8000b750,osViSetEvent
0x8000b7c0,osViSetMode
0x8000b830,osViSwapBuffer
0x8000b880,bcopy/_bcopy
0x8000bb90,osViSetSpecialFeatures
0x8000bd50,osContStartReadData
0x8000be14,osContGetReadData
0x8000bfb0,__osGetFpcCsr
0x8000bfc0,osJamMesg
0x8000c110,alUnlink
0x8000c140,alLink
0x8000c164,alClose
0x8000c19c,alInit
0x8000c1d8,_timeToSamples
0x8000c230,_freePVoice
0x8000c268,_collectPVoices
0x8000c2c8,__freeParam
0x8000c2e0,__allocParam
0x8000c318,alAudioFrame
0x8000c5b0,alSynNew
0x8000c8b0,alSaveNew
0x8000c8f4,alMainBusNew
0x8000c948,alAuxBusNew
0x8000c99c,alResampleNew
0x8000ca24,alLoadNew
0x8000cacc,alEnvmixerNew
0x8000cb70,init_lpfilter
0x8000cc10,alFxNew
0x8000d050,alLoadParam
0x8000d224,alRaw16Pull
0x8000d6fc,alAdpcmPull
0x8000dba0,alAuxBusParam
0x8000dbd0,alAuxBusPull
0x8000dcb0,_ldexpf
0x8000dcd8,_frexpf
0x8000ddc4,alEnvmixerParam
0x8000e3bc,alEnvmixerPull
0x8000fe20,osAiGetLength
0x8000fe30,alHeapInit
0x8000fe70,osPfsAllocateFile
0x800102f4,__osPfsDeclearPage
0x80010620,osPfsDeleteFile
0x80010900,__osPfsReleasePages
0x80010b38,__osBlockSum
0x80010c30,osPfsReadWriteFile
0x80011130,osPfsFileState
0x80011420,osPfsFindFile
0x800115e0,osPfsFreeBlocks
0x80011730,osPfsNumFiles
0x80011dd0,osViModeNtscLpn1
0x80011e20,osViModeNtscLpf1
0x80011ec0,osViModeNtscLaf1
0x80011f10,osViModeNtscLpn2
0x80011f60,osViModeNtscLpf2
0x80011fb0,osViModeNtscLan2
0x80012000,osViModeNtscLaf2
0x80012050,osViModeNtscHpn1
0x800120a0,osViModeNtscHpf1
0x800120f0,osViModeNtscHan1
0x80012140,osViModeNtscHaf1
0x80012190,osViModeNtscHpn2
0x800121e0,osViModeNtscHpf2
0x80012690,osViModeMpalLpn1
0x800126e0,osViModeMpalLpf1
0x80012780,osViModeMpalLaf1
0x800127d0,osViModeMpalLpn2
0x80012820,osViModeMpalLpf2
0x80012870,osViModeMpalLan2
0x800128c0,osViModeMpalLaf2
0x80012910,osViModeMpalHpn1
0x80012960,osViModeMpalHpf1
0x800129b0,osViModeMpalHan1
0x80012a00,osViModeMpalHaf1
0x80012a50,osViModeMpalHpn2
0x80012aa0,osViModeMpalHpf2

Printing Example

/* jal @ 0x800BF4E4 during startup */
 
print_info *info_1 =(print_info*) /* 0x800D26AC */
{
    0.8, 1.0,
    8, 51
};
 
char *message = "expansion pack found."; /* 0x80021868 */
 
screen_print(info_1, message, 320.0, 245.0, 1.2, align_center, valign_top, 1.0, 255, 0, 1, 1, 512.0);
 
/* jal @ 0x80029F90 during startup */
 
print_info *info_2 = (print_info*)/* 0x80172234 */
{
    0.7, 1.2,
    12, 39
};
 
char *copyright = "copyright 1999, 2000 activision, inc.\n\n\
activision is a registered trademark of activision, inc.\n\
neversoft is a registered trademark of jcm production, inc.\n\
edge of reality is a registered trademark\n
of edge reality, inc.  all rights reserved."; /* 0x80018FA4 */
 
screen_print(info_2, copyright, 320.0, 330.0, 1.2, align_center, valign_bottom, 0.0, 0, 100, 0, 1, 0.0);