forked from snesrev/zelda3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.h
108 lines (101 loc) · 2.27 KB
/
config.h
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
98
99
100
101
102
103
104
105
106
107
108
#pragma once
#include "types.h"
#include <SDL_keycode.h>
enum {
kKeys_Null,
kKeys_Controls,
kKeys_Controls_Last = kKeys_Controls + 11,
kKeys_Load,
kKeys_Load_Last = kKeys_Load + 19,
kKeys_Save,
kKeys_Save_Last = kKeys_Save + 19,
kKeys_Replay,
kKeys_Replay_Last = kKeys_Replay + 19,
kKeys_LoadRef,
kKeys_LoadRef_Last = kKeys_LoadRef + 19,
kKeys_ReplayRef,
kKeys_ReplayRef_Last = kKeys_ReplayRef + 19,
kKeys_CheatLife,
kKeys_CheatKeys,
kKeys_CheatEquipment,
kKeys_CheatWalkThroughWalls,
kKeys_ClearKeyLog,
kKeys_StopReplay,
kKeys_Fullscreen,
kKeys_Reset,
kKeys_Pause,
kKeys_PauseDimmed,
kKeys_Turbo,
kKeys_ReplayTurbo,
kKeys_WindowBigger,
kKeys_WindowSmaller,
kKeys_DisplayPerf,
kKeys_ToggleRenderer,
kKeys_VolumeUp,
kKeys_VolumeDown,
kKeys_Total,
};
enum {
kOutputMethod_SDL,
kOutputMethod_SDLSoftware,
kOutputMethod_OpenGL,
};
typedef struct Config {
int window_width;
int window_height;
bool enhanced_mode7;
bool new_renderer;
bool ignore_aspect_ratio;
uint8 fullscreen;
uint8 window_scale;
bool enable_audio;
bool linear_filtering;
uint8 output_method;
uint16 audio_freq;
uint8 audio_channels;
uint16 audio_samples;
bool autosave;
uint8 extended_aspect_ratio;
bool extend_y;
bool no_sprite_limits;
bool display_perf_title;
uint8 enable_msu;
bool resume_msu;
bool disable_frame_delay;
uint8 msuvolume;
uint32 features0;
const char *link_graphics;
char *memory_buffer;
const char *shader;
const char *msu_path;
} Config;
enum {
kMsuEnabled_Msu = 1,
kMsuEnabled_MsuDeluxe = 2,
kMsuEnabled_Opuz = 4,
};
enum {
kGamepadBtn_Invalid = -1,
kGamepadBtn_A,
kGamepadBtn_B,
kGamepadBtn_X,
kGamepadBtn_Y,
kGamepadBtn_Back,
kGamepadBtn_Guide,
kGamepadBtn_Start,
kGamepadBtn_L3,
kGamepadBtn_R3,
kGamepadBtn_L1,
kGamepadBtn_R1,
kGamepadBtn_DpadUp,
kGamepadBtn_DpadDown,
kGamepadBtn_DpadLeft,
kGamepadBtn_DpadRight,
kGamepadBtn_L2,
kGamepadBtn_R2,
kGamepadBtn_Count,
};
extern Config g_config;
void ParseConfigFile(const char *filename);
int FindCmdForSdlKey(SDL_Keycode code, SDL_Keymod mod);
int FindCmdForGamepadButton(int button, uint32 modifiers);