From cdd5569296d325401de337050e98ccafd6482102 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 10 Mar 2023 17:56:56 +0100 Subject: [PATCH] misc/amaticmg.cpp: removed tag lookup --- src/mame/misc/amaticmg.cpp | 157 +++++++++++++++++++------------------ 1 file changed, 81 insertions(+), 76 deletions(-) diff --git a/src/mame/misc/amaticmg.cpp b/src/mame/misc/amaticmg.cpp index 209206db9a4..f225903adf0 100644 --- a/src/mame/misc/amaticmg.cpp +++ b/src/mame/misc/amaticmg.cpp @@ -1,5 +1,6 @@ // license:BSD-3-Clause -// copyright-holders:Roberto Fresca, Angelo Salese +// copyright-holders: Roberto Fresca, Angelo Salese + /********************************************************************************** AMA-8000-1 / AMA-8000-2 Multi Game System. @@ -411,12 +412,14 @@ #include "emu.h" + #include "cpu/z80/z80.h" -#include "machine/i8255.h" #include "machine/ds1994.h" +#include "machine/i8255.h" +//#include "sound/dac.h" #include "sound/ymopl.h" #include "video/mc6845.h" -//#include "sound/dac.h" + #include "emupal.h" #include "screen.h" #include "speaker.h" @@ -424,14 +427,18 @@ #include "suprstar.lh" +// configurable logging +#define LOG_PPIOUT (1U << 1) + +//#define VERBOSE (LOG_GENERAL | LOG_PPIOUT) + +#include "logmacro.h" + +#define LOGPPIOUT(...) LOGMASKED(LOG_PPIOUT, __VA_ARGS__) + + namespace { -#define MASTER_CLOCK XTAL(16'000'000) -#define CPU_CLOCK MASTER_CLOCK/4 /* guess */ -#define SND_CLOCK MASTER_CLOCK/4 /* guess */ -#define CRTC_CLOCK MASTER_CLOCK/8 /* guess */ - - class amaticmg_state : public driver_device { public: @@ -439,6 +446,7 @@ public: driver_device(mconfig, type, tag), m_attr(*this, "attr"), m_vram(*this, "vram"), + m_rombank(*this, "rombank"), m_maincpu(*this, "maincpu"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), @@ -460,11 +468,11 @@ public: protected: virtual void machine_start() override; virtual void machine_reset() override; - virtual void video_start() override; private: required_shared_ptr m_attr; required_shared_ptr m_vram; + required_memory_bank m_rombank; required_device m_maincpu; required_device m_gfxdecode; @@ -502,26 +510,20 @@ private: * Video Hardware * ************************************/ -void amaticmg_state::video_start() -{ -} - uint32_t amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { gfx_element *gfx = m_gfxdecode->gfx(0); - int y, x; int count = 0; - for (y = 0; y < 32; y++) + for (int y = 0; y < 32; y++) { - for (x = 0; x < 96; x++) + for (int x = 0; x < 96; x++) { uint16_t tile = m_vram[count]; - uint8_t color; tile += ((m_attr[count] & 0x0f) << 8); - /* TODO: this looks so out of place ... */ - color = (m_attr[count] & 0xf0) >> 3; + // TODO: this looks so out of place ... + uint8_t const color = (m_attr[count] & 0xf0) >> 3; gfx->opaque(bitmap, cliprect, tile, color, 0, 0, x * 4, y * 8); count++; @@ -534,18 +536,16 @@ uint32_t amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_rg uint32_t amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { gfx_element *gfx = m_gfxdecode->gfx(0); - int y, x; int count = 16; - for (y = 0; y < 32; y++) + for (int y = 0; y < 32; y++) { - for (x = 0; x < 96; x++) + for (int x = 0; x < 96; x++) { uint16_t tile = m_vram[count]; - uint8_t color; tile += ((m_attr[count] & 0xff) << 8); - color = 0; + uint8_t color = 0; gfx->opaque(bitmap, cliprect, tile, color, 0, 0, x * 4, y * 8); count++; @@ -618,7 +618,7 @@ void amaticmg_state::touchm_w(uint8_t data) void amaticmg_state::rombank_w(uint8_t data) { - membank("bank1")->set_entry(data & 0xf); + m_rombank->set_entry(data & 0xf); } void amaticmg_state::nmi_mask_w(uint8_t data) @@ -638,12 +638,12 @@ void amaticmg_state::out_a_w(uint8_t data) -x-- ---- HOLD4 */ - m_lamps[0] = BIT(data, 3); /* START */ - m_lamps[1] = BIT(data, 4); /* BET */ - m_lamps[2] = BIT(data, 5); /* HOLD3 */ - m_lamps[3] = BIT(data, 6); /* HOLD4 */ + m_lamps[0] = BIT(data, 3); // START + m_lamps[1] = BIT(data, 4); // BET + m_lamps[2] = BIT(data, 5); // HOLD3 + m_lamps[3] = BIT(data, 6); // HOLD4 - logerror("port A: %2X\n", data); + LOGPPIOUT("port A: %2X\n", data); } void amaticmg_state::out_c_w(uint8_t data) @@ -659,19 +659,19 @@ void amaticmg_state::out_c_w(uint8_t data) x--- ---- Hopper motor --x- x--- (unknown) */ - m_lamps[4] = BIT(data, 1); /* HOLD1 */ - m_lamps[5] = BIT(data, 4); /* HOLD2 */ - m_lamps[6] = BIT(data, 6); /* CANCEL */ + m_lamps[4] = BIT(data, 1); // HOLD1 + m_lamps[5] = BIT(data, 4); // HOLD2 + m_lamps[6] = BIT(data, 6); // CANCEL -// machine().bookkeeping().coin_counter_w(0, data & 0x04); /* Coin In */ -// machine().bookkeeping().coin_counter_w(1, data & 0x01); /* Coin Out */ +// machine().bookkeeping().coin_counter_w(0, data & 0x04); // Coin In +// machine().bookkeeping().coin_counter_w(1, data & 0x01); // Coin Out - logerror("port C: %2X\n", data); + LOGPPIOUT("port C: %2X\n", data); } void amaticmg_state::unk80_w(uint8_t data) { -// m_dac->write(BIT(data, 0)); /* Sound DAC */ +// m_dac->write(BIT(data, 0)); // Sound DAC } @@ -684,9 +684,9 @@ void amaticmg_state::amaticmg_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x9fff).ram(); // .share("nvram"); - map(0xa000, 0xafff).ram().share("vram"); - map(0xb000, 0xbfff).ram().share("attr"); - map(0xc000, 0xffff).bankr("bank1"); + map(0xa000, 0xafff).ram().share(m_vram); + map(0xb000, 0xbfff).ram().share(m_attr); + map(0xc000, 0xffff).bankr(m_rombank); } void amaticmg_state::amaticmg_portmap(address_map &map) @@ -828,7 +828,7 @@ static const gfx_layout charlayout_6bpp = RGN_FRAC(1,3), 6, { RGN_FRAC(0,3) + 0, RGN_FRAC(0,3) + 4, RGN_FRAC(1,3) + 0, RGN_FRAC(1,3) + 4,RGN_FRAC(2,3) + 0, RGN_FRAC(2,3) + 4, }, - { 3, 2, 1, 0 }, /* tiles are x-flipped */ + { 3, 2, 1, 0 }, // tiles are x-flipped { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 8*4*2 }; @@ -839,11 +839,11 @@ static const gfx_layout charlayout_6bpp = ************************************/ static GFXDECODE_START( gfx_amaticmg ) - GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout_4bpp, 0, 0x20 ) + GFXDECODE_ENTRY( "chars", 0x0000, charlayout_4bpp, 0, 0x20 ) GFXDECODE_END static GFXDECODE_START( gfx_amaticmg2 ) - GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout_6bpp, 0, 0x10000/0x40 ) + GFXDECODE_ENTRY( "chars", 0x0000, charlayout_6bpp, 0, 0x10000/0x40 ) GFXDECODE_END @@ -855,14 +855,16 @@ void amaticmg_state::machine_start() { uint8_t *rombank = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 0x10, &rombank[0x8000], 0x4000); + m_rombank->configure_entries(0, 0x10, &rombank[0x8000], 0x4000); m_lamps.resolve(); + + save_item(NAME(m_nmi_mask)); } void amaticmg_state::machine_reset() { - membank("bank1")->set_entry(0); + m_rombank->set_entry(0); m_nmi_mask = 0; } @@ -873,14 +875,19 @@ void amaticmg_state::machine_reset() void amaticmg_state::amaticmg(machine_config &config) { - /* basic machine hardware */ - Z80(config, m_maincpu, CPU_CLOCK); /* WRONG! */ + constexpr XTAL MASTER_CLOCK = XTAL(16'000'000); + constexpr XTAL CPU_CLOCK = MASTER_CLOCK / 4; // guess + constexpr XTAL SND_CLOCK = MASTER_CLOCK / 4; // guess + constexpr XTAL CRTC_CLOCK = MASTER_CLOCK / 8; // guess + + // basic machine hardware + Z80(config, m_maincpu, CPU_CLOCK); // WRONG! m_maincpu->set_addrmap(AS_PROGRAM, &amaticmg_state::amaticmg_map); m_maincpu->set_addrmap(AS_IO, &amaticmg_state::amaticmg_portmap); // NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - /* 3x 8255 */ + // 3x 8255 i8255_device &ppi0(I8255A(config, "ppi8255_0")); ppi0.in_pa_callback().set_ioport("IN0"); ppi0.in_pb_callback().set_ioport("IN1"); @@ -891,7 +898,7 @@ void amaticmg_state::amaticmg(machine_config &config) ppi1.in_pb_callback().set_ioport("SW1"); ppi1.out_pc_callback().set(FUNC(amaticmg_state::out_c_w)); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); @@ -908,10 +915,10 @@ void amaticmg_state::amaticmg(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfx_amaticmg); PALETTE(config, m_palette, FUNC(amaticmg_state::amaticmg_palette), 0x200); - /* sound hardware */ + // sound hardware SPEAKER(config, "speaker").front_center(); - YM3812(config, "ymsnd", SND_CLOCK).add_route(ALL_OUTPUTS, "speaker", 0.5); /* Y3014B DAC */ + YM3812(config, "ymsnd", SND_CLOCK).add_route(ALL_OUTPUTS, "speaker", 0.5); // Y3014B DAC } @@ -966,10 +973,10 @@ void amaticmg_state::amaticmg4(machine_config &config) ROM_START( suprstar ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x20000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x20000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "u3.bin", 0x00000, 0x20000, CRC(29bf4a95) SHA1(a73873f7cd1fdf5accc3e79f4619949f261400b8) ) - ROM_REGION( 0x10000, "gfx1", 0 ) + ROM_REGION( 0x10000, "chars", 0 ) ROM_LOAD( "u10.bin", 0x00000, 0x08000, CRC(6a811c81) SHA1(af01cd9b1ce6aca92df71febb05fe216b18cf42a) ) ROM_CONTINUE( 0x00000, 0x08000 ) ROM_LOAD( "u9.bin", 0x08000, 0x08000, CRC(823a736a) SHA1(a5227e3080367736aac1198d9dbb55efc4114624) ) @@ -985,10 +992,10 @@ ROM_END ROM_START( am_mg24 ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mgi_vger_3.9-i-8201.i6.bin", 0x00000, 0x40000, CRC(9ce159f7) SHA1(101c277d579a69cb03f879288b2cecf838cf1741) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "multi_2.4_zg1.i17.bin", 0x100000, 0x80000, CRC(4a60a718) SHA1(626991abee768da58e87c7cdfc4fcbae86c6ea2a) ) ROM_LOAD( "multi_2.4_zg2.i18.bin", 0x080000, 0x80000, CRC(b504e1b8) SHA1(ffa17a2c212eb2fffb89b131868e69430cb41203) ) ROM_LOAD( "multi_2.4_zg3.i33.bin", 0x000000, 0x80000, CRC(9b66bb4d) SHA1(64035d2028a9b68164c87475a1ec9754453ad572) ) @@ -1008,16 +1015,14 @@ ROM_END Lfnd. Nr. 0940 Type: 801 L Datum: 11.12.95 - - The program needs proper decryption. */ ROM_START( am_mg24a ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "multi_stm_27_cl_8202.bin", 0x00000, 0x40000, CRC(e3625367) SHA1(cea3ae4042522c720119ea94c8f05f74cbcdcab0) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "multi_2.4_zg1.bin", 0x100000, 0x80000, CRC(29c3a45b) SHA1(97157a4d436a3dc8b81ffd7eb51f96f3bd969f4b) ) // this one doesn't match the parent. ROM_LOAD( "multi_2.4_zg2.bin", 0x080000, 0x80000, CRC(b504e1b8) SHA1(ffa17a2c212eb2fffb89b131868e69430cb41203) ) // identical to the parent. ROM_LOAD( "multi_2.4_zg3.bin", 0x000000, 0x80000, CRC(9b66bb4d) SHA1(64035d2028a9b68164c87475a1ec9754453ad572) ) // identical to the parent. @@ -1033,10 +1038,10 @@ ROM_END ROM_START( am_mg3 ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mg_iii_vger_3.5-i-8205.bin", 0x00000, 0x40000, CRC(21d64029) SHA1(d5c3fde02833a96dd7a43481a489bfc4a5c9609d) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg_iii_51_zg1.bin", 0x100000, 0x80000, CRC(84f86874) SHA1(c483a50df6a9a71ddfdf8530a894135f9b852b89) ) ROM_LOAD( "mg_iii_51_zg2.bin", 0x080000, 0x80000, CRC(4425e535) SHA1(726c322c5d0b391b82e49dd1797ebf0abfa4a65a) ) ROM_LOAD( "mg_iii_51_zg3.bin", 0x000000, 0x80000, CRC(36d4c0fa) SHA1(20352dbbb2ce2233be0f4f694ddf49b8f5d6a64f) ) @@ -1048,10 +1053,10 @@ ROM_END ROM_START( am_mg3a ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mg_iii_vger_3.64_v_8309.i16", 0x00000, 0x40000, CRC(c54f97c4) SHA1(d5ce91be7332ada304d18d07706e3b98ac0fa74b) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg_iii_51_zg1.i17", 0x100000, 0x80000, CRC(84f86874) SHA1(c483a50df6a9a71ddfdf8530a894135f9b852b89) ) ROM_LOAD( "mg_iii_51_zg2.i18", 0x080000, 0x80000, CRC(4425e535) SHA1(726c322c5d0b391b82e49dd1797ebf0abfa4a65a) ) ROM_LOAD( "mg_iii_51_zg3.i19", 0x000000, 0x80000, CRC(36d4c0fa) SHA1(20352dbbb2ce2233be0f4f694ddf49b8f5d6a64f) ) @@ -1065,10 +1070,10 @@ ROM_END ROM_START( am_mg31i ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mgi_sita_3.1_o_8270.bin", 0x00000, 0x40000, CRC(7358bdde) SHA1(674b57ddaaaed9b88ad563762b2421be7057e498) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg2_ita.1", 0x100000, 0x80000, BAD_DUMP CRC(8663ce10) SHA1(00606bc69bd3a81a2f1b618d018d3ac315169fe4) ) ROM_LOAD( "mg2_ita.2", 0x080000, 0x80000, BAD_DUMP CRC(7dbaf752) SHA1(afefbd239519abb4898348a3923ff093e36fbcb0) ) ROM_LOAD( "mg2_ita.3", 0x000000, 0x80000, BAD_DUMP CRC(5dba55cf) SHA1(d237f8b3c72e8b59974059156070d0618ec41e9a) ) @@ -1080,10 +1085,10 @@ ROM_END ROM_START( am_mg33i ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mgi_sita_3.3_o_8270.bin", 0x00000, 0x40000, CRC(eaa1ed83) SHA1(e50d06ea3631bd6e4f5fe14d8283c3550b2779a6) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg2_ita.1", 0x100000, 0x80000, BAD_DUMP CRC(8663ce10) SHA1(00606bc69bd3a81a2f1b618d018d3ac315169fe4) ) ROM_LOAD( "mg2_ita.2", 0x080000, 0x80000, BAD_DUMP CRC(7dbaf752) SHA1(afefbd239519abb4898348a3923ff093e36fbcb0) ) ROM_LOAD( "mg2_ita.3", 0x000000, 0x80000, BAD_DUMP CRC(5dba55cf) SHA1(d237f8b3c72e8b59974059156070d0618ec41e9a) ) @@ -1095,10 +1100,10 @@ ROM_END ROM_START( am_mg34i ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mgi_sita_3.4_o_8270.bin", 0x00000, 0x40000, CRC(bea7cd25) SHA1(89c9e02b48f34b2168e8624e552ead476cc339b9) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg2_ita.1", 0x100000, 0x80000, BAD_DUMP CRC(8663ce10) SHA1(00606bc69bd3a81a2f1b618d018d3ac315169fe4) ) ROM_LOAD( "mg2_ita.2", 0x080000, 0x80000, BAD_DUMP CRC(7dbaf752) SHA1(afefbd239519abb4898348a3923ff093e36fbcb0) ) ROM_LOAD( "mg2_ita.3", 0x000000, 0x80000, BAD_DUMP CRC(5dba55cf) SHA1(d237f8b3c72e8b59974059156070d0618ec41e9a) ) @@ -1110,10 +1115,10 @@ ROM_END ROM_START( am_mg35i ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mgi_sita_3.5_o_8270.bin", 0x00000, 0x40000, CRC(816eb41e) SHA1(0cad597e764455011d03f519e4adafb310e75451) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg2_ita.1", 0x100000, 0x80000, BAD_DUMP CRC(8663ce10) SHA1(00606bc69bd3a81a2f1b618d018d3ac315169fe4) ) ROM_LOAD( "mg2_ita.2", 0x080000, 0x80000, BAD_DUMP CRC(7dbaf752) SHA1(afefbd239519abb4898348a3923ff093e36fbcb0) ) ROM_LOAD( "mg2_ita.3", 0x000000, 0x80000, BAD_DUMP CRC(5dba55cf) SHA1(d237f8b3c72e8b59974059156070d0618ec41e9a) ) @@ -1128,10 +1133,10 @@ ROM_END ROM_START( am_mg4v ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "mg_iv_vger_3__3.44_v_8373.bin", 0x00000, 0x40000, CRC(fab3aa28) SHA1(889870ca6ebfb0361e74803b7b50ff78c5e0df46) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg_iv_vger_3__zg_1.bin", 0x100000, 0x80000, CRC(da9a1282) SHA1(15c6e4b460184603108d79bc104b8a0d036aad43) ) ROM_LOAD( "mg_iv_vger_3__zg_2.bin", 0x080000, 0x80000, CRC(98dc36ed) SHA1(53ee317198730a8b34fec51f9fa237f980424fb9) ) ROM_LOAD( "mg_iv_vger_3__zg_3.bin", 0x000000, 0x80000, CRC(1525c235) SHA1(b873f0b8dc8537558e43b37c95b5663fbddc09cc) ) @@ -1233,10 +1238,10 @@ ROM_END ROM_START( am_mg5hu ) ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x40000, "mainprg", 0 ) /* encrypted program ROM...*/ + ROM_REGION( 0x40000, "mainprg", 0 ) // encrypted program ROM ROM_LOAD( "omh.bin", 0x00000, 0x40000, CRC(e68522df) SHA1(b53ef40ee65df855b4dc843119a2337fa0a39d6e) ) - ROM_REGION( 0x180000, "gfx1", 0 ) + ROM_REGION( 0x180000, "chars", 0 ) ROM_LOAD( "mg5_zg1.bin", 0x100000, 0x80000, CRC(e3c0e0a5) SHA1(9c672f49bf10dd96f9dc6eb9ca58aaba93576764) ) ROM_LOAD( "mg5_zg2.bin", 0x080000, 0x80000, CRC(76bbce77) SHA1(cc11efb151e749040ca69c4e91e7adaa992577ce) ) ROM_LOAD( "mg5_zg3.bin", 0x000000, 0x80000, CRC(2a78f9b5) SHA1(eb46c2da70a0aba4d1f93b99f39a2d3d594cb758) )