From 1e681598609a58992a140bf22a5e56ab8cfd708f Mon Sep 17 00:00:00 2001 From: DavidHaywood <28625134+DavidHaywood@users.noreply.github.com> Date: Sun, 9 Jun 2019 19:15:06 +0100 Subject: new NOT WORKING clones -- Big Karnak (Modular System) [Recreativas.org, ArcadeHacker, ClawGrip, David Haywood] as with other Modular System things, it's not really very close to original hw at all (and uses different boards in a different configuration to other modular system setups) so new driver --- scripts/target/mame/arcade.lua | 1 + src/mame/arcade.flt | 1 + src/mame/drivers/bigkarnk_ms.cpp | 175 +++++++++++++++++++++++++++++++++++++++ src/mame/drivers/wc90b.cpp | 3 +- src/mame/mame.lst | 3 + 5 files changed, 182 insertions(+), 1 deletion(-) create mode 100644 src/mame/drivers/bigkarnk_ms.cpp diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 28b075c80aa..29b374473b5 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -1944,6 +1944,7 @@ files { MAME_DIR .. "src/mame/video/xorworld.cpp", MAME_DIR .. "src/mame/machine/gaelco_ds5002fp.cpp", MAME_DIR .. "src/mame/machine/gaelco_ds5002fp.h", + MAME_DIR .. "src/mame/drivers/bigkarnk_ms.cpp", } createMAMEProjects(_target, _subtarget, "gameplan") diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index 3dc3e1141c5..31f91d13272 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -126,6 +126,7 @@ bfmsys85.cpp bgt.cpp big10.cpp bigevglf.cpp +bigkarnk_ms.cpp bigstrkb.cpp bingo.cpp bingoc.cpp diff --git a/src/mame/drivers/bigkarnk_ms.cpp b/src/mame/drivers/bigkarnk_ms.cpp new file mode 100644 index 00000000000..66ed62e91ef --- /dev/null +++ b/src/mame/drivers/bigkarnk_ms.cpp @@ -0,0 +1,175 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood + +/* + Big Karnak (Modular System) + + this appears to be a different revision than the gaelco.cpp version, so could be original code, or + based off one that is otherwise undumped. + + as with most of the 'Modular System' setups, the hardware is heavily modified from the original + and consists of a multi-board stack in a cage, hence different driver. + + TODO: PCB list + +*/ + + +#include "emu.h" +#include "cpu/m68000/m68000.h" +#include "emupal.h" +#include "screen.h" +#include "speaker.h" + + +class bigkarnk_ms_state : public driver_device +{ +public: + bigkarnk_ms_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_palette(*this, "palette"), + m_screen(*this, "screen"), + m_paletteram(*this, "palette"), + m_gfxdecode(*this, "gfxdecode") + { } + + void bigkarnkm(machine_config &config); + +private: + required_device m_maincpu; + required_device m_palette; + required_device m_screen; + + required_shared_ptr m_paletteram; + required_device m_gfxdecode; + + virtual void machine_start() override; + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + void bigkarnkm_map(address_map &map); +}; + + +void bigkarnk_ms_state::bigkarnkm_map(address_map &map) +{ + map(0x000000, 0x07ffff).rom(); + map(0x200000, 0x2007ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0xff0000, 0xffffff).ram(); +} + + +void bigkarnk_ms_state::machine_start() +{ +} + + +uint32_t bigkarnk_ms_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +static INPUT_PORTS_START( bigkarnkm ) +INPUT_PORTS_END + +static const gfx_layout tiles16x16x4_layout = +{ + 16,16, + RGN_FRAC(1,1), + 4, + { 0,8,16,24 }, + { 0,1,2,3,4,5,6,7, 512,513,514,515,516,517,518,519 }, + { STEP16(0,32) }, + 16 * 16 * 4 +}; + +static GFXDECODE_START( gfx_bigkarnk_ms ) + GFXDECODE_ENTRY( "gfx1", 0, tiles16x16x4_layout, 0, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, tiles16x16x4_layout, 0, 16 ) +GFXDECODE_END + +void bigkarnk_ms_state::bigkarnkm(machine_config &config) +{ + /* basic machine hardware */ + M68000(config, m_maincpu, 12_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &bigkarnk_ms_state::bigkarnkm_map); + m_maincpu->set_vblank_int("screen", FUNC(bigkarnk_ms_state::irq6_line_hold)); + + /* video hardware */ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_size(256, 256); + m_screen->set_visarea(0, 256-1, 0, 256-32-1); + m_screen->set_screen_update(FUNC(bigkarnk_ms_state::screen_update)); + m_screen->set_palette(m_palette); + + PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 0x400); + + GFXDECODE(config, m_gfxdecode, "palette", gfx_bigkarnk_ms); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); +} + +ROM_START( bigkarnkm ) + ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "cpu_ka_6.ic8", 0x000001, 0x020000, CRC(ab71c1d3) SHA1(3174f1c68e4aa5b6053b118da1fed1f4001193b0) ) + ROM_LOAD16_BYTE( "cpu_ka_6.ic17", 0x000000, 0x020000, CRC(9f5c0dac) SHA1(a8089f58e34d7ba581303f7cf819297d21867a6a) ) + ROM_LOAD16_BYTE( "cpu_ka_6.ic11", 0x040001, 0x020000, CRC(30674ef3) SHA1(d1b29337068ed7323c104a48de593c9ac4668e66) ) + ROM_LOAD16_BYTE( "cpu_ka_6.ic20", 0x040000, 0x020000, CRC(332d6dea) SHA1(cd7e402642f57c12cb7405c49b75bfaa0d104421) ) + + ROM_REGION( 0x010000, "audiocpu", 0 ) /* Z80 code (uses YM3812 + M5205) */ + ROM_LOAD( "snd_ka.ic6", 0x000000, 0x010000, CRC(48a66be8) SHA1(0ca8e4ef5b5e257d56afda6946c5f2a0712917a3) ) + + ROM_REGION( 0x020000, "audiodata", 0 ) + ROM_LOAD( "snd_ka.ic11", 0x000000, 0x020000, CRC(8e53a6b8) SHA1(5082bbcb042216a6d58c654a52c98d75df700ac8) ) + + ROM_REGION( 0x180000, "gfx1", ROMREGION_ERASEFF ) // sprites (same rom subboard type as galpanic_ms.cpp) + ROM_LOAD32_BYTE( "5_ka.ic4", 0x000003, 0x020000, CRC(2bee07ea) SHA1(afd8769955314768db894e4e98f65422fc0dbb4f) ) + ROM_LOAD32_BYTE( "5_ka.ic13", 0x000002, 0x020000, CRC(d55e3024) SHA1(71c84a76b08f8983f65ac4b99430eeb30dc3f8ea) ) + ROM_LOAD32_BYTE( "5_ka.ic19", 0x000001, 0x020000, CRC(fc682c21) SHA1(c3fa9907fbe276bc4b74b79dda52713e702e441c) ) + ROM_LOAD32_BYTE( "5_ka.ic25", 0x000000, 0x020000, CRC(1157b739) SHA1(fdea10f808f258409e19e41dedfb3d4699e7daa2) ) + ROM_LOAD32_BYTE( "5_ka.ic5", 0x080003, 0x020000, CRC(507056f7) SHA1(e754c803f85862a37d2a48be6554ff5bc4128b4d) ) + ROM_LOAD32_BYTE( "5_ka.ic14", 0x080002, 0x020000, CRC(ef936e76) SHA1(ed93b04a45c38c0fa7333f182beba33fafe17f38) ) + ROM_LOAD32_BYTE( "5_ka.ic20", 0x080001, 0x020000, CRC(38854cd6) SHA1(b32efc1c621a9d8559c294f7431c219a05a37db6) ) + ROM_LOAD32_BYTE( "5_ka.ic26", 0x080000, 0x020000, CRC(3f63c4ed) SHA1(e0dd3ec27e7aa0b7db1587e83d20d1b9333ca405) ) + ROM_LOAD32_BYTE( "5_ka.ic6", 0x100003, 0x020000, CRC(2fdbc484) SHA1(6e8ac1a8bde8189b7ebf32c59185425c512ab911) ) + ROM_LOAD32_BYTE( "5_ka.ic15", 0x100002, 0x020000, CRC(802128e4) SHA1(20cfdf28aa7ada404ceca236c6eb554dcaa8e633) ) + ROM_LOAD32_BYTE( "5_ka.ic21", 0x100001, 0x020000, CRC(5ccc0f99) SHA1(ae2b2d4b2aa77a099ad2711032e6a05ab52789b9) ) + ROM_LOAD32_BYTE( "5_ka.ic27", 0x100000, 0x020000, CRC(55509d96) SHA1(ddd064695ca7e8c2377f13484e385bf7ea7df610) ) + + ROM_REGION( 0x100000, "gfx2", 0 ) + ROM_LOAD32_BYTE( "8_ka_814.ic14", 0x000003, 0x020000, CRC(50e6cab6) SHA1(5af8b27f35a59611484ea35a2883b1e59d5c7517) ) + ROM_LOAD32_BYTE( "8_ka_821.ic21", 0x000002, 0x020000, CRC(90c1d93e) SHA1(581a1e2f30e8b467c8d8f5c8e528c78c0c3904f2) ) + ROM_LOAD32_BYTE( "8_ka_829.ic29", 0x000001, 0x020000, CRC(8c5df0ec) SHA1(15a5b847d6d035f27300435a03bd254dd9b3f99c) ) + ROM_LOAD32_BYTE( "8_ka_836.ic36", 0x000000, 0x020000, CRC(43de75db) SHA1(419e7702d17c52365addb8bfda582e916762ead5) ) + ROM_LOAD32_BYTE( "8_ka_815.ic15", 0x080003, 0x020000, CRC(59d79b33) SHA1(70b9c60a72e517ac70f807c918f0ad4dd6c98f98) ) + ROM_LOAD32_BYTE( "8_ka_822.ic22", 0x080002, 0x020000, CRC(12fc89c0) SHA1(883144d0c453cd8f829b2209d9a8028b7f87d0d5) ) + ROM_LOAD32_BYTE( "8_ka_830.ic30", 0x080001, 0x020000, CRC(9904ae87) SHA1(5df3b35185c53a64c0647d297a19b9c013a3b3c2) ) + ROM_LOAD32_BYTE( "8_ka_837.ic37", 0x080000, 0x020000, CRC(f475eaa7) SHA1(8e5c7f0231d7f84bc377b756b99d055a4791e3bf) ) + + ROM_REGION( 0x100, "prom", ROMREGION_ERASEFF ) + ROM_LOAD( "51_p0502_n82s129n.ic10", 0x000, 0x100, CRC(15085e44) SHA1(646e7100fcb112594023cf02be036bd3d42cc13c) ) // common PROM found on all? Modular System sets? + + ROM_REGION( 0x100000, "pals", 0 ) + ROM_LOAD( "51_p0503_pal16r6acn.ic48", 0x000, 0x104, CRC(07eb86d2) SHA1(482eb325df5bc60353bac85412cf45429cd03c6d) ) // matches one of the Euro League Modular System PALs + + ROM_REGION( 0x100, "protgal", 0 ) // all read protected + ROM_LOAD( "5_5148_gal16v8-25lnc.ic9", 0, 1, NO_DUMP ) + ROM_LOAD( "5_5248_gal16v8-25lnc.ic8", 0, 1, NO_DUMP ) + ROM_LOAD( "7_75flv_gal16v8-25hb1.ic59", 0, 1, NO_DUMP ) + ROM_LOAD( "7_7148_gal20v8-25lp.ic7", 0, 1, NO_DUMP ) + ROM_LOAD( "7_7248_gal20v8-25lp.ic54", 0, 1, NO_DUMP ) + ROM_LOAD( "7_7348_gal16v8-25hb1.ic55", 0, 1, NO_DUMP ) + ROM_LOAD( "7_7448_gal16v8-25hb1.ic9", 0, 1, NO_DUMP ) + ROM_LOAD( "7_7648_gal20v8-25lp.ic44", 0, 1, NO_DUMP ) + ROM_LOAD( "cpu_606_gal16v8-25hb1.ic13", 0, 1, NO_DUMP ) + ROM_LOAD( "cpu_648_gal16v8-25ln.ic7", 0, 1, NO_DUMP ) + ROM_LOAD( "snd_9148_gal16v8-25hb1.ic142", 0, 1, NO_DUMP ) + ROM_LOAD( "snd_9248_gal20v8-25lp.ic18", 0, 1, NO_DUMP ) + ROM_LOAD( "snd_9348_gal16v8-25hb1.ic10", 0, 1, NO_DUMP ) +ROM_END + +GAME( 1991, bigkarnkm, bigkarnk, bigkarnkm, bigkarnkm, bigkarnk_ms_state, empty_init, ROT0, "Gaelco", "Big Karnak (Modular System)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/wc90b.cpp b/src/mame/drivers/wc90b.cpp index 337eb6e38a6..a06400b1d6f 100644 --- a/src/mame/drivers/wc90b.cpp +++ b/src/mame/drivers/wc90b.cpp @@ -711,6 +711,7 @@ GAME( 1989, twcup90b1, twcup90, wc90b, wc90b, wc90b_state, init_wc90b, ROT0, "bo GAME( 1989, twcup90ba, twcup90, wc90b, wc90b, wc90b_state, init_wc90b, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1989, twcup90b2, twcup90, wc90b, wc90b, wc90b_state, init_wc90b, ROT0, "bootleg", "Worldcup '90 (hack)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1989, twcup90bb, twcup90, wc90b, wc90b, wc90b_state, init_wc90b, ROT0, "bootleg", "World Cup '90 (European hack, different title)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) - // not sure if it best fits here, in wc90.cpp, or in a new driver, it shares the weird tile decoding with the bootlegs tho +// not sure if it best fits here, in wc90.cpp, or in a new driver, it shares the weird tile decoding with the bootlegs tho +// Gaelco requested the registry of the "Euro League" trademark on 1990, and it was a Gaelco protected trademark (in Spain) until 1999 (they paid a 5-year renew in 1994): https://www.patentes-y-marcas.com/marca/euro-league-m1546246 GAME( 1989, eurogael, twcup90, eurogael, wc90b, eurogael_state, init_wc90b, ROT0, "bootleg (Gaelco / Ervisa)", "Euro League (Gaelco bootleg, Modular System)", MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 24263551077..b5c2ffdec9c 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -8866,6 +8866,9 @@ bigbord2 // bigevglf // A67 (c) 1986 Taito America Corporation (US) bigevglfj // A67 (c) 1986 Taito Corporation (Japan) +@source:bigkarnk_ms.cpp +bigkarnkm // + @source:bigstrkb.cpp bigstrkb // bootleg on different hardware bigstrkba // alt set of 'bigstrkb' with Italian teams -- cgit v1.2.3