![]() |
libdragon
|
Joybus accessory internal utilities. More...
Go to the source code of this file.
Data Structures | |
union | joybus_transfer_pak_status_t |
Joybus N64 Transfer Pak Status wrapper. More... | |
Macros | |
#define | JOYBUS_ACCESSORY_TRANSFER_BANK_SIZE 0x4000 |
Size of Transfer Pak bank area in bytes. | |
#define | JOYBUS_ACCESSORY_TRANSFER_BANK_MASK 0x3FFF |
Mask for Transfer Pak bank area address. | |
Joybus N64 accessory address masks | |
#define | JOYBUS_ACCESSORY_ADDR_MASK_OFFSET 0xFFE0 |
Mask for Joybus N64 accessory read/write address offset. | |
#define | JOYBUS_ACCESSORY_ADDR_MASK_CHECKSUM 0x001F |
Mask for Joybus N64 accessory read/write address checksum. | |
Joybus N64 accessory known address values | |
#define | JOYBUS_ACCESSORY_ADDR_LABEL 0x0000 |
Controller Pak label address. | |
#define | JOYBUS_ACCESSORY_ADDR_PROBE 0x8000 |
Accessory probe address. | |
#define | JOYBUS_ACCESSORY_ADDR_RUMBLE_MOTOR 0xC000 |
Rumble Pak motor control address. | |
#define | JOYBUS_ACCESSORY_ADDR_BIO_PULSE 0xC000 |
Bio Sensor pulse read address. | |
#define | JOYBUS_ACCESSORY_ADDR_SNAP_STATE 0xC000 |
Pokemon Snap Station state address. | |
#define | JOYBUS_ACCESSORY_ADDR_TRANSFER_BANK 0xA000 |
Transfer Pak bank selection address. | |
#define | JOYBUS_ACCESSORY_ADDR_TRANSFER_STATUS 0xB000 |
Transfer Pak status registers address. | |
#define | JOYBUS_ACCESSORY_ADDR_TRANSFER_CART 0xC000 |
Transfer Pak GB cartridge read/write address. | |
Joybus N64 accessory probe values | |
#define | JOYBUS_ACCESSORY_PROBE_ABSENT 0x00 |
Absent accessory identifier value. | |
#define | JOYBUS_ACCESSORY_PROBE_RUMBLE_PAK 0x80 |
Rumble Pak identifier value. | |
#define | JOYBUS_ACCESSORY_PROBE_BIO_SENSOR 0x81 |
Bio Sensor identifier value. | |
#define | JOYBUS_ACCESSORY_PROBE_TRANSFER_PAK_ON 0x84 |
Transfer Pak power-on identifier value. | |
#define | JOYBUS_ACCESSORY_PROBE_SNAP_STATION 0x85 |
Pokemon Snap Station identifier value. | |
#define | JOYBUS_ACCESSORY_PROBE_TRANSFER_PAK_OFF 0xFE |
Transfer Pak power-off identifier value. | |
Joybus N64 Snap Station state values | |
#define | JOYBUS_SNAP_STATION_STATE_IDLE 0x00 |
Snap Station "Idle" state. | |
#define | JOYBUS_SNAP_STATION_STATE_PRE_SAVE 0xCC |
Snap Station "Pre-Save" state. | |
#define | JOYBUS_SNAP_STATION_STATE_POST_SAVE 0x33 |
Snap Station "Post-Save" state. | |
#define | JOYBUS_SNAP_STATION_STATE_RESET_CONSOLE 0x5A |
Snap Station "Reset Console" state. | |
#define | JOYBUS_SNAP_STATION_STATE_PRE_ROLL 0x01 |
Snap Station "Pre-Roll" state. | |
#define | JOYBUS_SNAP_STATION_STATE_CAPTURE_PHOTO 0x02 |
Snap Station "Capture Photo" state. | |
#define | JOYBUS_SNAP_STATION_STATE_POST_ROLL 0x04 |
Snap Station "Post-Roll" state. | |
#define | JOYBUS_SNAP_STATION_STATE_BUSY 0x08 |
Snap Station "Busy" state. | |
Joybus N64 Transfer Pak status flags | |
#define | JOYBUS_TRANSFER_PAK_STATUS_ACCESS (1<<0) |
Transfer Pak "Access" status bit. | |
#define | JOYBUS_TRANSFER_PAK_STATUS_BOOTING (1<<2) |
Transfer Pak "Booting" status bit. | |
#define | JOYBUS_TRANSFER_PAK_STATUS_RESET (1<<3) |
Transfer Pak "Reset" status bit. | |
#define | JOYBUS_TRANSFER_PAK_STATUS_CART_PULLED (1<<6) |
Transfer Pak "Cart Pulled" status bit. | |
#define | JOYBUS_TRANSFER_PAK_STATUS_POWER (1<<7) |
Transfer Pak "Powered-On" status bit. | |
Functions | |
uint16_t | joybus_accessory_calculate_addr_checksum (uint16_t addr) |
Applies the checksum to a Joybus N64 accessory read/write address. | |
uint8_t | joybus_accessory_calculate_data_crc (const uint8_t *data) |
Calculates the CRC8 checksum for a Joybus N64 accessory read/write data block. | |
joybus_accessory_io_status_t | joybus_accessory_compare_data_crc (const uint8_t *data, uint8_t data_crc) |
Calculates the CRC8 checksum for an accessory read/write data block and compares it against the provided checksum. | |
void | joybus_accessory_read_async (int port, uint16_t addr, joybus_callback_t callback, void *ctx) |
Asynchronously perform a Joybus N64 accessory read command. | |
void | joybus_accessory_write_async (int port, uint16_t addr, const uint8_t *data, joybus_callback_t callback, void *ctx) |
Asynchronously perform a Joybus N64 accessory write command. | |
Joybus accessory internal utilities.