Subsystems: Difference between revisions
Jump to navigation
Jump to search
imported>Leoetlino No edit summary |
add a small description for subsystems |
||
| Line 1: | Line 1: | ||
The game code is organised into '''subsystems''', each responsible for one technical aspect of the game. Each subsystem is typically a singleton. | |||
Note: the following list does not include external libraries. It is also likely to be incomplete. | Note: the following list does not include external libraries. It is also likely to be incomplete. | ||
Revision as of 19:58, 16 May 2020
The game code is organised into subsystems, each responsible for one technical aspect of the game. Each subsystem is typically a singleton.
Note: the following list does not include external libraries. It is also likely to be incomplete.
| Name | Official name | Init (Switch 1.5.0) | Description |
|---|---|---|---|
| AIClassDef | Yes | 00000071011DF82C | Utilities for querying data from AIDef_Game.product.byml |
| ASSetting | Yes | 00000071012F33D4 | - |
| Account | Yes | 0000007100D0D958 | - |
| ActorCaptureMgr | Yes | 00000071007C0F60 | Development tool. See bactcapt |
| ActorCreator | No | 00000071011DBAE4 | Constructs and initialises actors |
| ActorDebug | Yes | 0000007100D255F0 | Debug tool. |
| ActorFactory | No | 00000071006CB940 | Holds a function pointer to the function that constructs a C++ actor by name. |
| ActorHeapUtil | No | 0000007100897748 | - |
| ActorInfoData | Yes | 0000007100D2E16C | Utilities for querying actor info using ActorInfo.product.sbyml, without having to load actors |
| ActorLimiter | No | 0000007100E4D770 | Limits the number of spawned actors (e.g. for amiibo drops) |
| ActorParam | Yes | 000000710116804C | Loads actor parameter files (such as ActorLink, AIProgram, etc.) Used by ActorCreator. |
| ActorPreLoadMgr | Yes | 0000007100D585C4 | - |
| ActorSystem | Yes | 0000007100D5D144 | - |
| ActorTemplate | Yes | 000000710108A0A0 | Utilities for querying data from Actor/ActorTemplate.byml |
| AmiiboMgr | Yes | 00000071006488A8 | Handles amiibo functionality |
| AnimSequence | Yes | 0000007101163CE8 | - |
| aoc2 | No | 0000007100D6CDA4 | Handles DLC1 additions (such as Master Mode) |
| aoc3 | No | 000000710067F1C4 | Handles DLC2 additions |
| aocManager | Yes | 0000007100D69170 | Manages AoC related flags, add-on content resource loading and packs |
| Attention | Yes | 0000007100D73AA0 | - |
| AutoDim | Yes | 00000071010B6878 | - |
| AutoGenFrameworkA | No | 000000710127C120 | Debug only |
| AutoGenFrameworkB | No | 000000710127C244 | Debug only |
| AutoPlacementFlowMgr | Yes | 0000007100651F94 | Runs event flow files to determine which actors to spawn on the map dynamically |
| AutoPlacementMgr | Yes | 00000071006546FC | Dynamically spawns actors on the map depending on complex conditions (areas, terrain, event flows, custom logic). |
| Awareness | Yes | 0000007100D79324 | - |
| BaseProcMgr | Yes | 00000071011BD0CC | BaseProc manager |
| Camera | Yes | 0000007100D8C324 | - |
| CameraEditor | Yes | 00000071010BA244 | - |
| Chemical | Yes | 0000007100D99240 | - |
| Chmres | No | 0000007100D97D74 | - |
| Controller | Yes | 0000007100D9E964 | - |
| CookingMgr | Yes | 000000710089FFC8 | Determines which cook item should be returned for a given set of ingredients. |
| CreatePlayerEquipActorMgr | Yes | 0000007100665E1C | - |
| CreatePlayerTrashActorMgr | Yes | 0000007100667494 | - |
| CurrentResNameMgr | Yes | 00000071010B77A0 | Debug tool; unused in release builds. |
| DamageInfoMgr | Yes | 000000710067170C | Unknown, initialised from GameScene code. Stores plenty of BaseProcLinks. |
| DebugFinder | Yes | 000000710124A564 | Debug tool. |
| DebugInput | Yes | 0000007101266FD8 | Debug tool. |
| DragonChallengeMgr | Yes | 00000071006F9594 | [DLC2] - |
| DropMgr | No | 0000007100D2B7C8 | Unknown, initialised from GameScene code. Responsible for spawning actor drops when they die |
| DungeonPackMgr | Yes | 00000071008A559C | Handles dungeon pack loading when changing stages. |
| E3Mgr | Yes | 00000071008A5E04 | Handles E3 demo mode (time limit). Stubbed in release builds. |
| Ecosystem | Yes | 0000007100E4174C | Handles map areas, climates, auto placement parameters, difficulty scaling, etc. |
| Effect | Yes | 00000071011B3FB0 | - |
| EffectInfoData | Yes | 0000007101270A54 | Utilities for querying data from EffectInfo.byml |
| EventActorMgr | No | 00000071008AA614 | Has to do with events and Demo_Talk actions |
| EventInfoData | Yes | 0000007100DAEE4C | Utilities for querying data from EventInfo.product.byml |
| EventMgr | Yes | 0000007100DAF3D8 | Manages all in-game events (event flows, demos, etc.) |
| EventMgr1 | No | 0000007100E48658 | - |
| EventMgrMiniGame | No | 0000007100E493F0 | - |
| FadeProgress | No | 00000071007CBA28 | Initialised from GameScene code - Updates the progress gauge on the loading screen ("Fade"). |
| GameConfig | Yes | 00000071008BBA94 | Holds game configuration setting values, which are hardcoded in release builds. |
| GameDataMgr | Yes | 0000007100DCE964 | Manages game data flags |
| GameScene | Yes | 0x71007D1DD8 | Handles the main loop and stages |
| GameSceneSubsys12 | No | 00000071006623F0 | Unknown, initialised from GameScene code |
| GameSceneSubsys13 | No | 00000071008A52E0 | Unknown, initialised from GameScene code |
| GameSceneSubsys14 | No | 0000007100903598 | Unknown, initialised from GameScene code |
| GameSceneSubsys15 | No | 000000710089469C | Unknown, initialised from GameScene code. Related to sound/BGM. |
| GameSceneSubsys4 | No | 000000710066A204 | Unknown, initialised from GameScene code |
| GameSceneSubsys5 | No | 00000071009052FC | Unknown, initialised from GameScene code |
| GameSceneSubsys7 | No | 00000071007D32E8 | Unknown, initialised from GameScene code. Related to Tera system (responsible for creating TeraSystem and loading the TSCB). |
| GameTool | Yes | 0000007100EDB87C | Debug tool. |
| GlobalMessage | Yes | 00000071011F4BF0 | - |
| GlobalParameter | Yes | 0000007100E4D064 | Loads the GlobalParameter parameters |
| Graphics | Yes | 0000007100F2A1D0 | - |
| HavokAI | Yes | 0000007100F80B20 | - |
| HavokWorkerMgr | Yes | 00000071011F9C78 | - |
| Hio | Yes | 000000710121367C | Link between the game and the HostIO (development) system. Stubbed in release builds. |
| HorseMgr | No | 0000007100E81FB0 | Handles horse registrations and status (?) |
| IceBlockMgr | No | 000000710066E984 | - |
| InitResourceReload | Yes | 0000007100F3CE9C | Debug tool. |
| KingEditor | Yes | 000000710122DD70 | Debug tool (?) |
| LODMgr | Yes | 000000710125184C | Level of detail manager? |
| LastBossMgr | No | 00000071006776D4 | - |
| LayoutResourceMgr | Yes | 00000071010A2520 | Manages layout (= UI) related resources, such as message archives, fonts, etc. |
| LowPrioThreadMgr | Yes | 000000710127A524 | - |
| MCMgr | Yes | 0000007100DCB390 | Manages job queues for the entire game[check] |
| MaskController | No | 00000071008BC0D8 | (name is only a guess) Holds a copy of controller input state. Used by AI system code (in particular AIDef:Action/WaitForFrame, AIDef:Action/WaitForKeyInput and AIDef:Query/KeyInputCheck. |
| MemoryProfiler | Yes | 00000071010B7D18 | Debug tool. |
| MessageCapture | Yes | 00000071010B7E74 | Debug tool. |
| ModelCreator | Yes | 0000007100F4C63C | - |
| ModelPicker | Yes | 00000071010B7F9C | Debug tool. |
| ModelResourceDivide | Yes | 0000007100D3C978 | - |
| MotorcycleMgr | No | 00000071006783F4 | Manages the Master Cycle Zero. |
| MoviePlayer | Yes | 00000071010B9934 | - |
| NFP | Yes | 0000007100F45988 | NFC services, used by AmiiboMgr |
| NavMeshSystem | Yes | 0000007100E8E850 | - |
| nxargs | Yes | 0000007100901BA4 | [Switch] Holds launch parameters (retrieved with nn::oe::TryPopLaunchParameter) |
| OnUiActorMgr | Yes | 00000071009065B0 | - |
| OverlayArenaSystem | Yes | 0000007100FDE3E8 | Memory utilities, used by ResourceMgr. |
| Patrol | Yes | 00000071010B9EF0 | Development |
| PauseMenuDataMgr | Yes | 000000710096B1CC | Handles player inventory and equipment synchronization. |
| PhysicsMemSys | No | 0000007101213FF0 | Manages memory and custom Havok classes for the Havok library. |
| PlacementMgr | Yes | 00000071011E451C | Reads map unit (mubin) files and spawns actors |
| PlayReport | Yes | 0000007100FD381C | Handles play reports, i.e. telemetry data |
| PlayerInfo | No | 0000007100854298 | Holds information about the player (position, heart, stamina, etc.) |
| PlayerResetPosMgr | No | 00000071007A5CA8 | Manages player reset positions |
| PosTrackerUploader | Yes | 0000007100A8BC8C | Uploads position tracker data (i.e. Hero's Path data). See Telemetry. |
| QuestMgr | Yes | 0000007100FD5770 | Holds information about game quests and steps. Interacts with GameDataMgr. |
| RadarMgr | Yes | 000000710067B9C0 | - |
| Reaction | Yes | 0000007100EC0138 | - |
| Resetter | No | 00000071007D20A0 | Initialised from GameScene code - Handles game system resets. |
| ResidentActorMgr | Yes | 000000710090E0A0 | Creates and manages actors that are always kept in memory such as GameROMPlayer |
| ResourceMgrTask | Yes | 0000007100ECA468 | Manages game resources (loading, unloading, caching, defragmenting, etc.). See also Resource system. |
| ResourceSystem | Yes | 0000007100ECA468 | See Resource system. |
| Revision | Yes | 00000071010BA104 | Holds information about the game version and source revision. Unused in release builds. |
| Rumble | Yes | 0000007100897B74 | - |
| RuneMgr | No | 0000007100674F78 | Initialised from GameScene code. Related to Sheikah Slate functionality (spawning bombs, scope, runes). |
| SaveMgr | Yes | 0000007100E03214 | Loads game data into GameDataMgr or writes it to saves. |
| SaveSystem | No | 000000710090EE60 | - |
| SceneMgr | Yes | 0000007100896254 | - |
| Sound | Yes | 00000071011FA364 | - |
| SoundInfoData | Yes | 000000710103D5F8 | Utilities for querying data from SoundInfo.byml |
| SoundResource | Yes | 00000071011FA604 | - |
| StagePreActorCache | Yes | 0000007100ED912C | - |
| StarterPackMgr | Yes | 0000007100EDAA98 | Handles pack loading (AocMainField, Bootup, Title, TitleBG, lang packs) during early initialisation or stage changes |
| StasisMgr | No | 000000710067F3A8 | Unknown, initialised from GameScene code. Handles Stasis effects (vector arrow, sound, etc.) and more |
| StatisticsMgr | Yes | 0000007100E31D1C | Manages access to precomputed map statistics (stored in Game/Stats) |
| Terminal | Yes | 000000710109CC44 | Debug tool? |
| Terrain | Yes | 000000710114961C | - |
| TipsMgr | Yes | 000000710091DDD4 | Manages loading screen tips (resources, executing event flows) |
| UI | Yes | 00000071010A5714 | - |
| uiManager | Yes | 0000007100A6E038 | - |
| VFR | Yes | 00000071011C0D38 | - |
| Vibration | Yes | 00000071010BAEB4 | - |
| VideoRecorder | Yes | 00000071010BA7EC | Leftover development tool that writes screen captures to %s/%04d.tga (?)
|
| WildHorseMgr | No | 0000007100E8C1F4 | - |
| WolfLinkMgr | No | 00000071006828A8 | Handles Wolf Link related tasks |
| WorkerSupportThreadMgr | Yes | 0000007100DCDFB0 | - |
| WorldMgr | Yes | 00000071010F2920 | Manages world state (time, blood moons, climates, weather, etc.) |
| XLink | Yes | 000000710123DE44 | Wrapper around the xlink2 library (EffectLink and SoundLink) |
| XLinkInfoData | Yes | 0000007101239668 | Utilities for querying data from XLinkInfo.byml |