mirror of
https://github.com/holub/mame
synced 2025-07-03 09:06:08 +03:00
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:
parent
3d84943f72
commit
f339d62a6a
@ -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",
|
||||
|
140
src/mame/drivers/trkfldch.cpp
Normal file
140
src/mame/drivers/trkfldch.cpp
Normal 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 )
|
||||
|
@ -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 )
|
||||
|
||||
|
@ -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 //
|
||||
|
Loading…
Reference in New Issue
Block a user