From 82c3010dc580b5afad43e60691995c7761802b07 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 7 Jul 2023 06:40:03 +0200 Subject: konami/konendev.cpp: hooked up sound, removed need for ROM patches --- src/mame/konami/konendev.cpp | 273 ++++++++++++++++++++++++------------------- src/mame/vsystem/pipedrm.cpp | 7 +- 2 files changed, 159 insertions(+), 121 deletions(-) diff --git a/src/mame/konami/konendev.cpp b/src/mame/konami/konendev.cpp index 77835566f72..2551c473042 100644 --- a/src/mame/konami/konendev.cpp +++ b/src/mame/konami/konendev.cpp @@ -62,11 +62,14 @@ */ #include "emu.h" + #include "k057714.h" #include "cpu/h8/h83006.h" #include "cpu/powerpc/ppc.h" #include "machine/eepromser.h" +#include "machine/intelfsh.h" +#include "machine/mb8421.h" #include "machine/msm6242.h" #include "machine/nvram.h" #include "sound/ymz280b.h" @@ -87,26 +90,32 @@ public: , m_ifu(*this, "ifu") , m_gcu(*this, "gcu") , m_eeprom(*this, "eeprom") - , m_rtc(*this, "rtc") , m_dpram(*this, "dpram") + , m_dsw(*this, "DSW") { } - void init_konendev(); - void init_enchlamp(); - - void konendev(machine_config &config); + void konendev(machine_config &config) ATTR_COLD; - virtual void machine_start() override +protected: + virtual void machine_start() override ATTR_COLD { m_dpram_base = (uint16_t *)m_dpram.target(); } private: + // devices + required_device m_maincpu; + required_device m_ifu; + required_device m_gcu; + required_device m_eeprom; + required_shared_ptr m_dpram; + required_ioport m_dsw; + + uint16_t *m_dpram_base = nullptr; + uint32_t mcu2_r(offs_t offset, uint32_t mem_mask = ~0); uint32_t ifu2_r(offs_t offset, uint32_t mem_mask = ~0); void eeprom_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - uint32_t sound_data_r(); - void sound_data_w(uint32_t data); uint16_t ifu_unk_r(); uint16_t ifu_dpram_r(offs_t offset); @@ -115,22 +124,11 @@ private: void gcu_interrupt(int state); INTERRUPT_GEN_MEMBER(vbl_interrupt); - uint8_t rtc_dev_r(uint32_t reg); - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void konendev_map(address_map &map); - void ifu_map(address_map &map); - - // devices - required_device m_maincpu; - required_device m_ifu; - required_device m_gcu; - required_device m_eeprom; - required_device m_rtc; - required_shared_ptr m_dpram; - - uint16_t *m_dpram_base = nullptr; + void main_map(address_map &map) ATTR_COLD; + void ifu_map(address_map &map) ATTR_COLD; + void ymz280b_map(address_map &map) ATTR_COLD; }; uint32_t konendev_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -158,7 +156,7 @@ uint32_t konendev_state::mcu2_r(offs_t offset, uint32_t mem_mask) } if (ACCESSING_BITS_0_7) { - r |= ioport("DSW")->read() & 0xff; + r |= m_dsw->read() & 0xff; r |= 0x04; // battery 1 status r |= 0x10; // battery 2 status } @@ -188,21 +186,12 @@ void konendev_state::eeprom_w(offs_t offset, uint32_t data, uint32_t mem_mask) } } -uint32_t konendev_state::sound_data_r() -{ - return 0xffffffff; -} - -void konendev_state::sound_data_w(uint32_t data) -{ -} - -void konendev_state::konendev_map(address_map &map) +void konendev_state::main_map(address_map &map) { map(0x00000000, 0x00ffffff).ram(); map(0x78000000, 0x78000003).r(FUNC(konendev_state::mcu2_r)); - map(0x78080000, 0x7808000f).rw(m_rtc, FUNC(rtc62423_device::read), FUNC(rtc62423_device::write)); - map(0x780c0000, 0x780c0003).rw(FUNC(konendev_state::sound_data_r), FUNC(konendev_state::sound_data_w)); + map(0x78080000, 0x7808000f).rw("rtc", FUNC(rtc62423_device::read), FUNC(rtc62423_device::write)); + map(0x780c0000, 0x780c0001).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); map(0x78100000, 0x78100003).w(FUNC(konendev_state::eeprom_w)); map(0x78800000, 0x78800003).r(FUNC(konendev_state::ifu2_r)); map(0x78800004, 0x78800007).portr("IN1"); // doors, switches @@ -214,7 +203,14 @@ void konendev_state::konendev_map(address_map &map) map(0x79800000, 0x798000ff).rw(m_gcu, FUNC(k057714_device::read), FUNC(k057714_device::write)); map(0x7a000000, 0x7a01ffff).ram().share("nvram0"); map(0x7a100000, 0x7a11ffff).ram().share("nvram1"); - map(0x7e000000, 0x7f7fffff).rom().region("flash", 0); + map(0x7e800000, 0x7e9fffff).rw("prgflash1", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); + map(0x7ea00000, 0x7ebfffff).rw("prgflash2", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); + map(0x7ec00000, 0x7edfffff).rw("prgflash3", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); + map(0x7ee00000, 0x7effffff).rw("prgflash4", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); + map(0x7f000000, 0x7f1fffff).rw("prgflash5", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); + map(0x7f200000, 0x7f3fffff).rw("prgflash6", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); + map(0x7f400000, 0x7f5fffff).rw("prgflash7", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); + map(0x7f600000, 0x7f7fffff).rw("prgflash8", FUNC(fujitsu_29f016a_device::read), FUNC(fujitsu_29f016a_device::write)); map(0x7ff00000, 0x7fffffff).rom().region("program", 0); } @@ -243,6 +239,14 @@ void konendev_state::ifu_map(address_map &map) map(0xfee010, 0xfee011).r(FUNC(konendev_state::ifu_unk_r)); }; +void konendev_state::ymz280b_map(address_map &map) +{ + map(0x000000, 0x1fffff).r("sndflash1.u08", FUNC(fujitsu_29f016a_device::read)); + map(0x200000, 0x3fffff).r("sndflash2.u07", FUNC(fujitsu_29f016a_device::read)); + map(0x400000, 0x5fffff).r("sndflash3.u06", FUNC(fujitsu_29f016a_device::read)); + map(0x600000, 0x7fffff).r("sndflash4.u05", FUNC(fujitsu_29f016a_device::read)); +} + /******************************************************************************* Button layouts @@ -387,15 +391,30 @@ INTERRUPT_GEN_MEMBER(konendev_state::vbl_interrupt) void konendev_state::konendev(machine_config &config) { - /* basic machine hardware */ - PPC403GCX(config, m_maincpu, 32000000); // Clock unknown - m_maincpu->set_addrmap(AS_PROGRAM, &konendev_state::konendev_map); + // basic machine hardware + PPC403GCX(config, m_maincpu, 32'000'000); // Clock unknown + m_maincpu->set_addrmap(AS_PROGRAM, &konendev_state::main_map); m_maincpu->set_vblank_int("screen", FUNC(konendev_state::vbl_interrupt)); - H83007(config, m_ifu, 8000000); // Clock unknown + H83007(config, m_ifu, 8'000'000); // Clock unknown m_ifu->set_addrmap(AS_PROGRAM, &konendev_state::ifu_map); - /* video hardware */ + FUJITSU_29F016A(config, "prgflash1"); + FUJITSU_29F016A(config, "prgflash2"); + FUJITSU_29F016A(config, "prgflash3"); + FUJITSU_29F016A(config, "prgflash4"); + FUJITSU_29F016A(config, "prgflash5"); + FUJITSU_29F016A(config, "prgflash6"); + FUJITSU_29F016A(config, "prgflash7"); + FUJITSU_29F016A(config, "prgflash8"); + FUJITSU_29F016A(config, "sndflash1.u08"); + FUJITSU_29F016A(config, "sndflash2.u07"); + FUJITSU_29F016A(config, "sndflash3.u06"); + FUJITSU_29F016A(config, "sndflash4.u05"); + + CY7C131(config, "dpram"); // TODO: hook up instead of custom methods + + // video hardware PALETTE(config, "palette", palette_device::RGB_555); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -406,18 +425,19 @@ void konendev_state::konendev(machine_config &config) K057714(config, m_gcu, 0).set_screen("screen"); m_gcu->irq_callback().set(FUNC(konendev_state::gcu_interrupt)); - RTC62423(config, m_rtc, XTAL(32'768)); + RTC62423(config, "rtc", XTAL(32'768)); NVRAM(config, "nvram0", nvram_device::DEFAULT_ALL_0); NVRAM(config, "nvram1", nvram_device::DEFAULT_ALL_0); EEPROM_93C56_16BIT(config, "eeprom"); - /* sound hardware */ + // sound hardware SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); // Clock unknown + ymz280b_device &ymz(YMZ280B(config, "ymz", 16'934'400)); // Clock unknown + ymz.set_addrmap(0, &konendev_state::ymz280b_map); ymz.add_route(0, "lspeaker", 1.0); ymz.add_route(1, "rspeaker", 1.0); } @@ -427,32 +447,79 @@ void konendev_state::konendev(machine_config &config) ROM_REGION( 0x200000, "ifu", 0 ) \ ROM_LOAD( "2v02s502_ifu.u190", 0x000000, 0x080000, CRC(36122a98) SHA1(3d2c40c9d504358d890364e26c9562e40314d8a4) ) +#define ENDEAVOUR_UNDUMPED_FLASH \ + ROM_REGION( 0x200000, "prgflash1", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "prgflash2", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "prgflash3", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "prgflash4", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "prgflash5", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "prgflash6", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "prgflash7", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "prgflash8", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "sndflash1.u08", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "sndflash2.u07", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "sndflash3.u06", ROMREGION_ERASE00 ) \ + ROM_REGION( 0x200000, "sndflash4.u05", ROMREGION_ERASE00 ) + ROM_START( konendev ) ENDEAVOUR_BIOS ROM_REGION32_BE( 0x200000, "program", ROMREGION_ERASE00 ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) + ENDEAVOUR_UNDUMPED_FLASH ROM_REGION16_BE( 0x100, "eeprom", ROMREGION_ERASE00 ) ROM_END -/* Complete sets */ +// Complete sets // Enchanted Lamp (Russia) -ROM_START( enchlamp ) +ROM_START( enchlamp ) // the flash dumps have been split from an aggregated dump. They pass the checksum so they are assumed good, but a redump wouldn't hurt, either. ENDEAVOUR_BIOS ROM_REGION32_BE( 0x200000, "program", 0 ) ROM_LOAD32_WORD_SWAP( "enl5rg26_01h.u75", 0x00000, 0x100000, CRC(fed5b988) SHA1(49442decd9b40f0a382c4fc7b231958f526ddbd1) ) ROM_LOAD32_WORD_SWAP( "enl5rg26_02l.u66", 0x00002, 0x100000, CRC(d0e42c9f) SHA1(10ff944ec0a626d47ec12be291ff5fe001342ed4) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "enl5r211.fmu", 0x0000, 0x1800000, CRC(592c3c7f) SHA1(119b3c6223d656981c399c399d7edccfdbb50dc7) ) + ROM_REGION( 0x200000, "prgflash1", ROMREGION_ERASE00 ) + ROM_LOAD( "prgflash1", 0x000000, 0x200000, CRC(d68cab01) SHA1(c7f31c9620fad83794954ba4f0f7c39224698cf7) ) + + ROM_REGION( 0x200000, "prgflash2", ROMREGION_ERASE00 ) + ROM_LOAD( "prgflash2", 0x000000, 0x200000, CRC(0c8b1e84) SHA1(73a1203784e3a9e7c58a8d539615d69325b1871c) ) + + ROM_REGION( 0x200000, "prgflash3", ROMREGION_ERASE00 ) + ROM_LOAD( "prgflash3", 0x000000, 0x200000, CRC(0ea9f37b) SHA1(2883292792df8a366bc0a36e1939d811b4aae9c8) ) + + ROM_REGION( 0x200000, "prgflash4", ROMREGION_ERASE00 ) + ROM_LOAD( "prgflash4", 0x000000, 0x200000, CRC(6d0549ed) SHA1(785485e1eebd32e4bcb76b6b3aa67238ed492f4e) ) + + ROM_REGION( 0x200000, "prgflash5", ROMREGION_ERASE00 ) + // not populated + + ROM_REGION( 0x200000, "prgflash6", ROMREGION_ERASE00 ) + // not populated + + ROM_REGION( 0x200000, "prgflash7", ROMREGION_ERASE00 ) + // not populated + + ROM_REGION( 0x200000, "prgflash8", ROMREGION_ERASE00 ) + // not populated + + ROM_REGION( 0x200000, "sndflash1.u08", ROMREGION_ERASE00 ) + ROM_LOAD( "sndflash1", 0x000000, 0x200000, CRC(2b4dc7d4) SHA1(77c1d1baa20e29de22c0d710949987ef5fff8c78) ) + + ROM_REGION( 0x200000, "sndflash2.u07", ROMREGION_ERASE00 ) + ROM_LOAD( "sndflash2", 0x000000, 0x200000, CRC(59ddc211) SHA1(5c6b630df10b3d49ce72a80b402355fa23fa7324) ) + + ROM_REGION( 0x200000, "sndflash3.u06", ROMREGION_ERASE00 ) + // not populated + + ROM_REGION( 0x200000, "sndflash4.u05", ROMREGION_ERASE00 ) + // not populated ROM_REGION16_BE( 0x100, "eeprom", 0 ) ROM_LOAD( "93c56.u98", 0x00, 0x100, CRC(b2521a6a) SHA1(f44711545bee7e9c772a3dc23b79f0ea8059ec50) ) // empty eeprom with Konami header ROM_END -/* No flash dumped */ +// No flash dumped // African Adventure (Russia) ROM_START( aadvent ) @@ -462,8 +529,7 @@ ROM_START( aadvent ) ROM_LOAD32_WORD_SWAP( "afa5re26_01h.u75", 0x00000, 0x100000, CRC(65ce6f7a) SHA1(018742f13fea4c52f822e7f12e8efd0aff61a713) ) ROM_LOAD32_WORD_SWAP( "afa5re26_02l.u66", 0x00002, 0x100000, CRC(73945b3a) SHA1(5ace9c439048f3555fe631917c15bee76362e784) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Black Rose Rapid Fire Grand Prix (Queensland) @@ -475,8 +541,7 @@ ROM_START( blkrose ) ROM_REGION( 0x200000, "ifu", 0 ) ROM_LOAD( "2q14prog_ifu.u190", 0x00000, 0x080000, CRC(00e4eb51) SHA1(38c7c28da6d980f9c7447ad31416ccb321c20e25) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "blr8q211.fmu", 0x0000, 0x1800000, NO_DUMP ) // BLR8Q211.FMU Chk-GR: 13BB, SD: E1F4 BROSERGP 6 x 2M Konami + ENDEAVOUR_UNDUMPED_FLASH // BLR8Q211.FMU Chk-GR: 13BB, SD: E1F4 BROSERGP 6 x 2M Konami ROM_END // Dragonfly (Russia) @@ -487,8 +552,7 @@ ROM_START( dragnfly ) ROM_LOAD32_WORD_SWAP( "drf5re26_01h.u75", 0x00000, 0x100000, CRC(ef6f1b69) SHA1(007a41cd1b08705184f69ce3e0e6c63bc2301e25) ) ROM_LOAD32_WORD_SWAP( "drf5re26_02l.u66", 0x00002, 0x100000, CRC(00e00c29) SHA1(a92d7220bf46655222ddc5d1c276dc469343f4c5) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Gypsy Magic (Russia) @@ -499,8 +563,7 @@ ROM_START( gypmagic ) ROM_LOAD32_WORD_SWAP( "gym5rc26_01h.u75", 0x00000, 0x080000, CRC(8643be94) SHA1(fc63872a55ac2229652566bd9795ce9bf8442fee) ) ROM_LOAD32_WORD_SWAP( "gym5rc26_02l.u66", 0x00002, 0x080000, CRC(4ee33c46) SHA1(9e0ef66e9d53a47827d04e6a89d13d37429e0c16) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Incan Pyramid (Russia) @@ -511,8 +574,7 @@ ROM_START( incanp ) ROM_LOAD32_WORD_SWAP( "inp5rg26_01h.u75", 0x00000, 0x100000, CRC(8434222e) SHA1(d03710e18f5b9e45db32685778a21a5dc598d043) ) ROM_LOAD32_WORD_SWAP( "inp5rg26_02l.u66", 0x00002, 0x100000, CRC(50c37109) SHA1(a638587f37f63b3f63ee51f541d991c3784c09f7) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Jester Magic (Russia) @@ -523,8 +585,7 @@ ROM_START( jestmagi ) ROM_LOAD32_WORD_SWAP( "jem5rc26_01h.u75", 0x00000, 0x080000, CRC(9145324c) SHA1(366baa22bde1b8da19dba756829305d0fd69b4ff) ) ROM_LOAD32_WORD_SWAP( "jem5rc26_02l.u66", 0x00002, 0x080000, CRC(cb49f466) SHA1(e3987de2e640fe8116d66d2c1755e6500dedf8a5) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Lucky Fountain (Russia) @@ -535,8 +596,7 @@ ROM_START( luckfoun ) ROM_LOAD32_WORD_SWAP( "luf5rd26_01h.u75", 0x00000, 0x080000, CRC(68b3d50a) SHA1(9b3d2a9f5d72db091e79b036017bd5d07f9fed00) ) ROM_LOAD32_WORD_SWAP( "luf5rd26_02l.u66", 0x00002, 0x080000, CRC(e7e9b8cd) SHA1(d8c421b0d58775f5a0ccae6395a604091b0acf1d) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Mohican Sun (Russia) @@ -547,8 +607,7 @@ ROM_START( mohicans ) ROM_LOAD32_WORD_SWAP( "moh5rf26_01h.u75", 0x00000, 0x100000, CRC(527dda20) SHA1(0a71484421738517c17d76e9bf92943b57cc4cc8) ) ROM_LOAD32_WORD_SWAP( "moh5rf26_02l.u66", 0x00002, 0x100000, CRC(a9bd3846) SHA1(02d80ff6c20e3732ae582de5d4392d4d6d8ba955) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // The Monster Show (Russia) @@ -559,8 +618,7 @@ ROM_START( monshow ) ROM_LOAD32_WORD_SWAP( "tms5rc26_01h.u75", 0x00000, 0x100000, CRC(8209aafe) SHA1(e48a0524ad93a9b657d3efe67f7b5e1067b37e48) ) ROM_LOAD32_WORD_SWAP( "tms5rc26_02l.u66", 0x00002, 0x100000, CRC(78de8c59) SHA1(ad73bc926f5874d257171dfa6b727cb31e33bce9) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Rapid Fire 5 (NSW) @@ -573,8 +631,7 @@ ROM_START( rapfire5 ) ROM_REGION( 0x200000, "ifu", 0 ) ROM_LOAD( "2n12prog_ifu.u190", 0x00000, 0x080000, CRC(c9c4ac89) SHA1(8eebda327892d00951355a86e927fa2e4ad3c9a0) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "r0561111.fmu", 0x0000, 0x1800000, NO_DUMP ) // R0561111.FMU Chk-GR: 1CC6, SD: 6FEE R_FIRE05 6 x 2M Konami + ENDEAVOUR_UNDUMPED_FLASH // R0561111.FMU Chk-GR: 1CC6, SD: 6FEE R_FIRE05 6 x 2M Konami ROM_END // Roman Legion (Russia) @@ -585,8 +642,7 @@ ROM_START( romanl ) ROM_LOAD32_WORD_SWAP( "rol5rg26_01h.u75", 0x00000, 0x100000, CRC(d441d30c) SHA1(025111699a7e29781bbb4d0f4151c808e3d06235) ) ROM_LOAD32_WORD_SWAP( "rol5rg26_02l.u66", 0x00002, 0x100000, CRC(08bd72ca) SHA1(a082cffeb1bccc8ec468a618eaabba7dac89882c) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Safe Money (Russia) @@ -597,8 +653,7 @@ ROM_START( safemon ) ROM_LOAD32_WORD_SWAP( "sam5rj26_01h.u75", 0x00000, 0x080000, CRC(7f82693f) SHA1(1c8540d209ab17f4fca5ff74bc687c83ec315208) ) ROM_LOAD32_WORD_SWAP( "sam5rj26_02l.u66", 0x00002, 0x080000, CRC(73bd981e) SHA1(f01b97201bd877c601cf3c742a6e0963de8e48dc) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Show Queen (Russia) @@ -609,8 +664,7 @@ ROM_START( showqn ) ROM_LOAD32_WORD_SWAP( "shq5rc26_01h.u75", 0x00000, 0x080000, CRC(3fc44415) SHA1(f0be1b90a2a374f9fb9e059e834bbdbf714b6607) ) ROM_LOAD32_WORD_SWAP( "shq5rc26_02l.u66", 0x00002, 0x080000, CRC(38a03281) SHA1(1b4552b0ce347df4d87e398111bbf72f126a8ec1) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Spice It Up (Russia) @@ -621,8 +675,7 @@ ROM_START( spiceup ) ROM_LOAD32_WORD_SWAP( "siu5rc26_01h.u75", 0x00000, 0x100000, CRC(373bc2b1) SHA1(af3740fdcd028f162440701c952a3a87805bc65b) ) ROM_LOAD32_WORD_SWAP( "siu5rc26_02l.u66", 0x00002, 0x100000, CRC(2e584321) SHA1(ca98092dde76338117e989e774db2db672d87bfa) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // Sultan's Wish (Russia) @@ -633,8 +686,7 @@ ROM_START( sultanw ) ROM_LOAD32_WORD_SWAP( "suw5rc26_01h.u75", 0x00000, 0x100000, CRC(27760529) SHA1(b8970a706df52ee5792bbd7a4e719f2be87662ac) ) ROM_LOAD32_WORD_SWAP( "suw5rc26_02l.u66", 0x00002, 0x100000, CRC(1c98fd4d) SHA1(58ff948c0deba0bffb8866b15f46518524516501) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // White Russia (Russia) @@ -645,8 +697,7 @@ ROM_START( whiterus ) ROM_LOAD32_WORD_SWAP( "whr5ra26_01h.u75", 0x00000, 0x080000, CRC(d5a1ebb6) SHA1(14a8d1d8f8ae8919eaa878660c7e97e7ea7a02d8) ) ROM_LOAD32_WORD_SWAP( "whr5ra26_02l.u66", 0x00002, 0x080000, CRC(48a2277c) SHA1(965d1da31e3bcde6fda4e15e8980a69e8bce5a84) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) - ROM_LOAD( "flash", 0x0000, 0x1800000, NO_DUMP ) + ENDEAVOUR_UNDUMPED_FLASH ROM_END // "Zero" is not the actual name, the ROMs are clear chips and have no name string @@ -655,7 +706,7 @@ ROM_START( konzero ) ROM_LOAD32_WORD_SWAP( "low2na35_01h.u75", 0x00000, 0x080000, CRC(b9237061) SHA1(0eb311e8e1c872d6a9c38726efb17ddf4713bc7d) ) ROM_LOAD32_WORD_SWAP( "low2na35_02l.u66", 0x00002, 0x080000, CRC(2806299c) SHA1(a069f4477b310f99ff1ff48f622dc30862589127) ) - ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 ) + ENDEAVOUR_UNDUMPED_FLASH // unsure whether this set actually has flash data, given that these chips would be replacing the game chips when resetting the memory ROM_REGION( 0x200000, "ifu", 0 ) @@ -665,50 +716,32 @@ ROM_START( konzero ) ROM_LOAD( "93c56.u98", 0x00, 0x100, CRC(b2521a6a) SHA1(f44711545bee7e9c772a3dc23b79f0ea8059ec50) ) // empty eeprom with Konami header ROM_END -void konendev_state::init_konendev() -{ -} - -void konendev_state::init_enchlamp() -{ - uint32_t *rom = (uint32_t*)memregion("program")->base(); - rom[0x24/4] = 0x00002743; // patch flash checksum for now - - // patch sound data checksums - rom[0x2d924/4] = 0x00000000; - rom[0x2d928/4] = 0x00000000; - rom[0x2d934/4] = 0x00000000; - rom[0x2d938/4] = 0x00000000; - - rom[0] = 0x5782b930; // new checksum for program rom -} - } // anonymous namespace // BIOS -GAME( 200?, konendev, 0, konendev, konendev, konendev_state, init_enchlamp, ROT0, "Konami", "Konami Endeavour BIOS", MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT ) +GAME( 200?, konendev, 0, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Konami Endeavour BIOS", MACHINE_NOT_WORKING | MACHINE_IS_BIOS_ROOT ) // has flash dump -GAME( 200?, enchlamp, konendev, konendev, konendev, konendev_state, init_enchlamp, ROT0, "Konami", "Enchanted Lamp (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 200?, enchlamp, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Enchanted Lamp (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) // missing flash -GAME( 200?, aadvent, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "African Adventure (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, blkrose, 0, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Black Rose Rapid Fire Grand Prix (Konami Endeavour, Queensland)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, dragnfly, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Dragonfly (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, gypmagic, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Gypsy Magic (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, incanp, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Incan Pyramid (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, jestmagi, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Jester Magic (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, luckfoun, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Lucky Fountain (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, mohicans, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Mohican Sun (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, monshow, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "The Monster Show (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, rapfire5, 0, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Rapid Fire 5 (Konami Endeavour, NSW)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, romanl, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Roman Legions (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, safemon, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Safe Money (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, showqn, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Show Queen (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, spiceup, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Spice It Up (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, sultanw, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Sultan's Wish (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) -GAME( 200?, whiterus, konendev, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "White Russia (Konami Endeavour, Russia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 200?, aadvent, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "African Adventure (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, blkrose, 0, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Black Rose Rapid Fire Grand Prix (Konami Endeavour, Queensland)", MACHINE_NOT_WORKING ) +GAME( 200?, dragnfly, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Dragonfly (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, gypmagic, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Gypsy Magic (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, incanp, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Incan Pyramid (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, jestmagi, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Jester Magic (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, luckfoun, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Lucky Fountain (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, mohicans, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Mohican Sun (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, monshow, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "The Monster Show (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, rapfire5, 0, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Rapid Fire 5 (Konami Endeavour, NSW)", MACHINE_NOT_WORKING ) +GAME( 200?, romanl, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Roman Legions (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, safemon, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Safe Money (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, showqn, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Show Queen (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, spiceup, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Spice It Up (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, sultanw, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Sultan's Wish (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) +GAME( 200?, whiterus, konendev, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "White Russia (Konami Endeavour, Russia)", MACHINE_NOT_WORKING ) // clear chip (not a game) -GAME( 200?, konzero, 0, konendev, konendev, konendev_state, init_konendev, ROT0, "Konami", "Zero (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +GAME( 200?, konzero, 0, konendev, konendev, konendev_state, empty_init, ROT0, "Konami", "Zero (Konami Endeavour)", MACHINE_NOT_WORKING ) diff --git a/src/mame/vsystem/pipedrm.cpp b/src/mame/vsystem/pipedrm.cpp index 32c3b74debd..e2f78dd7c0b 100644 --- a/src/mame/vsystem/pipedrm.cpp +++ b/src/mame/vsystem/pipedrm.cpp @@ -928,7 +928,12 @@ ROM_START( hatrisj ) // VS-Z80-0H-8 PCB ROM_END -ROM_START( hatrisp ) // PCB silkscreened VS-Z80-0H-8 despite being different to the above sets' PCB - Has 'show version' handwritten in Japanese on a label +/* +The PCB had a sticker stating "Show Version" written in Japanese, so this version was likely meant for the + 1990 AOU show held 1990/02/27 through 1990/02/28 or possibly for the 1990 AMOA held 1990/10/25 through + 1990/10/27 as it has a "THIS GAME IS FOR USE IN THE USA ONLY." regional copyright notice +*/ +ROM_START( hatrisp ) // PCB silkscreened VS-Z80-0H-8 despite being different to the above sets' PCB ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "3-6show.ic8", 0x00000, 0x08000, CRC(e1cf7403) SHA1(86a5392c6078618575682b53a83e7810fd6db7c0) ) // hand written 3/6 Show -- cgit v1.2.3