Skip to content

Commit 2cc0689

Browse files
Merge pull request #77 from flytrapdev/resolution-fix
Fix resolution changes in games
2 parents 263c979 + 819aa02 commit 2cc0689

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

libretro.c

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,8 @@ void retro_get_system_av_info(struct retro_system_av_info *info)
338338
info->timing.sample_rate = SAMPLERATE;
339339
info->geometry.base_width = game_width;
340340
info->geometry.base_height = game_height;
341-
info->geometry.max_width = TOMGetVideoModeWidth();
342-
info->geometry.max_height = TOMGetVideoModeHeight();
341+
info->geometry.max_width = 652; // Highest value encountered during testing
342+
info->geometry.max_height = vjs.hardwareTypeNTSC ? 240 : 256;
343343
info->geometry.aspect_ratio = 4.0 / 3.0;
344344
}
345345

@@ -568,5 +568,18 @@ void retro_run(void)
568568

569569
JaguarExecuteNew();
570570
SoundCallback(NULL, sampleBuffer, vjs.hardwareTypeNTSC==1?BUFNTSC:BUFPAL);
571+
572+
// Resolution changed
573+
if ((tomWidth != videoWidth || tomHeight != videoHeight) && tomWidth > 0 && tomHeight > 0)
574+
{
575+
videoWidth = tomWidth, videoHeight = tomHeight;
576+
game_width = tomWidth, game_height = tomHeight;
577+
578+
JaguarSetScreenPitch(game_width);
579+
580+
retro_get_system_av_info(&g_av_info);
581+
environ_cb(RETRO_ENVIRONMENT_SET_GEOMETRY, &g_av_info);
582+
}
583+
571584
video_cb(videoBuffer, game_width, game_height, game_width << 2);
572585
}

0 commit comments

Comments
 (0)