diff --git a/src/config.c b/src/config.c
index 83b010eb2..22f94a9b3 100644
--- a/src/config.c
+++ b/src/config.c
@@ -8,20 +8,19 @@
*
* Configuration file handler.
*
- *
- *
* Authors: Sarah Walker,
* Miran Grca,
* Fred N. van Kempen,
* Overdoze,
* David Hrdlička,
+ * Jasmine Iwanek,
*
* Copyright 2008-2019 Sarah Walker.
* Copyright 2016-2019 Miran Grca.
* Copyright 2017-2019 Fred N. van Kempen.
* Copyright 2018-2019 David Hrdlička.
* Copyright 2021 Andreas J. Reichel.
- * Copyright 2021-2022 Jasmine Iwanek.
+ * Copyright 2021-2025 Jasmine Iwanek.
*
* NOTE: Forcing config files to be in Unicode encoding breaks
* it on Windows XP, and possibly also Vista. Use the
@@ -760,6 +759,28 @@ load_ports(void)
p = ini_section_get_string(cat, temp, "none");
lpt_ports[c].device = lpt_device_get_from_internal_name(p);
}
+
+#if 0
+// TODO: Load
+ for (c = 0; c < GAMEPORT_MAX; c++) {
+ sprintf(temp, "gameport%d_enabled", c + 1);
+ game_ports[c].enabled = !!ini_section_get_int(cat, temp, (c == 0) ? 1 : 0);
+
+ sprintf(temp, "gameport%d_device", c + 1);
+ p = ini_section_get_string(cat, temp, "none");
+ game_ports[c].device = gameport_get_from_internal_name(p);
+ }
+
+ for (uint8_t c = 0; c < GAMEPORT_MAX; c++) {
+ sprintf(temp, "gameport%d_type", c);
+
+ p = ini_section_get_string(cat, temp, "none");
+ gameport_type[c] = gameport_get_from_internal_name(p);
+
+ if (!strcmp(p, "none"))
+ ini_section_delete_var(cat, temp);
+ }
+#endif
}
/* Load "Storage Controllers" section. */
@@ -2377,6 +2398,34 @@ save_ports(void)
lpt_device_get_internal_name(lpt_ports[c].device));
}
+#if 0
+// TODO: Save
+ for (c = 0; c < GAMEPORT_MAX; c++) {
+ sprintf(temp, "gameport%d_enabled", c + 1);
+ d = (c == 0) ? 1 : 0;
+ if (game_ports[c].enabled == d)
+ ini_section_delete_var(cat, temp);
+ else
+ ini_section_set_int(cat, temp, game_ports[c].enabled);
+
+ sprintf(temp, "gameport%d_device", c + 1);
+ if (game_ports[c].device == 0)
+ ini_section_delete_var(cat, temp);
+ else
+ ini_section_set_string(cat, temp,
+ gameport_get_internal_name(game_ports[c].device));
+ }
+
+ for (uint8_t c = 0; c < GAMEPORT_MAX; c++) {
+ sprintf(temp, "gameport%d_enabled", c);
+ if (gameport_type[c] == 0)
+ ini_section_delete_var(cat, temp);
+ else
+ ini_section_set_string(cat, temp,
+ gameport_get_internal_name(gameport_type[c]));
+ }
+#endif
+
ini_delete_section_if_empty(config, cat);
}
diff --git a/src/include/86box/config.h b/src/include/86box/config.h
index a043fb22a..693f38ab7 100644
--- a/src/include/86box/config.h
+++ b/src/include/86box/config.h
@@ -8,16 +8,16 @@
*
* Configuration file handler header.
*
- *
- *
* Authors: Sarah Walker,
* Miran Grca,
* Fred N. van Kempen,
* Overdoze,
+ * Jasmine Iwanek,
*
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
* Copyright 2017 Fred N. van Kempen.
+ * Copyright 2021-2025 Jasmine Iwanek.
*/
#ifndef EMU_CONFIG_H
#define EMU_CONFIG_H
@@ -111,6 +111,7 @@ typedef struct config_t {
# ifdef USE_SERIAL_DEVICES
char serial_devices[SERIAL_MAX][32]; /* Serial device names */
# endif
+ char gameport_devices[GAMEPORT_MAX][32]; /* gameport device names */
/* Other peripherals category */
int fdc_current[FDC_MAX]; /* Floppy disk controller type */