yamyam: Use own program map; note undumped PROM; remove unneeded variable (nw)

This commit is contained in:
AJR 2017-01-29 14:30:03 -05:00
parent 19db9ffda7
commit 3ee77855ef
3 changed files with 34 additions and 11 deletions

View File

@ -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 )

View File

@ -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);

View File

@ -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);
}