![]() |
libdragon
|
Joypad accessory helpers. More...
Go to the source code of this file.
Data Structures | |
struct | joypad_accessory_io_t |
Joypad Accessory I/O operation state. More... | |
struct | joypad_transfer_pak_io_t |
Joypad N64 Transfer Pak I/O operation state. More... | |
struct | joypad_accessory_t |
Joypad accessory structure. More... | |
Macros | |
#define | JOYPAD_ACCESSORY_RETRY_LIMIT 2 |
Number of times to retry accessory commands. | |
#define | joypad_accessory_state_is_detecting(state) |
Is Joypad accessory currently in detection state? | |
#define | joypad_accessory_state_is_transfer_enabling(state) |
Is Joypad accessory currently in Transfer Pak enabling state? | |
#define | joypad_accessory_state_is_transfer_loading(state) |
Is Joypad accessory currently in Transfer Pak loading state? | |
#define | joypad_accessory_state_is_transfer_storing(state) |
Is Joypad accessory currently in Transfer Pak storing state? | |
#define | JOYPAD_CONTROLLER_PAK_BANK_SWITCH_ADDRESS 0x8000 |
Controller pak address to perform bank switching. | |
Typedefs | |
typedef void(* | joypad_accessory_io_callback_t) (joypad_accessory_error_t error, void *ctx) |
Callback function signature for joypad_accessory_xfer_async. | |
Enumerations | |
enum | joypad_accessory_state_t { JOYPAD_ACCESSORY_STATE_IDLE = 0 , JOYPAD_ACCESSORY_STATE_DETECT_INIT , JOYPAD_ACCESSORY_STATE_DETECT_CPAK_BANK_WRITE , JOYPAD_ACCESSORY_STATE_DETECT_CPAK_LABEL_BACKUP , JOYPAD_ACCESSORY_STATE_DETECT_CPAK_LABEL_WRITE , JOYPAD_ACCESSORY_STATE_DETECT_CPAK_LABEL_READ , JOYPAD_ACCESSORY_STATE_DETECT_CPAK_LABEL_RESTORE , JOYPAD_ACCESSORY_STATE_DETECT_RUMBLE_PROBE_WRITE , JOYPAD_ACCESSORY_STATE_DETECT_RUMBLE_PROBE_READ , JOYPAD_ACCESSORY_STATE_DETECT_TRANSFER_PROBE_ON , JOYPAD_ACCESSORY_STATE_DETECT_TRANSFER_PROBE_READ , JOYPAD_ACCESSORY_STATE_DETECT_TRANSFER_PROBE_OFF , JOYPAD_ACCESSORY_STATE_DETECT_SNAP_PROBE_WRITE , JOYPAD_ACCESSORY_STATE_DETECT_SNAP_PROBE_READ , JOYPAD_ACCESSORY_STATE_READ , JOYPAD_ACCESSORY_STATE_WRITE , JOYPAD_ACCESSORY_STATE_RUMBLE_WRITE , JOYPAD_ACCESSORY_STATE_TRANSFER_ENABLE_PROBE_WRITE , JOYPAD_ACCESSORY_STATE_TRANSFER_ENABLE_PROBE_WAIT , JOYPAD_ACCESSORY_STATE_TRANSFER_ENABLE_STATUS_WRITE , JOYPAD_ACCESSORY_STATE_TRANSFER_ENABLE_STATUS_WAIT , JOYPAD_ACCESSORY_STATE_TRANSFER_ENABLE_STATUS_READ , JOYPAD_ACCESSORY_STATE_TRANSFER_LOAD_STATUS_READ , JOYPAD_ACCESSORY_STATE_TRANSFER_LOAD_BANK_WRITE , JOYPAD_ACCESSORY_STATE_TRANSFER_LOAD_DATA_READ , JOYPAD_ACCESSORY_STATE_TRANSFER_STORE_STATUS_READ , JOYPAD_ACCESSORY_STATE_TRANSFER_STORE_BANK_WRITE , JOYPAD_ACCESSORY_STATE_TRANSFER_STORE_DATA_WRITE } |
Joypad accessory states enumeration. | |
enum | joypad_accessory_error_t { JOYPAD_ACCESSORY_ERROR_PENDING = -1 , JOYPAD_ACCESSORY_ERROR_NONE = 0 , JOYPAD_ACCESSORY_ERROR_ABSENT , JOYPAD_ACCESSORY_ERROR_CHECKSUM , JOYPAD_ACCESSORY_ERROR_TRANSFER_PAK_STATUS_CHANGE , JOYPAD_ACCESSORY_ERROR_UNKNOWN } |
Joypad accessory error codes. More... | |
enum | joypad_accessory_xfer_t { JOYPAD_ACCESSORY_XFER_READ , JOYPAD_ACCESSORY_XFER_WRITE } |
Type of transfer performed by joypad_accessory_xfer_async. More... | |
Functions | |
void | joypad_accessory_reset (joypad_port_t port) |
Reset the accessory state for a Joypad port. | |
void | joypad_accessory_detect_async (joypad_port_t port) |
Detect which accessory is inserted in an N64 controller. | |
void | joypad_accessory_xfer_async (joypad_port_t port, joypad_accessory_xfer_t xfer, uint16_t start_addr, void *dst, size_t len, joypad_accessory_io_callback_t callback, void *ctx) |
Read or write data from a Joypad accessory asynchronously. | |
joypad_accessory_error_t | joypad_accessory_xfer (joypad_port_t port, joypad_accessory_xfer_t xfer, uint16_t start_addr, void *dst, size_t len) |
Read or write data from a joypad accessory. | |
joypad_accessory_error_t | joypad_controller_pak_set_bank (joypad_port_t port, uint8_t bank) |
Select the active bank for a Controller Pak. | |
void | joypad_rumble_pak_toggle_async (joypad_port_t port, bool active) |
Turn the Rumble Pak motor on or off for a Joypad port. | |
uint8_t | joypad_get_transfer_pak_status (joypad_port_t port) |
Get the Transfer Pak status byte for a Joypad port. | |
void | joypad_transfer_pak_enable_async (joypad_port_t port, bool enabled) |
Enable or disable the Transfer Pak for a Joypad port. | |
void | joypad_transfer_pak_load_async (joypad_port_t port, uint16_t cart_addr, void *dst, size_t len) |
Load data from the GB cartridge inserted in a Transfer Pak. | |
void | joypad_transfer_pak_store_async (joypad_port_t port, uint16_t cart_addr, void *src, size_t len) |
Store data on the GB cartridge inserted in a Transfer Pak. | |
Joypad accessory helpers.