mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
gamecube.cpp: update licensing; update copyright date per request; Separated the IPLs into NTSC, PAL and MPAL, and noted the hashes of the gamecube IPL bad dumps in a comment. (nw)
This commit is contained in:
parent
7f6be704a5
commit
c631f59f50
@ -1,5 +1,5 @@
|
||||
// license: GPL-2.0+
|
||||
// copyright-holders: Dirk Best
|
||||
// license: BSD-3-Clause
|
||||
// copyright-holders: Dirk Best, Segher Boessenkool
|
||||
/***************************************************************************
|
||||
|
||||
Nintendo GameCube
|
||||
@ -60,7 +60,7 @@ INPUT_PORTS_END
|
||||
//**************************************************************************
|
||||
|
||||
// bootrom descrambler reversed by segher
|
||||
// Copyright 2008 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
// Copyright 2008-2017 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
void gamecube_state::decrypt(uint8_t *data, unsigned size)
|
||||
{
|
||||
uint8_t acc = 0;
|
||||
@ -149,15 +149,25 @@ MACHINE_CONFIG_END
|
||||
// ROM DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
ROM_START( gcjp )
|
||||
/* There are a lot of bad dumps of the gamecube IPLs floating around.
|
||||
The following IPL dumps are known bad, with RAM/MAC address garbage in the last 0x8000 bytes:
|
||||
ROM_LOAD("ipl_bad_ntsc_v10.bin", 0x000000, 0x200000, CRC(6d740ae7) SHA1(015808f637a984acde6a06efa7546e278293c6ee))
|
||||
ROM_LOAD("ipl_bad2_ntsc_v10.bin", 0x000000, 0x200000, CRC(8bdabbd4) SHA1(f1b0ef434cd74fd8fe23698e2fc911d945b45bf1))
|
||||
ROM_LOAD("ipl_bad_pal_v10.bin", 0x000000, 0x200000, CRC(dd8cab7c) SHA1(6f305c37dc1fbe332883bb8153eee26d3d325629))
|
||||
The following rom is flat out unknown and unseen in the wild, except for its checksums:
|
||||
ROM_LOAD("ipl_unknown.bin", 0x000000, 0x200000, CRC(d235e3f9) SHA1(96f69a21645de73a5ba61e57951ef303d55788c5))
|
||||
*/
|
||||
|
||||
ROM_START( gcjp ) // DOL-001(JPN) and DOL-101(JPN); NTSC gamecube board, outputs NTSC color, NTSC timings; JPN Region jumper set
|
||||
ROM_REGION(0x200000, "ipl", 0)
|
||||
ROM_DEFAULT_BIOS("v12")
|
||||
ROM_SYSTEM_BIOS(0, "v10", "IPL 1.0")
|
||||
ROMX_LOAD("jpn_v10.bin", 0x000000, 0x200000, CRC(6dac1f2a) SHA1(a1837968288253ed541f2b11440b68f5a9b33875), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "v11", "IPL 1.1")
|
||||
ROMX_LOAD("jpn_v11.bin", 0x000000, 0x200000, CRC(d235e3f9) SHA1(96f69a21645de73a5ba61e57951ef303d55788c5), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "v12", "IPL 1.2")
|
||||
ROMX_LOAD("jpn_v12.bin", 0x000000, 0x200000, CRC(8bdabbd4) SHA1(f1b0ef434cd74fd8fe23698e2fc911d945b45bf1), ROM_BIOS(3))
|
||||
ROM_SYSTEM_BIOS(0, "v10", "NTSC Revision 1.0")
|
||||
ROMX_LOAD("ipl_ntsc_v10.bin", 0x000000, 0x200000, CRC(6dac1f2a) SHA1(a1837968288253ed541f2b11440b68f5a9b33875), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "v11", "NTSC Revision 1.1")
|
||||
ROMX_LOAD("ipl_ntsc_v11.bin", 0x000000, 0x200000, CRC(d5e6feea) SHA1(239eacd86527ff9a75aeb7282da65797baeef010), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "v12", "NTSC Revision 1.2")
|
||||
ROMX_LOAD("ipl_ntsc_v12.bin", 0x000000, 0x200000, CRC(86573808) SHA1(ef9194ab4804aa0aa8540d846caf291b28331165), ROM_BIOS(3)) // not verified from console yet but seems good
|
||||
// There may be another IPL with the same "NTSC Revision 1.2" string as above but not the same code. If so, it is undumped.
|
||||
|
||||
ROM_REGION(0x20000, "dvd", 0)
|
||||
ROM_LOAD("20010608.bin", 0x00000, 0x20000, CRC(c047465a) SHA1(27872c201e87b06a19bf85d36c796ef383f8d52d))
|
||||
@ -169,15 +179,16 @@ ROM_START( gcjp )
|
||||
ROM_LOAD("dsp_rom.bin", 0x0000, 0x2000, CRC(47daaa65) SHA1(3c6cc6e04fdd0b2a392d7a6ed769455444846be7))
|
||||
ROM_END
|
||||
|
||||
ROM_START( gcus )
|
||||
ROM_START( gcus ) // DOL-001(USA) and DOL-101(USA); NTSC gamecube board, outputs NTSC color, NTSC timings; USA region jumper set
|
||||
ROM_REGION(0x200000, "ipl", 0)
|
||||
ROM_DEFAULT_BIOS("v12")
|
||||
ROM_SYSTEM_BIOS(0, "v10", "IPL 1.0")
|
||||
ROMX_LOAD("usa_v10.bin", 0x000000, 0x200000, CRC(6d740ae7) SHA1(015808f637a984acde6a06efa7546e278293c6ee), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "v11", "IPL 1.1")
|
||||
ROMX_LOAD("usa_v11.bin", 0x000000, 0x200000, CRC(d5e6feea) SHA1(239eacd86527ff9a75aeb7282da65797baeef010), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "v12", "IPL 1.2")
|
||||
ROMX_LOAD("usa_v12.bin", 0x000000, 0x200000, CRC(86573808) SHA1(ef9194ab4804aa0aa8540d846caf291b28331165), ROM_BIOS(3))
|
||||
ROM_SYSTEM_BIOS(0, "v10", "NTSC Revision 1.0")
|
||||
ROMX_LOAD("ipl_ntsc_v10.bin", 0x000000, 0x200000, CRC(6dac1f2a) SHA1(a1837968288253ed541f2b11440b68f5a9b33875), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "v11", "NTSC Revision 1.1")
|
||||
ROMX_LOAD("ipl_ntsc_v11.bin", 0x000000, 0x200000, CRC(d5e6feea) SHA1(239eacd86527ff9a75aeb7282da65797baeef010), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "v12", "NTSC Revision 1.2")
|
||||
ROMX_LOAD("ipl_ntsc_v12.bin", 0x000000, 0x200000, CRC(86573808) SHA1(ef9194ab4804aa0aa8540d846caf291b28331165), ROM_BIOS(3)) // not verified from console yet but seems good
|
||||
// There may be another IPL with the same "NTSC Revision 1.2" string as above but not the same code. If so, it is undumped.
|
||||
|
||||
ROM_REGION(0x20000, "dvd", 0)
|
||||
ROM_LOAD("20010608.bin", 0x00000, 0x20000, CRC(c047465a) SHA1(27872c201e87b06a19bf85d36c796ef383f8d52d))
|
||||
@ -189,15 +200,14 @@ ROM_START( gcus )
|
||||
ROM_LOAD("dsp_rom.bin", 0x0000, 0x2000, CRC(47daaa65) SHA1(3c6cc6e04fdd0b2a392d7a6ed769455444846be7))
|
||||
ROM_END
|
||||
|
||||
ROM_START( gceu )
|
||||
ROM_START( gceu ) // DOL-001(EUR) and DOL-101(EUR); PAL gamecube board, outputs PAL-E color, PAL-E timings; EUR region (not sure if there is a separate jumper for this?)
|
||||
ROM_REGION(0x200000, "ipl", 0)
|
||||
ROM_DEFAULT_BIOS("v12")
|
||||
ROM_SYSTEM_BIOS(0, "v10", "IPL 1.0")
|
||||
ROMX_LOAD("pal_v10.bin", 0x000000, 0x200000, CRC(4f319f43) SHA1(f27c63e5394e2fd1606f70df004c4fc2d6027700), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "v11", "IPL 1.1")
|
||||
ROMX_LOAD("pal_v11.bin", 0x000000, 0x200000, CRC(dd8cab7c) SHA1(6f305c37dc1fbe332883bb8153eee26d3d325629), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "v12", "IPL 1.2")
|
||||
ROMX_LOAD("pal_v12.bin", 0x000000, 0x200000, CRC(ad1b7f16) SHA1(80b8744ff5e43585392f55546bd03a673d11ef5f), ROM_BIOS(3))
|
||||
ROM_SYSTEM_BIOS(0, "v10", "PAL Revision 1.0")
|
||||
ROMX_LOAD("ipl_pal_v10.bin", 0x000000, 0x200000, CRC(4f319f43) SHA1(f27c63e5394e2fd1606f70df004c4fc2d6027700), ROM_BIOS(1))
|
||||
// there is an undumped "PAL Revision 1.1" IPL
|
||||
ROM_SYSTEM_BIOS(1, "v12", "PAL Revision 1.2")
|
||||
ROMX_LOAD("ipl_pal_v12.bin", 0x000000, 0x200000, CRC(ad1b7f16) SHA1(80b8744ff5e43585392f55546bd03a673d11ef5f), ROM_BIOS(2)) // not verified from console yet but seems good
|
||||
|
||||
ROM_REGION(0x20000, "dvd", 0)
|
||||
ROM_LOAD("20010608.bin", 0x00000, 0x20000, CRC(c047465a) SHA1(27872c201e87b06a19bf85d36c796ef383f8d52d))
|
||||
@ -209,9 +219,9 @@ ROM_START( gceu )
|
||||
ROM_LOAD("dsp_rom.bin", 0x0000, 0x2000, CRC(47daaa65) SHA1(3c6cc6e04fdd0b2a392d7a6ed769455444846be7))
|
||||
ROM_END
|
||||
|
||||
ROM_START( gcbr )
|
||||
ROM_REGION(0x200000, "ipl", 0)
|
||||
ROM_LOAD("bra_v10.bin", 0x000000, 0x200000, CRC(667d0b64) SHA1(f3cd0c7c61cbcefa85e7de3aff4cfa50bc508714))
|
||||
ROM_START( gcbr ) // DOL-002(BRA); NTSC gamecube board, outputs video with PAL-M color, and either PAL-E (for the IPL) or PAL-M (for games) timings; region jumper is unknown but probably USA
|
||||
ROM_REGION(0x200000, "ipl", 0) // "MPAL Revision 1.1"
|
||||
ROM_LOAD("ipl_mpal_v11.bin", 0x000000, 0x200000, CRC(667d0b64) SHA1(f3cd0c7c61cbcefa85e7de3aff4cfa50bc508714))
|
||||
|
||||
ROM_REGION(0x20000, "dvd", 0)
|
||||
ROM_LOAD("20010608.bin", 0x00000, 0x20000, CRC(c047465a) SHA1(27872c201e87b06a19bf85d36c796ef383f8d52d))
|
||||
@ -230,6 +240,6 @@ ROM_END
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS
|
||||
GAME( 2001, gcjp, 0, gc, gc, gamecube_state, 0, ROT0, "Nintendo", "GameCube (Japan)", MACHINE_IS_SKELETON )
|
||||
GAME( 2001, gcus, gcjp, gc, gc, gamecube_state, 0, ROT0, "Nintendo", "GameCube (US)", MACHINE_IS_SKELETON )
|
||||
GAME( 2002, gceu, gcjp, gc, gc, gamecube_state, 0, ROT0, "Nintendo", "GameCube (EU)", MACHINE_IS_SKELETON )
|
||||
GAME( 2001, gcus, gcjp, gc, gc, gamecube_state, 0, ROT0, "Nintendo", "GameCube (USA)", MACHINE_IS_SKELETON )
|
||||
GAME( 2002, gceu, gcjp, gc, gc, gamecube_state, 0, ROT0, "Nintendo", "GameCube (EUR)", MACHINE_IS_SKELETON )
|
||||
GAME( 2002, gcbr, gcjp, gc, gc, gamecube_state, 0, ROT0, "Nintendo", "GameCube (Brazil)", MACHINE_IS_SKELETON )
|
||||
|
Loading…
Reference in New Issue
Block a user