From 03df3f088e4f8371d20746c8b9443ed9279b1803 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sat, 10 Dec 2022 11:54:16 +0100 Subject: [PATCH] New machines marked as NOT_WORKING ---------------------------------- Super 555 (English version V1.5) [hammy] --- src/mame/mame.lst | 3 ++- src/mame/misc/rbmk.cpp | 54 +++++++++++++++++++++++++++++++------- src/mame/misc/rcorsair.cpp | 44 ++++++++++++++++++++++--------- src/mame/nmk/nmkmedal.cpp | 4 +-- 4 files changed, 81 insertions(+), 24 deletions(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 432d49c1612..a71d1760a7a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -36964,6 +36964,7 @@ magslot // (c) 2003 GMS rbmk // (c) 1998 GMS rbspm // (c) 1998 GMS sc2in1 // (c) 2001 GMS +super555 // (c) 1999 GMS @source:namco/rbowlorama.cpp rbowlorama // (c) 2008 Cosmodog / Namco @@ -41728,7 +41729,7 @@ tecnodargr // (c) 1991 Automatics Pasqual / Recreativos G.R @source:tecmo/tehkanwc.cpp gridiron // (c) 1985 Tehkan teedoff // 6102 - (c) 1986 Tecmo -teedoffj // +teedoffj // tehkanwc // (c) 1985 Tehkan tehkanwcb // bootleg tehkanwcc // bootleg diff --git a/src/mame/misc/rbmk.cpp b/src/mame/misc/rbmk.cpp index ff2ebf87fd7..48f20728ccc 100644 --- a/src/mame/misc/rbmk.cpp +++ b/src/mame/misc/rbmk.cpp @@ -88,6 +88,7 @@ public: void rbspm(machine_config &config); void magslot(machine_config &config); + void super555(machine_config &config); protected: virtual void video_start() override; @@ -106,6 +107,7 @@ private: uint16_t m_tilebank = 0; uint8_t m_mux_data = 0; uint16_t m_dip_mux = 0; + //uint16_t m_prot_data = 0; void mcu_io(address_map &map); void mcu_mem(address_map &map); @@ -113,6 +115,7 @@ private: void rbspm_mem(address_map &map); void magslot_mem(address_map &map); + void super555_mem(address_map &map); uint16_t unk_r(); uint16_t dip_mux_r(); @@ -209,23 +212,31 @@ void rbmk_state::rbspm_mem(address_map &map) map(0x9c0000, 0x9c0fff).ram().share(m_vidram[0]); } -void rbmk_state::magslot_mem(address_map &map) +void rbmk_state::super555_mem(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x100000, 0x10ffff).ram(); map(0x600000, 0x600001).rw(FUNC(rbmk_state::dip_mux_r), FUNC(rbmk_state::dip_mux_w)); map(0x608000, 0x608001).portr("IN1").w(FUNC(rbmk_state::tilebank_w)); // ok map(0x610000, 0x610001).portr("IN2"); + // map(0x618080, 0x618081).lr16(NAME([this] () -> uint16_t { return m_prot_data; })); // reads something here from below, if these are hooked up booting stops with '0x09 U64 ERROR', like it's failing some checksum test map(0x620000, 0x620001).portr("IN3"); + // map(0x620080, 0x620081).lw16(NAME([this] (uint16_t data) { m_prot_data = data; })); // writes something here that expects to read above map(0x628000, 0x628001).w(FUNC(rbmk_state::unk_w)); map(0x900000, 0x900fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x940000, 0x940fff).ram().share(m_vidram[1]); map(0x980000, 0x983fff).ram(); map(0x9c0000, 0x9c0fff).ram().share(m_vidram[0]); - map(0x9e0000, 0x9e0fff).ram().share(m_vidram[2]); //map(0xf00000, 0xf00001).w(FUNC(rbmk_state::eeprom_w)); // wrong? } +void rbmk_state::magslot_mem(address_map &map) +{ + super555_mem(map); + + map(0x9e0000, 0x9e0fff).ram().share(m_vidram[2]); +} + void rbmk_state::mcu_mem(address_map &map) { // map(0x0000, 0x0fff).rom(); @@ -880,12 +891,18 @@ void rbmk_state::rbspm(machine_config &config) // PIC16F84 but no CPU core available } -void rbmk_state::magslot(machine_config &config) +void rbmk_state::super555(machine_config &config) { rbmk(config); - m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::magslot_mem); + m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::super555_mem); config.device_remove("mcu"); +} + +void rbmk_state::magslot(machine_config &config) +{ + super555(config); + m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::magslot_mem); m_gfxdecode->set_info(gfx_magslot); } @@ -950,6 +967,24 @@ ROM_START( rbspm ) ROM_END +ROM_START( super555 ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ + ROM_LOAD( "super555-v1.5e-0d9b.u64", 0x00000, 0x80000, CRC(9a9c16cc) SHA1(95609dbd45feb591190a2b62dee8846cdcec3462) ) + + ROM_REGION( 0x080000, "oki", 0 ) + ROM_LOAD( "pk-s1-s06.u83", 0x00000, 0x80000, CRC(e329b9ce) SHA1(9fc31daaacc7b3a1a1cf99ab30035021b7cbb78f) ) + + ROM_REGION( 0x80000, "gfx1", 0 ) + ROM_LOAD( "pk-a1-a09.u41", 0x00000, 0x80000, CRC(f48e74bd) SHA1(68e2a0384964e04c526e4002ffae5fa4f2835d66) ) + + ROM_REGION( 0x80000, "gfx2", 0 ) + ROM_LOAD( "super555-t1-e67d.u39", 0x00000, 0x80000, CRC(ee092a9c) SHA1(4123d45d21ca60b0d38f36f59353c56d4fdfcddf) ) + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD_SWAP( "93c46.u138", 0x00, 0x080, CRC(60407223) SHA1(10f766b5431709ab11b16bf5ad7adbfdced0e7ac) ) +ROM_END + + ROM_START( sc2in1 ) // Basically same PCB as magslot, but with only 1 dip bank. Most labels have been covered with other labels with 'TETRIS' hand-written ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ ROM_LOAD( "u64", 0x00000, 0x80000, CRC(c0ad5df0) SHA1(a51f30e76493ea9fb5313c0064dac9a2a4f70cc3) ) @@ -996,11 +1031,12 @@ ROM_END // mahjong -GAME( 1998, rbmk, 0, rbmk, rbmk, rbmk_state, empty_init, ROT0, "GMS", "Shizhan Majiang Wang (Version 8.8)", MACHINE_NOT_WORKING ) -GAME( 1998, rbspm, 0, rbspm, rbspm, rbmk_state, empty_init, ROT0, "GMS", "Shizhan Ding Huang Maque (Version 4.1)", MACHINE_NOT_WORKING ) +GAME( 1998, rbmk, 0, rbmk, rbmk, rbmk_state, empty_init, ROT0, "GMS", "Shizhan Majiang Wang (Version 8.8)", MACHINE_NOT_WORKING ) +GAME( 1998, rbspm, 0, rbspm, rbspm, rbmk_state, empty_init, ROT0, "GMS", "Shizhan Ding Huang Maque (Version 4.1)", MACHINE_NOT_WORKING ) -// card game -GAME( 2001, sc2in1, 0, magslot, magslot, rbmk_state, empty_init, ROT0, "GMS", "Super Card 2 in 1 (English version 03.23)", MACHINE_NOT_WORKING ) // stops during boot +// card games +GAME( 1999, super555, 0, super555, magslot, rbmk_state, empty_init, ROT0, "GMS", "Super 555 (English version V1.5)", MACHINE_NOT_WORKING ) // stops during boot +GAME( 2001, sc2in1, 0, magslot, magslot, rbmk_state, empty_init, ROT0, "GMS", "Super Card 2 in 1 (English version 03.23)", MACHINE_NOT_WORKING ) // stops during boot // slot, on slightly different PCB -GAME( 2003, magslot, 0, magslot, magslot, rbmk_state, empty_init, ROT0, "GMS", "Magic Slot (normal 1.0C)", MACHINE_NOT_WORKING ) // needs implementing of 3rd GFX layer, correct GFX decode for 1st layer, inputs +GAME( 2003, magslot, 0, magslot, magslot, rbmk_state, empty_init, ROT0, "GMS", "Magic Slot (normal 1.0C)", MACHINE_NOT_WORKING ) // needs implementing of 3rd GFX layer, correct GFX decode for 1st layer, inputs diff --git a/src/mame/misc/rcorsair.cpp b/src/mame/misc/rcorsair.cpp index cff08bd03b0..a6aa6be8efc 100644 --- a/src/mame/misc/rcorsair.cpp +++ b/src/mame/misc/rcorsair.cpp @@ -1,8 +1,8 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -/* Red Corsair */ +// Red Corsair -/* skeleton driver */ +// skeleton driver /* This driver is not being worked on by the original author. Somebody will probably need to do extensive research on the PCB to establish what the custom block actually contains, @@ -56,12 +56,20 @@ Notes added 2014-09-10: #include "emu.h" + #include "cpu/mcs48/mcs48.h" #include "cpu/z80/z80.h" +#include "machine/i8255.h" +#include "sound/ay8910.h" +#include "video/mc6845.h" + #include "emupal.h" #include "screen.h" +#include "speaker.h" +namespace { + class rcorsair_state : public driver_device { public: @@ -73,19 +81,20 @@ public: void rcorsair(machine_config &config); +protected: + // driver_device overrides + virtual void video_start() override; + private: + // devices + required_device m_maincpu; + required_device m_subcpu; + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void rcorsair_main_map(address_map &map); void rcorsair_sub_io_map(address_map &map); void rcorsair_sub_map(address_map &map); - - // devices - required_device m_maincpu; - required_device m_subcpu; - - // driver_device overrides - virtual void video_start() override; }; @@ -158,8 +167,7 @@ uint32_t rcorsair_state::screen_update(screen_device &screen, bitmap_ind16 &bitm void rcorsair_state::rcorsair(machine_config &config) { - /* Main CPU is probably inside Custom Block with - program code, unknown type */ + // Main CPU is probably inside Custom Block with program code, unknown type Z80(config, m_maincpu, 8000000); m_maincpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_main_map); @@ -169,6 +177,8 @@ void rcorsair_state::rcorsair(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_sub_map); m_subcpu->set_addrmap(AS_IO, &rcorsair_state::rcorsair_sub_io_map); + I8255(config, "ppi"); + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); @@ -179,6 +189,14 @@ void rcorsair_state::rcorsair(machine_config &config) GFXDECODE(config, "gfxdecode", "palette", gfx_rcorsair); PALETTE(config, "palette").set_entries(0x100); + + HD6845S(config, "crtc", 8000000 / 8).set_screen("screen"); + + SPEAKER(config, "speaker").front_center(); + + AY8910(config, "ay1", 8000000 / 8).add_route(ALL_OUTPUTS, "speaker", 0.5); + + AY8910(config, "ay2", 8000000 / 8).add_route(ALL_OUTPUTS, "speaker", 0.5); } ROM_START( rcorsair ) @@ -190,7 +208,7 @@ ROM_START( rcorsair ) ROM_REGION( 0x2000, "subcpu", 0 ) ROM_LOAD( "rcs_6d.bin", 0x00000, 0x2000, CRC(b7f34f91) SHA1(16d5ed6a60db09f04727be8500c1c8c869281a8a) ) // sound code? (or part of the game code?) - ROM_REGION( 0x6000, "gfx1", 0 ) /* there looks to be a slight scramble per tile, probably simle address xor */ + ROM_REGION( 0x6000, "gfx1", 0 ) // there looks to be a slight scramble per tile, probably simple address XOR ROM_LOAD( "rcd2_2b.bin", 0x0000, 0x2000, CRC(d52b39f1) SHA1(20ce812fb4a9157d7c1d45902645695f0dd84add) ) ROM_LOAD( "rcd1_2c.bin", 0x2000, 0x2000, CRC(9ec5dd51) SHA1(84939799f64d9d3e9a67b51046dd0c3403904d97) ) ROM_LOAD( "rcd0_2d.bin", 0x4000, 0x2000, CRC(b86fe547) SHA1(30dc51f65d2bd807d2498829087ba1a8eaa2e146) ) @@ -200,5 +218,7 @@ ROM_START( rcorsair ) ROM_LOAD( "prom_3c.bin", 0x00000, 0x100, CRC(edca1d4a) SHA1(a5ff659cffcd09cc161960da8f5cdd234e0db92c) ) // ? ROM_END +} // anonymous namespace + GAME( 1984, rcorsair, 0, rcorsair, inports, rcorsair_state, empty_init, ROT90, "Nakasawa", "Red Corsair", MACHINE_IS_SKELETON ) diff --git a/src/mame/nmk/nmkmedal.cpp b/src/mame/nmk/nmkmedal.cpp index 91d1a25f9e4..6a14220c802 100644 --- a/src/mame/nmk/nmkmedal.cpp +++ b/src/mame/nmk/nmkmedal.cpp @@ -258,8 +258,8 @@ ROM_START( drail ) // handwritten labels ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "1_dream rail v08c 2c0c v957220.u4", 0x00000, 0x10000, CRC(c14fae88) SHA1(f0478b563ac851372bc0b93772d89ab70ad61877) ) // 通ドリームレール V08C 2C0C V957220, 1xxxxxxxxxxxxxxx = 0xFF - ROM_REGION(0x80000, "oki", 0) - ROM_LOAD( "2_dream rail pcm.u11", 0x00000, 0x80000, CRC(efdc1eea) SHA1(c39fed6f97b71556b468e0872a8240fe7b6495e6) ) // ドリームレールPCM + ROM_REGION(0xc0000, "oki", 0) // NMK112 device expects the first 0x40000 bytes to be left empty. + ROM_LOAD( "2_dream rail pcm.u11", 0x40000, 0x80000, CRC(efdc1eea) SHA1(c39fed6f97b71556b468e0872a8240fe7b6495e6) ) // ドリームレールPCM // empty socket 3.u10 ROM_END