summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/trkfldch.cpp140
-rw-r--r--src/mame/drivers/xavix.cpp30
-rw-r--r--src/mame/mame.lst4
4 files changed, 173 insertions, 2 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 9cadfafe6e3..c323d53837e 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3485,6 +3485,7 @@ files {
MAME_DIR .. "src/mame/audio/rad_eu3a05.h",
MAME_DIR .. "src/mame/machine/rad_eu3a05gpio.cpp",
MAME_DIR .. "src/mame/machine/rad_eu3a05gpio.h",
+ MAME_DIR .. "src/mame/drivers/trkfldch.cpp",
MAME_DIR .. "src/mame/drivers/tvgame.cpp",
MAME_DIR .. "src/mame/drivers/vii.cpp",
MAME_DIR .. "src/mame/drivers/xavix.cpp",
diff --git a/src/mame/drivers/trkfldch.cpp b/src/mame/drivers/trkfldch.cpp
new file mode 100644
index 00000000000..0d6b77efbf2
--- /dev/null
+++ b/src/mame/drivers/trkfldch.cpp
@@ -0,0 +1,140 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+/*
+
+Track & Field Challenge TV Game
+https://www.youtube.com/watch?v=wjn1lLylqog
+
+HELP! what type of CPU / SoC is this? seems to be G65816 derived?
+
+*/
+
+#include "emu.h"
+
+#include "cpu/g65816/g65816.h"
+
+#include "emupal.h"
+#include "screen.h"
+#include "speaker.h"
+
+class trkfldch_state : public driver_device
+{
+public:
+ trkfldch_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_screen(*this, "screen"),
+ m_gfxdecode(*this, "gfxdecode")
+ { }
+
+ void trkfldch(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+
+private:
+
+ required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
+ required_device<gfxdecode_device> m_gfxdecode;
+
+ uint32_t screen_update_trkfldch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void trkfldch_map(address_map &map);
+};
+
+void trkfldch_state::video_start()
+{
+}
+
+uint32_t trkfldch_state::screen_update_trkfldch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+void trkfldch_state::trkfldch_map(address_map &map)
+{
+ map(0x8000, 0xbfff).rom().region("maincpu", 0x0000);
+}
+
+static INPUT_PORTS_START( trkfldch )
+INPUT_PORTS_END
+
+// dummy, doesn't appear to be tile based
+static const gfx_layout tiles8x8_layout =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 8,
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ { 0, 8, 16, 24, 32, 40, 48, 56 },
+ { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
+ 64*8
+};
+
+static GFXDECODE_START( gfx_trkfldch )
+ GFXDECODE_ENTRY( "maincpu", 0, tiles8x8_layout, 0, 1 )
+GFXDECODE_END
+
+void trkfldch_state::machine_start()
+{
+}
+
+void trkfldch_state::machine_reset()
+{
+ uint8_t *rom = memregion("maincpu")->base();
+
+ int vector = 0xe;
+
+ /* what appears to be a table of vectors apepars at the START of ROM, maybe this gets copied to RAM, maybe used directly?
+ 0: (invalid)
+ 1: (invalid)
+ 2: 0xA2C6
+ 3: 0xA334
+ 4: 0xA300
+ 5: 0xA2E0
+ 6: 0xA2B9
+ 7: 0xA2ED // possible irq vector pointer, THIS IS NOT THE BOOT CODE!
+ 8: 0xA2D3
+ 9: 0xA327
+ a: 0xA30D
+ b: 0x6000
+ c: 0xA31A
+ d: 0xA2AC
+ e: 0xA341
+ f: (invalid)
+ */
+
+ uint16_t addr = (rom[vector * 2 + 1] << 8) | (rom[vector * 2]);
+
+ m_maincpu->set_state_int(1, addr);
+}
+
+MACHINE_CONFIG_START(trkfldch_state::trkfldch)
+ /* basic machine hardware */
+ G65816(config, m_maincpu, 20000000);
+ //m_maincpu->set_addrmap(AS_DATA, &tv965_state::mem_map);
+ m_maincpu->set_addrmap(AS_PROGRAM, &trkfldch_state::trkfldch_map);
+
+ /* video hardware */
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(320, 240);
+ m_screen->set_visarea(0, 320-1, 0, 240-1);
+ m_screen->set_screen_update(FUNC(trkfldch_state::screen_update_trkfldch));
+ m_screen->set_palette("palette");
+
+
+ GFXDECODE(config, m_gfxdecode, "palette", gfx_trkfldch); // dummy
+ PALETTE(config, "palette").set_format(palette_device::xRGB_444, 0x100).set_endianness(ENDIANNESS_BIG); // dummy
+MACHINE_CONFIG_END
+
+ROM_START( trkfldch )
+ ROM_REGION( 0x400000, "maincpu", 0 )
+ ROM_LOAD( "trackandfield.bin", 0x000000, 0x400000, CRC(f4f1959d) SHA1(344dbfe8df1897adf77da6e5ca0435c4d47d6842) )
+ROM_END
+
+CONS( 2007, trkfldch, 0, 0, trkfldch, trkfldch,trkfldch_state, empty_init, "Konami", "Track & Field Challenge", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index a1a8000ac27..f6017feac52 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -181,9 +181,9 @@
2 e-kara Duet microphone /TAKARA/Japan - - - - - - -
3 e-kara /TAKARA/Japan - - - - - - dumped
4 Let's play ping-pong. Exciting ping-pong /EPOCH/Japan - - - - - - -
- 5 PLAY TV Huntin' Buckmasters /RADICA/USA 8074 x8 none none SSD 98 PA7351-107 have
+ 5 PLAY TV Huntin' Buckmasters /RADICA/USA 8074 x8 none none SSD 98 PA7351-107 dumped
6 PLAY TV Ping Pong /RADICA/USA,HK,EU 8028 x8 48 1M none SSD 97 PA7270-107 dumped
- 7 PLAY TV OPUS /RADICA/USA,EU - - - - - - -
+ 7 PLAY TV OPUS /RADICA/USA,EU - - - - - - dumped (US version, PAL version appears to use different ROM)
8 PLAY TV Baseball 2 /EPOCH/Japan, HK - - - - - - -
9 Let's hit a homerun! Exciting baseball /RADICA/USA,EU 8017 x8 none none SSD 98 PA7351-107 (aka Radica PlayTV Baseball, if so, have)
1999 1 ABC Jungle Fun Hippo /Vteck/HK, USA, France - - - - - - -
@@ -615,6 +615,25 @@ static INPUT_PORTS_START( rad_opus )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start / Bomb") // PI07
INPUT_PORTS_END
+static INPUT_PORTS_START( rad_hnt )
+ PORT_INCLUDE(xavix)
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Menu Next")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Menu Previous")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Menu Select")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Pause / Menu")
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Fire Gun")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Safety") PORT_TOGGLE
+
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // pressing this will turn the game off.
+INPUT_PORTS_END
static INPUT_PORTS_START( rad_crdn )
PORT_INCLUDE(xavix)
@@ -1209,6 +1228,11 @@ ROM_START( rad_opus )
ROM_LOAD("opus.bin", 0x000000, 0x100000, CRC(509df402) SHA1(c5b863670eac8498ddda9dfde91387634cf7aa9f) )
ROM_END
+ROM_START( rad_hnt )
+ ROM_REGION(0x100000, "bios", ROMREGION_ERASE00)
+ ROM_LOAD("huntin1.bin", 0x000000, 0x100000, CRC(e51e250f) SHA1(d72199096d466cd344bb243ef1228e0df9501d00) )
+ROM_END
+
ROM_START( rad_snow )
ROM_REGION(0x100000, "bios", ROMREGION_ERASE00)
ROM_LOAD("snoblu.bin", 0x000000, 0x100000, CRC(593e40b3) SHA1(03483ac39eddd7746470fb60018e704382b0da59) )
@@ -1354,6 +1378,8 @@ CONS( 2000, rad_pingp, rad_ping, 0, xavixp, rad_pingp,xavix_state,
CONS( 2000, rad_opus, 0, 0, xavix_nv, rad_opus, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Opus (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // there is a missing 'TV Static' noise effect when menus appear (box shows 'Play TV' ingame just shows 'Radica:Plug & Play')
// ConnecTV Opus is a different ROM in this case? Game doesn't read from PAL/NTSC flag? (verify it isn't detecting PAL in some other way) ( https://www.youtube.com/watch?v=Ub9tstLEj_0 )
+CONS( 2000, rad_hnt, 0, 0, xavix_nv, rad_hnt, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Buckmasters Huntin' (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // need to map gun (box shows 'Play TV' ingame just shows 'Plug & Play')
+
CONS( 2003, rad_mtrk, 0, 0, xavix_mtrk, rad_mtrk, xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "Play TV Monster Truck (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2003, rad_mtrkp, rad_mtrk, 0, xavix_mtrkp, rad_mtrkp,xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "ConnecTV Monster Truck (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index ba6f6023786..a25fee8fba1 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -37939,6 +37939,9 @@ vs4j // 2004.10 Virtua Striker 4 (Japan) (Rev E)
@source:triplhnt.cpp
triplhnt // 008422-008791 1977/04 [6800]
+@source:trkfldch.cpp
+trkfldch // (c) 2007 Konami
+
@source:trs80.cpp
ht108064 // Hradstechnika Szvetkezet HT-1080Z/64
ht1080z // Hradstechnika Szvetkezet HT-1080Z
@@ -39703,6 +39706,7 @@ rad_boxp //
rad_crdn //
rad_crdnp //
rad_opus //
+rad_hnt //
rad_bass //
rad_bassp //
rad_snow //