![]() |
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.