From 2409ed4d067cb0ab77aa8b422494cf184d861834 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 13 Dec 2017 18:56:17 +0100 Subject: [PATCH 01/17] mario.cpp: verified marioo as revision G, identified the unknown PROM as the main cpu memory map decoding PROM [Bryan McPhail] --- src/mame/drivers/mario.cpp | 102 ++++++++++++++++++------------------- src/mame/mame.lst | 4 +- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/mame/drivers/mario.cpp b/src/mame/drivers/mario.cpp index b3dad1b78d6..e77418c86f4 100644 --- a/src/mame/drivers/mario.cpp +++ b/src/mame/drivers/mario.cpp @@ -216,9 +216,10 @@ static INPUT_PORTS_START( mario ) PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_3C ) ) PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!5,!6") - PORT_DIPSETTING( 0x00, "20k 40k 20k+" ) - PORT_DIPSETTING( 0x10, "30k 50k 20k+" ) - PORT_DIPSETTING( 0x20, "40k 60k 20k+" ) + PORT_DIPSETTING( 0x00, "20k only" ) + PORT_DIPSETTING( 0x10, "30k only" ) + PORT_DIPSETTING( 0x20, "40k only" ) + PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPSETTING( 0x30, DEF_STR( None ) ) PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!7,!8") PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) @@ -233,20 +234,19 @@ static INPUT_PORTS_START( mario ) INPUT_PORTS_END -static INPUT_PORTS_START( marioo ) +static INPUT_PORTS_START( mariof ) PORT_INCLUDE( mario ) PORT_MODIFY( "DSW" ) PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:!5,!6") - PORT_DIPSETTING( 0x00, "20k only" ) - PORT_DIPSETTING( 0x10, "30k only" ) - PORT_DIPSETTING( 0x20, "40k only" ) - PORT_DIPSETTING( 0x30, DEF_STR( None ) ) + PORT_DIPSETTING( 0x00, "20k 40k 20k+" ) + PORT_DIPSETTING( 0x10, "30k 50k 20k+" ) + PORT_DIPSETTING( 0x20, "40k 60k 20k+" ) INPUT_PORTS_END static INPUT_PORTS_START( marioe ) - PORT_INCLUDE( marioo ) + PORT_INCLUDE( mario ) PORT_MODIFY ( "IN1" ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 ) @@ -388,6 +388,40 @@ MACHINE_CONFIG_END *************************************/ ROM_START( mario ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "tma1-c-7f_g.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) ) /* Unknown revision */ + ROM_LOAD( "tma1-c-7e_g.7e", 0x2000, 0x2000, CRC(116b3856) SHA1(e372f846d0e5a2b9b47ebd0330293fcc8a12363f) ) + ROM_LOAD( "tma1-c-7d_g.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) ) + ROM_LOAD( "tma1-c-7c_g.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) ) + + ROM_REGION( 0x1800, "audiocpu", 0 ) /* sound */ + /* internal rom */ + ROM_FILL( 0x0000, 0x0800, 0x00) + /* first half banked */ + ROM_LOAD( "tma1-c-6k_e.6k", 0x1000, 0x0800, CRC(06b9ff85) SHA1(111a29bcb9cda0d935675fa26eca6b099a88427f) ) + /* second half always read */ + ROM_CONTINUE( 0x0800, 0x0800) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "tma1-v-3f.3f", 0x0000, 0x1000, CRC(28b0c42c) SHA1(46749568aff88a28c3b6a1ac423abd1b90742a4d) ) + ROM_LOAD( "tma1-v-3j.3j", 0x1000, 0x1000, CRC(0c8cc04d) SHA1(15fae47d701dc1ef15c943cee6aa991776ecffdf) ) + + ROM_REGION( 0x6000, "gfx2", 0 ) + ROM_LOAD( "tma1-v-7m.7m", 0x0000, 0x1000, CRC(22b7372e) SHA1(4a1c1e239cb6d483e76f50d7a3b941025963c6a3) ) + ROM_LOAD( "tma1-v-7n.7n", 0x1000, 0x1000, CRC(4f3a1f47) SHA1(0747d693b9482f6dd28b0bc484fd1d3e29d35654) ) + ROM_LOAD( "tma1-v-7p.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) ) + ROM_LOAD( "tma1-v-7s.7s", 0x3000, 0x1000, CRC(56f1d613) SHA1(9af6844dbaa3615433d0595e9e85e72493e31a54) ) + ROM_LOAD( "tma1-v-7t.7t", 0x4000, 0x1000, CRC(641f0008) SHA1(589fe108c7c11278fd897f2ded8f0498bc149cfd) ) + ROM_LOAD( "tma1-v-7u.7u", 0x5000, 0x1000, CRC(7baf5309) SHA1(d9194ff7b89a18273d37b47228fc7fb7e2a0ed1f) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) ) + + ROM_REGION( 0x0020, "decoder_prom", 0 ) + ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */ +ROM_END + +ROM_START( mariof ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "tma1-c-7f_f.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) ) ROM_LOAD( "tma1-c-7e_f.7e", 0x2000, 0x2000, CRC(94fb60d6) SHA1(e74d74aa27f87a164bdd453ab0076efeeb7d4ea3) ) @@ -417,8 +451,8 @@ ROM_START( mario ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "tma1-c-4p_1.4p", 0x0000, 0x0200, CRC(8187d286) SHA1(8a6d8e622599f1aacaeb10f7b1a39a23c8a840a0) ) /* BPROM was a MB7124E read as 82S147 */ - ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */ - ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */ + ROM_REGION( 0x0020, "decoder_prom", 0 ) + ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */ ROM_END ROM_START( marioe ) @@ -451,42 +485,8 @@ ROM_START( marioe ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "tma1-c-4p_1.4p", 0x0000, 0x0200, CRC(8187d286) SHA1(8a6d8e622599f1aacaeb10f7b1a39a23c8a840a0) ) /* BPROM was a MB7124E read as 82S147 */ - ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */ - ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */ -ROM_END - -ROM_START( marioo ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "tma1-c-7f_.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) ) /* Unknown revision */ - ROM_LOAD( "tma1-c-7f_.7e", 0x2000, 0x2000, CRC(116b3856) SHA1(e372f846d0e5a2b9b47ebd0330293fcc8a12363f) ) - ROM_LOAD( "tma1-c-7f_.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) ) - ROM_LOAD( "tma1-c-7f_.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) ) - - ROM_REGION( 0x1800, "audiocpu", 0 ) /* sound */ - /* internal rom */ - ROM_FILL( 0x0000, 0x0800, 0x00) - /* first half banked */ - ROM_LOAD( "tma1-c-6k_e.6k", 0x1000, 0x0800, CRC(06b9ff85) SHA1(111a29bcb9cda0d935675fa26eca6b099a88427f) ) - /* second half always read */ - ROM_CONTINUE( 0x0800, 0x0800) - - ROM_REGION( 0x2000, "gfx1", 0 ) - ROM_LOAD( "tma1-v-3f.3f", 0x0000, 0x1000, CRC(28b0c42c) SHA1(46749568aff88a28c3b6a1ac423abd1b90742a4d) ) - ROM_LOAD( "tma1-v-3j.3j", 0x1000, 0x1000, CRC(0c8cc04d) SHA1(15fae47d701dc1ef15c943cee6aa991776ecffdf) ) - - ROM_REGION( 0x6000, "gfx2", 0 ) - ROM_LOAD( "tma1-v-7m.7m", 0x0000, 0x1000, CRC(22b7372e) SHA1(4a1c1e239cb6d483e76f50d7a3b941025963c6a3) ) - ROM_LOAD( "tma1-v-7n.7n", 0x1000, 0x1000, CRC(4f3a1f47) SHA1(0747d693b9482f6dd28b0bc484fd1d3e29d35654) ) - ROM_LOAD( "tma1-v-7p.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) ) - ROM_LOAD( "tma1-v-7s.7s", 0x3000, 0x1000, CRC(56f1d613) SHA1(9af6844dbaa3615433d0595e9e85e72493e31a54) ) - ROM_LOAD( "tma1-v-7t.7t", 0x4000, 0x1000, CRC(641f0008) SHA1(589fe108c7c11278fd897f2ded8f0498bc149cfd) ) - ROM_LOAD( "tma1-v-7u.7u", 0x5000, 0x1000, CRC(7baf5309) SHA1(d9194ff7b89a18273d37b47228fc7fb7e2a0ed1f) ) - - ROM_REGION( 0x0200, "proms", 0 ) - ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) ) - - ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */ - ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */ + ROM_REGION( 0x0020, "decoder_prom", 0 ) + ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */ ROM_END ROM_START( marioj ) @@ -519,8 +519,8 @@ ROM_START( marioj ) ROM_REGION( 0x0200, "proms", 0 ) ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) ) - ROM_REGION( 0x0020, "unk_proms", 0 ) /* is this the color prom? */ - ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, unknown use */ + ROM_REGION( 0x0020, "decoder_prom", 0 ) + ROM_LOAD( "tma1-c-5p.5p", 0x0000, 0x0020, CRC(58d86098) SHA1(d654995004b9052b12d3b682a2b39530e70030fc) ) /* BPROM was a TBP18S030N read as 82S123, main cpu memory map decoding prom */ ROM_END ROM_START( masao ) @@ -556,8 +556,8 @@ ROM_END * *************************************/ -GAME( 1983, mario, 0, mario, mario, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision F)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mario, 0, mario, mario, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision G)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, mariof, mario, mario, mariof, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision F)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, marioe, mario, mario, marioe, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision E)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, marioo, mario, mario, marioo, mario_state, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Unknown Rev)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, marioj, mario, mario, marioj, mario_state, 0, ROT0, "Nintendo", "Mario Bros. (Japan, Revision C)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, masao, mario, masao, mario, mario_state, 0, ROT0, "bootleg", "Masao", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index e6088034cec..52b206bc560 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18309,8 +18309,8 @@ marinedt // MG (c) 1981 Taito Corporation @source:mario.cpp mario // (c) 1983 Nintendo of America marioe // (c) 1983 Nintendo of America +mariof // (c) 1983 Nintendo of America marioj // (c) 1983 Nintendo -marioo // (c) 1983 Nintendo of America masao // bootleg @source:markham.cpp @@ -20455,7 +20455,7 @@ edfp // (c) 1991 (Japan, Prototype) hachoo // (c) 1989 hayaosi1 // (c) 1993 iganinju // (c) 1988 (Japan) -inyourfa // (c) 1988 (Japan) +inyourfa // (c) 1991 (World) jitsupro // (c) 1989 (Japan) kazan // (c) 1988 (World) kickoff // (c) 1988 (Japan) From 79c848c885bb2a5e1b044ed31d5ef4d014f2a8d7 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 13 Dec 2017 18:59:15 +0100 Subject: [PATCH 02/17] tourvis.cpp: moved known games list to the software list, for consistency (nw) --- hash/pce_tourvision.xml | 126 +++++++++++++++++++++++++++++++++ src/mame/drivers/tourvis.cpp | 132 ++--------------------------------- 2 files changed, 132 insertions(+), 126 deletions(-) diff --git a/hash/pce_tourvision.xml b/hash/pce_tourvision.xml index 07ec7724262..5db30486be9 100644 --- a/hash/pce_tourvision.xml +++ b/hash/pce_tourvision.xml @@ -2,6 +2,132 @@ + + Dragon Saber - After Story of Dragon Spirit (Tourvision PCE bootleg) 1991 diff --git a/src/mame/drivers/tourvis.cpp b/src/mame/drivers/tourvis.cpp index 05837d2d190..781a7e81f1e 100644 --- a/src/mame/drivers/tourvis.cpp +++ b/src/mame/drivers/tourvis.cpp @@ -14,129 +14,7 @@ By now, six known BIOS versions, U4-52 (dumped from a board with-subboard PCB), U4-55 (dumped from an integrated PCB) and U4-60 (dumped from a board with-subboard PCB). - Known games (followed by game ID, some are duplicate): - - 1943 Kai (65) - Adventure Island (64) - Aero Blaster (32) - After Burner II (46) - Alice in Wonderland (61) - Ankoku Densetsu (Legendary Axe II) (33) - Armed-F (?) - Ballistix (186) - Barunba (39) - Batman (30) - Be Ball (93) - * Blodia - Bomberman (71) - Bomberman 93 (204) - Bull Fight (185) - Burning Angels (49) - Cadash (203) - Chozetsurinjin Beraboh Man (Super Foolish Man) (27) - Chuka Taisen (37) - Columns (90) - Coryoon (43) - * Cross Wiber - Cyber Core (13) - Daisempuu (3) - Dead Moon (?) - Devil Crash (47) - Die Hard (73) - Dodge Ball (194) - Doraemon Meikyuu Daisakusen (20) - Doreamon - Nobita's Dorabian Night (Doraemon II, 43) - Down Load (43) - Dragon Egg! (98) - Dragon Saber (65) - Dragon Spirit (?) - Drop Rock Hora Hora (12) - Dungeon Explorer (209) - * F1 Triple Battle - Fighting Run (195) - Final Blaster (29) - Final Lap Twin (79) - Final Match Tennis (62) - Final Soldier (45) - Formation Soccer (1) - Gomola Speed (27) - Gradius (187) - Gunhed (148) - Hana Taka Daka (Super Long Nose Goblin) (6) - * Hatris - Hit The Ice (97) - Image Fight (99) - Jackie Chan (54) - Jinmu Densho (19) - Kato & Ken (42) - Kiki Kaikai (120) - Knight Rider Special (193) - Legend Of Hero Tomna (56) - Makyo Densetsu - The Legendary Axe (40) - Mashin Eiyuden Wataru (27) - Mesopotamia (197) - Mizubaku Daibouken Liquid Kids (10) (marketed as "Parasol Stars II") - Mr. Heli (23) - Ninja Ryukenden (10) - Operation Wolf (26) - Ordyne (94) - Out Run (38) - Override (53) - Pac-Land (16) - * Paranoia (18) - PC Genjin (8) - PC Genjin 2 (84) - PC Denjin Punkic Cyborg (201) - Power Drift (200) - Power Eleven (83) - * Power Golf - Power League IV (?) - Power Sports (199) - Power Tennis (183) - Pro Yakyuu World Stadium '91 (192) - Psycho Chaser (14) - Puzzle Boy (57) - Puzznic (69) - R-Type II (61) - * Rabio Lepus Special - Raiden (111) - Rastan Saga II (33, possibly incorrect riser) - Saigo no Nindou (44) - Saint Dragon (36) - Salamander (184) - Shinobi (5) - Side Arms (2) - Skweek (89) - Sokoban World (66) - Soldier Blade (23) - Son Son II (80) - Special Criminal Investigation (58) - Spin Pair (50) - Splatterhouse (148) - Super Star Soldier (42) - Super Volley ball (9) - Tatsujin (31) - Terra Cresta II (27) - The NewZealand Story (11) - Thunder Blade (34) - Tiger Road (10) - * Titan - Toilet Kids (196) - Toy Shop Boys (51) - Tricky (42) - * TV Sports - USA Pro Basketball (206) - marketed as NBA - Veigues (40) - Vigilante (8) - Violent Soldier (no ID, V1 cart) - Volfied (68) - W-Ring (21) - Winning Shot (28) - World Jockey (202) - Xevious (?) - - Rumored games: - * Parasol Stars - often been mentioned, but still not confirmed, for Tourvision. For now it's been added from its NEC PC-Engine dump, which it would be likely identical. + Known games list can be found in hash/pce_tourvision.xml. * Denotes Not Dumped @@ -327,11 +205,13 @@ public: DECLARE_WRITE8_MEMBER(tourvision_i8155_b_w); DECLARE_WRITE8_MEMBER(tourvision_i8155_c_w); DECLARE_WRITE_LINE_MEMBER(tourvision_timer_out); + + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(tourvision_cart); + +private: required_device m_subcpu; required_device m_cart; uint32_t m_rom_size; - - DECLARE_DEVICE_IMAGE_LOAD_MEMBER(tourvision_cart); }; DEVICE_IMAGE_LOAD_MEMBER( tourvision_state, tourvision_cart ) @@ -577,4 +457,4 @@ ROM_START(tourvis) ROM_END -GAME( 19??, tourvis, 0, tourvision, tourvision, tourvision_state, pce_common, ROT0, "bootleg (Tourvision)", "Tourvision PCE bootleg", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) +GAME( 19??, tourvis, 0, tourvision, tourvision, tourvision_state, pce_common, ROT0, "bootleg (Tourvision)", "Tourvision PCE bootleg", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING ) From d20e1498600c4b5e68a08cfa1b203e3aca970a46 Mon Sep 17 00:00:00 2001 From: Ted Green Date: Wed, 13 Dec 2017 10:52:26 -0700 Subject: [PATCH 03/17] smc91c9x: Add packet padding and add variable transmit timing. (nw) --- src/devices/machine/smc91c9x.cpp | 64 +++++++++++++++++++++----------- src/devices/machine/smc91c9x.h | 7 +++- 2 files changed, 47 insertions(+), 24 deletions(-) diff --git a/src/devices/machine/smc91c9x.cpp b/src/devices/machine/smc91c9x.cpp index 1ff8872b8d0..2e9cb12932d 100644 --- a/src/devices/machine/smc91c9x.cpp +++ b/src/devices/machine/smc91c9x.cpp @@ -197,7 +197,9 @@ void smc91c9x_device::device_reset() m_tx_timer->reset(); // Setup real network if enabled + m_network_available = false; if (netdev_count()) { + m_network_available = true; osd_list_network_adapters(); unsigned char const *const mac = (const unsigned char *)get_mac(); if (VERBOSE & LOG_GENERAL) @@ -283,7 +285,7 @@ void smc91c9x_device::clear_rx_fifo() { } -int smc91c9x_device::is_broadcast(uint8_t mac_address[]) +int smc91c9x_device::is_broadcast(const uint8_t *mac_address) { int i; @@ -301,7 +303,7 @@ int smc91c9x_device::is_broadcast(uint8_t mac_address[]) } -int smc91c9x_device::ethernet_packet_is_for_me(const uint8_t mac_address[]) +int smc91c9x_device::ethernet_packet_is_for_me(const uint8_t *mac_address) { // tcpdump -i eth0 -q ether host 08:00:1e:01:ae:a5 or ether broadcast or ether dst 09:00:1e:00:00:00 or ether dst 09:00:1e:00:00:01 // wireshark filter: eth.addr eq 08:00:1e:01:ae:a5 or eth.dst eq ff:ff:ff:ff:ff:ff or eth.dst eq 09:00:1e:00:00:00 or eth.dst eq 09:00:1e:00:00:01 @@ -325,7 +327,7 @@ int smc91c9x_device::ethernet_packet_is_for_me(const uint8_t mac_address[]) } // skip Ethernet broadcast packets if RECV_BROAD is not set - if (is_broadcast((uint8_t *)mac_address)) + if (is_broadcast(mac_address)) { LOG(" -- Broadcast rx\n"); return 2; @@ -379,7 +381,7 @@ void smc91c9x_device::recv_cb(uint8_t *data, int length) // Try to request a packet number int packet_num; if (!alloc_req(0, packet_num)) { - logerror("recv_cb: Couldn't allocate a recieve packet\n"); + logerror("recv_cb: Couldn't allocate a receive packet\n"); return; } @@ -457,6 +459,12 @@ void smc91c9x_device::update_ethernet_irq() else { m_reg[EREG_INTERRUPT] &= ~EINT_TX_EMPTY; } + //if (m_comp_tx.empty()) { + // m_reg[EREG_INTERRUPT] &= ~EINT_TX; + //} + //else { + // m_reg[EREG_INTERRUPT] |= EINT_TX; + //} // Check rx completion fifo empty if (m_comp_rx.empty()) m_reg[EREG_INTERRUPT] &= ~EINT_RCV; @@ -504,24 +512,36 @@ TIMER_CALLBACK_MEMBER(smc91c9x_device::send_frame) if (is_broadcast(&tx_buffer[4])) m_reg[EREG_EPH_STATUS] |= 0x0040; - // signal a transmit interrupt + // Set Tx Empty interrupt + // TODO: If more than 1 packet is enqueued should wait for all to finish + //m_reg[EREG_INTERRUPT] |= EINT_TX_EMPTY; m_reg[EREG_INTERRUPT] |= EINT_TX; + //m_comp_tx.erase(m_comp_tx.begin()); m_sent++; update_stats(); int buffer_len = ((tx_buffer[3] << 8) | tx_buffer[2]) & 0x7ff; - + // Remove status, length, [pad], control + if (tx_buffer[buffer_len - 1] & 0x20) + buffer_len -= 5; + else + buffer_len -= 6; + // Add padding + if (buffer_len < 64 && (m_reg[EREG_TCR] & 0x0080)) { + while (buffer_len < 64) + tx_buffer[4 + buffer_len++] = 0x00; + } if (VERBOSE & LOG_GENERAL) { logerror("TX: "); - for (int i = 4; i < (4 + ETHERNET_ADDR_SIZE); i++) - logerror("%.2X", tx_buffer[i]); + for (int i = 0; i < ETHERNET_ADDR_SIZE; i++) + logerror("%.2X", tx_buffer[4 + i]); logerror(" "); - for (int i = 0; i < (buffer_len - (ETHERNET_ADDR_SIZE + 4)); i++) - logerror("%.2X", tx_buffer[4 + ETHERNET_ADDR_SIZE + i]); + for (int i = ETHERNET_ADDR_SIZE; i < buffer_len; i++) + logerror("%.2X", tx_buffer[4 + i]); logerror("--- %d/0x%x bytes\n", buffer_len, buffer_len); } @@ -557,14 +577,8 @@ TIMER_CALLBACK_MEMBER(smc91c9x_device::send_frame) } else { - // odd or even sized frame ? - if (tx_buffer[buffer_len - 1] & 0x20) - buffer_len--; - else - buffer_len -= 2; - // Send the frame - if (!send(&tx_buffer[4], buffer_len - 4)) + if (!send(&tx_buffer[4], buffer_len)) { // FIXME: failed to send the Ethernet packet //logerror("failed to send Ethernet packet\n"); @@ -574,8 +588,8 @@ TIMER_CALLBACK_MEMBER(smc91c9x_device::send_frame) // Loopback if loopback is set or fduplx is set // TODO: Figure out correct size // TODO: Check for addtional filter options for FDUPLX mode - if ((m_reg[EREG_TCR] & 0x2002) || (m_reg[EREG_TCR] & 0x0800)) - recv_cb(&tx_buffer[4], buffer_len - 2); + if ((m_reg[EREG_TCR] & 0x2002) || (m_network_available && (m_reg[EREG_TCR] & 0x0800))) + recv_cb(&tx_buffer[4], buffer_len); } } // Update status in the transmit word @@ -664,7 +678,13 @@ void smc91c9x_device::process_command(uint16_t data) const int packet_number = m_reg[EREG_PNR_ARR] & 0xff; // Push packet number tx completion fifo m_comp_tx.push_back(packet_number); - m_tx_timer->adjust(attotime::from_usec(10)); + // Calculate transmit time + uint8_t *const tx_buffer = &m_buffer[packet_number * ETHER_BUFFER_SIZE]; + int buffer_len = ((tx_buffer[3] << 8) | tx_buffer[2]) & 0x7ff; + buffer_len -= 6; + // ~16 Mbps + int usec = ((buffer_len * 8) >> 4) + 1; + m_tx_timer->adjust(attotime::from_usec(usec)); } break; @@ -711,7 +731,7 @@ READ16_MEMBER( smc91c9x_device::read ) case EREG_PNR_ARR: if ( ACCESSING_BITS_8_15 ) { - m_reg[EREG_INTERRUPT] &= ~0x0008; + m_reg[EREG_INTERRUPT] &= ~EINT_ALLOC; update_ethernet_irq(); } break; @@ -768,7 +788,7 @@ WRITE16_MEMBER( smc91c9x_device::write ) /* update the data generically */ - if (offset != 7 && offset < sizeof(m_reg)) + if (offset != EREG_BANK && offset < sizeof(m_reg)) LOG("%s:smc91c9x_w(%s) = [%04X]<-%04X & (%04X & %04X)\n", machine().describe_context(), ethernet_regname[offset], offset, data, mem_mask , m_regmask[offset]); mem_mask &= m_regmask[offset]; diff --git a/src/devices/machine/smc91c9x.h b/src/devices/machine/smc91c9x.h index 9f9cf1558e0..cd4018c4f65 100644 --- a/src/devices/machine/smc91c9x.h +++ b/src/devices/machine/smc91c9x.h @@ -40,6 +40,9 @@ private: static constexpr unsigned ETHER_BUFFERS = 16; static constexpr unsigned ETHERNET_ADDR_SIZE = 6; + // external network is present + bool m_network_available; + // mmu // The bits in these vectors indicate a packet has been allocated u32 m_alloc_rx, m_alloc_tx; @@ -74,8 +77,8 @@ private: emu_timer* m_tx_timer; - int ethernet_packet_is_for_me(const uint8_t mac_address[]); - int is_broadcast(uint8_t mac_address[]); + int ethernet_packet_is_for_me(const uint8_t *mac_address); + int is_broadcast(const uint8_t *mac_address); void update_ethernet_irq(); void update_stats(); From f331940f870d0996a8cbb0fa1982c9b69c154a3d Mon Sep 17 00:00:00 2001 From: Ted Green Date: Wed, 13 Dec 2017 10:53:25 -0700 Subject: [PATCH 04/17] vegas: Disconnect ethernet for warfa. Fixes game hang at start. (nw) --- src/mame/drivers/vegas.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp index acf6e55bf9f..6386a709f5d 100644 --- a/src/mame/drivers/vegas.cpp +++ b/src/mame/drivers/vegas.cpp @@ -2306,6 +2306,8 @@ DRIVER_INIT_MEMBER(vegas_state,warfa) { /* speedups */ m_maincpu->mips3drc_add_hotspot(0x8009436C, 0x0C031663, 250); /* confirmed */ + // TODO: For some reason game hangs if ethernet is on + m_ethernet->set_link_connected(false); } From f8a56513de2c5bc32c12f66d072f5754652302d1 Mon Sep 17 00:00:00 2001 From: Ted Green Date: Wed, 13 Dec 2017 10:54:19 -0700 Subject: [PATCH 05/17] seattle: Add gearshift to sfrush and sfrushrk. --- src/mame/drivers/seattle.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/seattle.cpp b/src/mame/drivers/seattle.cpp index 9f1dc9df308..48ad4959f39 100644 --- a/src/mame/drivers/seattle.cpp +++ b/src/mame/drivers/seattle.cpp @@ -496,6 +496,7 @@ WRITE32_MEMBER(seattle_state::interrupt_config_w) { int irq; COMBINE_DATA(&m_interrupt_config); + //logerror("interrupt_config_w: m_interrupt_config=%08x\n", m_interrupt_config); /* VBLANK: clear anything pending on the old IRQ */ if (m_vblank_irq_num != 0) @@ -1295,15 +1296,18 @@ static INPUT_PORTS_START( sfrush ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON14 ) PORT_NAME("Track 2") PORT_PLAYER(1) /* track 2 */ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON15 ) PORT_NAME("Track 3") PORT_PLAYER(1) /* track 3 */ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON16 ) PORT_NAME("Track 4") PORT_PLAYER(1) /* track 4 */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("1st Gear") PORT_PLAYER(1) /* 1st gear */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("2nd Gear") PORT_PLAYER(1) /* 2nd gear */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("3rd Gear") PORT_PLAYER(1) /* 3rd gear */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("4th Gear") PORT_PLAYER(1) /* 4th gear */ + PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, seattle_state, gearshift_r, "GEAR" ) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_START("GEAR") + PORT_BIT( 0x1, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("1st Gear") PORT_PLAYER(1) /* 1st gear */ + PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("2nd Gear") PORT_PLAYER(1) /* 2nd gear */ + PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("3rd Gear") PORT_PLAYER(1) /* 3rd gear */ + PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("4th Gear") PORT_PLAYER(1) /* 4th gear */ + PORT_MODIFY("IN2") PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) From ba2694fb099641c29c56e6c1141c81eda6abc2f7 Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 13 Dec 2017 19:06:35 +0100 Subject: [PATCH 06/17] New machines marked as NOT_WORKING ---------------------------------- Ninja Gaiden (Tiger handheld) [hap, Sean Riddle] --- src/mame/drivers/hh_sm510.cpp | 112 ++++++++++++++++++++++++++++++++++ src/mame/drivers/tispeak.cpp | 5 +- src/mame/drivers/tispellb.cpp | 2 +- src/mame/mame.lst | 1 + 4 files changed, 116 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index 9fc771ed7e3..18a663de354 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -13,6 +13,7 @@ TODO: - improve/redo SVGs of: gnw_mc25, gnw_eg26, exospace - confirm gnw_mc25/gnw_eg26 rom (dumped from Soviet clone, but pretty confident that it's same) + - identify lcd segments for tgaiden ***************************************************************************/ @@ -1894,6 +1895,107 @@ MACHINE_CONFIG_END +/*************************************************************************** + + Tiger Ninja Gaiden (model 7-787) + * Sharp SM510 under epoxy (die label M82) + * lcd screen with custom segments, 1 led, 1-bit sound + +***************************************************************************/ + +class tgaiden_state : public hh_sm510_state +{ +public: + tgaiden_state(const machine_config &mconfig, device_type type, const char *tag) + : hh_sm510_state(mconfig, type, tag) + { + m_inp_lines = 5; + m_inp_fixed = 5; + } + + DECLARE_WRITE8_MEMBER(write_r); +}; + +// handlers + +WRITE8_MEMBER(tgaiden_state::write_r) +{ + // R1: speaker out + piezo_r1_w(space, 0, data & 1); + + // R2: led + //.. +} + +// config + +static INPUT_PORTS_START( tgaiden ) + PORT_START("IN.0") // S1 + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.1") // S2 + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.2") // S3 + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.3") // S4 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Jump") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Attack/Pick") + PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.4") // S5 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause") + PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.5") // GND! + PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start") + + PORT_START("BA") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound") + + PORT_START("B") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF ) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") +INPUT_PORTS_END + +static MACHINE_CONFIG_START( tgaiden ) + + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz) + MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w)) + MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r)) + MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w)) + MCFG_SM510_WRITE_R_CB(WRITE8(tgaiden_state, write_r)) + MCFG_SM510_READ_BA_CB(IOPORT("BA")) + MCFG_SM510_READ_B_CB(IOPORT("B")) + + /* video hardware */ + MCFG_SCREEN_SVG_ADD("screen", "svg") + MCFG_SCREEN_REFRESH_RATE(50) + MCFG_SCREEN_SIZE(1920, 1080) + MCFG_SCREEN_VISIBLE_AREA(0, 1920-1, 0, 1080-1) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) + MCFG_DEFAULT_LAYOUT(layout_svg) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + + + + + /*************************************************************************** Tiger Batman (model 7-799) @@ -3099,6 +3201,15 @@ ROM_START( tkarnov ) ROM_END +ROM_START( tgaiden ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "m82", 0x0000, 0x1000, CRC(278eafb0) SHA1(14396a0010bade0fde705969151200ed432321e7) ) + + ROM_REGION( 100000, "svg", 0) + ROM_LOAD( "tgaiden.svg", 0, 100000, NO_DUMP ) +ROM_END + + ROM_START( tbatman ) ROM_REGION( 0x1000, "maincpu", 0 ) ROM_LOAD( "597", 0x0000, 0x1000, CRC(8b7acc97) SHA1(fe811675dc5c5ef9f6f969685c933926c8b9e868) ) @@ -3224,6 +3335,7 @@ CONS( 1989, tgaunt, 0, 0, tgaunt, tgaunt, tgaunt_state, 0, "T CONS( 1991, trobhood, tgaunt, 0, trobhood, trobhood, tgaunt_state, 0, "Tiger Electronics", "Robin Hood (handheld)", MACHINE_SUPPORTS_SAVE ) CONS( 1989, tddragon, 0, 0, tddragon, tddragon, tddragon_state, 0, "Tiger Electronics (licensed from Technos/Tradewest)", "Double Dragon (handheld)", MACHINE_SUPPORTS_SAVE ) CONS( 1989, tkarnov, 0, 0, tkarnov, tkarnov, tkarnov_state, 0, "Tiger Electronics (licensed from Data East)", "Karnov (handheld)", MACHINE_SUPPORTS_SAVE ) +CONS( 1989, tgaiden, 0, 0, tgaiden, tgaiden, tgaiden_state, 0, "Tiger Electronics (licensed from Tecmo)", "Ninja Gaiden (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) CONS( 1989, tbatman, 0, 0, tbatman, tbatman, tbatman_state, 0, "Tiger Electronics", "Batman (handheld)", MACHINE_SUPPORTS_SAVE ) CONS( 1990, tsharr2, 0, 0, tsharr2, tsharr2, tsharr2_state, 0, "Tiger Electronics (licensed from Sega)", "Space Harrier II (handheld)", MACHINE_SUPPORTS_SAVE ) CONS( 1990, taltbeast, 0, 0, taltbeast, taltbeast, taltbeast_state, 0, "Tiger Electronics (licensed from Sega)", "Altered Beast (handheld)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tispeak.cpp b/src/mame/drivers/tispeak.cpp index f71601cbfdb..ad22a585acc 100644 --- a/src/mame/drivers/tispeak.cpp +++ b/src/mame/drivers/tispeak.cpp @@ -636,8 +636,7 @@ WRITE16_MEMBER(tispeak_state::snspellc_write_r) WRITE16_MEMBER(tispeak_state::snspellc_write_o) { // O3210: TMS5100 CTL8124 - m_o = bitswap<8>(data,7,6,5,4,3,0,1,2); - m_tms5100->ctl_w(space, 0, m_o & 0xf); + m_tms5100->ctl_w(space, 0, bitswap<4>(data,3,0,1,2)); } READ8_MEMBER(tispeak_state::snspellc_read_k) @@ -689,7 +688,7 @@ void tispeak_state::k28_prepare_display(u8 old, u8 data) WRITE16_MEMBER(tispeak_state::k28_write_r) { // R1234: TMS5100 CTL8421 - m_tms5100->ctl_w(space, 0, bitswap<8>(data,0,0,0,0,1,2,3,4) & 0xf); + m_tms5100->ctl_w(space, 0, bitswap<4>(data,1,2,3,4)); // R0: TMS5100 PDC pin m_tms5100->pdc_w(data & 1); diff --git a/src/mame/drivers/tispellb.cpp b/src/mame/drivers/tispellb.cpp index b2eca5f3cd4..1c73e9d6692 100644 --- a/src/mame/drivers/tispellb.cpp +++ b/src/mame/drivers/tispellb.cpp @@ -199,7 +199,7 @@ WRITE16_MEMBER(tispellb_state::sub_write_o) READ8_MEMBER(tispellb_state::rev1_ctl_r) { // main CTL3210 <- sub O6043 - return bitswap<8>(m_sub_o,7,5,2,1,6,0,4,3) & 0xf; + return bitswap<4>(m_sub_o,6,0,4,3); } WRITE16_MEMBER(tispellb_state::sub_write_r) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 52b206bc560..65296a4c735 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14722,6 +14722,7 @@ tbatfor // Tiger tbatman // Tiger tbtoads // Tiger tddragon // Tiger +tgaiden // Tiger tgaunt // Tiger tjdredd // Tiger tkarnov // Tiger From edb29f8eae9800647bf73a3ce4dd596d25aeb4a1 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 13 Dec 2017 19:34:02 +0100 Subject: [PATCH 07/17] new clones promoted to working --------------------------------------------- Tazz-Mania (Arfyc / Rodmar bootleg) [Ivan Vangelista] --- src/mame/drivers/scobra.cpp | 85 ++++++++++++++++++++++++++++++++++--- 1 file changed, 79 insertions(+), 6 deletions(-) diff --git a/src/mame/drivers/scobra.cpp b/src/mame/drivers/scobra.cpp index 4b872b0432a..0c6ad0a433b 100644 --- a/src/mame/drivers/scobra.cpp +++ b/src/mame/drivers/scobra.cpp @@ -4,7 +4,7 @@ Super Cobra hardware -NOTE: Eventually to be merged into GALAXIAN.C +NOTE: Eventually to be merged into galaxian.cpp TODO: ---- @@ -30,7 +30,7 @@ Notes/Tidbits: differences are the title, copyright removed, different encryptions or no encryption, plus hustlerb has a different memory map. -- In Tazmania, when set to Upright mode, player 2 left skips the current +- In Tazmania and clones, when set to Upright mode, player 2 left skips the current level ***************************************************************************/ @@ -52,7 +52,6 @@ public: : scramble_state(mconfig, type, tag), m_soundram(*this, "soundram") { } - optional_shared_ptr m_soundram; DECLARE_READ8_MEMBER(scobra_soundram_r); DECLARE_WRITE8_MEMBER(scobra_soundram_w); DECLARE_READ8_MEMBER(scobra_type2_ppi8255_0_r); @@ -64,6 +63,9 @@ public: DECLARE_WRITE8_MEMBER(hustler_ppi8255_0_w); DECLARE_WRITE8_MEMBER(hustler_ppi8255_1_w); DECLARE_CUSTOM_INPUT_MEMBER(stratgyx_coinage_r); + +private: + optional_shared_ptr m_soundram; }; @@ -148,6 +150,26 @@ static ADDRESS_MAP_START( type2_map, AS_PROGRAM, 8, scobra_state ) AM_RANGE(0xb00e, 0xb00e) AM_WRITE(galaxold_flip_screen_x_w) ADDRESS_MAP_END +static ADDRESS_MAP_START( tazmani3_map, AS_PROGRAM, 8, scobra_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x87ff) AM_RAM + AM_RANGE(0x8800, 0x883f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram") + AM_RANGE(0x8840, 0x885f) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x8860, 0x887f) AM_RAM AM_SHARE("bulletsram") + AM_RANGE(0x8880, 0x88ff) AM_RAM + AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram") + AM_RANGE(0x9400, 0x97ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror */ + AM_RANGE(0x9800, 0x9800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) + AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xa800, 0xa803) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) + AM_RANGE(0xb000, 0xb000) AM_WRITE(galaxold_stars_enable_w) + AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxold_nmi_enable_w) + AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_coin_counter_0_w) + AM_RANGE(0xb008, 0xb008) AM_WRITE(galaxold_coin_counter_1_w) + AM_RANGE(0xb00c, 0xb00c) AM_WRITE(galaxold_flip_screen_y_w) + AM_RANGE(0xb00e, 0xb00e) AM_WRITE(galaxold_flip_screen_x_w) +ADDRESS_MAP_END + static ADDRESS_MAP_START( hustler_map, AS_PROGRAM, 8, scobra_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM @@ -449,7 +471,7 @@ static INPUT_PORTS_START( darkplnt ) PORT_BIT( 0xfc, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* scrambled dial */ INPUT_PORTS_END -static INPUT_PORTS_START( tazmania ) +static INPUT_PORTS_START( tazmani2 ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) @@ -497,6 +519,49 @@ static INPUT_PORTS_START( tazmania ) INPUT_PORTS_END +static INPUT_PORTS_START( tazmani3 ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) + + PORT_START("IN1") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x01, "3" ) + PORT_DIPSETTING( 0x00, "5" ) + PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) + + PORT_START("IN2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL + PORT_DIPNAME( 0x06, 0x02, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x00, "Coin A 1/2 Coin B 2/1" ) + PORT_DIPSETTING( 0x04, "Coin A 1/3 Coin B 3/1" ) + PORT_DIPSETTING( 0x06, "Coin A 1/4 Coin B 4/1" ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + /* cocktail mode is N/A */ static INPUT_PORTS_START( rescue ) PORT_START("IN0") @@ -891,6 +956,13 @@ static MACHINE_CONFIG_DERIVED( type2, type1 ) MCFG_CPU_PROGRAM_MAP(type2_map) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( tazmani3, type2 ) + + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(tazmani3_map) +MACHINE_CONFIG_END + static MACHINE_CONFIG_DERIVED( stratgyx, type2 ) @@ -1123,6 +1195,7 @@ ROM_START( tazmani2 ) ROM_LOAD( "colr6f.cpu", 0x0000, 0x0020, CRC(fce333c7) SHA1(f63a214dc47c5e7c80db000b0b6a261ca8da6629) ) ROM_END +// PCBs: RODMAR 6920-00-01 P1 and 6920-01-01 P1 but Arfyc copyright ROM_START( tazmani3 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "2ck.cpu", 0x0000, 0x1000, CRC(e8b6f9c3) SHA1(121f83274b3fdb4b2cb4bd0160d61886825c8793) ) // sldh @@ -1624,8 +1697,8 @@ GAME( 1982, strongx, stratgyx, stratgyx, stratgyx, scobra_state, stratgyx, GAME( 1982, darkplnt, 0, darkplnt, darkplnt, scobra_state, darkplnt, ROT180, "Stern Electronics", "Dark Planet", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, tazmani2, tazmania, type2, tazmania, scobra_state, tazmani2, ROT90, "Stern Electronics", "Tazz-Mania (set 2, alt hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, tazmani3, tazmania, type2, tazmania, scobra_state, tazmani2, ROT90, "bootleg (Rodmar)", "Tazz-Mania (Rodmar bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // different i8255 hook up +GAME( 1982, tazmani2, tazmania, type2, tazmani2, scobra_state, tazmani2, ROT90, "Stern Electronics", "Tazz-Mania (set 2, alt hardware)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, tazmani3, tazmania, tazmani3, tazmani3, scobra_state, 0, ROT90, "bootleg (Arfyc / Rodmar)", "Tazz-Mania (Arfyc / Rodmar bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, rescue, 0, rescue, rescue, scobra_state, rescue, ROT90, "Stern Electronics", "Rescue", MACHINE_SUPPORTS_SAVE ) GAME( 1982, rescueb, rescue, rescueb, rescue, scobra_state, rescue, ROT90, "bootleg (Videl Games)", "Tuono Blu (bootleg of Rescue)", MACHINE_SUPPORTS_SAVE ) From dce8c25a39e677898b5d77bf5f48d155fe31f9c3 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 13 Dec 2017 19:43:39 +0100 Subject: [PATCH 08/17] new machines marked as not_working: Golden Hexa [Yohji, Smitdogg, The Dumping Union] Hexa President [Yasu] --- scripts/target/mame/arcade.lua | 1 + src/mame/arcade.flt | 1 + src/mame/drivers/yuvomz80.cpp | 117 +++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 + 4 files changed, 122 insertions(+) create mode 100644 src/mame/drivers/yuvomz80.cpp diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 9a5fed7b765..de933af5893 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -4771,5 +4771,6 @@ files { MAME_DIR .. "src/mame/drivers/xyonix.cpp", MAME_DIR .. "src/mame/includes/xyonix.h", MAME_DIR .. "src/mame/video/xyonix.cpp", + MAME_DIR .. "src/mame/drivers/yuvomz80.cpp", } end diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index c0a2ca37c62..ff27d6f9671 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -1355,6 +1355,7 @@ xyonix.cpp yiear.cpp yunsun16.cpp yunsung8.cpp +yuvomz80.cpp zac_1.cpp zac_2.cpp zac_proto.cpp diff --git a/src/mame/drivers/yuvomz80.cpp b/src/mame/drivers/yuvomz80.cpp new file mode 100644 index 00000000000..cae1633cfb8 --- /dev/null +++ b/src/mame/drivers/yuvomz80.cpp @@ -0,0 +1,117 @@ +// license:BSD-3-Clause +// copyright-holders: + +// Skeleton driver for Yuvo / Yubis Z80 based medal games. + +#include "emu.h" +#include "cpu/z80/z80.h" +#include "machine/i8255.h" +#include "sound/ymz280b.h" +#include "speaker.h" + +/* +This tries to document the available info, but even game titles should be taken with a grain of salt. +YouTube video references: +Hexa President: http://www.youtube.com/watch?v=5Ea5HxH2zwM&t=8s +Golden Hexa: http://www.youtube.com/watch?v=3u1ccTo3SGI +*/ + +/* +Golden Hexa by Yubis + +PCBs: + +Yuvo PCC116B - maincpu board +- TMPZ84C00AP-8 +- 8 MHz XTAL +- maincpu ROM +- 2 x TMP82C55AN-2 +- 2 x 8 dips bank + +Yuvo PCO124B - sound board +- TMPZ84C00AP-8 +- 8 MHz XTAL +- audiocpu ROM +- YMZ280B-F +- sample ROMs + +Yuvo PCI117B - I/O board +- connectors and ttl chips +*/ + +class yuvomz80_state : public driver_device +{ +public: + yuvomz80_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { } + +private: + required_device m_maincpu; +}; + +static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, yuvomz80_state ) + AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("maincpu", 0) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( io_map, AS_PROGRAM, 8, yuvomz80_state ) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( audio_mem_map, AS_PROGRAM, 8, yuvomz80_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("audiocpu", 0) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( audio_io_map, AS_PROGRAM, 8, yuvomz80_state ) + ADDRESS_MAP_GLOBAL_MASK(0xff) +ADDRESS_MAP_END + +static INPUT_PORTS_START( goldhexa ) +INPUT_PORTS_END + +static MACHINE_CONFIG_START( yuvomz80 ) + MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz) + MCFG_CPU_PROGRAM_MAP(mem_map) + MCFG_CPU_IO_MAP(io_map) + + MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz) + MCFG_CPU_PROGRAM_MAP(audio_mem_map) + MCFG_CPU_IO_MAP(audio_io_map) + + MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0) + + MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0) + + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_8MHz) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) +MACHINE_CONFIG_END + + +ROM_START( goldhexa ) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "ghp_program_ver.1.02.ic8", 0x0000, 0x10000, CRC(a21a8cfd) SHA1(324f54ca6e17373138df2854f8c5e77cf78e9434) ) // 1111xxxxxxxxxxxx = 0xFF + + ROM_REGION(0x10000, "audiocpu", 0) + ROM_LOAD( "hp-sp_ver.1.01.ic7", 0x0000, 0x2000, CRC(05133b91) SHA1(2fe931e55c503f15aedfb1c1ea14c257f57c564b) ) // 1xxxxxxxxxxxx = 0xFF + + ROM_REGION(0x100000, "ymz", 0) + ROM_LOAD( "ghp_pcm-a_ver.1.01.ic12", 0x00000, 0x80000, CRC(08de888b) SHA1(a6b68accb136481f45b65eab33e0bab5212a1daf) ) + ROM_LOAD( "ghp_pcm-b_ver.1.01.ic13", 0x80000, 0x80000, CRC(161838c9) SHA1(52b9c324b01702c1164a462af371d82e8c2eea43) ) +ROM_END + +ROM_START( hexapres ) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "hexapres.bin", 0x0000, 0x10000, NO_DUMP ) + + ROM_REGION(0x10000, "audiocpu", 0) + ROM_LOAD( "ghp_snd.bin", 0x0000, 0x10000, CRC(8933b6ea) SHA1(a66157f2b7407ab374db07bcda34f066740f14dc) ) + + ROM_REGION(0x100000, "ymz", 0) + ROM_LOAD( "ghp_voia.bin", 0x00000, 0x80000, CRC(cf3e4c43) SHA1(6d348054704d1d0082d6166701ab84cb162b3a26) ) + ROM_LOAD( "ghp_voib.bin", 0x80000, 0x80000, CRC(8be745fe) SHA1(840bbb212c8c519f2e4633f8db731fcf3f55635a) ) +ROM_END + +GAME( 200?, goldhexa, 0, yuvomz80, goldhexa, yuvomz80_state, 0, ROT0, "Yubis", "Golden Hexa", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 200?, hexapres, 0, yuvomz80, goldhexa, yuvomz80_state, 0, ROT0, "Yubis", "Hexa President", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 65296a4c735..7b856833f72 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -38795,6 +38795,9 @@ magix // (c) 1995 Yun Sung magixb // bootleg rocktris // (c) 1994? Yun Sung +@source:yuvomz80.cpp +goldhexa // Yuvo / Yubis +hexapres // @source:z100.cpp z100 // From 758d836008dd02bb1a050cd5f506338a3d3dc2c6 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 13 Dec 2017 19:47:12 +0100 Subject: [PATCH 09/17] mame.lst: preserve spacing (nw) --- src/mame/mame.lst | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 7b856833f72..94c4eafc2e9 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -38798,6 +38798,7 @@ rocktris // (c) 1994? Yun Sung @source:yuvomz80.cpp goldhexa // Yuvo / Yubis hexapres // + @source:z100.cpp z100 // From aab04d7c4fb1ec13acb238ef87ff884a6f0100ba Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Wed, 13 Dec 2017 21:03:06 +0200 Subject: [PATCH 10/17] pet: Fixed video RAM mirroring. [Curt Coder] --- src/mame/drivers/pet.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp index 3f6a2835f42..8e2bed8698c 100644 --- a/src/mame/drivers/pet.cpp +++ b/src/mame/drivers/pet.cpp @@ -482,7 +482,10 @@ READ8_MEMBER( pet_state::read ) break; case SEL8: - data = m_video_ram[offset & (m_video_ram_size - 1)]; + if (!(offset & 0x800)) + { + data = m_video_ram[offset & (m_video_ram_size - 1)]; + } break; case SEL9: @@ -575,7 +578,10 @@ WRITE8_MEMBER( pet_state::write ) break; case SEL8: - m_video_ram[offset & (m_video_ram_size - 1)] = data; + if (!(offset & 0x800)) + { + m_video_ram[offset & (m_video_ram_size - 1)] = data; + } break; case SELE: From 472fbb5184ef4f36463b278fe881af89d100b222 Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Wed, 13 Dec 2017 21:25:28 +0200 Subject: [PATCH 11/17] Compile fix. (nw) --- src/devices/machine/68340.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/devices/machine/68340.cpp b/src/devices/machine/68340.cpp index 0ecae23b1ba..2701909f18b 100644 --- a/src/devices/machine/68340.cpp +++ b/src/devices/machine/68340.cpp @@ -69,7 +69,7 @@ WRITE32_MEMBER( m68340_cpu_device::m68340_internal_base_w ) } COMBINE_DATA(&m_m68340_base); - logerror("%08x m68340_internal_base_w %08x, %08x (%08x) (m_m68340_base write)\n", pc, offset*4,data,mem_mask); + logerror("%08x m68340_internal_base_w %08x, %08x (%08x) (m_m68340_base write)\n", pc(), offset*4,data,mem_mask); // map new modules if (m_m68340_base&1) @@ -103,7 +103,7 @@ WRITE32_MEMBER( m68340_cpu_device::m68340_internal_base_w ) } else { - logerror("%08x m68340_internal_base_w %08x, %04x (%04x) (should fall through?)\n", pc, offset*4,data,mem_mask); + logerror("%08x m68340_internal_base_w %08x, %04x (%04x) (should fall through?)\n", pc(), offset*4,data,mem_mask); } From 34ab1202e79a90f9d409e1aa9ec9f273056399f6 Mon Sep 17 00:00:00 2001 From: Stiletto Date: Wed, 13 Dec 2017 14:26:34 -0500 Subject: [PATCH 12/17] Update whatis.rst (nw) self-service --- docs/source/whatis.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/whatis.rst b/docs/source/whatis.rst index a057398c2ad..5c612960901 100644 --- a/docs/source/whatis.rst +++ b/docs/source/whatis.rst @@ -8,7 +8,7 @@ MAME's purpose is to preserve decades of software history. As electronic technol | | **MAME(R)** | **Copyright (c) 1997-2017 by Nicola Salmoria and the MAME team** -| **MAME is a trademark owned by Nicola Salmoria** +| **MAME is a trademark owned by Gregory Ember** | From edb558b9161c020102c9e1da9fbf49eb2c5fcb8f Mon Sep 17 00:00:00 2001 From: Stiletto Date: Wed, 13 Dec 2017 15:11:37 -0500 Subject: [PATCH 13/17] (nw) more self-service --- docs/source/license.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/license.rst b/docs/source/license.rst index 1ce48503983..5b7e0a137a7 100644 --- a/docs/source/license.rst +++ b/docs/source/license.rst @@ -4,7 +4,7 @@ The MAME License The MAME project as a whole is distributed under the terms of the `GNU General Public License, version 2 or later `_ (GPL-2.0+), since it contains code made available under multiple GPL-compatible licenses. A great majority of files (over 90% including core files) are under the `BSD-3-Clause License `_ and we would encourage new contributors to distribute files under this license. -Please note that MAME is a registered trademark of Nicola Salmoria, and permission is required to use the "MAME" name, logo, or wordmark. +Please note that MAME is a registered trademark of Gregory Ember, and permission is required to use the "MAME" name, logo, or wordmark. Copyright (C) 1997-2017 MAMEDev and contributors From adaf7c63cb90216f30b3d86728aa31ff784bf4f6 Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 13 Dec 2017 14:32:40 +0100 Subject: [PATCH 14/17] new software list additions --------------------------- ibm5170_cdrom: Arabian Kid [Rod_Wod] We Are Angels: Ein Engel Schlagt Zu! [archive.org] --- hash/ibm5170_cdrom.xml | 50 +++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/hash/ibm5170_cdrom.xml b/hash/ibm5170_cdrom.xml index 9f66610bc0f..47b7e5d4dd2 100644 --- a/hash/ibm5170_cdrom.xml +++ b/hash/ibm5170_cdrom.xml @@ -23,6 +23,19 @@ + + + Arabian Kid + 1996 + ASCII / Yellow Horn + + + + + + + + Prototype 1995 @@ -36,6 +49,30 @@ + + + Noi Siamo Angeli (Italian) + 1997 + Smile Interactive + + + + + + + + + + We Are Angels - Ein Engel Schlõgt Zu (German) + 1997 + Smile Interactive + + + + + + + @@ -62,19 +99,6 @@ - - - - - Noi Siamo Angeli (Italian) - 1997 - Smile Interactive - - - - - - From 6fb12683729870abe360c0a2120adc33d6a6f316 Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 13 Dec 2017 21:46:57 +0100 Subject: [PATCH 15/17] new software list additions --------------------------- ibm5170_cdrom: Boorp's Balls [Rod_Wod] Doka Chan No Building Panic [Rod_Wod] Doom II for Windows 95 [Rod_Wod] Golly! Ghosts! Goal! [Rod_Wod] Orgaslave [Rod_Wod] Space Invaders for Windows [Rod_Wod] --- hash/ibm5170_cdrom.xml | 276 ++++++++++++++++++++++++++++------------- 1 file changed, 187 insertions(+), 89 deletions(-) diff --git a/hash/ibm5170_cdrom.xml b/hash/ibm5170_cdrom.xml index 47b7e5d4dd2..732b4d087b4 100644 --- a/hash/ibm5170_cdrom.xml +++ b/hash/ibm5170_cdrom.xml @@ -1,27 +1,38 @@ + + + + - - - Acer CPR - 1995 - Acer America Corporation - + + + Alien Incident (Eng, Fre, Ger, Fin) (v1.30) + 1996 + Gametek - - - - - - - - + + @@ -36,19 +47,104 @@ - - Prototype - 1995 - Neo - + + + + Boorp's Balls + 2001 + Xpiral / TSY + - - + + + + + + Doka Chan No Building Panic (Japan) + 2001 + MSD-JAPAN / Salva Corporation / D-YAMA + + + + + + + + + + + + + Doom II for Windows 95 (Japan) + 1996 + Id Software / Imagineer + + + + + + + + + + + Betrayal at Krondor (1994 release, CDDA) + 1994 + Dynamix + + + + + + + + + + Betrayal at Krondor (1998 release, no CDDA) + 1998 + Dynamix + + + + + + + + + + + + Golly! Ghosts! Goal! (Japan) + 1996 + Namco + + + + + + + + + + + King's Quest VI (Windows 3.1 enhanced) + 1993 + Sierra + + + + + + + + Noi Siamo Angeli (Italian) @@ -73,6 +169,24 @@ + + + Orgaslave + 1996 + Kuki + + + + + + + + + + + + + @@ -87,6 +201,19 @@ + + Prototype + 1995 + Neo + + + + + + + + + Sideline 1996 @@ -100,6 +227,20 @@ + + + + Space Invaders for Windows + 1997 + Wiz / Taito + + + + + + + + @@ -123,6 +264,31 @@ + + + + + + + + Acer CPR + 1995 + Acer America Corporation + + + + + + + + + + + + + + + @@ -225,46 +391,6 @@ - - - King's Quest VI (Windows 3.1 enhanced) - 1993 - Sierra - - - - - - - - - - - Betrayal at Krondor (1994 release, CDDA) - 1994 - Dynamix - - - - - - - - - - Betrayal at Krondor (1998 release, no CDDA) - 1998 - Dynamix - - - - - - - - @@ -363,32 +489,4 @@ - - - - Alien Incident (Eng, Fre, Ger, Fin) (v1.30) - 1996 - Gametek - - - - - - - - From 8b341d879563a9d9c2f1f7a2d40256b4911e7273 Mon Sep 17 00:00:00 2001 From: Sylvain Glaize Date: Wed, 13 Dec 2017 22:24:44 +0100 Subject: [PATCH 16/17] Trigger a fatal error when console was asked but the console plugin not found. (#2914) * Add a message when the console plugin is not found, rather than crash. In absence of the console plugin, the option entry was not found in m_plugins, making the set_value() crash when deferencing the result of get_entry(). Instead, an error message is logged telling the plugin is not found. * Trigger a fatal error when console was asked but the console plugin not found. --- src/frontend/mame/mame.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/frontend/mame/mame.cpp b/src/frontend/mame/mame.cpp index 8e6a0614260..63c765abc24 100644 --- a/src/frontend/mame/mame.cpp +++ b/src/frontend/mame/mame.cpp @@ -155,7 +155,14 @@ void mame_machine_manager::start_luaengine() } if (options().console()) { - m_plugins->set_value("console", "1", OPTION_PRIORITY_CMDLINE); + if (m_plugins->exists(OPTION_CONSOLE)) + { + m_plugins->set_value(OPTION_CONSOLE, "1", OPTION_PRIORITY_CMDLINE); + } + else + { + fatalerror("Console plugin not found.\n"); + } } m_lua->initialize(); From 23eb4caaf80c54426a3050446995bbe963267bd0 Mon Sep 17 00:00:00 2001 From: Justin Kerk Date: Wed, 13 Dec 2017 13:36:07 -0800 Subject: [PATCH 17/17] fix title (nw) --- hash/ibm5170_cdrom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hash/ibm5170_cdrom.xml b/hash/ibm5170_cdrom.xml index 732b4d087b4..4cc61a630b1 100644 --- a/hash/ibm5170_cdrom.xml +++ b/hash/ibm5170_cdrom.xml @@ -159,7 +159,7 @@ - We Are Angels - Ein Engel Schlõgt Zu (German) + We Are Angels - Ein Engel schlägt zu! (German) 1997 Smile Interactive