// Visit https://github.com/ethteck/splat/wiki/Adding-Symbols for documentation about this file
entrypoint = 0x80000400; // type:func
game_main = 0x800019B0; // type:func // renamed from main (clashes with the C entry point)

// libultra / libc, identified 2026-10-25 (tools/match_libultra.py vs Goemon 2 ga.elf + call-graph analysis)
// confidence: exact = signature match, fuzzy = >=85% similar, callgraph = deduced from calls/hardware regs, guess = plausible, verify
osEepromProbe = 0x80030EA0; // type:func size:0x74 // callgraph
osEepromLongWrite = 0x80030F20; // type:func size:0xE4 // callgraph
osEepromLongRead = 0x80031010; // type:func size:0x70 // callgraph
osCreatePiManager = 0x80031080; // type:func size:0x190 // callgraph
__osPiRawStartDma = 0x80031210; // type:func size:0x1EC // callgraph
__osDevMgrMain = 0x80031400; // type:func size:0x3B8 // callgraph
__osPiCreateAccessQueue = 0x800317C0; // type:func size:0x54 // callgraph
__osPiGetAccess = 0x80031814; // type:func size:0x6C // callgraph
__osPiRelAccess = 0x80031880; // type:func size:0x28 // callgraph
osPiStartDma = 0x800318B0; // type:func size:0xA8 // callgraph (7 args mb pri dir devAddr dramAddr size mq)
osAiGetLength = 0x80031960; // type:func size:0x10 // callgraph
osAiSetFrequency = 0x80031970; // type:func size:0x118 // callgraph
osAiSetNextBuffer = 0x80031A90; // type:func size:0x94 // callgraph
osInvalDCache = 0x80033630; // type:func size:0xB0 // fuzzy
osWritebackDCacheAll = 0x800336E0; // type:func size:0x28 // exact
osContStartQuery = 0x80033710; // type:func size:0x80 // callgraph
osContGetQuery = 0x80033790; // type:func size:0x20 // callgraph
osContStartReadData = 0x800337B0; // type:func size:0x88 // callgraph
osContGetReadData = 0x80033838; // type:func size:0x9C // callgraph
__osPackReadData = 0x800338D4; // type:func size:0xB8 // callgraph
osContInit = 0x80033990; // type:func size:0x19C // callgraph
__osContGetInitData = 0x80033B2C; // type:func size:0xB4 // callgraph
__osPackRequestData = 0x80033BE0; // type:func size:0xBC // callgraph
osVirtualToPhysical = 0x80033CA0; // type:func size:0x54 // callgraph
sprintf = 0x80035FF0; // type:func size:0x58 // guess
osCreateMesgQueue = 0x80036080; // type:func size:0x24 // callgraph
osJamMesg = 0x800360B0; // type:func size:0x134 // callgraph
osRecvMesg = 0x800361F0; // type:func size:0x124 // callgraph
osSendMesg = 0x80036320; // type:func size:0x130 // callgraph
osSetEventMesg = 0x80036450; // type:func size:0xAC // callgraph
__osSiRawStartDma = 0x80036F10; // type:func size:0xA4 // callgraph
__osSiCreateAccessQueue = 0x80036FC0; // type:func size:0x54 // callgraph
__osSiGetAccess = 0x80037014; // type:func size:0x6C // callgraph
__osSiRelAccess = 0x80037080; // type:func size:0x28 // callgraph
osCreateThread = 0x800370B0; // type:func size:0xD0 // callgraph
osGetThreadPri = 0x80037180; // type:func size:0x18 // exact
osSetThreadPri = 0x800371A0; // type:func size:0xC8 // callgraph
osStartThread = 0x80037270; // type:func size:0x118 // callgraph
__osDequeueThread = 0x80037390; // type:func size:0x34 // callgraph
osYieldThread = 0x800373D0; // type:func size:0x48 // callgraph
osGetTime = 0x80037420; // type:func size:0x84 // callgraph
osSetTimer = 0x800374B0; // type:func size:0x94 // callgraph
__osTimerInterrupt = 0x800375A4; // type:func size:0x13C // callgraph
__osSetTimerIntr = 0x800376E0; // type:func size:0x60 // callgraph
__osInsertTimer = 0x80037740; // type:func size:0x108 // callgraph
__osProbeTLB = 0x80037850; // type:func size:0xB8 // exact
osViGetCurrentFramebuffer = 0x80037910; // type:func size:0x38 // callgraph
osViGetNextFramebuffer = 0x80037950; // type:func size:0x38 // callgraph
osCreateViManager = 0x80037990; // type:func size:0x1A0 // callgraph
osViSetEvent = 0x80037CD0; // type:func size:0x58 // callgraph
osViSetMode = 0x80037D30; // type:func size:0x4C // callgraph
osViSetSpecialFeatures = 0x80037D80; // type:func size:0x164 // callgraph
osViSwapBuffer = 0x80037EF0; // type:func size:0x44 // callgraph
__osViSwapContext = 0x80037F40; // type:func size:0x308 // callgraph
osViBlack = 0x80038250; // type:func size:0x5C // callgraph
__osMotorAccess = 0x800382B0; // type:func size:0x144 // guess
osMotorInit = 0x800383F4; // type:func size:0x248 // guess
osPfsAllocateFile_40w = 0x80038640; // type:func size:0x30C // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osPfsDeclearPage = 0x8003894C; // type:func size:0x118 // guess
osPfsDeleteFile_40w = 0x80038A70; // type:func size:0x1AC // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osPfsReleasePages = 0x80038C1C; // type:func size:0x68 // guess
osPfsReadWriteFile_40w = 0x80038C90; // type:func size:0x440 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
osPfsFileState_40w = 0x800390D0; // type:func size:0x194 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
osPfsFindFile_40w = 0x80039270; // type:func size:0x1B8 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
osPfsFreeBlocks_40w = 0x80039430; // type:func size:0x10C // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
osPfsNumFiles_40w = 0x80039540; // type:func size:0x100 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
osPfsInitPak_40w = 0x80039640; // type:func size:0x1F8 // callgraph, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
osPfsRepairId_40w = 0x80039910; // type:func size:0x58 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osPfsGetStatus = 0x80039970; // type:func size:0xF0 // callgraph
__osPfsSelectBank_40w = 0x80039B80; // type:func size:0x64 // callgraph, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osRepairPackId_40w = 0x80039C68; // type:func size:0x2EC // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osCheckPackId_40w = 0x80039F54; // type:func size:0x164 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osGetId_40w = 0x8003A0B8; // type:func size:0x1CC // callgraph, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osCheckId_40w = 0x8003A284; // type:func size:0xB8 // callgraph, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osPfsRWInode_40w = 0x8003A33C; // type:func size:0x338 // callgraph, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osContRamRead = 0x8003A680; // type:func size:0x1E8 // callgraph
__osContRamWrite = 0x8003A870; // type:func size:0x204 // callgraph
__osInitialize_common = 0x8003AB80; // type:func size:0x228 // callgraph
osEepromRead = 0x8003AE60; // type:func size:0x198 // callgraph
__osPackEepReadData = 0x8003AFF8; // type:func size:0x88 // callgraph
osEepromWrite = 0x8003B080; // type:func size:0x168 // callgraph
__osPackEepWriteData = 0x8003B1E8; // type:func size:0xA8 // callgraph
__osEepStatus = 0x8003B290; // type:func size:0x19C // callgraph
__osExceptionPreamble = 0x8003B430; // type:func size:0x58C // callgraph
send_mesg = 0x8003B9BC; // type:func size:0xF0 // callgraph
__osEnqueueAndYield = 0x8003BAAC; // type:func size:0x108 // fuzzy
__osEnqueueThread = 0x8003BBB4; // type:func size:0x48 // fuzzy
__osPopThread = 0x8003BBFC; // type:func size:0x10 // exact
__osDispatchThread = 0x8003BC0C; // type:func size:0x188 // fuzzy
__osDisableInt = 0x8003BDA0; // type:func size:0x70 // callgraph
__osRestoreInt = 0x8003BE10; // type:func size:0x1C // exact
osSetIntMask = 0x8003BE30; // type:func size:0xA0 // exact
__osEPiRawStartDma = 0x8003BF60; // type:func size:0xD0 // callgraph
osPiGetCmdQueue = 0x8003C030; // type:func size:0x20 // callgraph
__osAiDeviceBusy = 0x8003C330; // type:func size:0x14 // callgraph
alFilterNew = 0x8003E7A0; // type:func size:0x1C // exact
osInvalICache = 0x8003F890; // type:func size:0x74 // fuzzy
osWritebackDCache = 0x8003F910; // type:func size:0x74 // fuzzy
bcmp = 0x8003FA40; // type:func size:0x110 // guess
bcopy = 0x8003FB50; // type:func size:0x31C // callgraph
bzero = 0x8003FE70; // type:func size:0xA0 // fuzzy
osDpSetNextBuffer = 0x80040940; // type:func size:0x98 // callgraph
__osGetCause = 0x800409E0; // type:func size:0xC // callgraph
osGetCount = 0x800409F0; // type:func size:0xC // exact
__osGetSR = 0x80040A00; // type:func size:0xC // exact
__osSetCompare = 0x80040A10; // type:func size:0xC // exact
__osSetFpcCsr = 0x80040A20; // type:func size:0x10 // exact
__osSetSR = 0x80040A30; // type:func size:0x10 // exact
osSpTaskLoad = 0x80040A40; // type:func size:0x20C // callgraph
osSpTaskStartGo = 0x80040C4C; // type:func size:0x2C // callgraph
osSpTaskYield = 0x80040C80; // type:func size:0x1C // fuzzy
osSpTaskYielded = 0x80040CA0; // type:func size:0x4C // callgraph
__osContAddressCrc = 0x80040D90; // type:func size:0x6C // callgraph
__osContDataCrc = 0x80040DFC; // type:func size:0x7C // callgraph
osDestroyThread = 0x80040E80; // type:func size:0xD8 // callgraph
osMapTLBRdb = 0x80040F60; // type:func size:0x58 // exact
osUnmapTLBAll = 0x80040FC0; // type:func size:0x44 // exact
__osViInit = 0x80041010; // type:func size:0x104 // callgraph
__osViGetCurrentContext = 0x80041120; // type:func size:0xC // exact
osPfsChecker_40w = 0x80041130; // type:func size:0x460 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp)
__osDpDeviceBusy = 0x80042800; // type:func size:0x18 // callgraph
__osSpDeviceBusy = 0x80042820; // type:func size:0x18 // callgraph
__osSpGetStatus = 0x80042840; // type:func size:0x10 // callgraph
__osSpSetStatus = 0x80042850; // type:func size:0x10 // callgraph
__osSpSetPc = 0x80042860; // type:func size:0x30 // callgraph
__osSpRawStartDma = 0x80042890; // type:func size:0x8C // callgraph
__osSiDeviceBusy = 0x80042920; // type:func size:0x18 // callgraph
viMgrMain = 0x80037B30; // type:func size:0x1A0 // callgraph (VI manager thread entry)
__osSiRawReadIo = 0x80040CF0; // type:func size:0x50 // callgraph (lw from SI reg into *a1)
__osSiRawWriteIo = 0x80040D40; // type:func size:0x50 // callgraph (sw a1 to SI reg)
__osPfsCheckRamArea_40w = 0x80039838; // type:func size:0xD8 // guess, renamed so N64Recomp recompiles it (Controller Pak, see src/game/pak.cpp) (select bank, write, read back, bcmp)
osGetMemSize = 0x8003AAE0; // type:func size:0xA0 // callgraph (probes RDRAM through KSEG1 0xA0400000+ in 1MB steps up to 8MB)
