Cafe API Libraries
The following sections list the available Cafe API functions.
Do not use functions that are not included in the following Cafe reference material.
Add-On Content (AOC) Library
Audio/Video Accessories Libraries
||The camera (CAM) library controls the video stream from the GamePad camera.
|GamePad (DRC) Microphone Library
||The GamePad microphone (MIC) library encapsulates all of the pieces that control access to the microphone on the GamePad.
|USB Microphone Library
||The USB microphone (USBMIC) library encapsulates all of the pieces that control access to the UAC stack, including attaching and detaching UAC devices.
|MIDI Adapter Library
||The MIDI adapter library enables the use of standard USB MIDI adapters.
This library is for development use only. It must NOT be included in final production applications.
||H.264/MPEG-4 AVC Decoder library provides a programming interface for decoding H.264 video data (H.264 Video Elementary Streams). The library can accept a bitstream that complies with the H.264/MPEG-4 AVC video format and output decoded image data.
|MP4 Demultiplexer Library
||The MP4 Demultiplexer library takes a MPEG-4 File Format, Version 1-compliant stream as input and gets information, such as the position and timestamp from the header data, for extracting H.264 video data and MPEG-4 AAC (AAC-LC, HE-AAC v1, or HE-AAC v2) audio elementary streams.
|HE-AAC Decoder Library
||HE-AAC (High-Efficiency Advanced Audio Coding) Audio Decoder Library provides a program interface that decodes AAC-encoded bitstream data that conforms to the HE-AAC Audio format. This library takes bitstream data as input and outputs PCM RAW data.
||The Independent JPEG Group (IJG) libjpeg is an optional library that enables encoding and decoding of JPEG images. This library conforms to ISO JPEG specifications, with a few limitations.
|Friend Presence Library
||The Friend Presence (FP) library provides features that allow applications to get and update information about the friend list, blacklist, and request list (a list of friend requests sent to the local user), and the current online status of friends (the friend presence) from the application. There is also a Wii U system feature called the Friend List Viewer that can manage these lists.
|Account System (ACT) Library
||The Account System (ACT) library provides the following features:
- Get IDs for identifying accounts
- Get basic information registered in a Nintendo Network account.
- Authenticate users based on information registered in Nintendo Network accounts.
||The SpotPass (BOSS) library downloads and uploads data according to the parameters set for the associated task.
|Profanity Filtering Library
||The Profanity Filtering (NGC) library that is used to check for and filter profanity.
|Local Communications (UDS) Library
||UDS communication is Nintendo’s proprietary communication method with one master (the parent system) connected to multiple clients (the child systems).
|Local Communications (RDT) Library
||RDT communication is a UDS communication method using one-to-one connections so no data is lost when one peer transmits to the other.
|Miiverse (OLV) Library
||The OLV Library sends and receives post data and direct messages, and it creates, deletes, and edits community data using libcurl and SSL.
Controller Function Libraries
||The Human Interface Devices (HID) library provides an interface with USB HIDs that are connected to the Wii U console. The HID library performs attach/detach and asynchronous transactions for HID devices on the external USB bus.
This library is used for HID driver development by HID device manufacturers. Ensure that you have the appropriate licensing permissions from Nintendo before developing an HID driver.
||The KBD library interfaces with USB keyboards that are connected to the Wii U console. It includes synchronous (polling) and asynchronous (interrupt callback) methods of retrieving keystrokes. It also provides access to generated Unicode (UTF-16) characters and to low-level USB HID key codes.
||The KPR library provides support for "dead" keys to create accented characters, using the ALT key with the numeric keypad to enter Unicode values, and converting Roman (Romaji) characters to Hiragana or Katakana. The KPR library is separate from the KBD library so that these functions can be supported by a physical keyboard or by a virtual on-screen keyboard.
||The PAD library initializes and reads input from the debug controller.
The PAD library functions are for development use only and must be removed prior to master submission.
||The KPAD library is a high-level abstraction for the Wii remote controller and its extensions. Whereas the low-level WPAD library manages the logical functions and communication channels of the Wii remote, the KPAD library interprets the raw sensor data into meaningful events for applications.
||The WPAD library detects and controls Nunchuk and Classic Controller speakers. The WPAD library can detect other external extension controllers and the Wii Balance Board if a special library is linked for each device. It also sends audio data to the controller speaker.
||The WBC library converts the raw values obtained using
WPADRead from the Wii Balance Board into weight values.
|Controller Speaker Encoding (WENC) Library
||The WENC library encodes the PCM data output by the AX library into data for the controller speaker.
||The VPAD library is a high-level abstraction for the GamePad (DRC). This library interprets the raw sensor data into meaningful events for applications.
|Energy Saver Library
||The Energy Saver (IM) functions allow control of the Cafe automatic power down and screen burn-in reduction features.
File System Library
|File system Library
||The FS library supports a standard set of devices and file systems. Important volumes are mounted by default when an application starts up.
Game Save Library
|Game Save Library
||The SAVE library manages save data for the application. The SAVE library provides save data management features that take into account the Wii U file system and user account specifications.
Temporary Directory Library
|Temporary Directory Library
||The TEMP library is to create a temporary directory. The TEMP library allows the application to temporarily store data using available space in the system save memory or USB media.
||The GX2 Runtime Library is a 3D graphics API that is modeled after OpenGL and the AMD r7xx series of graphics processors. The Wii U graphics processor is referred to as GPU7.
|DMA Engine (DMAE) Library
||The DMAE library transfers data synchronously/asynchronously to and from MEM1 and/or MEM2 without requiring a special context switch for the graphics pipe. The DMA has an independent command interface from the graphics pipeline. DMAE functions synchronize the CPU and GPU.
||The MTX library consists of vector and matrix operations using C, Paired-Single intrinsics, and Paired-Single assembler code. The MTX library serves as a functional and optimized open source matrix library and shows how to write the same code using C, PS, and ASM.
MAT is a wrapper interface that was created for type-checking and should be used instead of the MTX functions.
||The MP library implements individual tasks using the MPTask structure. API functions in the MP library can process task queues manually or automatically.
Near Field Communication
||The NFC library is a low-level library for the GamePad that provides features that are not dependent on the tag type. In general, when using NFC features, use a higher-level library that corresponds to the tag type (the NTAG library). Use the functions of this library only when using features that do not depend on tags.
||The NTAG library is used for reading and writing features of the NOFT (Nintendo’s proprietary tag format), an NFC feature in the GamePad.
|Auto Connection Library
||AC (Auto Connection) library handles the network connection state. You may not create network settings or modify parameters by using AC functions.
You may create/save by using tools and menus, such as System Config Tool. You may create network settings for development purposes only by using NC debugging functions.
||The NSSL and SO functions allow an application to perform secure communication on a TCP/IP client socket.
IO Profiling Libraries
||IO profiling APIs allows applications to obtain statistics of IO channel utilization over specific period of time. The statistics could be used to identify IO utilization characteristics and bottlenecks for applications.
This library is for development use only. It must NOT be included in final production applications.
Cafe Core OS (COS) Libraries
||The DC and LC libraries monitor and manage data cache and locked cache.
||Compress and uncompress data using the compression libraries.
||LZMALIB (Public Version 9.20)
||The LZMALIB library is a publicly available, royalty and license free library.
There are minimal modifications to what is publicly available on the lzmalib website (
||The SZFILE library is provided as a helper tool. It parses 7-Zip (.7z) files based on the publicly available information about the 7-Zip file format.
||The ZIPFILE library is provided as a helper tool. It parses ZIP files based on the public ally available information about the ZIP file format.
||The ZLIB library is a publicly available, royalty and license free library. There are no modifications to what is publicly available on the zlib website (
|Memory Management Library
||The MEM library allocates and manages memory.
||The Cafe Core OS (COS) library manages and monitors threads, execution, synchronization, and task distribution.
||The PM library starts and stops events, and reads and resets performance counters.
||The MULTI Paired Single extensions enable support for a
__vec2x32float__ built-in data type, which represents a vector two 32-bit floating-point numbers.
Process Lifecycle Libraries
||The ProcUI library includes functions that facilitate process switching. Process switching is a cooperative procedure between every process and COS. ProcUI was developed to simplify this process.
||The SYSAPP library includes functions that start various system applications.
Software Keyboard Library
| Software Keyboard Library
||The software keyboard library provides the functionality of a software keyboard that allows you to capture text that is input by users.
||AX is the heart of the Cafe Sound System. This library synthesizes audio data for the controller speaker.
Other audio libraries that the SDK provides are optional. They build upon the functionality provided by AX.
||The AXFX module provides Reverb, Delay, and Chorus effects for AX.
||The AX Articulator (AXART) library builds upon the MIX abstraction, providing more complex controls for mixing.
||MIX is an abstraction layer for AX that provides panning, surround panning, and fader controls for AX voices.
||The SEQ library provides sequencing functionality. It may be used with SYN to play standard MIDI files.
||The SYN library provides synthesizer functionality. It may be used with SEQ to play standard MIDI files.
System Configuration Interface Library
||The System Configuration Interface (SCI) is an application library that provides access to various system configuration settings, including:
2014-06-24 Reworked external link.
2014-04-25 Added TEMP Library.
2013-06-01 Initial version.