diff options
author | MetalliC <0vetal0@gmail.com> | 2019-01-26 01:30:33 +0200 |
---|---|---|
committer | MetalliC <0vetal0@gmail.com> | 2019-01-26 01:30:33 +0200 |
commit | 39fd873e585bbcef5a947730f991b5f5d754dee4 (patch) | |
tree | 6f380fd08143174cad9f05151d0eebce542a3568 | |
parent | 5299728ec343b902632474e224502ae172cba609 (diff) |
dccons.cpp: documented Treamcast region-free modchip, removed bios soft-dump [Maddog, MetalliC]
-rw-r--r-- | src/mame/drivers/dccons.cpp | 18 | ||||
-rw-r--r-- | src/mame/includes/dccons.h | 1 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index 7b0f1c5827e..fe60a5b681a 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -317,6 +317,18 @@ void dc_cons_state::init_dcjp() init_dc(); } +void dc_cons_state::init_tream() +{ + // Modchip connected to BIOS ROM chip changes 4 bytes (actually bits) as shown below, which allow to boot any region games. + u8 *rom = (u8 *)memregion("maincpu")->base(); + rom[0x503] |= 0x40; + rom[0x50f] |= 0x40; + rom[0x523] |= 0x40; + rom[0x531] |= 0x40; + + init_dcus(); +} + READ64_MEMBER(dc_cons_state::dc_pdtra_r ) { uint64_t out = PCTRA<<32; @@ -765,8 +777,8 @@ ROM_END // unauthorised portable modification ROM_START( dctream ) ROM_REGION(0x200000, "maincpu", 0) - // multi-region hack of mpr-21931/1.01d BIOS, hardware checksum protection passes OK due to algorithm weakness - ROM_LOAD( "dc_bios.bin", 0x000000, 0x200000, CRC(cff88d0d) SHA1(e3f84705b183ffded0a349ac7f2ab00be2ab74ee) ) // dumped in software way, ROM label unknown + // uses regular mpr-21931 BIOS chip, have region-free mod-chip installed, see driver init. + ROM_LOAD( "mpr-21931.ic501", 0x000000, 0x200000, CRC(89f2b1a1) SHA1(8951d1bb219ab2ff8583033d2119c899cc81f18c) ) ROM_REGION(0x020000, "dcflash", 0) ROM_LOAD( "dc_flash.bin", 0x000000, 0x020000, CRC(9d5515c4) SHA1(78a86fd4e8b58fc9d3535eef6591178f1b97ecf9) ) // VA1 NTSC-US @@ -796,5 +808,5 @@ ROM_END CONS( 1999, dc, dcjp, 0, dc, dc, dc_cons_state, init_dcus, "Sega", "Dreamcast (USA, NTSC)", MACHINE_NOT_WORKING ) CONS( 1998, dcjp, 0, 0, dc, dc, dc_cons_state, init_dcjp, "Sega", "Dreamcast (Japan, NTSC)", MACHINE_NOT_WORKING ) CONS( 1999, dceu, dcjp, 0, dc, dc, dc_cons_state, init_dcus, "Sega", "Dreamcast (Europe, PAL)", MACHINE_NOT_WORKING ) -CONS( 200?, dctream, dcjp, 0, dc, dc, dc_cons_state, init_dcus, "<unknown>", "Treamcast", MACHINE_NOT_WORKING ) +CONS( 200?, dctream, dcjp, 0, dc, dc, dc_cons_state, init_tream,"<unknown>", "Treamcast", MACHINE_NOT_WORKING ) CONS( 1998, dcdev, 0, 0, dc, dc, dc_cons_state, init_dc, "Sega", "HKT-0120 Sega Dreamcast Development Box", MACHINE_NOT_WORKING ) diff --git a/src/mame/includes/dccons.h b/src/mame/includes/dccons.h index 127c46d558d..fb2573ed057 100644 --- a/src/mame/includes/dccons.h +++ b/src/mame/includes/dccons.h @@ -28,6 +28,7 @@ public: void init_dc(); void init_dcus(); void init_dcjp(); + void init_tream(); DECLARE_READ64_MEMBER(dcus_idle_skip_r); DECLARE_READ64_MEMBER(dcjp_idle_skip_r); |