new NOT WORKING --- TV games, help required to identify architecture of one of them (#4508)

* new NOT WORKING
---
Play TV Buckmasters Huntin' (NTSC) [Sean Riddle, Peter Wilhelmsen]

(gun needs mapping)

* new NOT WORKING
---
Track & Field Challenge [Sean Riddle, Clawgrip]

HELP! can't figure out what architecture this is, need to identify CPU type etc.

* rad_hnt digital controls (nw)

* more digital inputs (nw)

* change CPU type to G65816 based on feedback

* improve notes (nw)
This commit is contained in:
David Haywood 2019-01-13 16:17:23 +00:00 committed by R. Belmont
parent 3d84943f72
commit f339d62a6a
4 changed files with 173 additions and 2 deletions

View File

@ -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",

View File

@ -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 )

View File

@ -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 )

View File

@ -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 //