summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/lindbergh.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/lindbergh.c')
-rw-r--r--src/mame/drivers/lindbergh.c245
1 files changed, 222 insertions, 23 deletions
diff --git a/src/mame/drivers/lindbergh.c b/src/mame/drivers/lindbergh.c
index 11f90232ae0..5fdee6a3dcf 100644
--- a/src/mame/drivers/lindbergh.c
+++ b/src/mame/drivers/lindbergh.c
@@ -24,13 +24,47 @@ The familiar PIC is still present on the back of the system and likely decrypts
On this red box the CPU is a Celeron D at 2.8GHz. RAM is 512M DDR PC3200
The box has Sega number 845-0001D-02
+
+Security
+--------
+
+The security seems to work in multiple steps. The information there
+is a combination of our research and things found on the internet.
+
+- At boot, the bios unlocks the CF card through an IDE 0x82 command
+ with a currently unknown key. There is also a hardware heartbeat
+ signal on the IDE bus to avoid hotswapping.
+
+- The system boots on the CF which holds a customized Montavista linux.
+
+- The CF system can either install the game (from the DVD) or start it (on the HD)
+
+- The DVD is decrypted (probably on-the-fly with aesloop) using a
+ fixed system key (all the dvd images start identically).
+
+- The PIC includes an AES-CBC engine and has as data an IV, a key,
+ some game-specific identification information, and two pre and
+ post-whitening values. Everything but the key is dumpable through
+ commands, but the key seems well-protected. It's not realistic to
+ decrypt very large amounts of data through it though, the bandwidth
+ would be way too low.
+
+- The HD is probably unlocked by the CF and bootstrap code is
+ decrypted through the PIC. That code in turn loop-decrypts/mounts all the
+ data needed from the partition (probably /usr, /X11R6 and /home).
+
+Currently, we do not have access to the CF image, making it impossible
+to do a complete boot/install.
+
+
Lindbergh Game List
-------------------
Security
Game Dongle Sticker PIC Number DVD Code
------------------------------------------------------------------------------------------
- 2 Spicy 253-5508-0491 317-0491-COM DVP-0027A
+*2 Spicy 253-5508-0491 317-0491-COM DVP-0027A
After Burner Climax (EXPORT) 253-5508-0440A ^317-0440-COM DVP-0009
+ After Burner Climax CE ? ? DVP-0031A
Ami-Gyo ? ? ?
Answer X Answer ? ? ?
Answer X Answer 1.1 ? ? ?
@@ -40,28 +74,41 @@ Game Dongle Sticker PIC Number
Club Majesty Formal ? ? ?
Derby Owners Club 2008: Feel the Rush ? ? DVP-0047A
Derby Owners Club 2008: Feel the Rush V2.0 ? ? ?
- Ghost Squad Evolution ? ? ?
+*Ghost Squad Evolution ? ? ?
Harley Davidson: King of the Road ? ? ?
Hummer Extreme ? ? ?
Initial D Arcade Stage 4 ? ? DVP-0019
- Initial D Arcade Stage 4 (rev B) 253-5508-0486E 317-0486-COM DVP-0030B
-*Initial D Arcade Stage 4 (rev C) 253-5508-0486E 317-0486-COM DVP-0030C
-*Initial D Arcade Stage 4 (rev D) 253-5508-0486E 317-0486-COM DVP-0030D
+ Initial D Arcade Stage 4 (rev A) ? ? DVP-0019A
+ Initial D Arcade Stage 4 (rev B) ? ? DVP-0019B
+ Initial D Arcade Stage 4 (rev D) ? ? DVP-0019D
+ Initial D Arcade Stage 4 (rev G) ? ? DVP-0019G
+ Initial D4 ? ? DVP-0030
+ Initial D4 (rev B) 253-5508-0486E 317-0486-COM DVP-0030B
+*Initial D4 (rev C) 253-5508-0486E 317-0486-COM DVP-0030C
+*Initial D4 (rev D) 253-5508-0486E 317-0486-COM DVP-0030D
Initial D Arcade Stage 5 ? ? ?
Let's Go Jungle (EXPORT) 253-5508-0442 317-0442-COM DVP-0011
MJ4 ? ? ?
- Outrun 2 Special Tours (EXPORT) 253-5508-0452 317-0452-COM ?
- Primeval Hunt ? ? DVP-0048A
+ OutRun 2 Special Tours (EXPORT) 253-5508-0452 317-0452-COM ?
+ OutRun 2 SP SDX ? ? DVP-0015A
+*Primeval Hunt 253-5508-0512 317-0512-COM DVP-0048A
R-Tuned: Ultimate Street Racing ? ? DVP-0060
*Rambo (EXPORT) 253-5508-0540 ^317-0540-COM DVP-0069
-*Sega Race TV (EXPORT) 253-5508-0504 ^317-0504-COM DVP-0044
+ SEGA Network Taisen Mahjong MJ4 (rev A) ? ? DVP-0049A
+ SEGA Network Taisen Mahjong MJ4 (rev F) ? ? DVP-0049F
+ SEGA Network Taisen Mahjong MJ4 (rev G) ? ? DVP-0049G
+*SEGA-Race TV (EXPORT) 253-5508-0504 ^317-0504-COM DVP-0044
+ StarHorse 2: Fifth Expansion (rev D) ? ? DVP-0082D
+ StarHorse 2: Fifth Expansion (rev E) ? ? DVP-0082E
*The House Of The Dead 4 (EXPORT) 253-5508-0427 ^317-0427-COM DVP-0003A
The House Of The Dead EX (JAPAN) 253-5508-0550 ^317-0550-JPN ?
The House Of the Dead 4 Special ? ? ?
- Virtua Fighter 5 (EXPORT) 253-5508-0438 317-0438-COM ?
+*VBIOS Update ? ? DVP-0021B
+ VBIOS Update [For VTF] ? ? DVP-0023A
+ Virtua Fighter 5 (EXPORT) 253-5508-0438 317-0438-COM DVP-0008E
+ Virtua Tennis 3 (Power Smash 3) ? ? DVP-0005
Virtua Tennis 3 (Power Smash 3) (EXPORT) 253-5508-0434 ^317-0434-COM DVP-0005A
*Virtua Tennis 3 (JAPAN) 253-5508-0506 317-0506-JPN DVP-0005C
-*VBIOS Update ? ? DVP-0021B
WCC Football Intercontinental Clubs 2006-2007 ? ? ?
WCC Football Intercontinental Clubs 2007-2008 ? ? ?
WCC Football Intercontinental Clubs 2008-2009 ? ? ?
@@ -134,7 +181,8 @@ Notes:
P/N: 0A30209 BA17730E6B
Serial: EETNGM0G
CF SLOT - Accepts a compact flash card. The card is required to boot the system.
- Revision C and E have been seen. There may be other revisions out there.
+ Revision C and E have been seen. StarHorse 2 has it's own special card.
+ There may be other revisions out there.
Sticker: LINDBERGH
MDA-C0004A
REV. C
@@ -356,21 +404,172 @@ static MACHINE_CONFIG_START(lindbergh, lindbergh_state)
MCFG_AC97_ADD( ":pci:1f.5", 0x808625a6, 0x02, 0x103382c0)
MACHINE_CONFIG_END
+#define LINDBERGH_BIOS \
+ ROM_REGION32_LE(0x100000, ":pci:1f.0", 0) /* PC bios, location 3j7 */ \
+ ROM_SYSTEM_BIOS(0, "bios0", "6.0.0010 alternate version") \
+ ROMX_LOAD("6.0.0010a.bin", 0x00000, 0x100000, CRC(10dd9b76) SHA1(1fdf1f921bc395846a7c3180fbdbc4ca287a9670), ROM_BIOS(1) ) \
+ ROM_SYSTEM_BIOS(1, "bios1", "6.0.0009") \
+ ROMX_LOAD("6.0.0009.bin", 0x00000, 0x100000, CRC(5ffdfbf8) SHA1(605bc4967b749b4e6d13fc2ebb845ba956a259a7), ROM_BIOS(2) ) \
+ ROM_SYSTEM_BIOS(2, "bios2", "6.0.0010") \
+ ROMX_LOAD("6.0.0010.bin", 0x00000, 0x100000, CRC(ea2bf888) SHA1(c9c5b6f0d4f4f36620939b15dd2f128a74347e37), ROM_BIOS(3) ) \
+\
+ ROM_REGION(0x400000, ":pci:1e.0:03.0", 0) /* Baseboard MPC firmware */ \
+ ROM_LOAD("fpr-24370b.ic6", 0x000000, 0x400000, CRC(c3b021a4) SHA1(1b6938a50fe0e4ae813864649eb103838c399ac0)) \
+\
+ ROM_REGION32_LE(0x10000, ":pci:01.0:00.0", 0) /* Geforce bios extension (custom or standard?) */ \
+ ROM_LOAD("vid_bios.u504", 0x00000, 0x10000, CRC(f78d14d7) SHA1(f129787e487984edd23bf344f2e9500c85052275)) \
+
ROM_START(lindbios)
- ROM_REGION32_LE(0x100000, ":pci:1f.0", 0) // PC bios, location 3j7
- ROM_SYSTEM_BIOS(0, "bios0", "6.0.0010 alternate version")
- ROMX_LOAD("6.0.0010a.bin", 0x00000, 0x100000, CRC(10dd9b76) SHA1(1fdf1f921bc395846a7c3180fbdbc4ca287a9670), ROM_BIOS(1) )
- ROM_SYSTEM_BIOS(1, "bios1", "6.0.0009")
- ROMX_LOAD("6.0.0009.bin", 0x00000, 0x100000, CRC(5ffdfbf8) SHA1(605bc4967b749b4e6d13fc2ebb845ba956a259a7), ROM_BIOS(2) )
- ROM_SYSTEM_BIOS(2, "bios2", "6.0.0010")
- ROMX_LOAD("6.0.0010.bin", 0x00000, 0x100000, CRC(ea2bf888) SHA1(c9c5b6f0d4f4f36620939b15dd2f128a74347e37), ROM_BIOS(3) )
+ LINDBERGH_BIOS
+ROM_END
+
+ROM_START(hotd4)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0427 / 317-0427-COM
+ ROM_LOAD("317-0427-com.bin", 0, 0x2000, CRC(ef4a120c) SHA1(fcc0386fa708af9e010e40e1d259a6bd95e8b9e2))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0003a", 0, SHA1(46544e28735f55418dd78bd19446093874438264))
+ROM_END
+
+ROM_START(vf5)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0438 / 317-0438-COM
+ ROM_LOAD("317-0438-com.bin", 0, 0x2000, CRC(9aeb15d3) SHA1(405ddc44b2b40b72cfe2a081a0d5e43ceb9a380e))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0008e", 0, NO_DUMP)
+ROM_END
+
+ROM_START(abclimax)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0440 / 317-0440-COM
+ ROM_LOAD("317-0440-com.bin", 0, 0x2000, CRC(8d09e717) SHA1(6b25982f7042541874115d33ea5d0c028140a962))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0009", 0, NO_DUMP)
+ROM_END
+
+ROM_START(letsgoju)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0442 / 317-0442-COM
+ ROM_LOAD("317-0442-com.bin", 0, 0x2000, CRC(b706efbb) SHA1(97c2b65e521113c5201f0b588fcb37a39148a637))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0011", 0, NO_DUMP)
+ROM_END
+
+ROM_START(outr2sdx)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0452 / 317-0452-COM (to verify, may be the one for OutRun 2 Special Tours)
+ ROM_LOAD("317-0452-com.bin", 0, 0x2000, CRC(f5b7bb3f) SHA1(6b179b255b3d29e5ce61902eeae4da07177a2943))
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0015a", 0, NO_DUMP)
+ROM_END
+
+ROM_START(psmash3)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0434 / 317-0434-COM
+ ROM_LOAD("317-0434-com.bin", 0, 0x2000, CRC(70e3b202) SHA1(4925a288f937d54529abe6ef467c9c23674e47f0))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0005a", 0, NO_DUMP)
+ROM_END
+
+ROM_START(vtennis3)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0506 / 317-0506-JPN
+ ROM_LOAD("317-0506-jpn.bin", 0, 0x2000, NO_DUMP)
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0005c", 0, SHA1(1fd689753c4b70dff0286cb7f623ee7fd439db62))
+ROM_END
+
+
+ROM_START(initiad4)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0486E / 317-0486-COM
+ ROM_LOAD("317-0846-com.bin", 0, 0x2000, NO_DUMP)
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0030d", 0, SHA1(e43e6d22fab4eceb81db8309e4634e049d9c41e6))
+ROM_END
+
+ROM_START(initiad4c)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0486E / 317-0486-COM
+ ROM_LOAD("317-0846-com.bin", 0, 0x2000, NO_DUMP)
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0030c", 0, SHA1(b1919f28539afec4c4bc52357e5210a090b5ae32))
+ROM_END
+
+ROM_START(segartv)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0504 / 317-0504-COM
+ ROM_LOAD("317-0504-com.bin", 0, 0x2000, CRC(ae7eaea8) SHA1(187e417e0b5543d95245364b547925426aa9f80e))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0044", 0, SHA1(914aa23ece8aaf0f1942f77272b3a87d10f7a7db))
+ROM_END
+
+ROM_START(hotdex)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0550 / 317-0550-JPN
+ ROM_LOAD("317-0550-jpn.bin", 0, 0x2000, CRC(7e247f13) SHA1(d416b0e7742b32eb31443967e84ef93fc9e56dfb))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("hotdex", 0, NO_DUMP)
+ROM_END
+
+ROM_START(rambo)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0540 / 317-0540-COM
+ ROM_LOAD("317-0540-com.bin", 0, 0x2000, CRC(fd9a7bc0) SHA1(140b05573e25a41c1237c7a96c8e099efbfd75b8))
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0069", 0, SHA1(1f3401b652c45db2b843360aff9cda862c2832c0))
+ROM_END
+
+ROM_START(hummerxt)
+ LINDBERGH_BIOS
+
+ ROM_REGION(0x2000, ":pic", 0) // PIC security id unknown
+ ROM_LOAD("hummerextreme.bin", 0, 0x2000, CRC(524bc69a) SHA1(c79b6bd384196c169e40e623f4c80c8b9eb11f81))
+ROM_END
- ROM_REGION(0x400000, ":pci:1e.0:03.0", 0) // Baseboard MPC firmware
- ROM_LOAD("fpr-24370b.ic6", 0x000000, 0x400000, CRC(c3b021a4) SHA1(1b6938a50fe0e4ae813864649eb103838c399ac0))
+ROM_START(lbvbiosu)
+ LINDBERGH_BIOS
- ROM_REGION32_LE(0x10000, ":pci:01.0:00.0", 0) // Geforce bios extension (custom or standard?)
- ROM_LOAD("vid_bios.u504", 0x00000, 0x10000, CRC(f78d14d7) SHA1(f129787e487984edd23bf344f2e9500c85052275))
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY("dvp-0021b", 0, SHA1(362ac028ba19ba4762678953a033034a5ee8ad53))
ROM_END
-GAME(1999, lindbios, 0, lindbergh, 0, driver_device, 0, ROT0, "Sega Lindbergh", "Sega Lindbergh Bios", GAME_IS_SKELETON)
+GAME(1999, lindbios, 0, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Sega Lindbergh Bios", GAME_IS_BIOS_ROOT)
+GAME(2005, hotd4, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "House of the Dead 4 (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2005, vf5, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Virtua Fighter 5 (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2006, abclimax, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "After Burner Climax (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2006, letsgoju, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Let's Go Jungle (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2006, outr2sdx, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Outrun 2 SP SDX", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2006, psmash3, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Power Smash 3 / Virtua Tennis 3 (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2006, vtennis3, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Virtua Tennis 3 (Japan)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2007, initiad4, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Initial D4 (Rev D)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2007, initiad4c, initiad4, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Initial D4 (Rev C)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2007, segartv, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Sega Race-TV (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2008, hotdex, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "House of the Dead EX (Japan)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2008, rambo, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Rambo (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(2009, hummerxt, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Hummer Extreme", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+GAME(200?, lbvbiosu, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "VBios updater", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)