2022-10-02 05:13:41 +00:00
#!/usr/bin/env python3
LIBS = [
{
" lib " : " TRK_MINNOW_DOLPHIN " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-09 23:48:42 +00:00
" objects " : [
2022-10-19 01:58:24 +00:00
[ " MetroTRK/mslsupp " , True ] ,
] ,
2022-10-02 05:13:41 +00:00
} ,
{
2022-10-05 01:31:43 +00:00
" lib " : " MetroidPrimeCW " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/main " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/IRenderer " ,
2022-11-07 00:20:46 +00:00
[ " MetroidPrime/Cameras/CCameraManager " , False ] ,
2022-10-22 21:11:03 +00:00
[ " MetroidPrime/CControlMapper " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Cameras/CFirstPersonCamera " ,
2022-10-14 04:50:56 +00:00
[ " MetroidPrime/CObjectList " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Player/CPlayer " ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/CAxisAngle " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CEulerAngles " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/CArchMsgParmUserInput " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CFrontEndUI " ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CInputGenerator " , False ] ,
2022-10-24 01:44:54 +00:00
[ " MetroidPrime/CMainFlow " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CMFGame " ,
2023-01-19 09:05:39 +00:00
[ " MetroidPrime/CCredits " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CSplashScreen " ,
2022-12-05 21:35:31 +00:00
[ " MetroidPrime/CAnimData " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Factories/CCharacterFactory " ,
" MetroidPrime/Factories/CAssetFactory " ,
2022-12-07 06:06:09 +00:00
[ " MetroidPrime/Tweaks/CTweakPlayer " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Tweaks/CTweaks " ,
2022-10-16 14:57:07 +00:00
[ " MetroidPrime/Tweaks/CTweakGame " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CGameProjectile " ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/Player/CPlayerGun " , False ] ,
2022-11-14 23:08:47 +00:00
[ " MetroidPrime/CStateManager " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/CEntity " , True ] ,
[ " MetroidPrime/CArchMsgParmInt32 " , True ] ,
[ " MetroidPrime/CArchMsgParmInt32Int32VoidPtr " , True ] ,
[ " MetroidPrime/CArchMsgParmNull " , True ] ,
[ " MetroidPrime/CArchMsgParmReal32 " , True ] ,
2022-10-17 00:46:11 +00:00
[ " MetroidPrime/Decode " , True ] ,
2022-12-01 16:19:53 +00:00
[ " MetroidPrime/CIOWinManager " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/CIOWin " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CActor " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CWorld " ,
2022-10-14 10:01:20 +00:00
[ " MetroidPrime/Tweaks/CTweakParticle " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Clamp_int " ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/CArchMsgParmControllerStatus " , True ] ,
2022-11-27 00:26:12 +00:00
[ " MetroidPrime/CExplosion " , False ] ,
2022-10-19 01:47:26 +00:00
[ " MetroidPrime/CEffect " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Cameras/CGameCamera " ,
" MetroidPrime/CGameArea " ,
" MetroidPrime/HUD/CSamusHud " ,
2022-11-17 15:46:10 +00:00
[ " MetroidPrime/CAnimationDatabaseGame " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CTransitionDatabaseGame " ,
2022-10-19 03:46:19 +00:00
[ " MetroidPrime/Tweaks/CTweakPlayerControl " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Tweaks/CTweakPlayerGun " ,
" MetroidPrime/CPauseScreen " ,
2023-01-13 16:50:50 +00:00
[ " MetroidPrime/Tweaks/CTweakGui " , False ] ,
2022-11-16 20:06:16 +00:00
[ " MetroidPrime/ScriptObjects/CScriptActor " , False ] ,
2022-10-21 01:32:04 +00:00
[ " MetroidPrime/ScriptObjects/CScriptTrigger " , False ] ,
2022-11-04 15:17:11 +00:00
[ " MetroidPrime/ScriptObjects/CScriptWaypoint " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CPatterned " ,
" MetroidPrime/ScriptObjects/CScriptDoor " ,
2022-10-23 04:49:41 +00:00
[ " MetroidPrime/Enemies/CStateMachine " , False ] ,
2022-12-05 15:43:31 +00:00
[ " MetroidPrime/CMapArea " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/Cameras/CBallCamera " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/ScriptObjects/CScriptEffect " ,
" MetroidPrime/Weapons/CBomb " ,
2022-11-10 21:16:05 +00:00
[ " MetroidPrime/Tweaks/CTweakBall " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/Player/CPlayerState " , False ] ,
2022-10-18 15:17:17 +00:00
[ " MetroidPrime/ScriptObjects/CScriptTimer " , True ] ,
2022-11-16 20:06:16 +00:00
[ " MetroidPrime/Cameras/CCinematicCamera " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CAutoMapper " ,
2022-10-16 13:31:44 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCounter " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CMapWorld " ,
" MetroidPrime/Enemies/CAi " ,
2022-10-23 18:35:55 +00:00
[ " MetroidPrime/Enemies/PatternedCastTo " , True ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/TCastTo " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/ScriptObjects/CScriptSound " ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/ScriptObjects/CScriptPlatform " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/UserNames " , True ] ,
2022-11-30 21:26:00 +00:00
[ " MetroidPrime/ScriptObjects/CScriptGenerator " , False ] ,
2022-10-21 16:43:17 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCameraWaypoint " , False ] ,
2022-10-18 22:00:44 +00:00
[ " MetroidPrime/CGameLight " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Tweaks/CTweakTargeting " ,
2022-10-20 12:45:54 +00:00
[ " MetroidPrime/Tweaks/CTweakAutoMapper " , True ] ,
2022-10-17 16:02:54 +00:00
[ " MetroidPrime/CParticleGenInfoGeneric " , True ] ,
2022-10-19 03:50:15 +00:00
[ " MetroidPrime/CParticleGenInfo " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CParticleDatabase " ,
" MetroidPrime/Tweaks/CTweakGunRes " ,
" MetroidPrime/CTargetReticles " ,
2022-11-10 02:06:24 +00:00
[ " MetroidPrime/CWeaponMgr " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/ScriptObjects/CScriptPickup " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CDamageInfo " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/CMemoryDrawEnum " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/ScriptObjects/CScriptDock " ,
" MetroidPrime/ScriptObjects/CScriptCameraHint " ,
2022-11-14 13:37:44 +00:00
[ " MetroidPrime/ScriptLoader " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CSamusDoll " ,
" MetroidPrime/Factories/CStateMachineFactory " ,
2022-11-25 00:01:26 +00:00
[ " MetroidPrime/Weapons/CPlasmaBeam " , False ] ,
2022-11-15 20:06:18 +00:00
[ " MetroidPrime/Weapons/CPowerBeam " , False ] ,
2022-12-07 22:48:51 +00:00
[ " MetroidPrime/Weapons/CWaveBeam " , False ] ,
2022-11-24 16:48:00 +00:00
[ " MetroidPrime/Weapons/CIceBeam " , False ] ,
2022-11-03 16:17:05 +00:00
[ " MetroidPrime/CScriptMailbox " , False ] ,
2022-10-16 13:59:20 +00:00
[ " MetroidPrime/ScriptObjects/CScriptRelay " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/ScriptObjects/CScriptSpawnPoint " , False ] ,
2022-11-09 00:12:27 +00:00
[ " MetroidPrime/ScriptObjects/CScriptRandomRelay " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CBeetle " ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/HUD/CHUDMemoParms " , True ] ,
2022-10-19 23:08:22 +00:00
[ " MetroidPrime/ScriptObjects/CScriptHUDMemo " , True ] ,
2022-12-05 18:17:40 +00:00
[ " MetroidPrime/CMappableObject " , False ] ,
2023-01-10 06:51:58 +00:00
[ " MetroidPrime/Player/CPlayerCameraBob " , False ] ,
2022-11-03 12:48:51 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCameraFilterKeyframe " , True ] ,
2022-10-17 17:43:21 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCameraBlurKeyframe " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/Cameras/CCameraFilter " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Player/CMorphBall " ,
" MetroidPrime/ScriptObjects/CScriptDamageableTrigger " ,
" MetroidPrime/ScriptObjects/CScriptDebris " ,
2022-11-03 12:29:47 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCameraShaker " , True ] ,
2022-11-10 23:23:57 +00:00
[ " MetroidPrime/ScriptObjects/CScriptActorKeyframe " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CConsoleOutputWindow " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/ScriptObjects/CScriptWater " ,
2022-11-03 16:17:05 +00:00
[ " MetroidPrime/Weapons/CWeapon " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CDamageVulnerability " , False ] ,
2022-11-27 03:04:19 +00:00
[ " MetroidPrime/CActorLights " , False ] ,
2022-10-14 15:12:16 +00:00
[ " MetroidPrime/Enemies/CPatternedInfo " , True ] ,
2022-11-17 04:56:21 +00:00
[ " MetroidPrime/CSimpleShadow " , False ] ,
2022-12-24 05:34:11 +00:00
[ " MetroidPrime/CActorParameters " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CInGameGuiManager " ,
" MetroidPrime/Enemies/CWarWasp " ,
2022-12-01 16:11:09 +00:00
[ " MetroidPrime/CWorldShadow " , False ] ,
2022-10-13 23:34:22 +00:00
[ " MetroidPrime/CAudioStateWin " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Player/CPlayerVisor " ,
" MetroidPrime/CModelData " ,
" MetroidPrime/CDecalManager " ,
" MetroidPrime/ScriptObjects/CScriptSpiderBallWaypoint " ,
" MetroidPrime/Enemies/CBloodFlower " ,
2022-10-10 02:27:35 +00:00
[ " MetroidPrime/TGameTypes " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CPhysicsActor " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/CPhysicsState " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CRipple " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CFluidUVMotion " ,
2022-10-21 00:26:38 +00:00
[ " MetroidPrime/CRippleManager " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/Player/CGrappleArm " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CSpacePirate " ,
2022-11-08 00:40:58 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCoverPoint " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Cameras/CPathCamera " ,
" MetroidPrime/CFluidPlane " ,
" MetroidPrime/CFluidPlaneManager " ,
2022-10-17 18:28:33 +00:00
[ " MetroidPrime/ScriptObjects/CScriptGrapplePoint " , True ] ,
2022-11-11 00:26:17 +00:00
[ " MetroidPrime/ScriptObjects/CHUDBillboardEffect " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CFlickerBat " ,
2023-02-05 19:12:46 +00:00
[ " MetroidPrime/BodyState/CBodyStateCmdMgr " , False ] ,
2022-10-25 15:43:42 +00:00
[ " MetroidPrime/BodyState/CBodyStateInfo " , False ] ,
2022-11-11 14:51:34 +00:00
[ " MetroidPrime/BodyState/CBSAttack " , False ] ,
2022-10-28 08:57:00 +00:00
[ " MetroidPrime/BodyState/CBSDie " , True ] ,
2022-10-28 13:16:03 +00:00
[ " MetroidPrime/BodyState/CBSFall " , False ] ,
2022-10-28 09:17:39 +00:00
[ " MetroidPrime/BodyState/CBSGetup " , True ] ,
2022-10-28 16:12:27 +00:00
[ " MetroidPrime/BodyState/CBSKnockBack " , False ] ,
2022-10-28 10:49:33 +00:00
[ " MetroidPrime/BodyState/CBSLieOnGround " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/BodyState/CBSLocomotion " ,
2022-10-28 11:41:31 +00:00
[ " MetroidPrime/BodyState/CBSStep " , True ] ,
2022-11-23 21:25:35 +00:00
[ " MetroidPrime/BodyState/CBSTurn " , False ] ,
2023-02-05 19:12:46 +00:00
[ " MetroidPrime/BodyState/CBodyController " , False ] ,
2022-11-11 16:16:51 +00:00
[ " MetroidPrime/BodyState/CBSLoopAttack " , False ] ,
2022-11-11 02:25:54 +00:00
[ " MetroidPrime/Weapons/CTargetableProjectile " , False ] ,
2022-11-21 23:25:57 +00:00
[ " MetroidPrime/BodyState/CBSLoopReaction " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CSteeringBehaviors " ,
2022-10-28 13:37:30 +00:00
[ " MetroidPrime/BodyState/CBSGroundHit " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CChozoGhost " ,
" MetroidPrime/Enemies/CFireFlea " ,
2022-10-24 23:29:11 +00:00
[ " MetroidPrime/BodyState/CBSSlide " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/BodyState/CBSHurled " ,
" MetroidPrime/BodyState/CBSJump " ,
2022-10-28 11:26:17 +00:00
[ " MetroidPrime/BodyState/CBSGenerate " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CPuddleSpore " ,
2022-10-28 11:34:03 +00:00
[ " MetroidPrime/BodyState/CBSTaunt " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CSortedLists " ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/ScriptObjects/CScriptDebugCameraWaypoint " , True ] ,
2022-10-21 15:13:34 +00:00
[ " MetroidPrime/ScriptObjects/CScriptSpiderBallAttractionSurface " , False ] ,
2022-10-28 11:25:08 +00:00
[ " MetroidPrime/BodyState/CBSScripted " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CPuddleToadGamma " ,
2022-10-21 14:28:54 +00:00
[ " MetroidPrime/ScriptObjects/CScriptDistanceFog " , False ] ,
2022-10-31 23:03:15 +00:00
[ " MetroidPrime/BodyState/CBSProjectileAttack " , True ] ,
2022-11-09 23:45:24 +00:00
[ " MetroidPrime/Weapons/CPowerBomb " , False ] ,
2022-10-29 04:22:07 +00:00
[ " MetroidPrime/Enemies/CMetaree " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/ScriptObjects/CScriptDockAreaChange " , False ] ,
[ " MetroidPrime/ScriptObjects/CScriptSpecialFunction " , False ] ,
2022-12-24 01:50:36 +00:00
[ " MetroidPrime/ScriptObjects/CScriptActorRotate " , False ] ,
2022-10-18 22:37:01 +00:00
[ " MetroidPrime/Player/CFidget " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CSpankWeed " ,
" MetroidPrime/Enemies/CParasite " ,
2022-11-26 13:51:04 +00:00
[ " MetroidPrime/Player/CSamusFaceReflection " , False ] ,
2022-11-03 22:05:21 +00:00
[ " MetroidPrime/ScriptObjects/CScriptPlayerHint " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CRipper " ,
" MetroidPrime/Cameras/CCameraShakeData " ,
2022-11-29 17:17:12 +00:00
[ " MetroidPrime/ScriptObjects/CScriptPickupGenerator " , False ] ,
2022-10-21 14:51:59 +00:00
[ " MetroidPrime/ScriptObjects/CScriptPointOfInterest " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CDrone " ,
" MetroidPrime/CMapWorldInfo " ,
2022-10-23 03:02:37 +00:00
[ " MetroidPrime/Factories/CScannableObjectInfo " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CMetroid " ,
" MetroidPrime/Player/CScanDisplay " ,
2022-10-21 01:32:04 +00:00
[ " MetroidPrime/ScriptObjects/CScriptSteam " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/ScriptObjects/CScriptRipple " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CBoneTracking " ,
2022-10-21 13:48:25 +00:00
[ " MetroidPrime/Player/CFaceplateDecoration " , False ] ,
2022-11-11 12:55:40 +00:00
[ " MetroidPrime/BodyState/CBSCover " , False ] ,
2022-11-05 03:20:01 +00:00
[ " MetroidPrime/ScriptObjects/CScriptBallTrigger " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Weapons/CPlasmaProjectile " ,
" MetroidPrime/Player/CPlayerOrbit " ,
" MetroidPrime/CGameCollision " ,
2022-10-13 22:47:30 +00:00
[ " MetroidPrime/CBallFilter " , True ] ,
2022-10-19 04:11:57 +00:00
[ " MetroidPrime/CAABoxFilter " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CGroundMovement " ,
2022-11-03 16:17:05 +00:00
[ " MetroidPrime/Enemies/CNewIntroBoss " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Weapons/CPhazonBeam " ,
2022-10-17 18:17:46 +00:00
[ " MetroidPrime/ScriptObjects/CScriptTargetingPoint " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/BodyState/CBSWallHang " ,
2022-11-14 00:10:00 +00:00
[ " MetroidPrime/ScriptObjects/CScriptEMPulse " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/HUD/CHudDecoInterface " ,
" MetroidPrime/Weapons/CFlameThrower " ,
2022-11-24 16:29:09 +00:00
[ " MetroidPrime/Weapons/CBeamProjectile " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CFluidPlaneCPU " ,
" MetroidPrime/CFluidPlaneDoor " ,
2022-11-04 14:58:34 +00:00
[ " MetroidPrime/ScriptObjects/CScriptRoomAcoustics " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CIceSheegoth " ,
2022-11-03 16:17:05 +00:00
[ " MetroidPrime/CCollisionActorManager " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CCollisionActor " ,
" MetroidPrime/ScriptObjects/CScriptPlayerActor " ,
" MetroidPrime/Tweaks/CTweakPlayerRes " ,
2022-10-20 02:00:49 +00:00
[ " MetroidPrime/Enemies/CBurstFire " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CFlaahgra " ,
" MetroidPrime/Player/CPlayerEnergyDrain " ,
2022-11-27 01:43:52 +00:00
[ " MetroidPrime/CFlameWarp " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Weapons/CIceImpact " ,
2022-10-14 05:58:49 +00:00
[ " MetroidPrime/GameObjectLists " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Weapons/CAuxWeapon " ,
2022-11-25 00:01:26 +00:00
[ " MetroidPrime/Weapons/CGunWeapon " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/ScriptObjects/CScriptAreaAttributes " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Weapons/CWaveBuster " ,
2022-11-10 10:55:04 +00:00
[ " MetroidPrime/Player/CStaticInterference " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CMetroidBeta " ,
" MetroidPrime/PathFinding/CPathFindSearch " ,
" MetroidPrime/PathFinding/CPathFindRegion " ,
" MetroidPrime/PathFinding/CPathFindArea " ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/Weapons/GunController/CGunController " , False ] ,
[ " MetroidPrime/Weapons/GunController/CGSFreeLook " , False ] ,
2022-11-07 23:04:20 +00:00
[ " MetroidPrime/Weapons/GunController/CGSComboFire " , True ] ,
2022-11-07 17:06:11 +00:00
[ " MetroidPrime/HUD/CHudBallInterface " , False ] ,
2022-11-10 21:39:23 +00:00
[ " MetroidPrime/Tweaks/CTweakGuiColors " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/ScriptObjects/CFishCloud " ,
2022-10-13 22:37:09 +00:00
[ " MetroidPrime/CHealthInfo " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Player/CGameState " ,
2022-10-23 13:44:06 +00:00
[ " MetroidPrime/ScriptObjects/CScriptVisorFlare " , False ] ,
2022-11-08 23:04:51 +00:00
[ " MetroidPrime/ScriptObjects/CScriptWorldTeleporter " , False ] ,
2022-11-22 21:11:50 +00:00
[ " MetroidPrime/ScriptObjects/CScriptVisorGoo " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CJellyZap " ,
2022-12-08 22:05:14 +00:00
[ " MetroidPrime/ScriptObjects/CScriptControllerAction " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/Weapons/GunController/CGunMotion " , False ] ,
2022-10-09 23:48:42 +00:00
[ " MetroidPrime/ScriptObjects/CScriptSwitch " , True ] ,
2022-10-14 08:46:50 +00:00
[ " MetroidPrime/BodyState/CABSIdle " , True ] ,
2022-10-17 00:46:11 +00:00
[ " MetroidPrime/BodyState/CABSFlinch " , True ] ,
2022-11-10 18:50:42 +00:00
[ " MetroidPrime/BodyState/CABSAim " , False ] ,
2022-10-16 15:16:28 +00:00
[ " MetroidPrime/ScriptObjects/CScriptPlayerStateChange " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CThardus " ,
" MetroidPrime/CActorParticles " ,
" MetroidPrime/Enemies/CWallCrawlerSwarm " ,
2022-10-21 16:00:19 +00:00
[ " MetroidPrime/ScriptObjects/CScriptAiJumpPoint " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CMessageScreen " ,
" MetroidPrime/Enemies/CFlaahgraTentacle " ,
2022-11-07 23:20:36 +00:00
[ " MetroidPrime/Weapons/GunController/CGSFidget " , True ] ,
2022-10-28 12:33:10 +00:00
[ " MetroidPrime/BodyState/CABSReaction " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Weapons/CIceProjectile " ,
" MetroidPrime/Enemies/CFlyingPirate " ,
" MetroidPrime/ScriptObjects/CScriptColorModulate " ,
" MetroidPrime/CMapUniverse " ,
" MetroidPrime/Enemies/CThardusRockProjectile " ,
" MetroidPrime/CInventoryScreen " ,
2022-10-23 13:44:06 +00:00
[ " MetroidPrime/CVisorFlare " , False ] ,
2022-11-26 04:02:24 +00:00
[ " MetroidPrime/Enemies/CFlaahgraPlants " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CWorldTransManager " ,
2022-10-21 21:40:29 +00:00
[ " MetroidPrime/ScriptObjects/CScriptMidi " , False ] ,
2022-12-22 14:19:00 +00:00
[ " MetroidPrime/ScriptObjects/CScriptStreamedAudio " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CRagDoll " ,
2022-10-31 16:19:28 +00:00
[ " MetroidPrime/Player/CGameOptions " , False ] ,
2022-10-21 12:52:22 +00:00
[ " MetroidPrime/ScriptObjects/CRepulsor " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CEnvFxManager " ,
" MetroidPrime/Weapons/CEnergyProjectile " ,
" MetroidPrime/ScriptObjects/CScriptGunTurret " ,
2022-10-20 11:18:42 +00:00
[ " MetroidPrime/Weapons/CProjectileInfo " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CInGameTweakManager " ,
" MetroidPrime/Enemies/CBabygoth " ,
" MetroidPrime/Enemies/CEyeBall " ,
" MetroidPrime/CIkChain " ,
2022-11-03 22:36:16 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCameraPitchVolume " , True ] ,
2023-01-14 21:22:15 +00:00
[ " MetroidPrime/RumbleFxTable " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CElitePirate " ,
2022-10-17 11:10:16 +00:00
[ " MetroidPrime/CRumbleManager " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CBouncyGrenade " ,
" MetroidPrime/Enemies/CGrenadeLauncher " ,
" MetroidPrime/Weapons/CShockWave " ,
2022-11-07 13:30:53 +00:00
[ " MetroidPrime/Enemies/CRipperControlledPlatform " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CKnockBackController " ,
2022-11-04 16:15:45 +00:00
[ " MetroidPrime/Player/CWorldLayerState " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CMagdolite " ,
" MetroidPrime/Enemies/CTeamAiMgr " ,
" MetroidPrime/Enemies/CSnakeWeedSwarm " ,
2023-01-10 06:52:51 +00:00
" MetroidPrime/Cameras/CBallCameraFailsafeState " ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CActorContraption " ,
" MetroidPrime/ScriptObjects/CScriptSpindleCamera " ,
2022-10-15 16:24:27 +00:00
[ " MetroidPrime/ScriptObjects/CScriptMemoryRelay " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CPauseScreenFrame " ,
" MetroidPrime/Enemies/CAtomicAlpha " ,
" MetroidPrime/CLogBookScreen " ,
2022-10-16 20:20:36 +00:00
[ " MetroidPrime/CGBASupport " , True ] ,
2022-10-27 04:40:41 +00:00
" MetroidPrime/Player/CWorldSaveGameInfo " ,
2022-10-21 16:23:06 +00:00
[ " MetroidPrime/ScriptObjects/CScriptCameraHintTrigger " , True ] ,
2022-10-20 16:16:55 +00:00
[ " MetroidPrime/Enemies/CAmbientAI " , True ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/CMemoryCardDriver " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CSaveGameScreen " ,
" MetroidPrime/Enemies/CAtomicBeta " ,
2022-11-23 23:49:52 +00:00
[ " MetroidPrime/Weapons/CElectricBeamProjectile " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CRidley " ,
2022-10-29 04:22:07 +00:00
[ " MetroidPrime/Enemies/CPuffer " , False ] ,
2022-10-19 01:58:24 +00:00
[ " MetroidPrime/ScriptObjects/CFire " , False ] ,
2022-11-10 16:32:18 +00:00
[ " MetroidPrime/CPauseScreenBlur " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CTryclops " ,
" MetroidPrime/Weapons/CNewFlameThrower " ,
" MetroidPrime/Cameras/CInterpolationCamera " ,
" MetroidPrime/Enemies/CSeedling " ,
" MetroidPrime/Player/CGameHintInfo " ,
" MetroidPrime/Enemies/CWallWalker " ,
2022-11-24 00:41:55 +00:00
[ " MetroidPrime/CErrorOutputWindow " , False ] ,
2023-01-07 22:59:28 +00:00
[ " MetroidPrime/CRainSplashGenerator " , False ] ,
2022-10-27 04:40:41 +00:00
" MetroidPrime/Factories/CWorldSaveGameInfoFactory " ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CFluidPlaneRender " ,
" MetroidPrime/Enemies/CBurrower " ,
" MetroidPrime/Enemies/CMetroidPrimeExo " ,
2022-10-31 23:46:20 +00:00
[ " MetroidPrime/ScriptObjects/CScriptBeam " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/CMetroidPrimeEssence " ,
" MetroidPrime/Enemies/CMetroidPrimeRelay " ,
" MetroidPrime/Player/CPlayerDynamics " ,
2023-02-06 16:42:48 +00:00
[ " MetroidPrime/ScriptObjects/CScriptMazeNode " , True ] ,
2022-12-01 13:45:36 +00:00
[ " MetroidPrime/Weapons/WeaponTypes " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/Enemies/COmegaPirate " ,
" MetroidPrime/Enemies/CPhazonPool " ,
" MetroidPrime/CNESEmulator " ,
" MetroidPrime/Enemies/CPhazonHealingNodule " ,
" MetroidPrime/Player/CMorphBallShadow " ,
" MetroidPrime/Player/CPlayerInputFilter " ,
" MetroidPrime/CSlideShow " ,
2022-10-16 16:35:43 +00:00
[ " MetroidPrime/Tweaks/CTweakSlideShow " , True ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/CArtifactDoll " ,
2022-12-13 01:15:33 +00:00
[ " MetroidPrime/CProjectedShadow " , False ] ,
2022-10-17 11:47:47 +00:00
[ " MetroidPrime/CPreFrontEnd " , True ] ,
2022-11-14 02:18:45 +00:00
[ " MetroidPrime/CGameCubeDoll " , False ] ,
2022-11-08 14:10:22 +00:00
[ " MetroidPrime/ScriptObjects/CScriptProjectedShadow " , False ] ,
2022-10-02 05:13:41 +00:00
" MetroidPrime/ScriptObjects/CEnergyBall " ,
2022-12-31 20:11:53 +00:00
[ " MetroidPrime/Enemies/CMetroidPrimeProjectile " , True ] ,
2022-10-19 01:38:45 +00:00
[ " MetroidPrime/Enemies/SPositionHistory " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " WorldFormatCW " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
" WorldFormat/CAreaOctTree_Tests " ,
2022-10-09 23:48:42 +00:00
[ " WorldFormat/CCollisionSurface " , True ] ,
2022-11-03 06:54:47 +00:00
[ " WorldFormat/CMetroidModelInstance " , True ] ,
2022-10-02 05:13:41 +00:00
" WorldFormat/CAreaBspTree " ,
" WorldFormat/CAreaOctTree " ,
2022-10-21 00:26:38 +00:00
[ " WorldFormat/CMetroidAreaCollider " , False ] ,
2022-10-19 01:58:24 +00:00
[ " WorldFormat/CWorldLight " , False ] ,
2022-10-02 05:13:41 +00:00
" WorldFormat/COBBTree " ,
" WorldFormat/CCollidableOBBTree " ,
" WorldFormat/CCollidableOBBTreeGroup " ,
2022-10-13 16:00:49 +00:00
" WorldFormat/CPVSAreaSet " ,
2022-10-02 05:13:41 +00:00
" WorldFormat/CAreaRenderOctTree " ,
] ,
} ,
{
" lib " : " WeaponsCW " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-12-09 19:11:37 +00:00
" Weapons/CProjectileWeapon " ,
2022-10-02 05:13:41 +00:00
" Weapons/CProjectileWeaponDataFactory " ,
" Weapons/CCollisionResponseData " ,
2022-10-09 23:48:42 +00:00
[ " Weapons/IWeaponRenderer " , True ] ,
2022-10-02 05:13:41 +00:00
" Weapons/CDecalDataFactory " ,
2022-10-19 01:58:24 +00:00
[ " Weapons/CDecal " , False ] ,
2022-11-17 05:13:56 +00:00
[ " Weapons/CWeaponDescription " , True ] ,
2022-11-17 04:36:02 +00:00
[ " Weapons/CDecalDescription " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " MetaRenderCW " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [ " MetaRender/CCubeRenderer " ] ,
} ,
{
" lib " : " GuiSysCW " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-12-09 21:30:06 +00:00
[ " GuiSys/CAuiMain " , True ] ,
2022-10-02 05:13:41 +00:00
" GuiSys/CAuiMeter " ,
" GuiSys/CGuiGroup " ,
" GuiSys/CGuiHeadWidget " ,
2023-01-14 00:53:27 +00:00
[ " GuiSys/CGuiLight " , True ] ,
2022-10-02 05:13:41 +00:00
" GuiSys/CGuiModel " ,
2022-12-29 03:32:27 +00:00
[ " GuiSys/CGuiObject " , False ] ,
2022-10-02 05:13:41 +00:00
" GuiSys/CGuiPane " ,
" GuiSys/CGuiSliderGroup " ,
2022-12-31 19:59:30 +00:00
[ " GuiSys/CGuiSys " , True ] ,
2022-10-02 05:13:41 +00:00
" GuiSys/CGuiTableGroup " ,
" GuiSys/CGuiTextPane " ,
" GuiSys/CGuiTextSupport " ,
" GuiSys/CGuiWidget " ,
" GuiSys/CGuiWidgetIdDB " ,
2022-12-31 19:01:15 +00:00
[ " GuiSys/CGuiWidgetDrawParms " , True ] ,
2022-10-02 05:13:41 +00:00
" GuiSys/CAuiEnergyBarT01 " ,
" GuiSys/CAuiImagePane " ,
2022-11-16 22:17:35 +00:00
[ " GuiSys/CRepeatState " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " CollisionCW " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-12-31 22:07:51 +00:00
[ " Collision/CCollidableAABox " , False ] ,
2022-12-08 22:33:06 +00:00
[ " Collision/CCollidableCollisionSurface " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Collision/CCollisionInfo " , True ] ,
2022-10-02 05:13:41 +00:00
" Collision/InternalColliders " ,
2022-12-24 08:06:45 +00:00
[ " Collision/CCollisionPrimitive " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Collision/CMaterialList " , True ] ,
2022-12-31 22:07:51 +00:00
[ " Collision/CollisionUtil " , False ] ,
2022-10-02 05:13:41 +00:00
" Collision/CCollidableSphere " ,
2022-10-09 23:48:42 +00:00
[ " Collision/CMaterialFilter " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Collision/COBBox " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Collision/CMRay " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " Kyoto_CW1 " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-12-06 04:25:17 +00:00
[ " Kyoto/Basics/CBasics " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Basics/CStopwatch " , True ] ,
2022-12-06 04:11:13 +00:00
[ " Kyoto/Basics/CBasicsDolphin " , True ] ,
2022-10-14 15:46:40 +00:00
[ " Kyoto/Alloc/CCallStackDolphin " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Basics/COsContextDolphin " , True ] ,
[ " Kyoto/Basics/CSWDataDolphin " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Basics/RAssertDolphin " , False ] ,
2022-12-08 22:45:30 +00:00
[ " Kyoto/Animation/CAnimation " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/CAnimationManager " ,
" Kyoto/Animation/CAnimationSet " ,
" Kyoto/Animation/CAnimCharacterSet " ,
" Kyoto/Animation/CAnimTreeLoopIn " ,
" Kyoto/Animation/CAnimTreeSequence " ,
" Kyoto/Animation/CCharacterInfo " ,
" Kyoto/Animation/CCharacterSet " ,
" Kyoto/Animation/CMetaAnimBlend " ,
" Kyoto/Animation/CMetaAnimFactory " ,
" Kyoto/Animation/CMetaAnimPhaseBlend " ,
" Kyoto/Animation/CMetaAnimPlay " ,
" Kyoto/Animation/CMetaAnimRandom " ,
" Kyoto/Animation/CMetaAnimSequence " ,
" Kyoto/Animation/CMetaTransFactory " ,
" Kyoto/Animation/CMetaTransMetaAnim " ,
" Kyoto/Animation/CMetaTransPhaseTrans " ,
" Kyoto/Animation/CMetaTransSnap " ,
" Kyoto/Animation/CMetaTransTrans " ,
2023-01-12 03:00:40 +00:00
[ " Kyoto/Animation/CPASAnimInfo " , True ] ,
2023-01-12 02:20:23 +00:00
[ " Kyoto/Animation/CPASAnimParm " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/CPASAnimState " ,
" Kyoto/Animation/CPASDatabase " ,
2023-01-12 02:43:43 +00:00
[ " Kyoto/Animation/CPASParmInfo " , True ] ,
2022-12-09 19:38:20 +00:00
[ " Kyoto/Animation/CPrimitive " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/CSequenceHelper " ,
2022-12-08 23:01:45 +00:00
[ " Kyoto/Animation/CTransition " , True ] ,
2023-01-12 00:34:08 +00:00
[ " Kyoto/Animation/CTransitionManager " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/CTreeUtils " ,
" Kyoto/Animation/IMetaAnim " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Audio/CSfxHandle " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Audio/CSfxManager " ,
" Kyoto/Animation/CAdvancementDeltas " ,
" Kyoto/Animation/CAnimMathUtils " ,
" Kyoto/Animation/CAnimPOIData " ,
" Kyoto/Animation/CAnimSource " ,
" Kyoto/Animation/CAnimSourceReader " ,
" Kyoto/Animation/CAnimSourceReaderBase " ,
" Kyoto/Animation/CAnimTreeAnimReaderContainer " ,
" Kyoto/Animation/CAnimTreeBlend " ,
" Kyoto/Animation/CAnimTreeContinuousPhaseBlend " ,
" Kyoto/Animation/CAnimTreeDoubleChild " ,
" Kyoto/Animation/CAnimTreeNode " ,
" Kyoto/Animation/CAnimTreeSingleChild " ,
" Kyoto/Animation/CAnimTreeTimeScale " ,
" Kyoto/Animation/CAnimTreeTransition " ,
" Kyoto/Animation/CAnimTreeTweenBase " ,
2023-01-12 01:33:42 +00:00
[ " Kyoto/Animation/CBoolPOINode " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/CCharAnimMemoryMetrics " ,
" Kyoto/Animation/CCharLayoutInfo " ,
" Kyoto/Animation/CFBStreamedAnimReader " ,
" Kyoto/Animation/CFBStreamedCompression " ,
" Kyoto/Animation/CHierarchyPoseBuilder " ,
2023-01-12 01:02:35 +00:00
[ " Kyoto/Animation/CInt32POINode " , True ] ,
2023-01-12 01:44:25 +00:00
[ " Kyoto/Animation/CParticlePOINode " , True ] ,
2022-12-09 20:16:05 +00:00
[ " Kyoto/Animation/CPOINode " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/CSegStatementSet " ,
" Kyoto/Animation/CTimeScaleFunctions " ,
" Kyoto/Animation/IAnimReader " ,
" Kyoto/Animation/CAllFormatsAnimSource " ,
2023-01-29 22:58:21 +00:00
[ " Kyoto/CDvdRequestManager " , True ] ,
[ " Kyoto/CDvdRequest " , True ] ,
2023-01-11 20:06:08 +00:00
[ " Kyoto/Text/CColorInstruction " , True ] ,
2023-01-11 21:26:39 +00:00
[ " Kyoto/Text/CColorOverrideInstruction " , True ] ,
2022-12-23 02:15:25 +00:00
[ " Kyoto/Text/CDrawStringOptions " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Text/CFontInstruction " ,
" Kyoto/Text/CFontRenderState " ,
2023-01-10 23:03:07 +00:00
[ " Kyoto/Text/CLineExtraSpaceInstruction " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Text/CLineInstruction " ,
2023-01-08 02:31:19 +00:00
[ " Kyoto/Text/CLineSpacingInstruction " , True ] ,
2023-01-11 19:08:11 +00:00
[ " Kyoto/Text/CPopStateInstruction " , True ] ,
[ " Kyoto/Text/CPushStateInstruction " , True ] ,
2022-12-24 04:27:33 +00:00
[ " Kyoto/Text/CRasterFont " , False ] ,
2023-01-11 20:16:02 +00:00
[ " Kyoto/Text/CRemoveColorOverrideInstruction " , True ] ,
2022-12-23 02:18:46 +00:00
[ " Kyoto/Text/CSaveableState " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Text/CTextExecuteBuffer " ,
" Kyoto/Text/CTextInstruction " ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Text/CTextParser " , False ] ,
2023-01-11 19:08:11 +00:00
[ " Kyoto/Text/CWordBreakTables " , False ] ,
2023-01-12 00:12:37 +00:00
[ " Kyoto/Text/CWordInstruction " , False ] ,
2023-01-11 23:17:26 +00:00
[ " Kyoto/Text/CBlockInstruction " , True ] ,
2022-12-23 01:18:13 +00:00
[ " Kyoto/Text/CFont " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Graphics/CLight " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Graphics/CCubeModel " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Graphics/CGX " , True ] ,
2022-12-02 06:53:12 +00:00
[ " Kyoto/Graphics/CTevCombiners " , True ] ,
2022-12-03 06:01:02 +00:00
[ " Kyoto/Graphics/DolphinCGraphics " , False ] ,
[ " Kyoto/Graphics/DolphinCPalette " , False ] ,
2022-12-03 21:31:54 +00:00
[ " Kyoto/Graphics/DolphinCTexture " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Math/CloseEnough " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Math/CMatrix3f " ,
2023-01-10 23:03:38 +00:00
[ " Kyoto/Math/CMatrix4f " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Math/CQuaternion " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/CRandom16 " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Math/CTransform4f " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Math/CUnitVector3f " , True ] ,
[ " Kyoto/Math/CVector2f " , True ] ,
[ " Kyoto/Math/CVector2i " , True ] ,
[ " Kyoto/Math/CVector3d " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Math/CVector3f " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Math/CVector3i " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Math/RMathUtils " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/CCrc32 " , True ] ,
[ " Kyoto/Alloc/CCircularBuffer " , True ] ,
2022-10-12 08:07:35 +00:00
[ " Kyoto/Alloc/CMemory " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Alloc/IAllocator " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/PVS/CPVSVisOctree " ,
" Kyoto/PVS/CPVSVisSet " ,
2022-10-18 23:13:51 +00:00
[ " Kyoto/Particles/CColorElement " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Particles/CElementGen " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Particles/CIntElement " , True ] ,
2022-10-18 02:05:27 +00:00
[ " Kyoto/Particles/CModVectorElement " , False ] ,
[ " Kyoto/Particles/CParticleDataFactory " , False ] ,
2023-02-04 09:18:12 +00:00
[ " Kyoto/Particles/CParticleGen " , True ] ,
2022-10-18 02:05:27 +00:00
[ " Kyoto/Particles/CParticleGlobals " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Particles/CParticleSwoosh " ,
" Kyoto/Particles/CParticleSwooshDataFactory " ,
2022-10-18 12:59:56 +00:00
[ " Kyoto/Particles/CRealElement " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Particles/CSpawnSystemKeyframeData " ,
2022-10-18 23:13:51 +00:00
[ " Kyoto/Particles/CUVElement " , False ] ,
[ " Kyoto/Particles/CVectorElement " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Particles/CWarp " , True ] ,
[ " Kyoto/Math/CPlane " , True ] ,
[ " Kyoto/Math/CSphere " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Math/CAABox " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/CFactoryMgr " ,
" Kyoto/CResFactory " ,
" Kyoto/CResLoader " ,
2022-10-25 21:55:17 +00:00
[ " Kyoto/rstl/rstl_map " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/rstl/rstl_strings " ,
2023-01-12 22:46:08 +00:00
[ " Kyoto/rstl/RstlExtras " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Streams/CInputStream " , True ] ,
[ " Kyoto/Streams/CMemoryInStream " , True ] ,
2022-10-13 06:09:15 +00:00
[ " Kyoto/Streams/CMemoryStreamOut " , True ] ,
[ " Kyoto/Streams/COutputStream " , True ] ,
[ " Kyoto/Streams/CZipInputStream " , True ] ,
2022-12-06 05:30:20 +00:00
[ " Kyoto/Streams/CZipOutputStream " , True ] ,
2022-10-13 06:09:15 +00:00
[ " Kyoto/Streams/CZipSupport " , True ] ,
2023-01-14 10:00:14 +00:00
[ " Kyoto/CFactoryStore " , True ] ,
2023-01-14 06:27:43 +00:00
[ " Kyoto/CObjectReference " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/CSimplePool " ,
2022-10-20 14:28:06 +00:00
[ " Kyoto/CToken " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/IObj " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " zlib " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_runtime " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-09 23:48:42 +00:00
[ " Kyoto/zlib/adler32 " , True ] ,
2022-12-06 05:41:21 +00:00
[ " Kyoto/zlib/deflate " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/zlib/infblock " , True ] ,
[ " Kyoto/zlib/infcodes " , True ] ,
[ " Kyoto/zlib/inffast " , True ] ,
[ " Kyoto/zlib/inflate " , True ] ,
[ " Kyoto/zlib/inftrees " , True ] ,
[ " Kyoto/zlib/infutil " , True ] ,
2022-12-06 05:41:21 +00:00
[ " Kyoto/zlib/trees " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/zlib/zutil " , True ] ,
2022-11-28 04:06:16 +00:00
] ,
2022-10-02 05:13:41 +00:00
} ,
{
" lib " : " Kyoto_CW2 " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_retro " ,
2022-10-21 01:32:04 +00:00
" host " : True ,
2022-10-02 05:13:41 +00:00
" objects " : [
" Kyoto/CARAMManager " ,
" Kyoto/Math/CFrustumPlanes " ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Graphics/CCubeMaterial " , False ] ,
[ " Kyoto/Graphics/CCubeSurface " , False ] ,
2022-12-09 21:00:39 +00:00
[ " Kyoto/Animation/CCharAnimTime " , False ] ,
2022-10-15 05:22:32 +00:00
[ " Kyoto/Animation/CSegIdList " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Input/CFinalInput " , True ] ,
[ " Kyoto/Graphics/CColor " , True ] ,
2023-01-08 01:42:15 +00:00
[ " Kyoto/Audio/DolphinCAudioGroupSet " , False ] ,
2023-01-07 21:24:16 +00:00
[ " Kyoto/Audio/DolphinCAudioSys " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/DolphinCMemoryCardSys " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Input/DolphinIController " , True ] ,
[ " Kyoto/Input/CDolphinController " , True ] ,
2023-01-13 00:05:25 +00:00
[ " Kyoto/DolphinCDvdFile " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Alloc/CMediumAllocPool " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Alloc/CSmallAllocPool " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Alloc/CGameAllocator " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/DolphinCSkinnedModel " ,
2023-01-12 20:37:45 +00:00
[ " Kyoto/Animation/DolphinCSkinRules " , False ] ,
[ " Kyoto/Animation/DolphinCVirtualBone " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Graphics/DolphinCModel " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Text/CStringTable " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Particles/CEmitterElement " ,
2023-01-11 19:40:36 +00:00
[ " Kyoto/Particles/CEffectComponent " , True ] ,
2023-01-08 02:11:54 +00:00
[ " Kyoto/Particles/CParticleData " , False ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Animation/CVertexMorphEffect " ,
" Kyoto/Animation/CSkinnedModelWithAvgNormals " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/CTimeProvider " , True ] ,
2022-12-06 07:59:41 +00:00
[ " Kyoto/CARAMToken " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Audio/CMidiManager " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Text/CFontImageDef " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Text/CImageInstruction " ,
" Kyoto/Text/CTextRenderBuffer " ,
" Kyoto/Graphics/CCubeMoviePlayer " ,
" Kyoto/Animation/CAdditiveAnimPlayback " ,
" Kyoto/Particles/CParticleElectricDataFactory " ,
" Kyoto/Particles/CParticleElectric " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Graphics/DolphinCColor " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Audio/CDSPStreamManager " ,
2023-01-14 07:55:03 +00:00
[ " Kyoto/CDependencyGroup " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Audio/CStreamAudioManager " ,
2022-12-09 19:38:20 +00:00
[ " Kyoto/Animation/CHalfTransition " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Particles/CElectricDescription " ,
" Kyoto/Particles/CSwooshDescription " ,
" Kyoto/Particles/CGenDescription " ,
" Kyoto/CPakFile " ,
2022-10-12 05:16:08 +00:00
" Kyoto/Animation/CPoseAsTransformsVariableSize " ,
2022-10-19 01:58:24 +00:00
[ " Kyoto/Input/CRumbleVoice " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Input/RumbleAdsr " , True ] ,
2023-01-07 19:41:26 +00:00
[ " Kyoto/Input/CRumbleGenerator " , True ] ,
2023-01-14 06:48:44 +00:00
" Kyoto/Audio/CDSPStream " ,
2022-10-09 23:48:42 +00:00
[ " Kyoto/Audio/g721 " , True ] ,
2022-10-02 05:13:41 +00:00
" Kyoto/Audio/CStaticAudioPlayer " ,
" Kyoto/CFrameDelayedKiller " ,
] ,
} ,
{
" lib " : " ai " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-19 01:58:24 +00:00
" objects " : [
2022-12-10 01:51:32 +00:00
[ " Dolphin/ai " , True ] ,
2022-10-19 01:58:24 +00:00
] ,
2022-10-02 05:13:41 +00:00
} ,
{
" lib " : " ar " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2023-01-16 04:58:52 +00:00
[ " Dolphin/ar/ar " , True ] ,
2023-01-16 05:20:58 +00:00
[ " Dolphin/ar/arq " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " base " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-09 23:48:42 +00:00
" objects " : [
[ " Dolphin/PPCArch " , True ] ,
] ,
2022-10-02 05:13:41 +00:00
} ,
{
" lib " : " db " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-13 16:33:30 +00:00
" objects " : [
[ " Dolphin/db " , True ] ,
] ,
2022-10-02 05:13:41 +00:00
} ,
{
" lib " : " dsp " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-22 16:49:11 +00:00
[ " Dolphin/dsp/dsp " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Dolphin/dsp/dsp_debug " , True ] ,
2022-12-20 23:19:11 +00:00
[ " Dolphin/dsp/dsp_task " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " dvd " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2023-01-13 18:32:40 +00:00
[ " Dolphin/dvd/dvdlow " , False ] ,
2023-01-13 00:05:25 +00:00
[ " Dolphin/dvd/dvdfs " , True ] ,
2023-02-04 07:58:35 +00:00
[ " Dolphin/dvd/dvd " , True ] ,
2023-01-13 01:51:32 +00:00
[ " Dolphin/dvd/dvdqueue " , True ] ,
2023-01-13 01:23:52 +00:00
[ " Dolphin/dvd/dvderror " , True ] ,
2022-10-21 16:30:09 +00:00
[ " Dolphin/dvd/dvdidutils " , True ] ,
2023-01-13 01:23:52 +00:00
[ " Dolphin/dvd/dvdfatal " , True ] ,
2022-10-22 06:59:50 +00:00
[ " Dolphin/dvd/fstload " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " gx " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-12-25 01:07:56 +00:00
" cflags " : " $cflags_base -fp_contract off " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
" Dolphin/gx/GXInit " ,
" Dolphin/gx/GXFifo " ,
" Dolphin/gx/GXAttr " ,
" Dolphin/gx/GXMisc " ,
" Dolphin/gx/GXGeometry " ,
" Dolphin/gx/GXFrameBuf " ,
2022-12-25 01:07:56 +00:00
[ " Dolphin/gx/GXLight " , False ] ,
2022-10-02 05:13:41 +00:00
" Dolphin/gx/GXTexture " ,
" Dolphin/gx/GXBump " ,
" Dolphin/gx/GXTev " ,
" Dolphin/gx/GXPixel " ,
" Dolphin/gx/GXStubs " ,
" Dolphin/gx/GXDisplayList " ,
" Dolphin/gx/GXTransform " ,
" Dolphin/gx/GXPerf " ,
] ,
} ,
{
" lib " : " mtx " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
" Dolphin/mtx/mtx " ,
" Dolphin/mtx/mtx44vec " ,
" Dolphin/mtx/mtx44 " ,
" Dolphin/mtx/vec " ,
" Dolphin/mtx/psmtx " ,
] ,
} ,
{
" lib " : " os " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-09 23:48:42 +00:00
[ " Dolphin/os/__start " , True ] ,
2022-12-23 00:42:31 +00:00
[ " Dolphin/os/OS " , True ] ,
2022-11-03 16:19:09 +00:00
[ " Dolphin/os/OSAlarm " , True ] ,
2022-12-18 01:45:27 +00:00
[ " Dolphin/os/OSArena " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Dolphin/os/OSAudioSystem " , True ] ,
2022-11-03 08:20:25 +00:00
[ " Dolphin/os/OSCache " , True ] ,
2023-01-31 05:57:45 +00:00
[ " Dolphin/os/OSContext " , True , { " mw_version " : " 1.2.5 " } ] ,
2022-12-18 19:41:59 +00:00
[ " Dolphin/os/OSError " , True ] ,
2022-10-02 05:13:41 +00:00
" Dolphin/os/OSFatal " ,
" Dolphin/os/OSFont " ,
2022-12-18 05:18:29 +00:00
[ " Dolphin/os/OSInterrupt " , True ] ,
2022-12-18 04:08:25 +00:00
[ " Dolphin/os/OSLink " , True ] ,
2022-12-18 06:48:45 +00:00
[ " Dolphin/os/OSMessage " , True ] ,
2022-12-18 18:32:00 +00:00
[ " Dolphin/os/OSMemory " , True ] ,
2022-12-18 04:08:25 +00:00
[ " Dolphin/os/OSMutex " , True ] ,
2022-10-02 05:13:41 +00:00
" Dolphin/os/OSReboot " ,
2022-10-11 07:01:27 +00:00
[ " Dolphin/os/OSReset " , True ] ,
2022-12-22 23:11:03 +00:00
[ " Dolphin/os/OSResetSW " , True ] ,
2022-12-10 02:13:03 +00:00
[ " Dolphin/os/OSRtc " , True ] ,
2022-10-10 17:03:39 +00:00
[ " Dolphin/os/OSSync " , True ] ,
2022-11-05 10:21:17 +00:00
[ " Dolphin/os/OSThread " , True ] ,
2022-10-26 05:00:49 +00:00
[ " Dolphin/os/OSTime " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Dolphin/os/__ppc_eabi_init " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " pad " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-09 23:48:42 +00:00
[ " Dolphin/pad/PadClamp " , True ] ,
2022-12-10 01:25:20 +00:00
[ " Dolphin/pad/pad " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " vi " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-11-28 04:06:16 +00:00
" objects " : [ " Dolphin/vi " ] ,
2022-10-02 05:13:41 +00:00
} ,
{
" lib " : " MSL_C.PPCEABI.bare.H " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_runtime " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-09 23:48:42 +00:00
[ " Runtime/__mem " , True ] ,
2022-10-10 09:30:25 +00:00
[ " Runtime/__va_arg " , True ] ,
2022-10-10 08:46:54 +00:00
[ " Runtime/global_destructor_chain " , True ] ,
[ " Runtime/CPlusLibPPC " , True ] ,
2022-10-10 18:19:04 +00:00
[ " Runtime/NMWException " , True ] ,
2022-10-10 09:30:25 +00:00
[ " Runtime/ptmf " , True ] ,
2022-10-26 05:54:27 +00:00
[ " Runtime/runtime " , True ] ,
2022-10-10 08:46:54 +00:00
[ " Runtime/__init_cpp_exceptions " , True ] ,
2022-10-10 17:44:50 +00:00
[ " Runtime/Gecko_ExceptionPPC " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Runtime/abort_exit " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Runtime/alloc " , False ] ,
2022-10-13 08:02:37 +00:00
[ " Runtime/ansi_files " , True ] ,
2022-10-02 05:13:41 +00:00
" Runtime/ansi_fp " ,
2022-11-30 07:07:31 +00:00
[ " Runtime/arith " , True ] ,
2022-10-13 08:02:37 +00:00
[ " Runtime/buffer_io " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Runtime/ctype " , True ] ,
[ " Runtime/locale " , True ] ,
2022-10-13 08:02:37 +00:00
[ " Runtime/direct_io " , True ] ,
[ " Runtime/file_io " , True ] ,
2022-10-13 15:19:18 +00:00
[ " Runtime/errno " , True ] ,
[ " Runtime/FILE_POS " , True ] ,
2023-01-19 05:16:39 +00:00
[ " Runtime/mbstring " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Runtime/mem " , True ] ,
[ " Runtime/mem_funcs " , True ] ,
[ " Runtime/misc_io " , True ] ,
2022-10-02 05:13:41 +00:00
" Runtime/printf " ,
2022-10-19 01:58:24 +00:00
[ " Runtime/qsort " , False ] ,
2022-10-09 23:48:42 +00:00
[ " Runtime/rand " , True ] ,
2023-01-19 05:16:39 +00:00
[ " Runtime/sscanf " , True ] ,
[ " Runtime/string " , True ] ,
2022-10-11 15:23:29 +00:00
[ " Runtime/float " , True ] ,
2022-10-02 05:13:41 +00:00
" Runtime/strtold " ,
2022-10-10 17:44:50 +00:00
[ " Runtime/uart_console_io " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Runtime/wchar_io " , True ] ,
[ " Runtime/e_acos " , True ] ,
[ " Runtime/e_asin " , True ] ,
[ " Runtime/e_atan2 " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Runtime/e_exp " , False ] , # CW 1.3.2 lib bug
2022-10-09 23:48:42 +00:00
[ " Runtime/e_fmod " , True ] ,
[ " Runtime/e_log " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Runtime/e_pow " , False ] , # CW 1.3.2 lib bug
2022-10-09 23:48:42 +00:00
[ " Runtime/e_rem_pio2 " , True ] ,
[ " Runtime/k_cos " , True ] ,
2022-10-12 04:44:08 +00:00
[ " Runtime/k_rem_pio2 " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Runtime/k_sin " , True ] ,
[ " Runtime/k_tan " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Runtime/s_atan " , False ] , # CW 1.3.2 lib bug
2022-10-09 23:48:42 +00:00
[ " Runtime/s_copysign " , True ] ,
[ " Runtime/s_cos " , True ] ,
[ " Runtime/s_floor " , True ] ,
[ " Runtime/s_frexp " , True ] ,
[ " Runtime/s_ldexp " , True ] ,
[ " Runtime/s_modf " , True ] ,
[ " Runtime/s_nextafter " , True ] ,
[ " Runtime/s_sin " , True ] ,
[ " Runtime/s_tan " , True ] ,
[ " Runtime/w_acos " , True ] ,
[ " Runtime/w_asin " , True ] ,
[ " Runtime/w_atan2 " , True ] ,
[ " Runtime/w_exp " , True ] ,
[ " Runtime/w_fmod " , True ] ,
[ " Runtime/w_log " , True ] ,
[ " Runtime/w_pow " , True ] ,
[ " Runtime/math_ppc " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " musyx " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.3.2 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_musyx " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
" musyx/seq " ,
" musyx/synth " ,
2022-10-09 23:48:42 +00:00
[ " musyx/seq_api " , True ] ,
2023-01-31 05:57:45 +00:00
[ " musyx/snd_synthapi " , True , { " add_to_all " : False } ] ,
2022-11-30 07:07:31 +00:00
[ " musyx/stream " , False ] ,
2022-10-02 05:13:41 +00:00
" musyx/synthdata " ,
" musyx/synthmacros " ,
" musyx/synthvoice " ,
2022-10-09 23:48:42 +00:00
[ " musyx/synth_ac " , True ] ,
2022-10-02 05:13:41 +00:00
" musyx/synth_adsr " ,
2022-12-18 01:50:25 +00:00
[ " musyx/synth_vsamples " , False ] ,
2022-10-09 23:48:42 +00:00
[ " musyx/synth_dbtab " , True ] ,
2022-10-02 05:13:41 +00:00
" musyx/s_data " ,
" musyx/hw_dspctrl " ,
" musyx/hw_volconv " ,
2022-10-19 01:58:24 +00:00
[ " musyx/snd3d " , False ] ,
2022-10-09 23:48:42 +00:00
[ " musyx/snd_init " , True ] ,
2022-12-24 22:54:58 +00:00
[ " musyx/snd_math " , True ] ,
[ " musyx/snd_midictrl " , False ] ,
2022-10-09 23:48:42 +00:00
[ " musyx/snd_service " , True ] ,
2022-10-19 01:58:24 +00:00
[ " musyx/hardware " , False ] ,
2022-10-02 05:13:41 +00:00
" musyx/hw_aramdma " ,
2022-10-09 23:48:42 +00:00
[ " musyx/dsp_import " , True ] ,
2022-12-16 08:11:11 +00:00
[ " musyx/hw_dolphin " , True ] ,
2022-10-09 23:48:42 +00:00
[ " musyx/hw_memory " , True ] ,
[ " musyx/creverb_fx " , True ] ,
2022-10-02 05:13:41 +00:00
" musyx/creverb " ,
2022-10-09 23:48:42 +00:00
[ " musyx/reverb_fx " , True ] ,
2022-10-19 01:58:24 +00:00
[ " musyx/reverb " , False ] ,
2022-10-09 23:48:42 +00:00
[ " musyx/delay_fx " , True ] ,
2022-12-24 22:54:58 +00:00
[ " musyx/chorus_fx " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " dtk " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-09 23:48:42 +00:00
" objects " : [
[ " Dolphin/dtk " , True ] ,
] ,
2022-10-02 05:13:41 +00:00
} ,
{
" lib " : " card " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-21 06:32:50 +00:00
[ " Dolphin/card/CARDBios " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Dolphin/card/CARDUnlock " , True ] ,
[ " Dolphin/card/CARDRdwr " , True ] ,
[ " Dolphin/card/CARDBlock " , True ] ,
[ " Dolphin/card/CARDDir " , True ] ,
2022-10-21 06:32:50 +00:00
[ " Dolphin/card/CARDCheck " , True ] ,
2022-10-09 23:48:42 +00:00
[ " Dolphin/card/CARDMount " , True ] ,
[ " Dolphin/card/CARDFormat " , True ] ,
[ " Dolphin/card/CARDOpen " , True ] ,
[ " Dolphin/card/CARDCreate " , True ] ,
[ " Dolphin/card/CARDRead " , True ] ,
[ " Dolphin/card/CARDWrite " , True ] ,
[ " Dolphin/card/CARDDelete " , True ] ,
[ " Dolphin/card/CARDStat " , True ] ,
[ " Dolphin/card/CARDRename " , True ] ,
[ " Dolphin/card/CARDNet " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " si " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2023-02-04 07:56:30 +00:00
[ " Dolphin/si/SIBios " , True ] ,
2022-10-13 18:30:13 +00:00
[ " Dolphin/si/SISamplingRate " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " exi " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-12-22 20:46:14 +00:00
[ " Dolphin/exi/EXIBios " , True ] ,
[ " Dolphin/exi/EXIUart " , True ] ,
2022-10-02 05:13:41 +00:00
] ,
} ,
{
" lib " : " thp " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5 " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
" Dolphin/thp/THPDec " ,
" Dolphin/thp/THPAudio " ,
] ,
} ,
{
" lib " : " gba " ,
2023-01-24 00:18:59 +00:00
" mw_version " : " 1.2.5e " ,
2022-10-02 05:13:41 +00:00
" cflags " : " $cflags_base " ,
2022-10-21 01:32:04 +00:00
" host " : False ,
2022-10-02 05:13:41 +00:00
" objects " : [
2022-10-16 00:58:24 +00:00
[ " Dolphin/GBA/GBA " , True ] ,
2022-10-19 01:58:24 +00:00
[ " Dolphin/GBA/GBAGetProcessStatus " , False ] ,
2022-10-15 21:47:17 +00:00
" Dolphin/GBA/GBAJoyBoot " ,
2022-10-16 02:14:54 +00:00
[ " Dolphin/GBA/GBARead " , True ] ,
[ " Dolphin/GBA/GBAWrite " , True ] ,
2022-10-21 06:06:41 +00:00
[ " Dolphin/GBA/GBAXfer " , True ] ,
2022-10-02 05:13:41 +00:00
" Dolphin/GBA/GBAKey " ,
] ,
} ,
]
2022-11-28 04:06:16 +00:00
if __name__ == " __main__ " :
import os
import io
import sys
import argparse
2022-10-04 00:00:46 +00:00
2023-01-24 00:18:59 +00:00
from pathlib import Path
2022-11-28 04:06:16 +00:00
from shutil import which
from tools import ninja_syntax
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
parser = argparse . ArgumentParser ( )
parser . add_argument (
" --version " ,
dest = " version " ,
default = " 0 " ,
help = " version to build (0, 1, kor) " ,
)
parser . add_argument (
" --map " ,
dest = " map " ,
action = " store_true " ,
help = " generate map file " ,
)
parser . add_argument (
" --no-check " ,
dest = " check " ,
action = " store_false " ,
help = " don ' t check hash of resulting dol " ,
)
parser . add_argument (
2022-12-15 02:17:16 +00:00
" --no-static-libs " ,
2022-11-28 04:06:16 +00:00
dest = " static_libs " ,
2022-12-15 02:17:16 +00:00
action = " store_false " ,
help = " don ' t build and use static libs " ,
2022-11-28 04:06:16 +00:00
)
parser . add_argument (
" --devkitppc " ,
dest = " devkitppc " ,
2023-01-24 00:18:59 +00:00
type = Path ,
2022-11-28 04:06:16 +00:00
help = " path to devkitPPC " ,
)
if os . name != " nt " and not " _NT- " in os . uname ( ) . sysname :
parser . add_argument (
" --wine " ,
dest = " wine " ,
2023-01-24 00:18:59 +00:00
type = Path ,
2022-11-28 04:06:16 +00:00
help = " path to wine (or wibo) " ,
)
parser . add_argument (
" --build-dtk " ,
dest = " build_dtk " ,
2023-01-24 00:18:59 +00:00
type = Path ,
2022-11-28 04:06:16 +00:00
help = " path to decomp-toolkit source " ,
)
2022-12-14 16:50:58 +00:00
parser . add_argument (
" --debug " ,
dest = " debug " ,
action = " store_true " ,
help = " build with debug info (non-matching) " ,
)
2023-01-24 00:18:59 +00:00
parser . add_argument (
" --compilers " ,
dest = " compilers " ,
type = Path ,
default = Path ( " tools/mwcc_compiler " ) ,
help = " path to compilers " ,
)
parser . add_argument (
" --build-dir " ,
dest = " build_dir " ,
type = Path ,
default = Path ( " build " ) ,
help = " base build directory " ,
)
2023-01-31 05:41:48 +00:00
parser . add_argument (
2023-02-04 07:13:21 +00:00
" --franklite " ,
2023-01-31 05:41:48 +00:00
dest = " frank " ,
2023-02-04 07:13:21 +00:00
action = " store_false " ,
help = " use franklite.py instead of frank.py (non-matching) " ,
2023-01-31 05:41:48 +00:00
)
2022-11-28 04:06:16 +00:00
args = parser . parse_args ( )
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
# On Windows, we need this to use && in commands
2023-01-24 00:18:59 +00:00
chain = " cmd /c " if os . name == " nt " else " "
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
out = io . StringIO ( )
n = ninja_syntax . Writer ( out )
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
n . variable ( " ninja_required_version " , " 1.3 " )
2022-10-02 05:13:41 +00:00
n . newline ( )
2022-11-28 04:06:16 +00:00
n . comment ( " The arguments passed to configure.py, for rerunning it. " )
configure_args = sys . argv [ 1 : ]
# Ignore DEVKITPPC env var on Windows
if os . name != " nt " and " DEVKITPPC " in os . environ and not args . devkitppc :
configure_args . extend ( [ " --devkitppc " , os . environ [ " DEVKITPPC " ] ] )
n . variable ( " configure_args " , configure_args )
2023-01-24 00:18:59 +00:00
n . variable ( " python " , sys . executable )
2022-10-04 00:00:46 +00:00
n . newline ( )
2022-10-19 22:21:42 +00:00
2022-11-28 04:06:16 +00:00
###
# Variables
###
n . comment ( " Variables " )
2023-01-24 00:18:59 +00:00
version = args . version . lower ( )
2022-11-28 04:06:16 +00:00
if args . version . lower ( ) == " kor " :
2023-01-24 00:18:59 +00:00
version_num = " 2 "
2022-11-28 04:06:16 +00:00
elif args . version . isnumeric ( ) and int ( args . version ) in [ 0 , 1 ] :
2023-01-24 00:18:59 +00:00
version_num = args . version
2022-10-02 05:13:41 +00:00
else :
2022-11-28 04:06:16 +00:00
sys . exit ( f ' Invalid version " { args . version } " ' )
2023-01-24 00:18:59 +00:00
n . variable ( " out " , args . build_dir / f " mp1. { version } " )
build_path = Path ( " $out " )
2022-11-28 04:06:16 +00:00
if args . devkitppc :
2023-01-24 00:18:59 +00:00
dkp_path = args . devkitppc
2022-11-28 04:06:16 +00:00
elif os . name == " nt " :
2023-01-24 00:18:59 +00:00
dkp_path = Path ( " C: \ devkitPro \ devkitPPC " )
2022-11-28 04:06:16 +00:00
elif " DEVKITPPC " in os . environ :
2023-01-24 00:18:59 +00:00
dkp_path = Path ( os . environ [ " DEVKITPPC " ] )
2022-11-28 04:06:16 +00:00
else :
2023-01-24 00:18:59 +00:00
dkp_path = Path ( " /opt/devkitpro/devkitPPC " )
2023-01-31 05:41:48 +00:00
cflags_base = f " -proc gekko -nodefaults -Cpp_exceptions off -RTTI off -fp hard -fp_contract on -O4,p -maxerrors 1 -enum int -inline auto -str reuse -nosyspath -DPRIME1 -DVERSION= { version_num } -DNONMATCHING=0 -i include -i libc "
2022-12-14 16:50:58 +00:00
if args . debug :
2022-12-24 22:54:58 +00:00
cflags_base + = " -sym on -D_DEBUG "
else :
cflags_base + = " -DNDEBUG "
2023-01-31 05:41:48 +00:00
if args . frank :
cflags_base + = " -DFULL_FRANK "
2022-12-14 16:50:58 +00:00
n . variable ( " cflags_base " , cflags_base )
2022-11-28 04:06:16 +00:00
n . variable (
" cflags_retro " ,
" $cflags_base -use_lmw_stmw on -str reuse,pool,readonly -gccinc -inline deferred,noauto -common on " ,
)
n . variable (
" cflags_runtime " ,
" $cflags_base -use_lmw_stmw on -str reuse,pool,readonly -gccinc -inline deferred,auto " ,
)
2022-12-24 22:54:58 +00:00
n . variable ( " cflags_musyx " , " $cflags_base -str reuse,pool,readonly -fp_contract off " )
2023-01-24 00:18:59 +00:00
asflags = f " -mgekko -I include --defsym version= { version_num } -W --strip-local-absolute -gdwarf-2 "
2022-12-14 16:50:58 +00:00
n . variable ( " asflags " , asflags )
ldflags = " -fp fmadd -nodefaults -lcf ldscript.lcf "
2022-11-28 04:06:16 +00:00
if args . map :
2023-01-24 00:18:59 +00:00
map_path = build_path / " MetroidPrime.MAP "
ldflags + = f " -map { map_path } "
if args . debug :
ldflags + = " -g "
2022-11-28 04:06:16 +00:00
n . variable ( " ldflags " , ldflags )
2023-01-24 00:18:59 +00:00
n . variable ( " mw_version " , " 1.3.2 " )
2022-11-28 04:06:16 +00:00
if os . name == " nt " :
2023-01-24 00:18:59 +00:00
exe = " .exe "
wine = " "
2022-11-28 04:06:16 +00:00
else :
if " _NT- " in os . uname ( ) . sysname :
# MSYS2
2023-01-24 00:18:59 +00:00
wine = " "
2022-11-28 04:06:16 +00:00
elif args . wine :
2023-01-24 00:18:59 +00:00
wine = f " { args . wine } "
2022-11-28 04:06:16 +00:00
elif which ( " wibo " ) is not None :
2023-01-24 00:18:59 +00:00
wine = " wibo "
2022-10-02 05:13:41 +00:00
else :
2023-01-24 00:18:59 +00:00
wine = " wine "
exe = " "
2022-10-02 05:13:41 +00:00
n . newline ( )
2022-11-28 04:06:16 +00:00
###
2023-01-24 00:18:59 +00:00
# Tooling
2022-11-28 04:06:16 +00:00
###
2023-01-24 00:18:59 +00:00
n . comment ( " decomp-toolkit " )
tools_path = Path ( " tools " )
build_tools_path = args . build_dir / " tools "
def path ( input : list [ Path ] | Path | None ) - > list [ str ] | None :
if input is None :
return None
elif isinstance ( input , list ) :
return list ( map ( str , input ) )
else :
return [ str ( input ) ]
2023-01-05 15:30:21 +00:00
2023-01-24 00:18:59 +00:00
if args . build_dtk :
dtk = build_tools_path / " release " / f " dtk { exe } "
2022-11-28 04:06:16 +00:00
n . rule (
2023-01-24 00:18:59 +00:00
name = " cargo " ,
command = " cargo build --release --manifest-path $in --bin $bin --target-dir $target " ,
description = " CARGO $bin " ,
depfile = path ( Path ( " $target " ) / " release " / " $bin.d " ) ,
deps = " gcc " ,
)
n . build (
outputs = path ( dtk ) ,
rule = " cargo " ,
inputs = path ( args . build_dtk / " Cargo.toml " ) ,
variables = {
" bin " : " dtk " ,
" target " : build_tools_path ,
} ,
2022-11-28 04:06:16 +00:00
)
2022-10-04 00:00:46 +00:00
else :
2023-01-24 00:18:59 +00:00
dtk = build_tools_path / f " dtk { exe } "
download_dtk = tools_path / " download_dtk.py "
n . rule (
name = " download_dtk " ,
command = f " $python { download_dtk } $in $out " ,
description = " DOWNLOAD $out " ,
2022-11-28 04:06:16 +00:00
)
2023-01-24 00:18:59 +00:00
n . build (
outputs = path ( dtk ) ,
rule = " download_dtk " ,
inputs = " dtk_version " ,
implicit = path ( [ download_dtk ] ) ,
2023-01-05 15:30:21 +00:00
)
2023-01-24 00:18:59 +00:00
n . newline ( )
###
# Rules
###
compiler_path = args . compilers / " $mw_version "
mwcc = compiler_path / " mwcceppc.exe "
mwld = compiler_path / " mwldeppc.exe "
2023-01-31 05:41:48 +00:00
frank = tools_path / " frank.py "
2023-01-24 00:18:59 +00:00
franklite = tools_path / " franklite.py "
gnu_as = dkp_path / " bin " / f " powerpc-eabi-as { exe } "
2023-01-31 05:41:48 +00:00
mwcc_cmd = f " { chain } { wine } { mwcc } $cflags -MMD -c $in -o $basedir "
if args . frank :
profile_mwcc = args . compilers / " 1.2.5e " / " mwcceppc.exe "
mwcc_frank_cmd = (
f " { chain } { wine } { mwcc } $cflags -MMD -c $in -o $basedir "
+ f " && { wine } { profile_mwcc } $cflags -c $in -o $out.profile "
+ f " && $python { frank } $out $out.profile $out "
)
else :
mwcc_frank_cmd = f " { mwcc_cmd } && $python { franklite } $out $out "
2023-01-24 00:18:59 +00:00
mwld_cmd = f " { wine } { mwld } $ldflags -o $out @$out.rsp "
as_cmd = (
f " { chain } { gnu_as } $asflags -o $out $in -MD $out.d "
+ f " && { dtk } elf fixup $out $out "
)
ar_cmd = f " { dtk } ar create $out @$out.rsp "
if os . name != " nt " :
transform_dep = tools_path / " transform-dep.py "
transform_dep_cmd = f " && $python { transform_dep } $basefile.d $basefile.d "
mwcc_cmd + = transform_dep_cmd
mwcc_frank_cmd + = transform_dep_cmd
n . comment ( " Link ELF file " )
n . rule (
name = " link " ,
command = mwld_cmd ,
description = " LINK $out " ,
rspfile = " $out.rsp " ,
rspfile_content = " $in_newline " ,
)
n . newline ( )
2023-01-05 15:30:21 +00:00
n . comment ( " MWCC build " )
n . rule (
name = " mwcc " ,
2023-01-24 00:18:59 +00:00
command = mwcc_cmd ,
2023-01-05 15:30:21 +00:00
description = " MWCC $out " ,
depfile = " $basefile.d " ,
deps = " gcc " ,
)
n . newline ( )
n . comment ( " MWCC build with franklite " )
n . rule (
name = " mwcc_frank " ,
2023-01-24 00:18:59 +00:00
command = mwcc_frank_cmd ,
2023-01-05 15:30:21 +00:00
description = " FRANK $out " ,
depfile = " $basefile.d " ,
deps = " gcc " ,
)
n . newline ( )
2023-01-24 00:18:59 +00:00
2023-01-05 15:30:21 +00:00
n . comment ( " Assemble asm " )
n . rule (
name = " as " ,
2023-01-24 00:18:59 +00:00
command = as_cmd ,
2023-01-05 15:30:21 +00:00
description = " AS $out " ,
depfile = " $out.d " ,
deps = " gcc " ,
)
n . newline ( )
n . comment ( " Create static library " )
n . rule (
name = " ar " ,
2023-01-24 00:18:59 +00:00
command = ar_cmd ,
2023-01-05 15:30:21 +00:00
description = " AR $out " ,
rspfile = " $out.rsp " ,
rspfile_content = " $in_newline " ,
)
n . newline ( )
2022-11-28 04:06:16 +00:00
n . comment ( " Host build " )
2023-01-24 00:18:59 +00:00
n . variable ( " host_cflags " , " -I include -Wno-trigraphs " )
2022-11-28 04:06:16 +00:00
n . variable (
" host_cppflags " ,
2023-01-24 00:18:59 +00:00
" -std=c++98 -I include -fno-exceptions -fno-rtti -D_CRT_SECURE_NO_WARNINGS -Wno-trigraphs -Wno-c++11-extensions " ,
2022-11-28 04:06:16 +00:00
)
n . rule (
name = " host_cc " ,
command = " clang $host_cflags -c -o $out $in " ,
2023-01-24 00:18:59 +00:00
description = " CC $out " ,
2022-11-28 04:06:16 +00:00
)
n . rule (
name = " host_cpp " ,
command = " clang++ $host_cppflags -c -o $out $in " ,
2023-01-24 00:18:59 +00:00
description = " CXX $out " ,
2022-11-28 04:06:16 +00:00
)
n . newline ( )
2022-10-16 20:20:36 +00:00
2022-11-28 04:06:16 +00:00
###
# Rules for source files
###
n . comment ( " Source files " )
2023-01-24 00:18:59 +00:00
src_path = Path ( " src " )
asm_path = Path ( " asm " )
build_src_path = build_path / " src "
build_host_path = build_path / " host "
build_asm_path = build_path / " asm "
build_lib_path = build_path / " lib "
source_inputs = [ ]
host_source_inputs = [ ]
link_inputs = [ ]
2022-11-28 04:06:16 +00:00
for lib in LIBS :
inputs = [ ]
if " lib " in lib :
lib_name = lib [ " lib " ]
n . comment ( f " { lib_name } .a " )
else :
n . comment ( " Loose files " )
2023-01-24 00:18:59 +00:00
2022-11-28 04:06:16 +00:00
for object in lib [ " objects " ] :
completed = None
2023-01-31 05:57:45 +00:00
options = {
" add_to_all " : True ,
" mw_version " : None ,
" cflags " : None ,
}
2022-10-09 23:48:42 +00:00
if type ( object ) is list :
2023-01-31 05:57:45 +00:00
if len ( object ) > 1 :
completed = object [ 1 ]
2022-11-28 04:06:16 +00:00
if len ( object ) > 2 :
2023-01-31 05:57:45 +00:00
options . update ( object [ 2 ] )
2022-10-09 23:48:42 +00:00
object = object [ 0 ]
2023-01-31 05:57:45 +00:00
mw_version = options [ " mw_version " ] or lib [ " mw_version " ]
2022-11-28 04:06:16 +00:00
c_file = None
2023-01-24 00:18:59 +00:00
if os . path . exists ( src_path / f " { object } .cpp " ) :
c_file = src_path / f " { object } .cpp "
elif os . path . exists ( src_path / f " { object } .c " ) :
c_file = src_path / f " { object } .c "
2022-11-28 04:06:16 +00:00
if c_file is not None :
if completed is None :
print ( f " Mark as incomplete: { c_file } " )
rule = " mwcc "
2023-01-31 05:41:48 +00:00
implicit = [ ]
2023-01-24 00:18:59 +00:00
if mw_version == " 1.2.5e " :
mw_version = " 1.2.5 "
2023-01-31 05:57:45 +00:00
rule = " mwcc_frank "
if args . frank :
implicit . append ( frank )
else :
implicit . append ( franklite )
2022-11-28 04:06:16 +00:00
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_src_path / f " { object } .o " ) ,
2022-11-28 04:06:16 +00:00
rule = rule ,
2023-01-24 00:18:59 +00:00
inputs = path ( c_file ) ,
2022-11-28 04:06:16 +00:00
variables = {
2023-01-24 00:18:59 +00:00
" mw_version " : mw_version ,
2023-01-31 05:57:45 +00:00
" cflags " : options [ " cflags " ] or lib [ " cflags " ] ,
2023-01-24 00:18:59 +00:00
" basedir " : os . path . dirname ( build_src_path / f " { object } " ) ,
" basefile " : path ( build_src_path / f " { object } " ) ,
2022-11-28 04:06:16 +00:00
} ,
2023-01-31 05:41:48 +00:00
implicit = path ( implicit ) ,
2022-11-28 04:06:16 +00:00
)
if lib [ " host " ] :
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_host_path / f " { object } .o " ) ,
rule = " host_cc " if c_file . suffix == " .c " else " host_cpp " ,
inputs = path ( c_file ) ,
2022-11-28 04:06:16 +00:00
variables = {
2023-01-24 00:18:59 +00:00
" basedir " : os . path . dirname ( build_host_path / object ) ,
" basefile " : path ( build_host_path / object ) ,
2022-11-28 04:06:16 +00:00
} ,
)
2023-01-31 05:57:45 +00:00
if options [ " add_to_all " ] :
2023-01-24 00:18:59 +00:00
host_source_inputs . append ( build_host_path / f " { object } .o " )
2023-01-31 05:57:45 +00:00
if options [ " add_to_all " ] :
2023-01-24 00:18:59 +00:00
source_inputs . append ( build_src_path / f " { object } .o " )
if os . path . exists ( asm_path / f " { object } .s " ) :
2022-11-28 04:06:16 +00:00
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_asm_path / f " { object } .o " ) ,
2022-11-28 04:06:16 +00:00
rule = " as " ,
2023-01-24 00:18:59 +00:00
inputs = path ( asm_path / f " { object } .s " ) ,
implicit = path ( dtk ) ,
2022-11-28 04:06:16 +00:00
)
2022-10-09 23:48:42 +00:00
if completed :
2023-01-24 00:18:59 +00:00
inputs . append ( build_src_path / f " { object } .o " )
2022-10-04 00:00:46 +00:00
else :
2023-01-24 00:18:59 +00:00
inputs . append ( build_asm_path / f " { object } .o " )
2022-11-28 04:06:16 +00:00
if args . static_libs and " lib " in lib :
lib_name = lib [ " lib " ]
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_lib_path / f " { lib_name } .a " ) ,
2022-11-28 04:06:16 +00:00
rule = " ar " ,
2023-01-24 00:18:59 +00:00
inputs = path ( inputs ) ,
implicit = path ( dtk ) ,
2022-11-28 04:06:16 +00:00
)
2023-01-24 00:18:59 +00:00
link_inputs . append ( build_lib_path / f " { lib_name } .a " )
else :
link_inputs . extend ( inputs )
2022-11-28 04:06:16 +00:00
n . newline ( )
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
###
# Link
###
n . comment ( " Link " )
if args . map :
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_path / " main.elf " ) ,
2022-11-28 04:06:16 +00:00
rule = " link " ,
2023-01-24 00:18:59 +00:00
inputs = path ( link_inputs ) ,
implicit_outputs = path ( map_path ) ,
2022-11-28 04:06:16 +00:00
)
else :
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_path / " main.elf " ) ,
2022-11-28 04:06:16 +00:00
rule = " link " ,
2023-01-24 00:18:59 +00:00
inputs = path ( link_inputs ) ,
2022-11-28 04:06:16 +00:00
)
n . newline ( )
2022-10-19 22:21:42 +00:00
2022-11-28 04:06:16 +00:00
###
# Helper rule for building all source files
###
n . comment ( " Build all source files " )
n . build (
outputs = " all_source " ,
rule = " phony " ,
2023-01-24 00:18:59 +00:00
inputs = path ( source_inputs ) ,
2022-11-28 04:06:16 +00:00
)
n . newline ( )
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
###
# Helper rule for building all source files, with a host compiler
###
n . comment ( " Build all source files with a host compiler " )
n . build (
outputs = " all_source_host " ,
rule = " phony " ,
2023-01-24 00:18:59 +00:00
inputs = path ( host_source_inputs ) ,
2022-11-28 04:06:16 +00:00
)
2022-10-02 05:13:41 +00:00
n . newline ( )
2022-11-28 04:06:16 +00:00
###
2022-12-14 16:50:58 +00:00
# Generate DOL
2022-11-28 04:06:16 +00:00
###
2022-12-14 16:50:58 +00:00
n . comment ( " Generate DOL " )
2022-11-28 04:06:16 +00:00
n . rule (
name = " elf2dol " ,
2023-01-24 00:18:59 +00:00
command = chain
+ f " { dtk } elf2dol $in $out && "
+ f " { dtk } metroidbuildinfo $out buildstrings/mp1. { version } .build " ,
2022-11-28 04:06:16 +00:00
description = " DOL $out " ,
)
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_path / " main.dol " ) ,
2022-11-28 04:06:16 +00:00
rule = " elf2dol " ,
2023-01-24 00:18:59 +00:00
inputs = path ( build_path / " main.elf " ) ,
implicit = path ( dtk ) ,
2022-11-28 04:06:16 +00:00
)
2022-10-02 05:13:41 +00:00
n . newline ( )
2022-11-28 04:06:16 +00:00
###
# Check DOL hash
###
if args . check :
n . comment ( " Check DOL hash " )
n . rule (
name = " check " ,
2023-01-24 00:18:59 +00:00
command = f " { dtk } shasum -c $in -o $out " ,
2022-11-28 04:06:16 +00:00
description = " CHECK $in " ,
)
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_path / " main.dol.ok " ) ,
2022-11-28 04:06:16 +00:00
rule = " check " ,
2023-01-24 00:18:59 +00:00
inputs = f " sha1/mp1. { version } .sha1 " ,
implicit = path ( [ build_path / " main.dol " , dtk ] ) ,
2022-11-28 04:06:16 +00:00
)
n . newline ( )
###
# Progress script
###
if args . map :
n . comment ( " Check progress " )
n . rule (
name = " progress " ,
command = " $python progress.py $in -o $out " ,
description = " PROGRESS $in " ,
)
n . build (
2023-01-24 00:18:59 +00:00
outputs = path ( build_path / " main.dol.progress " ) ,
2022-11-28 04:06:16 +00:00
rule = " progress " ,
2023-01-24 00:18:59 +00:00
inputs = path ( [ build_path / " main.dol " , map_path ] ) ,
2022-12-15 02:17:16 +00:00
implicit = " progress.py " ,
2022-11-28 04:06:16 +00:00
)
n . newline ( )
###
# Regenerate on change
###
n . comment ( " Reconfigure on change " )
n . rule (
name = " configure " ,
command = " $python configure.py $configure_args " ,
generator = True ,
)
n . build (
outputs = " build.ninja " ,
rule = " configure " ,
2023-01-31 05:41:48 +00:00
implicit = path ( [ " configure.py " , tools_path / " ninja_syntax.py " ] ) ,
2022-11-28 04:06:16 +00:00
)
n . newline ( )
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
###
# Default rule
###
n . comment ( " Default rule " )
if args . check :
2023-01-24 00:18:59 +00:00
dol_out = build_path / " main.dol.ok "
2022-11-28 04:06:16 +00:00
else :
2023-01-24 00:18:59 +00:00
dol_out = build_path / " main.dol "
2022-11-28 04:06:16 +00:00
if args . map :
2023-01-24 00:18:59 +00:00
n . default ( path ( [ dol_out , build_path / " main.dol.progress " ] ) )
2022-11-28 04:06:16 +00:00
else :
2023-01-24 00:18:59 +00:00
n . default ( path ( [ dol_out ] ) )
2022-10-02 05:13:41 +00:00
2022-11-28 04:06:16 +00:00
with open ( " build.ninja " , " w " ) as f :
f . write ( out . getvalue ( ) )
n . close ( )