WPADReadGameData

C Specification

#include <revolution/wpad.h>

#define WPAD_CHAN0                    0
#define WPAD_CHAN1                    1
#define WPAD_CHAN2                    2
#define WPAD_CHAN3                    3

#define WPAD_MEM_GAMEDATA_LEN         3888

s32 WPADReadGameData( s32 chan, void *p_buf, u16 len, u16 offset, WPADCallback callback );

Arguments

chan One of the WPAD_CHANn values.
p_buf The leading address for the buffer to which the read data is copied.
len The size of the data to be read
offset The offset from the game data's leading address to the start of the read.
callback Callback function for reporting the result.

Return Values

Returns one of the following codes:

WPAD_ERR_NONE
WPAD_ERR_NO_CONTROLLER
WPAD_ERR_BUSY
WPAD_ERR_BROKEN
WPAD_ERR_NOPERM

Description

Reads data from the memory of the Wii Remote control of the specified channel. This function registers the command used to read data to the library. The WPAD library processes registered commands when other commands are not running.

For saving game data, 4000 bytes are allocated in the Wii remote control memory, but the first 112 bytes are used by the library to manage file information. Even though an application can only save game data to the 3888 bytes from the 112th to the 4000th byte, the 112th byte has an offset value of 0 within the library so there is no need to be particularly aware of it.

The game title set with the WPADSetGameTitleUtf16 function, and the date and time when the file was saved are stored in the file information. The game title can be obtained with the WPADGetGameTitleUtf16 function, and the date and time can be obtained with the WPADGetGameDataTimeStamp function.

Applications can read only the game data that was created by the same application. When attempting to load game data that was created on a different application, WPAD_ERR_NOPERM is returned. In addition, when attempting to read game data that does not have correctly written file information, such as disconnection during writing, WPAD_ERR_BROKEN is returned.

The return values have the following meanings:

WPAD_ERR_NONEThe WPAD library received a command.
WPAD_ERR_BUSYThe WPAD library was unable to receive a command.
WPAD_ERR_NO_CONTROLLERThe connection was broken.
WPAD_ERR_NOPERMCould not be read because another game file was being saved.
WPAD_ERR_BROKENThe file does not exist or the file information is corrupted.

In addition, if a callback function is set, the callback function returns the following error codes when the processing is complete. Their meanings are as follows:

WPAD_ERR_NONE The command was processed normally.
WPAD_ERR_BUSY The WPAD library was unable to receive a command. Call it again later.
WPAD_ERR_TRANSFER A communications error prevented normal processing of the command.
WPAD_ERR_NO_CONTROLLER The connection was broken.
WPAD_ERR_NOPERM Could not be read because another game file was being saved.
WPAD_ERR_BROKEN The file does not exist or the file information is corrupted.

See Also

WPAD Functions
WPADWriteGameData, WPADSetGameTitleUtf16, WPADGetGameTitleUtf16, WPADGetGameDataTimeStamp

Revision History

2007/02/08 Revised the description of offset.
2006/11/29 Added errors that were left out of the error codes passed by the callback.
2006/09/23 Added explanations for WPADSetGameTitleUtf16, WPADGetGameTitleUtf16, and error codes.
2006/09/20 Added WPAD_ERR_BROKEN and WPAD_ERR_NOPERM.
2006/08/15 Initial version.


CONFIDENTIAL