diff options
-rw-r--r-- | scripts/target/mame/mess.lua | 1 | ||||
-rw-r--r-- | src/mame/drivers/trkfldch.cpp | 140 | ||||
-rw-r--r-- | src/mame/drivers/xavix.cpp | 30 | ||||
-rw-r--r-- | src/mame/mame.lst | 4 |
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 // |