Léo Lam
d8da4fc5f2
Actor: PlayerInfo/PlayerBase are game, GameConfig ksys
...
Every decomp user of PlayerInfo is game code, and PlayerBase sits right
above Player. GameConfig.h models the engine base that
links at GameConfig's slot in KingSystem/System.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06 03:19:38 +02:00
Léo Lam
34e57daf61
AI: merge the duplicate DummyAction into ksys
...
The action factory uses the single ksys ctor for both entries and
DummyDropTable's ctor calls it too; deriving from it makes
DummyDropTable's five functions match.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06 03:19:38 +02:00
Léo Lam
a168b93bbc
snd: move sound actions and AIs to KingSystem/Sound
...
They link with KingSystem/Sound (0x7100fe8b54-0x7101060ed4) as sorted
Action/AI passes of their own. The three area tag actions keep their
game base AreaTagAction, which links in the Game/Actor/Area block.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06 03:19:38 +02:00
Léo Lam
7bc225838a
Name placeholder declarations after the IDB
...
Keeps source and CSV from drifting from the IDB. Names are read from the
bodies, e.g. ActionBase::applyParams is what all 13 non-stub overrides
of that slot do.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06 03:19:37 +02:00
Léo Lam
891c0a8494
Merge pull request #216 from leoetlino/stack/03a-ai-base-renames
...
AI: rename misordered base classes
2026-10-06 01:57:14 +01:00
Flatener
9595c31c7f
world: implement Manager::isRaining ( #214 )
...
* world: implement Manager::isRaining
Implement the position-based rain check for Rain, HeavyRain, ThunderRain,
and BlueskyRain. Declare the climate weather lookup dependency and name
both functions in the function table.
The rain check matches the original function at 0x71010f33a4.
* world: keep rainfall queries const
Restore const on Manager::isRaining and make its climate weather helper
const. Both queries only read Manager state. Update their function-table
symbols; the rain check still matches the original.
2026-10-05 11:09:41 -07:00
Léo Lam
b12306210c
AI: rename misordered base classes
...
AI and Action TUs link in case-insensitive file-name order, so a guessed
base name that breaks it is wrong. Each new name sorts into the slot
where the class's TU sits (neighbouring TUs and an address in the TU
below) and comes from the class's params, child states and derived
classes.
ai::
| Old | New | Links between | In TU |
|---|---|---|---|
| AddViewTargetPosBase | AddViewTarget | AddSwarmMove – AddViewTargetPos | 0x71002f9c68 |
| AncientNecklaceBallBase | PlayASSwitch | PipeDrawing – PlayerSetTarget | 0x71004f6a78 |
| AnimalRoamBase | AnimalRndMove | AnimalRangeKeepMoveWithLOS – AnimalRoam | 0x710030a6c0 |
| AppearNearTarget | AppearFromTarget | AnimalTimelineAI – AppearFromTargetFrontAfterChase | 0x710030d868 |
| AssassinFieldShooterBattleBase | AssassinShooterBattle | AssassinRoot – AssassinShooterJuniorAzitoRoot | 0x7100321dc4 |
| AssassinMagicTgtSelect | TargetHeightAreaSelect | TargetExistSelect – TargetHomeDir | 0x71005bef5c |
| AssassinNormal | GuardHomePosNormal | GuardFrequencySelect – GuardianAI | 0x710040cd68 |
| BeamExplodeBase | SimpleBeamExplode | SimpleASBridge – SimpleEnemyNormal | 0x710056c5fc |
| ChildFavoriteSelectorBase | ChildSelector | ChildHaveSelect – ChmCheck | 0x710034aad0 |
| DragonRootBase | ControlRailRoot | ConditionMoveActionSelect – CookPotRoot | 0x7100356664 |
| EnemyChemTargetActionBase | EnemyTargetAction | EnemySyncAttack – EnemyTargetGearSelect | 0x71003bf75c |
| FlyingEnemyKeepMove | FlyingEnemyDistanceKeepMove | FlyingEnemyDiagonallyKeepMove – FlyingEnemyFindPlayer | 0x71003d1694 |
| GoronCannonBase | BigCannon | BezierRailMove – BirdDead | 0x710032cd80 |
| GuardNearTarget | InvincibleNearTargetBase | InvincibleNearTarget – InvisibleKorokRailMove | 0x710044c6b8 |
| GuardianBeamAttackBase | GuardianCommonBeamAttack | GuardianCloseBattle – GuardianDown | 0x7100411da0 |
| HorseCheckLineOfSightSelectorBase | CheckLineOfSightSelector | ChaseSound – ChemicalEnemyFindPlayer | 0x7100346868 |
| LargeEnemyFindPlayer | GiantEnemyFindPlayer | GiantEarthReleaseAttack – GiantEscapeFromDamageWater | 0x71003f69c8 |
| MimicCliffStopEnemyNormalBase | CliffStopEnemyNormal | CliffDistanceSelectThreeAction – CloseSmallAttackBase | 0x71003522f4 |
| MiniBeamAttack | GuideBeamAttackEnemyBattle | GuardianWait – GyroActivateTerminal | 0x710042cae8 |
| MotorcycleRootBase | HorseRiddenStatusSelector | HorseRiddenByNPC – HorseRideChargeAttack | 0x710043ea88 |
| NPCTravelBase | NPCScheduleMove | NPCRunaway – NPCSearch | 0x71004df66c |
| NonPlayerHorseRide | RideHorseNonPlayer | RideHorseAI – WildHorseDefWanderAI (Horse) | 0x7100e60178 |
| OctarockEscape | OctarockHideEscapeBase | OctarockHideEscape – OctarockOptionRoot | 0x71004ec368 |
| OctarockRootBase | VacuumEnemyRoot | VacuumedBombDamageSelect – VehicleSelector | 0x71005e3348 |
| OneMemoryMagicBattleBase | MagicBattle | LynelWarp – MagneGearRoot | 0x710049d0d8 |
| PriestBossMode | PriestBoss | PreyStun – PriestBossActorCloneRoot | 0x7100505b7c |
| RailMove | BezierRailMove | BeeSwarmRoot – BigCannon | 0x710032bbf0 |
| RangeSelect | NewRangeSelect | NewMannequinRoot – NormalHumanEquipableShield | 0x71004bc0e8 |
| RegistedActorNumTwoSelectBase | RegistedActor | ReflectableThrown – RegistedActorNumTwoSelect | 0x710053dfcc |
| RemainElectricCannonRootBase | LargeCannonRoot | LargeCannonAttackRoot – LastAttackerSelect | 0x71004741e4 |
| SandwormNormalBase | AwnSeal | AwarenessScale – BackAttackEnemyBattle | 0x71003258b4 |
| SeqTwoLineReachableTargetActionBase | SeqTwoLineReachableTarget | SeqTwoAction – SeqTwoLineReachableTargetAction | 0x7100567460 |
| SimpleWildlifeRoot | CapturedActorRoot | CapturedActorReactionChemical – CarryBox | 0x7100342690 |
| SiteBossChemicalProjectile | GanonFlameBall | GanonFarAttackRootOnWall – GanonGrudgeNormal | 0x71003e996c |
| SiteBossRecognizeRootBase | LastBossRecognizeRoot | LastBossRailWarpRoot – LastBossRoot | 0x7100478930 |
| SpecialEnemySleep | SleepNormal | SleepBedRoot – SleepSelect | 0x710059a8c0 |
| TargetAttackAttitudeTgtSelectBase | TargetAttackAttitudeTgt | TargetAngerSelect – TargetAttackAttitudeTgtSelect | 0x71005bb3ac |
| TargetPosAI | TargetActorPos | TargetActorGrabAdapter – TargetAngerSelect | 0x71005bab4c |
| TargetPosDynParamRot | TargetPosDynParamRotFromMyPos | TargetPosDynParamRotFromCtrPos – TargetPosLostCheck | 0x71005c4f8c |
| TargetPosOffset | OffsetTargetPos | OctarockWaterWait – OnCliffEnemyBattle | 0x71004f16d8 |
| TimedGuardNearTarget | InvincibleNearTarget | InvincibleHiddenOctarock – InvincibleNearTargetBase | 0x710044c1a4 |
| UnarmedEnemySearch | NavMove | NavMeshTurnAwayFromHitPos – NavMoveNearTarget | 0x71004b5ec0 |
| UnarmedEnemySearchWeapon | EnemySearch | EnemyRoot – EnemySearchHorse | 0x71003b6460 |
| WholeDungeonRotateTag | DungeonRotateTagApp | DungeonRotateTag4WindApp – DungeonRotateTagCont | 0x7100379554 |
action::
| Old | New | Links between | In TU |
|---|---|---|---|
| AirOctaFloatBase | AirOctaMoveBase | AirOctaMgr – AirOctaNoticeTurn | 0x71000880f8 |
| AtkTackleMove | TackleAttack | SystemWarp – TackleMove | 0x71002910a4 |
| BasicSignalEnemy | BasicSignalEnemyNotice | BasicSignalEnemyForceNotice – BattleCloseDangerAvoidRun* | 0x71000ba65c |
| BattleCloseAction | AvoidingCloseMoveBase | AvoidingCloseMoveActionWithAcc – AwarenessShareOnePartsASPlay | 0x71000aed44 |
| BattleCloseActionWithAcc | AvoidingCloseMoveActionWithAcc | AttackPartBind – AvoidingCloseMoveBase* | 0x71000ae8ec |
| BattleCloseSlippedWalkBase | BattleCloseSlippedMoveBase | BattleCloseMoveAction – BattleCloseSlippedWalk | 0x71000becc8 |
| CameraLockOnBase | CameraTrackBase | CameraTail – CameraWakeboard (Camera) | 0x71007850e4 |
| ChargeAndShoot | ArrowChargeAndShoot | AreaRoot – ArrowShootHoming | 0x71000a17a4 |
| ChemicalAttack | EmitAttackBase | ElectricParalysis – EmitElectricWaterBall | 0x7100104f54 |
| ChemicalAttackBall | ChemicalAttack | CheckHorseCustomizeEdit – ChemicalElectricWaterBall | 0x71000db0e8 |
| FlyingCharacterReaction | FlyingCharacterFreeFallBase | FlyingCharacterFreeFall – FlyingCharacterFreeFallDie | 0x7100132590 |
| FollowChallenge | AppearFollowChallenge | AnimeDrivenTurn – AppearNumHeroSeal | 0x710004d0b4 |
| ForkASTrgEmitShockWave | ForkEmitShockWave | ForkEmitExpandFieldWithCreate – ForkEmitShockWaveByContact | 0x710014f188 |
| GolemThrowPartsToTargetBase | GolemThrowPartsBase | GolemRepairParts – GolemThrowPartsToTarget | 0x710018d678 |
| HorseRideMoveCommand | HorseRideSetGearCommand | HorseRideSearch – HorseRideShoot | 0x71001b0828 |
| OctarockBalloonBase | BalloonRopeBase | BalloonBase – BasicSignalBossAwakeSleep | 0x71000b8b9c |
| PlayerGlide | PlayerParashawlGlideBase | PlayerParashawlGlide – PlayerPickUp (Player) | 0x710080352c |
| PriestBossWarpOrVanish | PriestBossCloneFastWarp | PreJumpAttack – PriestBossClonesSpawn | 0x7100221304 |
| RotateTurnToTarget | ASPlayRotateTurnToTarget | AscendingCurrentFixedSize – ASPlaySimpleAnmDriven | 0x71000a7bec |
| SetGetFlagBase | SetFlag | SetExtraLifeOfPlayer – SetFrameASPlay | 0x7100247990 |
| SimpleMessageDialogCtrl | ForkBasicMessageDialogCtrl | ForkAttackWithWeaponOrWithout – ForkBattleNodeForAttackGround | 0x71001471cc |
| SiteBossBlowOff | LastBossBlowOff | LargeDamage – LastBossChemicalPillarAttack | 0x71001cf0ec |
| SiteBossLswordAtk | SiteBossLswordAttack | SiteBossLswordAtkWithChemical – SiteBossLswordFireBall | 0x710025c470 |
| WaitOnObjBase | StopOnObj | StopJump – StorePlayerPosAndRotate* | 0x710027f974 |
| WaterUpDownMoveBase | WaterDepthMoveBase | WarpToStaticAnchor – WaterEmitter | 0x71002b33cc |
Neighbours marked * are the nearest correctly placed TU; a TU that is
itself still misnamed sits in between.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-04 23:40:26 +02:00
Léo Lam
b9c6e58791
Remove the AI class status lists
...
Decompilation progress is tracked per function in uking_functions.csv
and on the kanban board. These per-class lists stopped being updated
long ago (20 of 1927 actions "done") and only cost upkeep on renames.
(AI assisted using Claude Opus 5.5)
2026-10-04 23:40:13 +02:00
Léo Lam
732b8d3962
Merge pull request #215 from leoetlino/stack/02-small-fixes
...
Minor fixes for issues found during AI-assisted naming passes
2026-10-04 21:57:57 +01:00
Léo Lam
88b478ac37
Merge pull request #211 from leoetlino/stack/01-moves
...
Move source files around to better match link order
2026-10-04 21:14:43 +01:00
Michael Zhao
a005c77334
docs: improve agent instructions ( #213 )
2026-10-04 12:19:20 -07:00
Léo Lam
ec2ec9ad6d
Damage: move Game/Damage under Game/Actor
...
Link order: the damage code is interleaved with actor TUs inside the
Game/Actor block, not in a block of its own.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-04 06:50:35 +02:00
Léo Lam
a0245d4696
Move aiCameraEvent, AirOctaDataMgr, scenes, CameraMgr
...
Put each where link order does: aiCameraEvent in the camera AI run,
AirOctaDataMgr right before aiAirOctaFlyUp, CameraMgr between the
ActorSystem and Chemical runs.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-04 06:50:35 +02:00
Léo Lam
e70ecefe40
vlt: move the heap helpers into vltLayerMgrTask.cpp
...
The binary defines the HeapUtil.h helpers at the start of the
LayerMgrTask TU: their statics sit just before LayerMgrTask::sInstance.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-04 06:50:35 +02:00
Léo Lam
98c1e3bdbf
OverlayArenaSystem: S2's delegate is a task delegate
...
The vtable its ctor installs (0x710251A960) is a
Delegate1R<void*, bool>, and the callback returns bool.
(AI assisted using Claude Opus 5.5)
2026-09-29 03:50:01 +02:00
Léo Lam
8b562cb791
gdt: rename IncreaseLogger to DeferredFlagWriter
...
It logs nothing: it queues flag increments per core and
GameDataMgr::calc0 applies them once per frame. The IDB already uses
this name.
(AI assisted using Claude Opus 5.5)
2026-10-04 06:50:36 +02:00
Léo Lam
b0404a3630
data: fix O rows tools/check cannot tell apart
...
Each pair differs only in the vtable it installs or slot it fills, which
tools/check ignores. E.g. 0x7100b15bf4 installs FileDeviceReadStream's
vtable, and the ASAssetResource/ASAssetExResource D0 rows were swapped.
(AI assisted using Claude Opus 5.5)
2026-09-29 03:50:01 +02:00
Léo Lam
a5fb0a1632
aoc: fix the HardMode flag name
...
The flag is "AoC_HardMode_Enabled", as 0x71008e3dbc returns; tools/check
ignores string literals, so the misspelling still matched.
(AI assisted using Claude Opus 5.5)
2026-09-29 03:50:00 +02:00
Léo Lam
5b26254bfe
Merge pull request #209 from Pistonight/update_binaries
...
tools: update nx2elf
2026-09-26 10:44:57 +01:00
Pistonight
dd5ab84d04
tools: update nx2elf
2026-09-25 21:27:07 -07:00
Léo Lam
de0a313d16
Merge pull request #198 from tarun-bandi/docs/contact-point-callback-contract
...
Document ContactPointInfo callback contract
2026-09-24 23:59:56 +02:00
Michael Zhao
22b09dcc18
Merge pull request #206 from Pistonight/update_xlink2
...
lib: update xlink2
2026-09-20 14:01:39 -07:00
Pistonight
4eb51c96aa
lib: update xlink2
2026-09-20 13:56:17 -07:00
Léo Lam
328a69ab1b
Merge pull request #205 from Pistonight/update_many_libs
...
lib: update sead, sdk, agl, musl, tools
2026-09-20 22:33:02 +02:00
Léo Lam
7a2c29bde8
Merge pull request #203 from Pistonight/1.6.0_setup_script
...
setup: add 1.6.0 back
2026-09-20 22:10:25 +02:00
Léo Lam
24388af5af
Merge pull request #204 from Pistonight/just_agent_doc
...
setup: add agent instructions
2026-09-20 22:08:35 +02:00
Pistonight
21d20529a8
update libs
2026-09-20 13:03:47 -07:00
Pistonight
ba34644fcf
setup: add agent instructions
2026-09-20 13:00:48 -07:00
Pistonight
507802f1f3
setup: add 1.6.0 nso
2026-09-20 12:50:38 -07:00
Léo Lam
f4cd38c43b
Actor: move all AI code under Game/Actor
...
Link order shows one sorted actor tree, not a separate AI project: the
Action/AI/Query folders and per-feature folders (Camera, Player, Horse,
...) come out of the same archive rounds as the actor classes.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-09-14 00:02:22 +02:00
Tarun Bandi
8495c4214b
Document ContactPointInfo callback contract
2026-09-08 21:23:28 -07:00
Michael Zhao
7c65472576
Merge pull request #185 from RobbyV2/phys-system-heap-accessors
...
Match phys::System heap accessors
2026-07-30 17:06:14 -07:00
Michael Zhao
4f1f92f132
Merge pull request #184 from RobbyV2/phys-system-contact-listeners
...
Match phys::System contact listener and group handler forwarders
2026-07-30 17:04:47 -07:00
Michael Zhao
77a8d05cff
Merge pull request #181 from Nitr4m12/functions
...
data: fix function sizes
2026-07-30 17:03:40 -07:00
Nitr4m12
31a894a4ff
data: fix function sizes
2026-07-30 10:37:52 -04:00
RobbyV2
1e080b32eb
phys: match System contact listener and group handler functions
2026-07-30 09:09:55 -04:00
RobbyV2
c6c8beaf58
phys: match System heap accessors
2026-07-30 09:07:17 -04:00
Michael Zhao
cd3e7a9fbd
Merge pull request #182 from RobbyV2/actor-get-character-controller
...
Match Actor::getCharacterController
2026-07-29 20:52:36 -07:00
Michael Zhao
4caa1241f3
Merge pull request #179 from Nitr4m12/symbols
...
data: add aal symbols
2026-07-29 20:49:22 -07:00
Michael Zhao
157dcbc7e2
Merge pull request #180 from mairokaizo/pr/physsystem
...
ksys::phys::System: implement isPaused and collision/handler helpers
2026-07-29 20:46:17 -07:00
RobbyV2
ab0fe61df9
Match Actor::getCharacterController
2026-07-28 21:08:32 -04:00
Nitr4m12
7edfb11683
data: add aal symbols
2026-07-27 22:12:23 -04:00
mairokaizo
c99e6cfe94
ksys::phys::System: implement isPaused and collision/handler helpers
2026-07-24 09:43:16 -03:00
Michael Zhao
88da953350
Merge pull request #178 from Nitr4m12/xlink2
...
lib: Add xlink2 decomp as submodule
2026-07-11 23:07:31 -07:00
Nitr4m12
5094381e62
lib: Add xlink2 decomp as submodule
2026-07-11 23:40:06 -04:00
Michael Zhao
87cd98b1fc
Merge pull request #177 from Pistonight/tool/update_viking
...
tools: update viking, llvm-objdump, setup (enable python venv)
2026-07-01 00:05:22 -07:00
Pistonight
f27eb36f7d
tools: update viking, llvm-objdump, setup
2026-07-01 00:01:20 -07:00
Michael Zhao
cbb0ffa129
Merge pull request #171 from alexgsonic1-pixel/master
...
various: fix mismatches in some action stubs and ResourceMgrTask
2026-06-30 23:44:53 -07:00
root
003de4ab9f
various: fix mismatches in some action stubs and ResourceMgrTask
2026-06-23 03:05:43 -06:00
Michael Zhao
5c4f52d5ba
Merge pull request #167 from german77/submodule
...
data: Fill symbols
2026-06-01 18:47:21 -07:00