Telemetry: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
mNo edit summary
imported>Leoetlino
m (update the prepo link (the section name was changed on SwitchBrew))
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
''Breath of the Wild'' sends a significant amount of '''telemetry reports''' about in-game events and usage patterns.
''Breath of the Wild'' sends a significant amount of '''telemetry reports''' to Nintendo about in-game events and usage patterns.


== On Switch ==
== On Switch ==
On the Nintendo Switch, the [[switchbrew:BCAT_services#prepo:a.2C_prepo:m.2C_prepo:u.2C_prepo:s|prepo]] system service is used to save these reports.
On the Nintendo Switch, the [[switchbrew:BCAT_services#prepo:a.2C_prepo:a2.2C_prepo:m.2C_prepo:u.2C_prepo:s|prepo]] system service is used to save these reports.


=== Common report fields ===
=== Common report fields ===
==== Version info ====
==== Version info ====
* RomVer (game version)
{|class="wikitable"
* AocVer (DLC version)
! Field !! Description
|-
| RomVer || Game version
|-
| AocVer || [[DLC]] version
|}


==== Map info ====
==== Map info ====
* IsHardMode
{|class="wikitable"
* MapType: MainField, AocField, CDungeon, MainFieldDungeon
! Field !! Description
|-
| IsHardMode || Is Master Mode
|-
| MapType || MainField, AocField, CDungeon, MainFieldDungeon
|}


==== Play times ====
==== Play times ====
* PlayTime (play time since game init)
{|class="wikitable"
* AllPlayTime (cumulated play time)
! Field !! Description
|-
| PlayTime || Current play time (since the game was launched)
|-
| AllPlayTime || Cumulated play time (since the first launch)
|}


==== Position ====
==== Position ====
* PosX
{|class="wikitable"
* PosZ 
! Field !! Description
|-
| PosX || Player's position on the map
|-
| PosZ || Player's position on the map
|-
|}


=== Reports ===
=== Reports ===
* korok: whenever a hidden Korok appears. Includes: Korok ID, map info, play times, position
==== korok ====
* dungeon: when you enter a dungeon or divine beast or the Final Trial, leave it, or complete it. Includes: map info, dungeon name, event, play times
Whenever a hidden Korok appears.
* challenge: quest event. Includes: map info, Id, Name, Step, StepName, play times
* Korok ID
* gameover: obvious. Includes: map info, reason (e.g. lightning), Killer (the name of the actor that killed you), play times, position, CRC32 of map name
* Map info
* bloodymoon: includes version info, map info, Reason, RomWorkTime, SceneWorkTime, map name, play times, position
* Play times
* getitem: includes map info, CRC32 of the item name, position, play times
* Position
* options: Reports a bunch of misc things. BalloonTextOnOff, AutoSaveOnOff, options like CameraUpDownReverse, jump button change, whether you're playing in docked mode, ControllerType, PlayTimeHandheld, PlayTimeConsole, PlayTimeAll, audio mode (stereo, mono, surround), etc.
 
* emergencyheap: whenever a memory allocation is made using an emergency heap. Includes: version info, heap name, play times, position
==== dungeon ====
When the player enters a dungeon or divine beast or the Final Trial, leaves it or completes it.
* Map info
* Dungeon name
* Event
**"leave": every time a dungeon stage is exited. Triggered by [[GameScene]].
**"enter": every time a dungeon stage is loaded. Triggered by [[GameScene]].
**"first": first time a dungeon is entered. Triggered by [[AIDef:Action/SetEnterDungeonFlag]] (called from Demo008_2).
**"clear": when a dungeon is cleared. Triggered by [[AIDef:Action/SetCurrentDungeonClearFlag]] (called from Demo033_0).
* Play times
 
==== 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 panic [[blood moon]] occurs.
* Version info
* Map info
* Reason (see [[Blood moon#Panic Blood Moons]])
* RomWorkTime: time since game launch (in frames)
* SceneWorkTime: time since last [[GameScene]] scene load
* Map name
* Play times
* Position
 
==== 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 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.
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 ==
== On Wii U ==
It is unknown whether the Wii U version includes telemetry code or not.
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.
[[Category:Internals]]

Latest revision as of 17:55, 16 November 2019

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 panic blood moon occurs.

  • Version info
  • Map info
  • Reason (see Blood moon)
  • RomWorkTime: time since game launch (in frames)
  • SceneWorkTime: time since last GameScene scene load
  • Map name
  • Play times
  • Position

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.