# HG changeset patch # User Mike Pavone # Date 1548042774 28800 # Node ID 7f42a93f18a4a5e00560016233cda2ed85e6d8e0 # Parent 395f684c53792421ff791db0d8ffd5b39d9efad0 Have a suitable default IO port configuration when nonIO is present from the config file. Fixed off by one in processing gamepad button events in libretro build diff -r 395f684c5379 -r 7f42a93f18a4 io.c --- a/io.c Sun Jan 20 16:24:22 2019 -0800 +++ b/io.c Sun Jan 20 19:52:54 2019 -0800 @@ -301,9 +301,9 @@ { io_port * ports = io->ports; tern_node *io_nodes = tern_find_path(config, "io\0devices\0", TVAL_NODE).ptrval; - char * io_1 = rom->port1_override ? rom->port1_override : io_nodes ? tern_find_ptr(io_nodes, "1") : NULL; - char * io_2 = rom->port2_override ? rom->port2_override : io_nodes ? tern_find_ptr(io_nodes, "2") : NULL; - char * io_ext = rom->ext_override ? rom->ext_override : io_nodes ? tern_find_ptr(io_nodes, "ext") : NULL; + char * io_1 = rom->port1_override ? rom->port1_override : tern_find_ptr_default(io_nodes, "1", "gamepad6.1"); + char * io_2 = rom->port2_override ? rom->port2_override : tern_find_ptr_default(io_nodes, "2", "gamepad6.2"); + char * io_ext = rom->ext_override ? rom->ext_override : tern_find_ptr(io_nodes, "ext"); process_device(io_1, ports); process_device(io_2, ports+1); diff -r 395f684c5379 -r 7f42a93f18a4 libblastem.c --- a/libblastem.c Sun Jan 20 16:24:22 2019 -0800 +++ b/libblastem.c Sun Jan 20 19:52:54 2019 -0800 @@ -254,9 +254,9 @@ int16_t new_state = retro_input_state(port, RETRO_DEVICE_JOYPAD, 0, id); if (new_state != prev_state[port][id]) { if (new_state) { - current_system->gamepad_down(current_system, port, map[id]); + current_system->gamepad_down(current_system, port + 1, map[id]); } else { - current_system->gamepad_up(current_system, port, map[id]); + current_system->gamepad_up(current_system, port + 1, map[id]); } prev_state[port][id] = new_state; }