mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
ninjaw.cpp: saner interleave CPU timings, attempt to fix missing enemies bug in Ninja Warriors [Angelo Salese]
This commit is contained in:
parent
d46093315a
commit
2ba92b043b
@ -742,7 +742,11 @@ static MACHINE_CONFIG_START( ninjaw )
|
||||
MCFG_CPU_PROGRAM_MAP(ninjaw_slave_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices */
|
||||
// TODO: if CPUs are unsynched then seldomly stages loads up with no enemies
|
||||
// Let's use a better timer (was 6000 before) based off actual CPU timing.
|
||||
// Might as well bump the divider in case the bug still occurs before resorting to perfect CPU.
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(16000000/1024)) /* CPU slices */
|
||||
//MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0040ioc", TC0040IOC, 0)
|
||||
MCFG_TC0040IOC_READ_0_CB(IOPORT("DSWA"))
|
||||
@ -863,7 +867,8 @@ static MACHINE_CONFIG_START( darius2 )
|
||||
MCFG_CPU_PROGRAM_MAP(darius2_slave_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* CPU slices */
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(16000000/1024)) /* CPU slices */
|
||||
//MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||
|
||||
MCFG_DEVICE_ADD("tc0040ioc", TC0040IOC, 0)
|
||||
MCFG_TC0040IOC_READ_0_CB(IOPORT("DSWA"))
|
||||
|
@ -277,10 +277,12 @@ void mb60553_zooming_tilemap_device::draw( screen_device &screen, bitmap_ind16&
|
||||
|
||||
|
||||
incxx = m_lineram[(line)*8+0]<<4;
|
||||
incyy = m_lineram[(line)*8+3]<<4;
|
||||
|
||||
// startx has an offset based off current x zoom value
|
||||
// This is confirmed by Tecmo World Cup '94 startx being 0xff40 (-192) when showing footballer pics on attract mode (incxx is 0x800)
|
||||
// TODO: slightly offset?
|
||||
xoffset = (float)incxx/(float)0x10000 * 384.0;
|
||||
xoffset = ((float)incxx/(float)0x10000) * 384.0;
|
||||
|
||||
startx = m_regs[0] + (uint32_t)xoffset;
|
||||
starty = m_regs[1];
|
||||
@ -288,7 +290,6 @@ void mb60553_zooming_tilemap_device::draw( screen_device &screen, bitmap_ind16&
|
||||
// TODO: what's this? Used by Grand Striker playfield
|
||||
// startx -= m_lineram[(line)*8+7]/2;
|
||||
|
||||
incyy = m_lineram[(line)*8+3]<<4;
|
||||
|
||||
clip.min_y = clip.max_y = line;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user