If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Proto:The Legend of Zelda: Tri Force Heroes/Download Play Debug Build

From The Cutting Room Floor
Jump to navigation Jump to search
This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.
Hmmm...
To do:
Finish documenting main information. Gather screenshots. Attach demo build.

This is the Download Play demo originally from a Debug EU build of Tri Force Heroes. The demo was discovered in November 2022** within a NAND dump taken from a Nintendo of Europe development console. The main Debug EU build has not been found. The most notable difference between this build and other known demo and/or release builds is the presence of several intact Debug Menus.

[**Editor's Note: verify date]

(Source: To Do: credit source)


The contents of this demo are minimal as this is a Download Play Child application, though upon first glance, most of the files appear to be more polished akin to the final retail release (compared to the rough quality found in the E3 demo). Note that this build is dated July 24, 2015 at 14:08:58, roughly a few months after the E3 demo was built.

General

  • This demo contains no level nor costume files. This data is meant to be transmitted by a host console via Download Play protocol.
  • Currently this demo is only playable via Citra emulator. Attempting to run this title on console results in a crash upon boot.
  • Similar to other Download Play versions of Tri Force Heroes, BGM tracks are all in 8-bit. It is not possible to force the game to use normal BGM tracks, regardless of whether such tracks---taken from a retail release---have been patched back into the game.


Debug Features

Hmmm...
To do:
Check for any debug key combinations and/or features that have not been documented here. Include code patches.

Most debug options are labeled in Japanese. Translations and descriptions have been included in this section for convenience.

Two Debug Menus are intact in this demo, and can be accessed with the following code patches**.

(File patches are optional but recommended. As stated above, the contents of this demo are minimal. As such, it is preferable to patch in files from a retail version of Tri Force Heroes in order to play through the game and/or enable most debug options. Whenever the game cannot locate a necessary file, it will either crash or hang on the loading screen.)



Debug Key Combinations

These key combinations can be used at any time during normal gameplay.

  • [D-Pad Up + L] - Restarts the stage.
  • [D-Pad Down + X] - Cycles between Links in single-player mode.




Debug Menus

Sead Menu
Hmmm...
To do:
Include screenshot. Also include MelodyID track list.

This is an in-game Debug Menu with options to configure the game's mechanics in real-time. It can be accessed at any time by pressing [R + X] simultaneously.

The menu can be navigated via the D-Pad. Options are toggled either via the A button or the D-Pad Left/Right buttons. There are nine main options. They are as follows:


1. Heap View: [Editor's Note: WIP]

2. Calc Tree View: [Editor's Note: WIP]

3. Draw Tree View: [Editor's Note: WIP]

4. Thread View: [Editor's Note: WIP]

5. Audio Play: Allows the user to play through most BGM and SFX as found in the RomFS under the directory RomFS/Common/Sound. It is possible to replace the files found under this directory with ones found in the retail version of Tri Force Heroes to have a larger library of audio files to play.

Option Description
To Do Include contents.

6. System Config: [Editor's Note: WIP]

Option Description
ProcessMeter Displays the current load of running tasks as a percentage on the bottom screen.
SeriesDebugMode Unknown.
VBlankWaitDebugMode Unknown.

7. System Infomation: Displays build information, amongst other things.

8. Network Config: Self-explanatory. These options cannot be tested as multiplayer does not function correctly.

9. Application Config: Allows the user to manipulate in-game variables, akin to cheat codes.

Option Description
Invincible Enables various invincibility options.

NoDamage: Link does not take damage from enemies or from the environment (fire, electric shock, falling, etc.) but can still interact with them normally.
Through: Partially disables collision, allowing Link to move through all non-map Actor models (enemies, bushes, rocks, other players, etc.) completely. NoDamage is also applied.
ThroughCorrect: Similar to Through, except Link is restricted to only being able to move through enemies.
Off: Disables invincibility.
DebugMove Grants the user additional player movement options. Holding down the key combination [L + X] increases player speed and automatically raises the player onto higher platforms. Also enables walking-on-water.
MugenGanbari Infinite energy.
PowerUp One-shot enemies.
DebugDraw Toggles visibility of ProcessDraw, EntryDraw, and RevisionDraw.

ProcessDraw: Displays current performance and process statistics.
EntryDraw: Displays loaded files.
RevisionDraw: Displays Author, Target, and Build information.
ReturnPos Displays the Links' previous position, which is referenced whenever a Link respawns.
Bgm Allows the user to mute the BGM.
MelodyId Allows the user to force-select a Lobby Ball track. By default, this is set to an ID of -1, which tells the game to randomly select a track. Note that the track IDs are identical to the retail version:

To Do: track ID list....
MelodyCntOffset Lobby Ball Count Offset. This configures its bounce speed but not the hit counter.
MelodyStartCount Lobby Ball Start Count. This sets where the track should begin playing, but does not alter the hit counter.
MelodyType Allows the user to switch between the normal and 8-Bit Lobby Ball tracks.
MelodyBallBreak Dictates whether the Lobby Ball is able to burst instantly upon contact with any object other than a sword. Note that if Link collides with the Lobby Ball in this state, it will turn invincible and despawn unless hit with a sword.
Live Toggles the display of scrolling status messages on the top-screen.
Toggle Allows the user to toggle the next four menu options.

ToggleCrsFlag: Toggle Course Flag. This sets the completion state of the selected level and/or challenge. Pressing D-Pad Left/Right cycles through the levels/challenges; pressing A toggles its completion status.
ToggleDmFlag: Toggle Demo Flag. This allows the user to disable certain cutscenes. These changes do not seem to take effect unless a stage that utilizes such cutscenes are warped to either normally or via the NetDebug setting.
ToggleEvFlag: Toggle Event Flag. This dictates the flow of in-game events depending on current progress stored in the save file.
ToggleMtrl: Toggle Material. Allows the user to edit material inventory count(s).
Role Unknown. Lists all possible languages found in the JP, EU, and NA versions, though configuring this option does not produce any noticeable effects in-game.
DispSyncInfo Unknown.
DispMsgDebug Unknown.
TreasureDraw Allows the user to see the contents of treasure chests before opening them. In the retail release, this effect is granted by the Linebeck's Uniform.
ActorAction When toggled to EnemyKill, the game searches for any Actor that falls under the Enemy category and immediately defeats them.
EnemyInvincible Causes enemies to become invincible.
PlayerRupee Set the number of Rupees stored in the user's main wallet. Note that this is not referring to the Drablands Rupee count.
PlayerLife Sets current player health. Note that health units are in hearts; maximum health is 18 hearts.
FairyNum Sets number of fairies. This can be set to a maximum of 3.
FairyUnlimited Prevents the fairy count from decreasing.
RandomNPC Unknown. Configuring this option does not seem to result in any noticeable effects in-game.
BattleWin Sets number of Coliseum Battle wins.
Dlc1_Banner Unknown.
Dlc2_Banner Unknown.
Dlc1_Patch Unknown.
Dlc2_Patch Unknown.
Dlc1_Bought Unknown.
Dlc2_Bought Unknown.
NetDebug A variety of options that forces certain in-game events to occur on demand. The name "NetDebug" suggests that enabling a certain option causes its effects to appear on every connected console in multiplayer, though this cannot be tested currently.

PlayerForceDie: Forces the Links to faint.
EnemyHolocaust: Unknown.
RestructStage: Restart stage.
GoToStage1st: Warp to 1st stage of current level.
GoToStage2nd: Warp to 2nd stage of current level.
GoToStage3rd: Warp to 3rd stage of current level.
GoToStage4th: Warp to 4th stage of current level.
.GoToStageEnd: Warp to 5th stage of current level.
ReturnToLoby: Returns to either the Multiplayer Lobby or the Doppel Lobby depending on the current game mode.
SetEquipItem: Sets the Links' items. It is currently unknown how to edit the item configuration.
Battle10Seconds: Sets the remaining time in a Coliseum Battle to 10 seconds.
DLPRupeeMatFull: Sets the user's main Rupee wallet and material counts to the maximum number.
DumpBlacklist: Presumably this dumps the blacklist, however, this cannot be tested properly.
Alice Menu
Hmmm...
To do:
Include screenshots. Continue to test functionality of unknown tasks. Go back and add Japanese labels. Add a section about config.txt

This is the main debug menu that can be accessed via the Select button, which brings up a small, green confirmation window asking the user if they wish to exit to the Alice Menu.

There are 11 main options. Seven of them are Debug tasks. The other four are general tasks. They are as follows:


1. Game: Enables debug warping.
When hovered over this option, the bottom screen displays a minimal stage select menu. Stages can be selected by tapping on the colored rectangle with the Area name and cycling through the stage list via Circle Pad Left/Right. The bottom screen also displays various stage information:

Option Description
Items Displays available items. Note that it is not possible to edit this; the game only reads item information from RomFS/Archive/EU/RegionBoot.szs/Common/Data/DropItem.byaml and cannot configure it.
Challenge Cycles through available challenges via the Y button. Note that it is not possible to edit this; the game only reads item information from RomFS/Archive/EU/RegionBoot.szs/Common/Data/Todo.byaml and cannot configure it.
Doppels Toggles Doppels via the X button.
Costumes Toggles a costume selection menu via the B button.
Start This option can be configured to hold any value from 0-63 via the L/R buttons, though it is currently unclear what this is used for.

Pressing A after setting desired options initiates the warping sequence.


2. Title: Brings the user to the title screen. Does not appear to work despite patching in files related to the Title Screen.

3. StaffRoll: Initiates the credits sequence. Requires the following files patched in: []

4. DebugTask: Network: Allows the user to initiate a local or online connection. Online play cannot be tested in Citra; attempting to select INET AutoMatch leads to a crash.

  • Selecting the Host option creates a local multiplayer lobby, populating the Session ID information near the top. When one client has connected, the Host is given the option to warp to the selected stage chosen via the Game option in the Alice Menu, allowing gameplay with only two players. Once two clients are connected, this warping sequence happens automatically.
  • Selecting the Client option searches for available local lobbies.

5. DebugTask: Okane: Unknown.

6. DebugTask: Sakuraba: Brings the user to the title screen. Unlike Title, this task does work correctly, however, the Title Screen does not render properly on-screen. Requires the following files patched in: []

7. DebugTask: Grezzo: Unknown.

8. DebugTask: MessageCheck: Allows the user to test message sequences. Currently does not function correctly; it is unclear why. Requires the following files patched in: []

9. DebugTask: EventCheck: Unknown.

10. DebugTask: AutoRunExe: Allows the user to execute debug scripts found under RomFS/Common/Debug. Note that these scripts cannot be used as-is; the user must first grant the game with read/write access to the SD card via config.txt**. Afterwards, the scripts themselves must be extracted and placed on the user's SD card root under a folder called "Script".

  • Most scripts do run, however, they rarely complete successfully. This may be due to file dependencies that do not exist either in the RomFS or in the SD card.

11. TaskChild: Tests the functionality of the DLP Child application. Brings the user to the same connection screen first encountered upon boot. This debug option is redundant since this already is the DLP Child application.



Differences

Hmmm...
To do:
Graphical and text differences, if any. File assets have not been properly examined in detail as of yet.