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": {
|
||||
"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
|
||||
set SEGATOOLS_CONFIG_PATH=.\segatools_satellite.ini
|
||||
set SEGATOOLS_CONFIG_PATH=.\segatools_terminal.ini
|
||||
|
||||
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_lock=0x44
|
||||
hougu=0x45
|
||||
ryuuha=0x46
|
||||
|
||||
tenkey_0=0x60
|
||||
tenkey_1=0x61
|
||||
@ -184,9 +183,6 @@ tenkey_9=0x69
|
||||
tenkey_clear=0x6E
|
||||
tenkey_enter=0x0D
|
||||
|
||||
vol_up=0x21
|
||||
vol_down=0x22
|
||||
|
||||
trackball_up=0x26
|
||||
trackball_right=0x27
|
||||
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
|
||||
decide=0x41
|
||||
reserve=0x45
|
||||
|
||||
up=0x26
|
||||
right=0x27
|
||||
|
@ -4,18 +4,18 @@
|
||||
Devices
|
||||
|
||||
USB: 837-14572 "Type 3" I/O Board
|
||||
COM12: Aime
|
||||
COM12: 837-15084 "Gen 2" Aime Reader
|
||||
|
||||
[Satellite]
|
||||
|
||||
USB: Printer
|
||||
USB: Sinfonia CHC-C320 Printer
|
||||
COM1: 837-15093-06 LED Controller Board
|
||||
COM10: 601-13160-01 "Flat Panel Reader" Y3CR BD SIE F720MM Board
|
||||
COM11: Printer Camera
|
||||
|
||||
[Terminal]
|
||||
|
||||
COM1: Aime
|
||||
COM1: 837-15084 "Gen 2" Aime Reader
|
||||
COM11: 837-15093-06 LED Controller Board
|
||||
*/
|
||||
|
||||
@ -106,7 +106,7 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
||||
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};
|
||||
|
||||
hr = sekito_dll_init(&sekito_hook_cfg.dll, sekito_hook_mod);
|
||||
@ -122,7 +122,7 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
||||
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);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
@ -130,14 +130,12 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
||||
}
|
||||
|
||||
if (is_terminal) {
|
||||
|
||||
hr = sg_reader_hook_init(&sekito_hook_cfg.aime, 1, 3,
|
||||
hr = sg_reader_hook_init(&sekito_hook_cfg.aime, 1, 2,
|
||||
sekito_hook_mod);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sekito_jvs_set_terminal(is_terminal);
|
||||
@ -146,6 +144,7 @@ static DWORD CALLBACK sekito_pre_startup(void)
|
||||
if (FAILED(hr)) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
hr = amvideo_hook_init(&sekito_hook_cfg.amvideo, sekito_hook_mod);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
|
@ -51,6 +51,7 @@ HRESULT sekito_jvs_init(struct jvs_node** out) {
|
||||
}
|
||||
|
||||
void sekito_jvs_set_terminal(bool is_terminal) {
|
||||
dprintf("JVS I/O: Terminal: %d\n", 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 (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_CANCEL) {
|
||||
out->p2 |= 1 << 0;
|
||||
out->p2 |= 1 << 8;
|
||||
}
|
||||
|
||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_DECIDE) {
|
||||
out->p2 |= 1 << 1;
|
||||
out->p2 |= 1 << 9;
|
||||
}
|
||||
|
||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_LEFT) {
|
||||
out->p1 |= 1 << 3;
|
||||
out->p1 |= 1 << 11;
|
||||
}
|
||||
|
||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_UP) {
|
||||
out->p1 |= 1 << 5;
|
||||
out->p1 |= 1 << 13;
|
||||
}
|
||||
|
||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_RIGHT) {
|
||||
out->p1 |= 1 << 2;
|
||||
out->p1 |= 1 << 10;
|
||||
}
|
||||
|
||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_DOWN) {
|
||||
out->p1 |= 1 << 4;
|
||||
out->p1 |= 1 << 12;
|
||||
}
|
||||
|
||||
if (gamebtn & SEKITO_IO_GAMEBTN_TERMINAL_LEFT_2) {
|
||||
out->p2 |= 1 << 3;
|
||||
out->p2 |= 1 << 11;
|
||||
}
|
||||
|
||||
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_lock = GetPrivateProfileIntW(L"keyboard", L"stratagem_lock", 'F', 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_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_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_cancel = GetPrivateProfileIntW(L"keyboard", L"cancel", 'S', 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_2 = GetPrivateProfileIntW(L"keyboard", L"left2", 'Q', 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_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_lock;
|
||||
uint8_t vk_hougu;
|
||||
uint8_t vk_ryuuha;
|
||||
|
||||
uint8_t vk_tenkey_0;
|
||||
uint8_t vk_tenkey_1;
|
||||
@ -26,15 +25,13 @@ struct sekito_kb_config {
|
||||
uint8_t vk_tenkey_clear;
|
||||
uint8_t vk_tenkey_enter;
|
||||
|
||||
uint8_t vk_vol_down;
|
||||
uint8_t vk_vol_up;
|
||||
|
||||
uint8_t vk_terminal_up;
|
||||
uint8_t vk_terminal_right;
|
||||
uint8_t vk_terminal_down;
|
||||
uint8_t vk_terminal_left;
|
||||
uint8_t vk_terminal_left_2;
|
||||
uint8_t vk_terminal_right_2;
|
||||
uint8_t vk_terminal_reserve;
|
||||
uint8_t vk_terminal_cancel;
|
||||
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;
|
||||
}
|
||||
|
||||
if (GetAsyncKeyState(config.vk_terminal_reserve) & 0x8000) {
|
||||
gamebtn |= SEKITO_IO_GAMEBTN_TERMINAL_RESERVE;
|
||||
}
|
||||
|
||||
*gamebtn_out = gamebtn;
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,7 @@ enum {
|
||||
SEKITO_IO_GAMEBTN_TERMINAL_RIGHT_2 = 0x8000000,
|
||||
SEKITO_IO_GAMEBTN_TERMINAL_DECIDE = 0x10000000,
|
||||
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
|
||||
|
Reference in New Issue
Block a user