From 7da2a8feafc4f415bc35168c75a540b1c756022f Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sat, 16 Feb 2019 15:47:51 +0000 Subject: new WORKING machines (JAKKS) (#4640) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * new WORKING machines --- Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 21 external donators] Spider-Man (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 21 external donators] Dora the Explorer - Race to Play Park (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 21 external donators] (previous 'Race to Play Park' was renamed to 'Nursery Rhyme Adventure' last week) new WORKING software list additions --- jakks_gamekey_mv:bcatdoc Black Cat & Doc Ock [Sean Riddle, 21 external donators] * notes (nw) * actually demote jak_pooh for now, one of the minigames is very broken (nw) * give jak_sdoo a menu button (nw) * give default set of inputs a pause / menu button too (nw) * describe problem better, half of the issue is a DRC bug (nw) * new NOT WORKING --- Excite Boxing (Japan) [Sean Riddle, Peter Wilhelmsen] * new WORKING machines --- Nicktoons (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 22 external donators] new WORKING software list entries --- jakks_gamekey_nk:volbird Nicktoons Vollyball & Birdie Putt new NOT WORKING machines --- Dream Life [Sean Riddle] One Piece - Virtual Punching Battle (Japan) [Sean Riddle, Peter Wilhelmsen] * new machines marked as NOT WORKING --- Challenge Ai-chan! Excite Ping Pong (Japan) [Sean Riddle, Peter Wilhelmsen] probably just needs inputs mapping * new NOT WORKING machines --- Play TV Soccer [Sean Riddle, Peter Wilhelmsen] again, needs inputs * new WORKING software list addition --- jakks_gamekey_nk:popsnow Spongebob Sponge Pop & Snowball Showdown (15 AUGUST 2005 D) [Sean Riddle, 22 external donators] * xavix - support global tile flipping * new NOT WORKING software list entries --- monon_color:bigwolf Xǐyángyáng yǔ huītàiláng-juézhàn miē xīng [Peter Wilhelmsen, zhongtiao1] * new NOT WORKING software list additions --- sega_beena_cart:fpc Fresh Pretty Cure [Sean Riddle, Team Europe] --- hash/jakks_gamekey_mv.xml | 19 +++ hash/jakks_gamekey_nk.xml | 24 ++++ hash/monon_color.xml | 48 ++++--- hash/sega_beena_cart.xml | 18 +++ scripts/target/mame/mess.lua | 1 + src/mame/drivers/sega_beena.cpp | 99 ++++++++++++++ src/mame/drivers/vii.cpp | 295 ++++++++++++++++++++++++++++++++-------- src/mame/drivers/xavix.cpp | 33 +++++ src/mame/mame.lst | 12 ++ src/mame/mess.flt | 1 + src/mame/video/xavix.cpp | 4 +- 11 files changed, 479 insertions(+), 75 deletions(-) create mode 100644 hash/jakks_gamekey_mv.xml create mode 100644 hash/sega_beena_cart.xml create mode 100644 src/mame/drivers/sega_beena.cpp diff --git a/hash/jakks_gamekey_mv.xml b/hash/jakks_gamekey_mv.xml new file mode 100644 index 00000000000..7ea23bc8a2e --- /dev/null +++ b/hash/jakks_gamekey_mv.xml @@ -0,0 +1,19 @@ + + + + + + + + Black Cat & Doc Ock + 2005 + JAKKS Pacific / Digital Eclipse + + + + + + + + + diff --git a/hash/jakks_gamekey_nk.xml b/hash/jakks_gamekey_nk.xml index e5df2434a3b..1adcb5f43b4 100644 --- a/hash/jakks_gamekey_nk.xml +++ b/hash/jakks_gamekey_nk.xml @@ -18,4 +18,28 @@ + + Nicktoons Vollyball & Birdie Putt + 2005 + JAKKS Pacific / Handheld Games + + + + + + + + + + Spongebob Sponge Pop & Snowball Showdown (15 AUGUST 2005 D) + 2005 + JAKKS Pacific / HotGen Ltd + + + + + + + + diff --git a/hash/monon_color.xml b/hash/monon_color.xml index 59a5de2ac30..ae0f24f906f 100644 --- a/hash/monon_color.xml +++ b/hash/monon_color.xml @@ -1,6 +1,8 @@ + - + Sài ěr hào: Zhànshén dòu hún 2011 M&D @@ -45,7 +47,7 @@ - + Luòkè wángguó-mófǎ zhèn 2011 M&D @@ -57,7 +59,7 @@ - + Jī jiǎ xuànfēng-gédòu dàshī (set 1) 2011 M&D @@ -69,7 +71,7 @@ - + Jī jiǎ xuànfēng-gédòu dàshī (set 2) 2011 M&D @@ -81,7 +83,7 @@ - + Shén pò-shīluò de yíjī 2011 M&D @@ -93,7 +95,7 @@ - + Sài ěr hào-néngyuán dà zuòzhàn 2011 M&D @@ -105,7 +107,7 @@ - + Gāngtiě xiá-yīngxióng fǎnjí zhàn 2011 M&D @@ -117,7 +119,7 @@ - + Jiāngshī lièrén 2011 M&D @@ -129,7 +131,7 @@ - + Luòkè wángguó-dà màoxiǎn 2011 M&D @@ -141,7 +143,7 @@ - + Luòkè wángguó-bīng zhī lán 2011 M&D @@ -153,7 +155,7 @@ - + Luòkè wángguó-hēi zhī yán 2011 M&D @@ -165,7 +167,7 @@ - + Luòkè wángguó-kǎ pái zhàn jì 2011 M&D @@ -177,7 +179,7 @@ - + Kǎijiǎ yǒngshì dàluàn dòu 2011 M&D @@ -189,7 +191,7 @@ - + Luójí pīn yī pīn 2011 M&D @@ -201,7 +203,19 @@ - + + Xǐyángyáng yǔ huītàiláng-juézhàn miē xīng + 2011 + M&D + + + + + + + + + Lóngzhū-wǔdào dàhuì 2011 M&D @@ -213,7 +227,7 @@ - + Yīngxióng liánméng-zhōngjí gédòu 2011 M&D diff --git a/hash/sega_beena_cart.xml b/hash/sega_beena_cart.xml new file mode 100644 index 00000000000..ed5245bd853 --- /dev/null +++ b/hash/sega_beena_cart.xml @@ -0,0 +1,18 @@ + + + + + + + + Fresh Pretty Cure + 2009 + Sega + + + + + + + + diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index bea7bb2f3c5..964d45835a0 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3025,6 +3025,7 @@ files { MAME_DIR .. "src/mame/includes/megadriv_rad.h", MAME_DIR .. "src/mame/drivers/segapico.cpp", MAME_DIR .. "src/mame/drivers/sega_sawatte.cpp", + MAME_DIR .. "src/mame/drivers/sega_beena.cpp", MAME_DIR .. "src/mame/drivers/segapm.cpp", MAME_DIR .. "src/mame/drivers/sg1000.cpp", MAME_DIR .. "src/mame/includes/sg1000.h", diff --git a/src/mame/drivers/sega_beena.cpp b/src/mame/drivers/sega_beena.cpp new file mode 100644 index 00000000000..21df51c0e72 --- /dev/null +++ b/src/mame/drivers/sega_beena.cpp @@ -0,0 +1,99 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/****************************************************************************** + + Sega Beena + + non-video 'book' based learning system, like LeapPad etc. + + unknown CPU type (inside Sega custom?) + + cartridge ROM has 'edinburgh' in the header, maybe a system codename? + ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4' + as well as .mid files for music + + TODO: component list! + +*******************************************************************************/ + +#include "emu.h" + +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" + +#include "softlist.h" +#include "speaker.h" + +class sega_beena_state : public driver_device +{ +public: + sega_beena_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_cart(*this, "cartslot") + , m_cart_region(nullptr) + { } + + void sega_beena(machine_config &config); + +private: + virtual void machine_start() override; + virtual void machine_reset() override; + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart); + + required_device m_cart; + memory_region *m_cart_region; +}; + +void sega_beena_state::machine_start() +{ + // if there's a cart, override the standard mapping + if (m_cart && m_cart->exists()) + { + std::string region_tag; + m_cart_region = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str()); + } +} + +void sega_beena_state::machine_reset() +{ +} + +DEVICE_IMAGE_LOAD_MEMBER(sega_beena_state, cart) +{ + 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; +} + +static INPUT_PORTS_START( sega_beena ) +INPUT_PORTS_END + + +void sega_beena_state::sega_beena(machine_config &config) +{ + // unknown CPU + + // no screen + + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "sega_beena_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(device_image_load_delegate(&sega_beena_state::device_image_load_cart, this)); + + SOFTWARE_LIST(config, "cart_list").set_original("sega_beena_cart"); +} + +ROM_START( beena ) + ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF ) + // no BIOS or internal to CPU +ROM_END + + +// year, name, parent, compat, machine, input, class, init, company, fullname, flags +CONS( 200?, beena, 0, 0, sega_beena, sega_beena, sega_beena_state, empty_init, "Sega", "Beena", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index 4c9bc958d5a..8e039393e9e 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -13,10 +13,30 @@ Justice League Dora the Explorer Mattel Classic Sports + Disney Princess (GKR) + Wheel of Fortune (GKR) + (all GameKeyReady units?) + + "SunPlus QL8041C" ( known as Sunplus SPG2?? ) + Clickstart ( see clickstart.cpp instead) + Wheel of Fortune 2nd Edition - "SunPlus QL8041C" ( known as Sunplus SPG2?? ) see clickstart.cpp instead "SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead + Classic Arcade Pinball + EA Sports (NHL95 + Madden 95) + + It is unknown if the following are close to this architecture or not (no dumps yet) + + "SunPlus QU7073-P69A" + Mortal Kombat + + "Sunplus QL8167" + Disney Princess (older) + Go Diego Go + + +Disney Princess non-GKR is Sunplus QL8167. Status: @@ -33,12 +53,11 @@ walle: Game seems unhappy with NVRAM, clears contents on each boot. - rad_skat: - Palette issues on the High Score screen. - rad_fb2: - sometimes when selecting QB training camp the sprites don't appear - controls are not properly mapped - vii: + jak_pooh: + In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc) + and the game usually softlocks when you find a friend (with or without DRC) + + vii: When loading a cart from file manager, sometimes MAME will crash. The "MOTOR" option in the diagnostic menu does nothing when selected. The "SPEECH IC" option in the diagnostic menu does nothing when selected. @@ -100,6 +119,7 @@ public: void spg2xx_base(machine_config &config); void spg2xx_basep(machine_config &config); void jakks(machine_config &config); + void jakks_i2c(machine_config &config); void walle(machine_config &config); void wireless60(machine_config &config); void rad_skat(machine_config &config); @@ -174,14 +194,18 @@ public: { } void jakks_gkr(machine_config &config); - void jakks_gkr_1m(machine_config &config); - void jakks_gkr_2m(machine_config &config); + void jakks_gkr_i2c(machine_config &config); + void jakks_gkr_1m_i2c(machine_config &config); + void jakks_gkr_2m_i2c(machine_config &config); void jakks_gkr_nk(machine_config &config); - void jakks_gkr_dy(machine_config &config); - void jakks_gkr_dp(machine_config &config); - void jakks_gkr_sw(machine_config &config); - void jakks_gkr_nm(machine_config &config); - void jakks_gkr_wf(machine_config &config); + void jakks_gkr_nk_i2c(machine_config &config); + void jakks_gkr_dy_i2c(machine_config &config); + void jakks_gkr_dp_i2c(machine_config &config); + void jakks_gkr_sw_i2c(machine_config &config); + void jakks_gkr_nm_i2c(machine_config &config); + void jakks_gkr_wf_i2c(machine_config &config); + void jakks_gkr_mv_i2c(machine_config &config); + void jakks_gkr_wp(machine_config &config); DECLARE_CUSTOM_INPUT_MEMBER(i2c_gkr_r); @@ -349,10 +373,13 @@ WRITE16_MEMBER(jakks_gkr_state::gkr_portc_w) } else { - if (BIT(mem_mask, 1)) - m_i2cmem->write_scl(BIT(data, 1)); - if (BIT(mem_mask, 0)) - m_i2cmem->write_sda(BIT(data, 0)); + if (m_i2cmem) + { + if (BIT(mem_mask, 1)) + m_i2cmem->write_scl(BIT(data, 1)); + if (BIT(mem_mask, 0)) + m_i2cmem->write_sda(BIT(data, 0)); + } } } @@ -488,7 +515,7 @@ static INPUT_PORTS_START( walle ) PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -static INPUT_PORTS_START( jak_sith ) +static INPUT_PORTS_START( jak_sith_i2c ) PORT_START("P1") PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON1 ) @@ -506,7 +533,23 @@ static INPUT_PORTS_START( jak_sith ) PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) INPUT_PORTS_END -static INPUT_PORTS_START( jak_nm ) +static INPUT_PORTS_START( jak_pooh ) + PORT_START("P1") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Menu / Pause") + PORT_BIT( 0xf7df, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("P3") + PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("JOYX") + PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) + + PORT_START("JOYY") + PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) +INPUT_PORTS_END + +static INPUT_PORTS_START( jak_nm_i2c ) PORT_START("P1") PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) @@ -528,7 +571,7 @@ static INPUT_PORTS_START( jak_nm ) PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) INPUT_PORTS_END -static INPUT_PORTS_START( jak_wf ) +static INPUT_PORTS_START( jak_wf_i2c ) PORT_START("P1") PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) @@ -564,9 +607,14 @@ static INPUT_PORTS_START( jak_gkr ) PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON4 ) + PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Menu / Pause") + PORT_BIT( 0x001f, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("P3") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) + PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -614,7 +662,78 @@ static INPUT_PORTS_START( jak_gkr ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END -static INPUT_PORTS_START( jak_disp ) +static INPUT_PORTS_START( jak_sdoo_i2c ) // GameKeyReady units had 2 main buttons, later releases reduced that to 1 button (as the internal games don't require 2 and no GameKeys were released) + PORT_START("P1") + PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED ) // debug input, skips levels! + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED ) // must be low or other inputs don't work? + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Menu / Pause") + PORT_BIT( 0x001f, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("P3") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) // is this correct? doesn't seem to work + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( jak_gkr_i2c ) + PORT_INCLUDE(jak_gkr) + + PORT_MODIFY("P3") + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jakks_gkr_state,i2c_gkr_r, nullptr) +INPUT_PORTS_END + +static INPUT_PORTS_START( jak_disp_i2c ) PORT_START("P1") PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) @@ -1154,11 +1273,14 @@ void spg2xx_game_state::jakks(machine_config &config) m_spg->porta_in().set(FUNC(spg2xx_game_state::jakks_porta_r)); m_spg->porta_out().set(FUNC(spg2xx_game_state::jakks_porta_w)); m_spg->portb_out().set(FUNC(spg2xx_game_state::jakks_portb_w)); +} +void spg2xx_game_state::jakks_i2c(machine_config &config) +{ + jakks(config); I2CMEM(config, m_i2cmem, 0).set_data_size(0x200); } - void jakks_gkr_state::machine_start() { spg2xx_game_state::machine_start(); @@ -1180,27 +1302,34 @@ DEVICE_IMAGE_LOAD_MEMBER(jakks_gkr_state, gamekey_cart) void jakks_gkr_state::jakks_gkr(machine_config &config) { - walle(config); + jakks(config); m_spg->porta_in().set(FUNC(jakks_gkr_state::jakks_porta_key_io_r)); m_spg->porta_out().set(FUNC(jakks_gkr_state::jakks_porta_key_io_w)); - //m_spg->portb_in().set_ioport("P2"); + m_spg->portc_in().set_ioport("P3"); m_spg->portc_out().set(FUNC(jakks_gkr_state::gkr_portc_w)); - m_spg-> set_rowscroll_offset(0); + m_spg->set_rowscroll_offset(0); JAKKS_GAMEKEY_SLOT(config, m_cart, 0, jakks_gamekey, nullptr); } -void jakks_gkr_state::jakks_gkr_1m(machine_config &config) +void jakks_gkr_state::jakks_gkr_i2c(machine_config &config) { jakks_gkr(config); + I2CMEM(config, m_i2cmem, 0).set_data_size(0x200); +} + + +void jakks_gkr_state::jakks_gkr_1m_i2c(machine_config &config) +{ + jakks_gkr_i2c(config); m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); } -void jakks_gkr_state::jakks_gkr_2m(machine_config &config) +void jakks_gkr_state::jakks_gkr_2m_i2c(machine_config &config) { - jakks_gkr(config); + jakks_gkr_i2c(config); m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_2m); } @@ -1211,40 +1340,64 @@ void jakks_gkr_state::jakks_gkr_nk(machine_config &config) SOFTWARE_LIST(config, "jakks_gamekey_nk").set_original("jakks_gamekey_nk"); } -void jakks_gkr_state::jakks_gkr_dy(machine_config &config) +void jakks_gkr_state::jakks_gkr_nk_i2c(machine_config &config) { - jakks_gkr(config); + jakks_gkr_i2c(config); + m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); + SOFTWARE_LIST(config, "jakks_gamekey_nk").set_original("jakks_gamekey_nk"); +} + +void jakks_gkr_state::jakks_gkr_dy_i2c(machine_config &config) +{ + jakks_gkr_i2c(config); m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); SOFTWARE_LIST(config, "jakks_gamekey_dy").set_original("jakks_gamekey_dy"); } -void jakks_gkr_state::jakks_gkr_dp(machine_config &config) +void jakks_gkr_state::jakks_gkr_mv_i2c(machine_config &config) { - jakks_gkr(config); + jakks_gkr_i2c(config); + m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); + SOFTWARE_LIST(config, "jakks_gamekey_mv").set_original("jakks_gamekey_mv"); +} + + +void jakks_gkr_state::jakks_gkr_dp_i2c(machine_config &config) +{ + jakks_gkr_i2c(config); m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); SOFTWARE_LIST(config, "jakks_gamekey_dp").set_original("jakks_gamekey_dp"); } -void jakks_gkr_state::jakks_gkr_sw(machine_config &config) +void jakks_gkr_state::jakks_gkr_sw_i2c(machine_config &config) { - jakks_gkr(config); + jakks_gkr_i2c(config); m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); m_spg->adc_in<0>().set_ioport("JOYX"); m_spg->adc_in<1>().set_ioport("JOYY"); SOFTWARE_LIST(config, "jakks_gamekey_sw").set_original("jakks_gamekey_sw"); } -void jakks_gkr_state::jakks_gkr_nm(machine_config &config) +void jakks_gkr_state::jakks_gkr_wp(machine_config &config) { jakks_gkr(config); m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); + m_spg->adc_in<0>().set_ioport("JOYX"); + m_spg->adc_in<1>().set_ioport("JOYY"); + //SOFTWARE_LIST(config, "jakks_gamekey_wp").set_original("jakks_gamekey_wp"); // NO KEYS RELEASED +} + +void jakks_gkr_state::jakks_gkr_nm_i2c(machine_config &config) +{ + jakks_gkr_i2c(config); + m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); m_spg->adc_in<0>().set_ioport("DIALX"); SOFTWARE_LIST(config, "jakks_gamekey_nm").set_original("jakks_gamekey_nm"); } -void jakks_gkr_state::jakks_gkr_wf(machine_config &config) +void jakks_gkr_state::jakks_gkr_wf_i2c(machine_config &config) { - jakks_gkr(config); + jakks_gkr_i2c(config); m_maincpu->set_addrmap(AS_PROGRAM, &jakks_gkr_state::mem_map_1m); //m_spg->adc_in<0>().set_ioport("DIALX"); // wheel does not seem to map here //m_spg->adc_in<1>().set_ioport("DIALY"); @@ -1263,7 +1416,7 @@ void spg2xx_game_state::lexizeus(machine_config &config) void spg2xx_game_state::walle(machine_config &config) { - jakks(config); + jakks_i2c(config); m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_state::mem_map_2m); m_spg->portc_in().set_ioport("P3"); m_spg->portc_out().set(FUNC(spg2xx_game_state::walle_portc_w)); @@ -1354,6 +1507,28 @@ ROM_START( jak_dora ) ROM_LOAD16_WORD_SWAP( "jakksdoragkr.bin", 0x000000, 0x200000, CRC(bcaa132d) SHA1(3894b980fbc4144731b2a7a94acebb29e30de67c) ) ROM_END +ROM_START( jak_nick ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakksnicktoonsgkr.bin", 0x000000, 0x200000, CRC(4dec1656) SHA1(b3002ab15e75068102f4955a3f0c52fb6d5cda56) ) +ROM_END + +ROM_START( jak_dorr ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakksdora2gkr.bin", 0x000000, 0x200000, CRC(6c09bcd9) SHA1(4bcad79658832f319d16b4f63257e127f6862d79) ) +ROM_END + + +ROM_START( jak_spdm ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakksspidermangkr.bin", 0x000000, 0x200000, CRC(1b2ee700) SHA1(30ea69c489e1238b004f473f972b682e35573138) ) +ROM_END + +ROM_START( jak_pooh ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakkspoohgkr.bin", 0x000000, 0x200000, CRC(0d97df55) SHA1(f108621a83c7b2263dd1531d82311627c3a02002) ) +ROM_END + + ROM_START( jak_wof ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "jakkswheeloffortunegkr.bin", 0x000000, 0x200000, CRC(6a879620) SHA1(95478764a61741569041c2299528f6464651d593) ) @@ -1447,6 +1622,11 @@ ROM_START( mattelcs ) ROM_LOAD16_WORD_SWAP( "mattelclassicsports.bin", 0x000000, 0x100000, CRC(e633e7ad) SHA1(bf3e325a930cf645a7e32195939f3c79c6d35dac) ) ROM_END +ROM_START( dreamlif ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "dreamlife.bin", 0x000000, 0x800000, CRC(632e0237) SHA1(a8586e8a626d75cf7782f13cfd9f1b938af23d56) ) +ROM_END + /* Wireless Air 60 (info provided with dump) @@ -1627,29 +1807,29 @@ CONS( 2008, jak_wall, 0, 0, walle, walle, spg2xx_game_state, empty_init, "JAKKS // 'Game-Key Ready' JAKKS games (these can also take per-game specific expansion cartridges, although not all games had them released) // Some of these were available in versions without Game-Key ports, it is unconfirmed if code was the same unless otherwise stated // For units released AFTER the GameKey promotion was cancelled it appears the code is the same as the PCB inside is the same, just the external port closed off, earlier units might be different hardware in some cases. -CONS( 2005, jak_wwe, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "WWE (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WW (no game-keys released) -CONS( 2005, jak_fan4, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Fantastic Four (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // F4 (no game-keys released) -CONS( 2005, jak_just, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Taniko", "Justice League (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DC (no game-keys released) -CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Nursery Rhyme Adventure (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is pink/purple. -// there is also a Dora the Explorer 'Race to Play Park' which is also a GameKeyReady unit with NK code, and different games - the upper part of this one is blue. -CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management","Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released) -CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready) (17 MAY 2005 A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released) -CONS( 2005, jak_disp, 0, 0, jakks_gkr_dp, jak_disp, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / 5000ft, Inc", "Disney Princess (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DP keys (1 key released) +CONS( 2005, jak_wwe, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "WWE (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WW (no game-keys released) +CONS( 2005, jak_fan4, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Fantastic Four (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // F4 (no game-keys released) +CONS( 2005, jak_just, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Taniko", "Justice League (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DC (no game-keys released) +CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Nursery Rhyme Adventure (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is pink/purple. +CONS( 2005, jak_dorr, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Race to Play Park (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is blue +CONS( 2004, jak_nick, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Nicktoons (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys +CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m_i2c, jak_sdoo_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management", "Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released) +CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready) (17 MAY 2005 A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released) +CONS( 2005, jak_disp, 0, 0, jakks_gkr_dp_i2c, jak_disp_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / 5000ft, Inc", "Disney Princess (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DP keys (1 key released) // There seems to be a second game called 'Disney Princesses' with a 'board game' style front end as well as the minigames, also GKR, see https://www.youtube.com/watch?v=w9p5TI029bQ The one we have is https://www.youtube.com/watch?v=9ppPKVbpoMs the physical package seems identical. -CONS( 2005, jak_sith, 0, 0, jakks_gkr_sw, jak_sith, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Griptonite Games", "Star Wars - Revenge of the Sith (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses SW keys (1 released) -CONS( 2005, jak_dbz, 0, 0, jakks_gkr_1m, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dragon Ball Z (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DB (no game-keys released, 1 in development but cancelled) -CONS( 2005, jak_mpac, 0, 0, jakks_gkr_nm, jak_nm, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man 5-in-1 (Ms. Pac-Man, Pole Position, Galaga, Xevious, Mappy) (JAKKS Pacific TV Game, Game-Key Ready) (07 FEB 2005 A SKU F)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NM (3 keys available [Dig Dug, New Rally-X], [Rally-X, Pac-Man, Bosconian], [Pac-Man, Bosconian]) -CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf, jak_wf, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wheel of Fortune (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses WF keys (no game-keys released) analog wheel not emulated -// There is a 'Second Edition' version of Wheel of Fortune with a Gold case, GameKey port removed, and a '2' over the usual Game Key Ready logo, it is not yet verified to be the same code. +CONS( 2005, jak_sith, 0, 0, jakks_gkr_sw_i2c, jak_sith_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Griptonite Games", "Star Wars - Revenge of the Sith (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses SW keys (1 released) +CONS( 2005, jak_dbz, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dragon Ball Z (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // DB (no game-keys released, 1 in development but cancelled) +CONS( 2005, jak_mpac, 0, 0, jakks_gkr_nm_i2c, jak_nm_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Namco / HotGen Ltd", "Ms. Pac-Man 5-in-1 (Ms. Pac-Man, Pole Position, Galaga, Xevious, Mappy) (JAKKS Pacific TV Game, Game-Key Ready) (07 FEB 2005 A SKU F)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NM (3 keys available [Dig Dug, New Rally-X], [Rally-X, Pac-Man, Bosconian], [Pac-Man, Bosconian]) +CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wheel of Fortune (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses WF keys (no game-keys released) analog wheel not emulated +// There is a 'Second Edition' version of Wheel of Fortune with a Gold case, GameKey port removed, and a '2' over the usual Game Key Ready logo, internals are different too, not Game-Key Ready +CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available) +CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released) -// Nicktoons NK (3 keys available) (same keys as Dora the Explorer) // SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^ -// Spider-Man MV (1 key available) // no keys released for the following, some were in development but cancelled // Capcom 3-in-1 CC (no game-keys released) // Care Bears CB (no game-keys released) -// Winnie the Pooh WP (no game-keys released) // Radica TV games 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 ) @@ -1661,6 +1841,9 @@ CONS( 2007, rad_fb2, 0, 0, rad_skat, rad_fb2, spg2xx_game_state, ini // Mattel games CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, empty_init, "Mattel", "Mattel Classic Sports", MACHINE_IMPERFECT_SOUND ) +// Hasbro games +CONS( 2007, dreamlif, 0, 0, rad_skat, rad_crik, spg2xx_game_state, empty_init, "Hasbro ", "Dream Life", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) + // 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 // could be later model VT based instead? even after decrypting (simple word xor) the vectors have a different format and are at a different location to the SunPlus titles CONS( 2009, zone40, 0, 0, non_spg_base, wirels60, spg2xx_game_state, init_zone40, "Jungle Soft / Ultimate Products (HK) Ltd", "Zone 40", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index 9548702a93d..49c159a94d2 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -1514,6 +1514,17 @@ ROM_START( epo_epp ) ROM_LOAD("excitepingpong.bin", 0x000000, 0x100000, CRC(1fdb9cbd) SHA1(8ed0c1f6d2708ab6e79f0b9553e587c6446e8338) ) ROM_END +ROM_START( epo_epp3 ) + ROM_REGION(0x200000, "bios", ROMREGION_ERASE00) + ROM_LOAD("excitepingpong3.bin", 0x000000, 0x200000, CRC(a2ee8bff) SHA1(6e16dbaac9680e1f311c08e3f573d0cf8708b446)) +ROM_END + +ROM_START( rad_socr ) + ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_LOAD("soccer.u5", 0x000000, 0x100000, CRC(0564a766) SHA1(bded4f2e0d059731164c35de7df62ef411402901) ) + ROM_LOAD("soccer.u4", 0x400000, 0x200000, CRC(e0e2c488) SHA1(907511d945dec51782af268a94b372dfeb7517c5) ) +ROM_END + ROM_START( epo_guru ) ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("gururinworld.bin", 0x000000, 0x400000, CRC(e5ae4523) SHA1(0e39ef8f94203d34e49422081667805f50a339a1) ) @@ -1539,6 +1550,8 @@ ROM_START( ltv_tam ) ROM_LOAD("letstvtamagotchi.bin", 0x000000, 0x400000, CRC(e3723272) SHA1(e72e128a7a24afb96baafe5f13e13a0d74db4033) ) ROM_END + + /* The e-kara cartridges require the BIOS rom to map into 2nd external bus space as they fetch palette data from it etc. @@ -1665,10 +1678,13 @@ CONS( 2006, rad_sbw, 0, 0, xavix, rad_snow, xavix_state, CONS( 2002, rad_bdp, 0, 0, xavix, rad_bdp, xavix_state, init_xavix, "Radica / Mattel / SSD Company LTD", "Barbie Dance Party", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +CONS( 2002, rad_socr, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Radica / Epoch / SSD Company LTD", "Play TV Soccer", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) CONS( 2000, epo_epp, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Ping Pong (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // Excite Ping Pong 2 is from 2003, and there's a 3rd game from 2006 also +CONS( 2006, epo_epp3, 0, 0, xavix, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Challenge Ai-chan! Excite Ping Pong (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) + CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, epo_efdx, xavix_i2c_state, init_epo_efdx, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) CONS( 2005, epo_guru, 0, 0, xavix, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Gururin World (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) @@ -1710,6 +1726,8 @@ CONS( 2006, ltv_tam, 0, 0, xavix_i2c_24lc04, ltv_tam,xavix_i2c_ltv_ these use the SSD 2000 NEC 85605-621 type CPU + XavixPort Golf is "SSD 2003 SuperXaviX MXIC 2003 3009" (not dumped yet, but actually marked as SuperXaviX unlike the others!) + This CPU type adds extra opcodes that don't appear to be present in the 97/98 types It does not appear to support the bitmap modes or 16-bit ROMs found in the 2002 type */ @@ -1719,6 +1737,12 @@ ROM_START( epo_sdb ) ROM_LOAD("superdashball.bin", 0x000000, 0x400000, CRC(a004a764) SHA1(47a96822d4d7d6a0f6be5cd729c3747dbab65979) ) ROM_END +ROM_START( epo_ebox ) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) + ROM_LOAD("exciteboxing.bin", 0x000000, 0x400000, CRC(e25ae4f5) SHA1(7f7b613f0ab8f43f5cad0d13de538921e77cae9c) ) +ROM_END + + ROM_START( ttv_sw ) ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) ROM_LOAD( "jedi.bin", 0x000000, 0x800000, CRC(51cae5fd) SHA1(1ed8d556f31b4182259ca8c766d60c824d8d9744) ) @@ -1739,6 +1763,12 @@ ROM_START( drgqst ) ROM_LOAD( "dragonquest.bin", 0x000000, 0x800000, CRC(3d24413f) SHA1(1677e81cedcf349de7bf091a232dc82c6424efba) ) ROM_END +ROM_START( ban_onep ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00) + ROM_LOAD("onepiece.bin", 0x000000, 0x800000, CRC(c5cb5a5f) SHA1(db85f6cc48d77c5a4967b9b8e2999167e3dfc8c8) ) +ROM_END + +CONS( 2002, epo_ebox, 0, 0, xavix2000_nv, epo_epp, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Boxing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // doesn't use XaviX2000 extra opcodes, but had that type of CPU CONS( 2004, epo_sdb, 0, 0, xavix2000_nv, epo_sdb, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Super Dash Ball (Japan)", MACHINE_IMPERFECT_SOUND ) CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) @@ -1746,6 +1776,9 @@ CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_sta CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_i2c_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c02, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +// hangs after starting a game, or after quite a long time in attract mode (first problem could be bad save data read with the eeprom code, 2nd problem might just be how it is, ends up in a dead loop, not executing invalid code) +CONS( 2004, ban_onep, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Bandai / SSD Company LTD", "One Piece Punch Battle (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) + /* SuperXaviX (XaviX 2002 type CPU) hardware titles (3rd XaviX generation?) these use the SSD 2002 NEC 85054-611 type CPU diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0bf267e5487..c74bcb43f17 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -34203,6 +34203,9 @@ wg3dh // (c) 1996 Atari Games @source:seattlecmp.cpp scp300f // Seattle SCP-300F +@source:sega_beena.cpp +beena // + @source:sega_sawatte.cpp sawatte // @@ -38673,6 +38676,7 @@ jak_wwe // jak_fan4 // jak_just // jak_dora // +jak_dorr // jak_disf // jak_disp // jak_sith // @@ -38680,6 +38684,9 @@ jak_sdoo // jak_dbz // jak_mpac // jak_wof // +jak_spdm // +jak_pooh // +jak_nick // lexizeus // Lexibook vii // KenSingTon / Jungle Soft / Siatronics Vii wrlshunt // Wireless: Hunting Video Game System @@ -38693,6 +38700,7 @@ rad_sktv // rad_crik // rad_fb2 // mattelcs // +dreamlif // @source:vsmile.cpp vsmile // @@ -39843,8 +39851,11 @@ rad_snow // rad_snowp // rad_madf // rad_fb // +rad_socr // epo_epp // +epo_epp3 // epo_efdx // +epo_ebox // epo_sdb // epo_guru // epo_dmon // @@ -39855,6 +39866,7 @@ rad_sbw // rad_bdp // has_wamg // ltv_tam // +ban_onep // ekara // ekaraa // ekaraj // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 53e93e6ce14..88927ee51ea 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -671,6 +671,7 @@ sdk80.cpp sdk85.cpp sdk86.cpp seattlecmp.cpp +sega_beena.cpp sega_sawatte.cpp segapico.cpp segapm.cpp diff --git a/src/mame/video/xavix.cpp b/src/mame/video/xavix.cpp index 751a9f4f48e..289e752a21b 100644 --- a/src/mame/video/xavix.cpp +++ b/src/mame/video/xavix.cpp @@ -372,8 +372,8 @@ void xavix_state::draw_tilemap_line(screen_device &screen, bitmap_ind16 &bitmap, int scrollx = tileregs[0x4]; int basereg; - int flipx = 0; - int flipy = 0; + int flipx = (tileregs[0x03]&0x40)>>6; + int flipy = (tileregs[0x03]&0x80)>>7; int gfxbase; // tile 0 is always skipped, doesn't even point to valid data packets in alt mode -- cgit v1.2.3