forked from Hay1tsme/segatools
sekito: get terminal to work
This commit is contained in:
3
dist/sekito/config_hook.json
vendored
3
dist/sekito/config_hook.json
vendored
@ -9,5 +9,8 @@
|
|||||||
},
|
},
|
||||||
"allnet_auth": {
|
"allnet_auth": {
|
||||||
"type": "1.0"
|
"type": "1.0"
|
||||||
|
},
|
||||||
|
"aime": {
|
||||||
|
"firmware_path": []
|
||||||
}
|
}
|
||||||
}
|
}
|
2
dist/sekito/launch_terminal.bat
vendored
2
dist/sekito/launch_terminal.bat
vendored
@ -1,5 +1,5 @@
|
|||||||
@echo off
|
@echo off
|
||||||
set SEGATOOLS_CONFIG_PATH=.\segatools_satellite.ini
|
set SEGATOOLS_CONFIG_PATH=.\segatools_terminal.ini
|
||||||
|
|
||||||
pushd %~dp0
|
pushd %~dp0
|
||||||
|
|
||||||
|
4
dist/sekito/segatools_satellite.ini
vendored
4
dist/sekito/segatools_satellite.ini
vendored
@ -169,7 +169,6 @@ start=0x42
|
|||||||
stratagem=0x43
|
stratagem=0x43
|
||||||
stratagem_lock=0x44
|
stratagem_lock=0x44
|
||||||
hougu=0x45
|
hougu=0x45
|
||||||
ryuuha=0x46
|
|
||||||
|
|
||||||
tenkey_0=0x60
|
tenkey_0=0x60
|
||||||
tenkey_1=0x61
|
tenkey_1=0x61
|
||||||
@ -184,9 +183,6 @@ tenkey_9=0x69
|
|||||||
tenkey_clear=0x6E
|
tenkey_clear=0x6E
|
||||||
tenkey_enter=0x0D
|
tenkey_enter=0x0D
|
||||||
|
|
||||||
vol_up=0x21
|
|
||||||
vol_down=0x22
|
|
||||||
|
|
||||||
trackball_up=0x26
|
trackball_up=0x26
|
||||||
trackball_right=0x27
|
trackball_right=0x27
|
||||||
trackball_down=0x28
|
trackball_down=0x28
|
||||||
|
1
dist/sekito/segatools_terminal.ini
vendored
1
dist/sekito/segatools_terminal.ini
vendored
@ -143,6 +143,7 @@ mode=keyboard
|
|||||||
|
|
||||||
cancel=0x53
|
cancel=0x53
|
||||||
decide=0x41
|
decide=0x41
|
||||||
|
reserve=0x45
|
||||||
|
|
||||||
up=0x26
|
up=0x26
|
||||||
right=0x27
|
right=0x27
|
||||||
|
@ -4,18 +4,18 @@
|
|||||||
Devices
|
Devices
|
||||||
|
|
||||||
USB: 837-14572 "Type 3" I/O Board
|
USB: 837-14572 "Type 3" I/O Board
|
||||||
COM12: Aime
|
COM12: 837-15084 "Gen 2" Aime Reader
|
||||||
|
|
||||||
[Satellite]
|
[Satellite]
|
||||||
|
|
||||||
USB: Printer
|
USB: Sinfonia CHC-C320 Printer
|
||||||
COM1: 837-15093-06 LED Controller Board
|
COM1: 837-15093-06 LED Controller Board
|
||||||
COM10: 601-13160-01 "Flat Panel Reader" Y3CR BD SIE F720MM Board
|
COM10: 601-13160-01 "Flat Panel Reader" Y3CR BD SIE F720MM Board
|
||||||
COM11: Printer Camera
|
COM11: Printer Camera
|
||||||
|
|
||||||
[Terminal]
|
[Terminal]
|
||||||
|
|
||||||
COM1: Aime
|
COM1: 837-15084 "Gen 2" Aime Reader
|
||||||
COM11: 837-15093-06 LED Controller Board
|
COM11: 837-15093-06 LED Controller Board
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
// LED: terminal uses COM 11 and satellite use COM 2
|
// LED: terminal uses COM 11 and satellite use COM 1
|
||||||
unsigned int led_port_no[2] = {is_terminal ? 11 : 1, 0};
|
unsigned int led_port_no[2] = {is_terminal ? 11 : 1, 0};
|
||||||
|
|
||||||
hr = sekito_dll_init(&sekito_hook_cfg.dll, sekito_hook_mod);
|
hr = sekito_dll_init(&sekito_hook_cfg.dll, sekito_hook_mod);
|
||||||
@ -122,7 +122,7 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = sg_reader_hook_init(&sekito_hook_cfg.aime, 12, 3,
|
hr = sg_reader_hook_init(&sekito_hook_cfg.aime, 12, 2,
|
||||||
sekito_hook_mod);
|
sekito_hook_mod);
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
@ -130,14 +130,12 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_terminal) {
|
if (is_terminal) {
|
||||||
|
hr = sg_reader_hook_init(&sekito_hook_cfg.aime, 1, 2,
|
||||||
hr = sg_reader_hook_init(&sekito_hook_cfg.aime, 1, 3,
|
|
||||||
sekito_hook_mod);
|
sekito_hook_mod);
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sekito_jvs_set_terminal(is_terminal);
|
sekito_jvs_set_terminal(is_terminal);
|
||||||
@ -146,6 +144,7 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
|||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = amvideo_hook_init(&sekito_hook_cfg.amvideo, sekito_hook_mod);
|
hr = amvideo_hook_init(&sekito_hook_cfg.amvideo, sekito_hook_mod);
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
|
@ -51,6 +51,7 @@ HRESULT sekito_jvs_init(struct jvs_node** out) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void sekito_jvs_set_terminal(bool is_terminal) {
|
void sekito_jvs_set_terminal(bool is_terminal) {
|
||||||
|
dprintf("JVS I/O: Terminal: %d\n", is_terminal);
|
||||||
io_is_terminal = is_terminal;
|
io_is_terminal = is_terminal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,36 +186,41 @@ static void sekito_jvs_read_switches(void* ctx, struct io3_switch_state* out) {
|
|||||||
|
|
||||||
if (io_is_terminal) {
|
if (io_is_terminal) {
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_CANCEL) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_CANCEL) {
|
||||||
out->p2 |= 1 << 0;
|
out->p2 |= 1 << 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_DECIDE) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_DECIDE) {
|
||||||
out->p2 |= 1 << 1;
|
out->p2 |= 1 << 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_LEFT) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_LEFT) {
|
||||||
out->p1 |= 1 << 3;
|
out->p1 |= 1 << 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_UP) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_UP) {
|
||||||
out->p1 |= 1 << 5;
|
out->p1 |= 1 << 13;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_RIGHT) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_RIGHT) {
|
||||||
out->p1 |= 1 << 2;
|
out->p1 |= 1 << 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_DOWN) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_DOWN) {
|
||||||
out->p1 |= 1 << 4;
|
out->p1 |= 1 << 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_LEFT_2) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_LEFT_2) {
|
||||||
out->p2 |= 1 << 3;
|
out->p2 |= 1 << 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_RIGHT_2) {
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_RIGHT_2) {
|
||||||
out->p2 |= 1 << 2;
|
out->p2 |= 1 << 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_RESERVE) {
|
||||||
|
out->p2 |= 1 << 3;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ void sekito_kb_config_load(
|
|||||||
cfg->vk_stratagem = GetPrivateProfileIntW(L"keyboard", L"stratagem", 'D', filename);
|
cfg->vk_stratagem = GetPrivateProfileIntW(L"keyboard", L"stratagem", 'D', filename);
|
||||||
cfg->vk_stratagem_lock = GetPrivateProfileIntW(L"keyboard", L"stratagem_lock", 'F', filename);
|
cfg->vk_stratagem_lock = GetPrivateProfileIntW(L"keyboard", L"stratagem_lock", 'F', filename);
|
||||||
cfg->vk_hougu = GetPrivateProfileIntW(L"keyboard", L"hougu", 'G', filename);
|
cfg->vk_hougu = GetPrivateProfileIntW(L"keyboard", L"hougu", 'G', filename);
|
||||||
cfg->vk_ryuuha = GetPrivateProfileIntW(L"keyboard", L"ryuuha", 'H', filename);
|
|
||||||
|
|
||||||
cfg->vk_tenkey_0 = GetPrivateProfileIntW(L"keyboard", 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"keyboard", L"tenkey_1", VK_NUMPAD1, filename);
|
cfg->vk_tenkey_1 = GetPrivateProfileIntW(L"keyboard", L"tenkey_1", VK_NUMPAD1, filename);
|
||||||
@ -33,9 +32,6 @@ void sekito_kb_config_load(
|
|||||||
cfg->vk_tenkey_clear = GetPrivateProfileIntW(L"keyboard", 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"keyboard", 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"keyboard", L"vol_down", VK_NEXT, filename);
|
|
||||||
cfg->vk_vol_up = GetPrivateProfileIntW(L"keyboard", L"vol_up", VK_PRIOR, filename);
|
|
||||||
|
|
||||||
cfg->vk_terminal_decide = GetPrivateProfileIntW(L"keyboard", L"decide", 'A', filename);
|
cfg->vk_terminal_decide = GetPrivateProfileIntW(L"keyboard", L"decide", 'A', filename);
|
||||||
cfg->vk_terminal_cancel = GetPrivateProfileIntW(L"keyboard", L"cancel", 'S', filename);
|
cfg->vk_terminal_cancel = GetPrivateProfileIntW(L"keyboard", L"cancel", 'S', filename);
|
||||||
cfg->vk_terminal_up = GetPrivateProfileIntW(L"keyboard", L"up", VK_UP, filename);
|
cfg->vk_terminal_up = GetPrivateProfileIntW(L"keyboard", L"up", VK_UP, filename);
|
||||||
@ -44,6 +40,7 @@ void sekito_kb_config_load(
|
|||||||
cfg->vk_terminal_left = GetPrivateProfileIntW(L"keyboard", L"left", VK_LEFT, filename);
|
cfg->vk_terminal_left = GetPrivateProfileIntW(L"keyboard", L"left", VK_LEFT, filename);
|
||||||
cfg->vk_terminal_left_2 = GetPrivateProfileIntW(L"keyboard", L"left2", 'Q', filename);
|
cfg->vk_terminal_left_2 = GetPrivateProfileIntW(L"keyboard", L"left2", 'Q', filename);
|
||||||
cfg->vk_terminal_right_2 = GetPrivateProfileIntW(L"keyboard", L"right2", 'W', filename);
|
cfg->vk_terminal_right_2 = GetPrivateProfileIntW(L"keyboard", L"right2", 'W', filename);
|
||||||
|
cfg->vk_terminal_reserve = GetPrivateProfileIntW(L"keyboard", L"reserve", 'E', filename);
|
||||||
|
|
||||||
cfg->x_down = GetPrivateProfileIntW(L"keyboard", L"trackball_left", VK_LEFT, filename);
|
cfg->x_down = GetPrivateProfileIntW(L"keyboard", L"trackball_left", VK_LEFT, filename);
|
||||||
cfg->x_up = GetPrivateProfileIntW(L"keyboard", L"trackball_right", VK_RIGHT, filename);
|
cfg->x_up = GetPrivateProfileIntW(L"keyboard", L"trackball_right", VK_RIGHT, filename);
|
||||||
|
@ -11,7 +11,6 @@ struct sekito_kb_config {
|
|||||||
uint8_t vk_stratagem;
|
uint8_t vk_stratagem;
|
||||||
uint8_t vk_stratagem_lock;
|
uint8_t vk_stratagem_lock;
|
||||||
uint8_t vk_hougu;
|
uint8_t vk_hougu;
|
||||||
uint8_t vk_ryuuha;
|
|
||||||
|
|
||||||
uint8_t vk_tenkey_0;
|
uint8_t vk_tenkey_0;
|
||||||
uint8_t vk_tenkey_1;
|
uint8_t vk_tenkey_1;
|
||||||
@ -26,15 +25,13 @@ struct sekito_kb_config {
|
|||||||
uint8_t vk_tenkey_clear;
|
uint8_t vk_tenkey_clear;
|
||||||
uint8_t vk_tenkey_enter;
|
uint8_t vk_tenkey_enter;
|
||||||
|
|
||||||
uint8_t vk_vol_down;
|
|
||||||
uint8_t vk_vol_up;
|
|
||||||
|
|
||||||
uint8_t vk_terminal_up;
|
uint8_t vk_terminal_up;
|
||||||
uint8_t vk_terminal_right;
|
uint8_t vk_terminal_right;
|
||||||
uint8_t vk_terminal_down;
|
uint8_t vk_terminal_down;
|
||||||
uint8_t vk_terminal_left;
|
uint8_t vk_terminal_left;
|
||||||
uint8_t vk_terminal_left_2;
|
uint8_t vk_terminal_left_2;
|
||||||
uint8_t vk_terminal_right_2;
|
uint8_t vk_terminal_right_2;
|
||||||
|
uint8_t vk_terminal_reserve;
|
||||||
uint8_t vk_terminal_cancel;
|
uint8_t vk_terminal_cancel;
|
||||||
uint8_t vk_terminal_decide;
|
uint8_t vk_terminal_decide;
|
||||||
|
|
||||||
|
@ -141,6 +141,10 @@ static void sekito_kb_get_gamebtns(uint32_t* gamebtn_out) {
|
|||||||
gamebtn |= SEKITO_IO_GAMEBTN_TERMINAL_RIGHT_2;
|
gamebtn |= SEKITO_IO_GAMEBTN_TERMINAL_RIGHT_2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GetAsyncKeyState(config.vk_terminal_reserve) & 0x8000) {
|
||||||
|
gamebtn |= SEKITO_IO_GAMEBTN_TERMINAL_RESERVE;
|
||||||
|
}
|
||||||
|
|
||||||
*gamebtn_out = gamebtn;
|
*gamebtn_out = gamebtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ enum {
|
|||||||
SEKITO_IO_GAMEBTN_TERMINAL_RIGHT_2 = 0x8000000,
|
SEKITO_IO_GAMEBTN_TERMINAL_RIGHT_2 = 0x8000000,
|
||||||
SEKITO_IO_GAMEBTN_TERMINAL_DECIDE = 0x10000000,
|
SEKITO_IO_GAMEBTN_TERMINAL_DECIDE = 0x10000000,
|
||||||
SEKITO_IO_GAMEBTN_TERMINAL_CANCEL = 0x20000000,
|
SEKITO_IO_GAMEBTN_TERMINAL_CANCEL = 0x20000000,
|
||||||
|
SEKITO_IO_GAMEBTN_TERMINAL_RESERVE = 0x40000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Get the version of the Eiketsu Taisen IO API that this DLL supports. This
|
/* Get the version of the Eiketsu Taisen IO API that this DLL supports. This
|
||||||
|
Reference in New Issue
Block a user