static unsigned frame_count = 0;
static bool libretro_supports_bitmasks = false;
+static unsigned previous_width = 0;
+static unsigned previous_height = 0;
+
static int plugins_opened;
static int is_pal_mode;
vout_width = w;
vout_height = h;
+ if (previous_width != vout_width || previous_height != vout_height)
+ {
+ previous_width = vout_width;
+ previous_height = vout_height;
+
+ SysPrintf("setting mode width: %d height %d\n", vout_width, vout_height);
+
+ struct retro_system_av_info info;
+ retro_get_system_av_info(&info);
+ environ_cb(RETRO_ENVIRONMENT_SET_GEOMETRY, &info.geometry);
+ }
+
set_vout_fb();
}
void retro_get_system_av_info(struct retro_system_av_info *info)
{
+
+ unsigned geom_height = vout_height > 0 ? vout_height : 240;
+ unsigned geom_width = vout_width > 0 ? vout_width : 320;
+
memset(info, 0, sizeof(*info));
info->timing.fps = is_pal_mode ? 50 : 60;
info->timing.sample_rate = 44100;
- info->geometry.base_width = 320;
- info->geometry.base_height = 240;
+ info->geometry.base_width = geom_width;
+ info->geometry.base_height = geom_height;
info->geometry.max_width = VOUT_MAX_WIDTH;
info->geometry.max_height = VOUT_MAX_HEIGHT;
info->geometry.aspect_ratio = 4.0 / 3.0;
{
if (id == RETRO_MEMORY_SAVE_RAM)
return Mcd1Data;
+ else if (id == RETRO_MEMORY_SYSTEM_RAM)
+ return psxM;
else
return NULL;
}
{
if (id == RETRO_MEMORY_SAVE_RAM)
return MCD_SIZE;
+ else if (id == RETRO_MEMORY_SYSTEM_RAM)
+ return 0x210000;
else
return 0;
}
ret = input_state_cb(i, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_MASK);
else
{
- unsigned i;
- for (i = 0; i < RETRO_DEVICE_ID_JOYPAD_R3+1; i++)
+ unsigned j;
+ for (j = 0; j < (RETRO_DEVICE_ID_JOYPAD_R3+1); j++)
{
- if (input_state_cb(i, RETRO_DEVICE_JOYPAD, 0, i))
- ret |= (1 << i);
+ if (input_state_cb(i, RETRO_DEVICE_JOYPAD, 0, j))
+ ret |= (1 << j);
}
}
// Query digital inputs
//
// > Pad-Up
- if (ret & (1 < RETRO_DEVICE_ID_JOYPAD_UP))
+ if (ret & (1 << RETRO_DEVICE_ID_JOYPAD_UP))
in_keystate[i] |= (1 << DKEY_UP);
// > Pad-Right
if (ret & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT))