diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index f6817bbd628..1ef38139b8f 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -5783,7 +5783,7 @@ GAME( 2001, naomigd, 0, naomi, naomi, naomi, ROT0, "Sega", /* GDL-xxxx ("licensed by Sega" games) */ GAME( 2001, gundmgd, naomigd, naomigd, naomi, naomi, ROT0, "Capcom", "Mobile Suit Gundam: Federation VS Zeon (GDL-0001)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2001, sfz3ugd, naomigd, naomigd, naomi, naomi, ROT0, "Capcom", "Street Fighter Zero 3 Upper (GDL-0002)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2001, sfz3ugd, naomigd, naomigd, naomi, sfz3ugd, ROT0, "Capcom", "Street Fighter Zero 3 Upper (GDL-0002)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) //GDL-0003 GAME( 2001, cvsgd, naomigd, naomigd, naomi, naomi, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millenium Fight 2000 Pro (GDL-0004)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) //GDL-0005 Doki Doki Idol Star Seeker diff --git a/src/mame/includes/naomi.h b/src/mame/includes/naomi.h index ba47a496db2..5f100ff3237 100644 --- a/src/mame/includes/naomi.h +++ b/src/mame/includes/naomi.h @@ -23,6 +23,7 @@ extern DRIVER_INIT( naomi ); extern DRIVER_INIT( naomi_mp ); extern DRIVER_INIT( naomi2 ); +extern DRIVER_INIT( sfz3ugd ); extern DRIVER_INIT( ggxxsla ); extern DRIVER_INIT( ggxxrl ); extern DRIVER_INIT( ggxx ); diff --git a/src/mame/machine/dc.c b/src/mame/machine/dc.c index 322b24eb022..5ccc8683d36 100644 --- a/src/mame/machine/dc.c +++ b/src/mame/machine/dc.c @@ -688,7 +688,8 @@ WRITE64_HANDLER( dc_sysctrl_w ) else //direct texture path dc_sysctrl_regs[SB_C2DSTAT]=address+ddtdata.length; - timer_set(space->machine, ATTOTIME_IN_USEC(200), NULL, 0, ch2_dma_irq); + /* 200 usecs breaks sfz3upper */ + timer_set(space->machine, ATTOTIME_IN_USEC(50), NULL, 0, ch2_dma_irq); /* simulate YUV FIFO processing here */ if((address & 0x1800000) == 0x0800000) timer_set(space->machine, ATTOTIME_IN_USEC(500), NULL, 0, yuv_fifo_irq); diff --git a/src/mame/machine/naomi.c b/src/mame/machine/naomi.c index e6d51f73082..41452c50b6b 100644 --- a/src/mame/machine/naomi.c +++ b/src/mame/machine/naomi.c @@ -2,21 +2,10 @@ Per-game specific JVS settings / idle loop skips for the MAME Naomi driver. -suchie3: check bp c0a6458 (might be protection related) - -tetkiwam: check bp c09613a - -vtennis: check wpset dee3ec8,8,w,wpdata==0xa8804000 +suchie3: check bp c0a6458 vtennis2: check bp c020130 / wpset c013ff0,f,w,wpdata==0x3f800000 -> 0xc020434 (test mode) -smarinef: put cabinet in STD mode, bp c027968, wpset c0e66a6,4,w - - -hotd2: bp 0xc0ba235, modify work RAM 0xc9c35e8 to be zero, bpclear - -hotd2o: bp 0xc0ba1f6, modify work RAM 0xc9c35a8 to be zero, bpclear - ***************************************************************************/ #include "emu.h" @@ -235,13 +224,28 @@ static READ64_HANDLER( naomigd_ggxxrl_idle_skip_r ) return naomi_ram64[0x18d6c8/8]; } - DRIVER_INIT( ggxxrl ) { memory_install_read64_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc18d6c8, 0xc18d6cf, 0, 0, naomigd_ggxxrl_idle_skip_r); DRIVER_INIT_CALL(naomi); } +/* at least speeds up the annoying copyright screens ;-) */ +static READ64_HANDLER( naomigd_sfz3ugd_idle_skip_r ) +{ + if (cpu_get_pc(space->cpu)==0xc36a2dc) + cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(500)); + + return naomi_ram64[0x5dc900/8]; +} + +DRIVER_INIT( sfz3ugd ) +{ + memory_install_read64_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc5dc900, 0xc5dc907, 0, 0, naomigd_sfz3ugd_idle_skip_r); + DRIVER_INIT_CALL(naomi); +} + + DRIVER_INIT( qmegamis ) { DRIVER_INIT_CALL(naomi);