summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/vii.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/vii.cpp')
-rw-r--r--src/mame/drivers/vii.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp
index 281881397d0..463816ef72c 100644
--- a/src/mame/drivers/vii.cpp
+++ b/src/mame/drivers/vii.cpp
@@ -136,6 +136,7 @@ public:
DECLARE_DRIVER_INIT(batman);
DECLARE_DRIVER_INIT(wirels60);
DECLARE_DRIVER_INIT(rad_skat);
+ DECLARE_DRIVER_INIT(rad_crik);
uint32_t screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -207,6 +208,10 @@ private:
required_ioport m_io_p1;
optional_ioport m_io_p2;
optional_ioport m_io_p3;
+
+ // temp hack
+ DECLARE_READ16_MEMBER(rad_crik_hack_r);
+
protected:
required_memory_bank m_bank;
};
@@ -1122,7 +1127,24 @@ static INPUT_PORTS_START( rad_skatp )
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_SPECIAL )
INPUT_PORTS_END
+/* hold 'Console Down' while powering up to get the test menu, including input tests
+ the ball (Wired) and bat (IR) are read some other way as they don't seem to appear in the ports. */
+static INPUT_PORTS_START( rad_crik )
+ PORT_START("P1")
+ PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Console Enter") // these are the controls on the base unit
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("Console Down")
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("Console Left")
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("Console Right")
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("Console Up")
+ PORT_BIT( 0xf800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("P2")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_START("P3")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
void spg2xx_game_state::test_centered(uint8_t *ROM)
{
@@ -1359,6 +1381,26 @@ DRIVER_INIT_MEMBER(spg2xx_game_state, rad_skat)
m_centered_coordinates = 1;
}
+READ16_MEMBER(spg2xx_game_state::rad_crik_hack_r)
+{
+ int pc = m_maincpu->state_int(UNSP_PC);
+ if (pc == 0xf851)
+ return 0xf859;
+ else
+ return 0xf854;
+}
+
+DRIVER_INIT_MEMBER(spg2xx_game_state, rad_crik)
+{
+ m_maincpu->space(AS_PROGRAM).install_writeonly(0x5800, 0x5bff, m_p_spriteram); // is this due to a CPU or DMA bug? 5800 == 2c00 << 1
+
+ // not 100% sure what this is waiting on, could be eeprom as it seems to end up here frequently during the eeprom test, patch running code, not ROM, so that checksum can still pass
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf851, 0xf851, read16_delegate(FUNC(spg2xx_game_state::rad_crik_hack_r),this));
+
+ m_vii_io_rw = vii_io_rw_delegate(&spg2xx_game_state::do_spg240_rad_skat_io, this);
+ m_centered_coordinates = 1;
+}
+
DRIVER_INIT_MEMBER(spg2xx_game_state, walle)
{
m_vii_io_rw = vii_io_rw_delegate(&spg2xx_game_state::do_spg243_batman_io, this);
@@ -1433,6 +1475,11 @@ ROM_START( rad_skatp ) // rom was dumped from the NTSC version, but region comes
ROM_LOAD16_WORD_SWAP( "skateboarder.bin", 0x000000, 0x400000, CRC(08b9ab91) SHA1(6665edc4740804956136c68065890925a144626b) )
ROM_END
+ROM_START( rad_crik ) // only released in EU?
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD16_WORD_SWAP( "cricket.bin", 0x000000, 0x200000, CRC(6fa0aaa9) SHA1(210d2d4f542181f59127ce2f516d0408dc6de7a8) )
+ROM_END
+
/*
Wireless Air 60
(info provided with dump)
@@ -1564,6 +1611,8 @@ CONS( 2008, walle, 0, 0, batman, walle, spg2xx_game_sta
CONS( 2006, rad_skat, 0, 0, spg2xx_base, rad_skat, spg2xx_game_state, rad_skat, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
CONS( 2006, rad_skatp, rad_skat,0, spg2xx_basep,rad_skatp,spg2xx_game_state, rad_skat, "Radica", "Connectv Skateboarder (PAL)", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+CONS( 2006, rad_crik, 0, 0, spg2xx_basep,rad_crik, spg2xx_game_state, rad_crik, "Radica", "Connectv Cricket (PAL)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // Version 3.00 20/03/06 is listed in INTERNAL TEST
+
// might not fit here. First 0x8000 bytes are blank (not too uncommon for these) then rest of rom looks like it's probably encrypted at least
CONS( 2009, zone40, 0, 0, spg2xx_base, wirels60, spg2xx_game_state, wirels60, "Jungle Soft / Ultimate Products (HK) Ltd", "Zone 40", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
// might not fit here, NAND dump, has internal bootstrap at least, see above.