summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mamehaze <mamehaze@users.noreply.github.com>2014-11-23 23:36:50 +0000
committer mamehaze <mamehaze@users.noreply.github.com>2014-11-23 23:36:50 +0000
commit6a2f819f508745e47182aad3f521e63b990b2045 (patch)
treec6b3cf14e66430edc19ae8f48a5fe5f7b82d0c20
parent97385f1c060134f698f8993a3e8eaae026c88d8f (diff)
new NOT WORKING
LeapFrog Leapster [Team Europe] (added a single item software list, will add the rest of the items we have shortly - uses ArcTangent A5 cpu, we don't have a core afaik)
-rw-r--r--hash/leapster.xml17
-rw-r--r--src/mess/drivers/leapster.c127
-rw-r--r--src/mess/mess.lst3
-rw-r--r--src/mess/mess.mak1
4 files changed, 148 insertions, 0 deletions
diff --git a/hash/leapster.xml b/hash/leapster.xml
new file mode 100644
index 00000000000..7b4844f7bf5
--- /dev/null
+++ b/hash/leapster.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+
+<softwarelist name="leapster" description="LeapFrog Leapster cartridges">
+
+ <software name="findnemo" supported="no">
+ <description>Findet Nemo (German)</description>
+ <year>2003</year>
+ <publisher>LeapFrog</publisher>
+ <part name="cart" interface="leapster_cart">
+ <dataarea name="rom" size="0x800000">
+ <rom name="500-11495-a - findet nemo (german).bin" size="0x800000" crc="6a5e20ba" sha1="984638e1d9b869611de8900d8f5a6a760cd40539" offset="0x00000" />
+ </dataarea>
+ </part>
+ </software>
+
+</softwarelist>
diff --git a/src/mess/drivers/leapster.c b/src/mess/drivers/leapster.c
new file mode 100644
index 00000000000..3f62035a1c2
--- /dev/null
+++ b/src/mess/drivers/leapster.c
@@ -0,0 +1,127 @@
+/*
+ LeapFrog - Leapster
+
+ educational system from 2003, software is all developed in MXFlash
+
+ hwspecs
+
+
+ CPU:
+ Custom ASIC (ARCTangent 5.1 CPU @ 96MHz)
+
+ Memory:
+ Leapster: 2MB onboard RAM, 256 bytes NVRAM.
+ Leapster2: 16MB RAM, 128kbytes NVRAM
+
+ Media type:
+ Cartridges of 4-16MB with between 2 and 512kb NVRAM
+
+ Graphics:
+ 4Mb ATI chip.
+
+ Audio:
+ Custom
+
+ Screen:
+ 160x160 CSTN with touchscreen.
+
+
+ The Leapster 2 also has
+ USB 1.1 (client only) + full-sized SD slot.
+
+*/
+
+#include "emu.h"
+#include "bus/generic/slot.h"
+#include "bus/generic/carts.h"
+
+
+class leapster_state : public driver_device
+{
+public:
+ leapster_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_cart(*this, "cartslot")
+ { }
+
+
+ virtual void machine_start();
+ virtual void machine_reset();
+
+ UINT32 screen_update_leapster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER(leapster_cart);
+
+protected:
+ required_device<generic_slot_device> m_cart;
+
+ memory_region *m_cart_rom;
+};
+
+
+
+
+static INPUT_PORTS_START( leapster )
+INPUT_PORTS_END
+
+
+
+UINT32 leapster_state::screen_update_leapster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+DEVICE_IMAGE_LOAD_MEMBER( leapster_state, leapster_cart )
+{
+ UINT32 size = m_cart->common_get_size("rom");
+
+ m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
+ m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
+
+ return IMAGE_INIT_PASS;
+}
+
+void leapster_state::machine_start()
+{
+ astring region_tag;
+ m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
+}
+
+void leapster_state::machine_reset()
+{
+}
+
+
+
+static MACHINE_CONFIG_START( leapster, leapster_state )
+ /* basic machine hardware */
+ // CPU is ArcTangent A5
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", LCD)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_SIZE(160, 160)
+ MCFG_SCREEN_VISIBLE_AREA(0, 160-1, 0, 160-1)
+ MCFG_SCREEN_UPDATE_DRIVER(leapster_state, screen_update_leapster)
+
+ /* cartridge */
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "leapster_cart")
+ MCFG_GENERIC_EXTENSIONS("bin")
+ MCFG_GENERIC_LOAD(leapster_state, leapster_cart)
+
+ /* Software lists */
+ MCFG_SOFTWARE_LIST_ADD("cart_list", "leapster")
+MACHINE_CONFIG_END
+
+ROM_START(leapster)
+ ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00)
+ ROM_LOAD( "155-10072-a.bin", 0x00000, 0x200000, CRC(af05e5a0) SHA1(d4468d060543ba7e44785041093bc98bcd9afa07) )
+ROM_END
+
+ROM_START(leapstertv)
+ ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00)
+ ROM_LOAD( "am29pl160cb-90sf.bin", 0x00000, 0x200000, CRC(dc281f1f) SHA1(17588de54ab3bb82801bd5062f3e6aa687412178) )
+ROM_END
+
+
+CONS(2003, leapster, 0, 0, leapster, leapster, driver_device, 0, "LeapFrog", "Leapster (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON )
+CONS(2005, leapstertv, leapster, 0, leapster, leapster, driver_device, 0, "LeapFrog", "Leapster TV (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON )
diff --git a/src/mess/mess.lst b/src/mess/mess.lst
index 9ee0d0128d8..82dc67d530f 100644
--- a/src/mess/mess.lst
+++ b/src/mess/mess.lst
@@ -2555,3 +2555,6 @@ gimix
tecnbras
minicom
gameking
+leapster
+leapstertv
+
diff --git a/src/mess/mess.mak b/src/mess/mess.mak
index cba88e1e541..1a78afa29c0 100644
--- a/src/mess/mess.mak
+++ b/src/mess/mess.mak
@@ -1927,6 +1927,7 @@ $(MESSOBJ)/skeleton.a: \
$(MESS_DRIVERS)/jade.o \
$(MESS_DRIVERS)/jonos.o \
$(MESS_DRIVERS)/konin.o \
+ $(MESS_DRIVERS)/leapster.o \
$(MESS_DRIVERS)/lft.o \
$(MESS_DRIVERS)/lola8a.o \
$(MESS_DRIVERS)/m79152pc.o \