mirror of
https://github.com/holub/mame
synced 2025-05-25 15:25:33 +03:00
hng64: Implemented V-Blank register, fixes palette uploading in Samurai Shodown 1 & 2 [Angelo Salese]
This commit is contained in:
parent
0aa359902d
commit
40e2a10729
@ -626,7 +626,7 @@ static WRITE32_HANDLER( hng64_pal_w )
|
|||||||
// popmessage("Alpha is not zero!") ;
|
// popmessage("Alpha is not zero!") ;
|
||||||
|
|
||||||
// sams64 / sams64_2 never write a palette, why not?
|
// sams64 / sams64_2 never write a palette, why not?
|
||||||
if (hng64_mcu_type!=SAMSHO_MCU)
|
//if (hng64_mcu_type!=SAMSHO_MCU)
|
||||||
palette_set_color(space->machine,offset,MAKE_RGB(r,g,b));
|
palette_set_color(space->machine,offset,MAKE_RGB(r,g,b));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -662,7 +662,7 @@ static READ32_HANDLER( hng64_sysregs_r )
|
|||||||
case 0x215c: return ((systime.local_time.year%100)/10);
|
case 0x215c: return ((systime.local_time.year%100)/10);
|
||||||
case 0x2164: return (systime.local_time.weekday);
|
case 0x2164: return (systime.local_time.weekday);
|
||||||
|
|
||||||
case 0x216c: return 0x00000010; //enables "system log reader"
|
case 0x216c: return 0x00000010; //disables "system log reader"
|
||||||
|
|
||||||
case 0x217c: return 0; //RTC status?
|
case 0x217c: return 0; //RTC status?
|
||||||
}
|
}
|
||||||
@ -845,7 +845,7 @@ static READ32_HANDLER( racing_io_r )
|
|||||||
|
|
||||||
static READ32_HANDLER( hng64_dualport_r )
|
static READ32_HANDLER( hng64_dualport_r )
|
||||||
{
|
{
|
||||||
// printf("dualport R %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(space->cpu));
|
printf("dualport R %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(space->cpu));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
command table:
|
command table:
|
||||||
@ -873,7 +873,7 @@ static READ32_HANDLER( hng64_dualport_r )
|
|||||||
|
|
||||||
static WRITE32_HANDLER( hng64_dualport_w )
|
static WRITE32_HANDLER( hng64_dualport_w )
|
||||||
{
|
{
|
||||||
// printf("dualport WRITE %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(space->cpu));
|
printf("dualport WRITE %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(space->cpu));
|
||||||
COMBINE_DATA (&hng64_dualport[offset]);
|
COMBINE_DATA (&hng64_dualport[offset]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -927,6 +927,7 @@ static READ32_HANDLER( dl_r )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// A read at 0x20300217 ONLY happens if there are more display lists than what are readily available.
|
// A read at 0x20300217 ONLY happens if there are more display lists than what are readily available.
|
||||||
|
|
||||||
// Some kind of buffering of the display lists, or 'render current buffer' write?
|
// Some kind of buffering of the display lists, or 'render current buffer' write?
|
||||||
@ -941,8 +942,6 @@ static WRITE32_HANDLER( dl_control_w )
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef UNUSED_FUNCTION
|
#ifdef UNUSED_FUNCTION
|
||||||
WRITE32_HANDLER( activate_3d_buffer )
|
WRITE32_HANDLER( activate_3d_buffer )
|
||||||
{
|
{
|
||||||
@ -978,7 +977,11 @@ static WRITE32_HANDLER( tcram_w )
|
|||||||
|
|
||||||
static READ32_HANDLER( tcram_r )
|
static READ32_HANDLER( tcram_r )
|
||||||
{
|
{
|
||||||
// mame_printf_debug("Q1 R : %.8x %.8x\n", offset, hng64_tcram[offset]) ;
|
// printf("Q1 R : %.8x %.8x\n", offset, hng64_tcram[offset]) ;
|
||||||
|
|
||||||
|
if(offset == 0x12)
|
||||||
|
return input_port_read(space->machine, "VBLANK");
|
||||||
|
|
||||||
return hng64_tcram[offset] ;
|
return hng64_tcram[offset] ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1372,6 +1375,9 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
|
|
||||||
static INPUT_PORTS_START( hng64 )
|
static INPUT_PORTS_START( hng64 )
|
||||||
|
PORT_START("VBLANK")
|
||||||
|
PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_VBLANK )
|
||||||
|
|
||||||
PORT_START("IPT_TEST")
|
PORT_START("IPT_TEST")
|
||||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||||
@ -1447,6 +1453,9 @@ static INPUT_PORTS_START( hng64 )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( bbust2 )
|
static INPUT_PORTS_START( bbust2 )
|
||||||
|
PORT_START("VBLANK")
|
||||||
|
PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_VBLANK )
|
||||||
|
|
||||||
PORT_START("D_IN")
|
PORT_START("D_IN")
|
||||||
PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_COIN1 )
|
PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||||
@ -1833,7 +1842,7 @@ static MACHINE_DRIVER_START( hng64 )
|
|||||||
|
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
MDRV_SCREEN_REFRESH_RATE(60)
|
MDRV_SCREEN_REFRESH_RATE(60)
|
||||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
|
||||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
||||||
MDRV_SCREEN_SIZE(1024, 1024)
|
MDRV_SCREEN_SIZE(1024, 1024)
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 511, 16, 447)
|
MDRV_SCREEN_VISIBLE_AREA(0, 511, 16, 447)
|
||||||
|
Loading…
Reference in New Issue
Block a user