aboutsummaryrefslogtreecommitdiff
path: root/overrides/gpsp.h
blob: 86fc86633d6624f1c9f539b9cd18caff82cf1921 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "overrides.h"

static const struct core_override_option gpsp_core_option_overrides[] = {
	{
		.key = "gpsp_bios",
		.info = "Choose the BIOS image to use. The official BIOS must be provided by the user. Using a builtin BIOS might result in compatibility problems.",
		.options = {
			{ "auto", "auto" },
			{ "builtin", "builtin" },
			{ "official", "original" }
		}
	},
	{
		.key = "gpsp_boot_mode",
		.info = "Choose whether to boot the BIOS before the game or not.",
		.options = {
			{ "game", "auto" },
			{ "bios", "bios" }
		}
	},
	{
		.key = "gpsp_frameskip",
		.info = "Skip frames to avoid audio crackling. Improves performance at the expense of visual smoothness.",
		.default_value = "auto",
		.options = {
			[2] = {"auto_threshold", "Threshold"},
			[3] = {"fixed_interval", "Fixed"},
		}
	},
	{
		.key = "gpsp_frameskip_threshold",
		.desc = "FS Threshold (%%)",
		.info = "When 'Frameskip' is set to 'Threshold', sets how low the audio buffer can get before frames will be skipped.",
	},
	{
		.key = "gpsp_frameskip_interval",
		.desc = "FS Interval",
		.info = "The maximum number of frames that can be skipped before a new frame is rendered.",
		.default_value = "3"
	},
	{
		.key = "gpsp_color_correction",
		.info = "Adjusts output colors to match real GBA hardware.",
		.options = {
			{"disabled", NULL},
			{"enabled", NULL},
			{ NULL, NULL }
		}
	},
	{
		.key = "gpsp_frame_mixing",
		.desc = "Frame Blending",
		.info = "Simulates LCD ghosting effects.",
		.options = {
			{"disabled", NULL},
			{"enabled", NULL},
			{ NULL, NULL }
		}
	},
	{
		.key = "gpsp_save_method",
		.default_value = "libretro",
		.blocked = true
	},
	{ NULL }
};

me_bind_action gpsp_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 },
	{ "A TURBO  ",  1 << RETRO_DEVICE_ID_JOYPAD_X },
	{ "B TURBO  ",  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 },
	/* { "FAST FWD ",  1 << RETRO_DEVICE_ID_JOYPAD_R2 }, */
	{ NULL,       0 }
};

const struct core_override_fast_forward gpsp_fast_forward = {
	.type_key = "gpsp_frameskip",
	.interval_key = "gpsp_frameskip_interval"
};

#define gpsp_overrides {                                \
	.core_name = "gpsp",                            \
	.fast_forward = &gpsp_fast_forward,             \
	.actions = gpsp_ctrl_actions,                   \
	.action_size = array_size(gpsp_ctrl_actions),   \
	.options = gpsp_core_option_overrides           \
}