From 8841035214b6e74d3e72978af21d3f18a97a7f0b Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sun, 29 Mar 2009 06:34:16 +0000 Subject: [PATCH] Merged memory maps. --- src/mame/drivers/vball.c | 70 +++++++++++++--------------------------- 1 file changed, 22 insertions(+), 48 deletions(-) diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index f2a2a4d7c2c..dcc86dd6465 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -204,8 +204,10 @@ static WRITE8_HANDLER(vb_scrollx_lo_w) } -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_RAM) +//Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1") AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2") AM_RANGE(0x1002, 0x1002) AM_READ_PORT("SYSTEM") @@ -213,27 +215,6 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1004, 0x1004) AM_READ_PORT("DSW2") AM_RANGE(0x1005, 0x1005) AM_READ_PORT("P3") AM_RANGE(0x1006, 0x1006) AM_READ_PORT("P4") - AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( vball2pj_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_RAM) - AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1") - AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2") - AM_RANGE(0x1002, 0x1002) AM_READ_PORT("SYSTEM") - AM_RANGE(0x1003, 0x1003) AM_READ_PORT("DSW1") - AM_RANGE(0x1004, 0x1004) AM_READ_PORT("DSW2") - AM_RANGE(0x1005, 0x1005) AM_READ(SMH_RAM) //Strange, that these are read! - AM_RANGE(0x1006, 0x1006) AM_READ(SMH_RAM) //Strange, that these are read! - AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) -ADDRESS_MAP_END - -//Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches) -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x0800, 0x08ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x1008, 0x1008) AM_WRITE(vb_scrollx_hi_w) AM_RANGE(0x1009, 0x1009) AM_WRITE(vb_bankswitch_w) AM_RANGE(0x100a, 0x100b) AM_WRITE(vball_irq_ack_w) /* is there a scanline counter here? */ @@ -242,24 +223,18 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x100e, 0x100e) AM_WRITE(SMH_RAM) AM_BASE(&vb_scrolly_lo) AM_RANGE(0x2000, 0x2fff) AM_WRITE(vb_videoram_w) AM_BASE(&vb_videoram) AM_RANGE(0x3000, 0x3fff) AM_WRITE(vb_attrib_w) AM_BASE(&vb_attribram) - AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM) + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) + AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) - AM_RANGE(0x8800, 0x8801) AM_DEVREAD("ym", ym2151_r) - AM_RANGE(0x9800, 0x9800) AM_DEVREAD("oki", okim6295_r) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x87ff) AM_RAM + AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) + AM_RANGE(0x9800, 0x9803) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w) AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x8800, 0x8801) AM_DEVWRITE("ym", ym2151_w) - AM_RANGE(0x9800, 0x9803) AM_DEVWRITE("oki", okim6295_w) -ADDRESS_MAP_END - static INPUT_PORTS_START( common ) PORT_START("P1") @@ -317,6 +292,12 @@ static INPUT_PORTS_START( common ) PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + + PORT_START("P3") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("P4") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( vball ) @@ -349,7 +330,7 @@ static INPUT_PORTS_START( vball ) PORT_DIPSETTING( 0x80, "2") PORT_DIPSETTING( 0x00, "4") - PORT_START("P3") + PORT_MODIFY("P3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) @@ -359,7 +340,7 @@ static INPUT_PORTS_START( vball ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - PORT_START("P4") + PORT_MODIFY("P4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) @@ -437,11 +418,11 @@ static MACHINE_DRIVER_START( vball ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M6502, CPU_CLOCK) /* 2 MHz - measured by guru but it makes the game far far too slow ?! */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map, 0) MDRV_TIMER_ADD_SCANLINE("scantimer", vball_scanline, "screen", 0, 1) MDRV_CPU_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) + MDRV_CPU_PROGRAM_MAP(sound_map, 0) /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -469,13 +450,6 @@ static MACHINE_DRIVER_START( vball ) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_DRIVER_END -static MACHINE_DRIVER_START( vball2pj ) - MDRV_IMPORT_FROM(vball) - - MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(vball2pj_readmem,writemem) -MACHINE_DRIVER_END - /*************************************************************************** @@ -573,5 +547,5 @@ ROM_END GAME( 1988, vball, 0, vball, vball, 0, ROT0, "Technos", "U.S. Championship V'ball (US)", 0 ) -GAME( 1988, vball2pj, vball, vball2pj, vball2pj, 0, ROT0, "Technos", "U.S. Championship V'ball (Japan)", 0 ) +GAME( 1988, vball2pj, vball, vball, vball2pj, 0, ROT0, "Technos", "U.S. Championship V'ball (Japan)", 0 ) GAME( 1988, vballb, vball, vball, vball, 0, ROT0, "Technos", "U.S. Championship V'ball (bootleg)", 0 )