2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
16 #define USE_FIXED_CONFIG 1
17 #include "qt/gui/csp_logger.h"
19 #if defined(USE_SHARED_DLL)
20 #define USE_FIXED_CONFIG 1
25 CONFIG_RENDER_TYPE_STD = 0,
26 CONFIG_RENDER_TYPE_TV,
27 CONFIG_RENDER_TYPE_END
30 CONFIG_RENDER_PLATFORM_OPENGL_MAIN = 0,
31 CONFIG_RENDER_PLATFORM_OPENGL_CORE = 1,
32 CONFIG_RENDER_PLATFORM_OPENGL_ES = 2,
33 CONFIG_RENDER_PLATFORM_QT3D = 8,
34 CONFIG_RENDER_PLATFORM_VULKAN = 16,
35 CONFIG_RENDER_PLATFORM_DIRECTDRAW = 24,
36 CONFIG_RENDER_PLATFORM_SDLFB = 25,
37 CONFIG_RENDER_PLATFORM_DIRECTX = 32,
41 * ToDo: Apply keyboard types for emulation.
44 CONFIG_HOST_KEYBOARD_TYPE_AT_JP = 0x00000000,
45 CONFIG_HOST_KEYBOARD_TYPE_AT_EN = 0x00010000,
46 CONFIG_HOST_KEYBOARD_TYPE_AT_83 = 0x00030000,
47 CONFIG_HOST_KEYBOARD_TYPE_AT_84 = 0x00040000,
48 CONFIG_HOST_KEYBOARD_TYPE_AT_MISC = 0x00ff0000,
49 CONFIG_HOST_KEYBOARD_TYPE_PC98 = 0x00980000,
50 CONFIG_HOST_KEYBOARD_TYPE_MAC = 0x00fe0000,
54 CONFIG_HOST_KEYBOARD_AT_106JP = CONFIG_HOST_KEYBOARD_TYPE_AT_JP + 106,
55 CONFIG_HOST_KEYBOARD_AT_101 = CONFIG_HOST_KEYBOARD_TYPE_AT_EN + 101,
56 CONFIG_HOST_KEYBOARD_AT_102 = CONFIG_HOST_KEYBOARD_TYPE_AT_EN + 102,
57 CONFIG_HOST_KEYBOARD_AT_104 = CONFIG_HOST_KEYBOARD_TYPE_AT_EN + 104,
58 CONFIG_HOST_KEYBOARD_AT_109JP = CONFIG_HOST_KEYBOARD_TYPE_AT_JP + 109,
59 CONFIG_HOST_KEYBOARD_AT_83 = CONFIG_HOST_KEYBOARD_TYPE_AT_83 + 83,
60 CONFIG_HOST_KEYBOARD_AT_84 = CONFIG_HOST_KEYBOARD_TYPE_AT_84 + 84,
61 CONFIG_HOST_KEYBOARD_AT_MISC = CONFIG_HOST_KEYBOARD_TYPE_AT_MISC,
62 CONFIG_HOST_KEYBOARD_MAC_US = CONFIG_HOST_KEYBOARD_TYPE_MAC + 0,
63 CONFIG_HOST_KEYBOARD_MAC_JP = CONFIG_HOST_KEYBOARD_TYPE_MAC + 1,
64 CONFIG_HOST_KEYBOARD_MAC_ANOTHER = CONFIG_HOST_KEYBOARD_TYPE_MAC + 0xff,
68 CONFIG_CURSOR_AS_CURSOR = 0,
69 CONFIG_CURSOR_AS_2468 = 1,
70 CONFIG_CURSOR_AS_1235 = 2,
75 #ifdef USE_FIXED_CONFIG
76 #define MAX_CART_TMP 8
79 #define MAX_TAPE_TMP 8
80 #define MAX_BINARY_TMP 8
81 #define MAX_BUBBLE_TMP 16
82 #define MAX_VOLUME_TMP 32
84 #define MAX_CART_TMP MAX_CART
85 #define MAX_FD_TMP MAX_FD
86 #define MAX_QD_TMP MAX_QD
87 #define MAX_TAPE_TMP MAX_TAPE
88 #define MAX_BINARY_TMP MAX_BINARY
89 #define MAX_BUBBLE_TMP MAX_BUBBLE
90 #ifdef USE_SOUND_VOLUME
91 #define MAX_VOLUME_TMP USE_SOUND_VOLUME
95 void DLL_PREFIX initialize_config();
96 void DLL_PREFIX load_config(const _TCHAR* config_path);
97 void DLL_PREFIX save_config(const _TCHAR* config_path);
98 void DLL_PREFIX save_config_state(void *f);
99 bool DLL_PREFIX load_config_state(void *f);
104 * To reduce time to build, compiling common blocks of GUI at once.
105 * So, you should not separate items with #ifdef.
109 #if defined(USE_FIXED_CONFIG) || defined(USE_BOOT_MODE)
112 #if defined(USE_FIXED_CONFIG) || defined(USE_CPU_TYPE)
115 #if defined(USE_FIXED_CONFIG) || defined(USE_DIPSWITCH)
118 #if defined(USE_FIXED_CONFIG) || defined(USE_DEVICE_TYPE)
121 #if defined(USE_FIXED_CONFIG) || defined(USE_DRIVE_TYPE)
124 #if defined(USE_FIXED_CONFIG) || defined(USE_KEYBOARD_TYPE)
127 #if defined(USE_FIXED_CONFIG) || defined(USE_MOUSE_TYPE)
130 #if defined(USE_FIXED_CONFIG) || defined(USE_JOYSTICK_TYPE)
133 #if defined(USE_FIXED_CONFIG) || defined(USE_SOUND_TYPE)
136 #if defined(USE_FIXED_CONFIG) || defined(USE_MONITOR_TYPE)
139 #if defined(USE_FIXED_CONFIG) || defined(USE_SCANLINE)
142 #if defined(USE_FIXED_CONFIG) || defined(USE_PRINTER_TYPE)
145 #if defined(USE_FIXED_CONFIG) || defined(USE_FD1)
146 bool correct_disk_timing[/*MAX_FD_TMP*/16];
147 bool ignore_disk_crc[/*MAX_FD_TMP*/16];
149 #if defined(USE_FIXED_CONFIG) || defined(USE_TAPE1)
150 bool wave_shaper[MAX_TAPE_TMP];
151 bool direct_load_mzt[MAX_TAPE_TMP];
152 bool baud_high[MAX_TAPE_TMP];
154 #if defined(USE_FIXED_CONFIG) || defined(USE_AUTO_KEY)
162 #if defined(USE_FIXED_CONFIG) || defined(USE_CART1)
163 _TCHAR initial_cart_dir[_MAX_PATH];
164 _TCHAR recent_cart_path[MAX_CART_TMP][MAX_HISTORY][_MAX_PATH];
166 #if defined(USE_FIXED_CONFIG) || defined(USE_FD1)
167 _TCHAR initial_floppy_disk_dir[_MAX_PATH];
168 _TCHAR recent_floppy_disk_path[MAX_FD_TMP][MAX_HISTORY][_MAX_PATH];
170 #if defined(USE_FIXED_CONFIG) || defined(USE_QD1)
171 _TCHAR initial_quick_disk_dir[_MAX_PATH];
172 _TCHAR recent_quick_disk_path[MAX_QD_TMP][MAX_HISTORY][_MAX_PATH];
174 #if defined(USE_FIXED_CONFIG) || defined(USE_TAPE1)
175 _TCHAR initial_tape_dir[_MAX_PATH];
176 _TCHAR recent_tape_path[MAX_TAPE_TMP][MAX_HISTORY][_MAX_PATH];
178 #if defined(USE_FIXED_CONFIG) || defined(USE_COMPACT_DISC)
179 _TCHAR initial_compact_disc_dir[_MAX_PATH];
180 _TCHAR recent_compact_disc_path[MAX_HISTORY][_MAX_PATH];
182 #if defined(USE_FIXED_CONFIG) || defined(USE_LASER_DISC)
183 _TCHAR initial_laser_disc_dir[_MAX_PATH];
184 _TCHAR recent_laser_disc_path[MAX_HISTORY][_MAX_PATH];
186 #if defined(USE_FIXED_CONFIG) || defined(USE_BINARY_FILE1)
187 _TCHAR initial_binary_dir[_MAX_PATH];
188 _TCHAR recent_binary_path[MAX_BINARY_TMP][MAX_HISTORY][_MAX_PATH];
190 #if defined(USE_FIXED_CONFIG) || defined(USE_BUBBLE1)
191 _TCHAR initial_bubble_casette_dir[_MAX_PATH];
192 _TCHAR recent_bubble_casette_path[MAX_BUBBLE_TMP][MAX_HISTORY][_MAX_PATH];
197 int window_stretch_type;
198 int fullscreen_stretch_type;
199 // #if defined(USE_FIXED_CONFIG) || defined(USE_SCREEN_ROTATE)
204 #if defined(USE_FIXED_CONFIG) || defined(USE_SCREEN_FILTER)
209 bool use_opengl_scanline;
210 bool opengl_scanline_vert;
211 bool opengl_scanline_horiz;
212 bool use_opengl_filters;
213 bool focus_with_click;
214 int opengl_filter_num;
217 bool swap_kanji_pause;
218 int cursor_as_ten_key;
219 bool enter_as_numpad_enter;
221 int host_keyboard_type;
225 * 0 : OpenGL/Main Profile
226 * 1 : OpenGL/Core Profile
228 * 8 : Qt3D(Will not implement)
229 * 16 : Vulkan (Will not implement)
230 * 24 : DirectDraw (Will not implement)
231 * 25 : SDLFB(Will not implement)
232 * 32 : DirectX(Will not implement)
235 int render_major_version;
236 int render_minor_version;
237 bool disk_count_immediate[16]; // Hack for MB8877, FLEX for FM-7.
243 bool sound_strict_rendering;
245 int general_sound_level;
247 #if defined(USE_FIXED_CONFIG) || defined(USE_FD1)
248 bool sound_noise_fdd;
250 #if defined(USE_FIXED_CONFIG) || defined(USE_TAPE1)
251 bool sound_noise_cmt;
252 bool sound_play_tape;
254 #if defined(USE_FIXED_CONFIG) || defined(USE_SOUND_VOLUME)
255 int sound_volume_l[MAX_VOLUME_TMP];
256 int sound_volume_r[MAX_VOLUME_TMP];
259 #if defined(USE_FIXED_CONFIG) || defined(USE_JOYSTICK)
260 int joy_buttons[4][16];
264 #if defined(USE_FIXED_CONFIG) || defined(USE_PRINTER)
265 _TCHAR printer_dll_path[_MAX_PATH];
268 #if defined(_WIN32) && !defined(_USE_QT)
269 _TCHAR fmgen_dll_path[_MAX_PATH];
270 bool use_direct_input;
276 bool show_status_bar;
280 _TCHAR assigned_joystick_name[16][256];
284 int video_codec_type;
285 int audio_codec_type;
287 int video_h264_bitrate;
288 int video_h264_bframes;
289 int video_h264_b_adapt;
292 int video_h264_subme;
294 int video_mpeg4_bitrate;
295 int video_mpeg4_bframes;
296 int video_mpeg4_minq;
297 int video_mpeg4_maxq;
301 int video_frame_rate; // FPS * 1000.0
304 bool dev_log_to_syslog[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1][8];
305 bool dev_log_to_console[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1][8];
306 bool dev_log_recording[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1][8];
310 int virtual_media_position; // -1 = none, 1, 2, 3, 4 = LRUD
315 extern DLL_PREFIX config_t config;