From 3ee77855efbc42c895d97ca0378deabc32b0d614 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 29 Jan 2017 14:30:03 -0500 Subject: [PATCH] yamyam: Use own program map; note undumped PROM; remove unneeded variable (nw) --- src/mame/drivers/gundealr.cpp | 35 +++++++++++++++++++++++++++-------- src/mame/includes/gundealr.h | 2 +- src/mame/video/gundealr.cpp | 8 ++++++-- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/mame/drivers/gundealr.cpp b/src/mame/drivers/gundealr.cpp index 21f077ab6c5..37eb95f4a91 100644 --- a/src/mame/drivers/gundealr.cpp +++ b/src/mame/drivers/gundealr.cpp @@ -70,7 +70,7 @@ WRITE8_MEMBER(gundealr_state::yamyam_bankswitch_w) -static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, gundealr_state ) +static ADDRESS_MAP_START( base_map, AS_PROGRAM, 8, gundealr_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSW0") @@ -78,16 +78,26 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, gundealr_state ) AM_RANGE(0xc004, 0xc004) AM_READ_PORT("IN0") AM_RANGE(0xc005, 0xc005) AM_READ_PORT("IN1") AM_RANGE(0xc006, 0xc006) AM_READ_PORT("IN2") - AM_RANGE(0xc010, 0xc013) AM_WRITE(yamyam_fg_scroll_w) /* Yam Yam only */ - AM_RANGE(0xc014, 0xc014) AM_WRITE(gundealr_flipscreen_w) AM_RANGE(0xc016, 0xc016) AM_WRITE(yamyam_bankswitch_w) - AM_RANGE(0xc020, 0xc023) AM_WRITE(gundealr_fg_scroll_w) /* Gun Dealer only */ AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(gundealr_paletteram_w) AM_SHARE("paletteram") AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gundealr_bg_videoram_w) AM_SHARE("bg_videoram") AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(gundealr_fg_videoram_w) AM_SHARE("fg_videoram") AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("rambase") ADDRESS_MAP_END +static ADDRESS_MAP_START( gundealr_main_map, AS_PROGRAM, 8, gundealr_state ) + AM_IMPORT_FROM(base_map) + AM_RANGE(0xc014, 0xc014) AM_WRITE(gundealr_flipscreen_w) + AM_RANGE(0xc020, 0xc023) AM_WRITE(gundealr_fg_scroll_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( yamyam_main_map, AS_PROGRAM, 8, gundealr_state ) + AM_IMPORT_FROM(base_map) + AM_RANGE(0xc010, 0xc013) AM_WRITE(yamyam_fg_scroll_w) + AM_RANGE(0xc014, 0xc014) AM_WRITE(yamyam_flipscreen_w) + AM_RANGE(0xc015, 0xc015) AM_WRITENOP // Bit 7 = MCU reset? +ADDRESS_MAP_END + static ADDRESS_MAP_START( main_portmap, AS_IO, 8, gundealr_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) @@ -379,13 +389,11 @@ void gundealr_state::machine_start() membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); - save_item(NAME(m_flipscreen)); save_item(NAME(m_scroll)); } void gundealr_state::machine_reset() { - m_flipscreen = 0; m_scroll[0] = 0; m_scroll[1] = 0; m_scroll[2] = 0; @@ -406,7 +414,7 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* 6 MHz verified for Yam! Yam!? */ - MCFG_CPU_PROGRAM_MAP(main_map) + MCFG_CPU_PROGRAM_MAP(gundealr_main_map) MCFG_CPU_IO_MAP(main_portmap) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gundealr_state, gundealr_scanline, "screen", 0, 1) @@ -496,6 +504,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(gundealr_state::yamyam_mcu_sim) } static MACHINE_CONFIG_DERIVED( yamyam, gundealr ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(yamyam_main_map) MCFG_TIMER_DRIVER_ADD_PERIODIC("mcusim", gundealr_state, yamyam_mcu_sim, attotime::from_hz(6000000/60)) /* 6mhz confirmed */ MACHINE_CONFIG_END @@ -592,6 +602,9 @@ ROM_START( yamyam ) /* DY-90010001 PCB */ ROM_REGION( 0x20000, "gfx2", 0 ) ROM_LOAD( "1.16a", 0x00000, 0x20000, CRC(b122828d) SHA1(90994ba548893a2eacdd58351cfa3952f4af926a) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "4.7e", 0x0000, 0x0100, NO_DUMP) ROM_END ROM_START( yamyamk ) /* DY-90010001 PCB */ @@ -607,6 +620,9 @@ ROM_START( yamyamk ) /* DY-90010001 PCB */ ROM_REGION( 0x20000, "gfx2", 0 ) ROM_LOAD( "1.16a", 0x00000, 0x20000, CRC(b122828d) SHA1(90994ba548893a2eacdd58351cfa3952f4af926a) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "4.7e", 0x0000, 0x0100, NO_DUMP) ROM_END ROM_START( wiseguy ) /* DY-90010001 PCB */ @@ -622,6 +638,9 @@ ROM_START( wiseguy ) /* DY-90010001 PCB */ ROM_REGION( 0x20000, "gfx2", 0 ) ROM_LOAD( "1.16a", 0x00000, 0x20000, CRC(b122828d) SHA1(90994ba548893a2eacdd58351cfa3952f4af926a) ) + + ROM_REGION( 0x0100, "proms", 0 ) + ROM_LOAD( "4.7e", 0x0000, 0x0100, NO_DUMP) ROM_END @@ -629,7 +648,7 @@ ROM_END GAME( 1990, gundealr, 0, gundealr, gundealr, driver_device, 0, ROT270, "Dooyong", "Gun Dealer", MACHINE_SUPPORTS_SAVE ) GAME( 1990, gundealra, gundealr, gundealr, gundealr, driver_device, 0, ROT270, "Dooyong", "Gun Dealer (alt card set)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, gundealrt, gundealr, gundealr, gundealt, driver_device, 0, ROT270, "Dooyong (Tecmo license)", "Gun Dealer (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, gundealrbl, gundealr, gundealr, gundealr, driver_device, 0, ROT270, "bootleg", "Gun Dealer (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, gundealrbl, gundealr, yamyam, gundealr, driver_device, 0, ROT270, "bootleg", "Gun Dealer (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1990, yamyam, 0, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Yam! Yam!?", MACHINE_SUPPORTS_SAVE ) GAME( 1990, yamyamk, yamyam, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Yam! Yam!? (Korea)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/gundealr.h b/src/mame/includes/gundealr.h index dff065de3b2..c0439ab4d57 100644 --- a/src/mame/includes/gundealr.h +++ b/src/mame/includes/gundealr.h @@ -28,7 +28,6 @@ public: /* video-related */ tilemap_t *m_bg_tilemap; tilemap_t *m_fg_tilemap; - int m_flipscreen; uint8_t m_scroll[4]; /* misc */ @@ -40,6 +39,7 @@ public: DECLARE_WRITE8_MEMBER(gundealr_fg_scroll_w); DECLARE_WRITE8_MEMBER(yamyam_fg_scroll_w); DECLARE_WRITE8_MEMBER(gundealr_flipscreen_w); + DECLARE_WRITE8_MEMBER(yamyam_flipscreen_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILEMAP_MAPPER_MEMBER(gundealr_scan); TILE_GET_INFO_MEMBER(get_fg_tile_info); diff --git a/src/mame/video/gundealr.cpp b/src/mame/video/gundealr.cpp index 5f528fd44bb..0f92327b189 100644 --- a/src/mame/video/gundealr.cpp +++ b/src/mame/video/gundealr.cpp @@ -111,8 +111,12 @@ WRITE8_MEMBER(gundealr_state::yamyam_fg_scroll_w) WRITE8_MEMBER(gundealr_state::gundealr_flipscreen_w) { - m_flipscreen = data; - machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); + machine().tilemap().set_flip_all(BIT(data, 0) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); +} + +WRITE8_MEMBER(gundealr_state::yamyam_flipscreen_w) +{ + machine().tilemap().set_flip_all(BIT(data, 7) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); }