changeset 1689:7f42a93f18a4

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
author Mike Pavone <pavone@retrodev.com>
date Sun, 20 Jan 2019 19:52:54 -0800
parents 395f684c5379
children 319d90025d50
files io.c libblastem.c
diffstat 2 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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;
 			}