aboutsummaryrefslogtreecommitdiff
path: root/overrides
diff options
context:
space:
mode:
authorneonloop2023-01-29 07:37:02 +0000
committerneonloop2023-01-29 07:37:02 +0000
commit67740303f51ca3e5aa7edb19d1d2760990bf0b0c (patch)
tree856d1171457f816a5d3841567c72bc5cfa18ac97 /overrides
parentacf64246dfbcb2cd9bd1e4c65fc11c409f892863 (diff)
downloadpicoarch-67740303f51ca3e5aa7edb19d1d2760990bf0b0c.tar.gz
picoarch-67740303f51ca3e5aa7edb19d1d2760990bf0b0c.tar.bz2
picoarch-67740303f51ca3e5aa7edb19d1d2760990bf0b0c.zip
Adds dosbox-pure core
dosbox-pure does not support resume states, because it loads puremenu before loading game. Savestates can also glitch loaded game.
Diffstat (limited to 'overrides')
-rw-r--r--overrides/dosbox-pure.h366
1 files changed, 366 insertions, 0 deletions
diff --git a/overrides/dosbox-pure.h b/overrides/dosbox-pure.h
new file mode 100644
index 0000000..1d58d35
--- /dev/null
+++ b/overrides/dosbox-pure.h
@@ -0,0 +1,366 @@
+#include "main.h"
+#include "overrides.h"
+
+static const struct core_override_option dosbox_pure_core_option_overrides[] = {
+ {
+ .key = "dosbox_pure_advanced",
+ .desc = "Show Advanced",
+ },
+ {
+ .key = "dosbox_pure_force60fps",
+ .desc = "Force 60FPS",
+ },
+ {
+ .key = "dosbox_pure_perfstats",
+ .desc = "Show Performance",
+ .options = {
+ { "none", "Disabled" },
+ { "simple", "Simple" },
+ { "detailed", "Detailed" },
+ },
+ },
+ {
+ .key = "dosbox_pure_savestate",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_conf",
+ .desc = "Load dosbox.conf",
+ .info = "Load legacy dosbox.conf files. 'inside' loads files in the loaded zip or folder. 'outside' loads files next to the zip or folder.",
+ .options = {
+ { "false", "Off" },
+ { "inside", "Inside" },
+ { "outside", "Outside" }
+ }
+ },
+ {
+ .key = "dosbox_pure_menu_time",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_latency",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_auto_target",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_bind_unused",
+ .desc = "Bind unused buttons",
+ .info = "Bind all unused controller buttons to keyboard keys.",
+ },
+ {
+ .key = "dosbox_pure_on_screen_keyboard",
+ .desc = "Enable OSK",
+ },
+ {
+ .key = "dosbox_pure_mouse_wheel",
+ .default_value = "none",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_mouse_speed_factor",
+ .desc = "Mouse Sensitivity",
+ },
+ {
+ .key = "dosbox_pure_mouse_speed_factor_x",
+ .desc = "Horz. Sensitivity",
+ },
+ {
+ .key = "dosbox_pure_mouse_input",
+ .blocked = true,
+ .default_value = "false",
+ },
+ {
+ .key = "dosbox_pure_auto_mapping",
+ .desc = "Auto Button Map",
+ .info = "Automatically apply a gamepad control mapping scheme when it detects a game, provided by the Keyb2Joypad Project (by Jemy Murphy and bigjim)",
+ .options = {
+ { "true", "On" },
+ { "notify", "On (notify)" },
+ { "false", "Off" }
+ }
+ },
+ {
+ .key = "dosbox_pure_keyboard_layout",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_menu_transparency",
+ .desc = "Transparency",
+ },
+ {
+ .key = "dosbox_pure_joystick_analog_deadzone",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_joystick_timed",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_cycles",
+ .desc = "Performance",
+ .options = {
+ { "auto", "AUTO" },
+ { "max", "MAX" },
+ { "315", "8086/8088" },
+ { "1320", "286 slow" },
+ { "2750", "286 fast" },
+ { "4720", "386" },
+ { "7800", "386DX" },
+ { "13400", "486DX" },
+ { "26800", "486DX2" },
+ { "77000", "Pentium" },
+ { "200000", "PII" },
+ { "500000", "PIII" },
+ { "1000000", "Athlon" },
+ }
+ },
+ {
+ .key = "dosbox_pure_cycles_scale",
+ .desc = "Perf. Scale",
+ },
+ {
+ .key = "dosbox_pure_cycle_limit",
+ .desc = "CPU Limit",
+ .info = "When emulating DOS as fast as possible, how much time per frame should be used by the emulation.",
+ .default_value = "0.8",
+ },
+ {
+ .key = "dosbox_pure_machine",
+ .desc = "Graphics",
+ .info = "The type of graphics chip that DOSBox will emulate. Requires restart.",
+ .options = {
+ { "svga", "SVGA" },
+ { "vga", "VGA" },
+ { "ega", "EGA" },
+ { "cga", "CGA" },
+ { "tandy", "Tandy" },
+ { "hercules", "Hercules" },
+ { "pcjr", "PCjr" },
+ }
+ },
+ {
+ .key = "dosbox_pure_cga",
+ .desc = "CGA Mode",
+ .options = {
+ { "early_auto", "Early, comp. auto" },
+ { "early_on", "Early, comp. on" },
+ { "early_off", "Early, comp. off" },
+ { "late_auto", "Late, comp. auto" },
+ { "late_on", "Late, comp. on" },
+ { "late_off", "Late, comp. off" },
+ }
+ },
+ {
+ .key = "dosbox_pure_hercules",
+ .desc = "Hercules Color",
+ .options = {
+ { "white", "white" },
+ { "amber", "amber" },
+ { "green", "green" },
+ }
+ },
+ {
+ .key = "dosbox_pure_svga",
+ .desc = "SVGA Mode",
+ .info = "The SVGA variation that is being emulated. Try changing this if you encounter graphical glitches. Requires restart.",
+ .options = {
+ { "svga_s3", "Trio64" },
+ { "vesa_nolfb", "Trio64 (FB hack)" },
+ { "vesa_oldvbe", "Trio64 (VESA 1.3)" },
+ { "svga_et3000", "ET3000" },
+ { "svga_et4000", "ET4000" },
+ { "svga_paradise", "PVGA1A" },
+ }
+ },
+ {
+ .key = "dosbox_pure_svgamem",
+ .desc = "SVGA Memory",
+ .info = "The amount of memory available to the emulated SVGA card. Requires restart.",
+ .options = {
+ { "0", "512KB" },
+ { "1", "1MB" },
+ { "2", "2MB" },
+ { "3", "3MB" },
+ { "4", "4MB" },
+ { "8", "8MB" },
+ }
+ },
+ {
+ .key = "dosbox_pure_voodoo",
+ .blocked = true,
+ .default_value = "off",
+ },
+ {
+ .key = "dosbox_pure_voodoo_perf",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_aspect_correction",
+ .desc = "Correct Aspect",
+ .options = {
+ { "false", "Off" },
+ { "true", "On" },
+ },
+ },
+ {
+ .key = "dosbox_pure_memory_size",
+ .desc = "Memory Size",
+ .info = "The amount of (high) memory that the emulated machine has. You can also disable extended memory (EMS/XMS). Requires restart.",
+ .options = {
+ { "none", "no EMS/XMS" },
+ { "4", "4 MB" },
+ { "8", "8 MB" },
+ { "16", "16 MB" },
+ { "24", "24 MB" },
+ { "32", "32 MB" },
+ { "48", "48 MB" },
+ { "64", "64 MB" },
+ { "96", "96 MB" },
+ { "128", "128 MB" },
+ { "224", "224 MB" },
+ }
+ },
+ {
+ .key = "dosbox_pure_cpu_type",
+ .desc = "CPU Type",
+ .info = "Emulated CPU type. Auto is the fastest choice. Requires restart.",
+ .options = {
+ { "auto", "Auto" },
+ { "386", "386" },
+ { "386_slow", "386 (slow)" },
+ { "386_prefetch", "386 (prefetch)" },
+ { "486_slow", "486 (slow)" },
+ { "pentium_slow", "Pentium (slow)" },
+ }
+ },
+ {
+ .key = "dosbox_pure_cpu_core",
+ .desc = "CPU Core",
+ .info = "Emulation method (DOSBox CPU core) used. Dynamic uses a dynarec implementation. Simple uses an interpreter optimized for old games.",
+ .options = {
+ { "auto", "Auto" },
+ { "dynamic", "Dynamic" },
+ { "normal", "Normal" },
+ { "simple", "Simple" },
+ },
+ .default_value = "dynamic",
+ },
+ {
+ .key = "dosbox_pure_bootos_ramdisk",
+ .desc = "Ignore Disk Changes",
+ .info = "When running an installed operating system, modifications to the C: drive will not be saved permanently.",
+ .options = {
+ { "false", "Off" },
+ { "true", "On" },
+ },
+ },
+ {
+ .key = "dosbox_pure_bootos_dfreespace",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_bootos_forcenormal",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_audiorate",
+ .desc = "Sample rate",
+ .info = "Sets the audio sample rate. Requires restart.",
+ },
+ {
+ .key = "dosbox_pure_sblaster_conf",
+ .desc = "SoundBlaster Conf",
+ .options = {
+ { "A220 I7 D1 H5", "A220 I7 D1 H5" },
+ { "A220 I5 D1 H5", "A220 I5 D1 H5" },
+ { "A240 I7 D1 H5", "A240 I7 D1 H5" },
+ { "A240 I7 D3 H7", "A240 I7 D3 H7" },
+ { "A240 I2 D3 H7", "A240 I2 D3 H7" },
+ { "A240 I5 D3 H5", "A240 I5 D3 H5" },
+ { "A240 I5 D1 H5", "A240 I5 D1 H5" },
+ { "A240 I10 D3 H7", "A240 I10 D3 H7" },
+ { "A280 I10 D0 H6", "A280 I10 D0 H6" },
+ { "A280 I5 D1 H5", "A280 I5 D1 H5" },
+ },
+ },
+ {
+ .key = "dosbox_pure_midi",
+ .blocked = true,
+ },
+ {
+ .key = "dosbox_pure_sblaster_type",
+ .desc = "SoundBlaster Type",
+ .options = {
+ { "sb16", "SB16" },
+ { "sbpro2", "SB Pro 2" },
+ { "sbpro1", "SB Pro" },
+ { "sb2", "SB 2.0" },
+ { "sb1", "SB 1.0" },
+ { "gb", "GameBlaster" },
+ { "none", "none" },
+ },
+ },
+ {
+ .key = "dosbox_pure_sblaster_adlib_mode",
+ .desc = "SB Adlib Mode",
+ .options = {
+ { "auto", "Auto" },
+ { "cms", "CMS" },
+ { "opl2", "OPL-2" },
+ { "dualopl2", "Dual OPL-2" },
+ { "opl3", "OPL-3" },
+ { "opl3gold", "OPL-3 Gold" },
+ { "none", "Disabled" },
+ },
+ },
+ {
+ .key = "dosbox_pure_sblaster_adlib_emu",
+ .desc = "Adlib Provider",
+ .options = {
+ { "default", "Default" },
+ { "nuked", "Nuked OPL3" },
+ },
+ },
+ {
+ .key = "dosbox_pure_gus",
+ .desc = "Gravis Ultrasound",
+ .info = "Enable Gravis Ultrasound emulation. Requires restart.",
+ .options = {
+ { "false", "Off" },
+ { "true", "On" },
+ },
+ },
+ { NULL }
+};
+
+me_bind_action dosbox_pure_ctrl_actions[] =
+{
+ { "UP ", 1 << RETRO_DEVICE_ID_JOYPAD_UP},
+ { "DOWN ", 1 << RETRO_DEVICE_ID_JOYPAD_DOWN },
+ { "LEFT ", 1 << RETRO_DEVICE_ID_JOYPAD_LEFT },
+ { "RIGHT ", 1 << RETRO_DEVICE_ID_JOYPAD_RIGHT },
+ { "A BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_A },
+ { "B BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_B },
+ { "X BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_X },
+ { "Y BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_Y },
+ { "START ", 1 << RETRO_DEVICE_ID_JOYPAD_START },
+ { "SELECT ", 1 << RETRO_DEVICE_ID_JOYPAD_SELECT },
+ { "L BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_L },
+ { "R BUTTON ", 1 << RETRO_DEVICE_ID_JOYPAD_R },
+ { "L2 BUTTON", 1 << RETRO_DEVICE_ID_JOYPAD_L2 },
+ { "R2 BUTTON", 1 << RETRO_DEVICE_ID_JOYPAD_R2 },
+ { "SHOW OSK ", 1 << RETRO_DEVICE_ID_JOYPAD_L3 },
+ { NULL, 0 }
+};
+
+#define dosbox_pure_overrides { \
+ .core_name = "dosbox-pure", \
+ .actions = dosbox_pure_ctrl_actions, \
+ .action_size = array_size(dosbox_pure_ctrl_actions), \
+ .options = dosbox_pure_core_option_overrides, \
+ .needs_reopen = 1, \
+ .prevent_resume = 1, \
+}