scratchpad                                   = 0x1F800000; // size:0x400 ignore:True



//================================================
//=== .rodata section
//================================================


//----------------------------------------------------------------------------
//--- PA: 0x0001E4   VA: 0x80024D44   subsegment: .rodata, sys/syswork_globals
//----------------------------------------------------------------------------
g_GameWorkConst                              = 0x80024D44; // type:u32
g_SavegamePtr                                = 0x80024D48; // type:u32
g_Controller0                                = 0x80024D4C; // type:u32
g_Controller1                                = 0x80024D50; // type:u32
g_GameWorkPtr                                = 0x80024D54; // type:u32

//---------------------------------------------------------------------
//--- PA: 0x0001FC   VA: 0x80024D5C   subsegment: .rodata, sys/map_info
//---------------------------------------------------------------------
MAP_INFOS                                    = 0x8002500C; // type:MapType size:0xF0

//---------------------------------------------------------------------------
//--- PA: 0x0005BC   VA: 0x8002511C   subsegment: .rodata, sys/settings_reset
//---------------------------------------------------------------------------
DEFAULT_CONTROLLER_CONFIGS                   = 0x8002511C;

//--------------------------------------------------------------------------------------
//--- PA: 0x000758   VA: 0x800252B8   subsegment: .rodata, events/bodyprog_data_800A99B4
//--------------------------------------------------------------------------------------
SFX_PAIRS                                    = 0x800252BC; // type:AreaLoadSfx size:0x64

//-----------------------------------------------------------------------
//--- PA: 0x001208   VA: 0x80025D68   subsegment: .rodata, text/text_draw
//-----------------------------------------------------------------------
FONT_12X16_GLYPH_WIDTHS                      = 0x80025D6C;
STRING_COLORS                                = 0x80025DC0;

//-----------------------------------------------------------------------------
//--- PA: 0x00179C   VA: 0x800262FC   subsegment: .rodata, items/item_screens_3
//-----------------------------------------------------------------------------
INV_ITEM_ROTATIONS                     = 0x800262FC; // type:DVECTOR size:0x380
LABEL_STR_POS_TABLE                          = 0x80027DD8; // size:0x20

//-----------------------------------------------------------------------
//--- PA: 0x004BF0   VA: 0x80029750   subsegment: .rodata, player_control
//-----------------------------------------------------------------------
hack_D_8002A844_fix                          = 0x8002A844; // type:s32

//--------------------------------------------------------------
//--- PA: 0x006754   VA: 0x8002B2B4   subsegment: .rodata, water
//--------------------------------------------------------------
hack_vcSetWatchTgtXzPos_fix                  = 0x8002B2B4; // type:s32 - Some 0x80083500 value which coincidentally points to code inside vcSetWatchTgtXzPos, probably unrelated flags or something. A jtbl is right before this which spimdisasm tries to include, breaking vcSetWatchTgtXzPos build.



//================================================
//=== .text section
//================================================


//----------------------------------------------------------
//--- PA: 0x009AD0   VA: 0x8002E630   subsegment: c, memcard
//----------------------------------------------------------
MemCard_SysInit                              = 0x8002E630; // type:func
MemCard_RamClear                             = 0x8002E6E4; // type:func
MemCard_FileStatusClear                      = 0x8002E730; // type:func
MemCard_AreAllFilesUsed                      = 0x8002E76C; // type:func
MemCard_SysEnable                            = 0x8002E7BC;
MemCard_SysDisable                           = 0x8002E830; // type:func
MemCard_InitStatus                           = 0x8002E85C;
MemCard_StatusInitNotConnected               = 0x8002E86C;
MemCard_AllMemCardsStatusGet                 = 0x8002E898;
func_8002E8D4                                = 0x8002E8D4;
MemCard_StatusInitSuccess                    = 0x8002E8E4;
MemCard_ProcessSet                           = 0x8002E94C;
MemCard_LastMemCardResultGet                 = 0x8002E990;
MemCard_FileStatusesGet                      = 0x8002E9A0; // type:func
MemCard_SaveMetadataGet                      = 0x8002E9EC; // type:func
MemCard_UsedFileCount                        = 0x8002EA28; // type:func
MemCard_FreeFilesCount                       = 0x8002EA78; // type:func
MemCard_NoSavesDoneCheck                     = 0x8002EABC;
MemCard_Update                               = 0x8002EB88;
MemCard_Process_Format                       = 0x8002ECE0;
MemCard_Process_Init                         = 0x8002ED7C;
MemCard_FileLimitUpdate                      = 0x8002F278;
MemCard_Process_Load                         = 0x8002F2C4;
MemCard_Process_Save                         = 0x8002F61C;
MemCard_SaveInfoClear                        = 0x8002FB64;
MemCard_UserConfigCopy                       = 0x8002FBB4; // type:func
MemCard_BiggestTotalSavegameCountGet         = 0x8002FC3C;
MemCard_GameDataCopy                         = 0x8002FCCC; // type:func
MemCard_TotalSavegameCountUpdate             = 0x8002FD5C;
MemCard_TotalSavegameCountStepUpdate         = 0x8002FDB0;
MemCard_SaveWithBiggestTotalSavegameCountGet = 0x8002FE70;
MemCard_ChecksumUpdate                       = 0x8002FF30; // type:func
MemCard_ChecksumValidate                     = 0x8002FF74; // type:func
MemCard_ChecksumGenerate                     = 0x8002FFD0; // type:func
MemCard_FilenameGenerate                     = 0x80030000; // type:func
MemCard_SaveBlockInit                        = 0x800300B4; // type:func
MemCard_DeviceTest                           = 0x80030288; // type:func
MemCard_DeviceFormat                         = 0x8003030C; // type:func
MemCard_FileClear                            = 0x80030334; // type:func
MemCard_FileRename                           = 0x80030370; // type:func
MemCard_Init                                 = 0x800303E4; // type:func
MemCard_EventsInit                           = 0x80030414; // type:func
MemCard_StateInit                            = 0x80030444; // type:func
MemCard_SwEventsInit                         = 0x8003045C; // type:func
MemCard_HwEventsInit                         = 0x80030530; // type:func
MemCard_EventsClose                          = 0x80030640; // type:func
MemCard_SwEventsClose                        = 0x80030668; // type:func
MemCard_HwEventsClose                        = 0x800306C8; // type:func
MemCard_SwEventsTest                         = 0x80030734; // type:func
MemCard_SwEventsReset                        = 0x800307BC; // type:func
MemCard_HwEventsTest                         = 0x80030810; // type:func
MemCard_HwEventsReset                        = 0x80030820; // type:func
MemCard_HwEventSpIOE                         = 0x80030884; // type:func
MemCard_HwEventSpERROR                       = 0x80030894; // type:func
MemCard_HwEventSpNEW                         = 0x800308A4; // type:func
MemCard_HwEventSpTIMOUT                      = 0x800308B4; // type:func
MemCard_HwEventSpUNKNOWN                     = 0x800308C4; // type:func
MemCard_StateResult                          = 0x800308D4; // type:func
MemCard_WorkSet                              = 0x800308E4; // type:func
MemCard_MemCardIsIdle                        = 0x800309FC; // type:func
MemCard_StateUpdate                          = 0x80030A0C; // type:func
MemCard_State_Init                           = 0x80030AD8; // type:func
MemCard_State_Check                          = 0x80030C88; // type:func
MemCard_State_Load                           = 0x80030DC8; // type:func
MemCard_State_DirRead                        = 0x80030F7C; // type:func
MemCard_State_FileCreate                     = 0x800310B4; // type:func
MemCard_State_FileOpen                       = 0x80031184; // type:func
MemCard_State_FileReadWrite                  = 0x80031260; // type:func
MemCard_DevicePathGenerate                   = 0x800314A4; // type:func

//-------------------------------------------------------------------------
//--- PA: 0x00C98C   VA: 0x800314EC   subsegment: c, screen/background_draw
//-------------------------------------------------------------------------
Screen_BackgroundImgDraw                     = 0x800314EC; // type:func
Screen_BackgroundImgTransition               = 0x800317CC; // type:func
Screen_BackgroundImgDrawAlt                  = 0x80031AAC; // type:func
Screen_BackgroundMotionBlur                  = 0x80031CCC; // type:func

//-----------------------------------------------------------------------
//--- PA: 0x00D39C   VA: 0x80031EFC   subsegment: c, text/text_debug_draw
//-----------------------------------------------------------------------
Text_Debug_PositionSet                       = 0x80031EFC; // type:func
Text_Debug_Draw                              = 0x80031F40; // type:func
Text_Debug_IntToString                       = 0x80032154; // type:func
Text_Debug_DrawDecimal                       = 0x800321EC; // type:func

//---------------------------------------------------------------------
//--- PA: 0x00D7F8   VA: 0x80032358   subsegment: c, screen/screen_draw
//---------------------------------------------------------------------
Screen_RectInterlacedClear                   = 0x80032358; // type:func
Screen_Refresh                               = 0x800323C8; // type:func
Screen_Init                                  = 0x80032428; // type:func
Screen_XyPositionSet                         = 0x800324F4; // type:func
Screen_DisplayEnvXySet                       = 0x80032524; // type:func

//---------------------------------------------------------------------
//--- PA: 0x00DA44   VA: 0x800325A4   subsegment: c, screen/screen_fade
//---------------------------------------------------------------------
Screen_FadeDrawModeSet                       = 0x800325A4; // type:func
Screen_FadeInProgressGet                     = 0x800325F8; // type:func
Screen_FadeUpdate                            = 0x8003260C; // type:func

//-------------------------------------------------------------------------
//--- PA: 0x00DD3C   VA: 0x8003289C   subsegment: c, screen/cutscene_border
//-------------------------------------------------------------------------
Screen_BlackBorderDraw.0                     = 0x8003289C; // filename:Screen_BlackBorderDraw type:func Compiler adds suffix to end of nested func names.
Screen_CutsceneCameraStateUpdate             = 0x80032904; // type:func

//------------------------------------------------------------
//--- PA: 0x00E020   VA: 0x80032B80   subsegment: c, sys/vsync
//------------------------------------------------------------
Screen_VSyncCallback                         = 0x80032B80; // type:func

//-----------------------------------------------------------------
//--- PA: 0x00E070   VA: 0x80032BD0   subsegment: c, sys/fs_screens
//-----------------------------------------------------------------
GameFs_TitleGfxSeek                          = 0x80032BD0; // type:func
GameFs_TitleGfxLoad                          = 0x80032BF0; // type:func
GameFs_StreamBinSeek                         = 0x80032C20; // type:func
GameFs_StreamBinLoad                         = 0x80032C40; // type:func
GameFs_OptionBinLoad                         = 0x80032C68; // type:func
GameFs_SaveLoadBinLoad                       = 0x80032CA8; // type:func
func_80032CE8                                = 0x80032CE8; // type:func

//----------------------------------------------------------------
//--- PA: 0x00E1BC   VA: 0x80032D1C   subsegment: c, sys/game_main
//----------------------------------------------------------------
GameState_Boot_Update                        = 0x80032D1C; // type:func
MainLoop                                     = 0x80032EE0; // type:func

//---------------------------------------------------------------------
//--- PA: 0x00E86C   VA: 0x800333CC   subsegment: c, sys/settings_reset
//---------------------------------------------------------------------
Settings_ScreenAndVolUpdate                  = 0x800333CC; // type:func
Settings_RestoreDefaults                     = 0x8003342C; // type:func
Settings_RestoreControlDefaults              = 0x80033480; // type:func
nullsub_800334C8                             = 0x800334C8; // type:func

//----------------------------------------------------------------
//--- PA: 0x00E978   VA: 0x800334D8   subsegment: c, sys/memcard_2
//----------------------------------------------------------------
MemCard_FilesDamagedCheck                    = 0x800334D8;
MemCard_ElementsUpdate                       = 0x80033548;

//----------------------------------------------------------------
//--- PA: 0x00F580   VA: 0x800340E0   subsegment: c, sys/warm_boot
//----------------------------------------------------------------
SysWork_Clear                                = 0x800340E0; // type:func
MainLoop_ShouldWarmReset                     = 0x80034108; // type:func
Game_WarmBoot                                = 0x80034264; // type:func

//----------------------------------------------------------
//--- PA: 0x00F8BC   VA: 0x8003441C   subsegment: c, sys/joy
//----------------------------------------------------------
Joy_Init                                     = 0x8003441C; // type:func
Joy_ReadP1                                   = 0x80034450; // type:func
Joy_Update                                   = 0x8003446C; // type:func
Joy_ControllerDataUpdate                     = 0x80034494; // type:func
ControllerData_AnalogToDigital               = 0x80034670; // type:func

//----------------------------------------------------------------------
//--- PA: 0x00FD60   VA: 0x800348C0   subsegment: c, game_boot/game_boot
//----------------------------------------------------------------------
Anim_CharaTypeAnimInfoClear                  = 0x800348C0; // type:func
GameState_LoadScreen_Update                  = 0x800348E8; // type:func
GameBoot_GameStartup                         = 0x80034964; // type:func
GameBoot_LoadingScreen                       = 0x80034E58; // type:func
GameBoot_NpcClear                            = 0x80034EC8; // type:func
GameBoot_NpcInit                             = 0x80034F18; // type:func
GameBoot_InGameInit                          = 0x80034FB8; // type:func
GameBoot_SavegameInitialize                  = 0x800350BC; // type:func
GameBoot_PlayerInit                          = 0x80035178; // type:func
GameBoot_MapLoad                             = 0x8003521C; // type:func

//--------------------------------------------------------------------------
//--- PA: 0x01072C   VA: 0x8003528C   subsegment: c, game_boot/fs_chara_anim
//--------------------------------------------------------------------------
Fs_CharaAnimDataOverlapCheck                 = 0x8003528C; // type:func
Fs_CharaAnimDataIdxGet                       = 0x800352F8; // type:func
Fs_CharaAnimDataAlloc                        = 0x80035338; // type:func
Fs_CharaAnimDataUpdate                       = 0x80035560; // type:func
Fs_CharaAnimBoneInfoUpdate                   = 0x8003569C; // type:func

//----------------------------------------------------------------------------------
//--- PA: 0x010C20   VA: 0x80035780   subsegment: c, game_boot/background_sound_init
//----------------------------------------------------------------------------------
Bgm_Init                                     = 0x80035780; // type:func
Bgm_ActiveBgmTrackCheck                      = 0x800358A8; // type:func
Bgm_TrackSet                                 = 0x800358DC; // type:func
Bgm_ChannelSet                               = 0x80035924; // type:func
func_8003596C                                = 0x8003596C; // type:func
Sd_AmbientSfxInit                            = 0x8003599C; // type:func
Sd_IsCurrentAmbientTargetCheck               = 0x80035AB0; // type:func
Sd_AmbientSfxSet                             = 0x80035AC8; // type:func

//------------------------------------------------------------------------
//--- PA: 0x010FA4   VA: 0x80035B04   subsegment: c, game_boot/load_screen
//------------------------------------------------------------------------
Math_MatrixTransform                         = 0x80035B04; // type:func
Gfx_MapEffectsSet                            = 0x80035B58; // type:func
GameBoot_LoadScreen_BackgroundImg            = 0x80035BBC; // type:func
GameBoot_LoadScreen_PlayerRun                = 0x80035BE0; // type:func

//-------------------------------------------------------------
//--- PA: 0x011254   VA: 0x80035DB4   subsegment: c, events/bgm
//-------------------------------------------------------------
Bgm_TrackUpdate                              = 0x80035DB4; // type:func
Bgm_AllLayersMute                            = 0x80035E1C; // type:func
Bgm_LayerOnCheck                             = 0x80035E44; // type:func
Bgm_GlobalLayerVariablesUpdate               = 0x80035ED0; // type:func
Bgm_Update                                   = 0x80035F4C; // type:func
func_800363D0                                = 0x800363D0; // type:func
Bgm_TrackChange                              = 0x8003640C; // type:func
Game_MapRoomIdxUpdate                        = 0x80036420; // type:func

//-------------------------------------------------------------------------
//--- PA: 0x0119CC   VA: 0x8003652C   subsegment: c, text/bodyprog_8003652C
//-------------------------------------------------------------------------
func_8003652C                                = 0x8003652C; // type:func

//-----------------------------------------------------------------------
//--- PA: 0x011A58   VA: 0x800365B8   subsegment: c, text/map_msg_display
//-----------------------------------------------------------------------
Gfx_MapMsg_Draw                              = 0x800365B8; // type:func
Gfx_MapMsg_SelectionUpdate                   = 0x80036B5C; // type:func

//---------------------------------------------------------------
//--- PA: 0x0125F4   VA: 0x80037154   subsegment: c, events/radio
//---------------------------------------------------------------
Game_RadioSoundStop                          = 0x80037188; // type:func

//---------------------------------------------------------------------------
//--- PA: 0x012688   VA: 0x800371E8   subsegment: c, events/player_pos_update
//---------------------------------------------------------------------------
Chara_PositionSet                            = 0x800371E8; // type:func
Game_PlayerHeightUpdate                      = 0x80037334; // type:func

//---------------------------------------------------------------------
//--- PA: 0x012828   VA: 0x80037388   subsegment: c, events/events_main
//---------------------------------------------------------------------
Event_ItemTriggersClear.0                    = 0x80037388; // filename:Event_ItemTriggersClear type:func - Compiler adds suffix to end of nested func names.
Event_Update                                 = 0x800373CC; // type:func
Event_CollideFacingCheck                     = 0x800378D4; // type:func
Event_CollideObbFacingCheck                  = 0x80037A4C; // type:func
Event_CollideObbCheck                        = 0x80037C5C; // type:func

//------------------------------------------------------------------
//--- PA: 0x013264   VA: 0x80037DC4   subsegment: c, events/npc_main
//------------------------------------------------------------------
Savegame_EnemyStateUpdate                    = 0x80037DC4; // type:func
Chara_DamagedFlagUpdate                      = 0x80037E40;
Game_NpcRoomInitSpawn                        = 0x80037F24; // type:func
func_800382B0.0                              = 0x800382B0; // filename:func_800382B0 type:func - Compiler adds suffix to end of nested func names.
func_800382EC.0                              = 0x800382EC; // filename:func_800382EC type:func - Compiler adds suffix to end of nested func names.
Game_NpcUpdate                               = 0x80038354;
Math_Distance2dCheck                         = 0x80038A6C; // type:func
Camera_Distance2dGet                         = 0x80038B44; // type:func

//-------------------------------------------------------------------------
//--- PA: 0x014074   VA: 0x80038BD4   subsegment: c, events/game_sys_states
//-------------------------------------------------------------------------
GameState_InGame_Update                      = 0x80038BD4; // type:func
SysState_Gameplay_Update                     = 0x80038F6C; // type:func
SysState_GamePaused_Update                   = 0x800391E8; // type:func
SysState_OptionsMenu_Update                  = 0x80039344; // type:func
SysState_StatusMenu_Update                   = 0x80039568; // type:func
GameState_LoadStatusScreen_Update            = 0x800395C0; // type:func
SysState_MapScreen_Update                    = 0x800396D4; // type:func
GameState_LoadMapScreen_Update               = 0x8003991C; // type:func
SysState_Fmv_Update                          = 0x80039A58; // type:func
SysState_LoadArea_Update                     = 0x80039C40; // type:func
AreaLoad_UpdatePlayerPosition                = 0x80039F30; // type:func
AreaLoad_TransitionSound                     = 0x80039F54; // type:func
SysState_ReadMessage_Update                  = 0x80039FB8; // type:func
SysWork_SavegameUpdatePlayer                 = 0x8003A120; // type:func
SysWork_SavegameReadPlayer                   = 0x8003A1F4; // type:func
SysState_SaveMenu_Update                     = 0x8003A230; // type:func
SysState_EventCallback_Update                = 0x8003A3C8; // type:func
SysState_EventSetFlag_Update                 = 0x8003A460; // type:func
SysState_EventPlaySound_Update               = 0x8003A4B4; // type:func
SysState_GameOver_Update                     = 0x8003A52C; // type:func
GameState_MapEvent_Update                    = 0x8003AA4C; // type:func

//---------------------------------------------------------------
//--- PA: 0x015FC8   VA: 0x8003AB28   subsegment: c, events/title
//---------------------------------------------------------------
GameState_MainMenu_Update                    = 0x8003AB28; // type:func
MainMenu_SelectedOptionIdxReset              = 0x8003B550; // type:func
MainMenu_MainTextDraw                        = 0x8003B568; // type:func
MainMenu_DifficultyTextDraw                  = 0x8003B678; // type:func
MainMenu_BackgroundDraw                      = 0x8003B758; // type:func
MainMenu_FogPacketGet                        = 0x8003B838; // type:func
MainMenu_FogDraw                             = 0x8003BA08; // type:func
MainMenu_FogRandomize                        = 0x8003BAC4; // type:func
MainMenu_FogScatter                          = 0x8003BBF4; // type:func
MainMenu_FogUpdate                           = 0x8003BC8C; // type:func

//----------------------------------------------------------------------
//--- PA: 0x0171CC   VA: 0x8003BD2C   subsegment: c, events/map_type_get
//----------------------------------------------------------------------
Map_TypeGet                                  = 0x8003BD2C; // type:func

//--------------------------------------------------------------------------------
//--- PA: 0x0171E8   VA: 0x8003BD48   subsegment: c, events/collision_flags_update
//--------------------------------------------------------------------------------
Collision_FlagsLocationUpdate                = 0x8003BD48;
Collision_FlagsUpdate                        = 0x8003BE28;

//-----------------------------------------------------------------
//--- PA: 0x0172F0   VA: 0x8003BE50   subsegment: c, gfx/world_draw
//-----------------------------------------------------------------
WorldGfx_CharaModelBonesGet                  = 0x8003BE50; // type:func
GameFs_BgEtcGfxLoad                          = 0x8003BE6C; // type:func
GameFs_BgItemLoad                            = 0x8003BE9C; // type:func
func_8003BED0                                = 0x8003BED0;
Map_SpeedZoneTypeGet                         = 0x8003BF60; // type:func
WorldGfx_MapInit                             = 0x8003C048;
Item_HeldItemModelFree                       = 0x8003C0C0; // type:func
CharaModel_AllModelsFree                     = 0x8003C110; // type:func
CharaModel_Free                              = 0x8003C1AC; // type:func
Ipd_PlayerChunkInit                          = 0x8003C220; // type:func
Ipd_ActiveMapChunksClear0                    = 0x8003C2EC; // type:func
Map_WorldClear                               = 0x8003C30C; // type:func
WorldGfx_IpdSamplePointStore                 = 0x8003C368; // type:func
WorldGfx_IpdSamplePointReset                 = 0x8003C3A0; // type:func
Ipd_CloseRangeChunksInit                     = 0x8003C3AC; // type:func
Ipd_ChunkInitCheck                           = 0x8003C850; // type:func
Gfx_InGameDraw                               = 0x8003C878;
WorldObject_ModelNameSet                     = 0x8003C8F8; // type:func
WorldGfx_ObjectAdd                           = 0x8003C92C; // type:func
Gfx_WorldObjectsClear                        = 0x8003CB3C; // type:func
Gfx_WorldObjectsDraw                         = 0x8003CB44; // type:func
Gfx_WorldObjectDraw                          = 0x8003CBA4; // type:func
func_8003CC7C                                = 0x8003CC7C;
WorldGfx_HeldItemIdGet                       = 0x8003CD5C;
WorldGfx_PlayerPrevHeldItem                  = 0x8003CD6C; // type:func
WorldGfx_PlayerHeldItemSet                   = 0x8003CDA0; // type:func
WorldGfx_HeldItemDraw                        = 0x8003D058; // type:func
WorldGfx_HarryCharaLoad                      = 0x8003D160; // type:func
WorldGfx_MapInitCharaLoad                    = 0x8003D21C; // type:func
WorldGfx_CharaLmBufferAdvance                = 0x8003D354; // type:func
Chara_FsImageCalc                            = 0x8003D3BC; // type:func
WorldGfx_IsCharaModelPresent                 = 0x8003D444; // type:func
WorldGfx_CharaModelTransparentSet            = 0x8003D468;
WorldGfx_CharaModelMaterialSet               = 0x8003D550; // type:func
WorldGfx_CharaLmBufferAssign                 = 0x8003D5B4; // type:func
WorldGfx_CharaFree                           = 0x8003D6A4; // type:func
WorldGfx_CharaLoad                           = 0x8003D6E0; // type:func
WorldGfx_CharaModelLoad                      = 0x8003D7D4; // type:func
WorldGfx_PlayerModelProcessLoad              = 0x8003D938; // type:func
WorldGfx_CharaModelProcessAllLoads           = 0x8003D95C; // type:func
WorldGfx_CharaModelProcessLoad               = 0x8003D9C8; // type:func
WorldGfx_HeldItemAttach                      = 0x8003DD80; // type:func

//-----------------------------------------------------------------------------
//--- PA: 0x019A88   VA: 0x8003E5E8   subsegment: c, gfx/option_brightness_line
//-----------------------------------------------------------------------------
Options_BrightnessMenu_LinesDraw             = 0x8003E5E8;

//------------------------------------------------------------------
//--- PA: 0x019BB0   VA: 0x8003E710   subsegment: c, gfx/map_effects
//------------------------------------------------------------------
GameFs_FlameGfxLoad                          = 0x8003E710; // type:func
Game_SpotlightLoadScreenAttribsFix           = 0x8003EB54; // type:func
Game_FlashlightAttributesFix                 = 0x8003EBA0; // type:func
Gfx_MapEffectsAssign                         = 0x8003EBF4; // type:func
Game_TurnFlashlightOn                        = 0x8003ECBC; // type:func
Game_TurnFlashlightOff                       = 0x8003ECE4; // type:func
Game_FlashlightToggle                        = 0x8003ED08; // type:func
Game_FlashlightIsOn                          = 0x8003ED64; // type:func
Gfx_MapInitMapEffectsUpdate                  = 0x8003ED74; // type:func
Gfx_LoadScreenMapEffectsUpdate               = 0x8003EEDC; // type:func
Gfx_MapEffectsUpdate                         = 0x8003EF10; // type:func
Gfx_MapEffectsStepUpdate                     = 0x8003EF74; // type:func
Gfx_FogParametersSet                         = 0x8003F08C; // type:func
Gfx_FlashlightUpdate                         = 0x8003F170; // type:func
Gfx_ProgressAlphaGet                         = 0x8003F6F0;
Math_WeightedAverageGet                      = 0x8003F7E4; // type:func

//---------------------------------------------------------------------------
//--- PA: 0x01B4A4   VA: 0x80040004   subsegment: c, events/collision_trigger
//---------------------------------------------------------------------------
World_CollisionTriggersSet                   = 0x80040004;
World_NearbyPlayerCollisionTriggersGet       = 0x80040014; // type:func

//---------------------------------------------------------------
//--- PA: 0x01B4EC   VA: 0x8004004C   subsegment: c, view/vc_util
//---------------------------------------------------------------
vcInitCamera                                 = 0x8004004C; // type:func
vcSetCameraUseWarp                           = 0x800400D4; // type:func
vcRetCamMvSmoothF                            = 0x80040190; // type:func
Vc_CameraElevationRateLockSet                = 0x800401A0; // type:func
vcSetEvCamRate                               = 0x800401C0; // type:func Guessed name.
Vc_UpdateLookAtPointSetAlt                   = 0x800401CC;
vcMoveAndSetCamera                           = 0x800401EC; // type:func
vcMakeHeroHeadPos                            = 0x8004047C; // type:func
vcAddOfsToPos                                = 0x80040518; // type:func
vcSetRefPosAndSysRef2CamParam                = 0x800405C4; // type:func
vcSetRefPosAndCamPosAngByPad                 = 0x800406D4; // type:func
Vc_StereoBalanceGet                          = 0x80040A64; // type:func

//------------------------------------------------------------------------
//--- PA: 0x01C014   VA: 0x80040B74   subsegment: c, gfx/bodyprog_80040B74
//------------------------------------------------------------------------
Chara_ModelLoadedCheck                       = 0x80040B74; // type:func
Math_RelativeRotationGet                     = 0x8004122C; // type:func
Map_ChunkLoadStateGet                        = 0x80041ADC; // type:func
IpdHeader_LoadStateGet                       = 0x80041B1C; // type:func
LmHeader_LoadStateGet                        = 0x80041BA0; // type:func
Map_Init                                     = 0x80041C24; // type:func
Lm_Init                                      = 0x80041CB4; // type:func
LmHeader_Init                                = 0x80041CEC; // type:func
Map_ChunkQueueIdxsClear                      = 0x80041D10; // type:func
Ipd_TexturesInit                             = 0x80041D48; // type:func
Map_CollisionDataInit                        = 0x80041E98; // type:func
Map_ChunkPlace                               = 0x80041ED0; // type:func
Ipd_ActiveMapChunksClear                     = 0x80041FF0; // type:func
Ipd_TexturesRefClear                         = 0x8004201C; // type:func
Map_WorldClearReset                          = 0x800420C0; // type:func
Map_GlobalLmFree                             = 0x800420FC; // type:func
Texture_InfoGet                              = 0x80042178;
Ipd_MapFileInfoSet                           = 0x800421D8; // type:func
Ipd_ActiveChunksClear                        = 0x80042300; // type:func
Map_MakeIpdGrid                              = 0x800423F4; // type:func
ConvertHexToS8                               = 0x8004255C; // type:func
Ipd_ActiveChunksCollisionDataGet             = 0x800425D8; // type:func
Ipd_CollisionDataGet                         = 0x800426E4; // type:func
Map_WorldObjectModelLocationGet              = 0x8004287C; // type:func
IpdHeader_IsLoaded                           = 0x80042C04; // type:func
Ipd_ChunkInit                                = 0x80042C3C; // type:func
Map_PaddedDistanceToChunkEdgeGet             = 0x80042DE8; // type:func
Map_DistanceToChunkEdgeGet                   = 0x80042E2C; // type:func
Map_ChunkLoad                                = 0x80042EBC; // type:func
Ipd_ActiveChunksSample                       = 0x800431E4; // type:func
Ipd_DistanceToEdgeCalc                       = 0x80043338; // type:func
Ipd_ChunkMaterialsApply                      = 0x800433B8; // type:func
Map_IpdChunkFileIdxGet                       = 0x80043554; // type:func
Map_IsIpdPresentCheck                        = 0x80043578; // type:func
Ipd_FreeChunkFind                            = 0x800435E4; // type:func
Ipd_LoadStart                                = 0x800436D8; // type:func
Ipd_ChunksLoadedCheck                        = 0x80043740; // type:func
Ipd_NextChunkLoadCheck                       = 0x80043830; // type:func
Ipd_ChunksDraw                               = 0x80043A24;
Ipd_CellPositionMatchCheck                   = 0x80043B34; // type:func
Ipd_IsTextureLoaded                          = 0x80043B70; // type:func
Ipd_HeaderCollisionDataGet                   = 0x80043BA4; // type:func
Ipd_Init                                     = 0x80043BC4; // type:func
Ipd_MaterialsLoad                            = 0x80043C7C; // type:func
Ipd_HalfPageMaterialCountGet                 = 0x80043D00; // type:func
LmFilter_IsFullPage                          = 0x80043D44; // type:func
LmFilter_IsHalfPage                          = 0x80043D64; // type:func
Ipd_HeaderPtrsInit                           = 0x80043DA4; // type:func
Ipd_HeaderModelLinkObjectLists               = 0x80043E50; // type:func
LmHeader_ModelHeaderSearch                   = 0x80043F2C; // type:func
Ipd_HeaderModelBufferLinkObjectLists         = 0x80043F88; // type:func
Ipd_ChunkDraw                                = 0x80044090; // type:func
Gfx_ChunkSubcellVisibleCheck                 = 0x80044420; // type:func

//-----------------------------------------------------------------------------
//--- PA: 0x01FA44   VA: 0x800445A4   subsegment: c, gfx/bodyprog_anim_800445A4
//-----------------------------------------------------------------------------
Anim_BoneInit                                = 0x800445A4; // type:func
Anim_BoneUpdate                              = 0x800446D8; // type:func
Anim_DurationGet                             = 0x800449AC; // type:func
Anim_PlaybackOnce                            = 0x800449F0; // type:func
Anim_PlaybackLoop                            = 0x80044B38; // type:func
Anim_BlendLinear                             = 0x80044CA4; // type:func
Anim_BlendEaseOut                            = 0x80044DF0; // type:func

//-----------------------------------------------------------------------------
//--- PA: 0x0203B4   VA: 0x80044F14   subsegment: c, gfx/bodyprog_bone_80044F14
//-----------------------------------------------------------------------------
Bone_ModelIdxGet                             = 0x80044F6C; // type:func
Skeleton_Init                                = 0x80044FE0; // type:func
Skeleton_BoneModelAssign                     = 0x800451B0; // type:func

//----------------------------------------------------------------
//--- PA: 0x020F1C   VA: 0x80045A7C   subsegment: c, sound/sd_call
//----------------------------------------------------------------
SD_Call                                      = 0x80045A7C; // type:func
Sd_AudioStreamingCheck                       = 0x80045B28; // type:func
SD_BranchCTRL                                = 0x80045BD8; // type:func
Sd_AudioSystemSet                            = 0x80045D28; // type:func
SD_Init                                      = 0x80045DD4; // type:func
sd_work_init                                 = 0x80045E44; // type:func
Sd_AudioStop                                 = 0x80045FF8; // type:func
Sd_PlaySfx                                   = 0x80046048; // type:func
Sd_SfxAttributesUpdate                       = 0x800463C0; // type:func
Sd_LastSfxStop                               = 0x800468EC; // type:func
Sd_SfxStop                                   = 0x8004690C; // type:func
Sd_SfxStopStep                               = 0x8004692C; // type:func
Sd_AllSfxStop                                = 0x800469AC; // type:func
Sd_AllSfxWithRRStop                          = 0x800469E8; // type:func
Sd_StopBgmTaskAdd                            = 0x80046AD8; // type:func
Sd_StopBgm                                   = 0x80046B04; // type:func
Sd_StopBgmStep                               = 0x80046B78; // type:func
Sd_BgmLayerVolumeGet                         = 0x80046BB4; // type:func
Sd_BgmLayerVolumeSet                         = 0x80046C54; // type:func
Sd_XaAudioPlayTaskAdd                        = 0x80046D3C; // type:func
Sd_XaAudioLengthGet                          = 0x80046DCC; // type:func
Sd_XaAudioPlay                               = 0x80046E00; // type:func
Sd_XaPreLoadAudioPreTaskAdd                  = 0x8004729C; // type:func
Sd_XaPreLoadAudioTaskAdd                     = 0x800472BC; // type:func
Sd_XaPreLoadAudio                            = 0x80047308; // type:func
Sd_XaAudioStopTaskAdd                        = 0x8004760C; // type:func
Sd_XaAudioStop                               = 0x80047634; // type:func
Sd_SetVolume                                 = 0x80047798; // type:func
Sd_SetVolBgm                                 = 0x80047808; // type:func
Sd_SetVolXa                                  = 0x80047860; // type:func
Sd_GetVolSe                                  = 0x800478B8; // type:func
Sd_TaskPoolAdd                               = 0x800478DC; // type:func
Sd_TaskPoolUpdate                            = 0x80047A70; // type:func
Sd_SetReverbDepth                            = 0x80047AD0; // type:func
Sd_SetReverbEnable                           = 0x80047AFC; // type:func
Sd_VabLoad_TaskAdd                           = 0x80047B24; // type:func
Sd_VabLoad                                   = 0x80047B80; // type:func
Sd_VabLoad_TypeClear                         = 0x80047D1C; // type:func
Sd_VabLoad_OffSet                            = 0x80047D50; // type:func
Sd_VabLoad_FileLoad                          = 0x80047DB0; // type:func
Sd_VabLoad_OffVagDataSet                     = 0x80047E3C; // type:func
Sd_VabLoad_VagDataMove                       = 0x80047F18; // type:func
Sd_VabLoad_OffVagNextDataSet                 = 0x80048000; // type:func
Sd_VabLoad_NextVagDataMove                   = 0x8004807C; // type:func
Sd_VabLoad_LastVagDataMove                   = 0x800480FC; // type:func
Sd_VabLoad_Finalization                      = 0x800481F8; // type:func
Sd_KdtLoad_TaskAdd                           = 0x80048244; // type:func
Sd_KdtLoad                                   = 0x800482D8; // type:func
Sd_KdtLoad_StopSeq                           = 0x8004839C; // type:func
Sd_KdtLoad_OffSet                            = 0x800483D4; // type:func
Sd_KdtLoad_FileLoad                          = 0x80048424; // type:func
Sd_KdtLoad_LoadCheck                         = 0x80048498; // type:func
Sd_TaskPoolExecute                           = 0x800485D8; // type:func
Sd_CdPrimitiveCmdTry                         = 0x80048954; // type:func

//---------------------------------------------------------------
//--- PA: 0x023ED8   VA: 0x80048A38   subsegment: c, view/vw_main
//---------------------------------------------------------------
vwInitViewInfo                               = 0x80048A38; // type:func
vwGetViewCoord                               = 0x80048A90; // type:func guessed name
vwGetViewPosition                            = 0x80048A9C; // type:func
vwGetViewAngle                               = 0x80048AC4; // type:func
Vw_SetLookAtMatrix                           = 0x80048AF4; // type:func
vwSetCoordRefAndEntou                        = 0x80048BE0; // type:func
vwSetViewInfoDirectMatrix                    = 0x80048CF0; // type:func
vwSetViewInfo                                = 0x80048D48; // type:func
Vw_ClampAngleRange                           = 0x80048DA8; // type:func
Vw_LineSegmentIntersectionCheck              = 0x80048E3C; // type:func

//---------------------------------------------------------------
//--- PA: 0x0243C8   VA: 0x80048F28   subsegment: c, view/vw_calc
//---------------------------------------------------------------
vwRenewalXZVelocityToTargetPos               = 0x80048F28; // type:func
vwLimitOverLimVector                         = 0x8004914C; // type:func
vwDecreaseSideOfVector                       = 0x80049228; // type:func
vwRetNewVelocityToTargetVal                  = 0x80049388; // type:func
vwRetNewAngSpdToTargetAng                    = 0x80049464; // type:func
Vw_ClampedSpeedToTargetGet                   = 0x800494B0; // type:func
Vw_TransformAndProjectPoint                  = 0x80049530; // type:func
vwMatrixToAngleYXZ                           = 0x800495D4; // type:func
Vw_MultiplyAndTransformMatrix                = 0x800496AC; // type:func
vbSetWorldScreenMatrix                       = 0x800497E4; // type:func
vbSetRefView                                 = 0x800498D8; // type:func
Vw_CoordHierarchyMatrixCompute               = 0x80049984; // type:func
Vw_CoordToViewSpaceMatrix                    = 0x80049AF8; // type:func
Vw_CoordToWorldAndViewMatrices               = 0x80049B6C; // type:func
Vw_WorldScreenMatrixAtPositionGet            = 0x80049C2C; // type:func
Vw_AabbVisibleInScreenCheck                  = 0x80049D04; // type:func
Vw_AabbVisibleInFrustumCheck                 = 0x80049F38; // type:func
Vw_ScreenRegionSpanCheck                     = 0x8004A54C;
vwAngleToVector                              = 0x8004A66C; // type:func
vwVectorToAngle                              = 0x8004A714; // type:func
vwOresenHokan                                = 0x8004A7C8; // type:func

//-----------------------------------------------------------------
//--- PA: 0x025D1C   VA: 0x8004A87C   subsegment: c, text/text_draw
//-----------------------------------------------------------------
Gfx_StringSetPosition                        = 0x8004A87C; // type:func
Gfx_Strings2dLayerIdxSet                     = 0x8004A8C0; // type:func
Gfx_StringsReset2dLayerIdx                   = 0x8004A8CC; // type:func
Gfx_StringSetColor                           = 0x8004A8DC; // type:func
Gfx_StringDraw                               = 0x8004A8E8; // type:func
Gfx_MapMsg_CalculateWidths                   = 0x8004ACF4; // type:func
Gfx_MapMsg_StringDraw                        = 0x8004AF18; // type:func
Gfx_MapMsg_DefaultStringInfoSet              = 0x8004B684; // type:func
Gfx_StringDrawInt                            = 0x8004B9F8; // type:func

//-------------------------------------------------------------------------
//--- PA: 0x026FB0   VA: 0x8004BB10   subsegment: c, items/item_screens_cam
//-------------------------------------------------------------------------
ItemScreen_TmdGsFCallInit                    = 0x8004BB10; // type:func
ItemScreen_CamSet                            = 0x8004BB4C; // type:func
GameFs_TmdDataAlloc                          = 0x8004BCBC; // type:func
ItemScreen_ItemRotate                        = 0x8004BCDC; // type:func

//-----------------------------------------------------------------------
//--- PA: 0x027528   VA: 0x8004C088   subsegment: c, items/item_screens_1
//-----------------------------------------------------------------------
Inventory_ExitAnimEquippedItemUpdate         = 0x8004C088; // type:func
Inventory_HyperBlasterUnlockTest             = 0x8004C45C; // type:func
Inventory_HyperBlasterFunctionalTest         = 0x8004C4F8; // type:func
Game_HyperBlasterBeamColorGet                = 0x8004C54C; // type:func

//-----------------------------------------------------------------------
//--- PA: 0x027D7C   VA: 0x8004C8DC   subsegment: c, items/item_screens_2
//-----------------------------------------------------------------------
Game_TimerUpdate                             = 0x8004C8DC; // type:func
GameState_ItemScreens_Update                 = 0x8004C9B0; // type:func
Gfx_Results_Save                             = 0x8004D1A0; // type:func
Inventory_Logic                              = 0x8004D518; // type:func
Inventory_ItemUse                            = 0x8004E6D4; // type:func
Gfx_Inventory_CmdOptionsDraw                 = 0x8004E864; // type:func
Gfx_Inventory_ScrollArrowsDraw               = 0x8004EC7C; // type:func
Player_ItemRemove                            = 0x8004EE94; // type:func
Gfx_Inventory_UnavailableMapText             = 0x8004F57C; // type:func

//-----------------------------------------------------------------------
//--- PA: 0x02AA7C   VA: 0x8004F5DC   subsegment: c, items/item_screens_3
//-----------------------------------------------------------------------
Inventory_DirectionalInputSet                = 0x8004F5DC; // type:func
Gfx_ItemScreens_DrawInit                     = 0x8004F764; // type:func
Gfx_Inventory_2dBackgroundDraw               = 0x8004FBCC; // type:func
Gfx_Inventory_HealthStatusDraw               = 0x80051020; // type:func
Gfx_Inventory_ItemDescriptionDraw            = 0x8005192C; // type:func
Gfx_Primitive2dTextureSet                    = 0x80052088; // type:func
Gfx_Results_ItemsDisplay                     = 0x800521A8; // type:func
Gfx_Results_ItemsPosition                    = 0x8005227C; // type:func
Inventory_PlayerItemScroll                   = 0x800523D8; // type:func
GameFs_UniqueItemModelLoad                   = 0x80053B08; // type:func
GameFs_Tim00TIMLoad                          = 0x80053DA0; // type:func
GameFs_MapItemsModelLoad                     = 0x80053DFC; // type:func
GameFs_MapItemsTextureLoad                   = 0x80054024; // type:func
Gfx_Items_Draw                               = 0x80054200; // type:func
Gfx_Items_DrawInit                           = 0x80054558; // type:func
Inventory_ExitAnimFixes                      = 0x80054634; // type:func
Gfx_PlayerHeldItemAttach                     = 0x800546A8; // type:func
Gfx_Items_Display                            = 0x80054720; // type:func
Gfx_Items_SetAmbientLighting                 = 0x80054928; // type:func
Gfx_PickupItemAnimate                        = 0x80054AD8; // type:func
Inventory_AddSpecialItem                     = 0x80054CAC; // type:func
Items_AmmoReloadCalculation                  = 0x80054FC0; // type:func

//------------------------------------------------------------------------
//--- PA: 0x0304C8   VA: 0x80055028   subsegment: c, gfx/bodyprog_80055028
//------------------------------------------------------------------------
WorldEnv_Init                                = 0x80055028; // type:func
Gfx_2dEffectsDraw                            = 0x800550D0;
WorldEnv_FogParamsSet                        = 0x800553C4; // type:func
WorldEnv_LightPositionGet                    = 0x80055434; // type:func
WorldEnv_LightRotationAndIntensityGet        = 0x8005545C; // type:func
WorldEnv_LightDirectionAndIntensityGet       = 0x80055490; // type:func
WorldEnv_FogDistanceSet                      = 0x80055840; // type:func
Lm_HeaderPtrsInit                            = 0x800560FC; // type:func
ModelHeader_FixOffsets                       = 0x800561A4; // type:func
Lm_TransparentPrimSet                        = 0x80056244;
Lm_MaterialCountGet                          = 0x80056348; // type:func
Lm_MaterialFileIdxApply                      = 0x80056464; // type:func
Lm_MaterialFsImageApply1                     = 0x80056504; // type:func
Lm_MaterialFsImageApply                      = 0x80056558; // type:func
Material_FsImageApply                        = 0x8005660C; // type:func
Lm_MaterialsLoadWithFilter                   = 0x80056774; // type:func
Lm_IsTextureLoaded                           = 0x80056888; // type:func
Lm_MaterialFlagsApply                        = 0x80056954; // type:func
Model_MaterialFlagsApply                     = 0x80056A88; // type:func
Lm_MaterialRefCountDec                       = 0x80056BF8; // type:func
LmHeader_ModelCountGet                       = 0x80056C80; // type:func
Bone_ModelAssign                             = 0x80056C8C; // type:func
Lm_ModelFind                                 = 0x80056CB4; // type:func
StringCopy                                   = 0x80056D64; // type:func
Gfx_FogOverlayQuadDraw                       = 0x80056D8C; // type:func
func_800571D0                                = 0x800571D0; // type:func size:0x58 - Fix for truncated function.
WorldEnv_LightTransform                      = 0x80057228; // type:func
Gfx_MeshDraw                                 = 0x8005801C; // type:func
Texture_Init                                 = 0x8005B1A0; // type:func
Texture_Get                                  = 0x8005B1FC; // type:func
Texture_RefCountReset                        = 0x8005B370; // type:func
Texture_RefClear                             = 0x8005B3A4; // type:func
Material_TimFileNameGet                      = 0x8005B3BC; // type:func
Textures_ActiveTex_CountReset                = 0x8005B46C; // type:func
Textures_ActiveTex_PutTextures               = 0x8005B474; // type:func
Textures_ActiveTex_FindTexture               = 0x8005B4BC; // type:func
Gfx_BillboardDraw                            = 0x8005B62C; // type:func
Gfx_DebugStringPositionSet                   = 0x8005BF0C; // type:func

//-------------------------------------------------------------------------
//--- PA: 0x0373D8   VA: 0x8005BF38   subsegment: c, bodyprog_math_8005BF38
//-------------------------------------------------------------------------
Math_AngleNormalizeSigned                    = 0x8005BF38; // type:func

//---------------------------------------------------------------------------
//--- PA: 0x037C70   VA: 0x8005C7D0   subsegment: c, bodyprog_combat_8005BF38
//---------------------------------------------------------------------------
Chara_NpcIdxGet                              = 0x8005C7D0;
Chara_CollisionShapeOffsetsUpdate            = 0x8005C814; //type:func
Chara_MovementUpdate                         = 0x8005C944; // type:func

//------------------------------------------------------------
//--- PA: 0x038D0C   VA: 0x8005D86C   subsegment: c, sound/sfx
//------------------------------------------------------------
Math_Pow2Neg                                 = 0x8005D86C; // type:func
Math_Pow2NegClamped                          = 0x8005D974; // type:func
Sfx_DistanceAttenuatedVolumeGet              = 0x8005D9B8; // type:func
Sfx_WithFlagsPlay                            = 0x8005DC1C; // type:func
Sfx_WithFlagsAndPitchPlay                    = 0x8005DC3C; // type:func
Sfx_WithPitchPlay                            = 0x8005DD44; // type:func
Sfx_WithFalloffAndPitchPlay                  = 0x8005DE0C; // type:func

//--------------------------------------------------------------------
//--- PA: 0x03957C   VA: 0x8005E0DC   subsegment: c, bodyprog_8005E0DC
//--------------------------------------------------------------------
Map_EffectTexturesLoad                       = 0x8005E0DC; // type:func
func_8005E89C                                = 0x8005E89C;

//------------------------------------------------------------------------------
//--- PA: 0x042350   VA: 0x80066EB0   subsegment: c, bodyprog_mapscreen_80066D90
//------------------------------------------------------------------------------
GameState_PaperMapScreen_Update              = 0x80066EB0; // type:func

//----------------------------------------------------------------------
//--- PA: 0x044C8C   VA: 0x800697EC   subsegment: c, collision/collision
//----------------------------------------------------------------------
Collision_Init                               = 0x800697EC; // type:func
Collision_FlagsGet                           = 0x80069810; // type:func
Collision_FlagsSet                           = 0x80069820; // type:func
Collision_FlagBitsSet                        = 0x8006982C; // type:func
Collision_FlagBitsClear                      = 0x80069844;
Collision_NearbyTriggersGet                  = 0x80069860; // type:func
Ipd_CollisionPtrsInit                        = 0x8006993C; // type:func
Collision_SubcellChecksReset                 = 0x80069994;
Collision_SurfaceGet                         = 0x800699F8; // type:func
Collision_WallDetect                         = 0x80069B24; // type:func
Collision_WallResponse                       = 0x80069BA8; // type:func
Collision_GroundProbeRadial                  = 0x80069DF0; // type:func
Collision_CharaCollisionSetup                = 0x80069FFC; // type:func
Collision_DefaultResultSet                   = 0x8006A178; // type:func
Collision_CollidableCharasGet                = 0x8006A1A4; // type:func
Collision_OffsetCheck                        = 0x8006A3B4; // type:func
Collision_TargetCharaCollidingSlowDown       = 0x8006A940;
Collision_CollStateInit                      = 0x8006AB50; // type:func
Collision_MoveDirectionCalc                  = 0x8006ABC0; // type:func
Collision_CharaCollisionHandle               = 0x8006AD44; // type:func
Collision_SubcellInit                        = 0x8006AEAC;
Collision_SubcellIdxGet                      = 0x8006B004;
Collision_OffsetAlphaGet                     = 0x8006CB90;
Ipd_GroundHeightGet                          = 0x8006CC44; // type:func

//----------------------------------------------------------------
//--- PA: 0x048DAC   VA: 0x8006D90C   subsegment: c, collision/ray
//----------------------------------------------------------------
Ray_TraceQuery                               = 0x8006D90C; // type:func
Ray_CharaTraceQuery                          = 0x8006DA08; // type:func
Ray_MissSet                                  = 0x8006DAE4; // type:func
Ray_LosHitCheck                              = 0x8006DB3C; // type:func
Ray_TraceSetup                               = 0x8006DCE0; // type:func
Ray_TraceRun                                 = 0x8006DEB0; // type:func

//--------------------------------------------------------------------
//--- PA: 0x04A6F0   VA: 0x8006F250   subsegment: c, collision/trigger
//--------------------------------------------------------------------
Collision_CeilingHeightGet                   = 0x8006F620; // type:func
Collision_TriggerOffsetGet                   = 0x8006F8FC;

//----------------------------------------------------------------
//--- PA: 0x04AE3C   VA: 0x8006F99C   subsegment: c, collision/los
//----------------------------------------------------------------
Chara_HeadingAngleGet                        = 0x8006FAFC; // type:func
Los_CharaToTargetHitCheck                    = 0x80070030; // type:func
Los_CharaToCharaTargetCheck                  = 0x80070084; // type:func
Los_NpcToPlayerHitCheck                      = 0x800700F8; // type:func
Los_CharaToCharaDistCheck                    = 0x80070184; // type:func
Los_CharaToCharaFrontHitCheck                = 0x80070208; // type:func
Los_CharaHitCheck                            = 0x8007029C; // type:func

//------------------------------------------------------------------
//--- PA: 0x04B7C0   VA: 0x80070320   subsegment: c, collision/chara
//------------------------------------------------------------------
Collision_CharaCollisionSet                  = 0x80070400; // type:func
Chara_ModelBoneScaleSet                      = 0x800705E4; // type:func

//-----------------------------------------------------------------
//--- PA: 0x04BB84   VA: 0x800706E4   subsegment: c, player_control
//-----------------------------------------------------------------
Player_VariableAnimDurationGet               = 0x800706E4;
Player_CharaTurn_0                           = 0x800711C4; // type:func
Player_CharaTurn_1                           = 0x80071224; // type:func
Player_CharaRotate                           = 0x80071284; // type:func
Player_MovementStateReset                    = 0x800713B4; // type:func
Player_FootstepSfxPlay                       = 0x800713E8; // type:func
Player_Update                                = 0x800717D0; // type:func
Player_AnimUpdate                            = 0x80071968; // type:func
Player_LogicUpdate                           = 0x80071CE8; // type:func
Player_UpperBodyStateUpdate                  = 0x80073FC0; // type:func
Player_UpperBodyUpdate                       = 0x80074254; // type:func
Player_CombatAnimUpdate.0                    = 0x80074350; // filename:Player_CombatAnimUpdate type:func - Compiler adds suffix to end of nested func names.
Player_UpperBodyMainUpdate                   = 0x80075504; // type:func
Player_CombatStateUpdate                     = 0x800771BC; // type:func
Player_StepWallStop_MovementCancel           = 0x80077BB8; // type:func
Player_LowerBodyUpdate                       = 0x80077D00; // type:func
func_8007B924                                = 0x8007B924; // type:func
Player_PositionUpdate                        = 0x8007C0D8;
Player_ReceiveDamage                         = 0x8007C800; // type:func
Player_FlexRotationYReset                    = 0x8007D6E0; // type:func
Player_LowerBodyMoveStateGet                 = 0x8007D6F0; // type:func
Player_CombatUpdate                          = 0x8007D970; // type:func
Game_SavegameResetPlayer                     = 0x8007E530; // type:func
Game_PlayerInfoInit                          = 0x8007E5AC; // type:func
GameFs_PlayerMapAnimLoad                     = 0x8007EB64; // type:func
GameFs_WeaponInfoUpdate                      = 0x8007EBBC; // type:func
Game_PlayerMovementsReset                    = 0x8007F1CC; // type:func
Player_DisableDamage                         = 0x8007F250; // type:func
Player_IsAttacking                           = 0x8007F26C; // type:func
Player_IsBusy                                = 0x8007F2AC; // type:func
Player_AnimGetSomething                      = 0x8007F308; // type:func
Player_Controller                            = 0x8007F32C; // type:func
Math_ShortestAngleGet                        = 0x8007FB34; // type:func
Game_GasWeaponPowerTimerValue                = 0x8007FD3C; // type:func
Player_FootstepSfxGet                        = 0x8007FDE0; // type:func
Math_DistanceGet                             = 0x800802CC; // type:func
Math_Distance2dGet                           = 0x8008037C; // type:func
Input_SelectClickSet                         = 0x80080458; // type:func
Rng_RandQ12                                  = 0x80080514; // type:func
Math_PreservedSignSubtract                   = 0x80080594; // type:func
Collision_Fill                               = 0x8008076C; // type:func
Collision_GroundHeightGet                    = 0x80080884; // type:func
Math_MulFixed                                = 0x800808D4; // type:func
Math_MagnitudeShiftGet                       = 0x800808F8; // type:func

//---------------------------------------------------------------
//--- PA: 0x05BDE0   VA: 0x80080940   subsegment: c, view/vc_main
//---------------------------------------------------------------
vcInitVCSystem                               = 0x80080940; // type:func
vcStartCameraSystem                          = 0x800809DC; // type:func
vcEndCameraSystem                            = 0x80080A04; // type:func - Guessed name.
Vc_LensFlareTypeGet                          = 0x80080A10; // type:func
Vc_LookAtPositionYSet                        = 0x80080A30; // type:func
Vc_LookAtPositionYGet                        = 0x80080A3C; // type:func
vcSetFirstCamWork                            = 0x80080A4C; // type:func
vcWorkSetFlags                               = 0x80080BF8; // type:func - Guessed name.
Vc_LookAtOffsetYMaxSet                       = 0x80080C18; // type:func - An accurate guess might be `vcSetWatchTgtMaxY`.
vcUserWatchTarget                            = 0x80080C2C; // type:func
vcUserCamTarget                              = 0x80080CBC; // type:func
vcChangeProjectionValue                      = 0x80080D5C; // type:func - Guessed name. Exists in SH2, but code is different.
Vc_UpdateLookAtPointSet                      = 0x80080D68;
vcGetNowWatchPos                             = 0x80080D78; // type:func
vcGetNowCamPos                               = 0x80080EA8; // type:func
vcReturnPreAutoCamWork                       = 0x80080ED0; // type:func
vcSetSubjChara                               = 0x80080F14; // type:func
vcExecCamera                                 = 0x80080FBC; // type:func
vcSetAllNpcDeadTimer                         = 0x8008123C; // type:func
vcRetSmoothCamMvF                            = 0x800812CC; // type:func
vcRetCurCamMvType                            = 0x80081428; // type:func
vcRetThroughDoorCamEndF                      = 0x800815F0; // type:func
vcRetFarWatchRate                            = 0x800816B0; // type:func
vcRetSelfViewEffectRate                      = 0x800818D4; // type:func
vcSetFlagsByCamMvType                        = 0x80081A0C; // type:func
vcPreSetDataInVC_WORK                        = 0x80081B6C; // type:func
vcSetTHROUGH_DOOR_CAM_PARAM_in_VC_WORK       = 0x80081CBC; // type:func
vcSetNearestEnemyDataInVC_WORK               = 0x80081D90; // type:func
vcSetNearRoadAryByCharaPos                   = 0x80081FBC; // type:func
vcRetRoadUsePriority                         = 0x8008227C; // type:func
vcSetCurNearRoadInVC_WORK                    = 0x800822B8; // type:func
vcGetBestNewCurNearRoad                      = 0x800826AC; // type:func
vcGetNearestNEAR_ROAD_DATA                   = 0x80082908; // type:func
vcAdvantageDistOfOldCurRoad                  = 0x80082AD0; // type:func
vcAutoRenewalWatchTgtPosAndAngZ              = 0x80082B10; // type:func
vcMakeNormalWatchTgtPos                      = 0x80082C58; // type:func
vcMixSelfViewEffectToWatchTgtPos             = 0x80082DF4; // type:func
vcMakeFarWatchTgtPos                         = 0x800832B4; // type:func
vcSetWatchTgtXzPos                           = 0x800834A8; // type:func
vcSetWatchTgtYParam                          = 0x800835C0; // type:func
vcAdjustWatchYLimitHighWhenFarView           = 0x800835E0; // type:func
vcAutoRenewalCamTgtPos                       = 0x800836E8; // type:func
vcRetMaxTgtMvXzLen                           = 0x8008395C; // type:func
vcMakeIdealCamPosByHeadPos                   = 0x800839CC; // type:func
vcMakeIdealCamPosForFixAngCam                = 0x80083AD8; // type:func
vcMakeIdealCamPosForThroughDoorCam           = 0x80083D28; // type:func
vcMakeIdealCamPosUseVC_ROAD_DATA             = 0x80083F30; // type:func
vcAdjustXzInLimAreaUsingMIN_IN_ROAD_DIST     = 0x80084210; // type:func
vcMakeBasicCamTgtMvVec                       = 0x800842C0; // type:func
vcAdjTgtMvVecYByCurNearRoad                  = 0x800843F4; // type:func
vcCamTgtMvVecIsFlipedFromCharaFront          = 0x800845D0; // type:func
vcFlipFromCamExclusionArea                   = 0x800848AC; // type:func
vcGetUseWatchAndCamMvParam                   = 0x80084A34; // type:func
vcRenewalCamData                             = 0x80084BD8; // type:func
vcRenewalCamMatAng                           = 0x80084D54; // type:func
vcMakeNewBaseCamAng                          = 0x80084ED8; // type:func
vcRenewalBaseCamAngAndAdjustOfsCamAng        = 0x800851B0; // type:func
vcMakeOfsCamTgtAng                           = 0x800852C8; // type:func
vcMakeOfsCam2CharaBottomAndTopAngByBaseMatT  = 0x80085358; // type:func
vcAdjCamOfsAngByCharaInScreen                = 0x80085460; // type:func
vcAdjCamOfsAngByOfsAngSpd                    = 0x8008555C; // type:func
vcMakeCamMatAndCamAngByBaseAngAndOfsAng      = 0x800857EC; // type:func
vcSetDataToVwSystem                          = 0x80085884; // type:func
vcCamMatNoise                                = 0x80085A7C; // type:func
Vc_VectorMagnitudeCalc                       = 0x80085B1C; // type:func - Originally could've be something like `vcGetXZSumDist`.
vcGetXZSumDistFromLimArea                    = 0x80085C80; // type:func

//---------------------------------------------------------------------
//--- PA: 0x061218   VA: 0x80085D78   subsegment: c, events/events_util
//---------------------------------------------------------------------
Event_SysStateStepIncrement                  = 0x80085D78; // type:func
Event_SysStateStepSet                        = 0x80085DC0; // type:func
Event_WaitPlayerStop                         = 0x80085DF0; // type:func
Event_WaitTimer                              = 0x80085E6C; // type:func
Event_CharaAnimCmdExecute                    = 0x80085EB8; // type:func
Event_SysStateBranchOnFlag                   = 0x8008605C; // type:func
Event_DisplayMapMsg                          = 0x800860B0; // type:func
Event_ScreenFadeCmd                          = 0x8008616C; // type:func
Event_BgTextureCmd                           = 0x800862F8; // type:func
Event_InvItemCmd                             = 0x80086470; // type:func
Event_PathWaypointSet                        = 0x800865FC; // type:func
Event_PathWaypointExecutePlayer              = 0x800866D4; // type:func
Event_PathWaypointExecuteChara               = 0x80086728; // type:func
Event_PathWaypointExecuteCharaNoWait         = 0x8008677C; // type:func
Event_PaperMapCmd                            = 0x800867B4; // type:func
Event_TweenReset                             = 0x800868DC; // type:func
Event_TweenLinear                            = 0x800868F4; // type:func
Event_TweenSine                              = 0x8008694C; // type:func
Event_DisplayMapMsgWithAudio                 = 0x800869E4; // type:func
Event_CameraPositionSet                      = 0x80086A94; // type:func
Event_CameraLookAtSet                        = 0x80086B70; // type:func
Event_CharaAnimPlayToEnd                     = 0x80086C58; // type:func
Event_CharaAnimUnlockPlayToEnd               = 0x80086D04; // type:func
Event_BgTextureLoadFadeIn                    = 0x80086DA8; // type:func
Event_BgTextureFadeIn                        = 0x80086E50; // type:func
Event_BgTextureFadeOut                       = 0x80086F44; // type:func
Event_DisplayMapMsgWithSfx                   = 0x80086FE8; // type:func
Event_DisplayBgTexture                       = 0x8008716C; // type:func
Event_DisplayMapMsgWithBg                    = 0x80087360; // type:func
Event_DisplayMapMsgWithDimmedBg              = 0x80087540;
Event_ItemTake                               = 0x800877B8; // type:func
Event_CommonItemTake                         = 0x800879FC; // type:func
Event_PaperMapTake                           = 0x80087AF4; // type:func

//------------------------------------------------------------------------
//--- PA: 0x063348   VA: 0x80087EA8   subsegment: c, bodyprog_bgm_80087EA8
//------------------------------------------------------------------------
Bgm_PlayNewTrack                             = 0x80087EA8; // type:func
Bgm_CrossfadeToTrack                         = 0x80087EDC; // type:func
Bgm_CrossfadeToSilence                       = 0x80088028; // type:func

//--------------------------------------------------------------------
//--- PA: 0x063658   VA: 0x800881B8   subsegment: c, bodyprog_800881B8
//--------------------------------------------------------------------
Gfx_CursorDraw                               = 0x800881B8;
Map_BoxOutlineDraw                           = 0x80088370;

//--------------------------------------------------------------
//--- PA: 0x06411C   VA: 0x80088C7C   subsegment: c, chara_spawn
//--------------------------------------------------------------
Chara_Load                                   = 0x80088C7C; // type:func
Chara_ProcessLoads                           = 0x80088D0C; // type:func
Chara_BonesInit                              = 0x80088D34; // type:func
Chara_Spawn                                  = 0x80088D78; // type:func
Chara_ModelCharaIdClear                      = 0x80088F94; // type:func
Chara_SpawnFlagsSet                          = 0x80088FF4; // type:func
Chara_SpawnPositionSet                       = 0x80089034; // type:func

//---------------------------------------------------------------------------
//--- PA: 0x0654F8   VA: 0x8008A058   subsegment: c, bodyprog_combat_8008A058
//---------------------------------------------------------------------------
Chara_Flag8Clear                             = 0x8008A384; // type:func
Chara_Flag8Set                               = 0x8008A398; // type:func

//------------------------------------------------------
//--- PA: 0x067E40   VA: 0x8008C9A0   subsegment: c, dms
//------------------------------------------------------
Dms_HeaderFixOffsets                         = 0x8008C9A0; // type:func
Dms_EntryFixOffsets                          = 0x8008CA44; // type:func
Dms_SegmentGet                               = 0x8008CA60; // type:func
Dms_CharacterTransformGet                    = 0x8008CA74; // type:func
Dms_CharacterFindIdxByName                   = 0x8008CB10; // type:func
Dms_CharacterTransformGetByIdx               = 0x8008CB90; // type:func
Dms_CharacterKeyframeInterpolate             = 0x8008CC98; // type:func
Dms_FovScaleGet                              = 0x8008CDBC; // type:func
Dms_CameraTargetGet                          = 0x8008CE1C; // type:func
Dms_RotationsCompare                         = 0x8008CF54; // type:func
Dms_CameraKeyframeInterpolate                = 0x8008CFEC; // type:func
Dms_KeyframeInterpGet                        = 0x8008D1D0; // type:func
Dms_SegmentStateGet                          = 0x8008D2C4; // type:func
Dms_KeyframeIdxGet                           = 0x8008D330; // type:func
Dms_AngleLerp                                = 0x8008D3D4; // type:func

//--------------------------------------------------------
//--- PA: 0x0688BC   VA: 0x8008D41C   subsegment: c, water
//--------------------------------------------------------
Map_WaterZoneGet                             = 0x8008E51C; // type:func

//-------------------------------------------------------
//--- PA: 0x06A3C0   VA: 0x8008EF20   subsegment: c, demo
//-------------------------------------------------------
Demo_SequenceAdvance                         = 0x8008EF20; // type:func
Demo_DemoDataRead                            = 0x8008F048; // type:func
Demo_PlayDataRead                            = 0x8008F07C; // type:func
Demo_PlayFileBufferSetup                     = 0x8008F0BC; // type:func
Demo_DemoFileSavegameUpdate                  = 0x8008F13C; // type:func
Demo_GameGlobalsUpdate                       = 0x8008F1A0; // type:func
Demo_GameGlobalsRestore                      = 0x8008F2BC; // type:func
Demo_GameRandSeedUpdate                      = 0x8008F33C; // type:func
Demo_GameRandSeedRestore                     = 0x8008F370; // type:func
Demo_Start                                   = 0x8008F398; // type:func
Demo_Stop                                    = 0x8008F3F0; // type:func
Gfx_ScreenFadeIn_IsInProgress                = 0x8008F434; // type:func
Demo_StateGet                                = 0x8008F470; // type:func
Demo_ExitDemo                                = 0x8008F4E4; // type:func
Demo_DemoRandSeedBackup                      = 0x8008F528; // type:func
Demo_DemoRandSeedRestore                     = 0x8008F560; // type:func
Demo_DemoRandSeedAdvance                     = 0x8008F598; // type:func
Demo_Update                                  = 0x8008F5D8; // type:func
Demo_ControllerDataUpdate                    = 0x8008F7CC; // type:func
Demo_PresentIntervalUpdate                   = 0x8008F87C; // type:func
Demo_GameRandSeedSet                         = 0x8008F8A8; // type:func

//----------------------------------------------------------
//--- PA: 0x06ADEC   VA: 0x8008F94C   subsegment: c, ranking
//----------------------------------------------------------
Results_DisplayInfo                          = 0x80090664; // type:func

//---------------------------------------------------------------
//--- PA: 0x06CC18   VA: 0x80091778   subsegment: c, credits_init
//---------------------------------------------------------------
GameFs_StfRollBinLoad                        = 0x80091778; // type:func

//-------------------------------------------------------------
//--- PA: 0x06CF9C   VA: 0x80091AFC   subsegment: o, libapi/a09
//-------------------------------------------------------------
CloseEvent                                   = 0x80091AFC; // type:func

//-------------------------------------------------------------
//--- PA: 0x06CFAC   VA: 0x80091B0C   subsegment: o, libapi/a11
//-------------------------------------------------------------
TestEvent                                    = 0x80091B0C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06CFBC   VA: 0x80091B1C   subsegment: o, libapi/a39
//-------------------------------------------------------------
SetSp                                        = 0x80091B1C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06CFCC   VA: 0x80091B2C   subsegment: o, libapi/a51
//-------------------------------------------------------------
lseek                                        = 0x80091B2C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06CFDC   VA: 0x80091B3C   subsegment: o, libapi/a53
//-------------------------------------------------------------
write                                        = 0x80091B3C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06CFEC   VA: 0x80091B4C   subsegment: o, libapi/a65
//-------------------------------------------------------------
format                                       = 0x80091B4C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06CFFC   VA: 0x80091B5C   subsegment: o, libapi/a67
//-------------------------------------------------------------
nextfile                                     = 0x80091B5C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D00C   VA: 0x80091B6C   subsegment: o, libapi/a68
//-------------------------------------------------------------
rename                                       = 0x80091B6C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D01C   VA: 0x80091B7C   subsegment: o, libapi/a69
//-------------------------------------------------------------
erase                                        = 0x80091B7C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D02C   VA: 0x80091B8C   subsegment: o, libapi/a81
//-------------------------------------------------------------
Krom2RawAdd                                  = 0x80091B8C; // type:func

//---------------------------------------------------------------
//--- PA: 0x06D03C   VA: 0x80091B9C   subsegment: o, libapi/first
//---------------------------------------------------------------
firstfile                                    = 0x80091B9C; // type:func
_firstfile                                   = 0x80091D38; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D2DC   VA: 0x80091E3C   subsegment: o, libapi/a66
//-------------------------------------------------------------
firstfile2                                   = 0x80091E3C; // type:func

//-----------------------------------------------------------
//--- PA: 0x06D2EC   VA: 0x80091E4C   subsegment: o, libc/a56
//-----------------------------------------------------------
exit                                         = 0x80091E4C; // type:func

//-----------------------------------------------------------
//--- PA: 0x06D2FC   VA: 0x80091E5C   subsegment: o, libc/c24
//-----------------------------------------------------------
strncmp                                      = 0x80091E5C; // type:func

//-----------------------------------------------------------
//--- PA: 0x06D30C   VA: 0x80091E6C   subsegment: o, libc/c25
//-----------------------------------------------------------
strcpy                                       = 0x80091E6C; // type:func

//-----------------------------------------------------------
//--- PA: 0x06D31C   VA: 0x80091E7C   subsegment: o, libc/c26
//-----------------------------------------------------------
strncpy                                      = 0x80091E7C; // type:func

//-----------------------------------------------------------
//--- PA: 0x06D32C   VA: 0x80091E8C   subsegment: o, libc/c27
//-----------------------------------------------------------
strlen                                       = 0x80091E8C; // type:func

//-----------------------------------------------------------
//--- PA: 0x06D33C   VA: 0x80091E9C   subsegment: o, libc/c37
//-----------------------------------------------------------
toupper                                      = 0x80091E9C; // type:func

//--------------------------------------------------------------
//--- PA: 0x06D34C   VA: 0x80091EAC   subsegment: o, libc/memcmp
//--------------------------------------------------------------
memcmp                                       = 0x80091EAC; // type:func

//---------------------------------------------------------------
//--- PA: 0x06D39C   VA: 0x80091EFC   subsegment: o, libcard/c171
//---------------------------------------------------------------
_card_info                                   = 0x80091EFC; // type:func

//---------------------------------------------------------------
//--- PA: 0x06D3AC   VA: 0x80091F0C   subsegment: o, libcard/c172
//---------------------------------------------------------------
_card_load                                   = 0x80091F0C; // type:func

//--------------------------------------------------------------
//--- PA: 0x06D3BC   VA: 0x80091F1C   subsegment: o, libcard/a78
//--------------------------------------------------------------
_card_write                                  = 0x80091F1C; // type:func

//--------------------------------------------------------------
//--- PA: 0x06D3CC   VA: 0x80091F2C   subsegment: o, libcard/a80
//--------------------------------------------------------------
_new_card                                    = 0x80091F2C; // type:func

//---------------------------------------------------------------
//--- PA: 0x06D3DC   VA: 0x80091F3C   subsegment: o, libcard/card
//---------------------------------------------------------------
_card_clear                                  = 0x80091F3C; // type:func

//---------------------------------------------------------------
//--- PA: 0x06D41C   VA: 0x80091F7C   subsegment: o, libcard/init
//---------------------------------------------------------------
InitCARD                                     = 0x80091F7C; // type:func
StartCARD                                    = 0x80091FE8; // type:func
StopCARD                                     = 0x80092020; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D4EC   VA: 0x8009204C   subsegment: o, libapi/pad
//-------------------------------------------------------------
SetInitPadFlag                               = 0x8009204C; // type:func
ReadInitPadFlag                              = 0x80092058; // type:func
PAD_init                                     = 0x80092068; // type:func
InitPAD                                      = 0x800920F8; // type:func
StartPAD                                     = 0x80092188; // type:func
StopPAD                                      = 0x800921B8; // type:func
SetPatchPad                                  = 0x800921F0; // type:func
RemovePatchPad                               = 0x80092268; // type:func
_Pad1                                        = 0x800922A0; // type:func
_IsVSync                                     = 0x80092308; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D7EC   VA: 0x8009234C   subsegment: o, libapi/a18
//-------------------------------------------------------------
InitPAD2                                     = 0x8009234C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D7FC   VA: 0x8009235C   subsegment: o, libapi/a19
//-------------------------------------------------------------
StartPAD2                                    = 0x8009235C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D80C   VA: 0x8009236C   subsegment: o, libapi/a20
//-------------------------------------------------------------
StopPAD2                                     = 0x8009236C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D81C   VA: 0x8009237C   subsegment: o, libapi/a21
//-------------------------------------------------------------
PAD_init2                                    = 0x8009237C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D82C   VA: 0x8009238C   subsegment: o, libapi/l02
//-------------------------------------------------------------
SysEnqIntRP                                  = 0x8009238C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D83C   VA: 0x8009239C   subsegment: o, libapi/l03
//-------------------------------------------------------------
SysDeqIntRP                                  = 0x8009239C; // type:func

//---------------------------------------------------------------
//--- PA: 0x06D84C   VA: 0x800923AC   subsegment: o, libapi/patch
//---------------------------------------------------------------
EnablePAD                                    = 0x800923AC; // type:func
DisablePAD                                   = 0x800923C0; // type:func
_patch_pad                                   = 0x800923D4; // type:func

//-------------------------------------------------------------
//--- PA: 0x06D8EC   VA: 0x8009244C   subsegment: o, libapi/c68
//-------------------------------------------------------------
FlushCache                                   = 0x8009244C; // type:func

//------------------------------------------------------------------
//--- PA: 0x06D8FC   VA: 0x8009245C   subsegment: o, libapi/chclrpad
//------------------------------------------------------------------
_remove_ChgclrPAD                            = 0x8009245C; // type:func

//--------------------------------------------------------------
//--- PA: 0x06D96C   VA: 0x800924CC   subsegment: o, libcard/a74
//--------------------------------------------------------------
InitCARD2                                    = 0x800924CC; // type:func

//--------------------------------------------------------------
//--- PA: 0x06D97C   VA: 0x800924DC   subsegment: o, libcard/a75
//--------------------------------------------------------------
StartCARD2                                   = 0x800924DC; // type:func

//--------------------------------------------------------------
//--- PA: 0x06D98C   VA: 0x800924EC   subsegment: o, libcard/a76
//--------------------------------------------------------------
StopCARD2                                    = 0x800924EC; // type:func

//----------------------------------------------------------------
//--- PA: 0x06D99C   VA: 0x800924FC   subsegment: o, libcard/patch
//----------------------------------------------------------------
_patch_wait_start                            = 0x800924FC; // type:func
_check_dsr                                   = 0x80092528; // type:func
_dsr_start                                   = 0x8009256C; // type:func // Alt name is _check_dsr_end?
_dsr_end                                     = 0x80092580; // type:func // Alt name is _wait_start?
_patch_card                                  = 0x80092594; // type:func
_patch_card2                                 = 0x80092628; // type:func
_copy_memcard_patch                          = 0x80092698; // type:func

//--------------------------------------------------------------
//--- PA: 0x06DB6C   VA: 0x800926CC   subsegment: o, libcard/end
//--------------------------------------------------------------
_ExitCard                                    = 0x800926CC; // type:func
_clr_vector                                  = 0x8009273C; // type:func
_c_vend                                      = 0x80092748; // type:label

//--------------------------------------------------------------
//--- PA: 0x06DBEC   VA: 0x8009274C   subsegment: o, libcd/cdrom
//--------------------------------------------------------------
// TODO: Check in other SDKs for the global this uses.
StSetRing                                    = 0x8009274C; // type:func

//----------------------------------------------------------------
//--- PA: 0x06DC1C   VA: 0x8009277C   subsegment: o, libcd/iso9660
//----------------------------------------------------------------
CdSearchFile                                 = 0x8009277C; // type:func
_cmp                                         = 0x80092A54; // type:func
CD_newmedia                                  = 0x80092A74; // type:func
CD_searchdir                                 = 0x80092D38; // type:func
CD_cachefile                                 = 0x80092DDC; // type:func
cd_read                                      = 0x80093078; // type:func

//----------------------------------------------------------------
//--- PA: 0x06E58C   VA: 0x800930EC   subsegment: o, libcd/cdread2
//----------------------------------------------------------------
CdRead2                                      = 0x800930EC; // type:func
StCdInterrupt2                               = 0x80093170; // type:func

//--------------------------------------------------------------
//--- PA: 0x06E63C   VA: 0x8009319C   subsegment: o, libcd/c_002
//--------------------------------------------------------------
// TODO: Same as cdrom.o, need to check older SDKs.
StClearRing                                  = 0x8009319C; // type:func

//--------------------------------------------------------------
//--- PA: 0x06E69C   VA: 0x800931FC   subsegment: o, libcd/c_003
//--------------------------------------------------------------
// TODO: Same as c_002, check older SDKs.
StUnSetRing                                  = 0x800931FC; // type:func

//--------------------------------------------------------------
//--- PA: 0x06E71C   VA: 0x8009327C   subsegment: o, libcd/c_004
//--------------------------------------------------------------
// TODO: Same as c_002, check older SDKs.
data_ready_callback                          = 0x8009327C; // type:func
StGetBackloc                                 = 0x80093308; // type:func

//--------------------------------------------------------------
//--- PA: 0x06E80C   VA: 0x8009336C   subsegment: o, libcd/c_005
//--------------------------------------------------------------
// TODO: Same as c_002.
StSetStream                                  = 0x8009336C; // type:func

//--------------------------------------------------------------
//--- PA: 0x06E89C   VA: 0x800933FC   subsegment: o, libcd/c_007
//--------------------------------------------------------------
// TODO: Same as c_002.
StFreeRing                                   = 0x800933FC; // type:func

//--------------------------------------------------------------
//--- PA: 0x06E94C   VA: 0x800934AC   subsegment: o, libcd/c_008
//--------------------------------------------------------------
// TODO: Same as c_002.
init_ring_status                             = 0x800934AC; // type:func

//--------------------------------------------------------------
//--- PA: 0x06E98C   VA: 0x800934EC   subsegment: o, libcd/c_009
//--------------------------------------------------------------
// TODO: Same as c_002.
StGetNext                                    = 0x800934EC; // type:func

//--------------------------------------------------------------
//--- PA: 0x06EA4C   VA: 0x800935AC   subsegment: o, libcd/c_010
//--------------------------------------------------------------
// TODO: Same as c_002.
StSetMask                                    = 0x800935AC; // type:func

//--------------------------------------------------------------
//--- PA: 0x06EA6C   VA: 0x800935CC   subsegment: o, libcd/c_011
//--------------------------------------------------------------
// TODO: Same as c_002.
StCdInterrupt                                = 0x800935CC; // type:func
mem2mem                                      = 0x80093EE8; // type:func
dma_execute                                  = 0x80093F14; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F55C   VA: 0x800940BC   subsegment: o, libgpu/ext
//-------------------------------------------------------------
LoadTPage                                    = 0x800940BC; // type:func
LoadClut                                     = 0x800941A4; // type:func
LoadClut2                                    = 0x80094208; // type:func
SetDefDrawEnv                                = 0x8009426C; // type:func
SetDefDispEnv                                = 0x80094320; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F7FC   VA: 0x8009435C   subsegment: o, libgpu/p00
//-------------------------------------------------------------
GetTPage                                     = 0x8009435C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F83C   VA: 0x8009439C   subsegment: o, libgpu/p01
//-------------------------------------------------------------
GetClut                                      = 0x8009439C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F85C   VA: 0x800943BC   subsegment: o, libgpu/p06
//-------------------------------------------------------------
AddPrim                                      = 0x800943BC; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F89C   VA: 0x800943FC   subsegment: o, libgpu/p09
//-------------------------------------------------------------
TermPrim                                     = 0x800943FC; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F8BC   VA: 0x8009441C   subsegment: o, libgpu/p14
//-------------------------------------------------------------
SetPolyG3                                    = 0x8009441C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F8DC   VA: 0x8009443C   subsegment: o, libgpu/p16
//-------------------------------------------------------------
SetPolyF4                                    = 0x8009443C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F8FC   VA: 0x8009445C   subsegment: o, libgpu/p17
//-------------------------------------------------------------
SetPolyFT4                                   = 0x8009445C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F91C   VA: 0x8009447C   subsegment: o, libgpu/p18
//-------------------------------------------------------------
SetPolyG4                                    = 0x8009447C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F93C   VA: 0x8009449C   subsegment: o, libgpu/p26
//-------------------------------------------------------------
SetTile                                      = 0x8009449C; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F95C   VA: 0x800944BC   subsegment: o, libgpu/p33
//-------------------------------------------------------------
SetDrawTPage                                 = 0x800944BC; // type:func

//-------------------------------------------------------------
//--- PA: 0x06F98C   VA: 0x800944EC   subsegment: o, libgpu/p34
//-------------------------------------------------------------
SetDrawMove                                  = 0x800944EC; // type:func

//---------------------------------------------------------------
//--- PA: 0x06F9EC   VA: 0x8009454C   subsegment: o, libgs/2d_sp1
//---------------------------------------------------------------
GsSortFastSprite                             = 0x8009454C; // type:func

//---------------------------------------------------------------
//--- PA: 0x06FB6C   VA: 0x800946CC   subsegment: o, libgs/gs_001
//---------------------------------------------------------------
// TODO: Same as c_002
GsInitGraph                                  = 0x800946CC; // type:func
gpu_init                                     = 0x80094740; // type:func
GsInitGraph2                                 = 0x8009485C; // type:func
valiable_init                                = 0x800948C4; // type:func
GsSortClear                                  = 0x80094AE4; // type:func

//---------------------------------------------------------------
//--- PA: 0x0700BC   VA: 0x80094C1C   subsegment: o, libgs/gs_002
//---------------------------------------------------------------
GsGetActiveBuff                              = 0x80094C1C; // type:func
GsSetDrawBuffOffset                          = 0x80094C2C; // type:func

//---------------------------------------------------------------
//--- PA: 0x0701DC   VA: 0x80094D3C   subsegment: o, libgs/gs_003
//---------------------------------------------------------------
GsSetDrawBuffClip                            = 0x80094D3C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07025C   VA: 0x80094DBC   subsegment: o, libgs/gs_007
//---------------------------------------------------------------
GsInitVcount                                 = 0x80094DBC; // type:func

//-----------------------------------------------------------------
//--- PA: 0x07029C   VA: 0x80094DFC   subsegment: o, libapi/counter
//-----------------------------------------------------------------
SetRCnt                                      = 0x80094DFC; // type:func
GetRCnt                                      = 0x80094E98; // type:func
StartRCnt                                    = 0x80094ED0; // type:func
StopRCnt                                     = 0x80094F00; // type:func
ResetRCnt                                    = 0x80094F34; // type:func

//---------------------------------------------------------------
//--- PA: 0x07040C   VA: 0x80094F6C   subsegment: o, libgs/gs_008
//---------------------------------------------------------------
GsGetVcount                                  = 0x80094F6C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07043C   VA: 0x80094F9C   subsegment: o, libgs/gs_009
//---------------------------------------------------------------
GsClearVcount                                = 0x80094F9C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07046C   VA: 0x80094FCC   subsegment: o, libgs/gs_010
//---------------------------------------------------------------
GsSwapDispBuff                               = 0x80094FCC; // type:func

//---------------------------------------------------------------
//--- PA: 0x07051C   VA: 0x8009507C   subsegment: o, libgs/matrix
//---------------------------------------------------------------
GsInitCoordinate2                            = 0x8009507C; // type:func
GsInitCoord2param                            = 0x800950EC; // type:func
GsSetLsMatrix                                = 0x80095118; // type:func
GsSetLightMatrix                             = 0x80095144; // type:func
GsSetLightMatrix2                            = 0x800951D8; // type:func
GsMulCoord0                                  = 0x80095208; // type:func
GsMulCoord2                                  = 0x80095298; // type:func
GsMulCoord3                                  = 0x80095318; // type:func
print_matrix                                 = 0x80095398; // type:func
print_vector                                 = 0x80095408; // type:func

//---------------------------------------------------------------
//--- PA: 0x0708DC   VA: 0x8009543C   subsegment: o, libgs/gs_104
//---------------------------------------------------------------
// matrix.o globals
// TODO: DSTACK?
GsInit3D                                     = 0x8009543C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07095C   VA: 0x800954BC   subsegment: o, libgs/gs_105
//---------------------------------------------------------------
GsMapModelingData                            = 0x800954BC; // type:func

//---------------------------------------------------------------
//--- PA: 0x0709CC   VA: 0x8009552C   subsegment: o, libgs/gs_106
//---------------------------------------------------------------
GsSetProjection                              = 0x8009552C; // type:func

//---------------------------------------------------------------
//--- PA: 0x0709EC   VA: 0x8009554C   subsegment: o, libgs/gs_107
//---------------------------------------------------------------
GsSetFlatLight                               = 0x8009554C; // type:func
gte_set_lc                                   = 0x80095A04; // type:func
gte_read_lc                                  = 0x80095A68; // type:func

//---------------------------------------------------------------
//--- PA: 0x070F5C   VA: 0x80095ABC   subsegment: o, libgs/gs_108
//---------------------------------------------------------------
GsSetLightMode                               = 0x80095ABC; // type:func

//---------------------------------------------------------------
//--- PA: 0x070FDC   VA: 0x80095B3C   subsegment: o, libgs/gs_110
//---------------------------------------------------------------
GsSetAmbient                                 = 0x80095B3C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07100C   VA: 0x80095B6C   subsegment: o, libgs/gs_111
//---------------------------------------------------------------
GsDrawOt                                     = 0x80095B6C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07103C   VA: 0x80095B9C   subsegment: o, libgs/gs_113
//---------------------------------------------------------------
GsClearOt                                    = 0x80095B9C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07109C   VA: 0x80095BFC   subsegment: o, libgs/gs_114
//---------------------------------------------------------------
GsSortOt                                     = 0x80095BFC; // type:func

//---------------------------------------------------------------
//--- PA: 0x07115C   VA: 0x80095CBC   subsegment: o, libgs/gs_121
//---------------------------------------------------------------
gte_init                                     = 0x80095CBC; // type:func

//---------------------------------------------------------------
//--- PA: 0x0711AC   VA: 0x80095D0C   subsegment: o, libgs/gs_123
//---------------------------------------------------------------
Gssub_make_matrix                            = 0x80095D0C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07127C   VA: 0x80095DDC   subsegment: o, libgs/gs_127
//---------------------------------------------------------------
GsDefDispBuff2                               = 0x80095DDC; // type:func

//-------------------------------------------------------------
//--- PA: 0x0712FC   VA: 0x80095E5C   subsegment: o, libgs/objt
//-------------------------------------------------------------
GsLinkObject4                                = 0x80095E5C; // type:func

//--------------------------------------------------------------
//--- PA: 0x07148C   VA: 0x80095FEC   subsegment: o, libgs/objt3
//--------------------------------------------------------------
GsSortObject4J                               = 0x80095FEC; // type:func

//--------------------------------------------------------------------------
//--- PA: 0x071D1C   VA: 0x8009687C   subsegment: asm, lib_unk2/lib_8009687C
//--------------------------------------------------------------------------
// Custom Konami rotation matrix library?
// TODO: identify the other RotMatrix funcs here
Math_Sin                                     = 0x8009687C; // type:func
Math_Cos                                     = 0x8009689C; // type:func
Math_RotMatrixZ                              = 0x800968BC; // type:func
Math_RotMatrixXyz                            = 0x80096A5C; // type:func
Math_RotMatrix0                              = 0x80096AA4; // type:func
Math_RotMatrix1                              = 0x80096BA0; // type:func
Math_RotMatrixZxy                            = 0x80096C4C; // type:func
Math_RotMatrixZxyNeg                         = 0x80096C94; // type:func
Math_RotMatrixXyxGte                         = 0x80096CE8; // type:func
Math_RotMatrixGte                            = 0x80096D2C; // type:func
Math_RotMatrixZxyNegGte                      = 0x80096E78; // type:func

//---------------------------------------------------------------
//--- PA: 0x072368   VA: 0x80096EC8   subsegment: o, libgte/msc00
//---------------------------------------------------------------
__ps_libinfo__libgte__                       = 0x80096EC8;
InitGeom                                     = 0x80096ED0; // type:func

//---------------------------------------------------------------
//--- PA: 0x0723F8   VA: 0x80096F58   subsegment: o, libgte/msc01
//---------------------------------------------------------------
SquareRoot0                                  = 0x80096F58; // type:func
Rshift                                       = 0x80096FA0; // type:label
CNTSQ                                        = 0x80096FAC; // type:label
RTNSQRT                                      = 0x80096FD4; // type:label

//---------------------------------------------------------------
//--- PA: 0x072488   VA: 0x80096FE8   subsegment: o, libgte/msc02
//---------------------------------------------------------------
InvSquareRoot                                = 0x80096FE8; // type:func
VectorNormalS                                = 0x80097074; // type:func
VectorNormal                                 = 0x80097088; // type:func
VectorNormalSS                               = 0x800970B8; // type:func
VectorNormalS_entry                          = 0x800970C4; // type:label
VectorNormal_entry                           = 0x800970E8; // type:func
RshiftI_VN                                   = 0x80097148; // type:label
CNTISQ_VN                                    = 0x80097154; // type:label
MatrixNormal                                 = 0x800971A8; // type:func

//---------------------------------------------------------------
//--- PA: 0x072738   VA: 0x80097298   subsegment: o, libgte/msc06
//---------------------------------------------------------------
LoadAverage12                                = 0x80097298; // type:func
LoadAverage0                                 = 0x800972E8; // type:func
LoadAverageShort12                           = 0x80097338; // type:func
LoadAverageShort0                            = 0x800973C0; // type:func
LoadAverageByte                              = 0x80097448; // type:func
LoadAverageCol                               = 0x800974A8; // type:func

//---------------------------------------------------------------
//--- PA: 0x0729C8   VA: 0x80097528   subsegment: o, libgte/msc09
//---------------------------------------------------------------
SquareRoot12                                 = 0x80097528; // type:func
Rshift12                                     = 0x80097570; // type:label
CNTSQ12                                      = 0x8009757C; // type:label
Rshift13                                     = 0x800975A8; // type:label
RTNSQRT12                                    = 0x800975B4; // type:label

//-----------------------------------------------------------------
//--- PA: 0x072A68   VA: 0x800975C8   subsegment: o, libgte/mtx_000
//-----------------------------------------------------------------
MulMatrix0                                   = 0x800975C8; // type:func

//-----------------------------------------------------------------
//--- PA: 0x072B78   VA: 0x800976D8   subsegment: o, libgte/mtx_001
//-----------------------------------------------------------------
MulRotMatrix                                 = 0x800976D8; // type:func

//-----------------------------------------------------------------
//--- PA: 0x072C68   VA: 0x800977C8   subsegment: o, libgte/mtx_003
//-----------------------------------------------------------------
CompMatrix                                   = 0x800977C8; // type:func

//-----------------------------------------------------------------
//--- PA: 0x072DC8   VA: 0x80097928   subsegment: o, libgte/mtx_004
//-----------------------------------------------------------------
ApplyMatrixLV                                = 0x80097928; // type:func
APPMTX_01__mtx_004_                          = 0x8009797C; // type:label
APPMTX_02__mtx_004_                          = 0x80097984; // type:label
APPMTX_03__mtx_004_                          = 0x800979A4; // type:label
APPMTX_04__mtx_004_                          = 0x800979AC; // type:label
APPMTX_05__mtx_004_                          = 0x800979CC; // type:label
APPMTX_06__mtx_004_                          = 0x800979D4; // type:label
APPMTX_13__mtx_004_                          = 0x80097A20; // type:label
APPMTX_14__mtx_004_                          = 0x80097A24; // type:label
APPMTX_15__mtx_004_                          = 0x80097A3C; // type:label
APPMTX_16__mtx_004_                          = 0x80097A40; // type:label
APPMTX_17__mtx_004_                          = 0x80097A58; // type:label
APPMTX_18__mtx_004_                          = 0x80097A5C; // type:label

//-----------------------------------------------------------------
//--- PA: 0x072F28   VA: 0x80097A88   subsegment: o, libgte/mtx_005
//-----------------------------------------------------------------
ApplyRotMatrix                               = 0x80097A88; // type:func

//-----------------------------------------------------------------
//--- PA: 0x072F58   VA: 0x80097AB8   subsegment: o, libgte/mtx_006
//-----------------------------------------------------------------
PushMatrix                                   = 0x80097AB8; // type:func
CONTpush                                     = 0x80097AF8; // type:label
PopMatrix                                    = 0x80097B5C; // type:func
CONTpop                                      = 0x80097B98; // type:label

//-----------------------------------------------------------------
//--- PA: 0x0730A8   VA: 0x80097C08   subsegment: o, libgte/mtx_007
//-----------------------------------------------------------------
ReadLightMatrix                              = 0x80097C08; // type:func

//----------------------------------------------------------------
//--- PA: 0x0730F8   VA: 0x80097C58   subsegment: o, libgte/mtx_01
//----------------------------------------------------------------
ApplyRotMatrixLV                             = 0x80097C58; // type:func
APPMTX_01                                    = 0x80097C84; // type:label
APPMTX_02                                    = 0x80097C8C; // type:label
APPMTX_03                                    = 0x80097CAC; // type:label
APPMTX_04                                    = 0x80097CB4; // type:label
APPMTX_05                                    = 0x80097CD4; // type:label
APPMTX_06                                    = 0x80097CDC; // type:label
APPMTX_13                                    = 0x80097D28; // type:label
APPMTX_14                                    = 0x80097D2C; // type:label
APPMTX_15                                    = 0x80097D44; // type:label
APPMTX_16                                    = 0x80097D48; // type:label
APPMTX_17                                    = 0x80097D60; // type:label
APPMTX_18                                    = 0x80097D64; // type:label

//----------------------------------------------------------------
//--- PA: 0x073238   VA: 0x80097D98   subsegment: o, libgte/mtx_02
//----------------------------------------------------------------
SetMulRotMatrix                              = 0x80097D98; // type:func

//----------------------------------------------------------------
//--- PA: 0x073328   VA: 0x80097E88   subsegment: o, libgte/mtx_03
//----------------------------------------------------------------
MulMatrix                                    = 0x80097E88; // type:func

//----------------------------------------------------------------
//--- PA: 0x073438   VA: 0x80097F98   subsegment: o, libgte/mtx_04
//----------------------------------------------------------------
MulMatrix2                                   = 0x80097F98; // type:func

//----------------------------------------------------------------
//--- PA: 0x073548   VA: 0x800980A8   subsegment: o, libgte/mtx_05
//----------------------------------------------------------------
ApplyMatrix                                  = 0x800980A8; // type:func

//----------------------------------------------------------------
//--- PA: 0x073598   VA: 0x800980F8   subsegment: o, libgte/mtx_06
//----------------------------------------------------------------
ApplyMatrixSV                                = 0x800980F8; // type:func

//----------------------------------------------------------------
//--- PA: 0x0735F8   VA: 0x80098158   subsegment: o, libgte/mtx_07
//----------------------------------------------------------------
TransMatrix                                  = 0x80098158; // type:func

//----------------------------------------------------------------
//--- PA: 0x073628   VA: 0x80098188   subsegment: o, libgte/mtx_08
//----------------------------------------------------------------
ScaleMatrix                                  = 0x80098188; // type:func

//----------------------------------------------------------------
//--- PA: 0x073768   VA: 0x800982C8   subsegment: o, libgte/mtx_09
//----------------------------------------------------------------
SetRotMatrix                                 = 0x800982C8; // type:func

//----------------------------------------------------------------
//--- PA: 0x073798   VA: 0x800982F8   subsegment: o, libgte/mtx_10
//----------------------------------------------------------------
SetLightMatrix                               = 0x800982F8; // type:func

//----------------------------------------------------------------
//--- PA: 0x0737C8   VA: 0x80098328   subsegment: o, libgte/mtx_11
//----------------------------------------------------------------
SetColorMatrix                               = 0x80098328; // type:func

//----------------------------------------------------------------
//--- PA: 0x0737F8   VA: 0x80098358   subsegment: o, libgte/mtx_12
//----------------------------------------------------------------
SetTransMatrix                               = 0x80098358; // type:func

//---------------------------------------------------------------
//--- PA: 0x073818   VA: 0x80098378   subsegment: o, libgte/reg08
//---------------------------------------------------------------
ReadGeomOffset                               = 0x80098378; // type:func

//---------------------------------------------------------------
//--- PA: 0x073838   VA: 0x80098398   subsegment: o, libgte/reg09
//---------------------------------------------------------------
ReadGeomScreen                               = 0x80098398; // type:func

//---------------------------------------------------------------
//--- PA: 0x073848   VA: 0x800983A8   subsegment: o, libgte/reg10
//---------------------------------------------------------------
SetBackColor                                 = 0x800983A8; // type:func

//---------------------------------------------------------------
//--- PA: 0x073868   VA: 0x800983C8   subsegment: o, libgte/reg11
//---------------------------------------------------------------
SetFarColor                                  = 0x800983C8; // type:func

//---------------------------------------------------------------
//--- PA: 0x073888   VA: 0x800983E8   subsegment: o, libgte/reg12
//---------------------------------------------------------------
SetGeomOffset                                = 0x800983E8; // type:func

//---------------------------------------------------------------
//--- PA: 0x0738A8   VA: 0x80098408   subsegment: o, libgte/reg13
//---------------------------------------------------------------
SetGeomScreen                                = 0x80098408; // type:func

//-------------------------------------------------------------
//--- PA: 0x0738B8   VA: 0x80098418   subsegment: o, libgte/smp
//-------------------------------------------------------------
LocalLight                                   = 0x80098418; // type:func
DpqColor                                     = 0x8009843C; // type:func
NormalColor                                  = 0x80098458; // type:func
NormalColor3                                 = 0x80098474; // type:func
NormalColorDpq                               = 0x800984B0; // type:func
NormalColorDpq3                              = 0x800984D4; // type:func
NormalColorCol                               = 0x8009851C; // type:func
NormalColorCol3                              = 0x8009853C; // type:func
ColorDpq                                     = 0x80098580; // type:func
ColorCol                                     = 0x800985A8; // type:func
AverageSZ3                                   = 0x800985CC; // type:func
AverageSZ4                                   = 0x800985DC; // type:func

//----------------------------------------------------------------
//--- PA: 0x073A98   VA: 0x800985F8   subsegment: o, libgte/smp_00
//----------------------------------------------------------------
LightColor                                   = 0x800985F8; // type:func
DpqColorLight                                = 0x80098620; // type:func
DpqColor3                                    = 0x80098648; // type:func
Intpl                                        = 0x80098684; // type:func
Square12                                     = 0x800986A8; // type:func
SQREL12                                      = 0x800986B8; // type:label
Square12_cont                                = 0x800986BC; // type:label
Square0                                      = 0x800986D0; // type:func
SQREL0                                       = 0x800986E0; // type:label
Square0_cont                                 = 0x800986E4; // type:label
AverageZ3                                    = 0x800986F8; // type:func
AverageZ4                                    = 0x80098718; // type:func
OuterProduct12                               = 0x8009873C; // type:func
OuterProduct0                                = 0x80098794; // type:func
Lzc                                          = 0x800987EC; // type:func

//----------------------------------------------------------------
//--- PA: 0x073CA8   VA: 0x80098808   subsegment: o, libgte/smp_02
//----------------------------------------------------------------
RotTransPers                                 = 0x80098808; // type:func

//----------------------------------------------------------------
//--- PA: 0x073CD8   VA: 0x80098838   subsegment: o, libgte/smp_03
//----------------------------------------------------------------
RotTransPers3                                = 0x80098838; // type:func

//----------------------------------------------------------------
//--- PA: 0x073D38   VA: 0x80098898   subsegment: o, libgte/smp_04
//----------------------------------------------------------------
RotTrans                                     = 0x80098898; // type:func

//----------------------------------------------------------------
//--- PA: 0x073D68   VA: 0x800988C8   subsegment: o, libgte/cmb_00
//----------------------------------------------------------------
RotTransPers4                                = 0x800988C8; // type:func

//----------------------------------------------------------------
//--- PA: 0x073DE8   VA: 0x80098948   subsegment: o, libgte/fgo_00
//----------------------------------------------------------------
TransposeMatrix                              = 0x80098948; // type:func

//------------------------------------------------------------
//--- PA: 0x073E28   VA: 0x80098988   subsegment: o, libgte/g3
//------------------------------------------------------------
GsTMDfastNG3                                 = 0x80098988; // type:func
NG3_1                                        = 0x800989C4; // type:label
NG3_2                                        = 0x80098AB8; // type:label
NG3_3                                        = 0x80098AC4; // type:label
GsTMDfastG3NL                                = 0x80098AD0; // type:func
G3NL_1                                       = 0x80098B0C; // type:label
G3NL_2                                       = 0x80098BF8; // type:label
G3NL_3                                       = 0x80098C04; // type:label
GsTMDfastG3L                                 = 0x80098C10; // type:func
G3L_1                                        = 0x80098C28; // type:label
G3L_1L                                       = 0x80098C34; // type:label
G3L_2                                        = 0x80098D84; // type:label
G3L_3                                        = 0x80098D94; // type:label
GsTMDfastG3LFG                               = 0x80098DA0; // type:func
G3LFG_1                                      = 0x80098DB8; // type:label
G3LFG_1L                                     = 0x80098DC4; // type:label
G3LFG_2                                      = 0x80098F14; // type:label
G3LFG_3                                      = 0x80098F24; // type:label

//------------------------------------------------------------
//--- PA: 0x0743D8   VA: 0x80098F38   subsegment: o, libgte/g4
//------------------------------------------------------------
GsTMDfastNG4                                 = 0x80098F38; // type:func
NG4_1                                        = 0x80098F74; // type:label
NG4_2                                        = 0x800990A0; // type:label
NG4_3                                        = 0x800990AC; // type:label
GsTMDfastG4NL                                = 0x800990B8; // type:func
G4NL_1                                       = 0x800990F4; // type:label
G4NL_2                                       = 0x80099214; // type:label
G4NL_3                                       = 0x80099220; // type:label
GsTMDfastG4L                                 = 0x8009922C; // type:func
G4L_1                                        = 0x80099244; // type:label
G4L_1L                                       = 0x80099250; // type:label
G4L_2L                                       = 0x800993DC; // type:label
G4L_2                                        = 0x800993F0; // type:label
G4L_3                                        = 0x80099400; // type:label
GsTMDfastG4LFG                               = 0x8009940C; // type:func
G4LFG_1                                      = 0x80099424; // type:label
G4LFG_1L                                     = 0x80099430; // type:label
G4LFG_2                                      = 0x800995D0; // type:label
G4LFG_3                                      = 0x800995E0; // type:label

//-------------------------------------------------------------
//--- PA: 0x074A98   VA: 0x800995F8   subsegment: o, libgte/gt3
//-------------------------------------------------------------
GsTMDfastTNG3                                = 0x800995F8; // type:func
TNG3_1                                       = 0x80099634; // type:label
TNG3_2                                       = 0x80099758; // type:label
TNG3_3                                       = 0x80099764; // type:label
GsTMDfastTG3NL                               = 0x80099770; // type:func
TG3NL_1                                      = 0x800997AC; // type:label
TG3NL_2                                      = 0x800998B4; // type:label
TG3NL_3                                      = 0x800998C0; // type:label
GsTMDfastTG3L                                = 0x800998CC; // type:func
TG3L_1                                       = 0x800998E4; // type:label
TG3L_1L                                      = 0x800998F0; // type:label
TG3L_2                                       = 0x80099A64; // type:label
TG3L_3                                       = 0x80099A74; // type:label
GsTMDfastTG3LFG                              = 0x80099A80; // type:func
TG3LFG_1                                     = 0x80099A98; // type:label
TG3LFG_1L                                    = 0x80099AA4; // type:label
TG3LFG_2                                     = 0x80099C18; // type:label
TG3LFG_3                                     = 0x80099C28; // type:label

//-------------------------------------------------------------
//--- PA: 0x0750D8   VA: 0x80099C38   subsegment: o, libgte/gt4
//-------------------------------------------------------------
GsTMDfastTNG4                                = 0x80099C38; // type:func
TNG4_1                                       = 0x80099C74; // type:label
TNG4_2                                       = 0x80099DDC; // type:label
TNG4_3                                       = 0x80099DE8; // type:label
GsTMDfastTG4NL                               = 0x80099DF4; // type:func
TG4NL_1                                      = 0x80099E30; // type:label
TG4NL_2                                      = 0x80099F74; // type:label
TG4NL_3                                      = 0x80099F80; // type:label
GsTMDfastTG4L                                = 0x80099F8C; // type:func
TG4L_1                                       = 0x80099FA4; // type:label
TG4L_1L                                      = 0x80099FB0; // type:label
TG4L_2L                                      = 0x8009A164; // type:label
TG4L_2                                       = 0x8009A17C; // type:label
TG4L_3                                       = 0x8009A18C; // type:label
GsTMDfastTG4LFG                              = 0x8009A198; // type:func
TG4LFG_1                                     = 0x8009A1B0; // type:label
TG4LFG_1L                                    = 0x8009A1BC; // type:label
TG4LFG_2                                     = 0x8009A388; // type:label
TG4LFG_3                                     = 0x8009A398; // type:label

//---------------------------------------------------------------
//--- PA: 0x075848   VA: 0x8009A3A8   subsegment: o, libgte/ratan
//---------------------------------------------------------------
ratan2                                       = 0x8009A3A8; // type:func

//------------------------------------------------------------------
//--- PA: 0x0759C8   VA: 0x8009A528   subsegment: o, libgte/patchgte
//------------------------------------------------------------------
_patch_gte                                   = 0x8009A528; // type:func
oldbug                                       = 0x8009A5D4; // type:func
newnonbug                                    = 0x8009A5EC; // type:label
newnonbug_end                                = 0x8009A604; // type:label

//------------------------------------------------------------------
//--- PA: 0x075AA8   VA: 0x8009A608   subsegment: o, libpad/padentry
//------------------------------------------------------------------
PadChkVsync                                  = 0x8009A608; // type:func
PadStartCom                                  = 0x8009A628; // type:func
PadStopCom                                   = 0x8009A648; // type:func
PadChkMtap                                   = 0x8009A668; // type:func
PadGetState                                  = 0x8009A6B4; // type:func
PadInfoMode                                  = 0x8009A774; // type:func
PadInfoAct                                   = 0x8009A86C; // type:func
PadInfoComb                                  = 0x8009A940; // type:func
PadSetActAlign                               = 0x8009A9E8; // type:func
PadSetMainMode                               = 0x8009AA20; // type:func
PadSetAct                                    = 0x8009AA68; // type:func

//-----------------------------------------------------------------
//--- PA: 0x075F58   VA: 0x8009AAB8   subsegment: o, libpad/padmain
//-----------------------------------------------------------------
PadEnableCom                                 = 0x8009AAB8; // type:func
_padSetVsyncParam                            = 0x8009ABD0; // type:func
isVsync                                      = 0x8009ABFC; // type:func
intPad                                       = 0x8009AC64; // type:func
_padChkVsync                                 = 0x8009ADD0; // type:func
_padStartCom                                 = 0x8009ADE4; // type:func
_padStopCom                                  = 0x8009AEB0; // type:func
_padInitSioMode                              = 0x8009AEF4; // type:func
execIntState                                 = 0x8009B228; // type:func
_padSioRW                                    = 0x8009B2F0; // type:func
_padSioRW2                                   = 0x8009B4C8; // type:func
_padClrIntSio0                               = 0x8009B700; // type:func
_padWaitRXready                              = 0x8009B790; // type:func

//----------------------------------------------------------------
//--- PA: 0x076C58   VA: 0x8009B7B8   subsegment: o, libpad/padcmd
//----------------------------------------------------------------
_padSetAct                                   = 0x8009B7B8; // type:func
_padSetCmd                                   = 0x8009B7C4; // type:func
_padSendAtLoadInfo                           = 0x8009B7D4; // type:func
_padRecvAtLoadInfo                           = 0x8009B858; // type:func
_padGetActSize                               = 0x8009B9A4; // type:func
_padLoadActInfo                              = 0x8009B9DC; // type:func
sendAtLoadAct                                = 0x8009BAB0; // type:func
recvAtLoadAct                                = 0x8009BB58; // type:func
_padSetActAlign                              = 0x8009BDCC; // type:func
sendAtActAlign                               = 0x8009BE34; // type:func
recvAtActAlign                               = 0x8009BE50; // type:func
_padSetMainMode                              = 0x8009BF18; // type:func
sendAtMainMode                               = 0x8009BFB0; // type:func
recvAtMainMode                               = 0x8009C004; // type:func
_padCmdParaMode                              = 0x8009C064; // type:func
cmdPadInfo                                   = 0x8009C084; // type:func
cmdGetType                                   = 0x8009C098; // type:func
cmdActInfo                                   = 0x8009C0B8; // type:func
cmdCombList                                  = 0x8009C0D8; // type:func
cmdNext                                      = 0x8009C0F8; // type:func

//---------------------------------------------------------------
//--- PA: 0x0775B8   VA: 0x8009C118   subsegment: o, libpad/padif
//---------------------------------------------------------------
intFuncReqa                                  = 0x8009C118; // type:func
intFuncCmd                                   = 0x8009C160; // type:func
intFuncSize                                  = 0x8009C238; // type:func
intFuncAck                                   = 0x8009C2F8; // type:func
intFuncData                                  = 0x8009C384; // type:func

//------------------------------------------------------------------
//--- PA: 0x077BA8   VA: 0x8009C708   subsegment: o, libpad/padportd
//------------------------------------------------------------------
PadInitDirect                                = 0x8009C708; // type:func
clrInfo                                      = 0x8009C868; // type:func
nextPort                                     = 0x8009C8D0; // type:func
dirClrCmdNo                                  = 0x8009C9C4; // type:func
getTxByte                                    = 0x8009C9D4; // type:func
chkCurrLimit                                 = 0x8009CA90; // type:func
ptr2Port                                     = 0x8009CD0C; // type:func
port2PadInfo                                 = 0x8009CD44; // type:func

//-----------------------------------------------------------------
//--- PA: 0x078208   VA: 0x8009CD68   subsegment: o, libpad/padseqd
//-----------------------------------------------------------------
_padInitDirSeq                               = 0x8009CD68; // type:func
dirSendAuto                                  = 0x8009CD9C; // type:func
dirRecvAuto                                  = 0x8009CE9C; // type:func
_dirFailAuto                                 = 0x8009D0EC; // type:func
dirChkEngCmd                                 = 0x8009D1C8; // type:func

//-----------------------------------------------------------------
//--- PA: 0x078698   VA: 0x8009D1F8   subsegment: o, libpad/waitrc2
//-----------------------------------------------------------------
setRC2wait                                   = 0x8009D1F8; // type:func
chkRC2wait                                   = 0x8009D218; // type:func

//----------------------------------------------------------------
//--- PA: 0x078758   VA: 0x8009D2B8   subsegment: o, libspu/s_crwa
//----------------------------------------------------------------
SpuClearReverbWorkArea                       = 0x8009D2B8; // type:func

//-------------------------------------------------------------
//--- PA: 0x0788F8   VA: 0x8009D458   subsegment: o, libapi/a10
//-------------------------------------------------------------
WaitEvent                                    = 0x8009D458; // type:func

//------------------------------------------------------------------
//--- PA: 0x078908   VA: 0x8009D468   subsegment: o, libspu/s_m_util
//------------------------------------------------------------------
_SpuIsInAllocateArea                         = 0x8009D468; // type:func
_SpuIsInAllocateArea_                        = 0x8009D4E8; // type:func

//---------------------------------------------------------------
//--- PA: 0x078A18   VA: 0x8009D578   subsegment: o, libspu/s_stm
//---------------------------------------------------------------
SpuSetTransferMode                           = 0x8009D578; // type:func

//---------------------------------------------------------------
//--- PA: 0x078A48   VA: 0x8009D5A8   subsegment: o, libspu/s_sva
//---------------------------------------------------------------
SpuSetVoiceAttr                              = 0x8009D5A8; // type:func

//---------------------------------------------------------------
//--- PA: 0x079048   VA: 0x8009DBA8   subsegment: o, libspu/s_n2p
//---------------------------------------------------------------
_spu_note2pitch                              = 0x8009DBA8; // type:func
_spu_pitch2note                              = 0x8009DC78; // type:func

//---------------------------------------------------------------
//--- PA: 0x079248   VA: 0x8009DDA8   subsegment: o, libspu/s_gva
//---------------------------------------------------------------
SpuGetVoiceAttr                              = 0x8009DDA8; // type:func

//----------------------------------------------------------------
//--- PA: 0x07A244   VA: 0x8009EDA4   subsegment: c, libsd/smf_snd
//----------------------------------------------------------------
// Konami libsd sound library (customised libsnd?)
tone_adsr_mem                                = 0x8009EDA4; // type:func
tone_adsr_back                               = 0x8009EE30; // type:func
sd_alloc_sort                                = 0x8009EEBC; // type:func
SdSpuMalloc                                  = 0x8009EFA0; // type:func
SdSpuMallocWithStartAddr                     = 0x8009F120; // type:func
SdSpuFree                                    = 0x8009F364; // type:func
SdWorkInit                                   = 0x8009F400; // type:func
SdInit                                       = 0x8009F490; // type:func
SdStart                                      = 0x8009F4D0; // type:func
SdStart2                                     = 0x8009F510; // type:func
SdSetTickMode                                = 0x8009F530; // type:func
SdSeqCalledTbyT                              = 0x8009F53C; // type:func
SdSetStereo                                  = 0x8009F568; // type:func
SdSetMono                                    = 0x8009F574; // type:func
SdSetReservedVoice                           = 0x8009F584; // type:func
SdSetTableSize                               = 0x8009F5B8; // type:func
SdEnd                                        = 0x8009F5C0; // type:func
SdQuit                                       = 0x8009F64C; // type:func
SdSetSerialAttr                              = 0x8009F67C; // type:func
SdSetSerialVol                               = 0x8009F700; // type:func
SdSetMVol                                    = 0x8009F75C; // type:func
SdVabOpenHead                                = 0x8009F79C; // type:func
SdVabOpenHeadSticky                          = 0x8009F91C; // type:func
SdVabFakeHead                                = 0x8009FAC0; // type:func
SdVbOpenOne                                  = 0x8009FBA8; // type:func
SdVabTransBody                               = 0x8009FD38; // type:func
SdVabTransBodyPartly                         = 0x8009FDDC; // type:func
SdVabTransCompleted                          = 0x8009FEC4; // type:func
SdVabClose                                   = 0x8009FF00; // type:func
SdSetAutoKeyOffMode                          = 0x8009FF64; // type:func
SdAutoKeyOffCheck                            = 0x8009FF70; // type:func
SdSeqOpen                                    = 0x800A00A4; // type:func
SdSeqOpenWithAccNum                          = 0x800A0154; // type:func
SdSeqPlay                                    = 0x800A0210; // type:func
SdSeqStop                                    = 0x800A02D8; // type:func
SdSeqClose                                   = 0x800A037C; // type:func
SdSeqPause                                   = 0x800A0418; // type:func
SdSeqReplay                                  = 0x800A0534; // type:func
SdSeqSetVol                                  = 0x800A06F0; // type:func
SdSeqGetVol                                  = 0x800A074C; // type:func
SdUtFlush                                    = 0x800A0794; // type:func
SdUtReverbOn                                 = 0x800A07B4; // type:func
SdUtReverbOff                                = 0x800A07DC; // type:func
SdUtSetReverbType                            = 0x800A080C; // type:func
SdUtSetReverbDepth                           = 0x800A085C; // type:func
SdSetRVol                                    = 0x800A089C; // type:func
SdUtSEAllKeyOff                              = 0x800A08DC; // type:func
SdUtAllKeyOff                                = 0x800A09E8; // type:func
SdUtGetVabHdr                                = 0x800A0A40; // type:func
SdVoKeyOn                                    = 0x800A0AA0; // type:func
SdVoKeyOff                                   = 0x800A0CFC; // type:func
SdVoKeyOffWithRROff                          = 0x800A0E40; // type:func
SdUtKeyOnV                                   = 0x800A0F80; // type:func
SdUtKeyOn                                    = 0x800A1534; // type:func
SdVbKeyOn                                    = 0x800A16C0; // type:func
SdUtKeyOffV                                  = 0x800A18F4; // type:func
SdUtKeyOffVWithRROff                         = 0x800A1A18; // type:func
SdGetSeqStatus                               = 0x800A1B14; // type:func
SdUtSetDetVVol                               = 0x800A1BD0; // type:func
SdUtSetVVol                                  = 0x800A1C1C; // type:func
SdUtGetDetVVol                               = 0x800A1C78; // type:func
SdUtGetVVol                                  = 0x800A1CE8; // type:func
SdGetTempo                                   = 0x800A1D68; // type:func
SdSetTempo                                   = 0x800A1DA4; // type:func
SdSetSeqWide                                 = 0x800A1E18; // type:func
SdGetMidiVol                                 = 0x800A1E50; // type:func
SdSetMidiVol                                 = 0x800A1E90; // type:func
SdSetMidiExpress                             = 0x800A1EC4; // type:func
SdGetMidiExpress                             = 0x800A1EF8; // type:func
SdGetMidiPan                                 = 0x800A1F38; // type:func
SdSetMidiPan                                 = 0x800A1F78; // type:func
SdGetMidiPitchBendFine                       = 0x800A1FAC; // type:func
SdSetMidiPitchBendFine                       = 0x800A1FEC; // type:func
SdGetTrackTranspause                         = 0x800A2030; // type:func
SdSetTrackTranspause                         = 0x800A2038; // type:func
SdGetTrackMute                               = 0x800A2040; // type:func
SdSetTrackMute                               = 0x800A2090; // type:func
SdGetSeqControlStatus                        = 0x800A20EC; // type:func
SdGetSeqPlayStatus                           = 0x800A2134; // type:func
SdGetSeqBeat                                 = 0x800A21E0; // type:func
SdGetSeqBeat2                                = 0x800A224C; // type:func
// Custom Konami versions of these libsnd funcs. Just redirects to SD versions, maybe to aid with ports.
SsSetMVol                                    = 0x800A2294; // type:func
SsEnd                                        = 0x800A22C0; // type:func
SsSetSerialAttr                              = 0x800A22E0; // type:func
SsSetSerialVol                               = 0x800A2308; // type:func
SsUtAllKeyOff                                = 0x800A2338; // type:func

//-------------------------------------------------------------
//--- PA: 0x07D7FC   VA: 0x800A235C   subsegment: o, libspu/s_q
//-------------------------------------------------------------
SpuQuit                                      = 0x800A235C; // type:func

//-------------------------------------------------------------
//--- PA: 0x07D87C   VA: 0x800A23DC   subsegment: o, libapi/a13
//-------------------------------------------------------------
DisableEvent                                 = 0x800A23DC; // type:func

//------------------------------------------------------------------
//--- PA: 0x07D88C   VA: 0x800A23EC   subsegment: o, libspu/s_m_init
//------------------------------------------------------------------
SpuInitMalloc                                = 0x800A23EC; // type:func

//--------------------------------------------------------------
//--- PA: 0x07D8EC   VA: 0x800A244C   subsegment: o, libspu/s_sr
//--------------------------------------------------------------
SpuSetReverb                                 = 0x800A244C; // type:func

//----------------------------------------------------------------
//--- PA: 0x07D9BC   VA: 0x800A251C   subsegment: o, libspu/s_srmp
//----------------------------------------------------------------
SpuSetReverbModeParam                        = 0x800A251C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07DE9C   VA: 0x800A29FC   subsegment: o, libspu/s_sra
//---------------------------------------------------------------
_spu_setReverbAttr                           = 0x800A29FC; // type:func

//----------------------------------------------------------------
//--- PA: 0x07E36C   VA: 0x800A2ECC   subsegment: o, libspu/s_rrwa
//----------------------------------------------------------------
SpuReserveReverbWorkArea                     = 0x800A2ECC; // type:func

//---------------------------------------------------------------
//--- PA: 0x07E3BC   VA: 0x800A2F1C   subsegment: o, libspu/s_srv
//---------------------------------------------------------------
SpuSetReverbVoice                            = 0x800A2F1C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07E3EC   VA: 0x800A2F4C   subsegment: o, libspu/s_sav
//---------------------------------------------------------------
_SpuSetAnyVoice                              = 0x800A2F4C; // type:func

//--------------------------------------------------------------
//--- PA: 0x07E6AC   VA: 0x800A320C   subsegment: o, libspu/s_sk
//--------------------------------------------------------------
SpuSetKey                                    = 0x800A320C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07E86C   VA: 0x800A33CC   subsegment: o, libspu/s_gks
//---------------------------------------------------------------
SpuGetKeyStatus                              = 0x800A33CC; // type:func

//-----------------------------------------------------------------
//--- PA: 0x07E8FC   VA: 0x800A345C   subsegment: o, libspu/s_skowa
//-----------------------------------------------------------------
SpuSetKeyOnWithAttr                          = 0x800A345C; // type:func

//-------------------------------------------------------------
//--- PA: 0x07E92C   VA: 0x800A348C   subsegment: o, libspu/s_w
//-------------------------------------------------------------
SpuWrite                                     = 0x800A348C; // type:func

//----------------------------------------------------------------
//--- PA: 0x07E98C   VA: 0x800A34EC   subsegment: o, libspu/s_stsa
//----------------------------------------------------------------
SpuSetTransferStartAddr                      = 0x800A34EC; // type:func

//---------------------------------------------------------------
//--- PA: 0x07E9EC   VA: 0x800A354C   subsegment: o, libspu/s_itc
//---------------------------------------------------------------
SpuIsTransferCompleted                       = 0x800A354C; // type:func

//---------------------------------------------------------------
//--- PA: 0x07EA9C   VA: 0x800A35FC   subsegment: o, libspu/s_sca
//---------------------------------------------------------------
SpuSetCommonAttr                             = 0x800A35FC; // type:func

//---------------------------------------------------------------
//--- PA: 0x07EE1C   VA: 0x800A397C   subsegment: c, libsd/smf_io
//---------------------------------------------------------------
set_note_on                                  = 0x800A397C; // type:func
set_midi_info                                = 0x800A39B8; // type:func
Note2Pitch                                   = 0x800A39D8; // type:func
tre_calc                                     = 0x800A3B20; // type:func
vib_calc                                     = 0x800A3D30; // type:func
random_calc                                  = 0x800A3E70; // type:func
volume_calc                                  = 0x800A3F14; // type:func
smf_vol_set                                  = 0x800A4150; // type:func
master_vol_set                               = 0x800A4260; // type:func
seq_master_vol_set                           = 0x800A4314; // type:func
toremoro_set                                 = 0x800A439C; // type:func
pitch_bend_calc                              = 0x800A441C; // type:func
pitch_calc                                   = 0x800A4494; // type:func
midi_mod                                     = 0x800A4608; // type:func
midi_porta                                   = 0x800A46B8; // type:func
replay_reverb_set                            = 0x800A4748; // type:func
midi_vsync                                   = 0x800A4838; // type:func
sound_seq_off                                = 0x800A4A34; // type:func
sound_off                                    = 0x800A4D20; // type:func
vol_calc                                     = 0x800A4E90; // type:func
adsr_set                                     = 0x800A4E98; // type:func
rr_off                                       = 0x800A4F08; // type:func
voice_check                                  = 0x800A4F64; // type:func
key_on                                       = 0x800A5158; // type:func
key_off                                      = 0x800A5C7C; // type:func
key_press                                    = 0x800A5DCC; // type:func
get_vab_tone                                 = 0x800A5DD4; // type:func
smf_data_entry                               = 0x800A5E84; // type:func
control_change                               = 0x800A6268; // type:func
program_change                               = 0x800A6C2C; // type:func
chan_press                                   = 0x800A6C58; // type:func
pitch_bend                                   = 0x800A6C60; // type:func
control_code_set                             = 0x800A6CB0; // type:func

//---------------------------------------------------------------
//--- PA: 0x082158   VA: 0x800A6CB8   subsegment: o, libspu/s_grv
//---------------------------------------------------------------
// unknown: SpuCommonError
SpuGetReverbVoice                            = 0x800A6CB8; // type:func

//---------------------------------------------------------------
//--- PA: 0x082188   VA: 0x800A6CE8   subsegment: o, libspu/s_gav
//---------------------------------------------------------------
_SpuGetAnyVoice                              = 0x800A6CE8; // type:func

//-----------------------------------------------------------------
//--- PA: 0x0821B8   VA: 0x800A6D18   subsegment: c, libsd/smf_main
//-----------------------------------------------------------------
smf_timer                                    = 0x800A6D18; // type:func
smf_timer_set                                = 0x800A6DC0; // type:func
smf_timer_end                                = 0x800A6E58; // type:func
smf_timer_stop                               = 0x800A6EC8; // type:func
smf_vsync                                    = 0x800A6F14; // type:func

//----------------------------------------------------------------
//--- PA: 0x082458   VA: 0x800A6FB8   subsegment: c, libsd/smf_mid
//----------------------------------------------------------------
MemCmp                                       = 0x800A6FB8; // type:func
readMThd                                     = 0x800A6FFC; // type:func
readMTrk                                     = 0x800A70BC; // type:func
readEOF                                      = 0x800A717C; // type:func
egetc                                        = 0x800A723C; // type:func
readvarinum                                  = 0x800A72B4; // type:func
to32bit                                      = 0x800A733C; // type:func
to16bit                                      = 0x800A7368; // type:func
read32bit                                    = 0x800A737C; // type:func
read16bit                                    = 0x800A73E8; // type:func
readheader                                   = 0x800A7428; // type:func
len_add                                      = 0x800A7814; // type:func
metaevent                                    = 0x800A7828; // type:func
sysex                                        = 0x800A7AEC; // type:func
chanmessage                                  = 0x800A7B54; // type:func
readtrack                                    = 0x800A80C4; // type:func
readtrack2                                   = 0x800A81F4; // type:func
track_head_read                              = 0x800A8448; // type:func
delta_time_conv                              = 0x800A84B0; // type:func
midi_file_out                                = 0x800A8674; // type:func
midi_smf_main                                = 0x800A8950; // type:func
midi_smf_stop                                = 0x800A8C74; // type:func
midi_smf_stat                                = 0x800A8D00; // type:func



//================================================
//=== .data section
//================================================


//--------------------------------------------------------------
//--- PA: 0x084238   VA: 0x800A8D98   subsegment: .data, memcard
//--------------------------------------------------------------
g_MemCard_SaveIconTim                        = 0x800A8D98; // size:0xC0

//-----------------------------------------------------------------------------
//--- PA: 0x0842F8   VA: 0x800A8E58   subsegment: .data, screen/background_draw
//-----------------------------------------------------------------------------
g_Screen_BackgroundImgGamma                  = 0x800A8E58;

//-------------------------------------------------------------------------
//--- PA: 0x0842FC   VA: 0x800A8E5C   subsegment: .data, screen/screen_fade
//-------------------------------------------------------------------------
g_Screen_FadeProgress                        = 0x800A8E94; // type:s32

//-----------------------------------------------------------------------------
//--- PA: 0x084338   VA: 0x800A8E98   subsegment: .data, screen/cutscene_border
//-----------------------------------------------------------------------------
g_BlackBorderShade                           = 0x800A8F40;

//-------------------------------------------------------------------------
//--- PA: 0x0843E4   VA: 0x800A8F44   subsegment: .data, screen/screen_data
//-------------------------------------------------------------------------
// vw globals from SH2
vcNullRoadArray                              = 0x800A8F44; // _VC_ROAD_DATA[2]
g_OrderingTable0                             = 0x800A8F74; // type:s8 size:0x28
g_OrderingTable1                             = 0x800A8F9C; // type:s8 size:0x28
g_OrderingTable2                             = 0x800A8FC4; // type:s8 size:0x28
g_DeltaTimeRaw                               = 0x800A8FEC; // type:s32
g_IntervalVBlanks                            = 0x800A8FF0; // type:s32
g_Font16AtlasImg                             = 0x800A8FF4; // type:FsImageDesc size:8
g_KonamiLogoImg                              = 0x800A8FFC; // type:FsImageDesc size:8
g_KcetLogoImg                                = 0x800A9004; // type:FsImageDesc size:8
g_TitleImg                                   = 0x800A9014; // type:FsImageDesc size:8
g_PaperMapImg                                = 0x800A901C; // type:FsImageDesc size:8
g_PaperMapMarkingAtlasImg                    = 0x800A9024; // type:FsImageDesc size:8
g_ItemInspectionImg                          = 0x800A902C; // type:FsImageDesc size:8
g_LoadingScreenImg                           = 0x800A9034; // type:FsImageDesc size:8
g_ControllerButtonAtlasImg                   = 0x800A903C; // type:FsImageDesc size:8
g_BrightnessScreenImg0                       = 0x800A9044; // type:FsImageDesc size:8
g_BrightnessScreenImg1                       = 0x800A904C; // type:FsImageDesc size:8
g_DeathTipImg                                = 0x800A9054; // type:FsImageDesc size:8
g_HealthPortraitImg                          = 0x800A905C; // type:FsImageDesc size:8
g_InventoryKeyItemTextureImg                 = 0x800A9064; // type:FsImageDesc size:8
g_FirstAidKitItemTextureImg                  = 0x800A906C; // type:FsImageDesc size:8
g_Font24AtlasImg                             = 0x800A909C; // type:FsImageDesc size:8

//--------------------------------------------------------------------------
//--- PA: 0x08459C   VA: 0x800A90FC   subsegment: .data, sys/chara_data_info
//--------------------------------------------------------------------------
CHARA_FILE_INFOS                             = 0x800A90FC; // type:CharaFileInfo size:0x2D0

//-------------------------------------------------------------------
//--- PA: 0x08486C   VA: 0x800A93CC   subsegment: .data, sys/map_info
//-------------------------------------------------------------------
MAP_EFFECTS_INFOS                            = 0x800A93CC;

//--------------------------------------------------------------------
//--- PA: 0x084C08   VA: 0x800A9768   subsegment: .data, sys/game_main
//--------------------------------------------------------------------
g_Demo_FrameCount                            = 0x800A9768; // type:s32
g_WarmBootTimer                              = 0x800A976C; // type:s32
g_PrevVBlanks                                = 0x800A9770; // type:s32
g_baseVabAudiosTaskId                        = 0x800A9774;
g_GameStateUpdateFuncs                       = 0x800A977C;

//--------------------------------------------------------------------
//--- PA: 0x084C74   VA: 0x800A97D4   subsegment: .data, sys/memcard_2
//--------------------------------------------------------------------
g_SlotElementSelectedIdx                     = 0x800A97D4;
g_SelectedSaveSlotIdx                        = 0x800A97D6;
D_800A97DC                                   = 0x800A97DC;
unavailableMemCardSlotIdx                    = 0x800A97E0;
fileStatuses                                 = 0x800A97E4;

//------------------------------------------------------------------------------
//--- PA: 0x084CA4   VA: 0x800A9804   subsegment: .data, game_boot/fs_chara_anim
//------------------------------------------------------------------------------
g_BgmTaskLoadCmds                            = 0x800A9804; // type:u16 size:0x54
g_BgmChannelSetTaskCmds                      = 0x800A9858; // type:u16 size:0x54
g_AmbientVabTaskLoadCmds                     = 0x800A98AC; // type:u16 size:0x50
g_CharaAnimDataIdxs                          = 0x800A98FC;

//-----------------------------------------------------------------
//--- PA: 0x084DCC   VA: 0x800A992C   subsegment: .data, events/bgm
//-----------------------------------------------------------------
g_CharaModelAnimsData                        = 0x800A992C;
D_800A998C                                   = 0x800A998C; // type:AnimInfo size:0x10
D_800A99A0                                   = 0x800A99A0;
g_Bgm_LayerLimits                            = 0x800A99A4;

//---------------------------------------------------------------------------
//--- PA: 0x084E4C   VA: 0x800A99AC   subsegment: .data, text/map_msg_display
//---------------------------------------------------------------------------
g_MapMsg_CurrentIdx                          = 0x800A99AC; // type:s32
g_MapMsg_SelectFlashTimer                    = 0x800A99B0; // type:s16

//------------------------------------------------------------------------------------
//--- PA: 0x084E54   VA: 0x800A99B4   subsegment: .data, events/bodyprog_data_800A99B4
//------------------------------------------------------------------------------------
g_PaperMapFileIdxs                           = 0x800A99B4;
g_PaperMapMarkingFileIdxs                    = 0x800A99CC; // size:0x18
D_800A99E4                                   = 0x800A99E4; // size:0x20
g_MapEventSysState                           = 0x800A9A10; // type:s32
g_MapEventParam                              = 0x800A9A14; // type:u32
g_MapEventLastUsedItem                       = 0x800A9A18; // type:s32
g_RadioPitchState                            = 0x800A9A1C;

//-----------------------------------------------------------------------------
//--- PA: 0x084ECC   VA: 0x800A9A2C   subsegment: .data, events/game_sys_states
//-----------------------------------------------------------------------------
g_SysStateFuncs                              = 0x800A9A2C; // type:u32 size:0x3C

//-------------------------------------------------------------------
//--- PA: 0x084F14   VA: 0x800A9A74   subsegment: .data, events/title
//-------------------------------------------------------------------
g_MainMenuState                              = 0x800A9A74;
g_MainMenu_SelectedEntry                     = 0x800A9A78;
g_MainMenu_VisibleEntryFlags                 = 0x800A9A7C;
g_Demo_ReproducedCount                       = 0x800A9A80;
g_MainMenu_NewGameSelectedDifficultyIdx      = 0x800A9A84;
g_MemCard_PrevSavegameCount                  = 0x800A9A88;
MAIN_MENU_ENTRY_STRINGS                      = 0x800A9A8C;
DIFFICULTY_MENU_ENTRY_STRINGS                = 0x800A9AA0;

//---------------------------------------------------------------------
//--- PA: 0x08534C   VA: 0x800A9EAC   subsegment: .data, gfx/world_draw
//---------------------------------------------------------------------
RAND.67                                      = 0x800A9EAC;
FOG_COUNT.68                                 = 0x800A9EB0;
IMAGE.81                                     = 0x800A9EB4;
IMAGE_TIM.86                                 = 0x800A9EBC;
IMAGE_ETC.87                                 = 0x800A9EC4;

//----------------------------------------------------------------------
//--- PA: 0x085424   VA: 0x800A9F84   subsegment: .data, gfx/map_effects
//----------------------------------------------------------------------
IMAGE_FLAME.241                              = 0x800A9FA8;
Y_ARRAY.295                                  = 0x800A9FB4;

//-----------------------------------------------------------------------
//--- PA: 0x085468   VA: 0x800A9FC8   subsegment: .data, sound/sound_data
//-----------------------------------------------------------------------
g_Sd_VabBuffers                              = 0x800A9FC8;
g_Sd_KdtBuffer                               = 0x800A9FD8;
g_AudioData                                  = 0x800A9FEC;
g_Sd_ReverbDepths                            = 0x800AA5E0;
g_XaItemData                                 = 0x800AA894;
g_Vab_InfoTable                              = 0x800ACAA8;

//---------------------------------------------------------------------
//--- PA: 0x088938   VA: 0x800AD498   subsegment: .data, text/text_draw
//---------------------------------------------------------------------
g_StringColorId                              = 0x800AD498; // type:s16
g_Strings2dLayerIdx                          = 0x800AD49C;

//---------------------------------------------------------------------------
//--- PA: 0x088940   VA: 0x800AD4A0   subsegment: .data, items/item_screens_3
//---------------------------------------------------------------------------
g_Items_GunsMaxLoadAmmo                      = 0x800AD4A0;
D_800AD4C8                                   = 0x800AD4C8; // size:0x690
g_Inventory_CmdSelectedIdx                   = 0x800ADB58; // type:s32
g_Inventory_SelectionId                      = 0x800ADB5C; // type:u32
INVENTORY_ITEM_NAMES                         = 0x800ADB60; // type:u32 size:0x30C
g_ItemDescriptions                           = 0x800ADE6C; // type:u32 size:0x30C
g_Inventory_SelectedItemIdx                  = 0x800AE17C;
g_Items_DisplayedCount                       = 0x800AE180;
g_Inventory_EquippedItem                     = 0x800AE184;
g_Inventory_HealthStatusScanlineTimer        = 0x800AE194;
g_Inventory_HealthStatusColorGradientTimer   = 0x800AE196;
g_Inventory_HealthStatusScanlinePosition     = 0x800AE19A;
g_Inventory_ItemNameTimer                    = 0x800AE19C;
g_Inventory_DescriptionRollTimer             = 0x800AE1A0;
g_Inventory_ScrollTransitionTimer            = 0x800AE1A4;
g_Items_PickupAnimState                      = 0x800AE1AC;
g_Items_PickupScale                          = 0x800AE1B0;

//----------------------------------------------------------------------------
//--- PA: 0x089654   VA: 0x800AE1B4   subsegment: .data, gfx/bodyprog_80055028
//----------------------------------------------------------------------------
D_800AE204                                   = 0x800AE204; // size:0x2D8

//----------------------------------------------------------------
//--- PA: 0x089A04   VA: 0x800AE564   subsegment: .data, sound/sfx
//----------------------------------------------------------------
g_Pow2NegFracTable                           = 0x800AE564;

//----------------------------------------------------------------------------------
//--- PA: 0x089BE0   VA: 0x800AE740   subsegment: .data, bodyprog_mapscreen_80066D90
//----------------------------------------------------------------------------------
D_800AE8A0                                   = 0x800AE8A0; // size:0x51C

//---------------------------------------------------------------------
//--- PA: 0x08A37C   VA: 0x800AEEDC   subsegment: .data, player_control
//---------------------------------------------------------------------
g_Player_GrabReleaseInputTimer               = 0x800AF20C;
g_Player_FlexRotationY                       = 0x800AF210;
g_Player_FlexRotationX                       = 0x800AF212;
g_Player_IsInWalkToRunTransition             = 0x800AF214;
g_Player_DisableControl                      = 0x800AF215;
g_Player_RockDrill_AttackType                = 0x800AF217;
g_Player_TargetNpcIdx                        = 0x800AF21C;
g_Player_LastWeaponSelected                  = 0x800AF224;
HARRY_BASE_ANIM_INFOS                        = 0x800AF228; // size:0x390
g_Player_AttackAnimIdx                       = 0x800AFBE8;
g_Player_MeleeAttackType                     = 0x800AFBEC;
g_Player_IsMultiTapAttack                    = 0x800AFBF0;
g_CollisionPointCache                        = 0x800AFC78; // type:u8 size:0x1C - `s_CollisionPoint` struct. Size likely incomplete

//-------------------------------------------------------------------
//--- PA: 0x08B134   VA: 0x800AFC94   subsegment: .data, view/vc_main
//-------------------------------------------------------------------
vcNullNearRoad                               = 0x800AFC94; // type:VC_NEAR_ROAD_DATA size:0x24
deflt_watch_mv_prm                           = 0x800AFCB8; // type:VC_WATCH_MV_PARAM size:0xC
self_view_watch_mv_prm                       = 0x800AFCC4; // type:VC_WATCH_MV_PARAM size:0xC
cam_mv_prm_user                              = 0x800AFCD0; // type:VC_CAM_MV_PARAM size:0x10
excl_r_ary                                   = 0x800AFCE0; // int[9]

//------------------------------------------------------------
//--- PA: 0x08B1DC   VA: 0x800AFD3C   subsegment: .data, water
//------------------------------------------------------------
Y_ARRAY_0.251                                = 0x800AFD3C;
Y_ARRAY_1.252                                = 0x800AFD44;
Y_ARRAY_2.253                                = 0x800AFD60;
img0                                         = 0x800AFD9C;
svec0.264                                    = 0x800AFDB0;

//-----------------------------------------------------------
//--- PA: 0x08B258   VA: 0x800AFDB8   subsegment: .data, demo
//-----------------------------------------------------------
g_Demo_DemoId                                = 0x800AFDB8; // type:s32
g_Demo_RandSeed                              = 0x800AFDBC; // type:u16
g_Demo_PlayFileBufferPtr                     = 0x800AFDC0; // type:s32
DEMO_FILE_INFOS.30                           = 0x800AFDC4; // type:DemoFileInfo size:0x28
g_Demo_Play                                  = 0x800AFDEC; // type:s32
prevScreenFade.69                            = 0x800AFDF0; // type:s32

//--------------------------------------------------------------
//--- PA: 0x08B294   VA: 0x800AFDF4   subsegment: .data, ranking
//--------------------------------------------------------------
g_Credits_Digits                             = 0x800AFDF4;

//----------------------------------------------------------------------
//--- PA: 0x08B31C   VA: 0x800AFE7C   subsegment: o, libcard/init, .data
//----------------------------------------------------------------------
// c_008.o globals
//HADR0_5                                      = 0x800AFE0C;
// c_009.o globals
//HADR0_6                                      = 0x800AFE1C;
// c_010.o globals
//HADR0_7                                      = 0x800AFE2C;
// libcard/init.o globals
__ps_libinfo__libcard__                      = 0x800AFE7C;

//--------------------------------------------------------------------
//--- PA: 0x08B32C   VA: 0x800AFE8C   subsegment: o, libapi/pad, .data
//--------------------------------------------------------------------
init_pad_flag                                = 0x800AFE8C;
sio                                          = 0x800AFE90;
intc                                         = 0x800AFE94;

//---------------------------------------------------------------------
//--- PA: 0x08B33C   VA: 0x800AFE9C   subsegment: o, libcd/cdrom, .data
//---------------------------------------------------------------------
HADR0                                        = 0x800AFE9C; // All unused?
HADR1                                        = 0x800AFEA0;
HADR2                                        = 0x800AFEA4;
HADR3                                        = 0x800AFEA8;

//-----------------------------------------------------------------------
//--- PA: 0x08B34C   VA: 0x800AFEAC   subsegment: o, libcd/iso9660, .data
//-----------------------------------------------------------------------
current                                      = 0x800AFEAC;
pre_nopen.2                                  = 0x800AFEB0;

//---------------------------------------------------------------------
//--- PA: 0x08B35C   VA: 0x800AFEBC   subsegment: o, libcd/c_002, .data
//---------------------------------------------------------------------
HADR0_0                                      = 0x800AFEBC; // all unused?
HADR1_0                                      = 0x800AFEC0;
HADR2_0                                      = 0x800AFEC4;
HADR3_0                                      = 0x800AFEC8;

//---------------------------------------------------------------------
//--- PA: 0x08B36C   VA: 0x800AFECC   subsegment: o, libcd/c_003, .data
//---------------------------------------------------------------------
HADR0_1                                      = 0x800AFECC;
HADR1_1                                      = 0x800AFED0;
HADR2_1                                      = 0x800AFED4;
HADR3_1                                      = 0x800AFED8;

//---------------------------------------------------------------------
//--- PA: 0x08B37C   VA: 0x800AFEDC   subsegment: o, libcd/c_004, .data
//---------------------------------------------------------------------
HADR0_2                                      = 0x800AFEDC;
HADR1_2                                      = 0x800AFEE0;
HADR2_2                                      = 0x800AFEE4;
HADR3_2                                      = 0x800AFEE8;

//---------------------------------------------------------------------
//--- PA: 0x08B38C   VA: 0x800AFEEC   subsegment: o, libcd/c_005, .data
//---------------------------------------------------------------------
HADR0_3                                      = 0x800AFEEC;
HADR1_3                                      = 0x800AFEF0;
HADR2_3                                      = 0x800AFEF4;
HADR3_3                                      = 0x800AFEF8;

//---------------------------------------------------------------------
//--- PA: 0x08B39C   VA: 0x800AFEFC   subsegment: o, libcd/c_007, .data
//---------------------------------------------------------------------
HADR0_4                                      = 0x800AFEFC;
HADR1_4                                      = 0x800AFF00;
HADR2_4                                      = 0x800AFF04;
HADR3_4                                      = 0x800AFF08;

//---------------------------------------------------------------------
//--- PA: 0x08B3AC   VA: 0x800AFF0C   subsegment: o, libcd/c_008, .data
//---------------------------------------------------------------------
HADR1_5                                      = 0x800AFF10;
HADR2_5                                      = 0x800AFF14;
HADR3_5                                      = 0x800AFF18;

//---------------------------------------------------------------------
//--- PA: 0x08B3BC   VA: 0x800AFF1C   subsegment: o, libcd/c_009, .data
//---------------------------------------------------------------------
HADR1_6                                      = 0x800AFF20;
HADR2_6                                      = 0x800AFF24;
HADR3_6                                      = 0x800AFF28;

//---------------------------------------------------------------------
//--- PA: 0x08B3CC   VA: 0x800AFF2C   subsegment: o, libcd/c_010, .data
//---------------------------------------------------------------------
HADR1_7                                      = 0x800AFF30;
HADR2_7                                      = 0x800AFF34;
HADR3_7                                      = 0x800AFF38;

//---------------------------------------------------------------------
//--- PA: 0x08B3DC   VA: 0x800AFF3C   subsegment: o, libcd/c_011, .data
//---------------------------------------------------------------------
HADR0_8                                      = 0x800AFF3C;
HADR1_8                                      = 0x800AFF40;
HADR2_8                                      = 0x800AFF44;
HADR3_8                                      = 0x800AFF48;
DEV5_DELAY                                   = 0x800AFF4C;
COMMON_DELAY                                 = 0x800AFF50;
Dma_PCR                                      = 0x800AFF54;
Dma_ICR                                      = 0x800AFF58;
Dma_CHCR1                                    = 0x800AFF5C;
Dma_MADR1                                    = 0x800AFF60;
Dma_CHCR2                                    = 0x800AFF64;
Dma_MADR2                                    = 0x800AFF68;
Dma_CHCR3                                    = 0x800AFF6C;
Dma_MADR3                                    = 0x800AFF70;
Dma_CHCR5                                    = 0x800AFF74;
Dma_MADR5                                    = 0x800AFF78;
i_reg_0                                      = 0x800AFF7C; // i_reg
i_mask_0                                     = 0x800AFF80; // i_mask
debug_cause                                  = 0x800AFF84;
count.3                                      = 0x800AFF88;

//----------------------------------------------------------------------
//--- PA: 0x08B42C   VA: 0x800AFF8C   subsegment: o, libgs/gs_001, .data
//----------------------------------------------------------------------
__ps_libinfo__libgs__                        = 0x800AFF8C;

//------------------------------------------------------------------------
//--- PA: 0x08B43C   VA: 0x800AFF9C   subsegment: o, libapi/counter, .data
//------------------------------------------------------------------------
intc_0                                       = 0x800AFF9C; // intc
timer                                        = 0x800AFFA0;
rcntmask                                     = 0x800AFFA4;

//----------------------------------------------------------------------
//--- PA: 0x08B45C   VA: 0x800AFFBC   subsegment: o, libgs/global, .data
//----------------------------------------------------------------------
GsADIVZ                                      = 0x800AFFBC;
GsADIVW                                      = 0x800AFFC0;
GsADIVH                                      = 0x800AFFC2;

//-----------------------------------------------------------------------
//--- PA: 0x08B46C   VA: 0x800AFFCC   subsegment: o, libgte/sqrtbl, .data
//-----------------------------------------------------------------------
// msc09.o externs
SQRT                                         = 0x800AFFCC;

//----------------------------------------------------------------------
//--- PA: 0x08B5EC   VA: 0x800B014C   subsegment: o, libgte/msc00, .data
//----------------------------------------------------------------------
SAVERA                                       = 0x800B014C;

//----------------------------------------------------------------------
//--- PA: 0x08B5FC   VA: 0x800B015C   subsegment: o, libgte/msc02, .data
//----------------------------------------------------------------------
SAVERA_0                                     = 0x800B015C; // SAVERA
SAVERA2                                      = 0x800B0160;
SAVERA3                                      = 0x800B0164;
FRAC                                         = 0x800B0168;
EXPO                                         = 0x800B016C;
ISQRT                                        = 0x800B0170;

//------------------------------------------------------------------------
//--- PA: 0x08B79C   VA: 0x800B02FC   subsegment: o, libgte/mtx_006, .data
//------------------------------------------------------------------------
// TODO: Check psx.
SAVERA__mtx_006_                             = 0x800B02FC;
FRAC__mtx_006_                               = 0x800B0300;
EXPO__mtx_006_                               = 0x800B0304;
MSP                                          = 0x800B0308;
MSTACK                                       = 0x800B030C;
STACKFUL                                     = 0x800B058C;
STACKEMP                                     = 0x800B05BD;
NOTIMP                                       = 0x800B05E6;

//----------------------------------------------------------------------
//--- PA: 0x08BAAC   VA: 0x800B060C   subsegment: o, libgte/ratan, .data
//----------------------------------------------------------------------
ratan_tbl                                    = 0x800B060C;

//------------------------------------------------------------------------
//--- PA: 0x08C2BC   VA: 0x800B0E1C   subsegment: o, libpad/padmain, .data
//------------------------------------------------------------------------
__ps_libinfo__libpad__                       = 0x800B0E1C;
_padFuncNextPort                             = 0x800B0E24;
_padFuncClrInfo                              = 0x800B0E28;
_padFuncGetTxd                               = 0x800B0E2C;
_padFuncCurrLimit                            = 0x800B0E30;
_padFuncPtr2Port                             = 0x800B0E34;
_padFuncPort2Info                            = 0x800B0E38;
_padFuncSendAuto                             = 0x800B0E3C;
_padFuncChkEng                               = 0x800B0E40;
_padFuncRecvAuto                             = 0x800B0E44;
_padFuncClrCmdNo                             = 0x800B0E48;
_padFuncIntGun                               = 0x800B0E4C;
_padFuncSetGunPort                           = 0x800B0E50;
_padFuncGetGunPos                            = 0x800B0E54;
_padInfoDir                                  = 0x800B0E58;
_padIntExec                                  = 0x800B0E5C;
_padGunExec                                  = 0x800B0E60;
_padSioChan                                  = 0x800B0E64;
_padSioState                                 = 0x800B0E68;
_padTotalCurr                                = 0x800B0E6C;
_padModeMtap                                 = 0x800B0E70;
_padChanStart                                = 0x800B0E74;
_padChanStop                                 = 0x800B0E78;
_padFixResult                                = 0x800B0E7C;
intc__padmain_o_                             = 0x800B0E84; // intc
sio__padmain_o_                              = 0x800B0E88; // sio

//----------------------------------------------------------------------
//--- PA: 0x08C33C   VA: 0x800B0E9C   subsegment: o, libpad/padif, .data
//----------------------------------------------------------------------
sioReadSize                                  = 0x800B0E9C;
sio__padif_o_                                = 0x800B0EA0;
sendAuto                                     = 0x800B0EA4;
// mtapTime = missing, game isn't using 4.4 sdk?
padIntFunc                                   = 0x800B0EA8;

//-------------------------------------------------------------------------
//--- PA: 0x08C35C   VA: 0x800B0EBC   subsegment: o, libpad/padportd, .data
//-------------------------------------------------------------------------
sio__padportd_o_                             = 0x800B0EBC;

//------------------------------------------------------------------------
//--- PA: 0x08C36C   VA: 0x800B0ECC   subsegment: o, libspu/zerobuf, .data
//------------------------------------------------------------------------
// s_crwa.o externs
_spu_zerobuf                                 = 0x800B0ECC;

//----------------------------------------------------------------------
//--- PA: 0x08C76C   VA: 0x800B12CC   subsegment: o, libspu/s_n2p, .data
//----------------------------------------------------------------------
_spu_NTable                                  = 0x800B12CC;
_spu_FTable                                  = 0x800B12E4;

//---------------------------------------------------------------------
//--- PA: 0x08C8DC   VA: 0x800B143C   subsegment: .data, libsd/smf_main
//---------------------------------------------------------------------
// konami libsd globals (smf_def.c?)
sd_interrupt_start_flag                      = 0x800B143C;
sd_keyoff_mode                               = 0x800B1440;
sd_mono_st_flag                              = 0x800B1444;
sd_reverb_mode                               = 0x800B1448;
body_partly_size                             = 0x800B144C; // type:u32
sd_reverb_area_size                          = 0x800B1450;
// s_srmp.o externs
_spu_rev_param                               = 0x800B1478;
PitchTbl                                     = 0x800B1728;
random_tbl                                   = 0x800B2328;
sd_reserved_voice                            = 0x800B2528;
spu_reverb_sw                                = 0x800B252C;
spu_ch_tbl                                   = 0x800B2530;
sd_int_flag                                  = 0x800B2590;
sd_int_flag2                                 = 0x800B2594;
smf_start_flag                               = 0x800B2598;
sd_timer_sync                                = 0x800B259C;
timer_count                                  = 0x800B25A0;
sd_timer_flag                                = 0x800B25B4; // type:s32 guessed name
time_flag                                    = 0x800B25B8;
smf_file_no                                  = 0x800B25BC;
print_start                                  = 0x800B25C0;
eof_char                                     = 0x800B25C4; // type:s8 size:3 static?
chantype                                     = 0x800B25C8; // type:s32 static for readtrack?



//================================================
//=== .bss section
//================================================


//-------------------------------------------------------------
//--- PA: 0x08DAB8   VA: 0x800B2618   subsegment: .bss, memcard
//-------------------------------------------------------------
fileIdx.80                                   = 0x800B2618;
D_800B261C                                   = 0x800B261C;
checkSumValidationAttempts                   = 0x800B2620;
D_800B2624                                   = 0x800B2624;
directoryInfoCpy                             = 0x800B2628;
fileIdx.89                                   = 0x800B2774;
fileIdxCpy                                   = 0x800B2778;
g_MemCard_BasicSaveInfo1                     = 0x800B2780;
g_MemCard_BasicSaveInfo2                     = 0x800B3680;
g_MemCard_BasicSaveInfo3                     = 0x800B4580;
g_MemCard_AvailibityStatus                   = 0x800B5480;
g_MemCard_Work                               = 0x800B5488; // size:0x80
g_MemCard_SaveWork                           = 0x800B5508; // size:0x718

//--------------------------------------------------------------------------
//--- PA: 0x0910C0   VA: 0x800B5C20   subsegment: .bss, text/text_debug_draw
//--------------------------------------------------------------------------
g_Text_Debug_PositionSet0                    = 0x800B5C20; // type:DVECTOR size:4
g_Text_Debug_PositionSet1                    = 0x800B5C24; // type:DVECTOR size:4

//------------------------------------------------------------------------
//--- PA: 0x0910C8   VA: 0x800B5C28   subsegment: .bss, screen/screen_fade
//------------------------------------------------------------------------
g_Screen_PrevFadeProgressState               = 0x800B5C28; // type:s32

//------------------------------------------------------------------------
//--- PA: 0x0910D0   VA: 0x800B5C30   subsegment: .bss, screen/screen_draw
//------------------------------------------------------------------------
g_ScreenFadeTimestep                         = 0x800B5C30; // type:s32

//------------------------------------------------------------------------
//--- PA: 0x0910D4   VA: 0x800B5C34   subsegment: .bss, screen/screen_data
//------------------------------------------------------------------------
g_VBlanks                                    = 0x800B5C34; // type:s32
g_UncappedVBlanks                            = 0x800B5C38; // type:s32
g_OtTags0                                    = 0x800B5C40; // type:u32 size:0x80
g_DeltaTime                                  = 0x800B5CC0; // type:s32 - Q19.12 fixed point, usually 0x44 (0.0166..) or 0x88 (0.033..).
g_OtTags1                                    = 0x800B5CC4; // type:u32 size:0x4000
g_GravitySpeed                               = 0x800B9CC8; // type:s32
g_TickCount                                  = 0x800B9CCC;

//---------------------------------------------------
//--- PA: 0x095170   VA: 0x800B9CD0   subsegment: bss
//---------------------------------------------------
vcWork                                       = 0x800B9CD0; // type:VC_WORK size:0x2E8
g_ActiveBufferIdx                            = 0x800B9FB8;

//-------------------------------------------------------------------------
//--- PA: 0x095460   VA: 0x800B9FC0   subsegment: .bss, sys/syswork_globals
//-------------------------------------------------------------------------
g_SysWork                                    = 0x800B9FC0; // type:SysWork size:0x2768 - should use s_SysWork here, but splat only supports custom structs with capital letter at beginning.
g_GameWork                                   = 0x800BC728; // type:GameWork size:0x5D8

//---------------------------------------------------
//--- PA: 0x0981A0   VA: 0x800BCD00   subsegment: bss
//---------------------------------------------------
g_Screen_FadeStatus                          = 0x800BCD0C;

//-------------------------------------------------------------------
//--- PA: 0x0981B8   VA: 0x800BCD18   subsegment: .bss, sys/memcard_2
//-------------------------------------------------------------------
biggestTotalSaveCountInSlot                  = 0x800BCD18;
totalElementCountInSlot                      = 0x800BCD20; // allow_duplicated:True
g_MemCard_SavegameCount                      = 0x800BCD28;
g_MemCard_ActiveMemCardSlotSaves             = 0x800BCD2C;
g_Savegame_ElementCount0                     = 0x800BCD30;
g_MemCard_AllMemCardsStatus                  = 0x800BCD34;
g_SaveScreen_SaveScreenState                 = 0x800BCD38;
g_MemCard_TotalElementsCount                 = 0x800BCD3A;
g_Savegame_ElementCount1                     = 0x800BCD3C;
g_Savegame_SelectedElementIdx                = 0x800BCD3E;
g_SelectedFileIdx                            = 0x800BCD3F;
g_SelectedDeviceId                           = 0x800BCD40; // size:1

//-------------------------------------------------------------------------
//--- PA: 0x0981E8   VA: 0x800BCD48   subsegment: .bss, game_boot/game_boot
//-------------------------------------------------------------------------
demoLoadAttempCount                          = 0x800BCD48;

//----------------------------------------------------------------
//--- PA: 0x0981F0   VA: 0x800BCD50   subsegment: .bss, events/bgm
//----------------------------------------------------------------
bgmLayerVolumes                              = 0x800BCD50;

//--------------------------------------------------------------------------
//--- PA: 0x098200   VA: 0x800BCD60   subsegment: .bss, text/map_msg_display
//--------------------------------------------------------------------------
stateMachineIdx1                             = 0x800BCD60; // type:s32
stateMachineIdx2                             = 0x800BCD64; // type:s32
msgDisplayLength                             = 0x800BCD68; // type:s32
msgIdx                                       = 0x800BCD6C; // type:s32
msgDisplayInc                                = 0x800BCD70; // type:s32
g_MapMsg_Select                              = 0x800BCD78; // type:MapMsgSelect size:2
g_MapMsg_AudioLoadBlock                      = 0x800BCD7A; // type:u8
g_MapMsg_SelectCancelIdx                     = 0x800BCD7B; // type:s8

//----------------------------------------------------------------------------
//--- PA: 0x098220   VA: 0x800BCD80   subsegment: .bss, events/game_sys_states
//----------------------------------------------------------------------------
g_DeltaTimeCpy                               = 0x800BCD84; // type:s32
g_ItemTriggerEvents                          = 0x800BCD90; // type:s32 size:0x14
g_RadioNpcInfos                              = 0x800BCDA8;
g_ItemTriggerItemIds                         = 0x800BCDC0; // type:s32 size:0x14
g_MapEventData                               = 0x800BCDD8; // type:u32 - pointer to `s_EventData`.

//---------------------------------------------------
//--- PA: 0x098298   VA: 0x800BCDF8   subsegment: bss
//---------------------------------------------------
vcRefPosSt                                   = 0x800BCDF8; // type:VECTOR3 size:0xC
g_CollisionTriggerFlags                      = 0x800BCE14;
g_WorldGfxWork                               = 0x800BCE18; // type:u8 size:0x2DBC

//---------------------------------------------------------------------------
//--- PA: 0x09B090   VA: 0x800BFBF0   subsegment: .bss, gfx/bodyprog_80040B74
//---------------------------------------------------------------------------
g_Map_GfxPackets                             = 0x800BFBF0; // size:0x1420
g_Map_ActiveChunksCollisionData              = 0x800C1010;
g_Map                                        = 0x800C1020; // type:u8 size:0x58C - size from bzero call

//-------------------------------------------------------------------
//--- PA: 0x09CA58   VA: 0x800C15B8   subsegment: .bss, sound/sd_call
//-------------------------------------------------------------------
XaCdLocation                                 = 0x800C15E8;
g_AudioPlayingIdxList                        = 0x800C15F8; // type:u16 size:0x30
g_AudioPlayingPitchList                      = 0x800C1628; // type:s16 size:0x30
g_Sd_AudioWork                               = 0x800C1658;
g_Sd_AudioStreamingStates                    = 0x800C1670; // size:0x4
gSDVolConfig                                 = 0x800C1678; // size:0x10
g_Sd_VabPlayingInfo                          = 0x800C1698; // size:0x10
g_Sd_TaskPool                                = 0x800C16A8; // type:u8 size:0x20
g_Sd_AudioType                               = 0x800C37C8;
g_Sd_DataMoved                               = 0x800C37CC;
g_Sd_VabLoadAttemps                          = 0x800C37D0;
g_Sd_VabTargetLoad                           = 0x800C37D4;
g_Sd_KdtTargetLoad                           = 0x800C37D8;
g_Sd_CurrentTask                             = 0x800C37DD;

//------------------------------------------------------------------
//--- PA: 0x09EC80   VA: 0x800C37E0   subsegment: .bss, view/vw_main
//------------------------------------------------------------------
vwViewPointInfo                              = 0x800C37E0; // type:VW_VIEW_WORK size:0x84

//------------------------------------------------------------------
//--- PA: 0x09ED08   VA: 0x800C3868   subsegment: .bss, view/vw_calc
//------------------------------------------------------------------
VbWvsMatrix                                  = 0x800C3888; // type:MATRIX size:0x20

//--------------------------------------------------------------------
//--- PA: 0x09ED48   VA: 0x800C38A8   subsegment: .bss, text/text_draw
//--------------------------------------------------------------------
g_StringPosition                             = 0x800C38A8; // type:DVECTOR
g_StringPositionX1                           = 0x800C38AC; // type:s32
g_MapMsg_WidthIdx                            = 0x800C38B4;
g_MapMsg_Widths                              = 0x800C38C8; // type:s32
g_MapMsg_GlyphSprite                         = 0x800C38F8;

//----------------------------------------------------------------------------
//--- PA: 0x09EDC8   VA: 0x800C3928   subsegment: .bss, items/item_screens_cam
//----------------------------------------------------------------------------
D_800C3928                                   = 0x800C3928;
g_Player_WeaponAttack                        = 0x800C3950;

//--------------------------------------------------------------------------
//--- PA: 0x09EE08   VA: 0x800C3968   subsegment: .bss, items/item_screens_2
//--------------------------------------------------------------------------
g_Inventory_IsUpClicked                      = 0x800C3968; // type:s32
g_Inventory_IsDownClicked                    = 0x800C396C; // type:s32
g_Inventory_IsLeftClicked                    = 0x800C3970; // type:s32
g_Inventory_IsRightClicked                   = 0x800C3974; // type:s32
g_Inventory_IsUpPulsed                       = 0x800C3978; // type:s32
g_Inventory_IsDownPulsed                     = 0x800C397C; // type:s32
g_Inventory_IsLeftPulsed                     = 0x800C3980; // type:s32
g_Inventory_IsRightPulsed                    = 0x800C3984; // type:s32
g_Inventory_IsLeftHeld                       = 0x800C3988; // type:s32
g_Inventory_IsRightHeld                      = 0x800C398C; // type:s32
g_Inventory_IsScrolling                      = 0x800C3990;
g_Inventory_SelectionBordersDraw             = 0x800C3998;
g_Inventory_PrevSelectionId                  = 0x800C399C;

//--------------------------------------------------------------------------
//--- PA: 0x09EE48   VA: 0x800C39A8   subsegment: .bss, items/item_screens_3
//--------------------------------------------------------------------------
g_Items_Lights                               = 0x800C39A8;
g_Item_MapLoadableItems                      = 0x800C3BB8;
g_Items_Transforms                           = 0x800C3BE8;
g_Items_ItemsModelData                       = 0x800C3D78;
g_Inventory_EquippedItemIdx                  = 0x800C3E34;
g_Items_Coords                               = 0x800C3E48;

//-------------------------------------------------------------
//--- PA: 0x09F608   VA: 0x800C4168   subsegment: bss, worldgfx
//-------------------------------------------------------------
g_WorldEnvWork                               = 0x800C4168; // type:u8 size:0x150 - size likely incomplete

//---------------------------------------------------------------
//--- PA: 0x09F760   VA: 0x800C42C0   subsegment: .bss, sound/sfx
//---------------------------------------------------------------
g_Sfx_CameraPosition                         = 0x800C42C0;
g_Sfx_PlayerPosition                         = 0x800C42CC;

//---------------------------------------------------
//--- PA: 0x09F770   VA: 0x800C42D0   subsegment: bss
//---------------------------------------------------
g_Player_RotationDeltaToTargetY              = 0x800C42D0;
g_Player_RotationDeltaToTargetX              = 0x800C42D2;

//-----------------------------------------------------------------------
//--- PA: 0x09F778   VA: 0x800C42D8   subsegment: .bss, bodyprog_8005E0DC
//-----------------------------------------------------------------------
loadedEffectTextureFlags                     = 0x800C42D8;
D_800C4418                                   = 0x800C4418; // size:0x10

//---------------------------------------------------------------------------------
//--- PA: 0x09F8E8   VA: 0x800C4448   subsegment: .bss, bodyprog_mapscreen_80066D90
//---------------------------------------------------------------------------------
D_800C4449                                   = 0x800C4449; // type:u8

//-------------------------------------------------------------------------
//--- PA: 0x09F8F8   VA: 0x800C4458   subsegment: .bss, collision/collision
//-------------------------------------------------------------------------
g_ActiveCollisionTriggers                    = 0x800C4478;

//--------------------------------------------------------------------
//--- PA: 0x09F970   VA: 0x800C44D0   subsegment: .bss, player_control
//--------------------------------------------------------------------
D_800C44F0                                   = 0x800C44F0; // size:0x50
g_TargetEnemyPosition                        = 0x800C4540; 
g_Player_HasMoveInput                        = 0x800C4558; 
g_Player_HasActionInput                      = 0x800C455C; 
g_Player_PrevAttackReceived                  = 0x800C4560;
g_Player_IsDead                              = 0x800C4561; 
g_Player_DisableDamage                       = 0x800C4562; 
g_Player_EquippedWeaponInfo                  = 0x800C4570; // size:12
g_Player_IsAiming                            = 0x800C457E; 
g_Player_IsSteppingLeftTap                   = 0x800C4580; 
g_Player_IsSteppingRightTap                  = 0x800C4582; 
g_Player_IsTurningLeft                       = 0x800C4584; 
g_Player_IsTurningRight                      = 0x800C4586; 
g_Player_CollisionResult                     = 0x800C4590; // size:0x1c
g_Player_IsSteppingLeftHold                  = 0x800C45AC; 
g_Player_IsSteppingRightHold                 = 0x800C45AE; 
D_800C45B0                                   = 0x800C45B0; // type:VECTOR3 size:0xC
g_Player_IsHoldAttack                        = 0x800C45BC; 
g_Player_IsAttacking                         = 0x800C45BE; 
g_Player_IsShooting                          = 0x800C45C0; 
g_Player_IsMovingForward                     = 0x800C45E8; 
g_Player_IsMovingBackward                    = 0x800C45F0; 
g_Player_PrevPosition                        = 0x800C45F8; 
g_Player_IsRunning                           = 0x800C4604; 
g_Player_AnimResetRequest                    = 0x800C4606;
g_Player_HeadingAngle                        = 0x800C4608; 

//------------------------------------------------------------------
//--- PA: 0x09FAD0   VA: 0x800C4630   subsegment: .bss, view/vc_main
//------------------------------------------------------------------
vcWatchMvPrmSt                               = 0x800C4630; // type:VC_WATCH_MV_PARAM size:0xC
vcSelfViewTimer                              = 0x800C463C; // type:s32

//------------------------------------------------------------------------
//--- PA: 0x09FAE0   VA: 0x800C4640   subsegment: .bss, events/events_util
//------------------------------------------------------------------------
g_Event_PathWaypoints                        = 0x800C4640; // size:0xC0
g_Event_PathWaypointHeadingAngles            = 0x800C4700;
g_Event_TweenTimers                          = 0x800C4710;

//-----------------------------------------------------------
//--- PA: 0x09FCB8   VA: 0x800C4818   subsegment: .bss, water
//-----------------------------------------------------------
D_800C4818                                   = 0x800C4818; // size:0x24

//----------------------------------------------------------
//--- PA: 0x09FCE0   VA: 0x800C4840   subsegment: .bss, demo
//----------------------------------------------------------
g_Demo_DemoFileIdx                           = 0x800C4840; // type:s32
g_Demo_PlayFileIdx                           = 0x800C4844; // type:s32
g_Demo_OptionsConfigBackup                   = 0x800C4850; // type:ShSaveUserConfig size:0x38
g_Demo_PrevRandSeed                          = 0x800C4888;
g_Demo_RandSeedBackup                        = 0x800C488C;
g_Demo_CurFrameData                          = 0x800C4890;
g_Demo_DemoStep                              = 0x800C4894;
g_Demo_VideoPresentInterval                  = 0x800C4898;
g_Demo_IsLoadingChunks                       = 0x800C489C;

//-------------------------------------------------------------
//--- PA: 0x09FD40   VA: 0x800C48A0   subsegment: .bss, ranking
//-------------------------------------------------------------
D_800C48E0                                   = 0x800C48E0; // size:0x8

//---------------------------------------------------------------------
//--- PA: 0x09FD98   VA: 0x800C48F8   subsegment: o, libapi/first, .bss
//---------------------------------------------------------------------
sfunc                                        = 0x800C48F8;
dev                                          = 0x800C4900;

//-------------------------------------------------------------------
//--- PA: 0x09FDC8   VA: 0x800C4928   subsegment: o, libapi/pad, .bss
//-------------------------------------------------------------------
patch0                                       = 0x800C4928;

//---------------------------------------------------------------------
//--- PA: 0x09FDD8   VA: 0x800C4938   subsegment: o, libapi/patch, .bss
//---------------------------------------------------------------------
store                                        = 0x800C4938; // Maybe should be ret_adr instead?
ret_adr                                      = 0x800C493C; // Symbols point to this as "ret_adr", but store is used to hold return addr?
_start_pad                                   = 0x800C4940;
_stop_pad                                    = 0x800C4944;

//------------------------------------------------------------------------
//--- PA: 0x09FDE8   VA: 0x800C4948   subsegment: o, libapi/chclrpad, .bss
//------------------------------------------------------------------------
store_0                                      = 0x800C4948;

//----------------------------------------------------------------------
//--- PA: 0x09FDF8   VA: 0x800C4958   subsegment: o, libcard/patch, .bss
//----------------------------------------------------------------------
store_1                                      = 0x800C4958;

//--------------------------------------------------------------------
//--- PA: 0x09FE08   VA: 0x800C4968   subsegment: o, libcard/end, .bss
//--------------------------------------------------------------------
store_2                                      = 0x800C4968;

//--------------------------------------------------------------------
//--- PA: 0x09FE18   VA: 0x800C4978   subsegment: o, libcd/cdrom, .bss
//--------------------------------------------------------------------
// different order to actual cdrom.o, reordered by linker?
Stframe_no                                   = 0x800C4978;
Stsector_offset                              = 0x800C497C;
StRgb24                                      = 0x800C4980;
StCdIntrFlag                                 = 0x800C4984;
StCHANNEL                                    = 0x800C4988;
StStartFrame                                 = 0x800C498C;
CChannel                                     = 0x800C4990;
StFinalSector                                = 0x800C4994;
StEmu_Idx                                    = 0x800C4998;
StRingIdx1                                   = 0x800C499C;
StRingIdx2                                   = 0x800C49A0;
StRingIdx3                                   = 0x800C49A4;
StEmu_Addr                                   = 0x800C49A8;
StEndFrame                                   = 0x800C49AC;
StSTART_FLAG                                 = 0x800C49B0;
StRingBase                                   = 0x800C49B4;
StRingAddr                                   = 0x800C49B8;
StRingSize                                   = 0x800C49BC;

//----------------------------------------------------------------------
//--- PA: 0x09FE60   VA: 0x800C49C0   subsegment: o, libcd/iso9660, .bss
//----------------------------------------------------------------------
file                                         = 0x800C49C0;
dire                                         = 0x800C4FC0;
load_buf                                     = 0x800C65C0;

//--------------------------------------------------------------------
//--- PA: 0x0A2260   VA: 0x800C6DC0   subsegment: o, libcd/c_004, .bss
//--------------------------------------------------------------------
// c_004.o globals
previous_frame_location                      = 0x800C6DC0;
next_frameid                                 = 0x800C6DC4;

//--------------------------------------------------------------------
//--- PA: 0x0A2270   VA: 0x800C6DD0   subsegment: o, libcd/c_005, .bss
//--------------------------------------------------------------------
// c_005.o bss
StFunc1                                      = 0x800C6DD0;
StFunc2                                      = 0x800C6DD4;

//--------------------------------------------------------------------
//--- PA: 0x0A2278   VA: 0x800C6DD8   subsegment: o, libcd/c_011, .bss
//--------------------------------------------------------------------
HeaderArea.2                                 = 0x800C6DD8;

//---------------------------------------------------------------------
//--- PA: 0x0A2288   VA: 0x800C6DE8   subsegment: o, libgs/gs_001, .bss
//---------------------------------------------------------------------
Clear                                        = 0x800C6DE8;
PSDOFSX                                      = 0x800C6E08;
PSDOFSY                                      = 0x800C6E0C;
PSDBASEX                                     = 0x800C6E10;
PSDBASEY                                     = 0x800C6E14;
POSITION                                     = 0x800C6E18;
GsDRAWENV                                    = 0x800C6E20; // size:0x5C
GsDISPENV                                    = 0x800C6E80; // size:0x14
GsORGOFSX                                    = 0x800C6E94;
GsORGOFSY                                    = 0x800C6E96;
CLIP2                                        = 0x800C6E98;
PSDCNT                                       = 0x800C6EA0;
// Unsure about these globals, some reason order in SH1 doesn't match SDK 4.3 or 4.4.
PSDIDX                                       = 0x800C6EA4;
PSDGPU                                       = 0x800C6EA6;

//---------------------------------------------------------------------
//--- PA: 0x0A23C0   VA: 0x800C6F20   subsegment: o, libgs/gs_104, .bss
//---------------------------------------------------------------------
HWD0                                         = 0x800C6F28;
VWD0                                         = 0x800C6F2C;
GsCLIP3far                                   = 0x800C6F30;
// gs_104.o globals
GsLIGHT_MODE                                 = 0x800C6F34;
// gs_104.o externs
GsCLIP3near                                  = 0x800C6F38;

//---------------------------------------------------------------------
//--- PA: 0x0A23E0   VA: 0x800C6F40   subsegment: o, libgs/gs_107, .bss
//---------------------------------------------------------------------
GsLIGHTWSMATRIX                              = 0x800C6F40;
_LC                                          = 0x800C6F60;

//---------------------------------------------------------------------
//--- PA: 0x0A2420   VA: 0x800C6F80   subsegment: o, libgs/gs_123, .bss
//---------------------------------------------------------------------
GsIDMATRIX                                   = 0x800C6FA0; // type:MATRIX size:0x20
GsWSMATRIX                                   = 0x800C6FC0; // type:MATRIX size:0x20
// GsWSMATRIX_ORG missing?
GsIDMATRIX2                                  = 0x800C6FE0; // type:MATRIX size:0x20

//---------------------------------------------------------------------
//--- PA: 0x0A24A0   VA: 0x800C7000   subsegment: o, libgs/global, .bss
//---------------------------------------------------------------------
GsLIOFF                                      = 0x800C7004;
GsLMODE                                      = 0x800C7008;
GsLIGNR                                      = 0x800C700C;
GsOUT_PACKET_P                               = 0x800C7018;
GsMATE_C                                     = 0x800C701C;
GsTON                                        = 0x800C7024;
GsNDIV                                       = 0x800C7028;

//--------------------------------------------------------------------
//--- PA: 0x0A24D0   VA: 0x800C7030   subsegment: o, libgs/objt3, .bss
//--------------------------------------------------------------------
GsFCALL4                                     = 0x800C7030;

//------------------------------------------------------------------------
//--- PA: 0x0A2600   VA: 0x800C7160   subsegment: o, libgte/patchgte, .bss
//------------------------------------------------------------------------
// patchgte.o globals
store__patchgte_o_                           = 0x800C7160;

//-----------------------------------------------------------------------
//--- PA: 0x0A2610   VA: 0x800C7170   subsegment: o, libpad/padmain, .bss
//-----------------------------------------------------------------------
vsyncParam                                   = 0x800C7170;
padRestPeriod                                = 0x800C7180;

//----------------------------------------------------------------------
//--- PA: 0x0A2630   VA: 0x800C7190   subsegment: o, libpad/padcmd, .bss
//----------------------------------------------------------------------
// padcmd.o globals
dst.16                                       = 0x800C7190; // Not totally sure.

//------------------------------------------------------------------------
//--- PA: 0x0A2640   VA: 0x800C71A0   subsegment: o, libpad/padportd, .bss
//------------------------------------------------------------------------
rxrawdata.4                                  = 0x800C71A0;
txrawdata.5                                  = 0x800C71E8;
infoDir                                      = 0x800C7230;

//---------------------------------------------------
//--- PA: 0x0A28B0   VA: 0x800C7410   subsegment: bss
//---------------------------------------------------
// waitrc2.o globals
_startTime                                   = 0x800C7410;
_waitTime                                    = 0x800C7414;

//-------------------------------------------------------------------
//--- PA: 0x0A28B8   VA: 0x800C7418   subsegment: .bss, libsd/smf_snd
//-------------------------------------------------------------------
vab_h                                        = 0x800C7418;
sd_vb_malloc_rec                             = 0x800C75D8;
sd_seq_loop_mode                             = 0x800C7660;
sd_tick_mode                                 = 0x800C7664;
sd_spu_alloc                                 = 0x800C7668; // size:0x80

//------------------------------------------------------------------
//--- PA: 0x0A2B90   VA: 0x800C76F0   subsegment: .bss, libsd/smf_io
//------------------------------------------------------------------
s_attr                                       = 0x800C76F0; // size:0x40
smf_midi                                     = 0x800C7738;
smf_midi_sound_off                           = 0x800C82B8; // guessed name
smf_port                                     = 0x800C8318;
sd_timer_event                               = 0x800C8AF8;

//-------------------------------------------------------------------
//--- PA: 0x0A3FA0   VA: 0x800C8B00   subsegment: .bss, libsd/smf_mid
//-------------------------------------------------------------------
smf_song                                     = 0x800C8B00;
// TODO: `g_MapOverlayHdr` is part of the overlay bin file, maybe should be moved to `sym.maps_shared.txt` or similar.
// Including here for now since all map configs include this sym file, and bodyprog also reads from this header.
g_MapOverlayHdr                              = 0x800C957C; // type:MapOverlayHeader size:0x84C - size incomplete
D_800FE5F8                                   = 0x800FE5F8; // ignore:True - Fixes fake missmatch in `Demo_Update`.
hack_D_800FE5FC_fix                          = 0x800FE5FC; // ignore:true - Part of temp memory block at 800FDE00, has to be unsymbolized for C to match.
