summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Phil Bennett <philipjbennett@users.noreply.github.com>2009-10-25 14:17:55 +0000
committer Phil Bennett <philipjbennett@users.noreply.github.com>2009-10-25 14:17:55 +0000
commit84ed1b6f9ead0f3e00de4bbe36d82f8240ca72fa (patch)
tree45e846c1f97c4950c99f4963c90cb7a866537d7f
parent7634dfcf207f78e74698d709d525bd0847d0aa30 (diff)
New clones added
----------------- Hyper Sports (bootleg) [f205v, David Haywood] From: David Haywood <neohaze@nildram.co.uk> Date: Sat, Oct 24, 2009 at 5:36 PM Subject: Hyper Sports bootleg To: Philip Bennett <p.j.bennett@gmail.com> this adds the hyper sports bootleg f205v dumped the sound hookup isn't quite right, it's similar to the track and field bootleg (2 of the roms are the same) but something must be different, or the trigger for it is wrong. i've also removed the run-like-hell fake button to match track & field, from which it was removed long ago.
-rw-r--r--src/mame/audio/trackfld.c12
-rw-r--r--src/mame/drivers/hyperspt.c106
-rw-r--r--src/mame/drivers/trackfld.c8
-rw-r--r--src/mame/includes/trackfld.h6
-rw-r--r--src/mame/mamedriv.c1
5 files changed, 102 insertions, 31 deletions
diff --git a/src/mame/audio/trackfld.c b/src/mame/audio/trackfld.c
index 262e499a3f3..d9b5f424281 100644
--- a/src/mame/audio/trackfld.c
+++ b/src/mame/audio/trackfld.c
@@ -1,6 +1,5 @@
#include "driver.h"
#include "sound/vlm5030.h"
-#include "sound/msm5205.h"
#include "sound/sn76496.h"
#include "includes/trackfld.h"
@@ -54,8 +53,15 @@ WRITE8_DEVICE_HANDLER( trackfld_sound_w )
READ8_HANDLER( hyperspt_sh_timer_r )
{
UINT32 clock = cpu_get_total_cycles(space->cpu) / TIMER_RATE;
-
- return (clock & 0x3) | (vlm5030_bsy(devtag_get_device(space->machine, "vlm"))? 0x04 : 0);
+
+ if (devtag_get_device(space->machine, "vlm"))
+ {
+ return (clock & 0x3) | (vlm5030_bsy(devtag_get_device(space->machine, "vlm"))? 0x04 : 0);
+ }
+ else
+ {
+ return (clock & 0x3);
+ }
}
WRITE8_DEVICE_HANDLER( hyperspt_sound_w )
diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c
index cf6be14cc8b..c0e41ecc5e0 100644
--- a/src/mame/drivers/hyperspt.c
+++ b/src/mame/drivers/hyperspt.c
@@ -15,6 +15,8 @@ Based on drivers from Juno First emulator by Chris Hardy (chrish@kcbbs.gen.nz)
#include "sound/vlm5030.h"
#include "machine/konami1.h"
#include "konamipt.h"
+#include "cpu/m6800/m6800.h"
+#include "includes/trackfld.h"
extern UINT8 *hyperspt_scroll;
@@ -33,25 +35,6 @@ static WRITE8_HANDLER( hyperspt_coin_counter_w )
coin_counter_w(offset,data);
}
-/* handle fake button for speed cheat */
-static READ8_HANDLER( konami_IN1_r )
-{
- int res;
- static int cheat = 0;
- static const int bits[] = { 0xee, 0xff, 0xbb, 0xaa };
-
- res = input_port_read(space->machine, "P1_P2");
-
- if ((res & 0x80) == 0)
- {
- res |= 0x55;
- res &= bits[cheat];
- cheat = (cheat+1)%4;
- }
- return res;
-}
-
-
/*
Track'n'Field has 1k of battery backed RAM which can be erased by setting a dipswitch
@@ -80,8 +63,7 @@ static ADDRESS_MAP_START( hyperspt_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1500, 0x1500) AM_WRITE(soundlatch_w)
AM_RANGE(0x1600, 0x1600) AM_READ_PORT("DSW2")
AM_RANGE(0x1680, 0x1680) AM_READ_PORT("SYSTEM")
-// AM_RANGE(0x1681, 0x1681) AM_READ_PORT("P1_P2")
- AM_RANGE(0x1681, 0x1681) AM_READ(konami_IN1_r) /* P1/P2 IO and handle fake button for cheating */
+ AM_RANGE(0x1681, 0x1681) AM_READ_PORT("P1_P2")
AM_RANGE(0x1682, 0x1682) AM_READ_PORT("P3_P4")
AM_RANGE(0x1683, 0x1683) AM_READ_PORT("DSW1")
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(hyperspt_videoram_w) AM_BASE(&videoram)
@@ -124,6 +106,17 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe002, 0xe002) AM_DEVWRITE("sn", konami_SN76496_w) /* This address triggers the SN chip to read the data port. */
ADDRESS_MAP_END
+static ADDRESS_MAP_START( soundb_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x4fff) AM_RAM
+ AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
+ AM_RANGE(0x8000, 0x8000) AM_READ(hyperspt_sh_timer_r)
+ AM_RANGE(0xa000, 0xa000) AM_NOP
+ AM_RANGE(0xc000, 0xdfff) AM_WRITE(hyprolyb_adpcm_w) /* speech and output control */
+ AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("dac", dac_w)
+ AM_RANGE(0xe001, 0xe001) AM_WRITE(konami_SN76496_latch_w) /* Loads the snd command into the snd latch */
+ AM_RANGE(0xe002, 0xe002) AM_DEVWRITE("sn", konami_SN76496_w) /* This address triggers the SN chip to read the data port. */
+ADDRESS_MAP_END
static INPUT_PORTS_START( hyperspt )
PORT_START("SYSTEM")
@@ -144,9 +137,7 @@ static INPUT_PORTS_START( hyperspt )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
-// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
- /* Fake button to press buttons 1 and 3 impossibly fast. Handle via konami_IN1_r */
- PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Run Like Hell (Cheat)") PORT_PLAYER(1)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("P3_P4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) //PORT_COCKTAIL These were commented out
@@ -344,6 +335,23 @@ static MACHINE_DRIVER_START( hyperspt )
MACHINE_DRIVER_END
+static MACHINE_DRIVER_START( hypersptb )
+ MDRV_IMPORT_FROM(hyperspt)
+ MDRV_DEVICE_REMOVE("vlm")
+
+ MDRV_CPU_MODIFY("audiocpu")
+ MDRV_CPU_PROGRAM_MAP(soundb_map)
+
+ MDRV_CPU_ADD("adpcm", M6802, XTAL_14_31818MHz/8) /* unknown clock */
+ MDRV_CPU_PROGRAM_MAP(hyprolyb_adpcm_map)
+
+ MDRV_SOUND_ADD("msm", MSM5205, 384000)
+ MDRV_SOUND_CONFIG(hyprolyb_msm5205_config)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+
+MACHINE_DRIVER_END
+
+
static MACHINE_DRIVER_START( roadf )
MDRV_IMPORT_FROM(hyperspt)
MDRV_CPU_MODIFY("maincpu")
@@ -397,6 +405,55 @@ ROM_START( hyperspt )
ROM_LOAD( "c08", 0x0000, 0x2000, CRC(e8f8ea78) SHA1(8d37818e5a2740c96696f37996f2a3f870386690) )
ROM_END
+
+
+ROM_START( hypersptb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1.5g", 0x4000, 0x2000, CRC(0cfc68a7) SHA1(48ddd444f4366a39afb589e1c5df10d815b4b64f) )
+ ROM_LOAD( "2.7g", 0x6000, 0x2000, CRC(560258e0) SHA1(788d0d3cbbd97fb54eceb3281ccf84a31e5e3e98) )
+ ROM_LOAD( "3.8g", 0x8000, 0x2000, CRC(9b01c7e6) SHA1(0106f94b38ad62e7514e56aab35581968074bbe0) )
+ ROM_LOAD( "4.11g", 0xa000, 0x2000, CRC(4ed32240) SHA1(b093763655ebfd00b08542b49eab4606ea1ef8c6) )
+ ROM_LOAD( "5.13g", 0xc000, 0x2000, CRC(b105a8cd) SHA1(7d77ab4d75c0bff7ac7372a5ff5fe55839b57d19) )
+ ROM_LOAD( "6.15g", 0xe000, 0x2000, CRC(1a34a849) SHA1(daa42a959ea162ca7f098010c85a7453a8805df8) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "12.17a", 0x0000, 0x2000, CRC(3dc1a6ff) SHA1(1e67cac46b6c8a9a0bb1560e135983435520f1fc) )
+ ROM_LOAD( "11.15a", 0x2000, 0x2000, CRC(9b525c3e) SHA1(d8775ec3b4f12117431a2b7c7eaa038c1255241b) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "20.15g", 0x00000, 0x4000, CRC(551d222f) SHA1(cd3d544ca5009cad3f9748804301bfed57329775) ) // 27256 ?! - it doesn't need to be!
+ ROM_CONTINUE(0xc000,0x4000) // causes data we want to be at 0xe000 - 0xffff
+ ROM_LOAD( "16.19j", 0x00000, 0x2000, CRC(c72d63be) SHA1(0677b4f7196551ebc1bbbecd0e15d79f8e32857d) )
+ ROM_LOAD( "15.18j", 0x02000, 0x2000, CRC(76565608) SHA1(418fb9a81c0583d0214afb27fea28794563b8460) )
+ ROM_LOAD( "14.17j", 0x04000, 0x2000, CRC(74d2cc69) SHA1(684b65455217f243b3690822d445efdcb18211bb) )
+ ROM_LOAD( "13.15j", 0x06000, 0x2000, CRC(66cbcb4d) SHA1(c4ea51a6f30d2cd0cd6e22fdadb83d889f2cc471) )
+ ROM_LOAD( "17.19g", 0x08000, 0x2000, CRC(ed25e669) SHA1(2e306db101cd4443b0a81cecf817e5ebbdaf1bba) )
+ ROM_LOAD( "18.18g", 0x0a000, 0x2000, CRC(b145b39f) SHA1(e696e1f9b44aa44360ea9962c4ee9b61db8e53f5) )
+ ROM_LOAD( "19.17g", 0x0c000, 0x2000, CRC(d7ff9f2b) SHA1(b0e6a056db96027ba0c10d3ee3bfdef145a236e2) )
+
+
+ ROM_REGION( 0x08000, "gfx2", 0 )
+ ROM_LOAD( "b.14a", 0x00000, 0x4000, CRC(8fd90bd2) SHA1(4faa270002f859a27719d08004b012cc297405f5) ) // 27256 ?! - it doesn't need to be!
+ ROM_CONTINUE(0x0000,0x4000) // causes data we want to be at 0x0000 - 0x1fff
+ ROM_LOAD( "a.12a", 0x02000, 0x2000, CRC(a3d422c6) SHA1(f0e26a7190e64acd9b682aab5a66223de4055de0) )
+ ROM_LOAD( "d.14c", 0x04000, 0x2000, CRC(ed9271a0) SHA1(a458ad79922383f45f6522775e19cf693e226883) )
+ ROM_LOAD( "c.12c", 0x06000, 0x2000, CRC(0c8ed053) SHA1(2bf5e4fd94cbf7d459495a144b86b677eb1f89da) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "mmi6331-1.3c", 0x0000, 0x0020, CRC(bc8a5956) SHA1(90746145d9f380c29919edea3ef7a8434c48c9d9) )
+ // no proms matched the ones below, but they're colours, so I assume them to be the same
+ ROM_LOAD( "j12_c28.bin", 0x0020, 0x0100, CRC(2c891d59) SHA1(79050fbe058c24349927edc7937ec68a77f450f1) )
+ ROM_LOAD( "a09_c29.bin", 0x0120, 0x0100, CRC(811a3f3f) SHA1(474f03345847cd9791ff6b7161286bbfef3f990a) )
+
+ /* These ROM's are located on the Sound Board */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the 6802 which plays ADPCM samples */
+ ROM_LOAD( "10.20c", 0x8000, 0x2000, CRC(a4cddeb8) SHA1(057981ad3b04239662bb19342e9ec14b0dab2351) )
+ ROM_LOAD( "9.20cd", 0xa000, 0x2000, CRC(e9919365) SHA1(bd11d6e3ee2c6e698159c2768e315389d666107f) )
+ ROM_LOAD( "8.20d", 0xc000, 0x2000, CRC(49a06454) SHA1(159a293125d7ac92a81120e290497ee7ed6d8acf) )
+ ROM_LOAD( "7.20b", 0xe000, 0x2000, CRC(607a36df) SHA1(17e553e5070771133ed094f05b26dd6cd63cfc23) )
+
+ROM_END
+
ROM_START( hpolym84 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "c01", 0x4000, 0x2000, CRC(0c720eeb) SHA1(cc0719db7e59c72e603ab2ca42565303bc41d281) )
@@ -499,6 +556,7 @@ static DRIVER_INIT( hyperspt )
GAME( 1984, hyperspt, 0, hyperspt, hyperspt, hyperspt, ROT0, "Konami (Centuri license)", "Hyper Sports", 0 )
+GAME( 1984, hypersptb,hyperspt, hypersptb,hyperspt, hyperspt, ROT0, "bootleg", "Hyper Sports (bootleg)", GAME_IMPERFECT_SOUND ) // has ADPCM vis MSM5205 instead of VLM
GAME( 1984, hpolym84, hyperspt, hyperspt, hyperspt, hyperspt, ROT0, "Konami", "Hyper Olympic '84", 0 )
GAME( 1984, roadf, 0, roadf, roadf, hyperspt, ROT90, "Konami", "Road Fighter (set 1)", 0 )
GAME( 1984, roadf2, roadf, roadf, roadf, hyperspt, ROT90, "Konami", "Road Fighter (set 2)", 0 )
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index e90f7ad98ae..78f63488003 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -63,7 +63,7 @@ static WRITE8_HANDLER( questions_bank_w )
memory_set_bank(space->machine, 1, 7);
}
-static WRITE8_HANDLER( hyprolyb_adpcm_w )
+WRITE8_HANDLER( hyprolyb_adpcm_w )
{
soundlatch2_w(space, offset, data);
hyprolyb_adpcm_ready = 0x80;
@@ -244,7 +244,7 @@ static ADDRESS_MAP_START( hyprolyb_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe004, 0xe004) AM_MIRROR(0x1ff8) AM_WRITE(hyprolyb_adpcm_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hyprolyb_adpcm_map, ADDRESS_SPACE_PROGRAM, 8 )
+ADDRESS_MAP_START( hyprolyb_adpcm_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(hyprolyb_adpcm_data_r)
AM_RANGE(0x1001, 0x1001) AM_READ(hyprolyb_adpcm_ready_r)
@@ -682,7 +682,7 @@ static void adpcm_vck_callback(const device_config *device)
hyprolyb_vck_ready = 0x80;
}
-static const msm5205_interface msm5205_config =
+const msm5205_interface hyprolyb_msm5205_config =
{
adpcm_vck_callback, /* VCK function */
MSM5205_S96_4B /* 4 kHz */
@@ -745,7 +745,7 @@ static MACHINE_DRIVER_START( hyprolyb )
MDRV_DEVICE_REMOVE("vlm")
MDRV_SOUND_ADD("msm", MSM5205, 384000)
- MDRV_SOUND_CONFIG(msm5205_config)
+ MDRV_SOUND_CONFIG(hyprolyb_msm5205_config)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_DRIVER_END
diff --git a/src/mame/includes/trackfld.h b/src/mame/includes/trackfld.h
index 38bebfa2dd2..1e9acae9276 100644
--- a/src/mame/includes/trackfld.h
+++ b/src/mame/includes/trackfld.h
@@ -4,6 +4,8 @@
***************************************************************************/
+#include "sound/msm5205.h"
+
/*----------- defined in audio/trackfld.c -----------*/
WRITE8_HANDLER( konami_sh_irqtrigger_w );
@@ -15,6 +17,10 @@ WRITE8_DEVICE_HANDLER( hyperspt_sound_w );
WRITE8_HANDLER( konami_SN76496_latch_w );
WRITE8_DEVICE_HANDLER( konami_SN76496_w );
+/*----------- defined in drivers/trackfld.c -----------*/
+extern const msm5205_interface hyprolyb_msm5205_config;
+extern WRITE8_HANDLER( hyprolyb_adpcm_w );
+ADDRESS_MAP_EXTERN( hyprolyb_adpcm_map, 8 );
/*----------- defined in video/trackfld.c -----------*/
diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c
index 2fb94230dd3..febaa621cdc 100644
--- a/src/mame/mamedriv.c
+++ b/src/mame/mamedriv.c
@@ -5183,6 +5183,7 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
DRIVER( tp84a ) /* GX388 (c) 1984 */
DRIVER( tp84b ) /* GX388 (c) 1984 */
DRIVER( hyperspt ) /* GX330 (c) 1984 + Centuri */
+ DRIVER( hypersptb ) /* bootleg */
DRIVER( hpolym84 ) /* GX330 (c) 1984 */
DRIVER( sbasketb ) /* GX405 (c) 1984 (Version I, Encrypted) */
DRIVER( sbasketh ) /* GX405 (c) 1984 (Version H, Unprotected) */