diff options
author | MetalliC <0vetal0@gmail.com> | 2020-09-16 19:22:44 +0300 |
---|---|---|
committer | MetalliC <0vetal0@gmail.com> | 2020-09-16 19:22:44 +0300 |
commit | 66e41fb0f196dd765544f470610a70c805737036 (patch) | |
tree | 4a51a74d7e7ae9c12004dbd85ec9157e0dc1da17 | |
parent | 3268783a3a87c75bbc5dbf340eb1e659bdef0aea (diff) |
new NOT_WORKING machine
-----------------------
Unknown Konami slot medal game (set 2) [Philip Bennett]
konmedal68k.cpp fix slot games palette format
-rw-r--r-- | src/mame/drivers/konmedal68k.cpp | 61 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
2 files changed, 45 insertions, 17 deletions
diff --git a/src/mame/drivers/konmedal68k.cpp b/src/mame/drivers/konmedal68k.cpp index dce2553a8f6..02ce8da8538 100644 --- a/src/mame/drivers/konmedal68k.cpp +++ b/src/mame/drivers/konmedal68k.cpp @@ -49,6 +49,7 @@ public: void kzaurus(machine_config &config); void koropens(machine_config &config); + void slot(machine_config &config); protected: virtual void machine_start() override; @@ -98,8 +99,10 @@ private: return m_k056832->rom_word_r(offset); } + void common_main(address_map &map); void kzaurus_main(address_map &map); void koropens_main(address_map &map); + void slot_main(address_map &map); static constexpr int NUM_LAYERS = 4; @@ -204,7 +207,7 @@ uint32_t konmedal68k_state::screen_update_konmedal68k(screen_device &screen, bit return 0; } -void konmedal68k_state::kzaurus_main(address_map &map) +void konmedal68k_state::common_main(address_map &map) { map(0x000000, 0x07ffff).rom().region("maincpu", 0); map(0x400000, 0x403fff).ram().share("nvram"); @@ -221,31 +224,32 @@ void konmedal68k_state::kzaurus_main(address_map &map) map(0x880000, 0x880003).rw(m_ymz, FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask16(0xff00); map(0xa00000, 0xa01fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); map(0xa02000, 0xa03fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); +} + +void konmedal68k_state::kzaurus_main(address_map &map) +{ + common_main(map); map(0xb00000, 0xb03fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0xc00000, 0xc01fff).r(FUNC(konmedal68k_state::vrom_r)); } void konmedal68k_state::koropens_main(address_map &map) { - map(0x000000, 0x07ffff).rom().region("maincpu", 0); - map(0x400000, 0x403fff).ram().share("nvram"); - map(0x800000, 0x800001).w(FUNC(konmedal68k_state::control_w)); - map(0x800004, 0x800005).portr("DSW"); - map(0x800006, 0x800007).portr("IN1"); - map(0x800008, 0x800009).portr("IN0"); - map(0x810000, 0x810001).w(FUNC(konmedal68k_state::control2_w)); - map(0x820000, 0x820001).portw("OUT"); - map(0x830000, 0x83003f).rw(m_k056832, FUNC(k056832_device::word_r), FUNC(k056832_device::word_w)); - map(0x840000, 0x84000f).w(m_k056832, FUNC(k056832_device::b_word_w)); - map(0x85001c, 0x85001f).nopw(); - map(0x870000, 0x87005f).w(m_k055555, FUNC(k055555_device::K055555_word_w)); - map(0x880000, 0x880003).rw(m_ymz, FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask16(0xff00); - map(0xa00000, 0xa01fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); - map(0xa02000, 0xa03fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); + common_main(map); map(0xb00000, 0xb03fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0xc00000, 0xc01fff).r(FUNC(konmedal68k_state::vrom_koropens_r)); } +void konmedal68k_state::slot_main(address_map &map) +{ + common_main(map); + map(0xb00000, 0xb03fff).ram().lrw16( + NAME([this](offs_t offset) -> u16 { return (offset & 1) ? m_palette->read16(offset / 2) : 0; }), + NAME([this](offs_t offset, u16 data) { if (offset & 1) m_palette->write16(offset / 2, data); }) + ).share("palette"); + map(0xc00000, 0xc01fff).r(FUNC(konmedal68k_state::vrom_r)); +} + static INPUT_PORTS_START( kzaurus ) PORT_START("IN0") PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) @@ -379,6 +383,16 @@ void konmedal68k_state::koropens(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &konmedal68k_state::koropens_main); } +void konmedal68k_state::slot(machine_config &config) +{ + kzaurus(config); + + M68000(config.replace(), m_maincpu, XTAL(33'868'800) / 4); // 33.8688 MHz crystal verified on PCB + m_maincpu->set_addrmap(AS_PROGRAM, &konmedal68k_state::slot_main); + + PALETTE(config.replace(), "palette").set_format(palette_device::xBGR_444, 4096).enable_shadows(); +} + ROM_START( kzaurus ) ROM_REGION( 0x80000, "maincpu", 0 ) /* main program */ ROM_LOAD16_WORD_SWAP( "540-b05-2n.bin", 0x000000, 0x080000, CRC(110d4ecb) SHA1(8903783f62ad5a983242a0fe8d835857964abc43) ) @@ -471,10 +485,23 @@ ROM_START( konslot ) ROM_LOAD( "669-a01-2d.bin", 0x000000, 0x080000, CRC(08438dad) SHA1(b4ef8fc37deca5b6537cc581fc99968c86e6ec2c) ) ROM_END +ROM_START( konslot2 ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "660-a05.2n", 0x000000, 0x080000, CRC(d7460250) SHA1(490588181b3b558e03752f4c6cbdadb807b990b3) ) + + ROM_REGION( 0x80000, "k056832", 0 ) + ROM_LOAD( "660-a06.14n", 0x000000, 0x080000, CRC(17d2dbb7) SHA1(b32b4123c6006ad7ee0b2d12542bad6b9ccb4cf2) ) + + ROM_REGION( 0x100000, "ymz", 0 ) + ROM_LOAD( "660-a01.2f", 0x000000, 0x080000, CRC(b350de2f) SHA1(56d6054b5b9fbabc12cfa3979c8b563c66f687c9) ) + ROM_LOAD( "660-a02.1f", 0x080000, 0x080000, CRC(e3199b0d) SHA1(8805be14388c73c5a8e0b2eb98fb8efb5def1714) ) +ROM_END + GAME( 1995, kzaurus, 0, kzaurus, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Pittanko Zaurus", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, dobouchn, 0, kzaurus, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Dobou-Chan (ver JAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 199?, konslot, 0, kzaurus, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Unknown Konami slot medal game", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 199?, konslot, 0, slot, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Unknown Konami slot medal game (set 1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 199?, konslot2, 0, slot, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Unknown Konami slot medal game (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, koropens, 0, koropens, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Korokoro Pensuke", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1998, kattobas, 0, koropens, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Kattobase Power Pro Kun", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1999, pwrchanc, 0, koropens, kzaurus, konmedal68k_state, empty_init, ROT0, "Konami", "Powerful Chance", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 5806a1a9e1d..4c866a7642b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -19000,6 +19000,7 @@ mariorou dobouchn kattobas konslot +konslot2 koropens kzaurus pwrchanc |