Working with USB Storage Devices


The following describes use case scenarios for USB storage devices attached to a CAT-DEV or CAT-R development system. The USB storage devices include types such as USB Flash drives, USB Solid State Drives (SSD) and USB Hard Disk Drives (HDD). The term 'USB storage device' is used generically to represent any of the types above.

Developers now can format, install to, and launch titles from a USB storage device. This is a critical feature for developers creating titles that may be distributed online by the Nintendo eShop; such titles must be tested for operation from NAND, USB and optical disc storage media as applicable. Nintendo has tested and verified functionality for the devices listed in this topic: List of Supported Devices

Use case scenarios include:

Currently, we do not support hot-plugging of USB storage devices. If USB storage device is not plugged in when the system is turned on, it may not be recognized. If you unplug a USB storage device when the system is turned ON, the system may shutdown with a fatal error displayed on the screen.
Connecting multiple USB devices to the CAT-R or CAT-DEV is not supported.

Save Data behavior in regards to USB storage

Supported Configurations

CAT-DEV Configuration

  1. PC connected to a CAT-DEV through a Network Cable (available at the front of the CAT-DEV). Host PC can be used to run Cafe and System Config Tool commands (see below).
  2. CAT-DEV is connected to a display device such as a monitor or TV through HDMI port (available at the back of CAT-DEV).
  3. Classic Game controller connected to the CAT-DEV through Classic console port (available at the front of the CAT-DEV). This can be used to navigate System Config Tool on the monitor.

CAT-R Configuration

  1. CAT-R is connected to a display device such as a monitor or TV through HDMI port (available at the back of CAT-R).
  2. Wii Game controller synced to the CAT-R. This is used to navigate System Config Tool on the monitor.
  3. A USB Keyboard attached to one of the USB ports on CAT-R. The keyboard is used to execute commands such as set_install_dev usb just like the way we use it on CAT-DEV.

Important Commands in the System Config Tool Console UI

Command Description
get_titlesize Gets the quota size for the title. Example:
get_titlesize /vol/storage_hfiomlc01/sys/title/00050030/1001210a
will list the quota size in bytes.
You can get the path information from the list command.
install Installs a title from title directory on the HOST PC to either MLC or USB. By default the installation happens on MLC. If you use set_install_dev usb command, then the title gets installed on USB. Example:
install /vol/storage_hfiomlc01/install/helloworld_p01
will install the helloworld title to MLC or USB.
launch Launches an installed title. Example:
launch 0005001b10042300
will launch a title with title id 0005001b10042300. You can get the title id by using the list command.
list Lists the installed titles. For more information run help list. Example:
will list all the titles.
list 10
will list first 10 titles.
set_install_dev Set the target of installation to either MLC or USB. Default target is MLC. Example:
set_install_dev usb
will set the install target to USB.
The installation always happens on the volume usb01. If you have multiple USB devices attached, then you cannot install it on a volumes other than usb01.
uninstall Uninstall a title from the path. If the title is present on USB you could use the full path to uninstall a title from USB. Example:
uninstall /vol/storage_usb01/usr/title/00050000/11ccccc1
will uninstall the title id 0005000011ccccc1.

See Also

Formatting the USB Storage device
Installing Title(s) on the USB Storage device
Listing titles installed on USB and checking their size
Browsing and Launching a title from the USB Storage device
List of supported USB Storage devices
Hard Disk Based Emulation

Revision History

2013/05/08 Automated cleanup pass.
2013/01/23 Updates for System Config Tool
2012/10/05 Removed copy title related information
2012/10/02 Added mkdir command
2012/09/24 Minor edits for clarification
2012/09/13 Added summary of command
2012/09/05 Initial document