Re: [hatari-devel] --force-max not working in 2.0.0

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Am Tue, 29 Nov 2016 18:55:57 +0100 (CET)
schrieb Anders Eriksson <ae@xxxxxx>:

> On Mon, 28 Nov 2016, Thomas Huth wrote:
> 
> > Am Sat, 26 Nov 2016 14:13:03 +0100 (CET)
> > schrieb Anders Eriksson <ae@xxxxxx>:
> >  
> >> Hi,
> >>
> >> I've been trying to use the new Hatari for recording some Falcon
> >> things, now that the audio works well.
> >>
> >> However, it looks like --force-max stopped working in v2.0.0. 1.7,
> >> 1.8, 1.9 are all OK. Previews of 2.0 all from january this year are
> >> broken as far as I can tell.
> >>
> >> Basicly what happens is that Hatari doesn't add  padding to
> >> --max-width and --max-height any longer, which results in a cut off
> >> recording when the screen size changes.  
> >
> > I think this is simply because we're now using HW scaling in SDL2,
> > so Hatari does not use software scaling to the maximum resolution
> > anymore. If you need the old behavior, try to build Hatari with
> > SDL1 instead and see if it works again.  
> 
> Thanks for the tip, I downloaded Jerome Vernets 10.6 build
> (Universal) which is using SDL1. And indeed then --force-max works,
> almost.
> 
> There is a bug in all versions of Hatari I've tried; if you record a 
> Falcon video, and it change the screen size, the recording will abort
> if you are using 32-bit rendering. Only with 16-bit the recording
> will continue. Yes this is with --force-max.

I think this happens because we're rendering Falcon hi-color mode
always with 16 bpp by default, while the indexed resolutions are
rendered into 32 bpp. So if a demo switches between hi-color and
indexed mode, the recording has to be stopped because the bpp of the
host screen changed.

Maybe we should rather always use 32 bpp nowadays, e.g. with a patch
like this:

diff -r df34f122c82a src/falcon/videl.c
--- a/src/falcon/videl.c	Mon Nov 28 11:01:05 2016 +0100
+++ b/src/falcon/videl.c	Tue Nov 29 22:44:59 2016 +0100
@@ -863,10 +863,8 @@
 /* User selected another zoom mode, so set a new screen resolution now */
 void VIDEL_ZoomModeChanged(bool bForceChange)
 {
-	int bpp = videl.save_scrBpp == 16 ? 16 : ConfigureParams.Screen.nForceBpp;
-
 	Screen_SetGenConvSize(videl.save_scrWidth, videl.save_scrHeight,
-	                      bpp, bForceChange);
+	                      ConfigureParams.Screen.nForceBpp, bForceChange);
 }
 
 
@@ -903,7 +901,7 @@
 	}
 	if (change) {
 		LOG_TRACE(TRACE_VIDEL, "Videl : video mode change to %dx%d@%d\n", videl.save_scrWidth, videl.save_scrHeight, videl.save_scrBpp);
-		Screen_SetGenConvSize(videl.save_scrWidth, videl.save_scrHeight, videl.save_scrBpp == 16 ? 16 : ConfigureParams.Screen.nForceBpp, false);
+		Screen_SetGenConvSize(videl.save_scrWidth, videl.save_scrHeight, ConfigureParams.Screen.nForceBpp, false);
 	}
 
 	if (vw < 32 || vh < 32) {


.... but this needs a bit of testing before I dare to commit it, to see
whether it has performance impacts or other problems...

 Thomas



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/