DGen/SDL
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
rc-vars.h
Go to the documentation of this file.
1 #ifndef __RC_VARS_H__
2 #define __RC_VARS_H__
3 
4 // DGen/SDL v1.17+
5 // RC-modified variables listed here
6 
7 #include <stdint.h>
8 #include "pd-defs.h" // Keysyms are defined in here
9 #include "rc.h"
10 
11 // main.cpp defines IS_MAIN_CPP, which means we actually define the variables.
12 // Otherwise, we just declare them as externs
13 
14 struct rc_str {
15  const char *val;
16  char *alloc;
17  struct rc_str *next;
18 };
19 
20 #ifdef IS_MAIN_CPP
21 #define RCVAR(name, def) intptr_t name = def
22 #define RCSTR(name, def) struct rc_str name = { def, NULL, NULL }
23 #define RCCTL(name, defk, defj) intptr_t name[2] = { defk, defj }
24 #else
25 #define RCVAR(name, def) extern intptr_t name
26 #define RCSTR(name, def) extern struct rc_str name
27 #define RCCTL(name, defk, defj) extern intptr_t name[2]
28 #endif
29 
30 RCCTL(pad1_up, PDK_UP, JS_AXIS(0, 1, JS_AXIS_NEGATIVE));
31 RCCTL(pad1_down, PDK_DOWN, JS_AXIS(0, 1, JS_AXIS_POSITIVE));
32 RCCTL(pad1_left, PDK_LEFT, JS_AXIS(0, 0, JS_AXIS_NEGATIVE));
33 RCCTL(pad1_right, PDK_RIGHT, JS_AXIS(0, 0, JS_AXIS_POSITIVE));
34 RCCTL(pad1_a, 'a', JS_BUTTON(0, 0));
35 RCCTL(pad1_b, 's', JS_BUTTON(0, 3));
36 RCCTL(pad1_c, 'd', JS_BUTTON(0, 1));
37 RCCTL(pad1_x, 'q', JS_BUTTON(0, 6));
38 RCCTL(pad1_y, 'w', JS_BUTTON(0, 4));
39 RCCTL(pad1_z, 'e', JS_BUTTON(0, 5));
40 RCCTL(pad1_mode, PDK_BACKSPACE, JS_BUTTON(0, 9));
41 RCCTL(pad1_start, PDK_RETURN, JS_BUTTON(0, 8));
42 
43 RCCTL(pad2_up, PDK_KP8, JS_AXIS(1, 1, JS_AXIS_NEGATIVE));
44 RCCTL(pad2_down, PDK_KP2, JS_AXIS(1, 1, JS_AXIS_POSITIVE));
45 RCCTL(pad2_left, PDK_KP4, JS_AXIS(1, 0, JS_AXIS_NEGATIVE));
46 RCCTL(pad2_right, PDK_KP6, JS_AXIS(1, 0, JS_AXIS_POSITIVE));
47 RCCTL(pad2_a, PDK_DELETE, JS_BUTTON(1, 0));
48 RCCTL(pad2_b, PDK_END, JS_BUTTON(1, 3));
49 RCCTL(pad2_c, PDK_PAGEDOWN, JS_BUTTON(1, 1));
50 RCCTL(pad2_x, PDK_INSERT, JS_BUTTON(1, 6));
51 RCCTL(pad2_y, PDK_HOME, JS_BUTTON(1, 4));
52 RCCTL(pad2_z, PDK_PAGEUP, JS_BUTTON(1, 5));
53 RCCTL(pad2_mode, PDK_KP_PLUS, JS_BUTTON(1, 9));
54 RCCTL(pad2_start, PDK_KP_ENTER, JS_BUTTON(1, 8));
55 
56 RCCTL(dgen_fix_checksum, PDK_F1, 0);
57 RCCTL(dgen_quit, PDK_ESCAPE, 0);
58 RCCTL(dgen_craptv_toggle, PDK_F5, 0);
59 RCCTL(dgen_scaling_toggle, PDK_F6, 0);
60 RCCTL(dgen_screenshot, PDK_F12, 0);
61 RCCTL(dgen_reset, PDK_TAB, 0);
62 RCCTL(dgen_z80_toggle, PDK_F10, 0);
63 RCCTL(dgen_cpu_toggle, PDK_F11, 0);
64 RCCTL(dgen_stop, 'z', 0);
65 RCCTL(dgen_prompt, ':', 0);
66 RCCTL(dgen_game_genie, PDK_F9, 0);
67 RCCTL(dgen_fullscreen_toggle, (KEYSYM_MOD_ALT | PDK_RETURN), 0);
68 RCCTL(dgen_debug_enter, '`', 0);
69 RCCTL(dgen_volume_inc, '=', 0);
70 RCCTL(dgen_volume_dec, '-', 0);
71 
72 RCCTL(dgen_slot_0, '0', 0);
73 RCCTL(dgen_slot_1, '1', 0);
74 RCCTL(dgen_slot_2, '2', 0);
75 RCCTL(dgen_slot_3, '3', 0);
76 RCCTL(dgen_slot_4, '4', 0);
77 RCCTL(dgen_slot_5, '5', 0);
78 RCCTL(dgen_slot_6, '6', 0);
79 RCCTL(dgen_slot_7, '7', 0);
80 RCCTL(dgen_slot_8, '8', 0);
81 RCCTL(dgen_slot_9, '9', 0);
82 RCCTL(dgen_save, PDK_F2, 0);
83 RCCTL(dgen_load, PDK_F3, 0);
84 
85 RCVAR(dgen_autoload, 0);
86 RCVAR(dgen_autosave, 0);
87 RCVAR(dgen_autoconf, 1);
88 RCVAR(dgen_frameskip, 1);
89 RCVAR(dgen_show_carthead, 0);
90 RCSTR(dgen_rom_path, "roms"); /* synchronize with romload.c */
91 
92 RCVAR(dgen_sound, 1);
93 RCVAR(dgen_soundrate, 22050);
94 RCVAR(dgen_soundsegs, 8);
95 RCVAR(dgen_soundsamples, 0);
96 RCVAR(dgen_volume, 100);
97 RCVAR(dgen_mjazz, 0);
98 
99 RCVAR(dgen_hz, 60);
100 RCVAR(dgen_pal, 0);
101 RCVAR(dgen_region, 0);
102 RCSTR(dgen_region_order, "JUEX");
103 
104 RCVAR(dgen_raw_screenshots, 0);
105 RCVAR(dgen_craptv, 0);
106 RCVAR(dgen_scaling, 0);
107 RCVAR(dgen_nice, 0);
108 #ifdef WITH_JOYSTICK
109 RCVAR(dgen_joystick, 1);
110 #else
111 RCVAR(dgen_joystick, 0);
112 #endif
113 
114 RCVAR(dgen_fps, 0);
115 RCVAR(dgen_buttons, 0);
116 RCVAR(dgen_fullscreen, 0);
117 RCVAR(dgen_info_height, -1);
118 RCVAR(dgen_width, -1);
119 RCVAR(dgen_height, -1);
120 RCVAR(dgen_scale, -1);
121 RCVAR(dgen_x_scale, -1);
122 RCVAR(dgen_y_scale, -1);
123 RCVAR(dgen_depth, 0);
124 RCVAR(dgen_swab, 0);
125 RCVAR(dgen_opengl, 1);
126 RCVAR(dgen_opengl_aspect, 1);
127 RCVAR(dgen_opengl_linear, 1);
128 RCVAR(dgen_opengl_32bit, 1);
129 RCVAR(dgen_opengl_square, 0);
130 RCVAR(dgen_doublebuffer, 1);
131 RCVAR(dgen_screen_thread, 0);
132 RCVAR(dgen_vdp_hide_plane_a, 0);
133 RCVAR(dgen_vdp_hide_plane_b, 0);
134 RCVAR(dgen_vdp_hide_plane_w, 0);
135 RCVAR(dgen_vdp_hide_sprites, 0);
136 RCVAR(dgen_vdp_sprites_boxing, 0);
137 RCVAR(dgen_vdp_sprites_boxing_fg, 0xffff00); // yellow
138 RCVAR(dgen_vdp_sprites_boxing_bg, 0x00ff00); // green
139 
140 // Keep values in sync with rc.cpp and enums in md.h
141 
142 #if defined(WITH_DRZ80)
143 RCVAR(dgen_emu_z80, 3);
144 #elif defined(WITH_CZ80)
145 RCVAR(dgen_emu_z80, 2);
146 #elif defined(WITH_MZ80)
147 RCVAR(dgen_emu_z80, 1);
148 #else
149 RCVAR(dgen_emu_z80, 0);
150 #endif
151 
152 #if defined(WITH_CYCLONE)
153 RCVAR(dgen_emu_m68k, 3);
154 #elif defined(WITH_MUSA)
155 RCVAR(dgen_emu_m68k, 2);
156 #elif defined(WITH_STAR)
157 RCVAR(dgen_emu_m68k, 1);
158 #else
159 RCVAR(dgen_emu_m68k, 0);
160 #endif
161 
162 #endif // __RC_VARS_H__