Merge branch 'sarah-walker-pcem:master' into master
This commit is contained in:
commit
7a26bb4f1c
7 changed files with 5191 additions and 11 deletions
|
|
@ -675,17 +675,14 @@ void keyboard_at_write(uint16_t port, uint8_t val, void *priv)
|
|||
keyboard_at_adddata(0x00);
|
||||
break;
|
||||
|
||||
case 0xe8: /* Super-286TR: turbo ON */
|
||||
// TODO: 0xe8 is always followed by 0xba
|
||||
// TODO: I don't know where to call cpu_set_turbo(1) to avoid slow POST after ctrl-alt-del when on low speed (if this is the real behavior!)
|
||||
if (romset == ROM_HYUNDAI_SUPER286TR)
|
||||
cpu_set_turbo(1); // 12 MHz
|
||||
break;
|
||||
|
||||
case 0xe9: /* Super-286TR: turbo OFF */
|
||||
if (romset == ROM_HYUNDAI_SUPER286TR)
|
||||
cpu_set_turbo(0); // 8 MHz
|
||||
break;
|
||||
// AWARD BIOS: called after turbo ON/OFF in the
|
||||
// Hyundai Super-286TR and probably other AWARD 286
|
||||
// bioses. Related to the Turbo LEDs. Exact function
|
||||
// can't be confirmed because the system in question
|
||||
// has no such leds.
|
||||
//case 0xe8: /* Turbo ON, always followed by 0xba */
|
||||
//case 0xe9: /* Turbo OFF */
|
||||
//break;
|
||||
|
||||
case 0xef: /*??? - sent by AMI486*/
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -952,6 +952,7 @@ void *voodoo_card_init()
|
|||
memset(voodoo, 0, sizeof(voodoo_t));
|
||||
|
||||
voodoo->bilinear_enabled = device_get_config_int("bilinear");
|
||||
voodoo->dithersub_enabled = device_get_config_int("dithersub");
|
||||
voodoo->scrfilter = device_get_config_int("dacfilter");
|
||||
voodoo->texture_size = device_get_config_int("texture_memory");
|
||||
voodoo->texture_mask = (voodoo->texture_size << 20) - 1;
|
||||
|
|
@ -1098,8 +1099,10 @@ void *voodoo_2d3d_card_init(int type)
|
|||
memset(voodoo, 0, sizeof(voodoo_t));
|
||||
|
||||
voodoo->bilinear_enabled = device_get_config_int("bilinear");
|
||||
voodoo->dithersub_enabled = device_get_config_int("dithersub");
|
||||
voodoo->scrfilter = device_get_config_int("dacfilter");
|
||||
voodoo->render_threads = device_get_config_int("render_threads");
|
||||
|
||||
voodoo->odd_even_mask = voodoo->render_threads - 1;
|
||||
#ifndef NO_CODEGEN
|
||||
voodoo->use_recompiler = device_get_config_int("recompiler");
|
||||
|
|
@ -1407,6 +1410,12 @@ static device_config_t voodoo_config[] =
|
|||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dithersub",
|
||||
.description = "Dither subtraction",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dacfilter",
|
||||
.description = "Screen Filter",
|
||||
|
|
|
|||
|
|
@ -2474,6 +2474,12 @@ static device_config_t banshee_sgram_config[] =
|
|||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dithersub",
|
||||
.description = "Dither subtraction",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dacfilter",
|
||||
.description = "Screen Filter",
|
||||
|
|
@ -2525,6 +2531,12 @@ static device_config_t banshee_sdram_config[] =
|
|||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dithersub",
|
||||
.description = "Dither subtraction",
|
||||
.type = CONFIG_BINARY,
|
||||
.default_int = 1
|
||||
},
|
||||
{
|
||||
.name = "dacfilter",
|
||||
.description = "Screen Filter",
|
||||
|
|
|
|||
|
|
@ -283,6 +283,7 @@ typedef struct voodoo_t
|
|||
int swap_pending;
|
||||
|
||||
int bilinear_enabled;
|
||||
int dithersub_enabled;
|
||||
|
||||
int fb_size;
|
||||
uint32_t fb_mask;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -370,6 +370,7 @@ enum
|
|||
|
||||
FBZ_DEPTH_BIAS = (1 << 16),
|
||||
|
||||
FBZ_DITHER_SUB = (1 << 19),
|
||||
FBZ_DEPTH_SOURCE = (1 << 20),
|
||||
|
||||
FBZ_PARAM_ADJUST = (1 << 26)
|
||||
|
|
@ -689,3 +690,5 @@ enum
|
|||
#define depth_op ( (params->fbzMode >> 5) & 7)
|
||||
#define dither ( params->fbzMode & FBZ_DITHER)
|
||||
#define dither2x2 (params->fbzMode & FBZ_DITHER_2x2)
|
||||
#define dithersub (params->fbzMode & FBZ_DITHER_SUB)
|
||||
|
||||
|
|
|
|||
|
|
@ -1281,7 +1281,21 @@ static void voodoo_half_triangle(voodoo_t *voodoo, voodoo_params_t *params, vood
|
|||
ALPHA_TEST(src_a);
|
||||
|
||||
if (params->alphaMode & (1 << 4))
|
||||
{
|
||||
if (dithersub && !dither2x2 && voodoo->dithersub_enabled)
|
||||
{
|
||||
dest_r = dithersub_rb[dest_r][real_y & 3][x & 3];
|
||||
dest_g = dithersub_g [dest_g][real_y & 3][x & 3];
|
||||
dest_b = dithersub_rb[dest_b][real_y & 3][x & 3];
|
||||
}
|
||||
if (dithersub && dither2x2 && voodoo->dithersub_enabled)
|
||||
{
|
||||
dest_r = dithersub_rb2x2[dest_r][real_y & 1][x & 1];
|
||||
dest_g = dithersub_g2x2 [dest_g][real_y & 1][x & 1];
|
||||
dest_b = dithersub_rb2x2[dest_b][real_y & 1][x & 1];
|
||||
}
|
||||
ALPHA_BLEND(src_r, src_g, src_b, src_a);
|
||||
}
|
||||
|
||||
if (update)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue