SAVE Library Basic Specifications

Path of the Save Directory

The path to the save directory includes the title ID of the application. For example, an application with a title ID of 0x00050000_1F700500 would have a common save directory like the following.

/vol/storage_mlc01/usr/save/00050000/1f700500/user/common/

To support the creation of save data on external storage devices (such as USB hard drives), the Wii U uses a different path depending on where the save data is built on the device. However, the application does not need to track of device differences when creating save data. The SAVE library provides the application with an abstract version of this device-dependent path.

The application's save directory always uses the following root directory.

/vol/save/

The SAVE library automatically assigns the physical location of the save data to this path.

NOTE:
You cannot use the /vol/save/ path until the application completes the creation of the save directory using SAVEInitSaveDir.

Determining Which Device to Use for Save Data

Retail System

By default, the save directory is located on the Wii U's internal Flash storage (NAND). If the user has attached an external USB storage device, save data is handled as follows.

Dev Kit Environment

When using CAT-DEV, the physical location of a save directory vary by how the application that creates the save directory starts up.

Launch an application via caferun

Launch an application via cafediscrun

Launch an application from System Config Tool or Wii U menu

NOTE:
Storage selection is not performed with System Boot Mode (PCFS boot mode or NAND boot mode).

Find USB Setting

When you use caferun to run an application that uses USB storage, by default the USB storage is not detected and confirmed. When using USB storage, be sure to run System Config Tool and set the Find USB setting in the Test menu to TRUE. When set to TRUE, the SAVEInit function blocks execution until the USB storage device is found (or times out). Note that if a USB storage device is not connected and Find USB is set to TRUE, SAVEInit blocks execution for a few dozen seconds until it times out.

The default setting for Find USB is FALSE. If you run the application with caferun while this setting is FALSE, the application does not attempt to find any USB storage devices. If you know that USB storage will not be used, you can stop SAVEInit from blocking execution by changing this setting to FALSE.

If the application is started from the Wii U Menu or the System Config Tool launcher, the menu detects and confirms the USB storage it uses before starting the application, regardless of the Find USB setting. The SAVEInit specification does not apply.

Saving Data to External USB Storage

The SAVE library supports external USB storage.

Data saved to USB storage is protected by the Wii U file system. All files and directories on the USB storage device are automatically encrypted. Only the Wii U system that formatted the USB storage device can use the data on that device. Other Wii U systems and PCs see the USB storage device as an unformatted device and cannot read any information saved to the device, including names, content, and the numbers of files and directories. If the binary data on the USB device is forcibly changed, the Wii U file system detects that the data was altered and returns a corrupted data error.

However, you can create a dead copy of the USB storage device using a well-known PC tool. This method enables you to copy all of the content of the USB storage device to a different USB storage device. Because the data on the USB storage device has not changed, the Wii U file system is unable to differentiate between the dead copy and the original USB device. Game applications must provide a way of dealing with the possibility that save data could be copied.

Reserving Space for the Save Data Quota

To efficiently and fully use storage capacity, an application must tell the system to reserve the maximum amount of space (the quota) that can be used for save data.

An application can reserve this space by specifying the maximum space used for save data in the meta.xml file for that application.

The space is allocated by the quota mechanism of the file system.

The common (/vol/save/common/) save directory and the account (/vol/save/ <persistent ID>/) save directories are all mapped to the quota.

To specify the quota size for common and account directories in meta.xml, see the Application Configuration Guide.

To estimate the maximum space required for save data, see the Worksheet for Calculating Quota Size.

For more information, see the SAVE Programming Guide.

NOTE:
PCFS does not support the concept of quotas. The size of the save directory is not restricted when using PCFS-based file emulation through the host PC.

Basic Usage of the SAVE Library

NOTE:
Always use the SAVE library when creating, opening, and deleting files and subdirectories in the save directory. This ensures that the correct storage device is used when accessing save data.

For more information about the file system, see System Devices, File Systems, and Volumes.

Time Stamps for the Save Directory

If you call SAVEFlushQuota on the save directory, a time stamp will be recorded. A time stamp should show the time and date when SAVEFlushQuota is called. (only for SDK 2.10 or later)

You can view time stamps for the save directory under System Config Tool: Data Manager.

NOTE:
No time stamp should be recorded for the save directory on which SAVEFlushQuota has never been called. Again, no time stamp should be recorded for a save directory created by using SDK 2.10 or older if SAVEFlushQuota has never been called on it.

See Also

System Devices, File Systems, and Volumes
Application Configuration

Revision History

2014/04/24 Updated restrictions about save quota size.
2013/08/06 Added a section on time stamps for the save directory.
2013/05/08 Automated cleanup pass.
2013/03/06 Cleaned up content.
2011/03/29 Initial version.


CONFIDENTIAL