Skip to content

Commit

Permalink
gamecube.cpp: update licensing; update copyright date per request; Se…
Browse files Browse the repository at this point in the history
…parated the IPLs into NTSC, PAL and MPAL, and noted the hashes of the gamecube IPL bad dumps in a comment. (nw)
  • Loading branch information
Lord-Nightmare committed Aug 10, 2017
1 parent 7f6be70 commit c631f59
Showing 1 changed file with 39 additions and 29 deletions.
68 changes: 39 additions & 29 deletions src/mame/drivers/gamecube.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// license: GPL-2.0+
// copyright-holders: Dirk Best
// license: BSD-3-Clause
// copyright-holders: Dirk Best, Segher Boessenkool
/***************************************************************************
Nintendo GameCube
Expand Down Expand Up @@ -60,7 +60,7 @@ INPUT_PORTS_END
//**************************************************************************

// bootrom descrambler reversed by segher
// Copyright 2008 Segher Boessenkool <[email protected]>
// Copyright 2008-2017 Segher Boessenkool <[email protected]>
void gamecube_state::decrypt(uint8_t *data, unsigned size)
{
uint8_t acc = 0;
Expand Down Expand Up @@ -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))
Expand All @@ -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))
Expand All @@ -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))
Expand All @@ -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))
Expand All @@ -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 )

0 comments on commit c631f59

Please sign in to comment.