New working machine added: Wireless 60 (Jungle Soft / Kids Station Toys Inc) (#2215)

This commit is contained in:
Rebecca G. Bettencourt 2017-04-07 13:11:18 -07:00 committed by Olivier Galibert
parent 199dbb29bc
commit 3a7473a7f4
2 changed files with 97 additions and 10 deletions

View File

@ -36,7 +36,7 @@
D - SPG243 - Wall-E
D - SPG243 - Chintendo / KenSingTon / Siatronics / Jungle Soft Vii
Partial D - SPG200 - V-Tech V-Smile
ND - unknown - Wireless 60
D - SPG243 - Wireless 60
ND - unknown - Wireless Air 60
ND - Likely many more
@ -44,7 +44,7 @@
Similar Systems: ( from http://en.wkikpedia.org/wiki/V.Smile )
- V.Smile by Vtech, a system designed for children under the age of 10
- V.Smile Pocket (2 versions)
- V.SMile Cyber Pocket
- V.Smile Cyber Pocket
- V.Smile PC Pal
- V-Motion Active Learning System
- Leapster
@ -109,7 +109,8 @@ public:
m_p_spriteram(*this, "p_spriteram"),
m_bank(*this, "cart"),
m_bios_rom(*this, "bios"),
m_io_p1(*this, "P1")
m_io_p1(*this, "P1"),
m_io_p2(*this, "P2")
{ }
required_device<cpu_device> m_maincpu;
@ -142,6 +143,7 @@ public:
uint16_t m_io_regs[0x200];
uint16_t m_uart_rx_count;
uint8_t m_controller_input[8];
uint8_t m_w60_controller_input;
uint32_t m_spg243_mode;
emu_timer *m_tmb1;
@ -155,6 +157,7 @@ public:
DECLARE_DRIVER_INIT(walle);
DECLARE_DRIVER_INIT(vii);
DECLARE_DRIVER_INIT(batman);
DECLARE_DRIVER_INIT(wirels60);
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
@ -168,6 +171,7 @@ public:
protected:
optional_memory_region m_bios_rom;
required_ioport m_io_p1;
required_ioport m_io_p2;
memory_region *m_cart_rom;
@ -187,6 +191,7 @@ enum
SPG243_VII = 0,
SPG243_BATMAN,
SPG243_VSMILE,
SPG243_WIRELESS60,
SPG243_MODEL_COUNT
};
@ -640,6 +645,36 @@ void vii_state::do_gpio(uint32_t offset)
{
// TODO: find out how vsmile accesses these GPIO regs!
}
else if (m_spg243_mode == SPG243_WIRELESS60)
{
if(index == 0)
{
switch(what & 0x300)
{
case 0x300:
m_w60_controller_input = -1;
break;
case 0x200:
m_w60_controller_input++;
break;
default:
uint16_t temp1 = m_io_p1->read();
uint16_t temp2 = m_io_p2->read();
uint16_t temp3 = 1 << m_w60_controller_input;
if (temp1 & temp3) what ^= 0x400;
if (temp2 & temp3) what ^= 0x800;
break;
}
}
if(index == 1)
{
uint32_t bank = (what & 7);
switch_bank(bank);
}
}
m_io_regs[5*index + 1] = what;
}
@ -952,6 +987,27 @@ static INPUT_PORTS_START( walle )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("B Button")
INPUT_PORTS_END
static INPUT_PORTS_START( wirels60 )
PORT_START("P1")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_NAME("Joypad Up")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_NAME("Joypad Down")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_NAME("Joypad Left")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_NAME("Joypad Right")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("A Button")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("B Button")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("Menu")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("Start")
PORT_START("P2")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_NAME("Joypad Up")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_NAME("Joypad Down")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_NAME("Joypad Left")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_NAME("Joypad Right")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("A Button")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("B Button")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("Menu")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("Start")
INPUT_PORTS_END
void vii_state::test_centered(uint8_t *ROM)
{
@ -1017,6 +1073,7 @@ void vii_state::machine_start()
m_controller_input[4] = 0;
m_controller_input[6] = 0xff;
m_controller_input[7] = 0;
m_w60_controller_input = -1;
if (m_cart && m_cart->exists())
{
@ -1025,7 +1082,7 @@ void vii_state::machine_start()
m_bank->configure_entries(0, ceilf((float)m_cart_rom->bytes()/0x800000), m_cart_rom->base(), 0x800000 );
m_bank->set_entry(0);
}
else if (m_spg243_mode == SPG243_VII) // Vii bios is banked
else if (m_spg243_mode == SPG243_VII || m_spg243_mode == SPG243_WIRELESS60) // Vii bios is banked
{
m_bank->configure_entries(0, ceilf((float)m_bios_rom->bytes()/0x800000), m_bios_rom->base(), 0x800000 );
m_bank->set_entry(0);
@ -1177,6 +1234,21 @@ static MACHINE_CONFIG_START( batman, vii_state )
MCFG_PALETTE_ADD("palette", 32768)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( wirels60, vii_state )
MCFG_CPU_ADD( "maincpu", UNSP, XTAL_27MHz)
MCFG_CPU_PROGRAM_MAP( vii_mem )
MCFG_CPU_VBLANK_INT_DRIVER("screen", vii_state, vii_vblank)
MCFG_SCREEN_ADD( "screen", RASTER )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii)
MCFG_PALETTE_ADD("palette", 32768)
MACHINE_CONFIG_END
DRIVER_INIT_MEMBER(vii_state,vii)
{
m_spg243_mode = SPG243_VII;
@ -1201,6 +1273,12 @@ DRIVER_INIT_MEMBER(vii_state,walle)
m_centered_coordinates = 0;
}
DRIVER_INIT_MEMBER(vii_state,wirels60)
{
m_spg243_mode = SPG243_WIRELESS60;
m_centered_coordinates = 1;
}
ROM_START( vii )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) /* dummy region for u'nSP */
@ -1230,9 +1308,17 @@ ROM_START( walle )
//ROM_LOAD16_WORD_SWAP( "walle.bin", 0x000000, 0x400000, CRC(6bc90b16) SHA1(184d72de059057aae7800da510fcf05ed1da9ec9))
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
CONS( 2004, batmantv, vii, 0, batman, batman, vii_state, batman, "JAKKS Pacific Inc / HotGen Ltd", "The Batman", MACHINE_NO_SOUND )
CONS( 2005, vsmile, 0, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (Germany)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
CONS( 2005, vsmilef, vsmile, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (France)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
CONS( 2007, vii, 0, 0, vii, vii, vii_state, vii, "Jungle Soft / KenSingTon / Chintendo / Siatronics", "Vii", MACHINE_NO_SOUND )
CONS( 2008, walle, vii, 0, batman, walle, vii_state, walle, "JAKKS Pacific Inc", "Wall-E", MACHINE_NO_SOUND )
ROM_START( wirels60 )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) /* dummy region for u'nSP */
ROM_REGION( 0x4000000, "bios", 0 )
ROM_LOAD( "wirels60.bin", 0x0000, 0x4000000, CRC(b4df8b28) SHA1(00e3da542e4bc14baf4724ad436f66d4c0f65c84))
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
CONS( 2004, batmantv, vii, 0, batman, batman, vii_state, batman, "JAKKS Pacific Inc / HotGen Ltd", "The Batman", MACHINE_NO_SOUND )
CONS( 2005, vsmile, 0, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (Germany)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
CONS( 2005, vsmilef, vsmile, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (France)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
CONS( 2007, vii, 0, 0, vii, vii, vii_state, vii, "Jungle Soft / KenSingTon / Chintendo / Siatronics", "Vii", MACHINE_NO_SOUND )
CONS( 2008, walle, vii, 0, batman, walle, vii_state, walle, "JAKKS Pacific Inc", "Wall-E", MACHINE_NO_SOUND )
CONS( 2010, wirels60, 0, 0, wirels60, wirels60, vii_state, wirels60, "Jungle Soft / Kids Station Toys Inc", "Wireless 60", MACHINE_NO_SOUND )

View File

@ -36878,6 +36878,7 @@ vii // Chintendo / KenSingTon / Jungle Soft / Siatro
vsmile //
vsmilef //
walle //
wirels60 // Wireless 60
@source:vsmilepro.cpp
vsmilpro