forked from Hay1tsme/segatools
ekt: Fix bindings and trackball speed/range
This commit is contained in:
2
dist/ekt/segatools_satellite.ini
vendored
2
dist/ekt/segatools_satellite.ini
vendored
@ -171,4 +171,4 @@ trackball_up=0x26
|
|||||||
trackball_right=0x27
|
trackball_right=0x27
|
||||||
trackball_down=0x28
|
trackball_down=0x28
|
||||||
trackball_left=0x25
|
trackball_left=0x25
|
||||||
speed=1
|
speed_modifier=10
|
||||||
|
@ -10,7 +10,7 @@ struct ekt_dll {
|
|||||||
HRESULT (*poll)(void);
|
HRESULT (*poll)(void);
|
||||||
void (*get_opbtns)(uint8_t *opbtn);
|
void (*get_opbtns)(uint8_t *opbtn);
|
||||||
void (*get_gamebtns)(uint32_t *gamebtn);
|
void (*get_gamebtns)(uint32_t *gamebtn);
|
||||||
void (*get_trackball_position)(uint8_t *x, uint8_t *y);
|
void (*get_trackball_position)(uint16_t *x, uint16_t *y);
|
||||||
HRESULT (*led_init)(void);
|
HRESULT (*led_init)(void);
|
||||||
void (*led_set_leds)(uint8_t board, uint8_t *rgb);
|
void (*led_set_leds)(uint8_t board, uint8_t *rgb);
|
||||||
};
|
};
|
||||||
|
@ -40,7 +40,8 @@ HRESULT ekt_io4_hook_init(const struct io4_config *cfg, bool is_terminal)
|
|||||||
|
|
||||||
static HRESULT ekt_io4_poll(void *ctx, struct io4_state *state)
|
static HRESULT ekt_io4_poll(void *ctx, struct io4_state *state)
|
||||||
{
|
{
|
||||||
uint8_t opbtn, x, y;
|
uint8_t opbtn;
|
||||||
|
uint16_t x, y;
|
||||||
uint32_t gamebtn;
|
uint32_t gamebtn;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
|
@ -6,5 +6,5 @@
|
|||||||
|
|
||||||
struct ekt_io_backend {
|
struct ekt_io_backend {
|
||||||
void (*get_gamebtns)(uint32_t *gamebtn);
|
void (*get_gamebtns)(uint32_t *gamebtn);
|
||||||
void (*get_trackball)(uint8_t *x, uint8_t *y);
|
void (*get_trackball)(uint16_t *x, uint16_t *y);
|
||||||
};
|
};
|
||||||
|
@ -13,43 +13,43 @@ void ekt_kb_config_load(
|
|||||||
struct ekt_kb_config *cfg,
|
struct ekt_kb_config *cfg,
|
||||||
const wchar_t *filename) {
|
const wchar_t *filename) {
|
||||||
|
|
||||||
cfg->vk_menu = GetPrivateProfileIntW(L"io4", L"menu", 'A', filename);
|
cfg->vk_menu = GetPrivateProfileIntW(L"keyboard", L"menu", 'A', filename);
|
||||||
cfg->vk_start = GetPrivateProfileIntW(L"io4", L"start", 'S', filename);
|
cfg->vk_start = GetPrivateProfileIntW(L"keyboard", L"start", 'S', filename);
|
||||||
cfg->vk_stratagem = GetPrivateProfileIntW(L"io4", L"stratagem", 'D', filename);
|
cfg->vk_stratagem = GetPrivateProfileIntW(L"keyboard", L"stratagem", 'D', filename);
|
||||||
cfg->vk_stratagem_lock = GetPrivateProfileIntW(L"io4", L"stratagem_lock", 'F', filename);
|
cfg->vk_stratagem_lock = GetPrivateProfileIntW(L"keyboard", L"stratagem_lock", 'F', filename);
|
||||||
cfg->vk_hougu = GetPrivateProfileIntW(L"io4", L"hougu", 'G', filename);
|
cfg->vk_hougu = GetPrivateProfileIntW(L"keyboard", L"hougu", 'G', filename);
|
||||||
cfg->vk_ryuuha = GetPrivateProfileIntW(L"io4", L"ryuuha", 'H', filename);
|
cfg->vk_ryuuha = GetPrivateProfileIntW(L"keyboard", L"ryuuha", 'H', filename);
|
||||||
|
|
||||||
cfg->vk_tenkey_0 = GetPrivateProfileIntW(L"io4", L"tenkey_0", VK_NUMPAD0, filename);
|
cfg->vk_tenkey_0 = GetPrivateProfileIntW(L"keyboard", L"tenkey_0", VK_NUMPAD0, filename);
|
||||||
cfg->vk_tenkey_1 = GetPrivateProfileIntW(L"io4", L"tenkey_1", VK_NUMPAD1, filename);
|
cfg->vk_tenkey_1 = GetPrivateProfileIntW(L"keyboard", L"tenkey_1", VK_NUMPAD1, filename);
|
||||||
cfg->vk_tenkey_2 = GetPrivateProfileIntW(L"io4", L"tenkey_2", VK_NUMPAD2, filename);
|
cfg->vk_tenkey_2 = GetPrivateProfileIntW(L"keyboard", L"tenkey_2", VK_NUMPAD2, filename);
|
||||||
cfg->vk_tenkey_3 = GetPrivateProfileIntW(L"io4", L"tenkey_3", VK_NUMPAD3, filename);
|
cfg->vk_tenkey_3 = GetPrivateProfileIntW(L"keyboard", L"tenkey_3", VK_NUMPAD3, filename);
|
||||||
cfg->vk_tenkey_4 = GetPrivateProfileIntW(L"io4", L"tenkey_4", VK_NUMPAD4, filename);
|
cfg->vk_tenkey_4 = GetPrivateProfileIntW(L"keyboard", L"tenkey_4", VK_NUMPAD4, filename);
|
||||||
cfg->vk_tenkey_5 = GetPrivateProfileIntW(L"io4", L"tenkey_5", VK_NUMPAD5, filename);
|
cfg->vk_tenkey_5 = GetPrivateProfileIntW(L"keyboard", L"tenkey_5", VK_NUMPAD5, filename);
|
||||||
cfg->vk_tenkey_6 = GetPrivateProfileIntW(L"io4", L"tenkey_6", VK_NUMPAD6, filename);
|
cfg->vk_tenkey_6 = GetPrivateProfileIntW(L"keyboard", L"tenkey_6", VK_NUMPAD6, filename);
|
||||||
cfg->vk_tenkey_7 = GetPrivateProfileIntW(L"io4", L"tenkey_7", VK_NUMPAD7, filename);
|
cfg->vk_tenkey_7 = GetPrivateProfileIntW(L"keyboard", L"tenkey_7", VK_NUMPAD7, filename);
|
||||||
cfg->vk_tenkey_8 = GetPrivateProfileIntW(L"io4", L"tenkey_8", VK_NUMPAD8, filename);
|
cfg->vk_tenkey_8 = GetPrivateProfileIntW(L"keyboard", L"tenkey_8", VK_NUMPAD8, filename);
|
||||||
cfg->vk_tenkey_9 = GetPrivateProfileIntW(L"io4", L"tenkey_9", VK_NUMPAD9, filename);
|
cfg->vk_tenkey_9 = GetPrivateProfileIntW(L"keyboard", L"tenkey_9", VK_NUMPAD9, filename);
|
||||||
cfg->vk_tenkey_clear = GetPrivateProfileIntW(L"io4", L"tenkey_clear", VK_DECIMAL, filename);
|
cfg->vk_tenkey_clear = GetPrivateProfileIntW(L"keyboard", L"tenkey_clear", VK_DECIMAL, filename);
|
||||||
cfg->vk_tenkey_enter = GetPrivateProfileIntW(L"io4", L"tenkey_enter", VK_RETURN, filename);
|
cfg->vk_tenkey_enter = GetPrivateProfileIntW(L"keyboard", L"tenkey_enter", VK_RETURN, filename);
|
||||||
|
|
||||||
cfg->vk_vol_down = GetPrivateProfileIntW(L"io4", L"vol_down", VK_NEXT, filename);
|
cfg->vk_vol_down = GetPrivateProfileIntW(L"keyboard", L"vol_down", VK_NEXT, filename);
|
||||||
cfg->vk_vol_up = GetPrivateProfileIntW(L"io4", L"vol_up", VK_PRIOR, filename);
|
cfg->vk_vol_up = GetPrivateProfileIntW(L"keyboard", L"vol_up", VK_PRIOR, filename);
|
||||||
|
|
||||||
cfg->vk_terminal_decide = GetPrivateProfileIntW(L"io4", L"decide", 'A', filename);
|
cfg->vk_terminal_decide = GetPrivateProfileIntW(L"keyboard", L"decide", 'A', filename);
|
||||||
cfg->vk_terminal_cancel = GetPrivateProfileIntW(L"io4", L"cancel", 'S', filename);
|
cfg->vk_terminal_cancel = GetPrivateProfileIntW(L"keyboard", L"cancel", 'S', filename);
|
||||||
cfg->vk_terminal_up = GetPrivateProfileIntW(L"io4", L"up", VK_UP, filename);
|
cfg->vk_terminal_up = GetPrivateProfileIntW(L"keyboard", L"up", VK_UP, filename);
|
||||||
cfg->vk_terminal_right = GetPrivateProfileIntW(L"io4", L"right", VK_RIGHT, filename);
|
cfg->vk_terminal_right = GetPrivateProfileIntW(L"keyboard", L"right", VK_RIGHT, filename);
|
||||||
cfg->vk_terminal_down = GetPrivateProfileIntW(L"io4", L"down", VK_DOWN, filename);
|
cfg->vk_terminal_down = GetPrivateProfileIntW(L"keyboard", L"down", VK_DOWN, filename);
|
||||||
cfg->vk_terminal_left = GetPrivateProfileIntW(L"io4", L"left", VK_LEFT, filename);
|
cfg->vk_terminal_left = GetPrivateProfileIntW(L"keyboard", L"left", VK_LEFT, filename);
|
||||||
cfg->vk_terminal_left_2 = GetPrivateProfileIntW(L"io4", L"left2", 'Q', filename);
|
cfg->vk_terminal_left_2 = GetPrivateProfileIntW(L"keyboard", L"left2", 'Q', filename);
|
||||||
cfg->vk_terminal_right_2 = GetPrivateProfileIntW(L"io4", L"right2", 'W', filename);
|
cfg->vk_terminal_right_2 = GetPrivateProfileIntW(L"keyboard", L"right2", 'W', filename);
|
||||||
|
|
||||||
cfg->x_down = GetPrivateProfileIntW(L"io4", L"trackball_left", VK_LEFT, filename);
|
cfg->x_down = GetPrivateProfileIntW(L"keyboard", L"trackball_left", VK_LEFT, filename);
|
||||||
cfg->x_up = GetPrivateProfileIntW(L"io4", L"trackball_right", VK_RIGHT, filename);
|
cfg->x_up = GetPrivateProfileIntW(L"keyboard", L"trackball_right", VK_RIGHT, filename);
|
||||||
cfg->y_down = GetPrivateProfileIntW(L"io4", L"trackball_up", VK_UP, filename);
|
cfg->y_down = GetPrivateProfileIntW(L"keyboard", L"trackball_up", VK_UP, filename);
|
||||||
cfg->y_up = GetPrivateProfileIntW(L"io4", L"trackball_down", VK_DOWN, filename);
|
cfg->y_up = GetPrivateProfileIntW(L"keyboard", L"trackball_down", VK_DOWN, filename);
|
||||||
cfg->speed = GetPrivateProfileIntW(L"io4", L"speed_modifier", 1, filename);
|
cfg->speed = GetPrivateProfileIntW(L"keyboard", L"speed_modifier", 1, filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ekt_io_config_load(
|
void ekt_io_config_load(
|
||||||
@ -59,14 +59,14 @@ void ekt_io_config_load(
|
|||||||
assert(cfg != NULL);
|
assert(cfg != NULL);
|
||||||
assert(filename != NULL);
|
assert(filename != NULL);
|
||||||
|
|
||||||
cfg->vk_test = GetPrivateProfileIntW(L"io4", L"test", '1', filename);
|
cfg->vk_test = GetPrivateProfileIntW(L"keyboard", L"test", '1', filename);
|
||||||
cfg->vk_service = GetPrivateProfileIntW(L"io4", L"service", '2', filename);
|
cfg->vk_service = GetPrivateProfileIntW(L"keyboard", L"service", '2', filename);
|
||||||
cfg->vk_coin = GetPrivateProfileIntW(L"io4", L"coin", '3', filename);
|
cfg->vk_coin = GetPrivateProfileIntW(L"keyboard", L"coin", '3', filename);
|
||||||
cfg->vk_sw1 = GetPrivateProfileIntW(L"io4", L"sw1", '4', filename);
|
cfg->vk_sw1 = GetPrivateProfileIntW(L"keyboard", L"sw1", '4', filename);
|
||||||
cfg->vk_sw2 = GetPrivateProfileIntW(L"io4", L"sw2", '5', filename);
|
cfg->vk_sw2 = GetPrivateProfileIntW(L"keyboard", L"sw2", '5', filename);
|
||||||
|
|
||||||
GetPrivateProfileStringW(
|
GetPrivateProfileStringW(
|
||||||
L"io4",
|
L"keyboard",
|
||||||
L"mode",
|
L"mode",
|
||||||
L"keyboard",
|
L"keyboard",
|
||||||
cfg->mode,
|
cfg->mode,
|
||||||
|
@ -83,7 +83,7 @@ void ekt_io_get_gamebtns(uint32_t* btn) {
|
|||||||
ekt_io_backend->get_gamebtns(btn);
|
ekt_io_backend->get_gamebtns(btn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ekt_io_get_trackball_position(uint8_t* stick_x, uint8_t* stick_y) {
|
void ekt_io_get_trackball_position(uint16_t* stick_x, uint16_t* stick_y) {
|
||||||
assert(ekt_io_backend != NULL);
|
assert(ekt_io_backend != NULL);
|
||||||
assert(stick_x != NULL);
|
assert(stick_x != NULL);
|
||||||
assert(stick_y != NULL);
|
assert(stick_y != NULL);
|
||||||
|
@ -88,7 +88,7 @@ void ekt_io_get_gamebtns(uint32_t *gamebtn);
|
|||||||
|
|
||||||
Minimum API version: 0x0100 */
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
void ekt_io_get_trackball_position(uint8_t *stick_x, uint8_t *stick_y);
|
void ekt_io_get_trackball_position(uint16_t *stick_x, uint16_t *stick_y);
|
||||||
|
|
||||||
/* Initialize LED emulation. This function will be called before any
|
/* Initialize LED emulation. This function will be called before any
|
||||||
other ekt_io_led_*() function calls.
|
other ekt_io_led_*() function calls.
|
||||||
|
@ -13,15 +13,15 @@
|
|||||||
#include "util/dprintf.h"
|
#include "util/dprintf.h"
|
||||||
|
|
||||||
static void ekt_kb_get_gamebtns(uint32_t* gamebtn_out);
|
static void ekt_kb_get_gamebtns(uint32_t* gamebtn_out);
|
||||||
static void ekt_kb_get_trackball(uint8_t* x, uint8_t* y);
|
static void ekt_kb_get_trackball(uint16_t* x, uint16_t* y);
|
||||||
|
|
||||||
static const struct ekt_io_backend ekt_kb_backend = {
|
static const struct ekt_io_backend ekt_kb_backend = {
|
||||||
.get_gamebtns = ekt_kb_get_gamebtns,
|
.get_gamebtns = ekt_kb_get_gamebtns,
|
||||||
.get_trackball = ekt_kb_get_trackball
|
.get_trackball = ekt_kb_get_trackball
|
||||||
};
|
};
|
||||||
|
|
||||||
static uint8_t current_x;
|
static uint16_t current_x;
|
||||||
static uint8_t current_y;
|
static uint16_t current_y;
|
||||||
|
|
||||||
static struct ekt_kb_config config;
|
static struct ekt_kb_config config;
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ static void ekt_kb_get_gamebtns(uint32_t* gamebtn_out) {
|
|||||||
*gamebtn_out = gamebtn;
|
*gamebtn_out = gamebtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ekt_kb_get_trackball(uint8_t* x, uint8_t* y) {
|
static void ekt_kb_get_trackball(uint16_t* x, uint16_t* y) {
|
||||||
assert(x != NULL);
|
assert(x != NULL);
|
||||||
assert(y != NULL);
|
assert(y != NULL);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user