summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/exidy.c
diff options
context:
space:
mode:
author Zsolt Vasvari <zsoltvas@mamedev.org>2008-01-07 14:13:01 +0000
committer Zsolt Vasvari <zsoltvas@mamedev.org>2008-01-07 14:13:01 +0000
commite4db091e2db1f1ffe726ca55d7176e70cbbca7ea (patch)
tree65ee6f356cfb2b83c1cbc09118e7800004e91d6e /src/mame/drivers/exidy.c
parent478d9053ef805f51ce9eca43e2641fed257febb7 (diff)
This fixes mtrap37b14gre. As an added bonus, the arrow is now visible in Venture on the zoomed out map. Also, in Hard Hat the twister fades away properly.
Diffstat (limited to 'src/mame/drivers/exidy.c')
-rw-r--r--src/mame/drivers/exidy.c78
1 files changed, 46 insertions, 32 deletions
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index 804beacdfbb..f3c966508a0 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -189,7 +189,7 @@ static WRITE8_HANDLER( fax_bank_select_w )
static ADDRESS_MAP_START( common_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_RAM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_READWRITE(videoram_r, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0x5000, 0x503f) AM_WRITE(exidy_sprite1_xpos_w)
AM_RANGE(0x5040, 0x507f) AM_WRITE(exidy_sprite1_ypos_w)
AM_RANGE(0x5080, 0x50bf) AM_WRITE(exidy_sprite2_xpos_w)
@@ -199,21 +199,29 @@ static ADDRESS_MAP_START( common_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5100, 0x5100) AM_MIRROR(0xfc) AM_WRITE(exidy_spriteno_w)
AM_RANGE(0x5101, 0x5101) AM_MIRROR(0xfc) AM_WRITE(exidy_sprite_enable_w)
AM_RANGE(0x5103, 0x5103) AM_MIRROR(0xfc) AM_READ(exidy_interrupt_r)
- AM_RANGE(0x5210, 0x5212) AM_WRITE(exidy_color_w)
+ AM_RANGE(0x5210, 0x5212) AM_WRITE(MWA8_RAM) AM_BASE(&exidy_color_latch)
AM_RANGE(0x5213, 0x5213) AM_READ_PORT("IN2")
ADDRESS_MAP_END
+static ADDRESS_MAP_START( sidetrac_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0800, 0x3fff) AM_ROM
+ AM_RANGE(0x4800, 0x4fff) AM_ROM AM_BASE(&exidy_characterram)
+ AM_RANGE(0x5200, 0x5201) AM_WRITE(targ_sh_w)
+ AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x3f00)
+ADDRESS_MAP_END
+
+
static ADDRESS_MAP_START( targ_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x3fff) AM_ROM
- AM_RANGE(0x4800, 0x4fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram)
+ AM_RANGE(0x4800, 0x4fff) AM_RAM AM_BASE(&exidy_characterram)
AM_RANGE(0x5200, 0x5201) AM_WRITE(targ_sh_w)
AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x3f00)
ADDRESS_MAP_END
static ADDRESS_MAP_START( venture_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x4800, 0x4fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram)
+ AM_RANGE(0x4800, 0x4fff) AM_RAM AM_BASE(&exidy_characterram)
AM_RANGE(0x5200, 0x520f) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -221,7 +229,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pepper2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5200, 0x520f) AM_READWRITE(pia_0_r, pia_0_w)
- AM_RANGE(0x6000, 0x6fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram)
+ AM_RANGE(0x6000, 0x6fff) AM_RAM AM_BASE(&exidy_characterram)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -234,7 +242,7 @@ static ADDRESS_MAP_START( fax_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(1)
AM_RANGE(0x5200, 0x520f) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x5213, 0x5217) AM_WRITE(MWA8_NOP) /* empty control lines on color/sound board */
- AM_RANGE(0x6000, 0x6fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram)
+ AM_RANGE(0x6000, 0x6fff) AM_RAM AM_BASE(&exidy_characterram)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -824,11 +832,11 @@ static const struct CustomSound_interface exidy_custom_interface =
*
*************************************/
-static MACHINE_DRIVER_START( targ )
+static MACHINE_DRIVER_START( sidetrac )
/* basic machine hardware */
MDRV_CPU_ADD_TAG("main", M6502, EXIDY_CPU_CLOCK)
- MDRV_CPU_PROGRAM_MAP(common_map,targ_map)
+ MDRV_CPU_PROGRAM_MAP(common_map,sidetrac_map)
MDRV_CPU_VBLANK_INT(exidy_vblank_interrupt,1)
/* video hardware */
@@ -854,6 +862,15 @@ static MACHINE_DRIVER_START( targ )
MACHINE_DRIVER_END
+static MACHINE_DRIVER_START( targ )
+
+ /* basic machine hardware */
+ MDRV_IMPORT_FROM(sidetrac)
+ MDRV_CPU_MODIFY("main")
+ MDRV_CPU_PROGRAM_MAP(common_map,targ_map)
+MACHINE_DRIVER_END
+
+
static MACHINE_DRIVER_START( venture )
/* basic machine hardware */
@@ -936,7 +953,7 @@ ROM_START( sidetrac )
ROM_LOAD( "stl8a-1", 0x2800, 0x0800, CRC(e41750ff) SHA1(3868a0d7e34a5118b39b31cff9e4fc839df541ff) )
ROM_LOAD( "stl7a-2", 0x3000, 0x0800, CRC(57fb28dc) SHA1(6addd633d655d6a56b3e509d18e5f7c0ab2d0fbb) )
ROM_LOAD( "stl6a-2", 0x3800, 0x0800, CRC(4226d469) SHA1(fd18b732b66082988b01e04adc2b1e5dae410c98) )
- ROM_LOAD( "stl9c-1", 0x4800, 0x0400, CRC(08710a84) SHA1(4bff254a14af7c968656ccc85277d31ab5a8f0c4) ) /* prom instead of ram chr gen*/
+ ROM_LOAD( "stl9c-1", 0x4800, 0x0400, CRC(08710a84) SHA1(4bff254a14af7c968656ccc85277d31ab5a8f0c4) ) /* PROM instead of RAM char generator */
ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "stl11d", 0x0000, 0x0200, CRC(3bd1acc1) SHA1(06f900cb8f56cd4215c5fbf58a852426d390e0c1) )
@@ -1356,9 +1373,6 @@ static DRIVER_INIT( sidetrac )
exidy_color_latch[2] = 0xf8;
exidy_color_latch[1] = 0xdc;
exidy_color_latch[0] = 0xb8;
-
- /* ROM in place of character RAM */
- memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4800, 0x4bff, 0, 0, MWA8_ROM);
}
@@ -1449,7 +1463,7 @@ static DRIVER_INIT( pepper2 )
/* two 6116 character RAMs */
exidy_characterram = memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x6fff, 0, 0, MRA8_RAM);
- exidy_characterram = memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x6fff, 0, 0, exidy_characterram_w);
+ exidy_characterram = memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x6fff, 0, 0, MWA8_RAM);
memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4800, 0x4fff, 0, 0, MRA8_NOP);
memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4800, 0x4fff, 0, 0, MWA8_NOP);
}
@@ -1471,22 +1485,22 @@ static DRIVER_INIT( fax )
*
*************************************/
-GAME( 1979, sidetrac, 0, targ, sidetrac, sidetrac, ROT0, "Exidy", "Side Trak", 0 )
-GAME( 1980, targ, 0, targ, targ, targ, ROT0, "Exidy", "Targ", 0 )
-GAME( 1980, targc, targ, targ, targ, targ, ROT0, "Exidy", "Targ (cocktail?)", 0 )
-GAME( 1980, spectar, 0, targ, spectar, spectar, ROT0, "Exidy", "Spectar (revision 3)", 0 )
-GAME( 1980, spectar1, spectar, targ, spectar, spectar, ROT0, "Exidy", "Spectar (revision 1?)", 0 )
-GAME( 1980, rallys, spectar, targ, rallys, rallys, ROT0, "Novar", "Rallys (bootleg?)", 0 )
-GAME( 1980, phantoma, spectar, targ, phantoma, phantoma, ROT0, "Jeutel","Phantomas", 0 )
-
-GAME( 1981, mtrap, 0, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 5)", 0 )
-GAME( 1981, mtrap3, mtrap, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", 0 )
-GAME( 1981, mtrap4, mtrap, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 4)", 0 )
-GAME( 1981, venture, 0, venture, venture, venture, ROT0, "Exidy", "Venture (version 5 set 1)", 0 )
-GAME( 1981, venture2, venture, venture, venture, venture, ROT0, "Exidy", "Venture (version 5 set 2)", 0 )
-GAME( 1981, venture4, venture, venture, venture, venture, ROT0, "Exidy", "Venture (version 4)", 0 )
-GAME( 1982, teetert, 0, teetert, teetert, teetert, ROT0, "Exidy", "Teeter Torture (prototype)", 0 )
-GAME( 1982, pepper2, 0, pepper2, pepper2, pepper2, ROT0, "Exidy", "Pepper II", 0 )
-GAME( 1982, hardhat, 0, pepper2, pepper2, pepper2, ROT0, "Exidy", "Hard Hat", 0 )
-GAME( 1983, fax, 0, fax, fax, fax, ROT0, "Exidy", "FAX", 0 )
-GAME( 1983, fax2, fax, fax, fax, fax, ROT0, "Exidy", "FAX 2", 0 )
+GAME( 1979, sidetrac, 0, sidetrac, sidetrac, sidetrac, ROT0, "Exidy", "Side Trak", 0 )
+GAME( 1980, targ, 0, targ, targ, targ, ROT0, "Exidy", "Targ", 0 )
+GAME( 1980, targc, targ, targ, targ, targ, ROT0, "Exidy", "Targ (cocktail?)", 0 )
+GAME( 1980, spectar, 0, targ, spectar, spectar, ROT0, "Exidy", "Spectar (revision 3)", 0 )
+GAME( 1980, spectar1, spectar, targ, spectar, spectar, ROT0, "Exidy", "Spectar (revision 1?)", 0 )
+GAME( 1980, rallys, spectar, targ, rallys, rallys, ROT0, "Novar", "Rallys (bootleg?)", 0 )
+GAME( 1980, phantoma, spectar, targ, phantoma, phantoma, ROT0, "Jeutel","Phantomas", 0 )
+
+GAME( 1981, mtrap, 0, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 5)", 0 )
+GAME( 1981, mtrap3, mtrap, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", 0 )
+GAME( 1981, mtrap4, mtrap, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 4)", 0 )
+GAME( 1981, venture, 0, venture, venture, venture, ROT0, "Exidy", "Venture (version 5 set 1)", 0 )
+GAME( 1981, venture2, venture, venture, venture, venture, ROT0, "Exidy", "Venture (version 5 set 2)", 0 )
+GAME( 1981, venture4, venture, venture, venture, venture, ROT0, "Exidy", "Venture (version 4)", 0 )
+GAME( 1982, teetert, 0, teetert, teetert, teetert, ROT0, "Exidy", "Teeter Torture (prototype)", 0 )
+GAME( 1982, pepper2, 0, pepper2, pepper2, pepper2, ROT0, "Exidy", "Pepper II", 0 )
+GAME( 1982, hardhat, 0, pepper2, pepper2, pepper2, ROT0, "Exidy", "Hard Hat", 0 )
+GAME( 1983, fax, 0, fax, fax, fax, ROT0, "Exidy", "FAX", 0 )
+GAME( 1983, fax2, fax, fax, fax, fax, ROT0, "Exidy", "FAX 2", 0 )