Telemetry

From ZeldaMods (Breath of the Wild)
Revision as of 23:17, 24 October 2018 by imported>Leoetlino (→‎bloodymoon)
Jump to navigation Jump to search

Breath of the Wild sends a significant amount of telemetry reports to Nintendo about in-game events and usage patterns.

On Switch

On the Nintendo Switch, the prepo system service is used to save these reports.

Common report fields

Version info

Field Description
RomVer Game version
AocVer Add-on content version

Map info

Field Description
IsHardMode Is Master Mode
MapType MainField, AocField, CDungeon, MainFieldDungeon

Play times

Field Description
PlayTime Current play time (since the game was launched)
AllPlayTime Cumulated play time (since the first launch)

Position

Field Description
PosX Player's position on the map
PosZ Player's position on the map

Reports

korok

Whenever a hidden Korok appears.

  • Korok ID
  • Map info
  • Play times
  • Position

dungeon

When the player enters a dungeon or divine beast or the Final Trial, leaves it or completes it.

challenge

Quest event.

  • Map info
  • Id
  • Name
  • Step
  • StepName
  • Play times

gameover

When the player dies.

  • Map info
  • Reason (e.g. lightning)
  • Killer (the name of the actor that killed you)
  • Play times
  • Position
  • CRC32 of map name

bloodymoon

When a Blood Moon occurs.

  • Version info
  • Map info
  • Reason (0 for "Schedule" (regular) Blood Moons, non-zero for "ForMemory" (panic) Blood Moons)
  • RomWorkTime: time since game launch (in frames)
  • SceneWorkTime: time since last GameScene scene load
  • Map name
  • Play times
  • Position
Blood Moon reasons
Bit Description
0 Resource system: at least one of the following is true:
  • Bit 12 is set in the ResourceMgrTask's flags (indicating a problem with a resource load[check])
  • An overlay arena's heap free size percentage is less than or equal to its configured minimum percentage.
    • The limit is 0% for the OverlayArena system itself, "Tera SZS work" (Tera decompressing buffer), Audio and StarterPackMgr. The default is 0% too.
    • The limit is 5% for the "ForResourceS" (small) and "ForResourceL" (large) heaps, which is where most resources are allocated from.
1 PhysicsMemSys: Havok main heap is running out of memory (less than 5% free)
2 PlacementMgr: Actor spawning heap is running out of memory (less than 5% free)
3 ResourceSystem/OverlayArena: ForResourceS heap is running out of memory
4 ResourceSystem/OverlayArena: ForResourceL heap is running out of memory
5 ResourceSystem/OverlayArena: Audio heap is running out of memory
6 ResourceSystem/TextureHandleMgr: Last TextureHandleMgr::calc execution took more than 60 seconds

getitem

When an item is received.

  • Map info
  • CRC32 of the item name
  • Position
  • Play times

options

  • BalloonTextOnOff
  • AutoSaveOnOff
  • Options like CameraUpDownReverse, jump button change, ...
  • Whether the player is playing in docked mode or not
  • ControllerType
  • PlayTimeHandheld, PlayTimeConsole, PlayTimeAll
  • Audio mode (stereo, mono, surround)
  • etc.

emergencyheap

Whenever a memory allocation is made using an emergency heap (for example ActorSystem's emergency heap because an actor's instSize is too low).

  • Version info
  • Heap name
  • Play times
  • Position

Debug reports

Debug versions send additional play reports for many common in-game events, such as enemy kills, inventory items the player receives or uses, etc.

Position tracker data

The PosTrackerUploader component can upload position tracker data (i.e. Hero's Path data). It is currently unknown whether this feature is actually enabled in the release version.[check]

On Wii U

The Wii U version also includes telemetry code, with fewer reports and slightly different names (e.g. bloodymoon is called bmoon).

It is currently unknown when or if these reports are actually sent.