summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/dccons.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/dccons.cpp')
-rw-r--r--src/mame/drivers/dccons.cpp60
1 files changed, 22 insertions, 38 deletions
diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp
index 062def2d2e3..e9e1be60cba 100644
--- a/src/mame/drivers/dccons.cpp
+++ b/src/mame/drivers/dccons.cpp
@@ -317,18 +317,6 @@ 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;
@@ -593,8 +581,7 @@ void dc_cons_state::gdrom_config(device_t *device)
MCFG_SOUND_ROUTE(1, "^^aica", 1.0)
}
-void dc_cons_state::dc(machine_config &config)
-{
+MACHINE_CONFIG_START(dc_cons_state::dc)
/* basic machine hardware */
SH4LE(config, m_maincpu, CPU_CLOCK);
m_maincpu->set_md(0, 1);
@@ -610,10 +597,10 @@ void dc_cons_state::dc(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &dc_cons_state::dc_map);
m_maincpu->set_addrmap(AS_IO, &dc_cons_state::dc_port);
- TIMER(config, "scantimer").configure_scanline(FUNC(dc_state::dc_scanline), "screen", 0, 1);
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dc_state, dc_scanline, "screen", 0, 1)
- ARM7(config, m_soundcpu, ((XTAL(33'868'800)*2)/3)/8); // AICA bus clock is 2/3rds * 33.8688. ARM7 gets 1 bus cycle out of each 8.
- m_soundcpu->set_addrmap(AS_PROGRAM, &dc_cons_state::dc_audio_map);
+ MCFG_DEVICE_ADD("soundcpu", ARM7, ((XTAL(33'868'800)*2)/3)/8) // AICA bus clock is 2/3rds * 33.8688. ARM7 gets 1 bus cycle out of each 8.
+ MCFG_DEVICE_PROGRAM_MAP(dc_audio_map)
MCFG_MACHINE_RESET_OVERRIDE(dc_cons_state,dc_console )
@@ -659,10 +646,10 @@ void dc_cons_state::dc(machine_config &config)
dcctrl3.set_port_tag<7>("P4:A5");
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(13458568*2, 857, 0, 640, 524, 0, 480); /* TODO: where pclk actually comes? */
- screen.set_screen_update("powervr2", FUNC(powervr2_device::screen_update));
- PALETTE(config, "palette").set_entries(0x1000);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(13458568*2, 857, 0, 640, 524, 0, 480) /* TODO: where pclk actually comes? */
+ MCFG_SCREEN_UPDATE_DEVICE("powervr2", powervr2_device, screen_update)
+ MCFG_PALETTE_ADD("palette", 0x1000)
POWERVR2(config, m_powervr2, 0);
m_powervr2->irq_callback().set(FUNC(dc_state::pvr_irq));
@@ -681,13 +668,13 @@ void dc_cons_state::dc(machine_config &config)
ATA_INTERFACE(config, m_ata, 0);
m_ata->irq_handler().set(FUNC(dc_cons_state::ata_interrupt));
- ata_slot_device &ata_0(*subdevice<ata_slot_device>("ata:0"));
- ata_0.option_add("gdrom", GDROM);
- ata_0.set_option_machine_config("gdrom", gdrom_config);
- ata_0.set_default_option("gdrom");
+ MCFG_DEVICE_MODIFY("ata:0")
+ MCFG_SLOT_OPTION_ADD("gdrom", GDROM)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("gdrom", gdrom_config)
+ MCFG_SLOT_DEFAULT_OPTION("gdrom")
- SOFTWARE_LIST(config, "cd_list").set_original("dc");
-}
+ MCFG_SOFTWARE_LIST_ADD("cd_list","dc")
+MACHINE_CONFIG_END
#define ROM_LOAD_BIOS(bios,name,offset,length,hash) \
@@ -778,15 +765,15 @@ ROM_END
// unauthorised portable modification
ROM_START( dctream )
ROM_REGION(0x200000, "maincpu", 0)
- // 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) )
+ // 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
ROM_REGION(0x020000, "dcflash", 0)
ROM_LOAD( "dc_flash.bin", 0x000000, 0x020000, CRC(9d5515c4) SHA1(78a86fd4e8b58fc9d3535eef6591178f1b97ecf9) ) // VA1 NTSC-US
ROM_END
-// normally, with DIP switch 4 off, HKT-0100/0110/0120 AKA "Katana Set 5.xx", will be booted from flash ROM IC507 (first 2 dumps below)
-// otherwise it boots from EPROM which contain system checker software (last 2 dumps)
+// normally, with DIP switch 4 off, HKT-100/110/120 AKA "Katana Set 5.xx", will be booted from flash ROM IC507 (first 2 dumps below)
+// otherwise it boots from EPROM which contain system checker software (last dump)
ROM_START( dcdev )
ROM_REGION(0x200000, "maincpu", 0)
ROM_SYSTEM_BIOS(0, "1011", "Katana Set5 v1.011 (World)") // BOOT flash rom update from Katana SDK R9-R11, WinCE SDK v2.1
@@ -795,14 +782,11 @@ ROM_START( dcdev )
ROM_LOAD_BIOS(1, "set5v1.001.ic507", 0x000000, 0x200000, CRC(5702d38f) SHA1(ea7a3ae1de73683008dd795c252941a4fc81b42e) )
// 27C160 EPROM (DIP42) IC??? labeled
- // SET5 7676
- // V0.71 98/11/13
- ROM_SYSTEM_BIOS(2, "071", "Katana Set5 Checker v0.71")
- ROM_LOAD_BIOS(2, "set5v0.71.bin", 0x000000, 0x200000, CRC(52d01969) SHA1(28aec4a01419d2d2a664c540bef30ea289ca0644) )
// SET5 FC52
// V0.41 98/08/27
- ROM_SYSTEM_BIOS(3, "041", "Katana Set5 Checker v0.41")
- ROM_LOAD_BIOS(3, "set5v0.41.bin", 0x000000, 0x200000, CRC(485877bd) SHA1(dc1af1f1248ffa87d57bc5ef2ea41aac95ecfc5e) )
+ // also known to exists v0.71 98/11/13
+ ROM_SYSTEM_BIOS(2, "041", "Katana Set5 Checker v0.41")
+ ROM_LOAD_BIOS(2, "set5v0.41.bin", 0x000000, 0x200000, CRC(485877bd) SHA1(dc1af1f1248ffa87d57bc5ef2ea41aac95ecfc5e) )
ROM_REGION(0x020000, "dcflash", 0)
ROM_LOAD( "hkt-0120-flash.bin", 0x000000, 0x020000, CRC(7784c304) SHA1(31ef57f550d8cd13e40263cbc657253089e53034) ) // Dev.Boxes have empty (FF filled) flash ROM
@@ -812,5 +796,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_tream,"<unknown>", "Treamcast", MACHINE_NOT_WORKING )
+CONS( 200?, dctream, dcjp, 0, dc, dc, dc_cons_state, init_dcus, "<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 )