prime/configure.py

1551 lines
58 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
LIBS = [
{
"lib": "TRK_MINNOW_DOLPHIN",
"mwcc_version": "1.2.5",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["MetroTRK/mslsupp", True],
],
},
{
"lib": "MetroidPrimeCW",
"cflags": "$cflags_retro",
"mwcc_version": "1.3.2",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
["MetroidPrime/main", False],
"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],
"MetroidPrime/Cameras/CFirstPersonCamera",
2022-10-13 21:50:56 -07:00
["MetroidPrime/CObjectList", True],
"MetroidPrime/Player/CPlayer",
["MetroidPrime/CAxisAngle", True],
["MetroidPrime/CEulerAngles", False],
["MetroidPrime/CArchMsgParmUserInput", True],
"MetroidPrime/CFrontEndUI",
["MetroidPrime/CInputGenerator", False],
2022-10-23 18:44:54 -07:00
["MetroidPrime/CMainFlow", False],
"MetroidPrime/CMFGame",
"MetroidPrime/CCredits",
"MetroidPrime/CSplashScreen",
2022-10-18 20:40:52 -07:00
["MetroidPrime/CInstruction", True],
["MetroidPrime/CAnimData", False],
"MetroidPrime/Factories/CCharacterFactory",
"MetroidPrime/Factories/CAssetFactory",
2022-12-06 22:06:09 -08:00
["MetroidPrime/Tweaks/CTweakPlayer", True],
"MetroidPrime/Tweaks/CTweaks",
2022-10-16 07:57:07 -07:00
["MetroidPrime/Tweaks/CTweakGame", True],
"MetroidPrime/CGameProjectile",
["MetroidPrime/Player/CPlayerGun", False],
2022-11-14 15:08:47 -08:00
["MetroidPrime/CStateManager", False],
["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],
["MetroidPrime/CIOWin", True],
["MetroidPrime/CActor", False],
"MetroidPrime/CWorld",
2022-10-14 03:01:20 -07:00
["MetroidPrime/Tweaks/CTweakParticle", True],
"MetroidPrime/Clamp_int",
["MetroidPrime/CArchMsgParmControllerStatus", True],
2022-11-26 16:26:12 -08:00
["MetroidPrime/CExplosion", False],
2022-10-18 18:47:26 -07:00
["MetroidPrime/CEffect", True],
"MetroidPrime/Cameras/CGameCamera",
"MetroidPrime/CGameArea",
"MetroidPrime/HUD/CSamusHud",
2022-11-17 07:46:10 -08:00
["MetroidPrime/CAnimationDatabaseGame", False],
"MetroidPrime/CTransitionDatabaseGame",
2022-10-18 20:46:19 -07:00
["MetroidPrime/Tweaks/CTweakPlayerControl", True],
"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],
"MetroidPrime/Enemies/CPatterned",
"MetroidPrime/ScriptObjects/CScriptDoor",
["MetroidPrime/Enemies/CStateMachine", False],
2022-12-05 07:43:31 -08:00
["MetroidPrime/CMapArea", False],
["MetroidPrime/Cameras/CBallCamera", False],
"MetroidPrime/ScriptObjects/CScriptEffect",
"MetroidPrime/Weapons/CBomb",
2022-11-10 13:16:05 -08:00
["MetroidPrime/Tweaks/CTweakBall", True],
["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],
"MetroidPrime/CAutoMapper",
2022-10-16 06:31:44 -07:00
["MetroidPrime/ScriptObjects/CScriptCounter", True],
"MetroidPrime/CMapWorld",
"MetroidPrime/Enemies/CAi",
2022-10-23 11:35:55 -07:00
["MetroidPrime/Enemies/PatternedCastTo", True],
["MetroidPrime/TCastTo", True],
"MetroidPrime/ScriptObjects/CScriptSound",
["MetroidPrime/ScriptObjects/CScriptPlatform", False],
["MetroidPrime/UserNames", True],
["MetroidPrime/ScriptObjects/CScriptGenerator", False],
["MetroidPrime/ScriptObjects/CScriptCameraWaypoint", False],
2022-10-18 15:00:44 -07:00
["MetroidPrime/CGameLight", True],
"MetroidPrime/Tweaks/CTweakTargeting",
["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],
"MetroidPrime/CParticleDatabase",
"MetroidPrime/Tweaks/CTweakGunRes",
"MetroidPrime/CTargetReticles",
2022-11-09 18:06:24 -08:00
["MetroidPrime/CWeaponMgr", False],
["MetroidPrime/ScriptObjects/CScriptPickup", True],
["MetroidPrime/CDamageInfo", False],
["MetroidPrime/CMemoryDrawEnum", True],
"MetroidPrime/ScriptObjects/CScriptDock",
"MetroidPrime/ScriptObjects/CScriptCameraHint",
2022-11-14 05:37:44 -08:00
["MetroidPrime/ScriptLoader", False],
"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],
["MetroidPrime/ScriptObjects/CScriptSpawnPoint", False],
2022-11-08 16:12:27 -08:00
["MetroidPrime/ScriptObjects/CScriptRandomRelay", False],
"MetroidPrime/Enemies/CBeetle",
["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],
["MetroidPrime/Player/CPlayerCameraBob", False],
["MetroidPrime/ScriptObjects/CScriptCameraFilterKeyframe", True],
["MetroidPrime/ScriptObjects/CScriptCameraBlurKeyframe", True],
["MetroidPrime/Cameras/CCameraFilter", False],
"MetroidPrime/Player/CMorphBall",
"MetroidPrime/ScriptObjects/CScriptDamageableTrigger",
"MetroidPrime/ScriptObjects/CScriptDebris",
2022-11-03 05:29:47 -07:00
["MetroidPrime/ScriptObjects/CScriptCameraShaker", True],
["MetroidPrime/ScriptObjects/CScriptActorKeyframe", False],
["MetroidPrime/CConsoleOutputWindow", False],
"MetroidPrime/ScriptObjects/CScriptWater",
2022-11-03 09:17:05 -07:00
["MetroidPrime/Weapons/CWeapon", False],
["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],
["MetroidPrime/CActorParameters", True],
"MetroidPrime/CInGameGuiManager",
"MetroidPrime/Enemies/CWarWasp",
2022-12-01 08:11:09 -08:00
["MetroidPrime/CWorldShadow", False],
["MetroidPrime/CAudioStateWin", True],
"MetroidPrime/Player/CPlayerVisor",
"MetroidPrime/CModelData",
"MetroidPrime/CDecalManager",
"MetroidPrime/ScriptObjects/CScriptSpiderBallWaypoint",
"MetroidPrime/Enemies/CBloodFlower",
2022-10-09 19:27:35 -07:00
["MetroidPrime/TGameTypes", True],
["MetroidPrime/CPhysicsActor", False],
["MetroidPrime/CPhysicsState", True],
["MetroidPrime/CRipple", False],
"MetroidPrime/CFluidUVMotion",
2022-10-20 17:26:38 -07:00
["MetroidPrime/CRippleManager", False],
["MetroidPrime/Player/CGrappleArm", False],
"MetroidPrime/Enemies/CSpacePirate",
2022-11-07 16:40:58 -08:00
["MetroidPrime/ScriptObjects/CScriptCoverPoint", False],
"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],
"MetroidPrime/Enemies/CFlickerBat",
"MetroidPrime/BodyState/CBodyStateCmdMgr",
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],
"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],
"MetroidPrime/BodyState/CBodyController",
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],
"MetroidPrime/CSteeringBehaviors",
2022-10-28 06:37:30 -07:00
["MetroidPrime/BodyState/CBSGroundHit", False],
"MetroidPrime/Enemies/CChozoGhost",
"MetroidPrime/Enemies/CFireFlea",
2022-10-24 16:29:11 -07:00
["MetroidPrime/BodyState/CBSSlide", False],
"MetroidPrime/BodyState/CBSHurled",
"MetroidPrime/BodyState/CBSJump",
2022-10-28 04:26:17 -07:00
["MetroidPrime/BodyState/CBSGenerate", True],
"MetroidPrime/Enemies/CPuddleSpore",
2022-10-28 04:34:03 -07:00
["MetroidPrime/BodyState/CBSTaunt", True],
"MetroidPrime/CSortedLists",
["MetroidPrime/ScriptObjects/CScriptDebugCameraWaypoint", True],
["MetroidPrime/ScriptObjects/CScriptSpiderBallAttractionSurface", False],
2022-10-28 04:25:08 -07:00
["MetroidPrime/BodyState/CBSScripted", True],
"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],
["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],
"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],
"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],
"MetroidPrime/Enemies/CDrone",
"MetroidPrime/CMapWorldInfo",
["MetroidPrime/Factories/CScannableObjectInfo", False],
"MetroidPrime/Enemies/CMetroid",
"MetroidPrime/Player/CScanDisplay",
2022-10-20 18:32:04 -07:00
["MetroidPrime/ScriptObjects/CScriptSteam", False],
["MetroidPrime/ScriptObjects/CScriptRipple", False],
"MetroidPrime/CBoneTracking",
["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],
"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],
"MetroidPrime/CGroundMovement",
2022-11-03 09:17:05 -07:00
["MetroidPrime/Enemies/CNewIntroBoss", False],
"MetroidPrime/Weapons/CPhazonBeam",
2022-10-17 11:17:46 -07:00
["MetroidPrime/ScriptObjects/CScriptTargetingPoint", True],
"MetroidPrime/BodyState/CBSWallHang",
2022-11-13 16:10:00 -08:00
["MetroidPrime/ScriptObjects/CScriptEMPulse", False],
"MetroidPrime/HUD/CHudDecoInterface",
"MetroidPrime/Weapons/CFlameThrower",
2022-11-24 08:29:09 -08:00
["MetroidPrime/Weapons/CBeamProjectile", False],
"MetroidPrime/CFluidPlaneCPU",
"MetroidPrime/CFluidPlaneDoor",
2022-11-04 07:58:34 -07:00
["MetroidPrime/ScriptObjects/CScriptRoomAcoustics", True],
"MetroidPrime/Enemies/CIceSheegoth",
2022-11-03 09:17:05 -07:00
["MetroidPrime/CCollisionActorManager", False],
"MetroidPrime/CCollisionActor",
"MetroidPrime/ScriptObjects/CScriptPlayerActor",
"MetroidPrime/Tweaks/CTweakPlayerRes",
2022-10-19 19:00:49 -07:00
["MetroidPrime/Enemies/CBurstFire", True],
"MetroidPrime/Enemies/CFlaahgra",
"MetroidPrime/Player/CPlayerEnergyDrain",
2022-11-26 17:43:52 -08:00
["MetroidPrime/CFlameWarp", False],
"MetroidPrime/Weapons/CIceImpact",
2022-10-13 22:58:49 -07:00
["MetroidPrime/GameObjectLists", True],
"MetroidPrime/Weapons/CAuxWeapon",
2022-11-24 16:01:26 -08:00
["MetroidPrime/Weapons/CGunWeapon", False],
["MetroidPrime/ScriptObjects/CScriptAreaAttributes", False],
"MetroidPrime/Weapons/CWaveBuster",
2022-11-10 02:55:04 -08:00
["MetroidPrime/Player/CStaticInterference", False],
"MetroidPrime/Enemies/CMetroidBeta",
"MetroidPrime/PathFinding/CPathFindSearch",
"MetroidPrime/PathFinding/CPathFindRegion",
"MetroidPrime/PathFinding/CPathFindArea",
["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],
"MetroidPrime/ScriptObjects/CFishCloud",
2022-10-13 15:37:09 -07:00
["MetroidPrime/CHealthInfo", True],
"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],
"MetroidPrime/Enemies/CJellyZap",
2022-12-08 14:05:14 -08:00
["MetroidPrime/ScriptObjects/CScriptControllerAction", True],
["MetroidPrime/Weapons/GunController/CGunMotion", False],
["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],
["MetroidPrime/ScriptObjects/CScriptPlayerStateChange", True],
"MetroidPrime/Enemies/CThardus",
"MetroidPrime/CActorParticles",
"MetroidPrime/Enemies/CWallCrawlerSwarm",
2022-10-21 09:00:19 -07:00
["MetroidPrime/ScriptObjects/CScriptAiJumpPoint", True],
"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],
"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],
"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],
"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],
"MetroidPrime/CEnvFxManager",
"MetroidPrime/Weapons/CEnergyProjectile",
"MetroidPrime/ScriptObjects/CScriptGunTurret",
2022-10-20 04:18:42 -07:00
["MetroidPrime/Weapons/CProjectileInfo", True],
"MetroidPrime/CInGameTweakManager",
"MetroidPrime/Enemies/CBabygoth",
"MetroidPrime/Enemies/CEyeBall",
"MetroidPrime/CIkChain",
["MetroidPrime/ScriptObjects/CScriptCameraPitchVolume", True],
2023-01-14 13:22:15 -08:00
["MetroidPrime/RumbleFxTable", True],
"MetroidPrime/Enemies/CElitePirate",
2022-10-17 04:10:16 -07:00
["MetroidPrime/CRumbleManager", True],
"MetroidPrime/Enemies/CBouncyGrenade",
"MetroidPrime/Enemies/CGrenadeLauncher",
"MetroidPrime/Weapons/CShockWave",
["MetroidPrime/Enemies/CRipperControlledPlatform", True],
"MetroidPrime/Enemies/CKnockBackController",
2022-11-04 09:15:45 -07:00
["MetroidPrime/Player/CWorldLayerState", False],
"MetroidPrime/Enemies/CMagdolite",
"MetroidPrime/Enemies/CTeamAiMgr",
"MetroidPrime/Enemies/CSnakeWeedSwarm",
2023-01-09 22:52:51 -08:00
"MetroidPrime/Cameras/CBallCameraFailsafeState",
"MetroidPrime/Enemies/CActorContraption",
"MetroidPrime/ScriptObjects/CScriptSpindleCamera",
2022-10-15 09:24:27 -07:00
["MetroidPrime/ScriptObjects/CScriptMemoryRelay", True],
"MetroidPrime/CPauseScreenFrame",
"MetroidPrime/Enemies/CAtomicAlpha",
"MetroidPrime/CLogBookScreen",
["MetroidPrime/CGBASupport", True],
"MetroidPrime/Player/CWorldSaveGameInfo",
["MetroidPrime/ScriptObjects/CScriptCameraHintTrigger", True],
2022-10-20 09:16:55 -07:00
["MetroidPrime/Enemies/CAmbientAI", True],
["MetroidPrime/CMemoryCardDriver", False],
"MetroidPrime/CSaveGameScreen",
"MetroidPrime/Enemies/CAtomicBeta",
2022-11-23 15:49:52 -08:00
["MetroidPrime/Weapons/CElectricBeamProjectile", False],
"MetroidPrime/Enemies/CRidley",
2022-10-28 21:22:07 -07:00
["MetroidPrime/Enemies/CPuffer", False],
["MetroidPrime/ScriptObjects/CFire", False],
2022-11-10 08:32:18 -08:00
["MetroidPrime/CPauseScreenBlur", True],
"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],
"MetroidPrime/Factories/CWorldSaveGameInfoFactory",
"MetroidPrime/CFluidPlaneRender",
"MetroidPrime/Enemies/CBurrower",
"MetroidPrime/Enemies/CMetroidPrimeExo",
2022-10-31 16:46:20 -07:00
["MetroidPrime/ScriptObjects/CScriptBeam", True],
"MetroidPrime/Enemies/CMetroidPrimeEssence",
"MetroidPrime/Enemies/CMetroidPrimeRelay",
"MetroidPrime/Player/CPlayerDynamics",
["MetroidPrime/ScriptObjects/CScriptMazeNode", False],
2022-12-01 05:45:36 -08:00
["MetroidPrime/Weapons/WeaponTypes", False],
"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],
"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],
"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],
],
},
{
"lib": "WorldFormatCW",
"mwcc_version": "1.3.2",
"cflags": "$cflags_retro",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
"WorldFormat/CAreaOctTree_Tests",
["WorldFormat/CCollisionSurface", True],
2022-11-02 23:54:47 -07:00
["WorldFormat/CMetroidModelInstance", True],
"WorldFormat/CAreaBspTree",
"WorldFormat/CAreaOctTree",
2022-10-20 17:26:38 -07:00
["WorldFormat/CMetroidAreaCollider", False],
["WorldFormat/CWorldLight", False],
"WorldFormat/COBBTree",
"WorldFormat/CCollidableOBBTree",
"WorldFormat/CCollidableOBBTreeGroup",
"WorldFormat/CPVSAreaSet",
"WorldFormat/CAreaRenderOctTree",
],
},
{
"lib": "WeaponsCW",
"mwcc_version": "1.3.2",
"cflags": "$cflags_retro",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
"Weapons/CProjectileWeapon",
"Weapons/CProjectileWeaponDataFactory",
"Weapons/CCollisionResponseData",
["Weapons/IWeaponRenderer", True],
"Weapons/CDecalDataFactory",
["Weapons/CDecal", False],
["Weapons/CWeaponDescription", True],
["Weapons/CDecalDescription", True],
],
},
{
"lib": "MetaRenderCW",
"mwcc_version": "1.3.2",
"cflags": "$cflags_retro",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": ["MetaRender/CCubeRenderer"],
},
{
"lib": "GuiSysCW",
"mwcc_version": "1.3.2",
"cflags": "$cflags_retro",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
2022-12-09 13:30:06 -08:00
["GuiSys/CAuiMain", True],
"GuiSys/CAuiMeter",
"GuiSys/CGuiGroup",
"GuiSys/CGuiHeadWidget",
2023-01-13 16:53:27 -08:00
["GuiSys/CGuiLight", True],
"GuiSys/CGuiModel",
2022-12-28 19:32:27 -08:00
["GuiSys/CGuiObject", False],
"GuiSys/CGuiPane",
"GuiSys/CGuiSliderGroup",
2022-12-31 11:59:30 -08:00
["GuiSys/CGuiSys", True],
"GuiSys/CGuiTableGroup",
"GuiSys/CGuiTextPane",
"GuiSys/CGuiTextSupport",
"GuiSys/CGuiWidget",
"GuiSys/CGuiWidgetIdDB",
2022-12-31 11:01:15 -08:00
["GuiSys/CGuiWidgetDrawParms", True],
"GuiSys/CAuiEnergyBarT01",
"GuiSys/CAuiImagePane",
2022-11-16 14:17:35 -08:00
["GuiSys/CRepeatState", True],
],
},
{
"lib": "CollisionCW",
"mwcc_version": "1.3.2",
"cflags": "$cflags_retro",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
2022-12-31 14:07:51 -08:00
["Collision/CCollidableAABox", False],
["Collision/CCollidableCollisionSurface", True],
["Collision/CCollisionInfo", True],
"Collision/InternalColliders",
2022-12-24 00:06:45 -08:00
["Collision/CCollisionPrimitive", False],
["Collision/CMaterialList", True],
2022-12-31 14:07:51 -08:00
["Collision/CollisionUtil", False],
"Collision/CCollidableSphere",
["Collision/CMaterialFilter", True],
["Collision/COBBox", False],
["Collision/CMRay", True],
],
},
{
"lib": "Kyoto_CW1",
"mwcc_version": "1.3.2",
"cflags": "$cflags_retro",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
2022-12-05 20:25:17 -08:00
["Kyoto/Basics/CBasics", True],
["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],
["Kyoto/Basics/COsContextDolphin", True],
["Kyoto/Basics/CSWDataDolphin", True],
["Kyoto/Basics/RAssertDolphin", False],
2022-12-08 14:45:30 -08:00
["Kyoto/Animation/CAnimation", True],
"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-11 19:00:40 -08:00
["Kyoto/Animation/CPASAnimInfo", True],
2023-01-11 18:20:23 -08:00
["Kyoto/Animation/CPASAnimParm", True],
"Kyoto/Animation/CPASAnimState",
"Kyoto/Animation/CPASDatabase",
2023-01-11 18:43:43 -08:00
["Kyoto/Animation/CPASParmInfo", True],
["Kyoto/Animation/CPrimitive", True],
"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],
"Kyoto/Animation/CTreeUtils",
"Kyoto/Animation/IMetaAnim",
["Kyoto/Audio/CSfxHandle", True],
"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],
"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],
"Kyoto/Animation/CSegStatementSet",
"Kyoto/Animation/CTimeScaleFunctions",
"Kyoto/Animation/IAnimReader",
"Kyoto/Animation/CAllFormatsAnimSource",
"Kyoto/CDvdRequest",
2023-01-11 12:06:08 -08:00
["Kyoto/Text/CColorInstruction", True],
["Kyoto/Text/CColorOverrideInstruction", True],
["Kyoto/Text/CDrawStringOptions", True],
"Kyoto/Text/CFontInstruction",
"Kyoto/Text/CFontRenderState",
["Kyoto/Text/CLineExtraSpaceInstruction", True],
"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],
["Kyoto/Text/CRemoveColorOverrideInstruction", True],
2022-12-22 18:18:46 -08:00
["Kyoto/Text/CSaveableState", True],
"Kyoto/Text/CTextExecuteBuffer",
"Kyoto/Text/CTextInstruction",
["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],
["Kyoto/Graphics/CLight", True],
"Kyoto/Graphics/CCubeModel",
["Kyoto/Graphics/CGX", True],
["Kyoto/Graphics/CTevCombiners", True],
["Kyoto/Graphics/DolphinCGraphics", False],
["Kyoto/Graphics/DolphinCPalette", False],
2022-12-03 13:31:54 -08:00
["Kyoto/Graphics/DolphinCTexture", False],
["Kyoto/Math/CloseEnough", True],
"Kyoto/Math/CMatrix3f",
2023-01-10 15:03:38 -08:00
["Kyoto/Math/CMatrix4f", False],
"Kyoto/Math/CQuaternion",
["Kyoto/CRandom16", True],
"Kyoto/Math/CTransform4f",
["Kyoto/Math/CUnitVector3f", True],
["Kyoto/Math/CVector2f", True],
["Kyoto/Math/CVector2i", True],
["Kyoto/Math/CVector3d", True],
["Kyoto/Math/CVector3f", False],
["Kyoto/Math/CVector3i", True],
["Kyoto/Math/RMathUtils", False],
["Kyoto/CCrc32", True],
["Kyoto/Alloc/CCircularBuffer", True],
2022-10-12 01:07:35 -07:00
["Kyoto/Alloc/CMemory", True],
["Kyoto/Alloc/IAllocator", True],
"Kyoto/PVS/CPVSVisOctree",
"Kyoto/PVS/CPVSVisSet",
2022-10-18 16:13:51 -07:00
["Kyoto/Particles/CColorElement", False],
"Kyoto/Particles/CElementGen",
["Kyoto/Particles/CIntElement", True],
["Kyoto/Particles/CModVectorElement", False],
["Kyoto/Particles/CParticleDataFactory", False],
"Kyoto/Particles/CParticleGen",
["Kyoto/Particles/CParticleGlobals", True],
"Kyoto/Particles/CParticleSwoosh",
"Kyoto/Particles/CParticleSwooshDataFactory",
2022-10-18 05:59:56 -07:00
["Kyoto/Particles/CRealElement", True],
"Kyoto/Particles/CSpawnSystemKeyframeData",
2022-10-18 16:13:51 -07:00
["Kyoto/Particles/CUVElement", False],
["Kyoto/Particles/CVectorElement", False],
["Kyoto/Particles/CWarp", True],
["Kyoto/Math/CPlane", True],
["Kyoto/Math/CSphere", True],
["Kyoto/Math/CAABox", False],
"Kyoto/CFactoryMgr",
"Kyoto/CResFactory",
"Kyoto/CResLoader",
2022-10-25 14:55:17 -07:00
["Kyoto/rstl/rstl_map", False],
"Kyoto/rstl/rstl_strings",
2023-01-12 14:46:08 -08:00
["Kyoto/rstl/RstlExtras", False],
["Kyoto/Streams/CInputStream", True],
["Kyoto/Streams/CMemoryInStream", True],
["Kyoto/Streams/CMemoryStreamOut", True],
["Kyoto/Streams/COutputStream", True],
["Kyoto/Streams/CZipInputStream", True],
["Kyoto/Streams/CZipOutputStream", True],
["Kyoto/Streams/CZipSupport", True],
["Kyoto/CFactoryStore", True],
2023-01-13 22:27:43 -08:00
["Kyoto/CObjectReference", True],
"Kyoto/CSimplePool",
2022-10-20 07:28:06 -07:00
["Kyoto/CToken", True],
["Kyoto/IObj", True],
],
},
{
"lib": "zlib",
"mwcc_version": "1.3.2",
"cflags": "$cflags_runtime",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
["Kyoto/zlib/adler32", True],
["Kyoto/zlib/deflate", True],
["Kyoto/zlib/infblock", True],
["Kyoto/zlib/infcodes", True],
["Kyoto/zlib/inffast", True],
["Kyoto/zlib/inflate", True],
["Kyoto/zlib/inftrees", True],
["Kyoto/zlib/infutil", True],
["Kyoto/zlib/trees", True],
["Kyoto/zlib/zutil", True],
2022-11-27 20:06:16 -08:00
],
},
{
"lib": "Kyoto_CW2",
"mwcc_version": "1.3.2",
"cflags": "$cflags_retro",
2022-10-20 18:32:04 -07:00
"host": True,
"objects": [
"Kyoto/CARAMManager",
"Kyoto/Math/CFrustumPlanes",
["Kyoto/Graphics/CCubeMaterial", False],
["Kyoto/Graphics/CCubeSurface", False],
2022-12-09 13:00:39 -08:00
["Kyoto/Animation/CCharAnimTime", False],
["Kyoto/Animation/CSegIdList", False],
["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],
"Kyoto/DolphinCMemoryCardSys",
["Kyoto/Input/DolphinIController", True],
["Kyoto/Input/CDolphinController", True],
2023-01-12 16:05:25 -08:00
["Kyoto/DolphinCDvdFile", False],
"Kyoto/Alloc/CMediumAllocPool",
["Kyoto/Alloc/CSmallAllocPool", True],
["Kyoto/Alloc/CGameAllocator", False],
"Kyoto/Animation/DolphinCSkinnedModel",
2023-01-12 12:37:45 -08:00
["Kyoto/Animation/DolphinCSkinRules", False],
["Kyoto/Animation/DolphinCVirtualBone", False],
"Kyoto/Graphics/DolphinCModel",
["Kyoto/Text/CStringTable", True],
"Kyoto/Particles/CEmitterElement",
2023-01-11 11:40:36 -08:00
["Kyoto/Particles/CEffectComponent", True],
2023-01-07 18:11:54 -08:00
["Kyoto/Particles/CParticleData", False],
"Kyoto/Animation/CVertexMorphEffect",
"Kyoto/Animation/CSkinnedModelWithAvgNormals",
["Kyoto/CTimeProvider", True],
2022-12-05 23:59:41 -08:00
["Kyoto/CARAMToken", True],
"Kyoto/Audio/CMidiManager",
["Kyoto/Text/CFontImageDef", True],
"Kyoto/Text/CImageInstruction",
"Kyoto/Text/CTextRenderBuffer",
"Kyoto/Graphics/CCubeMoviePlayer",
"Kyoto/Animation/CAdditiveAnimPlayback",
"Kyoto/Particles/CParticleElectricDataFactory",
"Kyoto/Particles/CParticleElectric",
["Kyoto/Graphics/DolphinCColor", True],
"Kyoto/Audio/CDSPStreamManager",
2023-01-13 23:55:03 -08:00
["Kyoto/CDependencyGroup", True],
"Kyoto/Audio/CStreamAudioManager",
["Kyoto/Animation/CHalfTransition", True],
"Kyoto/Particles/CElectricDescription",
"Kyoto/Particles/CSwooshDescription",
"Kyoto/Particles/CGenDescription",
"Kyoto/CPakFile",
"Kyoto/Animation/CPoseAsTransformsVariableSize",
["Kyoto/Input/CRumbleVoice", False],
["Kyoto/Input/RumbleAdsr", True],
["Kyoto/Input/CRumbleGenerator", True],
2023-01-13 22:48:44 -08:00
"Kyoto/Audio/CDSPStream",
["Kyoto/Audio/g721", True],
"Kyoto/Audio/CStaticAudioPlayer",
"Kyoto/CFrameDelayedKiller",
],
},
{
"lib": "ai",
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["Dolphin/ai", True],
],
},
{
"lib": "ar",
2022-12-20 18:09:34 -08:00
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"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],
],
},
{
"lib": "base",
"mwcc_version": "1.2.5",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["Dolphin/PPCArch", True],
],
},
{
"lib": "db",
"mwcc_version": "1.2.5",
"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],
],
},
{
"lib": "dsp",
2022-12-20 15:22:25 -08:00
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
2022-10-22 09:49:11 -07:00
["Dolphin/dsp/dsp", True],
["Dolphin/dsp/dsp_debug", True],
2022-12-20 15:19:11 -08:00
["Dolphin/dsp/dsp_task", True],
],
},
{
"lib": "dvd",
2022-10-21 09:30:09 -07:00
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
2023-01-13 10:32:40 -08:00
["Dolphin/dvd/dvdlow", False],
2023-01-12 16:05:25 -08:00
["Dolphin/dvd/dvdfs", True],
["Dolphin/dvd/dvd", False],
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],
],
},
{
"lib": "gx",
"mwcc_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,
"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],
"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",
"mwcc_version": "1.2.5",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
"Dolphin/mtx/mtx",
"Dolphin/mtx/mtx44vec",
"Dolphin/mtx/mtx44",
"Dolphin/mtx/vec",
"Dolphin/mtx/psmtx",
],
},
{
"lib": "os",
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["Dolphin/os/__start", True],
["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],
["Dolphin/os/OSAudioSystem", True],
2022-11-03 01:20:25 -07:00
["Dolphin/os/OSCache", True],
["Dolphin/os/OSContext", True, True, True],
2022-12-18 11:41:59 -08:00
["Dolphin/os/OSError", True],
"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],
"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],
["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],
["Dolphin/os/__ppc_eabi_init", True],
],
},
{
"lib": "pad",
2022-10-07 15:58:07 -07:00
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["Dolphin/pad/PadClamp", True],
["Dolphin/pad/pad", True],
],
},
{
"lib": "vi",
"mwcc_version": "1.2.5",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
2022-11-27 20:06:16 -08:00
"objects": ["Dolphin/vi"],
},
{
"lib": "MSL_C.PPCEABI.bare.H",
"mwcc_version": "1.3.2",
"cflags": "$cflags_runtime",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["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],
["Runtime/NMWException", True],
2022-10-10 02:30:25 -07:00
["Runtime/ptmf", True],
["Runtime/runtime", True],
2022-10-10 01:46:54 -07:00
["Runtime/__init_cpp_exceptions", True],
["Runtime/Gecko_ExceptionPPC", True],
["Runtime/abort_exit", True],
["Runtime/alloc", False],
2022-10-13 01:02:37 -07:00
["Runtime/ansi_files", True],
"Runtime/ansi_fp",
["Runtime/arith", True],
2022-10-13 01:02:37 -07:00
["Runtime/buffer_io", True],
["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],
["Runtime/mbstring", True],
["Runtime/mem", True],
["Runtime/mem_funcs", True],
["Runtime/misc_io", True],
"Runtime/printf",
["Runtime/qsort", False],
["Runtime/rand", True],
["Runtime/sscanf", True],
["Runtime/string", True],
2022-10-11 08:23:29 -07:00
["Runtime/float", True],
"Runtime/strtold",
["Runtime/uart_console_io", True],
["Runtime/wchar_io", True],
["Runtime/e_acos", True],
["Runtime/e_asin", True],
["Runtime/e_atan2", True],
["Runtime/e_exp", False], # CW 1.3.2 lib bug
["Runtime/e_fmod", True],
["Runtime/e_log", True],
["Runtime/e_pow", False], # CW 1.3.2 lib bug
["Runtime/e_rem_pio2", True],
["Runtime/k_cos", True],
["Runtime/k_rem_pio2", True],
["Runtime/k_sin", True],
["Runtime/k_tan", True],
["Runtime/s_atan", False], # CW 1.3.2 lib bug
["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],
],
},
{
"lib": "musyx",
"mwcc_version": "1.3.2",
"cflags": "$cflags_musyx",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
"musyx/seq",
"musyx/synth",
["musyx/seq_api", True],
2022-12-17 18:31:07 -08:00
["musyx/snd_synthapi", True, False],
["musyx/stream", False],
"musyx/synthdata",
"musyx/synthmacros",
"musyx/synthvoice",
["musyx/synth_ac", True],
"musyx/synth_adsr",
2022-12-17 17:50:25 -08:00
["musyx/synth_vsamples", False],
["musyx/synth_dbtab", True],
"musyx/s_data",
"musyx/hw_dspctrl",
"musyx/hw_volconv",
["musyx/snd3d", False],
["musyx/snd_init", True],
2022-12-24 14:54:58 -08:00
["musyx/snd_math", True],
["musyx/snd_midictrl", False],
["musyx/snd_service", True],
["musyx/hardware", False],
"musyx/hw_aramdma",
["musyx/dsp_import", True],
2022-12-16 00:11:11 -08:00
["musyx/hw_dolphin", True],
["musyx/hw_memory", True],
["musyx/creverb_fx", True],
"musyx/creverb",
["musyx/reverb_fx", True],
["musyx/reverb", False],
["musyx/delay_fx", True],
2022-12-24 14:54:58 -08:00
["musyx/chorus_fx", True],
],
},
{
"lib": "dtk",
"mwcc_version": "1.2.5",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["Dolphin/dtk", True],
],
},
{
"lib": "card",
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
2022-10-20 23:32:50 -07:00
["Dolphin/card/CARDBios", True],
["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],
["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],
],
},
{
"lib": "si",
2022-10-13 11:30:13 -07:00
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
["Dolphin/si/SIBios", False],
2022-10-13 11:30:13 -07:00
["Dolphin/si/SISamplingRate", True],
],
},
{
"lib": "exi",
"mwcc_version": "1.2.5",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
2022-12-22 12:46:14 -08:00
["Dolphin/exi/EXIBios", True],
["Dolphin/exi/EXIUart", True],
],
},
{
"lib": "thp",
"mwcc_version": "1.2.5",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
"Dolphin/thp/THPDec",
"Dolphin/thp/THPAudio",
],
},
{
"lib": "gba",
2022-10-15 19:14:54 -07:00
"mwcc_version": "1.2.5e",
"cflags": "$cflags_base",
2022-10-20 18:32:04 -07:00
"host": False,
"objects": [
2022-10-15 17:58:24 -07:00
["Dolphin/GBA/GBA", True],
["Dolphin/GBA/GBAGetProcessStatus", False],
2022-10-15 14:47:17 -07:00
"Dolphin/GBA/GBAJoyBoot",
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],
"Dolphin/GBA/GBAKey",
],
},
]
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
2022-11-27 20:06:16 -08:00
from shutil import which
from tools import ninja_syntax
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(
"--no-static-libs",
2022-11-27 20:06:16 -08:00
dest="static_libs",
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",
help="path to devkitPPC",
)
if os.name != "nt" and not "_NT-" in os.uname().sysname:
parser.add_argument(
"--wine",
dest="wine",
help="path to wine (or wibo)",
)
parser.add_argument(
"--build-dtk",
dest="build_dtk",
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)",
)
2022-11-27 20:06:16 -08:00
args = parser.parse_args()
2022-11-27 20:06:16 -08:00
# On Windows, we need this to use && in commands
ALLOW_CHAIN = "cmd /c " if os.name == "nt" else ""
2022-11-27 20:06:16 -08:00
out = io.StringIO()
n = ninja_syntax.Writer(out)
2022-11-27 20:06:16 -08:00
n.variable("ninja_required_version", "1.3")
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)
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")
n.variable("version", args.version.lower())
if args.version.lower() == "kor":
n.variable("version_num", "2")
elif args.version.isnumeric() and int(args.version) in [0, 1]:
n.variable("version_num", args.version)
else:
2022-11-27 20:06:16 -08:00
sys.exit(f'Invalid version "{args.version}"')
n.variable("builddir", "build/mp1.$version")
if args.devkitppc:
n.variable("devkitppc", args.devkitppc)
elif os.name == "nt":
n.variable("devkitppc", "C:\devkitPro\devkitPPC")
elif "DEVKITPPC" in os.environ:
n.variable("devkitppc", os.environ["DEVKITPPC"])
else:
n.variable("devkitppc", "/opt/devkitpro/devkitPPC")
2022-12-14 08:50:58 -08:00
cflags_base = "-proc gekko -nodefaults -Cpp_exceptions off -RTTI off -fp hard -fp_contract on -O4,p -maxerrors 1 -enum int -inline auto -str reuse -nosyspath -MMD -DPRIME1 -DVERSION=$version_num -DNONMATCHING=0 -i include/ -i libc/"
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")
2022-12-14 08:50:58 -08:00
asflags = "-mgekko -I include/ --defsym version=$version_num -W --strip-local-absolute -gdwarf-2"
n.variable("asflags", asflags)
ldflags = "-fp fmadd -nodefaults -lcf ldscript.lcf"
2022-11-27 20:06:16 -08:00
if args.map:
ldflags += " -map $builddir/MetroidPrime.MAP"
n.variable("ldflags", ldflags)
n.variable("mwcc_version", "1.3.2")
n.variable("python", sys.executable)
if os.name == "nt":
n.variable("exe", ".exe")
else:
if "_NT-" in os.uname().sysname:
# MSYS2
n.variable("wine", "")
elif args.wine:
n.variable("wine", args.wine + " ")
elif which("wibo") is not None:
n.variable("wine", "wibo ")
else:
2022-11-27 20:06:16 -08:00
n.variable("wine", "wine ")
n.variable("exe", "")
n.newline()
2022-11-27 20:06:16 -08:00
###
# Rules
###
if os.name == "nt":
2023-01-05 07:30:21 -08:00
mwcc_command = "tools\\mwcc_compiler\\$mwcc_version\\mwcceppc.exe $cflags -c $in -o $basedir"
mwcc_frank_command = (
ALLOW_CHAIN
2022-11-27 20:06:16 -08:00
+ "tools\\mwcc_compiler\\$mwcc_version\\mwcceppc.exe $cflags -c $in -o $basedir && "
2023-01-05 07:30:21 -08:00
+ "$python tools/franklite.py $out $out"
2022-11-27 20:06:16 -08:00
)
2023-01-05 07:30:21 -08:00
link_elf_command = "tools\\mwcc_compiler\\$mwcc_version\\mwldeppc.exe $ldflags -o $out @$out.rsp"
assemble_asm_command = (
ALLOW_CHAIN
+ "$devkitppc\\bin\\powerpc-eabi-as.exe $asflags -o $out $in -MD $out.d"
+ " && $dtk elf fixup $out $out"
)
2022-11-27 20:06:16 -08:00
n.comment("Link ELF file")
n.rule(
name="link",
2023-01-05 07:30:21 -08:00
command=link_elf_command,
2022-11-27 20:06:16 -08:00
description="LINK $out",
rspfile="$out.rsp",
rspfile_content="$in",
)
n.newline()
2022-10-03 17:00:46 -07:00
else:
2023-01-05 07:30:21 -08:00
mwcc_command = "${wine}tools/mwcc_compiler/$mwcc_version/mwcceppc.exe $cflags -c $in -o $basedir && $python tools/transform-dep.py $basefile.d $basefile.d"
mwcc_frank_command = (
"${wine}tools/mwcc_compiler/$mwcc_version/mwcceppc.exe $cflags -c $in -o $basedir && "
2022-11-27 20:06:16 -08:00
+ "$python tools/franklite.py $out $out && "
2023-01-05 07:30:21 -08:00
+ "$python tools/transform-dep.py $basefile.d $basefile.d"
2022-11-27 20:06:16 -08:00
)
2023-01-05 07:30:21 -08:00
link_elf_command = "${wine}tools/mwcc_compiler/$mwcc_version/mwldeppc.exe $ldflags -o $out @$out.rsp"
assemble_asm_command = (
"$devkitppc/bin/powerpc-eabi-as $asflags -o $out $in -MD $out.d"
+ " && $dtk elf fixup $out $out"
)
2022-11-27 20:06:16 -08:00
n.comment("Link ELF file")
n.rule(
name="link",
2023-01-05 07:30:21 -08:00
command=link_elf_command,
2022-11-27 20:06:16 -08:00
description="LINK $out",
rspfile="$out.rsp",
rspfile_content="$in_newline",
2022-11-27 20:06:16 -08:00
)
n.newline()
2023-01-05 07:30:21 -08:00
n.comment("MWCC build")
n.rule(
name="mwcc",
command=mwcc_command,
description="MWCC $out",
depfile="$basefile.d",
deps="gcc",
)
n.newline()
n.comment("MWCC build with franklite")
n.rule(
name="mwcc_frank",
command=mwcc_frank_command,
description="FRANK $out",
depfile="$basefile.d",
deps="gcc",
)
n.newline()
n.comment("Assemble asm")
n.rule(
name="as",
command=assemble_asm_command,
description="AS $out",
depfile="$out.d",
deps="gcc",
)
n.newline()
n.comment("Create static library")
n.rule(
name="ar",
command="$dtk ar create $out @$out.rsp",
description="AR $out",
rspfile="$out.rsp",
rspfile_content="$in_newline",
)
n.newline()
2022-11-27 20:06:16 -08:00
n.comment("Host build")
n.variable("host_cflags", "-I include/ -Wno-trigraphs")
n.variable(
"host_cppflags",
"-std=c++98 -I include/ -fno-exceptions -fno-rtti -D_CRT_SECURE_NO_WARNINGS -Wno-trigraphs -Wno-c++11-extensions",
)
n.rule(
name="host_cc",
command="clang $host_cflags -c -o $out $in",
description="host_cc $out",
)
n.rule(
name="host_cpp",
command="clang++ $host_cppflags -c -o $out $in",
description="host_c++ $out",
)
n.newline()
2022-12-14 08:50:58 -08:00
###
# Tooling
###
n.comment("decomp-toolkit")
if args.build_dtk:
n.variable("dtk", os.path.join("build", "tools", "release", "dtk$exe"))
n.rule(
name="cargo",
command="cargo build --release --manifest-path $in --bin $bin --target-dir $target",
description="CARGO $bin",
depfile="$target/release/$bin.d",
deps="gcc",
)
n.build(
outputs="$dtk",
rule="cargo",
inputs=os.path.join(args.build_dtk, "Cargo.toml"),
variables={
"bin": "dtk",
"target": os.path.join("build", "tools"),
},
)
else:
n.variable("dtk", os.path.join("build", "tools", "dtk$exe"))
n.rule(
name="download_dtk",
command="$python tools/download_dtk.py $in $out",
description="DOWNLOAD $out",
)
n.build(
outputs="$dtk",
rule="download_dtk",
inputs="dtk_version",
implicit=["tools/download_dtk.py"],
)
2022-11-27 20:06:16 -08:00
###
# Rules for source files
###
n.comment("Source files")
all_source_files = []
all_host_source_files = []
for lib in LIBS:
inputs = []
if "lib" in lib:
lib_name = lib["lib"]
n.comment(f"{lib_name}.a")
else:
n.comment("Loose files")
for object in lib["objects"]:
completed = None
add_to_all = True
no_frank = False
if type(object) is list:
2022-11-27 20:06:16 -08:00
if len(object) > 2:
add_to_all = object[2]
if len(object) > 3:
no_frank = object[3]
completed = object[1]
object = object[0]
2022-11-27 20:06:16 -08:00
mwcc_version = lib["mwcc_version"]
c_file = None
if os.path.exists(os.path.join("src", f"{object}.cpp")):
c_file = os.path.join("src", f"{object}.cpp")
elif os.path.exists(os.path.join("src", f"{object}.c")):
c_file = os.path.join("src", f"{object}.c")
if c_file is not None:
if completed is None:
print(f"Mark as incomplete: {c_file}")
rule = "mwcc"
if mwcc_version == "1.2.5e":
mwcc_version = "1.2.5"
if no_frank is False:
rule = "mwcc_frank"
2022-11-27 20:06:16 -08:00
n.build(
outputs=f"$builddir/src/{object}.o",
rule=rule,
inputs=c_file,
variables={
"mwcc_version": mwcc_version,
"cflags": lib["cflags"],
"basedir": os.path.dirname(f"$builddir/src/{object}"),
"basefile": f"$builddir/src/{object}",
},
)
if lib["host"]:
n.build(
outputs=f"$builddir/host/{object}.o",
rule="host_cc" if c_file.endswith(".c") else "host_cpp",
inputs=c_file,
variables={
"basedir": os.path.dirname(f"$builddir/src/{object}"),
"basefile": f"$builddir/src/{object}",
},
)
2023-01-17 10:48:09 -08:00
n.build(
outputs=f"host/{c_file}",
rule="phony",
inputs=f"$builddir/host/{object}.o",
)
2022-11-27 20:06:16 -08:00
if add_to_all:
all_host_source_files.append(f"$builddir/host/{object}.o")
if add_to_all:
all_source_files.append(f"$builddir/src/{object}.o")
if os.path.exists(os.path.join("asm", f"{object}.s")):
n.build(
outputs=f"$builddir/asm/{object}.o",
rule="as",
inputs=f"asm/{object}.s",
2022-12-14 08:50:58 -08:00
implicit="$dtk",
2022-11-27 20:06:16 -08:00
)
if completed:
2022-10-03 17:00:46 -07:00
inputs.append(f"$builddir/src/{object}.o")
else:
inputs.append(f"$builddir/asm/{object}.o")
2022-11-27 20:06:16 -08:00
if args.static_libs and "lib" in lib:
lib_name = lib["lib"]
n.build(
outputs=f"$builddir/lib/{lib_name}.a",
rule="ar",
inputs=inputs,
implicit="$dtk",
2022-11-27 20:06:16 -08:00
)
n.newline()
2022-11-27 20:06:16 -08:00
###
# Link
###
n.comment("Link")
inputs = []
for lib in LIBS:
if args.static_libs and "lib" in lib:
lib_name = lib["lib"]
inputs.append(f"$builddir/lib/{lib_name}.a")
else:
for object in lib["objects"]:
completed = False
if type(object) is list:
completed = object[1]
object = object[0]
2022-10-10 02:21:02 -07:00
2022-11-27 20:06:16 -08:00
if completed:
inputs.append(f"$builddir/src/{object}.o")
else:
inputs.append(f"$builddir/asm/{object}.o")
if args.map:
n.build(
outputs="$builddir/main.elf",
rule="link",
inputs=inputs,
implicit_outputs="$builddir/MetroidPrime.MAP",
)
else:
n.build(
outputs="$builddir/main.elf",
rule="link",
inputs=inputs,
)
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",
inputs=all_source_files,
)
n.newline()
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",
inputs=all_host_source_files,
)
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",
command=ALLOW_CHAIN
+ "$dtk elf2dol $in $out && "
+ "$dtk metroidbuildinfo $out buildstrings/mp1.$version.build",
description="DOL $out",
)
n.build(
outputs="$builddir/main.dol",
rule="elf2dol",
inputs="$builddir/main.elf",
implicit="$dtk",
)
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",
command="$dtk shasum -c $in -o $out",
2022-11-27 20:06:16 -08:00
description="CHECK $in",
)
n.build(
outputs="$builddir/main.dol.ok",
rule="check",
inputs="sha1/mp1.$version.sha1",
implicit=["$builddir/main.dol", "$dtk"],
)
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(
outputs="$builddir/main.dol.progress",
rule="progress",
inputs=["$builddir/main.dol", "$builddir/MetroidPrime.MAP"],
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",
implicit=["configure.py", "tools/ninja_syntax.py"],
)
n.newline()
2022-11-27 20:06:16 -08:00
###
# Default rule
###
n.comment("Default rule")
if args.check:
dol_out = "$builddir/main.dol.ok"
else:
dol_out = "$builddir/main.dol"
if args.map:
n.default([dol_out, "$builddir/main.dol.progress"])
else:
n.default([dol_out])
2022-11-27 20:06:16 -08:00
with open("build.ninja", "w") as f:
f.write(out.getvalue())
n.close()