@@ -36,7 +36,7 @@ static const char slash = '/';
3636#endif
3737
3838#define MAX_PADS 2
39- #define JOYPAD_BUTTONS 16
39+ #define JOYPAD_BUTTONS 8
4040
4141static struct retro_log_callback logging;
4242static retro_log_printf_t log_cb;
@@ -50,19 +50,13 @@ static int current_screen_width = 0;
5050static int current_screen_height = 0 ;
5151static bool allow_up_down = false ;
5252static bool libretro_supports_bitmasks;
53- static int spinner_support = 0 ;
54- static int spinner_sensitivity = 1 ;
5553static float aspect_ratio = 0 .0f ;
5654
5755static GeargrafxCore* core;
5856static u8 * frame_buffer;
5957
6058static int joypad[MAX_PADS][JOYPAD_BUTTONS];
6159static int joypre[MAX_PADS][JOYPAD_BUTTONS];
62- static int joypad_ext[MAX_PADS][4 ];
63- static int joypre_ext[MAX_PADS][4 ];
64- static bool mouse[2 ];
65- static bool mousepre[2 ];
6660
6761static GG_Keys keymap[] = {
6862 GG_KEY_UP,
@@ -71,8 +65,8 @@ static GG_Keys keymap[] = {
7165 GG_KEY_RIGHT,
7266 GG_KEY_1,
7367 GG_KEY_2,
74- GG_KEY_RUN ,
75- GG_KEY_SELECT
68+ GG_KEY_SELECT ,
69+ GG_KEY_RUN
7670};
7771
7872static void fallback_log (enum retro_log_level level, const char *fmt, ...)
@@ -119,7 +113,8 @@ void retro_init(void)
119113 core->Init (GG_PIXEL_RGB565);
120114#endif
121115
122- frame_buffer = new u8 [HUC6270_MAX_RESOLUTION_WIDTH * HUC6270_MAX_RESOLUTION_HEIGHT * 2 ];
116+ // frame_buffer = new u8[HUC6270_MAX_RESOLUTION_WIDTH * HUC6270_MAX_RESOLUTION_HEIGHT * 2];
117+ frame_buffer = new u8 [1024 * 512 * 2 ];
123118
124119 audio_sample_count = 0 ;
125120
@@ -143,47 +138,23 @@ void retro_set_controller_port_device(unsigned port, unsigned device)
143138
144139 struct retro_input_descriptor joypad[] = {
145140
146- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_UP, " Joystick Up" },
147- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_DOWN, " Joystick Down" },
148- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_LEFT, " Joystick Left" },
149- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_RIGHT, " Joystick Right" },
150- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_B, " Yellow (Left)" },
151- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_A, " Red (Right)" },
152- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_Y, " Keypad 1" },
153- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_X, " Keypad 2" },
154- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_L, " Keypad 3" },
155- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_R, " Keypad 4" },
156- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_L2, " Keypad 5" },
157- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_R2, " Keypad 6" },
158- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_L3, " Keypad 7" },
159- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_R3, " Keypad 8" },
160- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_START, " Keypad *" },
161- { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_SELECT, " Keypad #" },
162- { 0 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y, " Keypad 9" },
163- { 0 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X, " Keypad 0" },
164- { 0 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y, " Purple" },
165- { 0 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X, " Blue" },
166-
167- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_UP, " Joystick Up" },
168- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_DOWN, " Joystick Down" },
169- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_LEFT, " Joystick Left" },
170- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_RIGHT, " Joystick Right" },
171- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_B, " Yellow (Left)" },
172- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_A, " Red (Right)" },
173- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_Y, " Keypad 1" },
174- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_X, " Keypad 2" },
175- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_L, " Keypad 3" },
176- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_R, " Keypad 4" },
177- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_L2, " Keypad 5" },
178- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_R2, " Keypad 6" },
179- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_L3, " Keypad 7" },
180- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_R3, " Keypad 8" },
181- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_START, " Keypad *" },
182- { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_SELECT, " Keypad #" },
183- { 1 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y, " Keypad 9" },
184- { 1 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X, " Keypad 0" },
185- { 1 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y, " Purple" },
186- { 1 , RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X, " Blue" },
141+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_UP, " Up" },
142+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_DOWN, " Down" },
143+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_LEFT, " Left" },
144+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_RIGHT, " Right" },
145+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_A, " I" },
146+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_B, " II" },
147+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_SELECT, " Select" },
148+ { 0 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_START, " Run" },
149+
150+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_UP, " Up" },
151+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_DOWN, " Down" },
152+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_LEFT, " Left" },
153+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_RIGHT, " Right" },
154+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_A, " I" },
155+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_B, " II" },
156+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_SELECT, " Select" },
157+ { 1 , RETRO_DEVICE_JOYPAD, 0 , RETRO_DEVICE_ID_JOYPAD_START, " Run" },
187158
188159 { 0 , 0 , 0 , 0 , NULL }
189160 };
@@ -223,10 +194,10 @@ void retro_get_system_av_info(struct retro_system_av_info *info)
223194
224195 info->geometry .base_width = runtime_info.screen_width ;
225196 info->geometry .base_height = runtime_info.screen_height ;
226- info->geometry .max_width = HUC6270_MAX_RESOLUTION_WIDTH;
227- info->geometry .max_height = HUC6270_MAX_RESOLUTION_HEIGHT;
197+ info->geometry .max_width = 1024 ; // HUC6270_MAX_RESOLUTION_WIDTH;
198+ info->geometry .max_height = 512 ; // HUC6270_MAX_RESOLUTION_HEIGHT;
228199 info->geometry .aspect_ratio = aspect_ratio;
229- info->timing .fps = 60.0 ;
200+ info->timing .fps = 59.82 ;
230201 info->timing .sample_rate = 44100.0 ;
231202}
232203
@@ -304,8 +275,6 @@ static void update_input(void)
304275 {
305276 for (int i = 0 ; i < JOYPAD_BUTTONS; i++)
306277 joypre[j][i] = joypad[j][i];
307- for (int i = 0 ; i < 4 ; i++)
308- joypre_ext[j][i] = joypad_ext[j][i];
309278 }
310279
311280 // Get current state
@@ -327,26 +296,8 @@ static void update_input(void)
327296 }
328297 joypad[j][4 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_A) ? 1 : 0 ;
329298 joypad[j][5 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_B) ? 1 : 0 ;
330- joypad[j][6 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_X) ? 1 : 0 ;
331- joypad[j][7 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_Y) ? 1 : 0 ;
332- joypad[j][8 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_START) ? 1 : 0 ;
333- joypad[j][9 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_SELECT) ? 1 : 0 ;
334- joypad[j][10 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_L) ? 1 : 0 ;
335- joypad[j][11 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_R) ? 1 : 0 ;
336- joypad[j][12 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_L2) ? 1 : 0 ;
337- joypad[j][13 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_R2) ? 1 : 0 ;
338- joypad[j][14 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_L3) ? 1 : 0 ;
339- joypad[j][15 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_R3) ? 1 : 0 ;
340-
341- int analog_left_x = input_state_cb ( j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X);
342- int analog_left_y = input_state_cb ( j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y);
343- int analog_right_x = input_state_cb ( j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X);
344- int analog_right_y = input_state_cb ( j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y);
345-
346- joypad_ext[j][0 ] = analog_left_x != 0 ? 1 : 0 ;
347- joypad_ext[j][1 ] = analog_left_y != 0 ? 1 : 0 ;
348- joypad_ext[j][2 ] = analog_right_x != 0 ? 1 : 0 ;
349- joypad_ext[j][3 ] = analog_right_y != 0 ? 1 : 0 ;
299+ joypad[j][6 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_SELECT) ? 1 : 0 ;
300+ joypad[j][7 ] = joypad_bits[j] & (1 << RETRO_DEVICE_ID_JOYPAD_START) ? 1 : 0 ;
350301 }
351302
352303 for (int j = 0 ; j < MAX_PADS; j++)
@@ -361,17 +312,6 @@ static void update_input(void)
361312 core->KeyReleased (static_cast <GG_Controllers>(j), keymap[i]);
362313 }
363314 }
364-
365- for (int i = 0 ; i < 4 ; i++)
366- {
367- if (joypad_ext[j][i] != joypre_ext[j][i])
368- {
369- if (joypad_ext[j][i] == 1 )
370- core->KeyPressed (static_cast <GG_Controllers>(j), keymap[i + JOYPAD_BUTTONS]);
371- else
372- core->KeyReleased (static_cast <GG_Controllers>(j), keymap[i + JOYPAD_BUTTONS]);
373- }
374- }
375315 }
376316}
377317
@@ -410,11 +350,7 @@ static void check_variables(void)
410350
411351 if (environ_cb (RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value )
412352 {
413- // TODO
414- // if (strcmp(var.value, "Enabled") == 0)
415- // core->GetVideo()->SetNoSpriteLimit(true);
416- // else
417- // core->GetVideo()->SetNoSpriteLimit(false);
353+ core->GetHuC6270 ()->SetNoSpriteLimit (strcmp (var.value , " Enabled" ) == 0 );
418354 }
419355}
420356
0 commit comments