Wii U/Virtual Console

From Hiccup
Jump to navigationJump to search
Hmmm...
To do:
  • Look for unused text/features in:
    • NES
    • SNES
    • Nintendo 64
    • TurboGrafx-16
    • MSX
    • Game Boy Advance
    • Nintendo DS
    • Wii

Nintendo 64

Hmmm...
To do:
If another ROM is added to the directory it gets stuck at a black screen, but doesn't appear to crash. Maybe there is an unused ROM selector like in other VCs.

Development Text

Controller Config

SELECT = "SELECT"		;For debug menu
LSTICKPUSH = "LSTICKPUSH"		;Left stick push down.
RSTICKPUSH = "RSTICKPUSH"		;Right stick push down.

The controller configuration file config.ini contains a comment suggesting that the select button was used to bring up a debug menu, and some explanations for pushing analog sticks in.

Build Info

BuildInfo.txt in the root of the title's main filesystem contains an SVN revision number and a build date.

Japan USA Europe
Donkey Kong 64 Title not dumped
SVN: 1680 TIME: 2015/01/20 14:12:06
"
Super Mario 64 Same as Super Mario 64 (USA) Title not dumped
Paper Mario
The Legend of Zelda:
Ocarina of Time
Mario Tennis
Kirby 64:
The Crystal Shards
Sin and Punishment
Custom Robo V2 Title doesn't exist Title doesn't exist
Mario Golf
1080° Snowboarding
Yoshi's Story
Wave Race 64
Excitebike 64
The Legend of Zelda:
Majora's Mask
Mario Party 2
Mario Kart 64
Pokémon Snap
F-Zero X
Star Fox 64
Ogre Battle 64:
Person of Lordly Caliber
Harvest Moon 64
Bomberman 64

ROM Filenames

The filenames of the ROMs contain some metadata. The format seems to be:
UUGGRZZZZZ
UU - Unknown
GG - Game
R - Region
ZZZZZ - Unknown

Japan USA Europe
Donkey Kong 64 Title not dumped
Undoe0.556
Undop0.599
Super Mario 64
Unsme0.005
Title not dumped
Paper Mario
The Legend of Zelda:
Ocarina of Time
Mario Tennis
Kirby 64:
The Crystal Shards
Sin and Punishment
Custom Robo V2 Title doesn't exist Title doesn't exist
Mario Golf
1080° Snowboarding
Yoshi's Story
Wave Race 64
Excitebike 64
The Legend of Zelda:
Majora's Mask
Mario Party 2
Mario Kart 64
Pokémon Snap
F-Zero X
Star Fox 64
Ogre Battle 64:
Person of Lordly Caliber
Harvest Moon 64
Bomberman 64

Nintendo DS

Early Shell

The original version of Brain Training, which was available for free in Japan and Europe for a limited time, contains an earlier version of the DS Virtual Console "shell" compared to the one used in the revised Brain Training and later DS VC releases. The USA didn't get a free version, therefore it technically doesn't have a revised version, but its initial (paid) version does incorporate the changes that the revised Japanese and European versions had.

General

  • The ROM is called rom.nds. In the revised Brain Training and later games, it is named after the Wii U title's WUP-X-XXXX code with an extension of "srl", which is used by Nintendo in other places too.

Emulation

Hmmm...
To do:

Interface

  • There is no Virtual Console Menu.
    • The only customization that exists is the ability to turn the picture on the GamePad and TV screen upside down by clicking the right analog stick, a feature that does not exist in the later shell.
    • The scanned DS manual is accesed via the digital manual button on the HOME menu, it is accesed in-software via the Virtual Console Menu in later shell.

Graphical

Icon

Original Revised Later game example
BrainTrainingVC-EuropeOriginalIcon.png BrainTrainingVC-EuropeRevisionIcon.png KirbySqueakSquadVC-EuropeIcon.png
  • Original Brain Training: the screenshot doesn't fill the rectangle vertically or horizontally.
  • Revised Brain Training: the screenshot fills the rectangle vertically. The screenshot was also updated for the revised version [because...?]
  • Later Games: the screenshot fills the rectangle vertically and horizontally.


Boot-up banner
[compare template]

  • The screenshot is [darker/darker because the emulator displays the game darker in the early shell]
  • A linebreak was added in the revised Brain Training.
  • The DS photo in the background has less artifacts in [later shells/the revised Brain Training].

Unused ROM and Config File

Hmmm...
To do:
In what way does the config file setup the game

The original Brain Training contains a European ROM for Yoshi Touch & Go, which was later released on DS Virtual Console, with what appears to be a corrupted signature and header. It comes with a config file and strange file called romfs.nds.cafe_hash which contains three unknown pieces of data, and then a SHA-1 hash of the ROM:

2 01000000 0003d8d1c9da30b3 09360eaeb5c2faf1752c263bc9d00c51dd7e0f6f
(Source: Original TCRF research)

Development Text

Paths

Brain Training original
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\display.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\home_button_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\external\jit_engine\code_emitter_base\source\memory\default_impl\cafe_code_allocator.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\ntr\Release\hachihachi_ntr.rpx
Brain Training revision and later games
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\application.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\application.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\application.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\application.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\display.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\display.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\display.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\display.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\file_system.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\home_button_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\home_button_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\home_button_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\home_button_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\host\cafe\error_viewer_management.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\virtual_machine\virtual_machine_control.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\code_emitter_application\arm_application_impl.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\code_emitter_application\arm_application_impl.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\code_emitter_application\arm_application_impl.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\source\code_emitter_application\arm_application_impl.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\external\jit_engine\code_emitter_base\source\memory\default_impl\cafe_code_allocator.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\external\jit_engine\code_emitter_base\source\memory\default_impl\cafe_code_allocator.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\external\jit_engine\code_emitter_base\source\memory\default_impl\cafe_code_allocator.cpp
C:\Jenkins\Slave\workspace\Hanafuda-hachihachi-packaging\hachihachi\external\jit_engine\code_emitter_base\source\memory\default_impl\cafe_code_allocator.cpp
C:\Dev\Mercurial\hanafuda\hachihachi-packaging\hachihachi\source\ntr\Release\hachihachi_ntr.rpx

Paths, spread throughout the ROM, mostly to uncompiled C++ code and some to rpx files. "Hanafuda" also appears in the NES Classic Edition. "hachihachi" seems to be the internal project name for the DS Virtual Console or maybe the Virtual Console on the Wii U generally.

ROM Selector

Hmmm...
To do:
Check if this exists, unused
Welcome to Hachihachi !
Choose your ROM with the Wii U GamePad:
Unable to delete FS client for the SD card!
Unable to add FS client for the SD card!
Unable to mount the SD card!
  - B to exit to parent directory
  - A to enter a directory or launch a ROM

It seems the developers behind the Nintendo DS Virtual Console had the ability to switch ROMs on the fly. This text doesn't exist in the original Brain Training.


Build Info

Hmmm...
To do:
Rest of the build info
Brain Training (Japan)
Apr 24 2014
2014-03-10
Brain Training (Japan) (Rev 1)
v25_hotfix.5e7a9a632962
Oct 29 2014
2014-03-10
Brain Training (Europe)
Apr 24 2014
2014-03-10
Brain Training (Europe) (Rev 1)
v25_hotfix
Oct 29 2014
2014-03-10
Brain Training (USA)
v25_hotfix.5e7a9a632962
Oct 29 2014
2014-03-10
Kirby Squeak Squad (USA)
v45_hotfix.fdd642724a57
2014-03-10

Some build info.

Misc

Rom SDK name   : %01d.%01d %s

Doesn't exist in the original Brain Training.

.lzma
.zip
.srl
.nds
.gba

Some file extensions. It only exists in the original Brain Training. .nds is used in the original Brain Training, and .zip and .srl are used in the revised Brain Training and later games. [.gba is/isn't used in GBA Virtual Console [on the Wii U] [but is used in x]]