mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
Boosted m/sinit comms in Super Major League / Final Arch, fixing the dead locks in it [Angelo Salese]
This commit is contained in:
parent
d513485771
commit
71646f871d
@ -213,8 +213,6 @@ static void scu_dma_direct(address_space *space, UINT8 dma_ch); /*DMA level 0 di
|
||||
static void scu_dma_indirect(address_space *space, UINT8 dma_ch); /*DMA level 0 indirect transfer function*/
|
||||
|
||||
|
||||
int minit_boost,sinit_boost;
|
||||
attotime minit_boost_timeslice, sinit_boost_timeslice;
|
||||
|
||||
//static int scanline;
|
||||
|
||||
@ -1734,9 +1732,9 @@ static void scu_dma_indirect(address_space *space,UINT8 dma_ch)
|
||||
}
|
||||
#endif
|
||||
|
||||
printf("DMA lv %d indirect mode transfer START\n"
|
||||
if(LOG_SCU) printf("DMA lv %d indirect mode transfer START\n"
|
||||
"Start %08x End %08x Size %04x\n",dma_ch,state->m_scu_src[dma_ch],state->m_scu_dst[dma_ch],state->m_scu_size[dma_ch]);
|
||||
printf("Start Add %04x Destination Add %04x\n",state->m_scu_src_add[dma_ch],state->m_scu_dst_add[dma_ch]);
|
||||
if(LOG_SCU) printf("Start Add %04x Destination Add %04x\n",state->m_scu_src_add[dma_ch],state->m_scu_dst_add[dma_ch]);
|
||||
|
||||
//guess,but I believe it's right.
|
||||
state->m_scu_src[dma_ch] &=0x07ffffff;
|
||||
@ -1803,17 +1801,21 @@ static READ16_HANDLER( saturn_soundram_r )
|
||||
/* communication,SLAVE CPU acquires data from the MASTER CPU and triggers an irq. */
|
||||
static WRITE32_HANDLER( minit_w )
|
||||
{
|
||||
saturn_state *state = space->machine().driver_data<saturn_state>();
|
||||
|
||||
logerror("cpu %s (PC=%08X) MINIT write = %08x\n", space->device().tag(), cpu_get_pc(&space->device()),data);
|
||||
space->machine().scheduler().boost_interleave(minit_boost_timeslice, attotime::from_usec(minit_boost));
|
||||
space->machine().scheduler().boost_interleave(state->m_minit_boost_timeslice, attotime::from_usec(state->m_minit_boost));
|
||||
space->machine().scheduler().trigger(1000);
|
||||
sh2_set_frt_input(space->machine().device("slave"), PULSE_LINE);
|
||||
sh2_set_frt_input(state->m_slave, PULSE_LINE);
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( sinit_w )
|
||||
{
|
||||
saturn_state *state = space->machine().driver_data<saturn_state>();
|
||||
|
||||
logerror("cpu %s (PC=%08X) SINIT write = %08x\n", space->device().tag(), cpu_get_pc(&space->device()),data);
|
||||
space->machine().scheduler().boost_interleave(sinit_boost_timeslice, attotime::from_usec(sinit_boost));
|
||||
sh2_set_frt_input(space->machine().device("maincpu"), PULSE_LINE);
|
||||
space->machine().scheduler().boost_interleave(state->m_sinit_boost_timeslice, attotime::from_usec(state->m_sinit_boost));
|
||||
sh2_set_frt_input(state->m_maincpu, PULSE_LINE);
|
||||
}
|
||||
|
||||
static READ32_HANDLER(saturn_backupram_r)
|
||||
@ -2330,10 +2332,10 @@ DRIVER_INIT ( stv )
|
||||
machine.base_datetime(systime);
|
||||
|
||||
/* amount of time to boost interleave for on MINIT / SINIT, needed for communication to work */
|
||||
minit_boost = 400;
|
||||
sinit_boost = 400;
|
||||
minit_boost_timeslice = attotime::zero;
|
||||
sinit_boost_timeslice = attotime::zero;
|
||||
state->m_minit_boost = 400;
|
||||
state->m_sinit_boost = 400;
|
||||
state->m_minit_boost_timeslice = attotime::zero;
|
||||
state->m_sinit_boost_timeslice = attotime::zero;
|
||||
|
||||
state->m_smpc_ram = auto_alloc_array(machine, UINT8, 0x80);
|
||||
state->m_scu_regs = auto_alloc_array(machine, UINT32, 0x100/4);
|
||||
@ -3116,10 +3118,10 @@ static void saturn_init_driver(running_machine &machine, int rgn)
|
||||
machine.current_datetime(systime);
|
||||
|
||||
/* amount of time to boost interleave for on MINIT / SINIT, needed for communication to work */
|
||||
minit_boost = 400;
|
||||
sinit_boost = 400;
|
||||
minit_boost_timeslice = attotime::zero;
|
||||
sinit_boost_timeslice = attotime::zero;
|
||||
state->m_minit_boost = 400;
|
||||
state->m_sinit_boost = 400;
|
||||
state->m_minit_boost_timeslice = attotime::zero;
|
||||
state->m_sinit_boost_timeslice = attotime::zero;
|
||||
|
||||
state->m_smpc_ram = auto_alloc_array(machine, UINT8, 0x80);
|
||||
state->m_scu_regs = auto_alloc_array(machine, UINT32, 0x100/4);
|
||||
@ -4402,6 +4404,8 @@ GAME( 1998, sss, stvbios, stv, stv, sss, ROT0, "Capcom / Cave
|
||||
GAME( 1995, sandor, stvbios, stv, stv, sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1997, thunt, sandor, stv, stv, thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1997, thuntk, sandor, stv, stv, sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1995, smleague, stvbios, stv, stv, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1995, finlarch, smleague,stv, stv, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1996, sokyugrt, stvbios, stv, stv, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1995, suikoenb, stvbios, stv, stv, suikoenb, ROT0, "Data East", "Suikoenbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", GAME_IMPERFECT_SOUND )
|
||||
GAME( 1996, vfkids, stvbios, stv, stv, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", GAME_IMPERFECT_SOUND )
|
||||
@ -4411,8 +4415,6 @@ GAME( 1997, znpwfv, stvbios, stv, stv, znpwfv, ROT0, "Sega",
|
||||
/* Almost */
|
||||
GAME( 1997, vmahjong, stvbios, stv, stvmp, stv, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1998, twcup98, stvbios, stv, stv, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING ) // player movement
|
||||
GAME( 1995, smleague, stvbios, stv, stv, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1995, finlarch, smleague,stv, stv, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1998, elandore, stvbios, stv, stv, elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
|
||||
|
||||
/* Unemulated printer device */
|
||||
|
@ -105,6 +105,8 @@ DRIVER_INIT(prikura)
|
||||
|
||||
(loops for 263473 instructions)
|
||||
*/
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
// master
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6018640);
|
||||
// slave
|
||||
@ -112,8 +114,8 @@ DRIVER_INIT(prikura)
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost = sinit_boost = 0;
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(hanagumi)
|
||||
@ -161,14 +163,16 @@ CPU0: Aids Screen
|
||||
|
||||
DRIVER_INIT(puyosun)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6021cf0);
|
||||
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x60236fe);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost = sinit_boost = 0;
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
/* mausuke
|
||||
@ -183,32 +187,38 @@ CPU0 Data East Logo:
|
||||
|
||||
DRIVER_INIT(mausuke)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x60461A0);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost = sinit_boost = 0;
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(cottonbm)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
// sh2drc_add_pcflush(machine.device("maincpu"), 0x6030ee2);
|
||||
// sh2drc_add_pcflush(machine.device("slave"), 0x6032b52);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(10);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(10);
|
||||
}
|
||||
|
||||
DRIVER_INIT(cotton2)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6031c7a);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x60338ea);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(dnmtdeka)
|
||||
@ -250,6 +260,8 @@ DRIVER_INIT(fhboxers)
|
||||
|
||||
DRIVER_INIT( groovef )
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6005e7c);
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6005e86);
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x60a4970);
|
||||
@ -258,19 +270,21 @@ DRIVER_INIT( groovef )
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost = sinit_boost = 0;
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT( danchih )
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6028b28);
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6028c8e);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x602ae26);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(5);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(5);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -319,87 +333,105 @@ DRIVER_INIT( astrass )
|
||||
|
||||
DRIVER_INIT(thunt)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x602A024);
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6013EEA);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x602AAF8);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(1);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(1);
|
||||
}
|
||||
|
||||
DRIVER_INIT(sandor)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x602a0f8);
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6013fbe);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x602abcc);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(1);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(1);
|
||||
}
|
||||
|
||||
DRIVER_INIT(grdforce)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6041e32);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x6043aa2);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(batmanfr)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x60121c0);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x60125bc);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost = sinit_boost = 0;
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(colmns97)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x60298a2);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost = sinit_boost = 0;
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
}
|
||||
|
||||
DRIVER_INIT(winterht)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6098aea);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x609ae4e);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(2);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(2);
|
||||
}
|
||||
|
||||
DRIVER_INIT(seabass)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x602cbfa);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x60321ee);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(5);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(5);
|
||||
}
|
||||
|
||||
DRIVER_INIT(vfremix)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x602c30c);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x604c332);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(20);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(20);
|
||||
}
|
||||
|
||||
DRIVER_INIT(sss)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6026398);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x6028cd6);
|
||||
|
||||
@ -407,26 +439,30 @@ DRIVER_INIT(sss)
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(othellos)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x602bcbe);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x602d92e);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(sasissu)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x60710be);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(2);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(2);
|
||||
}
|
||||
|
||||
DRIVER_INIT(gaxeduel)
|
||||
@ -446,56 +482,74 @@ DRIVER_INIT(suikoenb)
|
||||
|
||||
DRIVER_INIT(sokyugrt)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(znpwfv)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6012ec2);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x60175a6);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_nsec(500);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_nsec(500);
|
||||
}
|
||||
|
||||
DRIVER_INIT(twcup98)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x605edde);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x6062bca);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
install_twcup98_protection(machine);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(5);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(5);
|
||||
}
|
||||
|
||||
DRIVER_INIT(smleague)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6063bf4);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x6062bca);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
/* tight sync to avoid dead locks */
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(5000);
|
||||
}
|
||||
|
||||
DRIVER_INIT(finlarch)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6064d60);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
/* tight sync to avoid dead locks */
|
||||
state->m_minit_boost = state->m_sinit_boost = 0;
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(5000);
|
||||
}
|
||||
|
||||
DRIVER_INIT(maruchan)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x601ba46);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x601ba46);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(50);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(50);
|
||||
}
|
||||
|
||||
DRIVER_INIT(pblbeach)
|
||||
@ -514,17 +568,21 @@ DRIVER_INIT(shanhigw)
|
||||
|
||||
DRIVER_INIT(elandore)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x604eac0);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x605340a);
|
||||
|
||||
install_elandore_protection(machine);
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(0);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(0);
|
||||
}
|
||||
|
||||
DRIVER_INIT(rsgun)
|
||||
{
|
||||
saturn_state *state = machine.driver_data<saturn_state>();
|
||||
|
||||
sh2drc_add_pcflush(machine.device("maincpu"), 0x6034d04);
|
||||
sh2drc_add_pcflush(machine.device("slave"), 0x6036152);
|
||||
|
||||
@ -532,7 +590,7 @@ DRIVER_INIT(rsgun)
|
||||
|
||||
DRIVER_INIT_CALL(stv);
|
||||
|
||||
minit_boost_timeslice = sinit_boost_timeslice = attotime::from_usec(20);
|
||||
state->m_minit_boost_timeslice = state->m_sinit_boost_timeslice = attotime::from_usec(20);
|
||||
}
|
||||
|
||||
DRIVER_INIT(ffreveng)
|
||||
|
@ -23,6 +23,10 @@ public:
|
||||
UINT32 m_scu_index[3];
|
||||
UINT8 m_stv_multi_bank;
|
||||
UINT8 m_prev_bankswitch;
|
||||
int m_minit_boost;
|
||||
int m_sinit_boost;
|
||||
attotime m_minit_boost_timeslice;
|
||||
attotime m_sinit_boost_timeslice;
|
||||
|
||||
legacy_cpu_device* m_maincpu;
|
||||
legacy_cpu_device* m_slave;
|
||||
|
Loading…
Reference in New Issue
Block a user