mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Added accurate hblank durations to Sega Saturn / ST-V HW [Angelo Salese, Corrado Tomaselli, Charles MacDonald]
This commit is contained in:
parent
0eb16cefbd
commit
75f1480ae9
@ -2667,7 +2667,7 @@ static MACHINE_CONFIG_START( saturn, saturn_state )
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_RGB15)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 464, 0, 320, 263, 0, 224)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224)
|
||||
MCFG_SCREEN_UPDATE(stv_vdp2)
|
||||
|
||||
MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness.
|
||||
@ -2714,7 +2714,7 @@ static MACHINE_CONFIG_START( stv, saturn_state )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_RGB15)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 464, 0, 320, 263, 0, 224)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224)
|
||||
MCFG_SCREEN_UPDATE(stv_vdp2)
|
||||
|
||||
MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness.
|
||||
|
@ -5299,15 +5299,18 @@ WRITE32_HANDLER ( saturn_vdp2_regs_w )
|
||||
}
|
||||
}
|
||||
|
||||
/* the following is a complete guess-work */
|
||||
static int get_hblank_duration(running_machine &machine)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
int res;
|
||||
|
||||
res = (STV_VDP2_HRES & 1) ? 455 : 427;
|
||||
|
||||
/* double pump horizontal max res */
|
||||
if(STV_VDP2_HRES & 2)
|
||||
return 464*2;
|
||||
res<<=1;
|
||||
|
||||
return 464;
|
||||
return res;
|
||||
}
|
||||
|
||||
/*some vblank lines measurements (according to Charles MacDonald)*/
|
||||
@ -5503,11 +5506,11 @@ void stv_vdp2_dynamic_res_change(running_machine &machine)
|
||||
{
|
||||
int vblank_period,hblank_period;
|
||||
rectangle visarea = machine.primary_screen->visible_area();
|
||||
attoseconds_t refresh;;
|
||||
visarea.min_x = 0;
|
||||
visarea.max_x = horz_res-1;
|
||||
visarea.min_y = 0;
|
||||
visarea.max_y = vert_res-1;
|
||||
attoseconds_t refresh;;
|
||||
|
||||
vblank_period = get_vblank_duration(machine);
|
||||
hblank_period = get_hblank_duration(machine);
|
||||
|
Loading…
Reference in New Issue
Block a user