summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2019-01-18 18:27:16 +0100
committer MooglyGuy <therealmogminer@gmail.com>2019-01-18 18:27:40 +0100
commitb951f248c1296c07da0241026f9a767c62e2a687 (patch)
tree943fea5fc373618d6bf2683fa042e40a7926093c
parente67d4e2c15fa1b928c716e18a916839ea8eda03e (diff)
-vsmile: Actually fixed vsmile techart and vsmile techartsw, nw
-vii: Added more extensive logging to rad_sktv, nw
-rw-r--r--hash/vsmile_cart.xml2
-rw-r--r--src/devices/machine/spg2xx.cpp6
-rw-r--r--src/mame/drivers/vii.cpp63
-rw-r--r--src/mame/drivers/vsmile.cpp2
4 files changed, 60 insertions, 13 deletions
diff --git a/hash/vsmile_cart.xml b/hash/vsmile_cart.xml
index 06da389ca49..1d60db5ef70 100644
--- a/hash/vsmile_cart.xml
+++ b/hash/vsmile_cart.xml
@@ -2254,7 +2254,7 @@ Game cartridges
<publisher>VTech</publisher>
<info name="serial" value="80-067021(SE)" />
<part name="cart" interface="vsmile_cart">
- <feature name="slot" value="vsmile_rom" />
+ <feature name="slot" value="vsmile_ram" />
<feature name="pcb" value="67000C" />
<feature name="pcb_model" value="67000C-2" />
<feature name="cart_type" value="yellow" />
diff --git a/src/devices/machine/spg2xx.cpp b/src/devices/machine/spg2xx.cpp
index 8115be0da32..28c34103492 100644
--- a/src/devices/machine/spg2xx.cpp
+++ b/src/devices/machine/spg2xx.cpp
@@ -1081,8 +1081,12 @@ READ16_MEMBER(spg2xx_device::io_r)
LOGMASKED(LOG_SEGMENT, "io_r: Data Segment = %04x\n", val);
break;
+ case 0x30: // UART Control
+ LOGMASKED(LOG_UART, "%s: io_r: UART Control = %04x\n", machine().describe_context(), val);
+ break;
+
case 0x31: // UART Status
- LOGMASKED(LOG_UART, "%s: io_r: UART Status = %04x\n", machine().describe_context(), val);
+ //LOGMASKED(LOG_UART, "%s: io_r: UART Status = %04x\n", machine().describe_context(), val);
break;
case 0x36: // UART RX Data
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp
index cc7c2a1f0f0..e19ab6c1d64 100644
--- a/src/mame/drivers/vii.cpp
+++ b/src/mame/drivers/vii.cpp
@@ -12,12 +12,12 @@
Fantastic 4
Justice League
Dora the Explorer
- Mattel Classic Sports
+ Mattel Classic Sports
- "SunPlus QL8041C" ( known as Sunplus SPG2?? ) see clickstart.cpp instead
+ "SunPlus QL8041C" ( known as Sunplus SPG2?? ) see clickstart.cpp instead
"SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead
-
+
Status:
Mostly working
@@ -101,6 +101,7 @@ public:
void wireless60(machine_config &config);
void rad_skat(machine_config &config);
void rad_skatp(machine_config &config);
+ void rad_sktv(machine_config &config);
void rad_crik(machine_config &config);
void non_spg_base(machine_config &config);
@@ -122,6 +123,10 @@ protected:
DECLARE_WRITE16_MEMBER(wireless60_portb_w);
DECLARE_READ16_MEMBER(wireless60_porta_r);
+ DECLARE_READ16_MEMBER(rad_porta_r);
+ DECLARE_READ16_MEMBER(rad_portb_r);
+ DECLARE_READ16_MEMBER(rad_portc_r);
+
required_device<unsp_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<spg2xx_device> m_spg;
@@ -302,6 +307,27 @@ READ16_MEMBER(spg2xx_game_state::jakks_porta_r)
return m_io_p1->read();
}
+READ16_MEMBER(spg2xx_game_state::rad_porta_r)
+{
+ uint16_t data = m_io_p1->read();
+ logerror("Port A Read: %04x\n", data);
+ return data;
+}
+
+READ16_MEMBER(spg2xx_game_state::rad_portb_r)
+{
+ uint16_t data = m_io_p2->read();
+ logerror("Port B Read: %04x\n", data);
+ return data;
+}
+
+READ16_MEMBER(spg2xx_game_state::rad_portc_r)
+{
+ uint16_t data = m_io_p3->read();
+ logerror("Port C Read: %04x\n", data);
+ return data;
+}
+
void spg2xx_game_state::mem_map(address_map &map)
{
map(0x000000, 0x3fffff).bankr("cartbank");
@@ -563,6 +589,9 @@ static INPUT_PORTS_START( rad_sktv )
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+
+ PORT_START("P3")
+ PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( mattelcs ) // there is a 'secret test mode' that previously got activated before inputs were mapped, might need unused inputs to active? there also needs to be 'difficult' selection somewhere
@@ -579,7 +608,7 @@ static INPUT_PORTS_START( mattelcs ) // there is a 'secret test mode' that previ
PORT_DIPSETTING( 0x0010, "Basketball (Middle)" )
PORT_DIPSETTING( 0x0000, "Football (Right)" )
// no 4th position possible
- PORT_BIT( 0xffe0, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0xffe0, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("P2")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Joypad Up")
@@ -587,13 +616,13 @@ static INPUT_PORTS_START( mattelcs ) // there is a 'secret test mode' that previ
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Joypad Left")
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("Joypad Right")
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Sound") // toggles between sound+music, sound only, and no sound
- PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hike / Pitch")
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Shoot / Run")
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Kick / Hit")
- PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hike / Pitch")
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Shoot / Run")
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Kick / Hit")
+ PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("P3")
- PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
/* hold 'Console Down' while powering up to get the test menu, including input tests
@@ -875,6 +904,20 @@ void spg2xx_game_state::rad_skatp(machine_config &config)
m_spg->set_pal(true);
}
+void spg2xx_game_state::rad_sktv(machine_config &config)
+{
+ SPG24X(config, m_spg, XTAL(27'000'000), m_maincpu, m_screen);
+ spg2xx_base(config);
+
+ m_spg->porta_in().set(FUNC(spg2xx_game_state::rad_porta_r));
+ m_spg->portb_in().set(FUNC(spg2xx_game_state::rad_portb_r));
+ m_spg->portc_in().set(FUNC(spg2xx_game_state::rad_portc_r));
+ m_spg->eeprom_w().set(FUNC(spg2xx_game_state::eeprom_w));
+ m_spg->eeprom_r().set(FUNC(spg2xx_game_state::eeprom_r));
+
+ NVRAM(config, m_nvram, nvram_device::DEFAULT_ALL_1);
+}
+
void spg2xx_game_state::rad_crik(machine_config &config)
{
SPG28X(config, m_spg, XTAL(27'000'000), m_maincpu, m_screen);
@@ -1146,7 +1189,7 @@ CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr,jakks_gkr_state, empty_init, "
CONS( 2006, rad_skat, 0, 0, rad_skat, rad_skat, spg2xx_game_state, init_crc, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
CONS( 2006, rad_skatp, rad_skat, 0, rad_skatp,rad_skatp, spg2xx_game_state, init_crc, "Radica", "Connectv Skateboarder (PAL)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
CONS( 2006, rad_crik, 0, 0, rad_crik, rad_crik, spg2xx_game_state, init_crc, "Radica", "Connectv Cricket (PAL)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // Version 3.00 20/03/06 is listed in INTERNAL TEST
-CONS( 2007, rad_sktv, 0, 0, rad_skat, rad_sktv, spg2xx_game_state, init_crc, "Radica", "Skannerz TV", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+CONS( 2007, rad_sktv, 0, 0, rad_sktv, rad_sktv, spg2xx_game_state, init_crc, "Radica", "Skannerz TV", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
CONS( 2007, rad_fb2, 0, 0, rad_skat, rad_fb2, spg2xx_game_state, init_crc, "Radica", "Play TV Football 2", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
// Mattel games
diff --git a/src/mame/drivers/vsmile.cpp b/src/mame/drivers/vsmile.cpp
index bbdf616edc2..8fe97323b80 100644
--- a/src/mame/drivers/vsmile.cpp
+++ b/src/mame/drivers/vsmile.cpp
@@ -412,7 +412,7 @@ void vsmile_state::banked_map(address_map &map)
map(0x1800000, 0x18fffff).rw(m_cart, FUNC(vsmile_cart_slot_device::bank0_r), FUNC(vsmile_cart_slot_device::bank0_w));
map(0x1900000, 0x19fffff).rw(m_cart, FUNC(vsmile_cart_slot_device::bank1_r), FUNC(vsmile_cart_slot_device::bank1_w));
- map(0x1a00000, 0x1afffff).r(m_cart, FUNC(vsmile_cart_slot_device::bank2_r));
+ map(0x1a00000, 0x1afffff).rw(m_cart, FUNC(vsmile_cart_slot_device::bank2_r), FUNC(vsmile_cart_slot_device::bank2_w));
map(0x1b00000, 0x1bfffff).r(FUNC(vsmile_state::bank3_r));
}