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