diff options
Diffstat (limited to 'src/mame/drivers/welltris.c')
-rw-r--r-- | src/mame/drivers/welltris.c | 50 |
1 files changed, 23 insertions, 27 deletions
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c index 0a2f85af086..a1845d09119 100644 --- a/src/mame/drivers/welltris.c +++ b/src/mame/drivers/welltris.c @@ -320,11 +320,9 @@ TODO: -WRITE8_MEMBER(welltris_state::welltris_sh_bankswitch_w) +WRITE8_MEMBER(welltris_state::sound_bankswitch_w) { - UINT8 *rom = memregion("audiocpu")->base() + 0x10000; - - membank("bank1")->set_base(rom + (data & 0x03) * 0x8000); + membank("soundbank")->set_entry(data & 0x03); } @@ -355,14 +353,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, welltris_state ) AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_SHARE("pixelram") /* Graph_1 & 2*/ AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* work */ AM_RANGE(0xffc000, 0xffc3ff) AM_RAM AM_SHARE("spriteram") /* Sprite */ - AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(welltris_charvideoram_w) AM_SHARE("charvideoram") /* Char */ + AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(charvideoram_w) AM_SHARE("charvideoram") /* Char */ AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1") /* Bottom Controls */ - AM_RANGE(0xfff000, 0xfff001) AM_WRITE(welltris_palette_bank_w) + AM_RANGE(0xfff000, 0xfff001) AM_WRITE(palette_bank_w) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2") /* Top Controls */ - AM_RANGE(0xfff002, 0xfff003) AM_WRITE(welltris_gfxbank_w) + AM_RANGE(0xfff002, 0xfff003) AM_WRITE(gfxbank_w) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("P3") /* Left Side Ctrls */ - AM_RANGE(0xfff004, 0xfff007) AM_WRITE(welltris_scrollreg_w) + AM_RANGE(0xfff004, 0xfff007) AM_WRITE(scrollreg_w) AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("P4") /* Right Side Ctrls */ AM_RANGE(0xfff008, 0xfff009) AM_READ_PORT("SYSTEM") /* Bit 5 Tested at start of irq 1 */ AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) @@ -376,12 +374,12 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, welltris_state ) AM_RANGE(0x0000, 0x77ff) AM_ROM AM_RANGE(0x7800, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") + AM_RANGE(0x8000, 0xffff) AM_ROMBANK("soundbank") ADDRESS_MAP_END static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, welltris_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_WRITE(welltris_sh_bankswitch_w) + AM_RANGE(0x00, 0x00) AM_WRITE(sound_bankswitch_w) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x10, 0x10) AM_READ(soundlatch_byte_r) AM_RANGE(0x18, 0x18) AM_WRITE(pending_command_clear_w) @@ -640,7 +638,7 @@ INPUT_PORTS_END -static const gfx_layout welltris_charlayout = +static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,1), @@ -651,7 +649,7 @@ static const gfx_layout welltris_charlayout = 32*8 }; -static const gfx_layout welltris_spritelayout = +static const gfx_layout spritelayout = { 16,16, RGN_FRAC(1,2), @@ -665,8 +663,8 @@ static const gfx_layout welltris_spritelayout = }; static GFXDECODE_START( welltris ) - GFXDECODE_ENTRY( "gfx1", 0, welltris_charlayout, 16* 0, 4*16 ) - GFXDECODE_ENTRY( "gfx2", 0, welltris_spritelayout, 16*96, 2*16 ) + GFXDECODE_ENTRY( "gfx1", 0, charlayout, 16* 0, 4*16 ) + GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 16*96, 2*16 ) GFXDECODE_END @@ -688,12 +686,13 @@ DRIVER_INIT_MEMBER(welltris_state,welltris) #endif } -DRIVER_INIT_MEMBER(welltris_state,quiz18k) +void welltris_state::machine_start() { + membank("soundbank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x8000); + + save_item(NAME(m_pending_command)); } - - static MACHINE_CONFIG_START( welltris, welltris_state ) /* basic machine hardware */ @@ -711,7 +710,7 @@ static MACHINE_CONFIG_START( welltris, welltris_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(15, 367-1, 8, 248-1) - MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update_welltris) + MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", welltris) @@ -755,9 +754,8 @@ ROM_START( welltris ) ROM_LOAD16_BYTE( "lh532j10.10", 0x100000, 0x40000, CRC(1187c665) SHA1(c6c55016e46805694348b386e521a3ef1a443621) ) ROM_LOAD16_BYTE( "lh532j11.9", 0x100001, 0x40000, CRC(18eda9e5) SHA1(c01d1dc6bfde29797918490947c89440b58d5372) ) - ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU + banks */ + ROM_REGION( 0x20000, "audiocpu", 0 ) /* 128k for the audio CPU + banks */ ROM_LOAD( "3.144", 0x00000, 0x20000, CRC(ae8f763e) SHA1(255419e02189c2e156c1fbcb0cd4aedd14ed8ffa) ) - ROM_RELOAD( 0x10000, 0x20000 ) ROM_REGION( 0x0a0000, "gfx1", 0 ) /* CHAR Tiles */ ROM_LOAD( "lh534j12.77", 0x000000, 0x80000, CRC(b61a8b74) SHA1(e17f7355375bdc166ef8131f7de9dbda5453f570) ) @@ -782,9 +780,8 @@ ROM_START( welltrisj ) ROM_LOAD16_BYTE( "lh532j10.10", 0x100000, 0x40000, CRC(1187c665) SHA1(c6c55016e46805694348b386e521a3ef1a443621) ) ROM_LOAD16_BYTE( "lh532j11.9", 0x100001, 0x40000, CRC(18eda9e5) SHA1(c01d1dc6bfde29797918490947c89440b58d5372) ) - ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU + banks */ + ROM_REGION( 0x20000, "audiocpu", 0 ) /* 128k for the audio CPU + banks */ ROM_LOAD( "3.144", 0x00000, 0x20000, CRC(ae8f763e) SHA1(255419e02189c2e156c1fbcb0cd4aedd14ed8ffa) ) - ROM_RELOAD( 0x10000, 0x20000 ) ROM_REGION( 0x0a0000, "gfx1", 0 ) /* CHAR Tiles */ ROM_LOAD( "lh534j12.77", 0x000000, 0x80000, CRC(b61a8b74) SHA1(e17f7355375bdc166ef8131f7de9dbda5453f570) ) @@ -809,9 +806,8 @@ ROM_START( quiz18k ) ROM_LOAD16_BYTE( "ic10.bin", 0x100000, 0x40000, CRC(501453a3) SHA1(d127f417f1c52333e478ac397fbe8a2f223b1ce7) ) ROM_LOAD16_BYTE( "ic9.bin", 0x100001, 0x40000, CRC(99b6840f) SHA1(8409a33c64729066bfed6e49dcd84f30906274cb) ) - ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU + banks */ + ROM_REGION( 0x20000, "audiocpu", 0 ) /* 128k for the audio CPU + banks */ ROM_LOAD( "3-ic144.bin", 0x00000, 0x20000, CRC(72d372e3) SHA1(d077e34947de1050b68d76506cc8926b06a94a76) ) - ROM_RELOAD( 0x10000, 0x20000 ) ROM_REGION( 0x180000, "gfx1", 0 ) /* CHAR Tiles */ ROM_LOAD( "ic77.bin", 0x000000, 0x80000, CRC(af3b6fd1) SHA1(d22f7cf62a94ae3a2dcb0236630e9ac88d5e528b) ) @@ -832,6 +828,6 @@ ROM_END -GAME( 1991, welltris, 0, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (World?, 2 players)", GAME_NO_COCKTAIL ) -GAME( 1991, welltrisj,welltris, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (Japan, 2 players)", GAME_NO_COCKTAIL ) -GAME( 1992, quiz18k, 0, quiz18k, quiz18k, welltris_state, quiz18k, ROT0, "EIM", "Miyasu Nonki no Quiz 18-Kin", GAME_NO_COCKTAIL ) +GAME( 1991, welltris, 0, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (World?, 2 players)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) +GAME( 1991, welltrisj,welltris, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (Japan, 2 players)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) +GAME( 1992, quiz18k, 0, quiz18k, quiz18k, driver_device, 0, ROT0, "EIM", "Miyasu Nonki no Quiz 18-Kin", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |