atari:xbios: Add Supervidel specific video modes. Contributed by Pawel Goralski. SDL-1.2
authorPatrice Mandin <patmandin@gmail.com>
Sun, 01 Nov 2015 08:41:08 +0100
branchSDL-1.2
changeset 9900453dce726f24
parent 9565 9f8a2b28f61d
child 10086 2e3396e62aa6
atari:xbios: Add Supervidel specific video modes. Contributed by Pawel Goralski.
src/video/xbios/SDL_xbios_f30.c
     1.1 --- a/src/video/xbios/SDL_xbios_f30.c	Fri Apr 17 21:41:11 2015 +0200
     1.2 +++ b/src/video/xbios/SDL_xbios_f30.c	Sun Nov 01 08:41:08 2015 +0100
     1.3 @@ -78,6 +78,45 @@
     1.4  	{BPS8|VERTFLAG,320,240,8,XBIOSMODE_C2P}
     1.5  };
     1.6  
     1.7 +static const xbiosmode_t sv_modes[]={
     1.8 +	{0x487D,2560,1440,32,0},  /* 32-bits */
     1.9 +	{0x467D,1920,1200,32,0},
    1.10 +	{0x447D,1920,1080,32,0},
    1.11 +	{0x463D,1280,1024,32,0},
    1.12 +	{0x443D,1024,768,32,0},
    1.13 +	{0x423D,800,600,32,0},
    1.14 +
    1.15 +	{0x403D,640,480,32,0},
    1.16 +	{0x413D,640,240,32,0},
    1.17 +	{0x4035,320,480,32,0},
    1.18 +	{0x4135,320,240,32,0},
    1.19 +
    1.20 +	{0x487C,2560,1440,16,0},    /* 16-bits */
    1.21 +	{0x467C,1920,1200,16,0},
    1.22 +	{0x447C,1920,1080,16,0},
    1.23 +	{0x427C,1680,1050,16,0},
    1.24 +	{0x463C,1280,1024,16,0},
    1.25 +	{0x443C,1024,768,16,0},
    1.26 +	{0x423C,800,600,16,0},
    1.27 +
    1.28 +	{0x403C,640,480,16,0},
    1.29 +	{0x413C,640,240,16,0},
    1.30 +	{0x4034,320,480,16,0},
    1.31 +	{0x4134,320,240,16,0},
    1.32 +
    1.33 +	{0x487F,2560,1440,8,0},     /* 8-bits c2p */
    1.34 +	{0x467F,1920,1200,8,0},
    1.35 +	{0x447F,1920,1080,8,0},
    1.36 +	{0x463f,1280,1024,8,0},
    1.37 +	{0x443F,1024,768,8,0},
    1.38 +	{0x423F,800,600,8,0},
    1.39 +
    1.40 +	{0x403F,640,480,8,0},
    1.41 +	{0x411F,640,240,8,0},
    1.42 +	{0x4017,320,480,8,0},
    1.43 +	{0x4137,320,240,8,0}
    1.44 +};
    1.45 +
    1.46  static int has_supervidel;
    1.47  
    1.48  static void listModes(_THIS, int actually_add);
    1.49 @@ -137,6 +176,20 @@
    1.50  	const xbiosmode_t *f30_modes = NULL;
    1.51  	xbiosmode_t modeinfo;
    1.52  
    1.53 +	if (has_supervidel) {
    1.54 +		/* SuperVidel specific modes */
    1.55 +		max_modes = sizeof(sv_modes)/sizeof(xbiosmode_t);
    1.56 +		f30_modes = sv_modes;
    1.57 +
    1.58 +		for (i=0; i<max_modes; i++) {
    1.59 +			SDL_memcpy(&modeinfo, &sv_modes[i], sizeof(xbiosmode_t));
    1.60 +			SDL_XBIOS_AddMode(this, actually_add, &modeinfo);
    1.61 +		}
    1.62 +
    1.63 +		return;
    1.64 +	}
    1.65 +
    1.66 +	/* Standard Videl */
    1.67  	switch (VgetMonitor()) {
    1.68  		case MONITOR_RGB:
    1.69  		case MONITOR_TV: