From 47205de59a6e458c96128974b02828509a3e9f95 Mon Sep 17 00:00:00 2001 From: DavidHaywood <28625134+DavidHaywood@users.noreply.github.com> Date: Fri, 17 Apr 2020 12:12:06 +0100 Subject: [PATCH] new NOT WORKING software list entries ---- leapfrog_didj_cart.xml: Nicktoon Android Invasion (US, 500-13290-B) [Team Europe] there's a skeleton driver too, but it's really nothing but a holder for the Software List as the BIOS isn't yet dumped. --- hash/leapfrog_didj_cart.xml | 20 +++ scripts/target/mame/mess.lua | 1 + src/mame/drivers/magiceyes_pollux_vr3520f.cpp | 118 ++++++++++++++++++ src/mame/mame.lst | 3 + src/mame/mess.flt | 1 + 5 files changed, 143 insertions(+) create mode 100644 hash/leapfrog_didj_cart.xml create mode 100644 src/mame/drivers/magiceyes_pollux_vr3520f.cpp diff --git a/hash/leapfrog_didj_cart.xml b/hash/leapfrog_didj_cart.xml new file mode 100644 index 00000000000..2b6172877a8 --- /dev/null +++ b/hash/leapfrog_didj_cart.xml @@ -0,0 +1,20 @@ + + + + + + + + Nicktoon Android Invasion (US, 500-13290-B) + 200? + LeapFrog + + + + + + + + diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 41feb47b621..d8db9082162 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3961,6 +3961,7 @@ files { MAME_DIR .. "src/mame/drivers/bbl380.cpp", MAME_DIR .. "src/mame/drivers/actions_atj2279b.cpp", MAME_DIR .. "src/mame/drivers/pubint_storyreader.cpp", + MAME_DIR .. "src/mame/drivers/magiceyes_pollux_vr3520f.cpp", } createMESSProjects(_target, _subtarget, "ultimachine") diff --git a/src/mame/drivers/magiceyes_pollux_vr3520f.cpp b/src/mame/drivers/magiceyes_pollux_vr3520f.cpp new file mode 100644 index 00000000000..7b7aeb64da8 --- /dev/null +++ b/src/mame/drivers/magiceyes_pollux_vr3520f.cpp @@ -0,0 +1,118 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/****************************************************************************** + + https://elinux.org/Pollux + + "The Pollux is a System on a Chip (SoC) that was manufactured by MagicEyes, + whose intellectual property is now owned by Core Logic. Originally designed + for LeapFrog as the LF1000, the 533MHz ARM926EJ core VR3520F has now made + its way into several products running WinCE and Linux." + + (there are also links to datasheets etc.) + + used by + Leapfrog Didj (as LF1000) + GP2X Wiz (as VR3520F) + GP2X Caanoo (as VR3520F) + + more? + +*******************************************************************************/ + +#include "emu.h" + +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" +#include "cpu/arm7/arm7.h" + +#include "softlist.h" +#include "speaker.h" +#include "screen.h" + + +class magiceyes_vr3520f_game_state : public driver_device +{ +public: + magiceyes_vr3520f_game_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "arm9") + , m_cart(*this, "cartslot") + { } + + void leapfrog_didj(machine_config &config); + +private: + virtual void machine_start() override; + virtual void machine_reset() override; + + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + + void didj_arm9_map(address_map &map); + + required_device m_maincpu; + optional_device m_cart; +}; + +void magiceyes_vr3520f_game_state::didj_arm9_map(address_map &map) +{ +} + +void magiceyes_vr3520f_game_state::machine_start() +{ +} + +void magiceyes_vr3520f_game_state::machine_reset() +{ +} + +DEVICE_IMAGE_LOAD_MEMBER(magiceyes_vr3520f_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; +} + +static INPUT_PORTS_START( leapfrog_didj ) +INPUT_PORTS_END + + +uint32_t magiceyes_vr3520f_game_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void magiceyes_vr3520f_game_state::leapfrog_didj(machine_config &config) +{ + ARM9(config, m_maincpu, 533000000); // 533 MHz ARM926TEJ (clocked at @ 393 MHz for the Didj?) + m_maincpu->set_addrmap(AS_PROGRAM, &magiceyes_vr3520f_game_state::didj_arm9_map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(magiceyes_vr3520f_game_state::screen_update)); + + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_didj_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(FUNC(magiceyes_vr3520f_game_state::cart_load)); + m_cart->set_must_be_loaded(true); + + SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_didj_cart"); +} + +ROM_START( didj ) + ROM_REGION32_BE( 0x200000, "bios", 0 ) // external BIOS, undumped + ROM_LOAD16_WORD_SWAP( "didjbios.bin", 0x000000, 0x200000, NO_DUMP ) +ROM_END + + +CONS( 2008, didj, 0, 0, leapfrog_didj, leapfrog_didj, magiceyes_vr3520f_game_state, empty_init, "LeapFrog", "Didj", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index ae884cf2e87..ef2143c2acd 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -19670,6 +19670,9 @@ quingo // (c) 1999 Impera belslots // (c) 1999 Impera bigdeal0 // (c) 2001 Impera +@source:magiceyes_pollux_vr3520f.cpp +didj // (c) 2008 Leapfrog + @source:magicfly.cpp 7mezzo // 198? Unknown bchance // 198? Unknown diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 65f3b8f2bcc..21232d9f087 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -489,6 +489,7 @@ m79152pc.cpp mac.cpp mac128.cpp macpci.cpp +magiceyes_pollux_vr3520f.cpp magnum.cpp mattelchess.cpp mbc200.cpp