Subsystems: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
mNo edit summary
(Show Wii U init addresses)
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Note: the following list does not include external libraries. Addresses are only correct for Switch 1.5.0.
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.
 
{{#dpl:
|category=Subsystems (BotW)
|ordermethod=titlewithoutnamespace
|includepage ={Subsystem infobox}:name:is_name_official:init_addr_switch150:init_addr_wiiu150:description
|table=width=100% class="wikitable sortable",-,Name,Official name,Init (Switch 1.5.0),Init (Wii U 1.5.0),Description
|tablerow=[[%PAGE%|%%]],²{#ifexpr:%%{{!}}Yes{{!}}No}²,%%,%%
}}


{| class="wikitable sortable"
! Name !! <code>createInstance</code> @ !! Official name !! Description
|-
| Account || 0000007100D0D958 || Yes || -
|-
| ActorCaptureMgr || 00000071007C0F60 || Yes || Development tool. See [[ActorCapture]]
|-
| ActorCreator || 00000071011DBAE4 || No || Constructs actors.
|-
| ActorDebug || 0000007100D255F0 || Yes || Debug tool.
|-
| ActorFactory || 00000071006CB940 || No || Holds a function pointer to the function that constructs a C++ actor by name.
|-
| ActorHeapUtil || 0000007100897748 || No ||-
|-
| ActorInfoData || 0000007100D2E16C || Yes || Utilities for querying actor info using [[ActorInfo.product.byml]], without having to load actors
|-
| [[ActorParam]] || 000000710116804C || Yes || Loads actor parameter files (such as ActorLink, AIProgram, etc.) Used by ActorCreator.
|-
| ActorPreLoadMgr || 0000007100D585C4 || Yes || -
|-
| ActorSystem || 0000007100D5D144 || Yes || -
|-
| ActorTemplate || 000000710108A0A0 || Yes || Utilities for querying data from [[ActorTemplate.byml]]
|-
| AIClassDef || 00000071011DF82C || Yes || Utilities for querying data from [[AIDef_Game.product.byml]]
|-
| AmiiboMgr || 00000071006488A8 || Yes || Handles amiibo functionality
|-
| AnimSequence || 0000007101163CE8 || Yes || -
|-
| aoc2 || 0000007100D6CDA4 || No || Handles DLC1 additions (such as Master Mode)
|-
| aoc3 || 000000710067F1C4 || No || Handles DLC2 additions
|-
| aocManager || 0000007100D69170 || Yes || Manages AoC related flags, add-on content resource loading and packs
|-
| ASSetting || 00000071012F33D4 || Yes || -
|-
| Attention || 0000007100D73AA0 || Yes || -
|-
| AutoDim || 00000071010B6878 || Yes || -
|-
| AutoGenFramework (A) || 000000710127C120 || No || Debug only
|-
| AutoGenFramework (B) || 000000710127C244 || No || Debug only
|-
| AutoPlacementFlowMgr || 0000007100651F94 || Yes || Runs event flow files to determine which actors to spawn on the map dynamically
|-
| AutoPlacementMgr || 00000071006546FC || Yes || -
|-
| Awareness || 0000007100D79324 || Yes || -
|-
| BaseProcMgr || 00000071011BD0CC || Yes || Unknown what this does exactly, but it is a critical part of the actor system
|-
| Camera || 0000007100D8C324 || Yes || -
|-
| CameraEditor || 00000071010BA244 || Yes || -
|-
| Chemical || 0000007100D99240 || Yes || -
|-
| Chmres || 0000007100D97D74 || No || -
|-
| Controller || 0000007100D9E964 || Yes || -
|-
| CookingMgr || 000000710089FFC8 || Yes || Determines which cook item should be returned for a given set of ingredients.
|-
| CreatePlayerEquipActorMgr || 0000007100665E1C || Yes || -
|-
| CreatePlayerTrashActorMgr || 0000007100667494 || Yes || -
|-
| CurrentResNameMgr || 00000071010B77A0 || Yes || Debug tool; unused in release builds.
|-
| DebugFinder || 000000710124A564 || Yes || Debug tool.
|-
| DebugInput || 0000007101266FD8 || Yes || Debug tool.
|-
| DragonChallengeMgr || 00000071006F9594 || Yes || [DLC2] -
|-
| DungeonPackMgr || 00000071008A559C || Yes || Handles dungeon pack loading when changing stages.
|-
| E3Mgr || 00000071008A5E04 || Yes || Handles E3 demo mode (time limit). Stubbed in release builds.
|-
| Ecosystem || 0000007100E4174C || Yes || Handles map areas, climates, auto placement parameters, difficulty scaling, etc.
|-
| Effect || 00000071011B3FB0 || Yes || -
|-
| EffectInfoData || 0000007101270A54 || Yes || Utilities for querying data from [[EffectInfo.byml]]
|-
| EventInfoData || 0000007100DAEE4C || Yes || Utilities for querying data from [[EventInfo.product.byml]]
|-
| EventMgr1 || 0000007100E48658 || No || -
|-
| EventMgr || 0000007100DAF3D8 || Yes || Manages all in-game events ([[event flow]]s, [[demo]]s, etc.)
|-
| EventMgrMiniGame || 0000007100E493F0 || No || -
|-
| GameConfig || 00000071008BBA94 || Yes || Holds game configuration setting values, which are hardcoded in release builds.
|-
| GameDataMgr || 0000007100DCE964 || Yes || Holds all game data flags and provides functions to get or set values
|-
| GameSceneSubsys1 || 00000071007CBA28 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys2 || 00000071007A5CA8 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys3 || 00000071007D20A0 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys4 || 000000710066A204 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys5 || 00000071009052FC || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys6 || 000000710067170C || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys7 || 00000071007D32E8 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys8 || 0000007100E4D770 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys9 || 0000007100674F78 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys10 || 000000710067F3A8 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys11 || 0000007100D2B7C8 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys12 || 00000071006623F0 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys13 || 00000071008A52E0 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys14 || 0000007100903598 || No || Unknown, initialised from GameScene code
|-
| GameSceneSubsys15 || 000000710089469C || No || Unknown, initialised from GameScene code
|-
| GameTool || 0000007100EDB87C || Yes || Debug tool.
|-
| GlobalMessage || 00000071011F4BF0 || Yes || -
|-
| GlobalParameter || 0000007100E4D064 || Yes || -
|-
| Graphics || 0000007100F2A1D0 || Yes || -
|-
| HavokAI || 0000007100F80B20 || Yes || -
|-
| HavokWorkerMgr || 00000071011F9C78 || Yes || -
|-
| Hio || 000000710121367C || Yes || -
|-
| HorseMgr || 0000007100E81FB0 || No || Handles horse registrations and status (?)
|-
| IceBlockMgr || 000000710066E984 || No || -
|-
| InitResourceReload || 0000007100F3CE9C || Yes || Debug tool.
|-
| KingEditor || 000000710122DD70 || Yes || Debug tool (?)
|-
| LastBossMgr || 00000071006776D4 || No || -
|-
| LayoutResourceMgr || 00000071010A2520 || Yes || Manages layout (= UI) related resources, such as message archives, fonts, etc.
|-
| LODMgr || 000000710125184C || Yes || Level of detail manager?
|-
| LowPrioThreadMgr || 000000710127A524 || Yes || -
|-
| MCMgr || 0000007100DCB390 || Yes || -
|-
| MemoryProfiler || 00000071010B7D18 || Yes || Debug tool.
|-
| MessageCapture || 00000071010B7E74 || Yes || Debug tool.
|-
| ModelCreator || 0000007100F4C63C || Yes || -
|-
| ModelPicker || 00000071010B7F9C || Yes || Debug tool.
|-
| ModelResourceDivide || 0000007100D3C978 || Yes || -
|-
| MoviePlayer || 00000071010B9934 || Yes || -
|-
| NavMeshSystem || 0000007100E8E850 || Yes || -
|-
| NFP || 0000007100F45988 || Yes || NFC services, used by AmiiboMgr
|-
| nxargs || 0000007100901BA4 || Yes || [Switch] Holds launch parameters (retrieved with nn::oe::TryPopLaunchParameter)
|-
| OnUiActorMgr || 00000071009065B0 || Yes || -
|-
| OverlayArenaSystem || 0000007100FDE3E8 || Yes || Memory utilities, used by ResourceMgr.
|-
| Patrol || 00000071010B9EF0 || Yes || Development
|-
| PauseMenuDataMgr || 000000710096B1CC || Yes || -
|-
| PhysicsMemSys || 0000007101213FF0 || No || Manages memory and custom Havok classes for the Havok library.
|-
| PlacementMgr || 00000071011E451C || Yes || Reads [[map unit]] ([[mubin]]) files and spawns actors
|-
| PlayerInfo || 0000007100854298 || No || Holds information about the player (position, heart, stamina, etc.)
|-
| PlayReport || 0000007100FD381C || Yes || Handles play reports, i.e. [[telemetry]] data
|-
| QuestMgr || 0000007100FD5770 || Yes || Holds information about game quests and steps. Interacts with GameDataMgr.
|-
| RadarMgr || 000000710067B9C0 || Yes || -
|-
| Reaction || 0000007100EC0138 || Yes || -
|-
| ResidentActorMgr || 000000710090E0A0 || Yes || Creates and manages actors that are always kept in memory such as GameROMPlayer
|-
| [[res::ResourceMgrTask]] || 0000007100ECA468 || Yes || Manages game resources (loading, unloading, caching, defragmenting, etc.). See also [[Resource system]].
|-
| [[ResourceSystem]] || 0000007100ECA468 || Yes || See also [[Resource system]].
|-
| Revision || 00000071010BA104 || Yes || Holds information about the game version and source revision. Unused in release builds.
|-
| RideMgr || 00000071006783F4 || No || Manages horses (?) and the Master Cycle Zero.
|-
| Rumble || 0000007100897B74 || Yes || -
|-
| SaveMgr || 0000007100E03214 || Yes || Loads game data into GameDataMgr or writes it to saves.
|-
| SaveSystem || 000000710090EE60 || No || -
|-
| SceneMgr || 0000007100896254 || Yes || -
|-
| Sound || 00000071011FA364 || Yes || -
|-
| SoundInfoData || 000000710103D5F8 || Yes || Utilities for querying data from [[SoundInfo.byml]]
|-
| SoundResource || 00000071011FA604 || Yes || -
|-
| StagePreActorCache || 0000007100ED912C || Yes || -
|-
| StarterPackMgr || 0000007100EDAA98 || Yes || Handles pack loading (AocMainField, Bootup, Title, TitleBG, lang packs) during early initialisation or stage changes
|-
| StatisticsMgr || 0000007100E31D1C || Yes || Manages access to precomputed map statistics (stored in Game/Stats)
|-
| TalkSystem || 00000071008AA614 || No || -
|-
| Terminal || 000000710109CC44 || Yes || Debug tool?
|-
| Terrain || 000000710114961C || Yes || -
|-
| TipsMgr || 000000710091DDD4 || Yes || Manages loading screen tips (resources, executing event flows)
|-
| UI || 00000071010A5714 || Yes || -
|-
| uiManager || 0000007100A6E038 || Yes || -
|-
| VFR || 00000071011C0D38 || Yes || -
|-
| Vibration || 00000071010BAEB4 || Yes || -
|-
| VideoRecorder || 00000071010BA7EC || Yes || Leftover development tool that writes screen captures to <code>%s/%04d.tga</code> (?)
|-
| WildHorseMgr || 0000007100E8C1F4 || No || -
|-
| WolfLinkMgr || 00000071006828A8 || No || Handles Wolf Link related tasks
|-
| WorkerSupportThreadMgr || 0000007100DCDFB0 || Yes || -
|-
| WorldMgr || 00000071010F2920 || Yes || Manages world state (time, blood moons, climates, weather, etc.)
|-
| XLink || 000000710123DE44 || Yes || Wrapper around the xlink2 library (EffectLink and SoundLink)
|-
| XLinkInfoData || 0000007101239668 || Yes || Utilities for querying data from [[XLinkInfo.byml]]
|}
[[Category:Internals]]
[[Category:Internals]]

Latest revision as of 15:11, 30 April 2021

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) Init (Wii U 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 032C34A8 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 029E58FC Handles amiibo functionality
AnimSequence Yes 0000007101163CE8 -
aoc2 No 0000007100D6CDA4 031696E4 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 029F976C Runs event flow files to determine which actors to spawn on the map dynamically
AutoPlacementMgr Yes 00000071006546FC 029FB6DC 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 02DB60B8 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 02A29C14 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 0310B10C Unknown, initialised from GameScene code. Responsible for spawning actor drops when they die
DungeonPackMgr Yes 00000071008A559C 02DBDBCC 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 031C8D5C Manages all in-game events (event flows, demos, etc.)
EventMgr1 No 0000007100E48658 -
EventMgrMiniGame No 0000007100E493F0 -
FadeProgress No 00000071007CBA28 02C4F6E4 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 02C23480 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 034059FC -
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 02A22378 -
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 02EADFDC Handles player inventory and equipment synchronization.
PhysicsMemSys No 0000007101213FF0 Manages memory and custom Havok classes for the Havok library.
PlacementMgr Yes 00000071011E451C 037C0688 Reads map unit (mubin) files and spawns actors
PlayReport Yes 0000007100FD381C Handles play reports, i.e. telemetry data
PlayerInfo No 0000007100854298 02D495D8 Holds information about the player (position, heart, stamina, etc.)
PlayerResetPosMgr No 00000071007A5CA8 02C1E338 Manages player reset positions
PosTrackerUploader Yes 0000007100A8BC8C Uploads position tracker data (i.e. Hero's Path data). See Telemetry.
QuestMgr Yes 0000007100FD5770 034E0AB0 Holds information about game quests and steps. Interacts with GameDataMgr.
RadarMgr Yes 000000710067B9C0 -
Reaction Yes 0000007100EC0138 -
Resetter No 00000071007D20A0 02C58148 Initialised from GameScene code - Handles game system resets.
ResidentActorMgr Yes 000000710090E0A0 02E38C4C 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 02A2C034 Initialised from GameScene code. Related to Sheikah Slate functionality (spawning bombs, scope, runes).
SaveMgr Yes 0000007100E03214 0324E6AC 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 02A3bC08 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 035eb994 Debug tool?
Terrain Yes 000000710114961C -
TipsMgr Yes 000000710091DDD4 Manages loading screen tips (resources, executing event flows)
UI Yes 00000071010A5714 035FD518 -
uiManager Yes 0000007100A6E038 0304A620 -
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 02A3ED90 Handles Wolf Link related tasks
WorkerSupportThreadMgr Yes 0000007100DCDFB0 -
WorldMgr Yes 00000071010F2920 03672220 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