mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
new WORKING machines (Dora TV Explorer Phone plug+play) + some leapfrog softlists + ekara carts (#7816)
new WORKING machines ------- Dora the Explorer - Dora TV Explorer Phone / Boots's Special Day [Sean Riddle, David Haywood, Kamaal Brown] Namco Classics Vol.1 (3-in-1) (MSI Plug & Play) [Sean Riddle] new NOT WORKING software list additions --------- leapfrog_zippity_cart.xml: The World of Cars - Driven to Learn (500-13589-B) (UK) [David Haywood, TeamEurope] Disney Princess - Magical Movement & Learning (500-13590-A) (UK) [David Haywood, TeamEurope] leapfrog_didj_cart.xml: Super Chicks (USA) [TeamEurope] new software list additions --------- ekara_japan_s.xml: Hello Kitty Special (Japan) (SC0001-KTY) [TeamEurope] ekara_japan_sp.xml: SP-05 Super Cartridge - SP-05 Super Cartridge - TV POP Junior with Chibi Marukochan & Anpanman (Japan) [TeamEurope] ekara_japan_gk.xml: GK-2 - Disney Princess: Princess Debut (Japan) [TeamEurope] GK-3 - Disney Tinkerbell to Tinkle Star Uranai (Japan) [TeamEurope]
This commit is contained in:
parent
589a000679
commit
86c5beb9d9
@ -14,8 +14,8 @@ license:CC0
|
||||
(check what units these are for)
|
||||
|
||||
*GK-1 Detective Conan
|
||||
GK-2 (unknown)
|
||||
GK-3 (seen)
|
||||
*GK-2 Disney Princess: Princess Debut
|
||||
*GK-3 Disney Tinkerbell to Tinkle Star Uranai
|
||||
|
||||
(more? what's the GK highest number?)
|
||||
|
||||
@ -31,5 +31,28 @@ license:CC0
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="gk2">
|
||||
<description>GK-2 - Disney Princess: Princess Debut (Japan)</description>
|
||||
<year>2004</year>
|
||||
<publisher>Takara</publisher>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<feature name="slot" value="rom_24c08_epitch"/> <!-- FIXME: actually 24c04 -->
|
||||
<dataarea name="rom" size="0x200000">
|
||||
<rom name="gk2.u1" size="0x200000" crc="d4413f35" sha1="ef9999422adfea77c7ca4abd4f2f21e75d66be77"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="gk3">
|
||||
<description>GK-3 - Disney Tinkerbell to Tinkle Star Uranai (Japan)</description>
|
||||
<year>2004</year>
|
||||
<publisher>Takara</publisher>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<dataarea name="rom" size="0x200000">
|
||||
<rom name="gk3.u1" size="0x200000" crc="5877877b" sha1="c789b96ffcb3c303d552b236e01fd5fb587df7d3"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
@ -13,7 +13,7 @@ license:CC0
|
||||
|
||||
SAI seems to be used for multiple different series here, need to look at the subtitles too
|
||||
|
||||
S-1 SC0001- Hello Kitty Special
|
||||
S-1 *SC0001-KTY Hello Kitty Special
|
||||
S-2 SC0002-SAI SAI (series 3) Volume 1
|
||||
S-3 *SC0003- Kids' Challenge Volume 1
|
||||
S-4 *SC0004-SAI SAI (series 1) Volume 1
|
||||
@ -43,6 +43,18 @@ license:CC0
|
||||
<!-- Japanese e-kara cartridges SC (Special?) series -->
|
||||
<!-- these have unique presentation -->
|
||||
|
||||
<software name="sc0001">
|
||||
<description>Hello Kitty Special (Japan) (SC0001-KTY)</description>
|
||||
<year>2001</year>
|
||||
<publisher>Takara</publisher>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<dataarea name="rom" size="0x100000">
|
||||
<rom name="01.bin" size="0x100000" crc="0635e39f" sha1="bfe33b0de01e8618abfdd190abf752cee53a6403"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sc0003">
|
||||
<description>Kids' Challenge Volume 1 (Japan) (SC0003-xxx)</description>
|
||||
<year>2001</year>
|
||||
|
@ -26,13 +26,13 @@ license:CC0
|
||||
|
||||
SP-01 (unknown)
|
||||
*SP-02 'Super Cartridge' SP-2
|
||||
*SP-03 'Super Cartridge' SP-3
|
||||
*SP-03 'Super Cartridge' SP-3 TV Pop
|
||||
*SP-04 'Super Cartridge' SP-4
|
||||
SP-05
|
||||
*SP-05 'Super Cartridge' SP-5 TV POP Junior with Chibi Marukochan & Anpanman
|
||||
SP-06 (seen)
|
||||
SP-07 (seen)
|
||||
|
||||
(more? what's the SP highest number?)
|
||||
(more? what's the SP highest number? correct titles for each of these etc.)
|
||||
|
||||
-->
|
||||
|
||||
@ -49,7 +49,7 @@ license:CC0
|
||||
</software>
|
||||
|
||||
<software name="sp03">
|
||||
<description>SP-03 Super Cartridge (Japan)</description>
|
||||
<description>SP-03 Super Cartridge - TV Pop (Japan)</description>
|
||||
<year>2004</year>
|
||||
<publisher>Takara</publisher>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
@ -71,5 +71,17 @@ license:CC0
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="sp05">
|
||||
<description>SP-05 Super Cartridge - TV POP Junior with Chibi Marukochan & Anpanman (Japan)</description>
|
||||
<year>2004</year>
|
||||
<publisher>Takara</publisher>
|
||||
<part name="cart" interface="ekara_cart">
|
||||
<feature name="slot" value="rom_24lc04"/>
|
||||
<dataarea name="rom" size="0x200000">
|
||||
<rom name="sp05.u1" size="0x200000" crc="f5ae63b2" sha1="d471ee862aa2ab790defb57873a10862531fd76b"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
@ -70,4 +70,16 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="schicks" supported="no">
|
||||
<description>Super Chicks (USA)</description>
|
||||
<year>2008</year>
|
||||
<publisher>LeapFrog</publisher>
|
||||
<info name="serial" value="500-13289-B"/>
|
||||
<part name="cart" interface="leapfrog_didj_cart">
|
||||
<dataarea name="rom" size="0x4200000" width="32" endianness="big">
|
||||
<rom loadflag="load16_word_swap" name="500-13289-B - Super Chicks (US).bin" size="0x4200000" crc="852646c5" sha1="17a2dd4cf097481b755c7a40da41a62b4fc2b1b7" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
40
hash/leapfrog_zippity_cart.xml
Normal file
40
hash/leapfrog_zippity_cart.xml
Normal file
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
license:CC0
|
||||
-->
|
||||
|
||||
<!--
|
||||
Not dumped:
|
||||
|
||||
The Princess and the Frog
|
||||
Toy Story 3
|
||||
|
||||
(it also needs confirming if US / UK cartridges are different, dumps are all from UK cartridges)
|
||||
|
||||
-->
|
||||
<softwarelist name="leapfrog_zippity_cart" description="LeapFrog Zippity Cartridges">
|
||||
|
||||
<software name="cars" supported="no">
|
||||
<description>The World of Cars - Driven to Learn (500-13589-B) (UK)</description>
|
||||
<year>2009</year>
|
||||
<publisher>LeapFrog</publisher>
|
||||
<part name="cart" interface="leapfrog_zippity_cart">
|
||||
<dataarea name="rom" size="0x4200000">
|
||||
<rom name="500-13589-B - The World of Cars - Driven to Learn.bin" size="0x4200000" crc="f52e613e" sha1="81da432cbdf6f80ac1a42656978d4027b50e0587" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="disprin" supported="no">
|
||||
<description>Disney Princess - Magical Movement & Learning (500-13590-A) (UK)</description>
|
||||
<year>2009</year>
|
||||
<publisher>LeapFrog</publisher>
|
||||
<part name="cart" interface="leapfrog_zippity_cart">
|
||||
<dataarea name="rom" size="0x4200000">
|
||||
<rom name="500-13590-A - DisneyPrincess - Magical Movement & Learning.bin" size="0x4200000" crc="d060a223" sha1="00f454b629d7bcc7f58a43dd453d410a8ed60a99" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
@ -24,6 +24,9 @@
|
||||
|
||||
#include "cpu/arm7/arm7.h"
|
||||
#include "cpu/arm7/arm7core.h"
|
||||
#include "bus/generic/slot.h"
|
||||
#include "bus/generic/carts.h"
|
||||
#include "softlist.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
@ -41,18 +44,19 @@ public:
|
||||
|
||||
void nand_init840();
|
||||
|
||||
private:
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
void arm_map(address_map &map);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
required_device<screen_device> m_screen;
|
||||
|
||||
uint32_t screen_update_gpl32612(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
private:
|
||||
|
||||
void nand_init(int blocksize, int blocksize_stripped);
|
||||
void copy_block(int i, int blocksize, int blocksize_stripped, uint8_t* nandrom, int dest);
|
||||
void bootstrap();
|
||||
@ -65,6 +69,30 @@ private:
|
||||
uint32_t unk_d0900153_r(offs_t offset, uint32_t mem_mask);
|
||||
};
|
||||
|
||||
|
||||
class generalplus_zippity_game_state : public generalplus_gpl32612_game_state
|
||||
{
|
||||
public:
|
||||
generalplus_zippity_game_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
generalplus_gpl32612_game_state(mconfig, type, tag),
|
||||
m_cart(*this, "cartslot"),
|
||||
m_cart_region(nullptr)
|
||||
{ }
|
||||
|
||||
void zippity(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
|
||||
|
||||
required_device<generic_slot_device> m_cart;
|
||||
memory_region *m_cart_region;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
uint32_t generalplus_gpl32612_game_state::unk_d000003c_r(offs_t offset, uint32_t mem_mask)
|
||||
{
|
||||
return machine().rand();
|
||||
@ -144,7 +172,7 @@ void generalplus_gpl32612_game_state::bootstrap()
|
||||
|
||||
void generalplus_gpl32612_game_state::gpl32612(machine_config &config)
|
||||
{
|
||||
ARM9(config, m_maincpu, 240000000); // unknown core / frequency, but ARM based
|
||||
ARM9(config, m_maincpu, 240'000'000); // unknown core / frequency, but ARM based
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &generalplus_gpl32612_game_state::arm_map);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
@ -157,6 +185,54 @@ void generalplus_gpl32612_game_state::gpl32612(machine_config &config)
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
}
|
||||
|
||||
void generalplus_zippity_game_state::machine_start()
|
||||
{
|
||||
generalplus_gpl32612_game_state::machine_start();
|
||||
|
||||
// if there's a cart, override the standard mapping
|
||||
if (m_cart && m_cart->exists())
|
||||
{
|
||||
m_cart_region = memregion(std::string(m_cart->tag()) + GENERIC_ROM_REGION_TAG);
|
||||
}
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(generalplus_zippity_game_state::cart_load)
|
||||
{
|
||||
uint32_t size = m_cart->common_get_size("rom");
|
||||
|
||||
m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE);
|
||||
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
|
||||
|
||||
return image_init_result::PASS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void generalplus_zippity_game_state::zippity(machine_config &config)
|
||||
{
|
||||
// don't inherit from gpl32612 as in reality this is GPL32300A and could differ
|
||||
|
||||
ARM9(config, m_maincpu, 240'000'000); // unknown core / frequency, but ARM based
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &generalplus_zippity_game_state::arm_map);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_size(320, 262);
|
||||
m_screen->set_visarea(0, 320-1, 0, 240-1);
|
||||
m_screen->set_screen_update(FUNC(generalplus_zippity_game_state::screen_update_gpl32612));
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_zippity_cart");
|
||||
m_cart->set_width(GENERIC_ROM16_WIDTH);
|
||||
m_cart->set_device_load(FUNC(generalplus_zippity_game_state::cart_load));
|
||||
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_zippity_cart");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// NAND dumps, so there will be a bootloader / boot strap at least
|
||||
|
||||
ROM_START( jak_swbstrik )
|
||||
@ -245,6 +321,6 @@ CONS( 200?, jak_prhp, 0, 0, gpl32612, gpl32612, generalplus_gp
|
||||
CONS( 200?, jak_dchp, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, nand_init840, "JAKKS Pacific Inc", "DC Super Heroes The Watchtower Hero Portal", MACHINE_IS_SKELETON )
|
||||
|
||||
// Might not belong here, SoC is marked GPL32300A instead, but is still ARM based, and has GPNAND strings
|
||||
CONS( 201?, zippity, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "LeapFrog", "Zippity (US)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
|
||||
CONS( 201?, zippity, 0, 0, zippity, gpl32612, generalplus_zippity_game_state, empty_init, "LeapFrog", "Zippity (US)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
|
||||
// TODO, check if code differs, or just unused areas of the NAND
|
||||
CONS( 201?, zippityuk, zippity, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "LeapFrog", "Zippity (UK)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
|
||||
CONS( 201?, zippityuk, zippity, 0, zippity, gpl32612, generalplus_zippity_game_state, empty_init, "LeapFrog", "Zippity (UK)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
|
||||
|
@ -324,7 +324,8 @@ static INPUT_PORTS_START( nes_vt09_msi )
|
||||
PORT_START("IO0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("A")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("B")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(1) // doesn't exist?
|
||||
//PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(1) // doesn't exist?
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
|
||||
@ -339,7 +340,8 @@ static INPUT_PORTS_START( nes_vt09_msi_mm2 )
|
||||
PORT_START("IO0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("A")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("B")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(1) // doesn't exist?
|
||||
//PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(1) // doesn't exist?
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
|
||||
@ -371,6 +373,11 @@ ROM_START( msimm2 )
|
||||
ROM_LOAD( "megaman2_s99jl032hbt1_001227e_readas_s29jl032h.bin", 0x00000, 0x400000, CRC(f537a053) SHA1(bd9353df34c0c0ee7d0e5e9808fc36f1a5eecc22) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( msinamco )
|
||||
ROM_REGION( 0x200000, "mainrom", 0 )
|
||||
ROM_LOAD( "msinamco3in1.bin", 0x00000, 0x200000, CRC(c69ad54a) SHA1(f12b9274d827e8a8a8f1bf2646fa426d9f8e6ece) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( msimpac )
|
||||
ROM_REGION( 0x100000, "mainrom", 0 )
|
||||
ROM_LOAD( "mspacman_29dl800ba_000422cb.bin", 0x00000, 0x100000, CRC(c66300e3) SHA1(3fc0bdfbf449d884151f1b581e848243cd2df3a5) )
|
||||
@ -463,6 +470,8 @@ CONS( 2016, msisinv, 0, 0, nes_vt09_1mb, nes_vt09_msi, nes_vt09_state, empt
|
||||
// MSI also issued a version in the original Majesco shell but with the updated case logos and boot logos in the software, the software on that revision might match this one.
|
||||
CONS( 2016, msifrog, 0, 0, nes_vt09_4mb_rasterhack, nes_vt09_msi, nes_vt09_state, empty_init, "MSI / Konami", "Frogger (MSI Plug & Play, white joystick)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // raster timing for need a hack
|
||||
|
||||
CONS( 2018, msinamco, 0, 0, nes_vt09_1mb, nes_vt09_msi, nes_vt09_state, empty_init, "MSI / Bandai Namco", "Namco Classics Vol.1 (3-in-1) (MSI Plug & Play)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// MSI Midway (Joust+Gauntlet 2 + Defender 2) has 2x Globs, rather than Glob + Flash ROM
|
||||
|
||||
// this is VT09 based
|
||||
|
@ -1066,6 +1066,69 @@ static INPUT_PORTS_START( hotwheels )
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
// TODO: work out how to access hidden test mode again
|
||||
static INPUT_PORTS_START( doraphone )
|
||||
PORT_START("P1")
|
||||
PORT_CONFNAME( 0x0070, 0x0060, "On/Off Mode Slider" )
|
||||
PORT_CONFSETTING( 0x0030, "Play Alone (no video)" )
|
||||
PORT_CONFSETTING( 0x0060, "Play on TV" )
|
||||
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("Lift Handset") // this could be done as a toggle, although note, handset being down is treated like a button being held
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_CUSTOM ) // this setting is US NTSC, ACTIVE_LOW gives US PAL (invalid?) no way to switch to non-US?
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_CUSTOM ) // must be 0x0200 or resets over and over
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
|
||||
|
||||
PORT_START("P1_ROW1")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 1") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 4") PORT_CODE(KEYCODE_4_PAD)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 7") PORT_CODE(KEYCODE_7_PAD)
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 'Repeat'") PORT_CODE(KEYCODE_PLUS_PAD)
|
||||
|
||||
PORT_START("P1_ROW2")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 2") PORT_CODE(KEYCODE_2_PAD)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 5") PORT_CODE(KEYCODE_5_PAD)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 8") PORT_CODE(KEYCODE_8_PAD)
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 0") PORT_CODE(KEYCODE_0_PAD)
|
||||
|
||||
PORT_START("P1_ROW3")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 3") PORT_CODE(KEYCODE_3_PAD)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 6") PORT_CODE(KEYCODE_6_PAD)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 9") PORT_CODE(KEYCODE_9_PAD)
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Phone Pad 'Help'") PORT_CODE(KEYCODE_MINUS_PAD)
|
||||
|
||||
PORT_START("P1_ROW4")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("Show Answer") // Not 'answer phone'
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("Enter")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_PLAYER(1) PORT_NAME("Reset")
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_PLAYER(1) PORT_NAME("Hear Dora (non-TV mode only)")
|
||||
|
||||
PORT_START("P1_ROW5")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON12 ) PORT_PLAYER(1) PORT_NAME("Dora The Explorer Logo Button (non-TV mode only)") // manual doesn't list this? speech says 'Dora the Explorer' in alone mode, presumably when you press the logo
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("Exit")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) PORT_NAME("Adventure Mode")
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON11 ) PORT_PLAYER(1) PORT_NAME("Hear Boots (non-TV mode only)")
|
||||
|
||||
PORT_START("P1_ROW6")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("Amusement Park")
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1) PORT_NAME("Quick Play")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("Big Drum Parade")
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME("Banana Grove")
|
||||
|
||||
PORT_START("P2")
|
||||
PORT_BIT( 0xff7f, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) // battery state
|
||||
|
||||
PORT_START("P3")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void spg2xx_game_state::machine_start()
|
||||
{
|
||||
if (m_bank)
|
||||
@ -1709,7 +1772,35 @@ void spg2xx_game_hotwheels_state::hotwheels(machine_config &config)
|
||||
m_screen->set_refresh_hz(50);
|
||||
}
|
||||
|
||||
uint16_t spg2xx_game_doraphone_state::porta_r(offs_t offset, uint16_t mem_mask)
|
||||
{
|
||||
uint16_t matrix = 0x000f;
|
||||
for (int b = 1; 6 >= b; ++b)
|
||||
{
|
||||
if (!BIT(m_portb_data, b))
|
||||
matrix &= m_io_p1_rows[b - 1]->read();
|
||||
}
|
||||
|
||||
return matrix | (m_io_p1->read() & 0xfff0);
|
||||
}
|
||||
|
||||
void spg2xx_game_doraphone_state::portb_w(offs_t offset, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
m_portb_data = data;
|
||||
}
|
||||
|
||||
void spg2xx_game_doraphone_state::doraphone(machine_config &config)
|
||||
{
|
||||
SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_doraphone_state::mem_map_4m);
|
||||
|
||||
spg2xx_base(config);
|
||||
|
||||
m_maincpu->porta_in().set(FUNC(spg2xx_game_doraphone_state::porta_r));
|
||||
m_maincpu->portb_out().set(FUNC(spg2xx_game_doraphone_state::portb_w));
|
||||
m_maincpu->portb_in().set(FUNC(spg2xx_game_doraphone_state::base_portb_r));
|
||||
m_maincpu->portc_in().set(FUNC(spg2xx_game_doraphone_state::base_portc_r));
|
||||
}
|
||||
|
||||
|
||||
ROM_START( rad_skat )
|
||||
@ -1867,6 +1958,12 @@ ROM_START( jouet )
|
||||
ROM_LOAD16_WORD_SWAP( "jouet.bin", 0x000000, 0x400000, CRC(da46097e) SHA1(f760f4d126a8291b7dacdea7a70691b25ad8b989) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( doraphon )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "doraphone.bin", 0x000000, 0x800000, CRC(a79c154b) SHA1(f5b9bf63ea52d058252ab6702508b519fbdee0cc) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( senspeed )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_WORD_SWAP( "speedracer.bin", 0x000000, 0x800000, CRC(4efbcd39) SHA1(2edffbaa9ea309ad308fa60f32d8b7a98ee313c7) )
|
||||
@ -1994,6 +2091,9 @@ CONS( 2009, senwfit, 0, 0, gssytts, senwfit, spg2xx_game_senwfit_s
|
||||
CONS( 2006, vtechtvssp, 0, 0, spg2xx, spg2xx, spg2xx_game_state, empty_init, "VTech", "TV Station (VTech, Spain)", MACHINE_NOT_WORKING )
|
||||
CONS( 2006, vtechtvsgr, 0, 0, spg2xx, spg2xx, spg2xx_game_state, empty_init, "VTech", "TV Learning Station (VTech, Germany)", MACHINE_NOT_WORKING )
|
||||
|
||||
// "Boots's" is used on the title screen and in the manual, even if "Boots'" is usually used outside of this game.
|
||||
CONS( 200?, doraphon, 0, 0, doraphone, doraphone, spg2xx_game_doraphone_state,empty_init, "VTech", "Dora the Explorer - Dora TV Explorer Phone / Boots's Special Day", MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
// ROM checksum fails, but is expecting 0 as a result? shows 'CopyRight' when booting normally? protection?
|
||||
CONS( 200?, jouet, 0, 0, spg2xx, spg2xx, spg2xx_game_state, empty_init, "<unknown>", "10 Jeux Interactifs / Jeux Pour Filles (France)", MACHINE_NOT_WORKING )
|
||||
|
||||
|
@ -335,6 +335,26 @@ private:
|
||||
required_ioport m_io_p1_extra;
|
||||
};
|
||||
|
||||
class spg2xx_game_doraphone_state : public spg2xx_game_state
|
||||
{
|
||||
public:
|
||||
spg2xx_game_doraphone_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
spg2xx_game_state(mconfig, type, tag),
|
||||
m_portb_data(0),
|
||||
m_io_p1_rows(*this, "P1_ROW%u", 1U)
|
||||
{ }
|
||||
|
||||
void doraphone(machine_config &config);
|
||||
|
||||
private:
|
||||
uint16_t porta_r(offs_t offset, uint16_t mem_mask = ~0);
|
||||
|
||||
void portb_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override;
|
||||
uint16_t m_portb_data;
|
||||
|
||||
required_ioport_array<6> m_io_p1_rows;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // MAME_INCLUDES_SPG2XX_H
|
||||
|
@ -32517,6 +32517,7 @@ msiwwea
|
||||
msidd
|
||||
msimpac
|
||||
msimm2
|
||||
msinamco
|
||||
msisinv
|
||||
msifrog
|
||||
rcapnp
|
||||
@ -38511,6 +38512,7 @@ tmntbftc
|
||||
gssytts
|
||||
senwfit
|
||||
jjstrip
|
||||
doraphon // (c) 2006 VTech
|
||||
vtechtvssp // (c) 2006 VTech
|
||||
vtechtvsgr // (c) 2006 VTech
|
||||
tmntmutm
|
||||
|
Loading…
Reference in New Issue
Block a user