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