libjoybus
Joybus implementation for 32-bit MCUs
Loading...
Searching...
No Matches
gamecube.h
Go to the documentation of this file.
4#pragma once
5
6#include <stdint.h>
11#define JOYBUS_GCN_BUTTON_A (1 << 0)
12#define JOYBUS_GCN_BUTTON_B (1 << 1)
13#define JOYBUS_GCN_BUTTON_X (1 << 2)
14#define JOYBUS_GCN_BUTTON_Y (1 << 3)
15#define JOYBUS_GCN_BUTTON_START (1 << 4)
16#define JOYBUS_GCN_NEED_ORIGIN (1 << 5)
17#define JOYBUS_GCN_ERROR_LATCH (1 << 6)
18#define JOYBUS_GCN_ERROR (1 << 7)
19#define JOYBUS_GCN_BUTTON_LEFT (1 << 8)
20#define JOYBUS_GCN_BUTTON_RIGHT (1 << 9)
21#define JOYBUS_GCN_BUTTON_DOWN (1 << 10)
22#define JOYBUS_GCN_BUTTON_UP (1 << 11)
23#define JOYBUS_GCN_BUTTON_Z (1 << 12)
24#define JOYBUS_GCN_BUTTON_R (1 << 13)
25#define JOYBUS_GCN_BUTTON_L (1 << 14)
26#define JOYBUS_GCN_USE_ORIGIN (1 << 15)
27#define JOYBUS_GCN_BUTTON_MASK 0x7F1F
28
34 uint16_t buttons;
35
37 uint8_t stick_x;
38
40 uint8_t stick_y;
41
43 uint8_t substick_x;
44
46 uint8_t substick_y;
47
49 uint8_t trigger_left;
50
53
55 uint8_t analog_a;
56
58 uint8_t analog_b;
59} __attribute__((packed));
60
80
joybus_gcn_motor_state
GameCube controller motor states.
Definition gamecube.h:84
@ JOYBUS_GCN_MOTOR_RUMBLE
Start the rumble motor.
Definition gamecube.h:89
@ JOYBUS_GCN_MOTOR_STOP_HARD
Stop the rumble motor immediately.
Definition gamecube.h:92
@ JOYBUS_GCN_MOTOR_STOP
Stop the rumble motor.
Definition gamecube.h:86
joybus_gcn_analog_mode
Analog modes for packing GameCube controller input state.
Definition gamecube.h:64
@ JOYBUS_GCN_ANALOG_MODE_3
Substick X/Y and triggers full precision, analog A/B omitted.
Definition gamecube.h:75
@ JOYBUS_GCN_ANALOG_MODE_0
Substick X/Y full precision, triggers and analog A/B truncated to 4 bits.
Definition gamecube.h:66
@ JOYBUS_GCN_ANALOG_MODE_1
Triggers full precision, substick X/Y and analog A/B truncated to 4 bits.
Definition gamecube.h:69
@ JOYBUS_GCN_ANALOG_MODE_4
Substick X/Y and analog A/B full precision, triggers omitted.
Definition gamecube.h:78
@ JOYBUS_GCN_ANALOG_MODE_2
Analog A/B full precision, substick X/Y and triggers truncated to 4 bits.
Definition gamecube.h:72
GameCube controller input state.
Definition gamecube.h:32
uint8_t stick_x
Main stick x-axis position.
Definition gamecube.h:37
uint16_t buttons
Button state.
Definition gamecube.h:34
uint8_t stick_y
Main stick y-axis position.
Definition gamecube.h:40
uint8_t trigger_right
Right analog trigger position.
Definition gamecube.h:52
uint8_t substick_y
C-stick y-axis position.
Definition gamecube.h:46
uint8_t substick_x
C-stick x-axis position.
Definition gamecube.h:43
uint8_t analog_a
Analog A button value.
Definition gamecube.h:55
uint8_t analog_b
Analog B button value.
Definition gamecube.h:58
uint8_t trigger_left
Left analog trigger position.
Definition gamecube.h:49