summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/leapster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/leapster.cpp')
-rw-r--r--src/mame/drivers/leapster.cpp29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp
index 3456be99658..a3225fd5313 100644
--- a/src/mame/drivers/leapster.cpp
+++ b/src/mame/drivers/leapster.cpp
@@ -291,7 +291,7 @@ void leapster_state::machine_reset()
}
static ADDRESS_MAP_START( leapster_map, AS_PROGRAM, 32, leapster_state )
- AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_MIRROR(0x40000000) // pointers in the bios region seem to be to the 40xxxxxx region, either we mirror there or something (real bios?) is acutally missing
+ AM_RANGE(0x00000000, 0x007fffff) AM_ROM AM_MIRROR(0x40000000) // pointers in the bios region seem to be to the 40xxxxxx region, either we mirror there or something (real bios?) is acutally missing
AM_RANGE(0x0180D800, 0x0180D803) AM_READ(leapster_random_r)
AM_RANGE(0x03000000, 0x030007ff) AM_RAM // puts stack here, writes a pointer @ 0x03000000 on startup
AM_RANGE(0x3c000000, 0x3c1fffff) AM_RAM // really ram, or has our code execution gone wrong?
@@ -325,19 +325,34 @@ MACHINE_CONFIG_START(leapster_state::leapster)
MCFG_SOFTWARE_LIST_ADD("cart_list", "leapster")
MACHINE_CONFIG_END
+#define ROM_LOAD_BIOS(bios,name,offset,length,hash) \
+ ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios+1)) /* Note '+1' */
+
+/* There are various build dates and revisions for different parts of the code, the date listed is the newest on in each rom.
+ This is always in the same place relative to the rest of the data
+
+ V2.1 sets (except TV) are apparently larger because "Learning with Leap" was built in
+*/
+
ROM_START(leapster)
- ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00)
- ROM_LOAD( "155-10072-a.bin", 0x00000, 0x200000, CRC(af05e5a0) SHA1(d4468d060543ba7e44785041093bc98bcd9afa07) )
+ ROM_REGION(0x800000, "maincpu", ROMREGION_ERASE00)
+ ROM_SYSTEM_BIOS( 0, "uni15", "Universal 1.5" ) /* 152-10346 Leapster BaseROM Universal v1.5 - Sep 04 2003 10:46:47 */
+ ROM_LOAD_BIOS( 0, "155-10072-a.bin" , 0x00000, 0x200000, CRC(af05e5a0) SHA1(d4468d060543ba7e44785041093bc98bcd9afa07) )
+ ROM_SYSTEM_BIOS( 1, "uk21", "UK 2.1" ) /* 152-11452 Leapster BaseROM UK v2.1 - Aug 30 2005 16:01:46 */
+ ROM_LOAD_BIOS( 1, "leapster2_1004.bin", 0x00000, 0x800000, CRC(b466e14d) SHA1(910c234f03e76b7de55b8aa0a0c62fd1daae4910) )
+ ROM_SYSTEM_BIOS( 2, "ger21", "German 2.1" ) /* 152-11435 Leapster BaseROM German v2.1 - Oct 21 2005 18:53:59 */
+ ROM_LOAD_BIOS( 2, "leapster2_1006.bin", 0x00000, 0x800000, CRC(a69ed8ca) SHA1(e6aacba0c39b1465f344c2b07ff1cbd8a395adac) )
ROM_END
ROM_START(leapstertv)
- ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00)
- ROM_LOAD( "am29pl160cb-90sf.bin", 0x00000, 0x200000, CRC(194cc724) SHA1(000a79d75c19f2e43532ce0b31f0dca0bed49eab) )
+ ROM_REGION(0x800000, "maincpu", ROMREGION_ERASE00)
+ ROM_SYSTEM_BIOS( 0, "uni2111", "Universal 2.1.11" ) /* 152-11594 LeapsterTv Baserom Universal.v2.1.11 - Apr 13 2006 16:36:08 */ \
+ ROM_LOAD_BIOS( 0, "am29pl160cb-90sf.bin", 0x00000, 0x200000, CRC(194cc724) SHA1(000a79d75c19f2e43532ce0b31f0dca0bed49eab) )
ROM_END
DRIVER_INIT_MEMBER(leapster_state,leapster)
{
}
-CONS( 2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", MACHINE_IS_SKELETON )
-CONS( 2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV (Germany)", MACHINE_IS_SKELETON )
+CONS( 2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster", MACHINE_IS_SKELETON )
+CONS( 2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV", MACHINE_IS_SKELETON )