Preloading Applications

Overview

Wii U system can preload application into RAM Disk to enable faster launch times for applications. At this time, only executable files (RPX, RPL) can be preloaded. No data files can be preloaded.

As an example, when the user inserts a game disc, Wii U system can immediately start spinning up the disc and preload executable files into RAM Disk. This helps to reduce launch time when the user chooses to launch the game from Wii U system menu.

There are 2 methods for preloading:

  1. When an optical disc is inserted, the Wii U system automatically searches for a file named preload.txt. This file contains the main object file (RPX) for the game and any statically-linked RPLs that the RPX depends on.
  2. When the user selects an application stored in flash memory, the Wii U application launcher reads the preload.txt file that is associated with the application, and then starts to preload files. The Wii U application launch has several seconds of animation prior to starting launch activity. This time is a good opportunity to preload.
CAUTION:
Do not use the preloading feature with disc titles.

RAM Disk Capacity

Maximum size that can be preloaded is currently 20 MB. A preload size calculation tool is available for size check.

NOTE:
The size can change in the future.

RAM Disk Caching Algorithm

When an optical disc is inserted, Wii U preloads the application and marks it as “sticky”. This will remain sticky until the disc is ejected or Wii U is powered down. If the application resides in flash memory (i.e. NAND), the same “sticky” policy applies. In addition, for application stored in flash memory, if the game (or title) is uninstalled, any cached items in RAM Disk for this application will be removed.

The RAM disk caching algorithm uses a “Least Frequently Used” (LFU) policy for memory management. This means that when the RAM disk is fully used, the eviction policy dictates that the least used item(s) will be removed from the RAM disk to allow room for the new items.

Generating the Preload File

The preload file must be named preload.txt and reside in the application's code directory. The file must be space and/or newline delimited, and ideally contain the following items:

The preload checker tool verifies that preload files meet all necessary requirements. It may also be used to generate a preload file by passing -g as a command line argument. To use the tool, use the following command from a Cafe Cygwin shell:

$ preloadcheck.sh [options] [optional path to the code folder]
NOTE:
If a path to the preload file is not passed as an argument, then the current directory will be used.

Examples:

$ preloadcheck.sh
$ preloadcheck.sh helloworld_rpl/
$ preloadcheck.sh -g helloworld_rpl/

Demo

A demo is located in the directory $CAFE_ROOT\system\src\demo\examplemake\cafe_sdk\helloworld_rpl.

Building this demo will generate the files, hello.rpx, world.rpl, app.xml, and cos.xml, which are needed before running the preload checker tool. In this demo, world.rpl is statically bound to hello.rpx and should ideally be included in the preload file.

See Also

Application Mastering Overview

Revision History

2013/12/04 Removed unused anchors.
2013/11/27 Worked anchors.
2013/05/08 Automated cleanup pass.
2012/08/21 Initial version.


CONFIDENTIAL