Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  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, defm) \
  24.         intptr_t name[RCB_NUM] = { defk, defj, defm }
  25. #else
  26. #define RCVAR(name, def) extern intptr_t name
  27. #define RCSTR(name, def) extern struct rc_str name
  28. #define RCCTL(name, defk, defj, defm) \
  29.         extern intptr_t name[RCB_NUM]
  30. #endif
  31.  
  32. RCCTL(pad1_up, PDK_UP, JS_AXIS(0, 1, JS_AXIS_NEGATIVE), 0);
  33. RCCTL(pad1_down, PDK_DOWN, JS_AXIS(0, 1, JS_AXIS_POSITIVE), 0);
  34. RCCTL(pad1_left, PDK_LEFT, JS_AXIS(0, 0, JS_AXIS_NEGATIVE), 0);
  35. RCCTL(pad1_right, PDK_RIGHT, JS_AXIS(0, 0, JS_AXIS_POSITIVE), 0);
  36. RCCTL(pad1_a, 'a', JS_BUTTON(0, 0), 0);
  37. RCCTL(pad1_b, 's', JS_BUTTON(0, 3), 0);
  38. RCCTL(pad1_c, 'd', JS_BUTTON(0, 1), 0);
  39. RCCTL(pad1_x, 'q', JS_BUTTON(0, 6), 0);
  40. RCCTL(pad1_y, 'w', JS_BUTTON(0, 4), 0);
  41. RCCTL(pad1_z, 'e', JS_BUTTON(0, 5), 0);
  42. RCCTL(pad1_mode, PDK_BACKSPACE, JS_BUTTON(0, 9), 0);
  43. RCCTL(pad1_start, PDK_RETURN, JS_BUTTON(0, 8), 0);
  44.  
  45. RCCTL(pad2_up, PDK_KP8, JS_AXIS(1, 1, JS_AXIS_NEGATIVE), 0);
  46. RCCTL(pad2_down, PDK_KP2, JS_AXIS(1, 1, JS_AXIS_POSITIVE), 0);
  47. RCCTL(pad2_left, PDK_KP4, JS_AXIS(1, 0, JS_AXIS_NEGATIVE), 0);
  48. RCCTL(pad2_right, PDK_KP6, JS_AXIS(1, 0, JS_AXIS_POSITIVE), 0);
  49. RCCTL(pad2_a, PDK_DELETE, JS_BUTTON(1, 0), 0);
  50. RCCTL(pad2_b, PDK_END, JS_BUTTON(1, 3), 0);
  51. RCCTL(pad2_c, PDK_PAGEDOWN, JS_BUTTON(1, 1), 0);
  52. RCCTL(pad2_x, PDK_INSERT, JS_BUTTON(1, 6), 0);
  53. RCCTL(pad2_y, PDK_HOME, JS_BUTTON(1, 4), 0);
  54. RCCTL(pad2_z, PDK_PAGEUP, JS_BUTTON(1, 5), 0);
  55. RCCTL(pad2_mode, PDK_KP_PLUS, JS_BUTTON(1, 9), 0);
  56. RCCTL(pad2_start, PDK_KP_ENTER, JS_BUTTON(1, 8), 0);
  57.  
  58. RCCTL(pico_pen_up,
  59.       PDK_UP,
  60.       JS_AXIS(0, 1, JS_AXIS_NEGATIVE),
  61.       MO_MOTION(0, 'u'));
  62. RCCTL(pico_pen_down,
  63.       PDK_DOWN,
  64.       JS_AXIS(0, 1, JS_AXIS_POSITIVE),
  65.       MO_MOTION(0, 'd'));
  66. RCCTL(pico_pen_left,
  67.       PDK_LEFT,
  68.       JS_AXIS(0, 0, JS_AXIS_NEGATIVE),
  69.       MO_MOTION(0, 'l'));
  70. RCCTL(pico_pen_right,
  71.       PDK_RIGHT,
  72.       JS_AXIS(0, 0, JS_AXIS_POSITIVE),
  73.       MO_MOTION(0, 'r'));
  74. RCCTL(pico_pen_button,
  75.       PDK_RETURN,
  76.       JS_BUTTON(0, 0),
  77.       MO_BUTTON(0, 1));
  78. RCVAR(pico_pen_stride, 2);
  79. RCVAR(pico_pen_delay, 2);
  80.  
  81. RCCTL(dgen_fix_checksum, PDK_F1, 0, 0);
  82. RCCTL(dgen_quit, PDK_ESCAPE, 0, 0);
  83. RCCTL(dgen_craptv_toggle, PDK_F5, 0, 0);
  84. RCCTL(dgen_scaling_toggle, PDK_F6, 0, 0);
  85. RCCTL(dgen_screenshot, PDK_F12, 0, 0);
  86. RCCTL(dgen_reset, PDK_TAB, 0, 0);
  87. RCCTL(dgen_z80_toggle, PDK_F10, 0, 0);
  88. RCCTL(dgen_cpu_toggle, PDK_F11, 0, 0);
  89. RCCTL(dgen_stop, 'z', 0, 0);
  90. RCCTL(dgen_prompt, ':', 0, 0);
  91. RCCTL(dgen_game_genie, PDK_F9, 0, 0);
  92. RCCTL(dgen_fullscreen_toggle, (KEYSYM_MOD_ALT | PDK_RETURN), 0, 0);
  93. RCCTL(dgen_debug_enter, '`', 0, 0);
  94. RCCTL(dgen_volume_inc, '=', 0, 0);
  95. RCCTL(dgen_volume_dec, '-', 0, 0);
  96.  
  97. RCCTL(dgen_slot_0, '0', 0, 0);
  98. RCCTL(dgen_slot_1, '1', 0, 0);
  99. RCCTL(dgen_slot_2, '2', 0, 0);
  100. RCCTL(dgen_slot_3, '3', 0, 0);
  101. RCCTL(dgen_slot_4, '4', 0, 0);
  102. RCCTL(dgen_slot_5, '5', 0, 0);
  103. RCCTL(dgen_slot_6, '6', 0, 0);
  104. RCCTL(dgen_slot_7, '7', 0, 0);
  105. RCCTL(dgen_slot_8, '8', 0, 0);
  106. RCCTL(dgen_slot_9, '9', 0, 0);
  107. RCCTL(dgen_slot_next, PDK_F8, 0, 0);
  108. RCCTL(dgen_slot_prev, PDK_F7, 0, 0);
  109. RCCTL(dgen_save, PDK_F2, 0, 0);
  110. RCCTL(dgen_load, PDK_F3, 0, 0);
  111.  
  112. RCVAR(dgen_autoload, 0);
  113. RCVAR(dgen_autosave, 0);
  114. RCVAR(dgen_autoconf, 1);
  115. RCVAR(dgen_frameskip, 1);
  116. RCVAR(dgen_show_carthead, 0);
  117. RCSTR(dgen_rom_path, "roms"); /* synchronize with romload.c */
  118.  
  119. RCVAR(dgen_sound, 1);
  120. RCVAR(dgen_soundrate, 44100);
  121. RCVAR(dgen_soundsegs, 8);
  122. RCVAR(dgen_soundsamples, 0);
  123. RCVAR(dgen_volume, 100);
  124. RCVAR(dgen_mjazz, 0);
  125.  
  126. RCVAR(dgen_hz, 60);
  127. RCVAR(dgen_pal, 0);
  128. RCVAR(dgen_region, 1);
  129. RCSTR(dgen_region_order, "JUEX");
  130.  
  131. RCVAR(dgen_raw_screenshots, 0);
  132. RCVAR(dgen_craptv, 0);
  133. RCVAR(dgen_scaling, 0);
  134. RCVAR(dgen_nice, 0);
  135. #ifdef WITH_JOYSTICK
  136. RCVAR(dgen_joystick, 1);
  137. #else
  138. RCVAR(dgen_joystick, 0);
  139. #endif
  140. RCVAR(dgen_mouse_delay, 50);
  141.  
  142. RCVAR(dgen_fps, 1);
  143. RCVAR(dgen_buttons, 0);
  144. RCVAR(dgen_fullscreen, 0);
  145. RCVAR(dgen_info_height, -1);
  146. RCVAR(dgen_width, -1);
  147. RCVAR(dgen_height, -1);
  148. RCVAR(dgen_scale, -1);
  149. RCVAR(dgen_x_scale, -1);
  150. RCVAR(dgen_y_scale, -1);
  151. RCVAR(dgen_aspect, 1);
  152. RCVAR(dgen_depth, 24);
  153. RCVAR(dgen_swab, 0);
  154. RCVAR(dgen_opengl, 1);
  155. RCVAR(dgen_opengl_stretch, 1);
  156. RCVAR(dgen_opengl_linear, 1);
  157. RCVAR(dgen_opengl_32bit, 1);
  158. RCVAR(dgen_opengl_square, 0);
  159. RCVAR(dgen_doublebuffer, 1);
  160. RCVAR(dgen_screen_thread, 0);
  161. RCVAR(dgen_vdp_hide_plane_a, 0);
  162. RCVAR(dgen_vdp_hide_plane_b, 0);
  163. RCVAR(dgen_vdp_hide_plane_w, 0);
  164. RCVAR(dgen_vdp_hide_sprites, 0);
  165. RCVAR(dgen_vdp_sprites_boxing, 0);
  166. RCVAR(dgen_vdp_sprites_boxing_fg, 0xffff00); // yellow
  167. RCVAR(dgen_vdp_sprites_boxing_bg, 0x00ff00); // green
  168.  
  169. // Keep values in sync with rc.cpp and enums in md.h
  170.  
  171. #if defined(WITH_DRZ80)
  172. RCVAR(dgen_emu_z80, 3);
  173. #elif defined(WITH_CZ80)
  174. RCVAR(dgen_emu_z80, 2);
  175. #elif defined(WITH_MZ80)
  176. RCVAR(dgen_emu_z80, 1);
  177. #else
  178. RCVAR(dgen_emu_z80, 0);
  179. #endif
  180.  
  181. #if defined(WITH_CYCLONE)
  182. RCVAR(dgen_emu_m68k, 3);
  183. #elif defined(WITH_MUSA)
  184. RCVAR(dgen_emu_m68k, 2);
  185. #elif defined(WITH_STAR)
  186. RCVAR(dgen_emu_m68k, 1);
  187. #else
  188. RCVAR(dgen_emu_m68k, 0);
  189. #endif
  190.  
  191. #endif // __RC_VARS_H__
  192.