# Functions translated from the original PowerPC code by tools/ppc2c.py.
# One per line: Name, or Name@unit.s for a file-local (static) function.
# Their decompiled C (or asm-only stub) is made weak; the translation wins.

main

# --- gamecode: every function whose decompiled C does not match (objdiff < 100%)
DrawDRAINDAMAGE
WaterCrunchFunction_Attack
WaterCrunchFunction_Punch1
WaterCrunchFunction_Punch2
WaterCrunchFunction_Spladoosh
UpdateCRUNCHTIME
SpaceCortexFunction_Defeated
SpaceCortexFunction_TakeHit
MoveCreature
InBugArea
ResetBug
UpdateBugLight
AddBugLight
MoveGameCamera
InitChases
InitChase
UpdateChase
UpdateCrates
ResetCrates
DrawCrateExplosions
ResetPlayerMoves
ResetPlayer
CloseCreatures
ManageCreatures
ModelAnimDuration
AddCreature
MovePlayer
ProcessCreatures
EvalModelAnim
StoreLocatorMatrices
DrawCharacterModel
DrawCreatures
LoadCutComponents
PlayCutMovie
LaunchObjects
Text3D
Text3D2
AddAward
UpdateAwards
HubSelect
HubLevelSelect
HubDrawItems
DrawWumpa
UpdateMask
InputNewLetter
DrawNameInputTable
ProcMenu
DrawMenu
BonusTransporter
DeathTransporter
GemPathTransporter
ResetItems
DrawProbeFX
ObjectCylinderCollision
PlayerCreatureCollisions
CrateCollisions
ObjectRotation
KillGameObject
AddProjectile
UpdateProjectiles
DrawProjectiles
SpinWheelsJeep
GenerateJeepTargets
TiltSeek
TiltJeep
MovePlayerJeep
DriveJeep
ProcessJeepMovement !static
FindTerrainType
SetUpJeepWheelPositions
ResetJeep
DrawJeep
BlendNUVECs
JeepCamFollowAng
JeepCamIntro
JeepCam
InitEnemyJeep
AnimateForLightsEnemyJeep
ProcessEnemyJeep
DrawEnemyJeep
DrawEnemyJeeps
ProcessEnemyJeeps
PlayerHitBuggies
LoadBuggyData
LoadWesternArenaData
CurrentWesternPosition
NewFadeOutLastTrail
NewSetTrailPos
ProcessJeepTrail
DrawJeepTrails
InitFireBoss
ProcessFireBoss
ProcessFireBossLevel
ProcessGenericTrail
InitTexAnimScripts
InitCreatureModels
InitCreatures
InitWorld
MAHLoadingMessage
DoInput
HandlePauseRender
InitPlayerEvents
ResetPlayerEvents
CheckPlayerEvents
MoveCRASH
AnimateCRASH
MoveCOCO
AnimateCOCO
MoveSCOOTER
MoveSNOWBOARD
MoveOFFROADER
MoveMECH
MoveFIREENGINE
MoveGYRO
DrawCarpet
MoveSUBMARINE
MoveMINECART
MoveTub
AnimateMINETUB
CheckGates
DrawRings
GameVP
DrawPanel
UpdatePlayerStats
DrawPanelDebris
DrawGlider
GliderFire
ControlGliderWeatherBoss
ControlGlider
ProcessGliderMovement
GliderSmoke
ExplodeGlider
MoveGlider
InitZoffa
SafePosition !static
ZoffaSmoke !static
TeleportManager
MoveZoffaUFO
InitHova
ProcessHovaBlimp
DrawAllHovaBlimps
ProcessSatellite
ProcessSpaceStation
GrabGliderBullet
FreeGliderBullet
CollideGliderBullets
GliderBulletsHitThings
GliderBombsHitThings
DrawGliderBullets
MovePlane
ProcessFarmLevel
GliderCamWeatherBoss
GliderCam
GetRandomGliderLevelEdgePoint
InitAsteroid
ProcessAsteroid
PossIntersect
CheckForPotentialMidAirCollisions
LinesIntersectEllipse
CheckGliderCollisions
AddGliderBomb !static
ProcessGliderBombs
CollideGliderBombs !static
ProcessGunBoat
GetBigGunBestTarget
ProcessBigGun
ProcessBattleShip
InitWeatherBoss_a
ProcessBazookaToken
ProcessWeatherBoss_a
DrawTorpedoTarget
FireFlyReset
ProcessFireFlyIntro
UnleashLighteningHail
DrawWBBolts
ProcessWBBolts
WeatherBossReset
InitWBIntro
ResetVehicleLevel
ProcessMovementAtlas
AdjustAtlasRotations
ProcessPlatformsAtlas
TerrainAtlas
CheckAtlasGround
ProcessAtlas
ProcessEarthBossActions
ProcessRumblePanel
RumbleHeadUpDisplay
EarthBossReset
ProcessEarthBossLevel
ProcessAtlasAtlasCollisions_a
FadeOutLastTrail
TrailPointInPoly
SetTrailPos
ProcessAtlasTrail
AddRockVel
ProcessJeepRock
ProcessJeepRocks
RumbleCam
ProcessVehMasks
GetLocatorMtx
GetLocatorMtxMyDraw
SeekHalfLifeLim
SeekHalfLifeNUVEC
CrossProduct
ControlledDist
FindSplineTargetPoint
ASin360f
TryUnembeddPointSafe
TryUnembeddPointDir
TryUnembeddPointDirSimple
BestGuessActualsJeep
MyCast
FindSurfaceRotXZFromNormal
FindSurfaceNormalAndUnembedd
TerrainVehicleSoft

# --- input chain (Xbox-layer pad code shared by the GC build)
XbGetWorkingController
XbPollAllControllers
XbPollPeripherals
XInputGetState
DeadZoneValue
NuPs2OpenPad
NuPs2ReadPad
NuPs2PadSetMotors
InitPadPlayRecord
NuPs2PadDemoEnd
GS_TexSelect

# --- engine: animation evaluation / debris (decompiled C does not match)
GenDebMomAdjFromPosRevTree
SetupDebris
DebrisDoSounds
NuAnimCurve2SetApplyToJoint
NuAnimCurve2SetApplyToJointBasic
NuAnimCurveSetApplyToJoint2
NuAnimCurveSetApplyToJointBasic
NuAnimCurveSetApplyBlendToJoint2
NuAnimCurve2SetApplyToMatrix
NuHGobjDestroyDynamic
NuHGobjEvalAnim2
NuHGobjEvalAnim
NuHGobjEvalAnimBlend
NuHGobjRndrMtxDwa
NuHGobjEval
NuDynamicWaterInit

# --- debris / particle system (whole unit: chunk layouts are shared with the DMA particle renderer)
SolveQuadratic
GenDebIndex
GenDebIndexRadial
GenDebIndexRadialRotor
GenDebIndexSpheroid
GenDebIndexBounceY
GenDebIndexBounceXZ
GenDebIndexPos
GenDebIndexSort
GenDebIndexPosRandTime
GenDebIndexWaterFall
GenDebIndexWaterFallSplash
GenDebMomAdjFromPos
GenDebMomAdjFromPosAll
GenDebMomAdjFromPosRev
GenDebMomAdjFromSplash
GenDebMomAdjFromAshRock
CreateCopyMat
DebrisMalloc
DebAlloc
DebReAlloc2
DebReAlloc
AddChunkControlToStack
RemoveChunkControlFromStack
DebFree
DebFreeInstantly
DebFreeWithoutKey
DebrisEmiterPos
DebrisOrientation
DebrisEmitterOrientation
DebrisEmitterOrientationMtx
DebrisReflectionOrientation
DebrisStartOffset
DebrisSetTrigger
DebrisSetGroupID
FindDebrisEffectStack
AddDebrisEffectToStack
RemoveDebrisEffectFromStack
AddFiniteShotDebrisEffect
AddVariableShotDebrisEffectMtx2
AddVariableShotDebrisEffectMtx
AddVariableShotDebrisEffect
AddDebrisEffect
DebrisSetup
DebrisSetRenderGroup
DebrisDraw
Debris
LookupDebrisEffect
DebrisRegisterCutoffCameraVec
CameraEmitterDistance
DebrisCollisionCheck
NuRndrParticleGroup
# renderpsdma: native (PORT batches its quads into one GX block)
GenericDebinfoDmaTypeUpdate
CreateDmaParticleSet
CreateDmaPartEffectList
# cutscene system: non-matching decomp C (title/intro cut movies, hub cutscenes)
StateAnimEvaluate
NuGCutCharAnimProcess
NuGCutLocatorSysFixUp
NuGCutRigidCalcMtx
NuGCutRigidSysFixUp
instNuGCutCamSysUpdate
instNuGCutDebrisLocatorUpdate
instNuGCutRigidSysStart
instNuGCutSceneUpdate
# texture animation scripts (.ats parser + interpreter): non-matching decomp C
LabTabFind
XDefLabTabFind
ParGetCC
NuTexAnimEnvProc
NuTexAnimProgAssembleEnd
NuTexAnimProgInit
NuTexAnimProgReadScript
NuTexAnimProgSysInit
NuTexAnimXCall

# --- memory card saves (memcard.s has no decompiled C): runs on port_card.c
MC_Init
MC_Check
DoRead
saveloadASCallEachFrame
saveloadASSave
saveloadASDelete
saveloadASFormat
MemCardRetry
MemCardDelete
UpdateTime
ParseNintendoErrorCode

# --- sound effects (sssfx.s has no decompiled C): runs on the AX/AM emulation in port_audio.c
SS_Init
SS_LoadBank
SS_PlaySFX
SS_SetChannelVolume
SS_SetChannelPitch
SS_UpdateSFX
SS_StopAllSFX
SS_PauseSFX
SS_ResumeSFX
