diff options
-rw-r--r-- | src/mame/drivers/decwritr.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/gimix.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/homelab.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/hp9845.cpp | 8 | ||||
-rw-r--r-- | src/mame/drivers/konin.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/leapster.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/microkit.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/ngen.cpp | 6 | ||||
-rw-r--r-- | src/mame/drivers/nokia_3310.cpp | 24 | ||||
-rw-r--r-- | src/mame/drivers/potgoldu.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/sanremmg.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/sansa_fuze.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/segas16b.cpp | 58 | ||||
-rw-r--r-- | src/mame/drivers/shtzone.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/stlforce.cpp | 87 | ||||
-rw-r--r-- | src/mame/drivers/symbolics.cpp | 2 | ||||
-rw-r--r-- | src/mame/includes/segas16b.h | 2 | ||||
-rw-r--r-- | src/mame/includes/stlforce.h | 31 | ||||
-rw-r--r-- | src/mame/video/stlforce.cpp | 30 | ||||
-rw-r--r-- | src/osd/modules/output/network.cpp | 74 |
20 files changed, 170 insertions, 178 deletions
diff --git a/src/mame/drivers/decwritr.cpp b/src/mame/drivers/decwritr.cpp index 9b881fff4e7..c38178a1cdc 100644 --- a/src/mame/drivers/decwritr.cpp +++ b/src/mame/drivers/decwritr.cpp @@ -439,4 +439,4 @@ ROM_END // DRIVERS //************************************************************************** /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1978, la120, 0, 0, la120, la120, decwriter_state, 0, "Digital Equipment Corporation", "DECwriter III (LA120)", MACHINE_NO_SOUND | MACHINE_IS_SKELETON | MACHINE_NOT_WORKING ) +COMP( 1978, la120, 0, 0, la120, la120, decwriter_state, 0, "Digital Equipment Corporation", "DECwriter III (LA120)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp index 73ed134221f..a73c4cdabb8 100644 --- a/src/mame/drivers/gimix.cpp +++ b/src/mame/drivers/gimix.cpp @@ -684,4 +684,4 @@ ROM_START( gimix ) ROM_LOAD( "gimixhd.h11", 0x000000, 0x001000, CRC(35c12201) SHA1(51ac9052f9757d79c7f5bd3aa5d8421e98cfcc37) ) ROM_END -COMP( 1980, gimix, 0, 0, gimix, gimix, gimix_state, 0, "Gimix", "Gimix 6809 System", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1980, gimix, 0, 0, gimix, gimix, gimix_state, 0, "Gimix", "Gimix 6809 System", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp index 383a0db1cfe..dfbd2eebb63 100644 --- a/src/mame/drivers/homelab.cpp +++ b/src/mame/drivers/homelab.cpp @@ -915,4 +915,4 @@ COMP( 1982, homelab2, 0, 0, homelab, homelab, homelab_state, COMP( 1983, homelab3, homelab2, 0, homelab3, homelab3, homelab_state, 0, "Jozsef and Endre Lukacs", "Homelab 3", MACHINE_NOT_WORKING ) COMP( 1984, homelab4, homelab2, 0, homelab3, homelab3, homelab_state, 0, "Jozsef and Endre Lukacs", "Homelab 4", MACHINE_NOT_WORKING ) COMP( 1984, brailab4, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab 4", MACHINE_NOT_WORKING ) -COMP( 1988, braiplus, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab Plus", MACHINE_NOT_WORKING | MACHINE_IS_SKELETON ) +COMP( 1988, braiplus, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab Plus", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp index dc6eb00109d..4b3f5717b63 100644 --- a/src/mame/drivers/hp9845.cpp +++ b/src/mame/drivers/hp9845.cpp @@ -4004,10 +4004,10 @@ ROM_START( hp9845t_de ) ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1977, hp9845a, 0, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1977, hp9845s, hp9845a, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845S", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1979, hp9835a, 0, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1979, hp9835b, hp9835a, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835B", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1977, hp9845a, 0, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845A", MACHINE_IS_SKELETON ) +COMP( 1977, hp9845s, hp9845a, 0, hp9845a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9845S", MACHINE_IS_SKELETON ) +COMP( 1979, hp9835a, 0, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835A", MACHINE_IS_SKELETON ) +COMP( 1979, hp9835b, hp9835a, 0, hp9835a, hp9845, hp9845_state, 0, "Hewlett-Packard", "9835B", MACHINE_IS_SKELETON ) COMP( 1979, hp9845b, 0, 0, hp9845b, hp9845_base, hp9845b_state, 0, "Hewlett-Packard", "9845B", 0 ) COMP( 1982, hp9845t, 0, 0, hp9845t, hp9845ct, hp9845t_state, 0, "Hewlett-Packard", "9845T", 0 ) COMP( 1980, hp9845c, 0, 0, hp9845c, hp9845ct, hp9845c_state, 0, "Hewlett-Packard", "9845C", 0 ) diff --git a/src/mame/drivers/konin.cpp b/src/mame/drivers/konin.cpp index 68c15cf24f3..f8144f3229d 100644 --- a/src/mame/drivers/konin.cpp +++ b/src/mame/drivers/konin.cpp @@ -141,4 +141,4 @@ ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 198?, konin, 0, 0, konin, konin, konin_state, 0, "Mera-Elzab", "Konin", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +COMP( 198?, konin, 0, 0, konin, konin, konin_state, 0, "Mera-Elzab", "Konin", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp index e0748d35164..1da556328b0 100644 --- a/src/mame/drivers/leapster.cpp +++ b/src/mame/drivers/leapster.cpp @@ -338,5 +338,5 @@ DRIVER_INIT_MEMBER(leapster_state,leapster) { } -CONS( 2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -CONS( 2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV (Germany)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +CONS( 2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", MACHINE_IS_SKELETON ) +CONS( 2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV (Germany)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/microkit.cpp b/src/mame/drivers/microkit.cpp index a0fbb10e271..f5d72d9f89b 100644 --- a/src/mame/drivers/microkit.cpp +++ b/src/mame/drivers/microkit.cpp @@ -134,4 +134,4 @@ ROM_START( microkit ) ROM_LOAD( "4.2a", 0x100, 0x100, CRC(27267bad) SHA1(838df9be2dc175584a1a6ee1770039118e49482e) ) ROM_END -COMP( 1975, microkit, 0, 0, microkit, microkit, microkit_state, 0, "RCA", "COSMAC Microkit", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1975, microkit, 0, 0, microkit, microkit, microkit_state, 0, "RCA", "COSMAC Microkit", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp index 53c0d522d9a..974f1ccf8ad 100644 --- a/src/mame/drivers/ngen.cpp +++ b/src/mame/drivers/ngen.cpp @@ -1176,6 +1176,6 @@ ROM_START( 386i ) ROM_END -COMP( 1983, ngen, 0, 0, ngen, ngen, ngen_state, 0, "Convergent Technologies", "NGEN CP-001", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1991, ngenb38, ngen, 0, ngen386, ngen, ngen386_state, 0, "Financial Products Corp.", "B28/38", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -COMP( 1990, 386i, ngen, 0, 386i, ngen, ngen386_state, 0, "Convergent Technologies", "386i", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1983, ngen, 0, 0, ngen, ngen, ngen_state, 0, "Convergent Technologies", "NGEN CP-001", MACHINE_IS_SKELETON ) +COMP( 1991, ngenb38, ngen, 0, ngen386, ngen, ngen386_state, 0, "Financial Products Corp.", "B28/38", MACHINE_IS_SKELETON ) +COMP( 1990, 386i, ngen, 0, 386i, ngen, ngen386_state, 0, "Convergent Technologies", "386i", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/nokia_3310.cpp b/src/mame/drivers/nokia_3310.cpp index 70760ddec54..c8000246790 100644 --- a/src/mame/drivers/nokia_3310.cpp +++ b/src/mame/drivers/nokia_3310.cpp @@ -874,15 +874,15 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -SYST( 1999, noki3210, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 3210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 1999, noki7110, 0, 0, noki7110, noki3310, noki3310_state, 0, "Nokia", "Nokia 7110", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 1999, noki8210, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 1999, noki8850, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8850", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki3310, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 3310", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki6210, 0, 0, noki6210, noki3310, noki3310_state, 0, "Nokia", "Nokia 6210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki6250, 0, 0, noki6210, noki3310, noki3310_state, 0, "Nokia", "Nokia 6250", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki8250, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8250", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2000, noki8890, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8890", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2001, noki3330, 0, 0, noki3330, noki3310, noki3310_state, 0, "Nokia", "Nokia 3330", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2002, noki3410, 0, 0, noki3410, noki3310, noki3310_state, 0, "Nokia", "Nokia 3410", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) -SYST( 2002, noki5210, 0, 0, noki3330, noki3310, noki3310_state, 0, "Nokia", "Nokia 5210", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +SYST( 1999, noki3210, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 3210", MACHINE_IS_SKELETON ) +SYST( 1999, noki7110, 0, 0, noki7110, noki3310, noki3310_state, 0, "Nokia", "Nokia 7110", MACHINE_IS_SKELETON ) +SYST( 1999, noki8210, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8210", MACHINE_IS_SKELETON ) +SYST( 1999, noki8850, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8850", MACHINE_IS_SKELETON ) +SYST( 2000, noki3310, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 3310", MACHINE_IS_SKELETON ) +SYST( 2000, noki6210, 0, 0, noki6210, noki3310, noki3310_state, 0, "Nokia", "Nokia 6210", MACHINE_IS_SKELETON ) +SYST( 2000, noki6250, 0, 0, noki6210, noki3310, noki3310_state, 0, "Nokia", "Nokia 6250", MACHINE_IS_SKELETON ) +SYST( 2000, noki8250, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8250", MACHINE_IS_SKELETON ) +SYST( 2000, noki8890, 0, 0, noki3310, noki3310, noki3310_state, 0, "Nokia", "Nokia 8890", MACHINE_IS_SKELETON ) +SYST( 2001, noki3330, 0, 0, noki3330, noki3310, noki3310_state, 0, "Nokia", "Nokia 3330", MACHINE_IS_SKELETON ) +SYST( 2002, noki3410, 0, 0, noki3410, noki3310, noki3310_state, 0, "Nokia", "Nokia 3410", MACHINE_IS_SKELETON ) +SYST( 2002, noki5210, 0, 0, noki3330, noki3310, noki3310_state, 0, "Nokia", "Nokia 5210", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/potgoldu.cpp b/src/mame/drivers/potgoldu.cpp index 278165b0e56..8d5b3a54887 100644 --- a/src/mame/drivers/potgoldu.cpp +++ b/src/mame/drivers/potgoldu.cpp @@ -119,5 +119,5 @@ ROM_START( potgoldu580 ) // TMS34010FNL-40 + MC68H705 + YMF704C + ADV476KP35 RAM ROM_LOAD( "mc68h705", 0x0000, 0x2000, NO_DUMP ) // not sure which type of mcu this is, size is a guess ROM_END -GAME( 200?, potgoldu, 0, potgold, potgold, potgold_state, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v400x?)", MACHINE_IS_SKELETON | MACHINE_NO_SOUND ) -GAME( 200?, potgoldu580, potgoldu, potgold, potgold, potgold_state, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v580F)", MACHINE_IS_SKELETON | MACHINE_NO_SOUND ) +GAME( 200?, potgoldu, 0, potgold, potgold, potgold_state, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v400x?)", MACHINE_IS_SKELETON ) +GAME( 200?, potgoldu580, potgoldu, potgold, potgold, potgold_state, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v580F)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/sanremmg.cpp b/src/mame/drivers/sanremmg.cpp index 22888bdb30c..20b3ba00358 100644 --- a/src/mame/drivers/sanremmg.cpp +++ b/src/mame/drivers/sanremmg.cpp @@ -4,7 +4,7 @@ /* San Remo / Elsy Multigame? */ // presumably a gambling game, maybe missing a sub-board? -// http://www.citylan.it/wiki/index.php/Multigame_ID +// http://www.citylan.it/wiki/index.php/Unknown_San_Remo_/_Elsy_Multigame #include "emu.h" @@ -76,4 +76,4 @@ ROM_START( sanremmg ) ROM_END -GAME( 2003, sanremmg, 0, sanremmg, sanremmg, sanremmg_state, 0, ROT0, "San Remo Games", "unknown San Remo / Elsy Multigame", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +GAME( 2003, sanremmg, 0, sanremmg, sanremmg, sanremmg_state, 0, ROT0, "San Remo Games", "unknown San Remo / Elsy Multigame", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/sansa_fuze.cpp b/src/mame/drivers/sansa_fuze.cpp index d2058b501dc..c44d79c565c 100644 --- a/src/mame/drivers/sansa_fuze.cpp +++ b/src/mame/drivers/sansa_fuze.cpp @@ -69,4 +69,4 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -CONS( 200?, sanfuze2, 0, 0, sansa_fuze, sansa_fuze, sansa_fuze_state, 0, "Sandisk", "Sansa Fuze 2", MACHINE_NO_SOUND | MACHINE_IS_SKELETON ) +CONS( 200?, sanfuze2, 0, 0, sansa_fuze, sansa_fuze, sansa_fuze_state, 0, "Sandisk", "Sansa Fuze 2", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp index 64118101e7a..d4419fcba4c 100644 --- a/src/mame/drivers/segas16b.cpp +++ b/src/mame/drivers/segas16b.cpp @@ -1405,41 +1405,6 @@ void segas16b_state::ddux_i8751_sim() } } - -//------------------------------------------------- -// goldnaxe_i8751_sim - simulate the I8751 -// from Golden Axe -//------------------------------------------------- - -void segas16b_state::goldnaxe_i8751_sim() -{ - // signal a VBLANK to the main CPU - m_maincpu->set_input_line(4, HOLD_LINE); - - // they periodically clear the data at 2cd8,2cda,2cdc,2cde and expect the MCU to fill it in - if (m_workram[0x2cd8/2] == 0 && m_workram[0x2cda/2] == 0 && m_workram[0x2cdc/2] == 0 && m_workram[0x2cde/2] == 0) - { - m_workram[0x2cd8/2] = 0x048c; - m_workram[0x2cda/2] = 0x159d; - m_workram[0x2cdc/2] = 0x26ae; - m_workram[0x2cde/2] = 0x37bf; - } - - // process any new sound data - uint16_t temp = m_workram[0x2cfc/2]; - if ((temp & 0xff00) != 0x0000) - { - address_space &space = m_maincpu->space(AS_PROGRAM); - m_mapper->write(space, 0x03, temp >> 8); - m_workram[0x2cfc/2] = temp & 0x00ff; - } - - // read inputs - m_workram[0x2cd0/2] = (ioport("P1")->read() << 8) | ioport("P2")->read(); - m_workram[0x2c96/2] = ioport("SERVICE")->read() << 8; -} - - //------------------------------------------------- // tturf_i8751_sim - simulate the I8751 // from Tough Turf @@ -6475,15 +6440,7 @@ ROM_START( goldnaxe2 ) ROM_LOAD( "mpr-12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) ) ROM_REGION( 0x1000, "mcu", 0 ) // Intel i8751 protection MCU - /* NOT CURRENTLY USED - - this chip was faulty, the internal checksum routine fails. actual code looks like it should be 99.99% the - same as the 'goldnaxe' set but unused areas have different garbage fill data, so finding the bad bits is - difficult. - - Calculated checksum: 5F8F - File checksum: 5E8F */ - ROM_LOAD( "317-0112.c2", 0x00000, 0x1000, BAD_DUMP CRC(d8f2f1c0) SHA1(04594ed5558af63cde62de6cc4020b35b8a5889e) ) + ROM_LOAD( "317-0112.c2", 0x00000, 0x1000, CRC(bda31044) SHA1(79ba41ac0768c1a55faad2f768120f15bcde4b90) ) ROM_END //************************************************************************************************************************* @@ -8737,17 +8694,6 @@ DRIVER_INIT_MEMBER(segas16b_state,exctleag_5358) m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this); } -DRIVER_INIT_MEMBER(segas16b_state,goldnaxe_5704) -{ - DRIVER_INIT_CALL(generic_5704); - m_i8751_vblank_hook = i8751_sim_delegate(&segas16b_state::goldnaxe_i8751_sim, this); - - static const uint8_t memory_control_5704[0x10] = - { 0x02,0x00, 0x02,0x08, 0x00,0x1f, 0x00,0xff, 0x00,0x20, 0x01,0x10, 0x00,0x14, 0x00,0xc4 }; - m_i8751_initial_config = memory_control_5704; -} - - DRIVER_INIT_MEMBER(segas16b_state,hwchamp_5521) { DRIVER_INIT_CALL(generic_5521); @@ -8892,7 +8838,7 @@ GAME( 1989, goldnaxe, 0, system16b_i8751_5797,goldnaxe, segas16b_state, GAME( 1989, goldnaxeu, goldnaxe, system16b_fd1094_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "Sega", "Golden Axe (set 5, US) (FD1094 317-0122)", 0 ) GAME( 1989, goldnaxej, goldnaxe, system16b_fd1094, goldnaxe, segas16b_state,generic_5704, ROT0, "Sega", "Golden Axe (set 4, Japan) (FD1094 317-0121)", 0 ) GAME( 1989, goldnaxe3, goldnaxe, system16b_fd1094, goldnaxe, segas16b_state,generic_5704, ROT0, "Sega", "Golden Axe (set 3, World) (FD1094 317-0120)", 0) -GAME( 1989, goldnaxe2, goldnaxe, system16b_i8751, goldnaxe, segas16b_state,goldnaxe_5704, ROT0, "Sega", "Golden Axe (set 2, US) (8751 317-0112)", 0 ) +GAME( 1989, goldnaxe2, goldnaxe, system16b_i8751, goldnaxe, segas16b_state,generic_5704, ROT0, "Sega", "Golden Axe (set 2, US) (8751 317-0112)", 0 ) GAME( 1989, goldnaxe1, goldnaxe, system16b_fd1094_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "Sega", "Golden Axe (set 1, World) (FD1094 317-0110)", 0 ) GAME( 1987, hwchamp, 0, system16b, hwchamp, segas16b_state,hwchamp_5521, ROT0, "Sega", "Heavyweight Champ", 0 ) diff --git a/src/mame/drivers/shtzone.cpp b/src/mame/drivers/shtzone.cpp index c3d42179a4e..9adb3247e6e 100644 --- a/src/mame/drivers/shtzone.cpp +++ b/src/mame/drivers/shtzone.cpp @@ -121,4 +121,4 @@ ROM_START( shtzone ) ROM_LOAD( "epr10894a.20", 0x00000, 0x04000, CRC(ea8901d9) SHA1(43fd8bfc395e3b2e3fbe9645d692a5eb04783d9c) ) ROM_END -GAME( 1987, shtzone, 0, shtzone, shtzone, shtzone_state, 0, ROT0, "Sega", "Shooting Zone System BIOS", MACHINE_IS_SKELETON | MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_IS_BIOS_ROOT ) +GAME( 1987, shtzone, 0, shtzone, shtzone, shtzone_state, 0, ROT0, "Sega", "Shooting Zone System BIOS", MACHINE_IS_SKELETON | MACHINE_IS_BIOS_ROOT ) diff --git a/src/mame/drivers/stlforce.cpp b/src/mame/drivers/stlforce.cpp index 25aeacfec6e..a4ecdfe30d6 100644 --- a/src/mame/drivers/stlforce.cpp +++ b/src/mame/drivers/stlforce.cpp @@ -13,13 +13,13 @@ inputs etc. by stephh ---------------------------------------- 68000P12 processor -15mHZ cyrstal next to it +15mHZ crystal next to it 2 of these: TPC 1020AFN-084c -32MHz crystal colse to this. +32MHz crystal close to this. 1 GAL 5 PROMS (16S25H) @@ -73,33 +73,31 @@ TO DO : #include "includes/stlforce.h" #include "cpu/m68000/m68000.h" -#include "machine/eepromser.h" #include "sound/okim6295.h" #include "screen.h" #include "speaker.h" - -WRITE16_MEMBER(stlforce_state::eeprom_w) +WRITE8_MEMBER(stlforce_state::eeprom_w) { - if( ACCESSING_BITS_0_7 ) - { - m_eeprom->di_write(data & 0x01); - m_eeprom->cs_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); - m_eeprom->clk_write((data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); - } + m_eeprom->di_write(data & 0x01); + m_eeprom->cs_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); + m_eeprom->clk_write((data & 0x04) ? ASSERT_LINE : CLEAR_LINE ); } -WRITE16_MEMBER(stlforce_state::oki_bank_w) +WRITE8_MEMBER(stlforce_state::oki_bank_w) { - m_oki->set_rom_bank((data>>8) & 3); + if (m_okibank.found()) + { + m_okibank->set_entry(data & 3); + } } static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x1007ff) AM_RAM_WRITE(stlforce_bg_videoram_w) AM_SHARE("bg_videoram") - AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(stlforce_mlow_videoram_w) AM_SHARE("mlow_videoram") - AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(stlforce_mhigh_videoram_w) AM_SHARE("mhigh_videoram") - AM_RANGE(0x101800, 0x1027ff) AM_RAM_WRITE(stlforce_tx_videoram_w) AM_SHARE("tx_videoram") + AM_RANGE(0x100000, 0x1007ff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram") + AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(mlow_videoram_w) AM_SHARE("mlow_videoram") + AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(mhigh_videoram_w) AM_SHARE("mhigh_videoram") + AM_RANGE(0x101800, 0x1027ff) AM_RAM_WRITE(tx_videoram_w) AM_SHARE("tx_videoram") AM_RANGE(0x102800, 0x102fff) AM_RAM /* unknown / ram */ AM_RANGE(0x103000, 0x1033ff) AM_RAM AM_SHARE("bg_scrollram") AM_RANGE(0x103400, 0x1037ff) AM_RAM AM_SHARE("mlow_scrollram") @@ -111,12 +109,17 @@ static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state ) AM_RANGE(0x109000, 0x11ffff) AM_RAM AM_RANGE(0x400000, 0x400001) AM_READ_PORT("INPUT") AM_RANGE(0x400002, 0x400003) AM_READ_PORT("SYSTEM") - AM_RANGE(0x400010, 0x400011) AM_WRITE(eeprom_w) - AM_RANGE(0x400012, 0x400013) AM_WRITE(oki_bank_w) + AM_RANGE(0x400010, 0x400011) AM_WRITE8(eeprom_w, 0x00ff) + AM_RANGE(0x400012, 0x400013) AM_WRITE8(oki_bank_w, 0xff00) AM_RANGE(0x40001e, 0x40001f) AM_WRITENOP // sprites buffer commands AM_RANGE(0x410000, 0x410001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) ADDRESS_MAP_END +static ADDRESS_MAP_START( twinbrat_oki_map, 0, 8, stlforce_state ) + AM_RANGE(0x00000, 0x1ffff) AM_ROM + AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("okibank") +ADDRESS_MAP_END + static INPUT_PORTS_START( stlforce ) PORT_START("INPUT") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) @@ -193,7 +196,7 @@ static MACHINE_CONFIG_START( stlforce ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, 15000000) MCFG_CPU_PROGRAM_MAP(stlforce_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", stlforce_state, irq4_line_hold) + MCFG_CPU_VBLANK_INT_DRIVER("screen", stlforce_state, irq4_line_hold) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") @@ -203,7 +206,7 @@ static MACHINE_CONFIG_START( stlforce ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(1*8, 47*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(stlforce_state, screen_update_stlforce) + MCFG_SCREEN_UPDATE_DRIVER(stlforce_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", stlforce) @@ -213,7 +216,7 @@ static MACHINE_CONFIG_START( stlforce ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32 , PIN7_HIGH) + MCFG_OKIM6295_ADD("oki", XTAL_32MHz/32, PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END @@ -225,6 +228,9 @@ static MACHINE_CONFIG_DERIVED( twinbrat, stlforce ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(3*8, 45*8-1, 0*8, 30*8-1) + + MCFG_DEVICE_MODIFY("oki") + MCFG_DEVICE_ADDRESS_MAP(0, twinbrat_oki_map) MACHINE_CONFIG_END ROM_START( stlforce ) @@ -245,7 +251,7 @@ ROM_START( stlforce ) ROM_LOAD( "stlforce.u33", 0xc0000, 0x40000, CRC(19415cf3) SHA1(31490a1f3321558f82667b63f3963b2ec3fa0c59) ) /* only one bank */ - ROM_REGION( 0x80000, "oki", 0 ) /* samples */ + ROM_REGION( 0x80000, "oki", 0 ) /* samples, second half 0xff filled */ ROM_LOAD( "stlforce.u1", 0x00000, 0x80000, CRC(0a55edf1) SHA1(091f12e8110c62df22b370a2e710c930ba06e8ca) ) ROM_REGION16_BE( 0x80, "eeprom", 0 ) @@ -309,21 +315,9 @@ ROM_START( twinbrat ) ROM_LOAD( "9.bin", 0x080000, 0x40000, CRC(13194d89) SHA1(95c35b6012f98a64630abb40fd55b24ff8a5e031) ) ROM_LOAD( "8.bin", 0x0c0000, 0x40000, CRC(79f14528) SHA1(9c07d9a9e59f69a525bbaec05d74eb8d21bb9563) ) - ROM_REGION( 0x080000, "user1", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) /* Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked */ ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(76296578) SHA1(04eca78abe60b283269464c0d12815579126ac08) ) - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is what gets switched */ - ROM_REGION( 0x100000, "oki", 0 ) /* Samples */ - ROM_COPY( "user1", 0x000000, 0x000000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x020000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x040000, 0x020000) - ROM_COPY( "user1", 0x020000, 0x060000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x080000, 0x020000) - ROM_COPY( "user1", 0x040000, 0x0a0000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000) - ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000) - ROM_REGION16_BE( 0x80, "eeprom", 0 ) ROM_LOAD( "eeprom-twinbrat.bin", 0x0000, 0x0080, CRC(9366263d) SHA1(ff5155498ed0b349ecc1ce98a39566b642201cf2) ) ROM_END @@ -345,33 +339,24 @@ ROM_START( twinbrata ) ROM_LOAD( "9.bin", 0x080000, 0x40000, CRC(13194d89) SHA1(95c35b6012f98a64630abb40fd55b24ff8a5e031) ) ROM_LOAD( "8.bin", 0x0c0000, 0x40000, CRC(79f14528) SHA1(9c07d9a9e59f69a525bbaec05d74eb8d21bb9563) ) - ROM_REGION( 0x080000, "user1", 0 ) /* Samples */ + ROM_REGION( 0x080000, "oki", 0 ) /* Samples, 0x00000 - 0x20000 fixed, 0x20000 - 0x40000 banked */ ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(76296578) SHA1(04eca78abe60b283269464c0d12815579126ac08) ) - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is what gets switched */ - ROM_REGION( 0x100000, "oki", 0 ) /* Samples */ - ROM_COPY( "user1", 0x000000, 0x000000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x020000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x040000, 0x020000) - ROM_COPY( "user1", 0x020000, 0x060000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x080000, 0x020000) - ROM_COPY( "user1", 0x040000, 0x0a0000, 0x020000) - ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000) - ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000) - ROM_REGION16_BE( 0x80, "eeprom", 0 ) ROM_LOAD( "eeprom-twinbrat.bin", 0x0000, 0x0080, CRC(9366263d) SHA1(ff5155498ed0b349ecc1ce98a39566b642201cf2) ) ROM_END -DRIVER_INIT_MEMBER(stlforce_state,stlforce) +DRIVER_INIT_MEMBER(stlforce_state, stlforce) { m_sprxoffs = 0; } -DRIVER_INIT_MEMBER(stlforce_state,twinbrat) +DRIVER_INIT_MEMBER(stlforce_state, twinbrat) { m_sprxoffs = 9; + + m_okibank->configure_entries(0, 4, memregion("oki")->base(), 0x20000); + m_okibank->set_entry(0); } diff --git a/src/mame/drivers/symbolics.cpp b/src/mame/drivers/symbolics.cpp index 6a5ecadd603..91ccaa94adf 100644 --- a/src/mame/drivers/symbolics.cpp +++ b/src/mame/drivers/symbolics.cpp @@ -392,4 +392,4 @@ ROM_END ******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1984, s3670, 0, 0, symbolics, symbolics, symbolics_state, symbolics, "Symbolics", "3670", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1984, s3670, 0, 0, symbolics, symbolics, symbolics_state, symbolics, "Symbolics", "3670", MACHINE_IS_SKELETON ) diff --git a/src/mame/includes/segas16b.h b/src/mame/includes/segas16b.h index 0c078a87cd1..5d255e7f8b9 100644 --- a/src/mame/includes/segas16b.h +++ b/src/mame/includes/segas16b.h @@ -115,7 +115,6 @@ public: DECLARE_DRIVER_INIT(ddux_5704); DECLARE_DRIVER_INIT(snapper); DECLARE_DRIVER_INIT(shinobi4_5521); - DECLARE_DRIVER_INIT(goldnaxe_5704); DECLARE_DRIVER_INIT(defense_5358_small); DECLARE_DRIVER_INIT(sjryuko_5358_small); DECLARE_DRIVER_INIT(exctleag_5358); @@ -175,7 +174,6 @@ protected: void altbeasj_i8751_sim(); void altbeas5_i8751_sim(); void ddux_i8751_sim(); - void goldnaxe_i8751_sim(); void tturf_i8751_sim(); void wb3_i8751_sim(); diff --git a/src/mame/includes/stlforce.h b/src/mame/includes/stlforce.h index bec81c82259..f1b769bd013 100644 --- a/src/mame/includes/stlforce.h +++ b/src/mame/includes/stlforce.h @@ -1,6 +1,6 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -#include "sound/okim6295.h" + #include "machine/eepromser.h" class stlforce_state : public driver_device @@ -9,7 +9,6 @@ public: stlforce_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_oki(*this, "oki"), m_eeprom(*this, "eeprom"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), @@ -21,10 +20,10 @@ public: m_mlow_scrollram(*this, "mlow_scrollram"), m_mhigh_scrollram(*this, "mhigh_scrollram"), m_vidattrram(*this, "vidattrram"), - m_spriteram(*this, "spriteram") { } + m_spriteram(*this, "spriteram"), + m_okibank(*this, "okibank") { } required_device<cpu_device> m_maincpu; - required_device<okim6295_device> m_oki; required_device<eeprom_serial_93cxx_device> m_eeprom; required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; @@ -39,6 +38,8 @@ public: required_shared_ptr<uint16_t> m_vidattrram; required_shared_ptr<uint16_t> m_spriteram; + optional_memory_bank m_okibank; + tilemap_t *m_bg_tilemap; tilemap_t *m_mlow_tilemap; tilemap_t *m_mhigh_tilemap; @@ -46,22 +47,22 @@ public: int m_sprxoffs; - DECLARE_WRITE16_MEMBER(stlforce_bg_videoram_w); - DECLARE_WRITE16_MEMBER(stlforce_mlow_videoram_w); - DECLARE_WRITE16_MEMBER(stlforce_mhigh_videoram_w); - DECLARE_WRITE16_MEMBER(stlforce_tx_videoram_w); - DECLARE_WRITE16_MEMBER(eeprom_w); - DECLARE_WRITE16_MEMBER(oki_bank_w); + DECLARE_WRITE16_MEMBER(bg_videoram_w); + DECLARE_WRITE16_MEMBER(mlow_videoram_w); + DECLARE_WRITE16_MEMBER(mhigh_videoram_w); + DECLARE_WRITE16_MEMBER(tx_videoram_w); + DECLARE_WRITE8_MEMBER(eeprom_w); + DECLARE_WRITE8_MEMBER(oki_bank_w); DECLARE_DRIVER_INIT(twinbrat); DECLARE_DRIVER_INIT(stlforce); - TILE_GET_INFO_MEMBER(get_stlforce_bg_tile_info); - TILE_GET_INFO_MEMBER(get_stlforce_mlow_tile_info); - TILE_GET_INFO_MEMBER(get_stlforce_mhigh_tile_info); - TILE_GET_INFO_MEMBER(get_stlforce_tx_tile_info); + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_mlow_tile_info); + TILE_GET_INFO_MEMBER(get_mhigh_tile_info); + TILE_GET_INFO_MEMBER(get_tx_tile_info); virtual void video_start() override; - uint32_t screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/video/stlforce.cpp b/src/mame/video/stlforce.cpp index 1eada6c3ead..ad52fac5e6a 100644 --- a/src/mame/video/stlforce.cpp +++ b/src/mame/video/stlforce.cpp @@ -1,13 +1,13 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -/* video/stlforce.c - see main driver for other notes */ +/* video/stlforce.cpp - see main driver for other notes */ #include "emu.h" #include "includes/stlforce.h" /* background, appears to be the bottom layer */ -TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_bg_tile_info) +TILE_GET_INFO_MEMBER(stlforce_state::get_bg_tile_info) { int tileno,colour; @@ -17,7 +17,7 @@ TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_bg_tile_info) SET_TILE_INFO_MEMBER(0,tileno,colour,0); } -WRITE16_MEMBER(stlforce_state::stlforce_bg_videoram_w) +WRITE16_MEMBER(stlforce_state::bg_videoram_w) { m_bg_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); @@ -25,7 +25,7 @@ WRITE16_MEMBER(stlforce_state::stlforce_bg_videoram_w) /* middle layer, low */ -TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_mlow_tile_info) +TILE_GET_INFO_MEMBER(stlforce_state::get_mlow_tile_info) { int tileno,colour; @@ -38,7 +38,7 @@ TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_mlow_tile_info) SET_TILE_INFO_MEMBER(0,tileno,colour,0); } -WRITE16_MEMBER(stlforce_state::stlforce_mlow_videoram_w) +WRITE16_MEMBER(stlforce_state::mlow_videoram_w) { m_mlow_videoram[offset] = data; m_mlow_tilemap->mark_tile_dirty(offset); @@ -46,7 +46,7 @@ WRITE16_MEMBER(stlforce_state::stlforce_mlow_videoram_w) /* middle layer, high */ -TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_mhigh_tile_info) +TILE_GET_INFO_MEMBER(stlforce_state::get_mhigh_tile_info) { int tileno,colour; @@ -59,7 +59,7 @@ TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_mhigh_tile_info) SET_TILE_INFO_MEMBER(0,tileno,colour,0); } -WRITE16_MEMBER(stlforce_state::stlforce_mhigh_videoram_w) +WRITE16_MEMBER(stlforce_state::mhigh_videoram_w) { m_mhigh_videoram[offset] = data; m_mhigh_tilemap->mark_tile_dirty(offset); @@ -67,7 +67,7 @@ WRITE16_MEMBER(stlforce_state::stlforce_mhigh_videoram_w) /* text layer, appears to be the top layer */ -TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_tx_tile_info) +TILE_GET_INFO_MEMBER(stlforce_state::get_tx_tile_info) { int tileno,colour; @@ -81,7 +81,7 @@ TILE_GET_INFO_MEMBER(stlforce_state::get_stlforce_tx_tile_info) SET_TILE_INFO_MEMBER(1,tileno,colour,0); } -WRITE16_MEMBER(stlforce_state::stlforce_tx_videoram_w) +WRITE16_MEMBER(stlforce_state::tx_videoram_w) { m_tx_videoram[offset] = data; m_tx_tilemap->mark_tile_dirty(offset); @@ -120,7 +120,7 @@ void stlforce_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec } } -uint32_t stlforce_state::screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t stlforce_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int i; @@ -167,17 +167,17 @@ uint32_t stlforce_state::screen_update_stlforce(screen_device &screen, bitmap_in m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); m_mlow_tilemap->draw(screen, bitmap, cliprect, 0,0); m_mhigh_tilemap->draw(screen, bitmap, cliprect, 0,0); - draw_sprites(bitmap,cliprect); + draw_sprites(bitmap, cliprect); m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } void stlforce_state::video_start() { - m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_bg_tile_info),this), TILEMAP_SCAN_COLS, 16,16,64,16); - m_mlow_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_mlow_tile_info),this), TILEMAP_SCAN_COLS, 16,16,64,16); - m_mhigh_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_mhigh_tile_info),this),TILEMAP_SCAN_COLS, 16,16,64,16); - m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,64,32); + m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16,16,64,16); + m_mlow_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_mlow_tile_info),this), TILEMAP_SCAN_COLS, 16,16,64,16); + m_mhigh_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_mhigh_tile_info),this),TILEMAP_SCAN_COLS, 16,16,64,16); + m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stlforce_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,64,32); m_mlow_tilemap->set_transparent_pen(0); m_mhigh_tilemap->set_transparent_pen(0); diff --git a/src/osd/modules/output/network.cpp b/src/osd/modules/output/network.cpp index 63ab96e499d..e350cfc99dd 100644 --- a/src/osd/modules/output/network.cpp +++ b/src/osd/modules/output/network.cpp @@ -10,6 +10,9 @@ #include "output_module.h" #include "modules/osdmodule.h" +#include "modules/lib/osdobj_common.h" + +#include "emu.h" #include <thread> #include <set> @@ -36,9 +39,13 @@ public: { } - void start() + void start(running_machine &machine) { + m_machine = &machine; m_clients->insert(shared_from_this()); + // now send "hello = 1" to the newly connected client + std::strncpy(m_data, "hello = 1\1", max_length); + do_write(10); do_read(); } @@ -49,6 +56,47 @@ private: do_write(msg.size()); } + void handle_message(char *msg) + { + char verb[1024]; + int value; + + //printf("handle_message: got [%s]\n", msg); + + std::uint32_t ch = 0; + while (msg[ch] != ' ') + { + ch++; + } + msg[ch] = '\0'; + ch++; + std::strncpy(verb, msg, sizeof(verb)-1); + //printf("verb = [%s], ", verb); + + while (msg[ch] != ' ') + { + ch++; + } + + ch++; + value = atoi(&msg[ch]); + //printf("value = %d\n", value); + + if (!std::strcmp(verb, "send_id")) + { + if (value == 0) + { + std::snprintf(m_data, max_length, "req_id = %s\1", machine().system().name); + } + else + { + std::snprintf(m_data, max_length, "req_id = %s\1", machine().output().id_to_name(value)); + } + + do_write(std::strlen(m_data)); + } + } + void do_read() { auto self(shared_from_this()); @@ -57,6 +105,11 @@ private: { if (!ec) { + if (length > 0) + { + m_input_m_data[length] = '\0'; + handle_message(m_input_m_data); + } do_read(); } else @@ -69,7 +122,7 @@ private: void do_write(std::size_t length) { auto self(shared_from_this()); - asio::async_write(m_socket, asio::buffer(m_data, length), + asio::async_write(m_socket, asio::buffer(m_data, length), [this, self](std::error_code ec, std::size_t /*length*/) { if (ec) @@ -79,19 +132,23 @@ private: }); } + running_machine &machine() const { return *m_machine; } + asio::ip::tcp::socket m_socket; enum { max_length = 1024 }; char m_data[max_length]; char m_input_m_data[max_length]; client_set *m_clients; + running_machine *m_machine; }; class output_network_server { public: - output_network_server(asio::io_context& io_context, short port) : + output_network_server(asio::io_context& io_context, short port, running_machine &machine) : m_acceptor(io_context, asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port)) { + m_machine = &machine; do_accept(); } @@ -109,15 +166,18 @@ private: { if (!ec) { - std::make_shared<output_session>(std::move(socket),&m_clients)->start(); + std::make_shared<output_session>(std::move(socket),&m_clients)->start(machine()); } do_accept(); }); } + running_machine &machine() const { return *m_machine; } + asio::ip::tcp::acceptor m_acceptor; client_set m_clients; + running_machine *m_machine; }; @@ -143,6 +203,8 @@ public: virtual void exit() override { + // tell clients MAME is shutting down + notify("mamerun", 0); m_io_context->stop(); m_working_thread.join(); delete m_server; @@ -154,7 +216,7 @@ public: virtual void notify(const char *outname, int32_t value) override { static char buf[256]; - sprintf(buf, "%s = %d\n", ((outname==nullptr) ? "none" : outname), value); + sprintf(buf, "%s = %d\1", ((outname==nullptr) ? "none" : outname), value); m_server->deliver_to_all(buf); } @@ -162,7 +224,7 @@ public: void process_output() { m_io_context = new asio::io_context(); - m_server = new output_network_server(*m_io_context, 8000); + m_server = new output_network_server(*m_io_context, 8000, machine()); m_io_context->run(); } |