changed 6 years ago
Linked with GitHub

ROM splitter configuration file

name: "Forsaken 64"

checksums from ROM header offsets 0x10 and 0x14

used for auto configuration detection

checksum1: 0x9E330C01
checksum2: 0x8C0314BA

base filename used for outputs (please, no spaces)

basename: "Forsaken64.u"

ranges:

  • [0x000000, 0x000040, "header", "header"]
  • [0x000040, 0x001000, "bin", "boot"]
  • [0x001000, 0x001058, "asm", "entry_point", 0x80000400]
  • [0x0027C0, 0x003B24, "asm", "main", 0x80001BC0]
  • [0x006E50, 0x022C6C, "asm", "other", 0x80006250]

labels:

OS Boot config variables

  • [0x80000300, "osTvType"] # 0 for PAL, 1 for NTSC, 2 for MPAL
  • [0x80000304, "osRomType"]
  • [0x80000308, "osRomBase"]
  • [0x8000030C, "osResetType"]
  • [0x80000310, "osCicId"]
  • [0x80000314, "osVersion"]
  • [0x80000318, "osMemSize"]
  • [0x8000031C, "osAppNMIBuffer"]

Functions

  • [0x80000400, "entry_point"]
  • [0x80001BC0, "main"]
  • [0x80001E34, "print_N64info"] # Not used?
  • [0x80002E50, "printf"] # Not implemented

N64 Library Functions

  • [0x8000C280, "cosf"]
  • [0x8000C3D0, "guLookAt"]
  • [0x8000C754, "guLookAtF"]
  • [0x8000CAE0, "sqrtf"]
  • [0x8000CAF0, "guMtxF2L"]
  • [0x8000CC30, "guMtxIdentF"]
  • [0x8000CE4C, "guMtxXFMF"]
  • [0x8000CF00, "guPerspective"]
  • [0x8000D0C8, "guPerspectiveF"]
  • [0x8000D280, "guRotateRPY"]
  • [0x8000D40C, "guRotateRPYF"]
  • [0x8000D680, "sinf"]
  • [0x8000D8F0, "guRandom"]
  • [0x8000DAE0, "osCreateMesgQueue"]
  • [0x8000DB10, "osCreateThread"]
  • [0x8000E244, "__osEnqueueAndYield"]
  • [0x8000E394, "__osPopThread"]
  • [0x8000E530, "__osDisableInt"]
  • [0x8000E550, "__osRestoreInt"]
  • [0x8000E570, "osSetIntMask"]
  • [0x8000E6E0, "osGetTime"]
  • [0x8000E770, "osGetCount"]
  • [0x8000E9C0, "osWritebackDCache"]
  • [0x8000EAA0, "osRecvMesg"]
  • [0x8000EBD0, "osSendMesg"]
  • [0x8000ED00, "osSetEventMesg"]
  • [0x8000ED60, "osSetThreadPri"]
  • [0x8000EE30, "osStartThread"]
  • [0x8000EF50, "osStopThread"]
  • [0x8000F010, "__osDequeueThread"]
  • [0x8000F044, "__osFaultedThread"]
  • [0x8000F048, "__osRunningThread"]
  • [0x8000F04C, "__osActiveQueue"]
  • [0x8000F050, "__osRunQueue"]
  • [0x8000F054, "__osThreadTail"]
  • [0x8000F360, "osVirtualToPhysical"]
  • [0x8000F3C0, "__osProbeTLB"]
  • [0x8000F490, "alBnkfNew"]
  • [0x8000F524, "alSeqFileNew"]
  • [0x8000F564, "bnkf_o_0098"]
  • [0x8000F610, "bnkf_o_0118"]
  • [0x8000F6A4, "bnkf_o_01D8"]
  • [0x8000F6FC, "bnkf_o_0258"]
  • [0x8000F7BC, "alLink"]
  • [0x8000F7DC, "alUnlink"]
  • [0x8000F810, "alHeapInit"]
  • [0x8000F850, "alHeapDBAlloc"]
  • [0x8000F8A0, "alCSeqGetLoc"]
  • [0x8000F914, "alCSeqSetLoc"]
  • [0x8000F988, "alCSeqNewMarker"]
  • [0x8000FB20, "cseq_o_0194"]
  • [0x8000FC20, "alCSeqGetTicks"]
  • [0x8000FC28, "alCSeqSecToTicks"]
  • [0x8000FCC8, "alCSeqTicksToSec"]
  • [0x8000FD44, "__alCSeqNextDelta"]
  • [0x8000FDC4, "alCSeqNextEvent"]
  • [0x8000FEB8, "alCSeqNew"]
  • [0x80010234, "cseq_o_02A4"]
  • [0x800102EC, "cseq_o_0088"]
  • [0x80010360, "n_alSeqpGetState"]
  • [0x80010370, "n_alSeqpPlay"]
  • [0x800103A0, "alEvtqFlushType"]
  • [0x80010450, "alEvtqFlush"]
  • [0x800104B4, "n_alEvtqPostEvent"]
  • [0x800104C8, "alEvtqPostEvent"]
  • [0x800105D4, "alEvtqNextEvent"]
  • [0x8001066C, "alEvtqNew"]
  • [0x800106F0, "alCopy"]
  • [0x80010730, "n_alSeqpSetBank"]
  • [0x80010760, "n_alSeqpSetChlPriority"]
  • [0x800107A0, "n_alSeqpSetSeq"]
  • [0x800107D0, "n_alSeqpSetVol"]
  • [0x80010800, "n_alSeqpStop"]
  • [0x800135A0, "alSeqGetLoc"]
  • [0x800135BC, "alSeqSetLoc"]
  • [0x800135D8, "alSeqGetTicks"]
  • [0x800135E0, "alSeqNewMarker"]
  • [0x80013688, "seq_o_044C"]
  • [0x800136F4, "alSeqSecToTicks"]
  • [0x80013784, "alSeqTicksToSec"]
  • [0x800137EC, "__alSeqNextDelta"]
  • [0x80013854, "alSeqNextEvent"]
  • [0x800139BC, "alSeqNew"]
  • [0x80013AA4, "seq_o_011C"]
  • [0x80013AB8, "seq_o_0040"]
  • [0x80013AE8, "seq_o_0020"]
  • [0x80013B38, "seq_o_0104"]
  • [0x800142E0, "alSndpAllocate"]
  • [0x800143A0, "alSndpDeallocate"]
  • [0x800143F0, "alSndpSetSound"]
  • [0x80014400, "alSndpPlay"]
  • [0x80014460, "alSndpStop"]
  • [0x800144B0, "alSndpGetState"]
  • [0x800144D0, "alSndpSetPitch"]
  • [0x80014520, "alSndpSetVol"]
  • [0x80014570, "alSndpSetPan"]
  • [0x800145C0, "alSndpSetFXMix"]
  • [0x80014A8C, "__allocParam"]
  • [0x80014B24, "_freePVoice"]
  • [0x80014BAC, "_timeToSamples"]
  • [0x80014D44, "alFxNew"]
  • [0x800154D0, "alLoadParam"]
  • [0x8001567C, "alRaw16Pull"]
  • [0x80015A18, "alAdpcmPull"]
  • [0x80015E5C, "load_o_0108"]
  • [0x80015FE0, "alAuxBusParam"]
  • [0x80016010, "alAuxBusPull"]
  • [0x80016E20, "alFilterNew"]
  • [0x80016E40, "alMainBusParam"]
  • [0x80016E70, "alMainBusPull"]
  • [0x80016FB0, "alResampleParam"]
  • [0x80017070, "alResamplePull"]
  • [0x80017610, "alFxParam"]
  • [0x80017F60, "alHeapCheck"]
  • [0x80017F70, "alSynDelete"]
  • [0x80017F80, "alSynAddPlayer"]
  • [0x80017FD0, "alSynFreeVoice"]
  • [0x80018070, "_allocatePVoice"]
  • [0x80018128, "alSynAllocVoice"]
  • [0x80018198, "synallocvoice_o_0048"]
  • [0x80018250, "alSynStopVoice"]
  • [0x800182D0, "alSynStartVoice"]
  • [0x80018470, "alSynSetPitch"]
  • [0x80018500, "alSynSetVol"]
  • [0x80018650, "alSynSetPan"]
  • [0x800186E0, "alSynSetPriority"]
  • [0x800186F0, "alSynAllocFX"]
  • [0x80018790, "alCents2Ratio"]
  • [0x800189C0, "__osAiDeviceBusy"]
  • [0x800189E0, "osSpTaskStartGo"]
  • [0x80018A0C, "osSpTaskLoad"]
  • [0x80018C20, "__osSpDeviceBusy"]
  • [0x80018C40, "__osSpSetStatus"]
  • [0x80018C50, "__osSpSetPc"]
  • [0x80018C80, "__osSpRawStartDma"]
  • [0x80018D80, "osSpTaskYield"]
  • [0x80018DA0, "osSpTaskYielded"]
  • [0x80018DF0, "__osSpGetStatus"]
  • [0x80018E00, "osViGetCurrentLine"]
  • [0x80018E10, "osViGetCurrentMode"]
  • [0x80019290, "osGetThreadPri"]
  • [0x800192C0, "osViSetEvent"]
  • [0x80019320, "osViSetMode"]
  • [0x80019370, "osViSetSpecialFeatures"]
  • [0x800194E0, "osViSetYScale"]
  • [0x80019530, "osViSwapBuffer"]
  • [0x80019870, "osViBlack"]
  • [0x80019960, "__osSiDeviceBusy"]
  • [0x800199F0, "osContGetQuery"]
  • [0x80019A10, "osContStartQuery"]
  • [0x80019A90, "__osSiRawStartDma"]
  • [0x80019BA4, "__osSiGetAccess"]
  • [0x80019BE4, "__osPiAccessQueue"]
  • [0x80019C10, "__osSiRelAccess"]
  • [0x80019C40, "osContGetReadData"]
  • [0x80019C50, "__osPiAccessQueueEnabled"]
  • [0x80019CDC, "osContStartReadData"]
  • [0x80019D64, "contreaddata_o_0028"]
  • [0x80019FBC, "__osContGetInitData"]
  • [0x8001A070, "__osPackRequestData"]
  • [0x8001C730, "__osPfsGetInitData"]
  • [0x8001C7E4, "__osPfsRequestData"]
  • [0x8001C888, "__osPfsPifRam"]
  • [0x8001C8AC, "pfsisplug_o_004C"]
  • [0x8001C8C8, "osPfsIsPlug"]
  • [0x8001C950, "pfsisplug_o_0094"]
  • [0x8001E000, "__osPiRawWriteIo"]
  • [0x8001E0A0, "osCreatePiManager"]
  • [0x8001E230, "__osPiRawStartDma"]
  • [0x8001E2A4, "__Dom1SpeedParam"]
  • [0x8001E318, "__osCurrentHandle"]
  • [0x8001E320, "__osPiTable"]
  • [0x8001E324, "__osPiDevMgr"]
  • [0x8001ED40, "__osDevMgrMain"]
  • [0x8001F100, "__osResetGlobalIntMask"]
  • [0x8001F150, "__osSetGlobalIntMask"]
  • [0x8001F190, "osYieldThread"]
  • [0x8001F1E0, "__osEPiRawReadIo"]
  • [0x8001F370, "__osEPiRawWriteIo"]
  • [0x8001F4C0, "__osPiCreateAccessQueue"]
  • [0x8001F514, "__osPiGetAccess"]
  • [0x8001F580, "__osPiRelAccess"]
  • [0x8001F5B0, "osPiWriteIo"]
  • [0x8001F600, "osPiStartDma"]
  • [0x8001F6B0, "osJamMesg"]
  • [0x8001F7F0, "osPiGetCmdQueue"]
  • [0x8001F810, "bcopy"]
  • [0x8001FC2C, "memcpy"]
  • [0x8001FC60, "sprintf"]
  • [0x8001FCF0, "_Printf"]
  • [0x80020970, "lldiv"]
  • [0x80020AA4, "ldiv"]
  • [0x800215F0, "__divdi3"]

Variables

  • [0x80002F40, "gRspBoot"] # Boot code for gfx and audio ucode, is 0xD0 bytes long
  • [0x80003010, "gGfxSPTask"] # Start of F3DEX v1.23 ucode
  • [0x800E4CF8, "gGfxOSTask"] # OSTask structure for F3DEX v1.23 ucode
  • [0x800E4D38, "gGfxOSTask2"] # OSTask structure for F3DEX v1.23 ucode
Select a repo