summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/freekick.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/freekick.cpp')
-rw-r--r--src/mame/drivers/freekick.cpp37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/mame/drivers/freekick.cpp b/src/mame/drivers/freekick.cpp
index 5e67ee8f78d..e5444f55b76 100644
--- a/src/mame/drivers/freekick.cpp
+++ b/src/mame/drivers/freekick.cpp
@@ -709,7 +709,7 @@ MACHINE_RESET_MEMBER(freekick_state,oigas)
}
static MACHINE_CONFIG_START( omega, freekick_state )
- MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) // unknown divisor
+ MCFG_CPU_ADD("maincpu", MC8123, XTAL_18_432MHz/6) // unknown divisor
MCFG_CPU_PROGRAM_MAP(omega_map)
MCFG_CPU_IO_MAP(omega_io_map)
MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
@@ -782,8 +782,11 @@ static MACHINE_CONFIG_DERIVED( pbillrd, base )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( pbillrdm, pbillrd )
- MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_REPLACE("maincpu", MC8123, XTAL_12MHz/4)
+ MCFG_CPU_PROGRAM_MAP(pbillrd_map)
MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
+ MCFG_CPU_PERIODIC_INT_DRIVER(freekick_state, irq0_line_hold, 120) // measured on PCB
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", freekick_state, freekick_irqgen)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( freekickb, base )
@@ -827,6 +830,22 @@ static MACHINE_CONFIG_DERIVED( gigas, base )
MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( gigasm, base )
+
+ /* basic machine hardware */
+ MCFG_CPU_REPLACE("maincpu", MC8123, XTAL_12MHz/4)
+ MCFG_CPU_PROGRAM_MAP(gigas_map)
+ MCFG_CPU_IO_MAP(gigas_io_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
+
+ MCFG_MACHINE_START_OVERRIDE(freekick_state,freekick)
+ MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick)
+
+ /* video hardware */
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_DERIVED( oigas, gigas )
/* basic machine hardware */
@@ -876,7 +895,7 @@ ROM_START( pbillrds ) /* Encrytped with a Sega MC-8123 (317-0030) CPU module */
ROM_LOAD( "10625.8r", 0x4000, 0x8000, CRC(8977c724) SHA1(f00835a04dc6fa7d8c1e382dace515f2aa7d6f44) ) /* encrypted */
ROM_LOAD( "10627.10n", 0xc000, 0x4000, CRC(2335e6dd) SHA1(82352b6f4abea88aad3a96ca63cccccb6e278f48) ) /* encrypted */
- ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
+ ROM_REGION( 0x2000, "maincpu:key", 0 ) /* MC8123 key */
ROM_LOAD( "317-0030.key", 0x0000, 0x2000, CRC(9223f06d) SHA1(51a22a4c80fe273526bde68918c13c6476cec383) )
ROM_REGION( 0xc000, "gfx1", 0 ) /* GFX */
@@ -904,7 +923,7 @@ ROM_START( pbillrdsa ) /* all ROMs were HN4827128G-25, except 17, HN27256G-25, C
ROM_LOAD( "17", 0x4000, 0x8000, CRC(9bb3d467) SHA1(5d61c80c920363cbcb548f4a08434e2a05b3d5f3) ) /* encrypted */
ROM_LOAD( "19", 0xc000, 0x4000, CRC(2335e6dd) SHA1(82352b6f4abea88aad3a96ca63cccccb6e278f48) ) /* encrypted */
- ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
+ ROM_REGION( 0x2000, "maincpu:key", 0 ) /* MC8123 key */
ROM_LOAD( "317-0030.key", 0x0000, 0x2000, CRC(9223f06d) SHA1(51a22a4c80fe273526bde68918c13c6476cec383) )
ROM_REGION( 0xc000, "gfx1", 0 ) /* GFX */
@@ -1178,7 +1197,7 @@ ROM_START( gigas ) /* From an actual Sega board 834-6167 with mc-8123: 317-5002
ROM_LOAD( "8.8n", 0x00000, 0x4000, CRC(34ea8262) SHA1(a71c865ffccfc79455402c53639c4fa77a746cf1) )
ROM_LOAD( "7.8r", 0x04000, 0x8000, CRC(43653909) SHA1(30f6666ba5c0f016299f462c4c07c81ee4832808) ) /* 27256 */
- ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
+ ROM_REGION( 0x2000, "maincpu:key", 0 ) /* MC8123 key */
ROM_LOAD( "317-5002.key", 0x0000, 0x2000, CRC(86a7e5f6) SHA1(3ff3a17c02eb5610182b6febfada4e8eca0c5eea) )
ROM_REGION( 0xc000, "gfx1", 0 ) /* GFX */
@@ -1304,7 +1323,7 @@ ROM_START( omega )
ROM_LOAD("17.m10", 0x0000, 0x4000, CRC(c7de0993) SHA1(35ecd464935faba1dc7d0dbf48e1b17153626bfd)) // 27128
ROM_LOAD("8.n10", 0x4000, 0x8000, CRC(9bb61910) SHA1(f8a1210dbf93e901e246e6adf4cd905acc3ef376)) // 27256
- ROM_REGION(0x2000, "user1", 0) // MC8123 key
+ ROM_REGION(0x2000, "maincpu:key", 0) // MC8123 key
ROM_LOAD("omega.key", 0x0000, 0x2000, CRC(0a63943f) SHA1(9e581ea0c5bf6c0ed5d402d3bab053766b8e44c2))
ROM_REGION(0xc000, "gfx1", 0)
@@ -1350,7 +1369,7 @@ DRIVER_INIT_MEMBER(freekick_state,gigasb)
DRIVER_INIT_MEMBER(freekick_state,pbillrds)
{
uint8_t *decrypted_opcodes = auto_alloc_array(machine(), uint8_t, 0x10000);
- mc8123_decode(memregion("maincpu")->base(), decrypted_opcodes, memregion("user1")->base(), 0x10000);
+ downcast<mc8123_device &>(*m_maincpu).decode(memregion("maincpu")->base(), decrypted_opcodes, 0x10000);
membank("bank0d")->set_base(decrypted_opcodes);
m_bank1d->configure_entries(0, 2, decrypted_opcodes + 0x8000, 0x4000);
}
@@ -1358,7 +1377,7 @@ DRIVER_INIT_MEMBER(freekick_state,pbillrds)
DRIVER_INIT_MEMBER(freekick_state,gigas)
{
uint8_t *decrypted_opcodes = auto_alloc_array(machine(), uint8_t, 0xc000);
- mc8123_decode(memregion("maincpu")->base(), decrypted_opcodes, memregion("user1")->base(), 0xc000);
+ downcast<mc8123_device &>(*m_maincpu).decode(memregion("maincpu")->base(), decrypted_opcodes, 0xc000);
membank("bank0d")->set_base(decrypted_opcodes);
m_bank1d->set_base(decrypted_opcodes + 0x8000);
}
@@ -1371,7 +1390,7 @@ DRIVER_INIT_MEMBER(freekick_state,gigas)
*
*************************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1986, gigas, 0, gigas, gigas, freekick_state, gigas, ROT270, "Sega", "Gigas (MC-8123, 317-5002)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gigas, 0, gigasm, gigas, freekick_state, gigas, ROT270, "Sega", "Gigas (MC-8123, 317-5002)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, gigasb, gigas, gigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Gigas (bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, oigas, gigas , oigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Oigas (bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, gigasm2b, 0, gigas, gigasm2, freekick_state, gigasb, ROT270, "bootleg", "Gigas Mark II (bootleg)", MACHINE_SUPPORTS_SAVE )