From 57473cabc124c3b1c772c2d6b7c4fb50c60ad9a9 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 8 May 2024 17:59:43 +0200 Subject: [PATCH] New working clones ------------------ Double Dragon (Japan set 2) [l_oliveira] --- src/emu/xtal.cpp | 1 + src/mame/galaxian/galaxian.cpp | 3 +- src/mame/mame.lst | 15 +- src/mame/technos/chinagat.cpp | 475 +++++++------ src/mame/technos/ddragon.cpp | 1164 ++++++++++++++++---------------- src/mame/technos/ddragon.h | 94 ++- src/mame/technos/ddragon_v.cpp | 43 +- 7 files changed, 911 insertions(+), 884 deletions(-) diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp index ab4f13f11cf..2733e6c302f 100644 --- a/src/emu/xtal.cpp +++ b/src/emu/xtal.cpp @@ -164,6 +164,7 @@ const double XTAL::known_xtals[] = { 8'960'000, /* 8.96_MHz_XTAL Casio CZ-101 (divided by 2 for Music LSI) */ 9'000'000, /* 9_MHz_XTAL Homedata PCBs */ 9'216'000, /* 9.216_MHz_XTAL Univac UTS 20 */ + 9'263'750, /* 9.263750_MHz_XTAL Sai Yu Gou Ma Roku bootleg */ 9'400'000, /* 9.4_MHz_XTAL Yamaha MU-5 and TG-100 */ 9'426'500, /* 9.4265_MHz_XTAL Yamaha DX7, and DX9 */ 9'600'000, /* 9.6_MHz_XTAL WD37C65 second clock (for 300 KB/sec rate) */ diff --git a/src/mame/galaxian/galaxian.cpp b/src/mame/galaxian/galaxian.cpp index a4053827a17..e191bc8637a 100644 --- a/src/mame/galaxian/galaxian.cpp +++ b/src/mame/galaxian/galaxian.cpp @@ -1024,7 +1024,8 @@ int galaxian_state::theend_protection_alt_r() return (m_protection_result >> 7) & 1; } -uint8_t galaxian_state::scrammr_protection_r() // TODO: this is really crude, should probably be done similarly to theend_protection_w +// HACK: this is really crude, should probably be done similarly to theend_protection_w +uint8_t galaxian_state::scrammr_protection_r() { logerror("%s protection read\n", machine().describe_context()); if (m_maincpu->pc() == 0x12e) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 310884e3565..29b425356e4 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -44072,21 +44072,22 @@ saiyugoub2 // bootleg @source:technos/ddragon.cpp darktowr // Game Room -ddragon // TA-0021 (c) 1987 +ddragon // TA-0021 (c) 1987 Taito ddragon2 // TA-0026 (c) 1988 (World) -ddragon2b // bootleg +ddragon2bl // bootleg ddragon2j // TA-0026 (c) 1988 (Japan) ddragon2u // TA-0026 (c) 1988 (US) ddragon6809 // bootleg ddragon6809a // bootleg -ddragonb // bootleg -ddragonb2 // bootleg -ddragonba // bootleg +ddragona // TA-0021 (c) 1987 Taito +ddragonbl // bootleg +ddragonbl2 // bootleg +ddragonbla // bootleg +ddragonj // TA-0021 (c) 1987 +ddragonja // TA-0021 (c) 1987 ddragonu // TA-0021 (c) 1987 Taito America ddragonua // TA-0021 (c) 1987 Taito America ddragonub // TA-0021 (c) 1987 Taito America -ddragonw // TA-0021 (c) 1987 Taito -ddragonw1 // TA-0021 (c) 1987 Taito ddungeon // Game Room ddungeone // East Coast Coin Company (Melbourne) stoffy // (c) 1994 Midas diff --git a/src/mame/technos/chinagat.cpp b/src/mame/technos/chinagat.cpp index 847108f8271..5ada4df8da9 100644 --- a/src/mame/technos/chinagat.cpp +++ b/src/mame/technos/chinagat.cpp @@ -1,9 +1,10 @@ // license:BSD-3-Clause -// copyright-holders:Nicola Salmoria,Paul Hampson, Quench +// copyright-holders: Nicola Salmoria,Paul Hampson, Quench + /* China Gate. By Paul Hampson from First Principles -(IE: Roms + a description of their contents and a list of CPUs on board.) +(IE: ROMs + a description of their contents and a list of CPUs on board.) Based on ddragon.c: "Double Dragon, Double Dragon (bootleg) & Double Dragon II" @@ -19,7 +20,7 @@ No backgrounds ROMs from the original board... clock, based on given attributes in multicycles, screen flip flag, and clocks. It seems almost equivalent to Double Dragon's IC38, 39, 40, 53, 54, and all logic in the page 9 of the schematics for the second board. -- Got two bootleg sets with background gfx roms. Using those on the +- Got two bootleg sets with background gfx ROMs. Using those on the original games for now. OBVIOUS SPEED PROBLEMS... @@ -37,7 +38,7 @@ Port 0x2800 on the Sub CPU. - The Japanese ones have a different title screen so I can't check. ADPCM in the bootlegs is not quite right.... Misusing the data? -- They're nibble-swapped versions of the original roms... +- They're nibble-swapped versions of the original ROMs... - There's an Intel i8748 CPU on the bootlegs (bootleg 1 lists D8749 but the microcode dump's the same). This in conjunction with the different ADPCM chip (msm5205) are used to 'fake' a M6295. @@ -244,6 +245,7 @@ M2H - /% \_____/ duty 1:1, 1.5MHz */ #include "emu.h" + #include "ddragon.h" #include "cpu/m6809/hd6309.h" @@ -254,28 +256,26 @@ M2H - /% \_____/ duty 1:1, 1.5MHz #include "sound/okim6295.h" #include "sound/ymopm.h" #include "sound/ymopn.h" + #include "speaker.h" namespace { -#define MAIN_CLOCK XTAL(12'000'000) -#define PIXEL_CLOCK MAIN_CLOCK / 2 - class chinagat_state : public ddragon_state { public: chinagat_state(const machine_config &mconfig, device_type type, const char *tag) : ddragon_state(mconfig, type, tag) , m_adpcm(*this, "adpcm") + , m_adpcm_rom(*this, "adpcm") + , m_subbank(*this, "subbank") { } void chinagat(machine_config &config); void saiyugoub1(machine_config &config); void saiyugoub2(machine_config &config); - void init_chinagat(); - protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -283,17 +283,21 @@ protected: private: // for Sai Yu Gou Ma Roku - int m_adpcm_addr = 0; - int m_i8748_P1 = 0; - int m_i8748_P2 = 0; - int m_pcm_shift = 0; - int m_pcm_nibble = 0; - int m_mcu_command = 0; + uint32_t m_adpcm_addr = 0; + uint8_t m_i8748_p1 = 0; + uint8_t m_i8748_p2 = 0; + uint8_t m_pcm_shift = 0; + uint8_t m_pcm_nibble = 0; + uint8_t m_mcu_command = 0; #if 0 - int m_m5205_clk = 0; + uint8_t m_m5205_clk = 0; #endif - TIMER_DEVICE_CALLBACK_MEMBER(chinagat_scanline); + optional_device m_adpcm; + optional_region_ptr m_adpcm_rom; + required_memory_bank m_subbank; + + TIMER_DEVICE_CALLBACK_MEMBER(scanline); void interrupt_w(offs_t offset, uint8_t data); void video_ctrl_w(uint8_t data); void bankswitch_w(uint8_t data); @@ -313,8 +317,6 @@ private: void sound_map(address_map &map); void sub_map(address_map &map); void ym2203c_sound_map(address_map &map); - - optional_device m_adpcm; }; @@ -342,26 +344,26 @@ void chinagat_state::video_start() Since MAME's video timing is 0-based, we need to convert this. */ -TIMER_DEVICE_CALLBACK_MEMBER(chinagat_state::chinagat_scanline) +TIMER_DEVICE_CALLBACK_MEMBER(chinagat_state::scanline) { int scanline = param; int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); - /* update to the current point */ + // update to the current point if (scanline > 0) m_screen->update_partial(scanline - 1); - /* on the rising edge of VBLK (vcount == F8), signal an NMI */ + // on the rising edge of VBLK (vcount == F8), signal an NMI if (vcount == 0xf8) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); - /* set 1ms signal on rising edge of vcount & 8 */ + // set 1ms signal on rising edge of vcount & 8 if (!(vcount_old & 8) && (vcount & 8)) m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE); - /* adjust for next scanline */ + // adjust for next scanline if (++scanline >= screen_height) scanline = 0; } @@ -370,23 +372,23 @@ void chinagat_state::interrupt_w(offs_t offset, uint8_t data) { switch (offset) { - case 0: /* 3e00 - SND irq */ + case 0: // 3e00 - SND irq m_soundlatch->write(data); break; - case 1: /* 3e01 - NMI ack */ + case 1: // 3e01 - NMI ack m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); break; - case 2: /* 3e02 - FIRQ ack */ + case 2: // 3e02 - FIRQ ack m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); break; - case 3: /* 3e03 - IRQ ack */ + case 3: // 3e03 - IRQ ack m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); break; - case 4: /* 3e04 - sub CPU IRQ ack */ + case 4: // 3e04 - sub CPU IRQ ack m_subcpu->set_input_line(m_sprite_irq, ASSERT_LINE); break; } @@ -408,12 +410,12 @@ void chinagat_state::video_ctrl_w(uint8_t data) void chinagat_state::bankswitch_w(uint8_t data) { - membank("bank1")->set_entry(data & 0x07); // shall we check (data & 7) < 6 (# of banks)? + m_mainbank->set_entry(data & 0x07); // shall we check (data & 7) < 6 (# of banks)? } void chinagat_state::sub_bankswitch_w(uint8_t data) { - membank("bank4")->set_entry(data & 0x07); // shall we check (data & 7) < 6 (# of banks)? + m_subbank->set_entry(data & 0x07); // shall we check (data & 7) < 6 (# of banks)? } void chinagat_state::sub_irq_ack_w(uint8_t data) @@ -426,7 +428,7 @@ uint8_t chinagat_state::saiyugoub1_mcu_command_r() #if 0 if (m_mcu_command == 0x78) { - m_mcu->suspend(SUSPEND_REASON_HALT, 1); /* Suspend (speed up) */ + m_mcu->suspend(SUSPEND_REASON_HALT, 1); // Suspend (speed up) } #endif return m_mcu_command; @@ -438,23 +440,21 @@ void chinagat_state::saiyugoub1_mcu_command_w(uint8_t data) #if 0 if (data != 0x78) { - m_mcu->resume(SUSPEND_REASON_HALT); /* Wake up */ + m_mcu->resume(SUSPEND_REASON_HALT); // Wake up } #endif } void chinagat_state::saiyugoub1_adpcm_rom_addr_w(uint8_t data) { - /* i8748 Port 1 write */ - m_i8748_P1 = data; + // i8748 Port 1 write + m_i8748_p1 = data; } void chinagat_state::saiyugoub1_adpcm_control_w(uint8_t data) { - /* i8748 Port 2 write */ - uint8_t *saiyugoub1_adpcm_rom = memregion("adpcm")->base(); - - if (data & 0x80) /* Reset m5205 and disable ADPCM ROM outputs */ + // i8748 Port 2 write + if (data & 0x80) // Reset m5205 and disable ADPCM ROM outputs { logerror("ADPCM output disabled\n"); m_pcm_nibble = 0x0f; @@ -462,55 +462,54 @@ void chinagat_state::saiyugoub1_adpcm_control_w(uint8_t data) } else { - if ((m_i8748_P2 & 0xc) != (data & 0xc)) + if ((m_i8748_p2 & 0xc) != (data & 0xc)) { - if ((m_i8748_P2 & 0xc) == 0) /* Latch MSB Address */ + if ((m_i8748_p2 & 0xc) == 0) // Latch MSB Address { -/// logerror("Latching MSB\n"); - m_adpcm_addr = (m_adpcm_addr & 0x3807f) | (m_i8748_P1 << 7); +// logerror("Latching MSB\n"); + m_adpcm_addr = (m_adpcm_addr & 0x3807f) | (m_i8748_p1 << 7); } - if ((m_i8748_P2 & 0xc) == 4) /* Latch LSB Address */ + if ((m_i8748_p2 & 0xc) == 4) // Latch LSB Address { -/// logerror("Latching LSB\n"); - m_adpcm_addr = (m_adpcm_addr & 0x3ff80) | (m_i8748_P1 >> 1); - m_pcm_shift = (m_i8748_P1 & 1) * 4; +// logerror("Latching LSB\n"); + m_adpcm_addr = (m_adpcm_addr & 0x3ff80) | (m_i8748_p1 >> 1); + m_pcm_shift = (m_i8748_p1 & 1) * 4; } } m_adpcm_addr = ((m_adpcm_addr & 0x07fff) | ((data & 0x70) << 11)); - m_pcm_nibble = saiyugoub1_adpcm_rom[m_adpcm_addr & 0x3ffff]; + m_pcm_nibble = m_adpcm_rom[m_adpcm_addr & 0x3ffff]; m_pcm_nibble = (m_pcm_nibble >> m_pcm_shift) & 0x0f; -/// logerror("Writing %02x to m5205. $ROM=%08x P1=%02x P2=%02x Prev_P2=%02x Nibble=%08x\n", m_pcm_nibble, m_adpcm_addr, m_i8748_P1, data, m_i8748_P2, m_pcm_shift); +// logerror("Writing %02x to m5205. $ROM=%08x P1=%02x P2=%02x Prev_P2=%02x Nibble=%08x\n", m_pcm_nibble, m_adpcm_addr, m_i8748_p1, data, m_i8748_p2, m_pcm_shift); - if (((m_i8748_P2 & 0xc) >= 8) && ((data & 0xc) == 4)) + if (((m_i8748_p2 & 0xc) >= 8) && ((data & 0xc) == 4)) { m_adpcm->data_w(m_pcm_nibble); logerror("Writing %02x to m5205\n", m_pcm_nibble); } - logerror("$ROM=%08x P1=%02x P2=%02x Prev_P2=%02x Nibble=%1x PCM_data=%02x\n", m_adpcm_addr, m_i8748_P1, data, m_i8748_P2, m_pcm_shift, m_pcm_nibble); + logerror("$ROM=%08x P1=%02x P2=%02x Prev_P2=%02x Nibble=%1x PCM_data=%02x\n", m_adpcm_addr, m_i8748_p1, data, m_i8748_p2, m_pcm_shift, m_pcm_nibble); } - m_i8748_P2 = data; + m_i8748_p2 = data; } [[maybe_unused]] void chinagat_state::saiyugoub1_m5205_clk_w(uint8_t data) { - /* i8748 T0 output clk mode */ - /* This signal goes through a divide by 8 counter */ - /* to the xtal pins of the MSM5205 */ + /* i8748 T0 output clk mode + This signal goes through a divide by 8 counter + to the xtal pins of the MSM5205 */ - /* Actually, T0 output clk mode is not supported by the i8048 core */ #if 0 m_m5205_clk++; if (m_m5205_clk == 8) { - m_adpcm->vclk_w(1); /* ??? */ + m_adpcm->vclk_w(1); // ??? m_m5205_clk = 0; } else - m_adpcm->vclk_w(0); /* ??? */ + m_adpcm->vclk_w(0); // ??? #endif } @@ -532,14 +531,14 @@ void chinagat_state::saiyugoub1_m5205_irq_w(int state) void chinagat_state::main_map(address_map &map) { map(0x0000, 0x1fff).ram().share("share1"); - map(0x2000, 0x27ff).ram().w(FUNC(chinagat_state::ddragon_fgvideoram_w)).share("fgvideoram"); - map(0x2800, 0x2fff).ram().w(FUNC(chinagat_state::ddragon_bgvideoram_w)).share("bgvideoram"); + map(0x2000, 0x27ff).ram().w(FUNC(chinagat_state::fgvideoram_w)).share(m_fgvideoram); + map(0x2800, 0x2fff).ram().w(FUNC(chinagat_state::bgvideoram_w)).share(m_bgvideoram); map(0x3000, 0x317f).w(m_palette, FUNC(palette_device::write8)).share("palette"); map(0x3400, 0x357f).w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext"); - map(0x3800, 0x397f).ram().share("spriteram"); + map(0x3800, 0x397f).ram().share(m_spriteram); map(0x3e00, 0x3e04).w(FUNC(chinagat_state::interrupt_w)); - map(0x3e06, 0x3e06).writeonly().share("scrolly_lo"); - map(0x3e07, 0x3e07).writeonly().share("scrollx_lo"); + map(0x3e06, 0x3e06).writeonly().share(m_scrolly_lo); + map(0x3e07, 0x3e07).writeonly().share(m_scrollx_lo); map(0x3f00, 0x3f00).w(FUNC(chinagat_state::video_ctrl_w)); map(0x3f01, 0x3f01).w(FUNC(chinagat_state::bankswitch_w)); map(0x3f00, 0x3f00).portr("SYSTEM"); @@ -547,7 +546,7 @@ void chinagat_state::main_map(address_map &map) map(0x3f02, 0x3f02).portr("DSW2"); map(0x3f03, 0x3f03).portr("P1"); map(0x3f04, 0x3f04).portr("P2"); - map(0x4000, 0x7fff).bankr("bank1"); + map(0x4000, 0x7fff).bankr(m_mainbank); map(0x8000, 0xffff).rom(); } @@ -555,10 +554,10 @@ void chinagat_state::sub_map(address_map &map) { map(0x0000, 0x1fff).ram().share("share1"); map(0x2000, 0x2000).w(FUNC(chinagat_state::sub_bankswitch_w)); - map(0x2800, 0x2800).w(FUNC(chinagat_state::sub_irq_ack_w)); /* Called on CPU start and after return from jump table */ -// map(0x2a2b, 0x2a2b).nopr(); /* What lives here? */ -// map(0x2a30, 0x2a30).nopr(); /* What lives here? */ - map(0x4000, 0x7fff).bankr("bank4"); + map(0x2800, 0x2800).w(FUNC(chinagat_state::sub_irq_ack_w)); // Called on CPU start and after return from jump table +// map(0x2a2b, 0x2a2b).nopr(); // What lives here? +// map(0x2a30, 0x2a30).nopr(); // What lives here? + map(0x4000, 0x7fff).bankr(m_subbank); map(0x8000, 0xffff).rom(); } @@ -602,7 +601,7 @@ void chinagat_state::saiyugoub1_sound_map(address_map &map) void chinagat_state::i8748_map(address_map &map) { map(0x0000, 0x03ff).rom(); - map(0x0400, 0x07ff).rom(); /* i8749 version */ + map(0x0400, 0x07ff).rom(); // i8749 version } @@ -686,48 +685,52 @@ INPUT_PORTS_END static const gfx_layout charlayout = { - 8,8, /* 8*8 chars */ - RGN_FRAC(1,1), /* num of characters */ - 4, /* 4 bits per pixel */ - { 0, 2, 4, 6 }, /* plane offset */ + 8,8, // 8*8 chars + RGN_FRAC(1,1), // num of characters + 4, // 4 bits per pixel + { 0, 2, 4, 6 }, // plane offset { 1, 0, 65, 64, 129, 128, 193, 192 }, - { STEP8(0,8) }, /* { 0*8, 1*8 ... 6*8, 7*8 }, */ - 32*8 /* every char takes 32 consecutive bytes */ + { STEP8(0,8) }, + 32*8 //* every char takes 32 consecutive bytes }; static const gfx_layout tilelayout = { - 16,16, /* 16x16 chars */ - RGN_FRAC(1,2), /* num of Tiles/Sprites */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0,4 }, /* plane offset */ + 16,16, // 16x16 chars + RGN_FRAC(1,2), // num of Tiles/Sprites + 4, // 4 bits per pixel + { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0,4 }, // plane offset { 3, 2, 1, 0, 16*8+3, 16*8+2, 16*8+1, 16*8+0, 32*8+3,32*8+2 ,32*8+1 ,32*8+0 ,48*8+3 ,48*8+2 ,48*8+1 ,48*8+0 }, - { STEP16(0,8) }, /* { 0*8, 1*8 ... 14*8, 15*8 }, */ - 64*8 /* every char takes 64 consecutive bytes */ + { STEP16(0,8) }, + 64*8 // every char takes 64 consecutive bytes }; static GFXDECODE_START( gfx_chinagat ) - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0,16 ) /* 8x8 chars */ - GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 128, 8 ) /* 16x16 sprites */ - GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 256, 8 ) /* 16x16 background tiles */ + GFXDECODE_ENTRY( "chars", 0, charlayout, 0,16 ) // 8x8 + GFXDECODE_ENTRY( "sprites", 0, tilelayout, 128, 8 ) // 16x16 + GFXDECODE_ENTRY( "tiles", 0, tilelayout, 256, 8 ) // 16x16 GFXDECODE_END void chinagat_state::machine_start() { - /* configure banks */ - membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); + m_technos_video_hw = 1; + m_sprite_irq = M6809_IRQ_LINE; - /* register for save states */ + // configure banks + m_mainbank->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); + m_subbank->configure_entries(0, 8, memregion("sub")->base() + 0x10000, 0x4000); + + // register for save states save_item(NAME(m_scrollx_hi)); save_item(NAME(m_scrolly_hi)); save_item(NAME(m_adpcm_sound_irq)); save_item(NAME(m_adpcm_addr)); save_item(NAME(m_pcm_shift)); save_item(NAME(m_pcm_nibble)); - save_item(NAME(m_i8748_P1)); - save_item(NAME(m_i8748_P2)); + save_item(NAME(m_i8748_p1)); + save_item(NAME(m_i8748_p2)); save_item(NAME(m_mcu_command)); #if 0 save_item(NAME(m_m5205_clk)); @@ -743,8 +746,8 @@ void chinagat_state::machine_reset() m_adpcm_addr = 0; m_pcm_shift = 0; m_pcm_nibble = 0; - m_i8748_P1 = 0; - m_i8748_P2 = 0; + m_i8748_p1 = 0; + m_i8748_p2 = 0; m_mcu_command = 0; #if 0 m_m5205_clk = 0; @@ -752,132 +755,135 @@ void chinagat_state::machine_reset() } +constexpr XTAL MAIN_CLOCK = 12_MHz_XTAL; +constexpr XTAL PIXEL_CLOCK = MAIN_CLOCK / 2; + void chinagat_state::chinagat(machine_config &config) { - /* basic machine hardware */ - HD6309(config, m_maincpu, MAIN_CLOCK / 2); /* 1.5 MHz (12MHz oscillator / 4 internally) */ + // basic machine hardware + HD6309(config, m_maincpu, MAIN_CLOCK / 2); // 1.5 MHz (12MHz oscillator / 4 internally) m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map); - TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::chinagat_scanline), "screen", 0, 1); + TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::scanline), "screen", 0, 1); - HD6309(config, m_subcpu, MAIN_CLOCK / 2); /* 1.5 MHz (12MHz oscillator / 4 internally) */ + HD6309(config, m_subcpu, MAIN_CLOCK / 2); // 1.5 MHz (12MHz oscillator / 4 internally) m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map); - Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz */ + Z80(config, m_soundcpu, 3.579545_MHz_XTAL); m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sound_map); - config.set_maximum_quantum(attotime::from_hz(6000)); /* heavy interleaving to sync up sprite<->main cpu's */ + config.set_maximum_quantum(attotime::from_hz(6000)); // heavy interleaving to sync up sprite<->main CPUs - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */ - m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon)); + m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); // based on ddragon driver + m_screen->set_screen_update(FUNC(chinagat_state::screen_update)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI); - ym2151_device &ymsnd(YM2151(config, "ymsnd", 3579545)); + ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL)); ymsnd.irq_handler().set_inputline(m_soundcpu, 0); ymsnd.add_route(0, "mono", 0.80); ymsnd.add_route(1, "mono", 0.80); - okim6295_device &oki(OKIM6295(config, "oki", 1065000, okim6295_device::PIN7_HIGH)); // pin 7 not verified, clock frequency estimated with recording + okim6295_device &oki(OKIM6295(config, "oki", 1'065'000, okim6295_device::PIN7_HIGH)); // pin 7 not verified, clock frequency estimated with recording oki.add_route(ALL_OUTPUTS, "mono", 0.80); } void chinagat_state::saiyugoub1(machine_config &config) { - /* basic machine hardware */ - MC6809E(config, m_maincpu, MAIN_CLOCK / 8); /* 68B09EP 1.5 MHz (12MHz oscillator) */ + // basic machine hardware + MC6809E(config, m_maincpu, MAIN_CLOCK / 8); // 68B09EP 1.5 MHz (12MHz oscillator) m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map); - TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::chinagat_scanline), "screen", 0, 1); + TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::scanline), "screen", 0, 1); - MC6809E(config, m_subcpu, MAIN_CLOCK / 8); /* 68B09EP 1.5 MHz (12MHz oscillator) */ + MC6809E(config, m_subcpu, MAIN_CLOCK / 8); // 68B09EP 1.5 MHz (12MHz oscillator) m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map); - Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz oscillator */ + Z80(config, m_soundcpu, 3.579545_MHz_XTAL); m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::saiyugoub1_sound_map); - i8748_device &mcu(I8748(config, "mcu", 9263750)); /* 9.263750 MHz oscillator, divided by 3*5 internally */ + i8748_device &mcu(I8748(config, "mcu", 9.263750_MHz_XTAL)); // divided by 3*5 internally mcu.set_addrmap(AS_PROGRAM, &chinagat_state::i8748_map); mcu.bus_in_cb().set(FUNC(chinagat_state::saiyugoub1_mcu_command_r)); - //MCFG_MCS48_PORT_T0_CLK_CUSTOM(chinagat_state, saiyugoub1_m5205_clk_w) /* Drives the clock on the m5205 at 1/8 of this frequency */ + //mcu.set_t0_clk_cb(FUNC(chinagat_state::saiyugoub1_m5205_clk_w)); // Drives the clock on the m5205 at 1/8 of this frequency mcu.t1_in_cb().set(FUNC(chinagat_state::saiyugoub1_m5205_irq_r)); mcu.p1_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_rom_addr_w)); mcu.p2_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_control_w)); - config.set_maximum_quantum(attotime::from_hz(6000)); /* heavy interleaving to sync up sprite<->main cpu's */ + config.set_maximum_quantum(attotime::from_hz(6000)); // heavy interleaving to sync up sprite<->main CPU's - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */ - m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon)); + m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); // based on ddragon driver + m_screen->set_screen_update(FUNC(chinagat_state::screen_update)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI); - ym2151_device &ymsnd(YM2151(config, "ymsnd", 3579545)); + ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL)); ymsnd.irq_handler().set_inputline(m_soundcpu, 0); ymsnd.add_route(0, "mono", 0.80); ymsnd.add_route(1, "mono", 0.80); - MSM5205(config, m_adpcm, 9263750 / 24); - m_adpcm->vck_legacy_callback().set(FUNC(chinagat_state::saiyugoub1_m5205_irq_w)); /* Interrupt function */ - m_adpcm->set_prescaler_selector(msm5205_device::S64_4B); /* vclk input mode (6030Hz, 4-bit) */ + MSM5205(config, m_adpcm, 9.263750_MHz_XTAL / 24); + m_adpcm->vck_legacy_callback().set(FUNC(chinagat_state::saiyugoub1_m5205_irq_w)); // Interrupt function + m_adpcm->set_prescaler_selector(msm5205_device::S64_4B); // vclk input mode (6030Hz, 4-bit) m_adpcm->add_route(ALL_OUTPUTS, "mono", 0.60); } void chinagat_state::saiyugoub2(machine_config &config) { - /* basic machine hardware */ - MC6809E(config, m_maincpu, MAIN_CLOCK / 8); /* 1.5 MHz (12MHz oscillator) */ + // basic machine hardware + MC6809E(config, m_maincpu, MAIN_CLOCK / 8); // 1.5 MHz (12MHz oscillator) m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map); - TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::chinagat_scanline), "screen", 0, 1); + TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::scanline), "screen", 0, 1); - MC6809E(config, m_subcpu, MAIN_CLOCK / 8); /* 1.5 MHz (12MHz oscillator) */ + MC6809E(config, m_subcpu, MAIN_CLOCK / 8); // 1.5 MHz (12MHz oscillator) m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map); - Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz oscillator */ + Z80(config, m_soundcpu, 3.579545_MHz_XTAL); m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::ym2203c_sound_map); - config.set_maximum_quantum(attotime::from_hz(6000)); /* heavy interleaving to sync up sprite<->main cpu's */ + config.set_maximum_quantum(attotime::from_hz(6000)); // heavy interleaving to sync up sprite<->main CPU's - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */ - m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon)); + m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); // based on ddragon driver + m_screen->set_screen_update(FUNC(chinagat_state::screen_update)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI); - ym2203_device &ym1(YM2203(config, "ym1", 3579545)); + ym2203_device &ym1(YM2203(config, "ym1", 3.579545_MHz_XTAL)); ym1.irq_handler().set_inputline(m_soundcpu, 0); ym1.add_route(0, "mono", 0.50); ym1.add_route(1, "mono", 0.50); ym1.add_route(2, "mono", 0.50); ym1.add_route(3, "mono", 0.80); - ym2203_device &ym2(YM2203(config, "ym2", 3579545)); + ym2203_device &ym2(YM2203(config, "ym2", 3.579545_MHz_XTAL)); ym2.add_route(0, "mono", 0.50); ym2.add_route(1, "mono", 0.50); ym2.add_route(2, "mono", 0.50); @@ -892,113 +898,113 @@ void chinagat_state::saiyugoub2(machine_config &config) ***************************************************************************/ ROM_START( chinagat ) - ROM_REGION( 0x28000, "maincpu", 0 ) /* Main CPU: 128KB for code (bankswitched using $3F01) */ - ROM_LOAD( "cgate51.bin", 0x10000, 0x18000, CRC(439a3b19) SHA1(01393b4302ac7a66390270b01e2757582240f6b8) ) /* Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* Static code */ + ROM_REGION( 0x28000, "maincpu", 0 ) + ROM_LOAD( "cgate51.bin", 0x10000, 0x18000, CRC(439a3b19) SHA1(01393b4302ac7a66390270b01e2757582240f6b8) ) // Banks 0x4000 long @ 0x4000 + ROM_CONTINUE( 0x08000, 0x08000 ) // Static code - ROM_REGION( 0x28000, "sub", 0 ) /* Slave CPU: 128KB for code (bankswitched using $2000) */ - ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) /* Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* Static code */ + ROM_REGION( 0x28000, "sub", 0 ) + ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) // Banks 0x4000 long @ 0x4000 + ROM_CONTINUE( 0x08000, 0x08000 ) // Static code - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Music CPU, 64KB */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "23j0-0.40", 0x00000, 0x08000, CRC(9ffcadb6) SHA1(606dbdd73aee3cabb2142200ac6f8c96169e4b19) ) - ROM_REGION(0x20000, "gfx1", 0 ) /* Text */ - ROM_LOAD( "cgate18.bin", 0x00000, 0x20000, CRC(8d88d64d) SHA1(57265138ebb0c6419542cce5953aee7335bfa2bd) ) /* 0,1,2,3 */ + ROM_REGION(0x20000, "chars", 0 ) + ROM_LOAD( "cgate18.bin", 0x00000, 0x20000, CRC(8d88d64d) SHA1(57265138ebb0c6419542cce5953aee7335bfa2bd) ) // 0,1,2,3 - ROM_REGION(0x80000, "gfx2", 0 ) /* Sprites */ - ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) /* 2,3 */ - ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) /* 2,3 */ - ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) /* 0,1 */ - ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) /* 0,1 */ + ROM_REGION(0x80000, "sprites", 0 ) + ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) // 2,3 + ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) // 2,3 + ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) // 0,1 + ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) // 0,1 - ROM_REGION(0x40000, "gfx3", 0 ) /* Background */ + ROM_REGION(0x40000, "tiles", 0 ) ROM_LOAD( "chinagat_a-13", 0x00000, 0x10000, BAD_DUMP CRC(b745cac4) SHA1(759767ca7c5123b03b9e1a42bb105d194cb76400) ) // not dumped yet, these were taken from the bootleg set instead ROM_LOAD( "chinagat_a-12", 0x10000, 0x10000, BAD_DUMP CRC(3c864299) SHA1(cb12616e4d6c53a82beb4cd51510a632894b359c) ) // TRJ-100 should contain it, but not dumped yet. ROM_LOAD( "chinagat_a-15", 0x20000, 0x10000, BAD_DUMP CRC(2f268f37) SHA1(f82cfe3b2001d5ed2a709ca9c51febcf624bb627) ) ROM_LOAD( "chinagat_a-14", 0x30000, 0x10000, BAD_DUMP CRC(aef814c8) SHA1(f6b9229ca7beb9a0e47d1f6a1083c6102fdd20c8) ) - ROM_REGION(0x40000, "oki", 0 ) /* ADPCM */ + ROM_REGION(0x40000, "oki", 0 ) ROM_LOAD( "23j1-0.53", 0x00000, 0x20000, CRC(f91f1001) SHA1(378402a3c966cabd61e9662ae5decd66672a228b) ) ROM_LOAD( "23j2-0.52", 0x20000, 0x20000, CRC(8b6f26e9) SHA1(7da26ae846814b3957b19c38b6bf7e83617dc6cc) ) - ROM_REGION(0x300, "user1", 0 ) /* Unknown Bipolar PROMs */ - ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* 82S131 on video board */ - ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* 82S129 on main board */ + ROM_REGION(0x300, "proms", 0 ) // Unknown function + ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // 82S131 on video board + ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // 82S129 on main board ROM_END ROM_START( saiyugou ) - ROM_REGION( 0x28000, "maincpu", 0 ) /* Main CPU: 128KB for code (bankswitched using $3F01) */ - ROM_LOAD( "23j3-0.51", 0x10000, 0x18000, CRC(aa8132a2) SHA1(87c3bd447767f263113c4865afc905a0e484a625) ) /* Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000) /* Static code */ + ROM_REGION( 0x28000, "maincpu", 0 ) + ROM_LOAD( "23j3-0.51", 0x10000, 0x18000, CRC(aa8132a2) SHA1(87c3bd447767f263113c4865afc905a0e484a625) ) // Banks 0x4000 long @ 0x4000 + ROM_CONTINUE( 0x08000, 0x08000) // Static code - ROM_REGION( 0x28000, "sub", 0 ) /* Slave CPU: 128KB for code (bankswitched using $2000) */ - ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) /* Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000) /* Static code */ + ROM_REGION( 0x28000, "sub", 0 ) + ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) // Banks 0x4000 long @ 0x4000 + ROM_CONTINUE( 0x08000, 0x08000) // Static code - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Music CPU, 64KB */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "23j0-0.40", 0x00000, 0x8000, CRC(9ffcadb6) SHA1(606dbdd73aee3cabb2142200ac6f8c96169e4b19) ) - ROM_REGION(0x20000, "gfx1", 0 ) /* Text */ - ROM_LOAD( "23j6-0.18", 0x00000, 0x20000, CRC(86d33df0) SHA1(3419959c28703c5177de9c11b61e1dba9e76aca5) ) /* 0,1,2,3 */ + ROM_REGION(0x20000, "chars", 0 ) + ROM_LOAD( "23j6-0.18", 0x00000, 0x20000, CRC(86d33df0) SHA1(3419959c28703c5177de9c11b61e1dba9e76aca5) ) // 0,1,2,3 - ROM_REGION(0x80000, "gfx2", 0 ) /* Sprites */ - ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) /* 2,3 */ - ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) /* 2,3 */ - ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) /* 0,1 */ - ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) /* 0,1 */ + ROM_REGION(0x80000, "sprites", 0 ) + ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) // 2,3 + ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) // 2,3 + ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) // 0,1 + ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) // 0,1 - ROM_REGION(0x40000, "gfx3", 0 ) /* Background */ + ROM_REGION(0x40000, "tiles", 0 ) ROM_LOAD( "saiyugou_a-13", 0x00000, 0x10000, BAD_DUMP CRC(b745cac4) SHA1(759767ca7c5123b03b9e1a42bb105d194cb76400) ) // not dumped yet, these were taken from the bootleg set instead ROM_LOAD( "saiyugou_a-12", 0x10000, 0x10000, BAD_DUMP CRC(3c864299) SHA1(cb12616e4d6c53a82beb4cd51510a632894b359c) ) // TRJ-100 should contain it, but not dumped yet. ROM_LOAD( "saiyugou_a-15", 0x20000, 0x10000, BAD_DUMP CRC(2f268f37) SHA1(f82cfe3b2001d5ed2a709ca9c51febcf624bb627) ) ROM_LOAD( "saiyugou_a-14", 0x30000, 0x10000, BAD_DUMP CRC(aef814c8) SHA1(f6b9229ca7beb9a0e47d1f6a1083c6102fdd20c8) ) - ROM_REGION(0x40000, "oki", 0 ) /* ADPCM */ + ROM_REGION(0x40000, "oki", 0 ) ROM_LOAD( "23j1-0.53", 0x00000, 0x20000, CRC(f91f1001) SHA1(378402a3c966cabd61e9662ae5decd66672a228b) ) ROM_LOAD( "23j2-0.52", 0x20000, 0x20000, CRC(8b6f26e9) SHA1(7da26ae846814b3957b19c38b6bf7e83617dc6cc) ) - ROM_REGION(0x300, "user1", 0 ) /* Unknown Bipolar PROMs */ - ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* 82S131 on video board */ - ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* 82S129 on main board */ + ROM_REGION(0x300, "proms", 0 ) // Unknown function + ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // 82S131 on video board + ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // 82S129 on main board ROM_END ROM_START( saiyugoub1 ) - ROM_REGION( 0x28000, "maincpu", 0 ) /* Main CPU: 128KB for code (bankswitched using $3F01) */ - ROM_LOAD( "23j3-0.51", 0x10000, 0x18000, CRC(aa8132a2) SHA1(87c3bd447767f263113c4865afc905a0e484a625) ) /* Banks 0x4000 long @ 0x4000 */ + ROM_REGION( 0x28000, "maincpu", 0 ) + ROM_LOAD( "23j3-0.51", 0x10000, 0x18000, CRC(aa8132a2) SHA1(87c3bd447767f263113c4865afc905a0e484a625) ) // Banks 0x4000 long @ 0x4000 /* Orientation of bootleg ROMs which are split, but otherwise the same. ROM_LOAD( "a-5.bin", 0x10000, 0x10000, CRC(39795aa5) SHA1(475dc547b823436b25f3bdff22434e3898c23d9f) ) Banks 0x4000 long @ 0x4000 ROM_LOAD( "a-9.bin", 0x20000, 0x08000, CRC(051ebe92) SHA1(f3d179e7794f18aa65f24422364c1d71735fcc29) ) Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* Static code */ + ROM_CONTINUE( 0x08000, 0x08000 ) // Static code - ROM_REGION( 0x28000, "sub", 0 ) /* Slave CPU: 128KB for code (bankswitched using $2000) */ - ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) /* Banks 0x4000 long @ 0x4000 */ + ROM_REGION( 0x28000, "sub", 0 ) + ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) // Banks 0x4000 long @ 0x4000 /* Orientation of bootleg ROMs which are split, but otherwise the same. ROM_LOAD( "a-4.bin", 0x10000, 0x10000, CRC(9effddc1) SHA1(f4d336991ba73241c683a12c5949f8929fcaae14) ) Banks 0x4000 long @ 0x4000 ROM_LOAD( "a-8.bin", 0x20000, 0x08000, CRC(a436edb8) SHA1(f6504bcfe6dd9d756bcf5443fb702a7c82408ea9) ) Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* Static code */ + ROM_CONTINUE( 0x08000, 0x08000 ) // Static code - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Music CPU, 64KB */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "a-1.bin", 0x00000, 0x8000, CRC(46e5a6d4) SHA1(965ed7bdb727ab32ce3322ca49f1a4e3786e8051) ) - ROM_REGION( 0x800, "mcu", 0 ) /* ADPCM CPU, 1KB */ + ROM_REGION( 0x800, "mcu", 0 ) ROM_LOAD( "mcu8748.bin", 0x000, 0x400, CRC(6d28d6c5) SHA1(20582c62a72545e68c2e155b063ee7e95e1228ce) ) - ROM_REGION(0x20000, "gfx1", 0 ) /* Text */ - ROM_LOAD( "23j6-0.18", 0x00000, 0x20000, CRC(86d33df0) SHA1(3419959c28703c5177de9c11b61e1dba9e76aca5) ) /* 0,1,2,3 */ + ROM_REGION(0x20000, "chars", 0 ) + ROM_LOAD( "23j6-0.18", 0x00000, 0x20000, CRC(86d33df0) SHA1(3419959c28703c5177de9c11b61e1dba9e76aca5) ) // 0,1,2,3 /* Orientation of bootleg ROMs which are split, but otherwise the same. ROM_LOAD( "a-2.bin", 0x00000, 0x10000, CRC(baa5a3b9) SHA1(073685f4c9dbe90480cf5debea999ae3d7d49346) ) 0,1 ROM_LOAD( "a-3.bin", 0x10000, 0x10000, CRC(532d59be) SHA1(48d7cf73362d019a5d9a8e1669c86ef52307bad1) ) 2,3 */ - ROM_REGION(0x80000, "gfx2", 0 ) /* Sprites */ - ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) /* 2,3 */ - ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) /* 2,3 */ - ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) /* 0,1 */ - ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) /* 0,1 */ + ROM_REGION(0x80000, "sprites", 0 ) + ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) // 2,3 + ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) // 2,3 + ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) // 0,1 + ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) // 0,1 /* Orientation of bootleg ROMs which are split, but otherwise the same ROM_LOAD( "a-23.bin", 0x00000, 0x10000, CRC(12b56225) SHA1(cc1617b92194f40dd343d83a98165912553215d9) ) 2,3 ROM_LOAD( "a-22.bin", 0x10000, 0x10000, CRC(b592aa9b) SHA1(c04dcda040e7598ebc90bd0e0ba7117c2fcc7f4b) ) 2,3 @@ -1010,60 +1016,60 @@ ROM_START( saiyugoub1 ) ROM_LOAD( "a-16.bin", 0x70000, 0x10000, CRC(f196818b) SHA1(f4a27e90720094f6a06b6b7f1dad7be25de8e9ba) ) 0,1 */ - ROM_REGION(0x40000, "gfx3", 0 ) /* Background */ + ROM_REGION(0x40000, "tiles", 0 ) ROM_LOAD( "a-13", 0x00000, 0x10000, CRC(b745cac4) SHA1(759767ca7c5123b03b9e1a42bb105d194cb76400) ) ROM_LOAD( "a-12", 0x10000, 0x10000, CRC(3c864299) SHA1(cb12616e4d6c53a82beb4cd51510a632894b359c) ) ROM_LOAD( "a-15", 0x20000, 0x10000, CRC(2f268f37) SHA1(f82cfe3b2001d5ed2a709ca9c51febcf624bb627) ) ROM_LOAD( "a-14", 0x30000, 0x10000, CRC(aef814c8) SHA1(f6b9229ca7beb9a0e47d1f6a1083c6102fdd20c8) ) - /* Some bootlegs have incorrectly halved the ADPCM data ! */ - /* These are same as the 128k sample except nibble-swapped */ - ROM_REGION(0x40000, "adpcm", 0 ) /* ADPCM */ /* Bootleggers wrong data */ - ROM_LOAD ( "a-6.bin", 0x00000, 0x10000, CRC(4da4e935) SHA1(235a1589165a23cfad29e07cf66d7c3a777fc904) ) /* 0x8000, 0x7cd47f01 */ - ROM_LOAD ( "a-7.bin", 0x10000, 0x10000, CRC(6284c254) SHA1(e01be1bd4768ae0ccb1cec65b3a6bc80ed7a4b00) ) /* 0x8000, 0x7091959c */ - ROM_LOAD ( "a-10.bin", 0x20000, 0x10000, CRC(b728ec6e) SHA1(433b5f907e4918e89b79bd927e2993ad3030017b) ) /* 0x8000, 0x78349cb6 */ - ROM_LOAD ( "a-11.bin", 0x30000, 0x10000, CRC(a50d1895) SHA1(0c2c1f8a2e945d6c53ce43413f0e63ced45bae17) ) /* 0x8000, 0xaa5b6834 */ + /* Some bootlegs have incorrectly halved the ADPCM data ! + These are same as the 128k sample except nibble-swapped */ + ROM_REGION(0x40000, "adpcm", 0 ) // Bootleggers wrong data + ROM_LOAD ( "a-6.bin", 0x00000, 0x10000, CRC(4da4e935) SHA1(235a1589165a23cfad29e07cf66d7c3a777fc904) ) // 0x8000, 0x7cd47f01 + ROM_LOAD ( "a-7.bin", 0x10000, 0x10000, CRC(6284c254) SHA1(e01be1bd4768ae0ccb1cec65b3a6bc80ed7a4b00) ) // 0x8000, 0x7091959c + ROM_LOAD ( "a-10.bin", 0x20000, 0x10000, CRC(b728ec6e) SHA1(433b5f907e4918e89b79bd927e2993ad3030017b) ) // 0x8000, 0x78349cb6 + ROM_LOAD ( "a-11.bin", 0x30000, 0x10000, CRC(a50d1895) SHA1(0c2c1f8a2e945d6c53ce43413f0e63ced45bae17) ) // 0x8000, 0xaa5b6834 - ROM_REGION(0x300, "user1", 0 ) /* Unknown Bipolar PROMs */ - ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* 82S131 on video board */ - ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* 82S129 on main board */ + ROM_REGION(0x300, "proms", 0 ) // Unknown function + ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // 82S131 on video board + ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // 82S129 on main board ROM_END ROM_START( saiyugoub2 ) - ROM_REGION( 0x28000, "maincpu", 0 ) /* Main CPU: 128KB for code (bankswitched using $3F01) */ - ROM_LOAD( "23j3-0.51", 0x10000, 0x18000, CRC(aa8132a2) SHA1(87c3bd447767f263113c4865afc905a0e484a625) ) /* Banks 0x4000 long @ 0x4000 */ + ROM_REGION( 0x28000, "maincpu", 0 ) + ROM_LOAD( "23j3-0.51", 0x10000, 0x18000, CRC(aa8132a2) SHA1(87c3bd447767f263113c4865afc905a0e484a625) ) // Banks 0x4000 long @ 0x4000 /* Orientation of bootleg ROMs which are split, but otherwise the same. ROM_LOAD( "sai5.bin", 0x10000, 0x10000, CRC(39795aa5) SHA1(475dc547b823436b25f3bdff22434e3898c23d9f) ) Banks 0x4000 long @ 0x4000 ROM_LOAD( "sai9.bin", 0x20000, 0x08000, CRC(051ebe92) SHA1(f3d179e7794f18aa65f24422364c1d71735fcc29) ) Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* Static code */ + ROM_CONTINUE( 0x08000, 0x08000 ) // Static code - ROM_REGION( 0x28000, "sub", 0 ) /* Slave CPU: 128KB for code (bankswitched using $2000) */ - ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) /* Banks 0x4000 long @ 0x4000 */ + ROM_REGION( 0x28000, "sub", 0 ) + ROM_LOAD( "23j4-0.48", 0x10000, 0x18000, CRC(2914af38) SHA1(3d690fa50b7d36a22de82c026d59a16126a7b73c) ) // Banks 0x4000 long @ 0x4000 /* Orientation of bootleg ROMs which are split, but otherwise the same. ROM_LOAD( "sai4.bin", 0x10000, 0x10000, CRC(9effddc1) SHA1(f4d336991ba73241c683a12c5949f8929fcaae14) ) Banks 0x4000 long @ 0x4000 ROM_LOAD( "sai8.bin", 0x20000, 0x08000, CRC(a436edb8) SHA1(f6504bcfe6dd9d756bcf5443fb702a7c82408ea9) ) Banks 0x4000 long @ 0x4000 */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* Static code */ + ROM_CONTINUE( 0x08000, 0x08000 ) // Static code - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Music CPU, 64KB */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "sai-alt1.bin", 0x00000, 0x8000, CRC(8d397a8d) SHA1(52599521c3dbcecc1ae56bb80dc855e76d700134) ) -// ROM_REGION( 0x800, "cpu3", 0 ) /* ADPCM CPU, 1KB */ -// ROM_LOAD( "sgr-8749.bin", 0x000, 0x800, CRC(9237e8c5) ) /* same as above but padded with 00 for different mcu */ +// ROM_REGION( 0x800, "cpu3", 0 ) +// ROM_LOAD( "sgr-8749.bin", 0x000, 0x800, CRC(9237e8c5) ) // same as above but padded with 00 for different MCU - ROM_REGION(0x20000, "gfx1", 0 ) /* Text */ - ROM_LOAD( "23j6-0.18", 0x00000, 0x20000, CRC(86d33df0) SHA1(3419959c28703c5177de9c11b61e1dba9e76aca5) ) /* 0,1,2,3 */ + ROM_REGION(0x20000, "chars", 0 ) + ROM_LOAD( "23j6-0.18", 0x00000, 0x20000, CRC(86d33df0) SHA1(3419959c28703c5177de9c11b61e1dba9e76aca5) ) // 0,1,2,3 /* Orientation of bootleg ROMs which are split, but otherwise the same. ROM_LOAD( "sai2.bin", 0x00000, 0x10000, CRC(baa5a3b9) SHA1(073685f4c9dbe90480cf5debea999ae3d7d49346) ) 0,1 ROM_LOAD( "sai3.bin", 0x10000, 0x10000, CRC(532d59be) SHA1(48d7cf73362d019a5d9a8e1669c86ef52307bad1) ) 2,3 */ - ROM_REGION(0x80000, "gfx2", 0 ) /* Sprites */ - ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) /* 2,3 */ - ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) /* 2,3 */ - ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) /* 0,1 */ - ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) /* 0,1 */ + ROM_REGION(0x80000, "sprites", 0 ) + ROM_LOAD( "23j7-0.103", 0x00000, 0x20000, CRC(2f445030) SHA1(3fcf32097e655e963d952d01a30396dc195269ca) ) // 2,3 + ROM_LOAD( "23j8-0.102", 0x20000, 0x20000, CRC(237f725a) SHA1(47bebe5b9878ca10fe6efd4f353717e53a372416) ) // 2,3 + ROM_LOAD( "23j9-0.101", 0x40000, 0x20000, CRC(8caf6097) SHA1(50ad192f831b055586a4a9974f8c6c2f2063ede5) ) // 0,1 + ROM_LOAD( "23ja-0.100", 0x60000, 0x20000, CRC(f678594f) SHA1(4bdcf9407543925f4630a8c7f1f48b85f76343a9) ) // 0,1 /* Orientation of bootleg ROMs which are split, but otherwise the same ROM_LOAD( "sai23.bin", 0x00000, 0x10000, CRC(12b56225) SHA1(cc1617b92194f40dd343d83a98165912553215d9) ) 2,3 ROM_LOAD( "sai22.bin", 0x10000, 0x10000, CRC(b592aa9b) SHA1(c04dcda040e7598ebc90bd0e0ba7117c2fcc7f4b) ) 2,3 @@ -1075,43 +1081,30 @@ ROM_START( saiyugoub2 ) ROM_LOAD( "sai16.bin", 0x70000, 0x10000, CRC(f196818b) SHA1(f4a27e90720094f6a06b6b7f1dad7be25de8e9ba) ) 0,1 */ - ROM_REGION(0x40000, "gfx3", 0 ) /* Background */ + ROM_REGION(0x40000, "tiles", 0 ) ROM_LOAD( "a-13", 0x00000, 0x10000, CRC(b745cac4) SHA1(759767ca7c5123b03b9e1a42bb105d194cb76400) ) ROM_LOAD( "a-12", 0x10000, 0x10000, CRC(3c864299) SHA1(cb12616e4d6c53a82beb4cd51510a632894b359c) ) ROM_LOAD( "a-15", 0x20000, 0x10000, CRC(2f268f37) SHA1(f82cfe3b2001d5ed2a709ca9c51febcf624bb627) ) ROM_LOAD( "a-14", 0x30000, 0x10000, CRC(aef814c8) SHA1(f6b9229ca7beb9a0e47d1f6a1083c6102fdd20c8) ) - ROM_REGION(0x40000, "adpcm", 0 ) /* ADPCM */ - /* These are same as the 128k sample except nibble-swapped */ - /* Some bootlegs have incorrectly halved the ADPCM data ! Bootleggers wrong data */ - ROM_LOAD ( "a-6.bin", 0x00000, 0x10000, CRC(4da4e935) SHA1(235a1589165a23cfad29e07cf66d7c3a777fc904) ) /* 0x8000, 0x7cd47f01 */ - ROM_LOAD ( "a-7.bin", 0x10000, 0x10000, CRC(6284c254) SHA1(e01be1bd4768ae0ccb1cec65b3a6bc80ed7a4b00) ) /* 0x8000, 0x7091959c */ - ROM_LOAD ( "a-10.bin", 0x20000, 0x10000, CRC(b728ec6e) SHA1(433b5f907e4918e89b79bd927e2993ad3030017b) ) /* 0x8000, 0x78349cb6 */ - ROM_LOAD ( "a-11.bin", 0x30000, 0x10000, CRC(a50d1895) SHA1(0c2c1f8a2e945d6c53ce43413f0e63ced45bae17) ) /* 0x8000, 0xaa5b6834 */ + ROM_REGION(0x40000, "adpcm", 0 ) + /* These are same as the 128k sample except nibble-swapped + Some bootlegs have incorrectly halved the ADPCM data ! Bootleggers wrong data */ + ROM_LOAD ( "a-6.bin", 0x00000, 0x10000, CRC(4da4e935) SHA1(235a1589165a23cfad29e07cf66d7c3a777fc904) ) // 0x8000, 0x7cd47f01 + ROM_LOAD ( "a-7.bin", 0x10000, 0x10000, CRC(6284c254) SHA1(e01be1bd4768ae0ccb1cec65b3a6bc80ed7a4b00) ) // 0x8000, 0x7091959c + ROM_LOAD ( "a-10.bin", 0x20000, 0x10000, CRC(b728ec6e) SHA1(433b5f907e4918e89b79bd927e2993ad3030017b) ) // 0x8000, 0x78349cb6 + ROM_LOAD ( "a-11.bin", 0x30000, 0x10000, CRC(a50d1895) SHA1(0c2c1f8a2e945d6c53ce43413f0e63ced45bae17) ) // 0x8000, 0xaa5b6834 - ROM_REGION(0x300, "user1", 0 ) /* Unknown Bipolar PROMs */ - ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* 82S131 on video board */ - ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* 82S129 on main board */ + ROM_REGION(0x300, "proms", 0 ) // Unknown function + ROM_LOAD( "23jb-0.16", 0x000, 0x200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // 82S131 on video board + ROM_LOAD( "23j5-0.45", 0x200, 0x100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // 82S129 on main board ROM_END - -void chinagat_state::init_chinagat() -{ - uint8_t *MAIN = memregion("maincpu")->base(); - uint8_t *SUB = memregion("sub")->base(); - - m_technos_video_hw = 1; - m_sprite_irq = M6809_IRQ_LINE; - - membank("bank1")->configure_entries(0, 6, &MAIN[0x10000], 0x4000); - membank("bank4")->configure_entries(0, 6, &SUB[0x10000], 0x4000); -} - -} // Anonymous namespace +} // anonymous namespace -// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS ) */ -GAME( 1988, chinagat, 0, chinagat, chinagat, chinagat_state, init_chinagat, ROT0, "Technos Japan (Taito / Romstar license)", "China Gate (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat_state, init_chinagat, ROT0, "Technos Japan", "Sai Yu Gou Ma Roku (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, saiyugoub1, chinagat, saiyugoub1, chinagat, chinagat_state, init_chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1988, saiyugoub2, chinagat, saiyugoub2, chinagat, chinagat_state, init_chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 2)", MACHINE_SUPPORTS_SAVE ) +// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS ) +GAME( 1988, chinagat, 0, chinagat, chinagat, chinagat_state, empty_init, ROT0, "Technos Japan (Taito / Romstar license)", "China Gate (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat_state, empty_init, ROT0, "Technos Japan", "Sai Yu Gou Ma Roku (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, saiyugoub1, chinagat, saiyugoub1, chinagat, chinagat_state, empty_init, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1988, saiyugoub2, chinagat, saiyugoub2, chinagat, chinagat_state, empty_init, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/technos/ddragon.cpp b/src/mame/technos/ddragon.cpp index 8e9ec67a1c9..911cc13dc73 100644 --- a/src/mame/technos/ddragon.cpp +++ b/src/mame/technos/ddragon.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Philip Bennett,Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi, David Haywood, R. Belmont +// copyright-holders: Philip Bennett,Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi, David Haywood, R. Belmont /*************************************************************************** Double Dragon (c) 1987 Technos Japan @@ -7,7 +7,7 @@ Double Dragon II (c) 1988 Technos Japan Driver by Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi Toffy / Super Toffy added by David Haywood -Thanks to Bryan McPhail for spotting the Toffy program rom encryption +Thanks to Bryan McPhail for spotting the Toffy program ROM encryption Toffy / Super Toffy sound hooked up by R. Belmont. @@ -23,7 +23,7 @@ Correct video & interrupt timing derived from Xain schematics and confirmed on r Corrected interrupt handling, especially to MCU (but one semi-hack remains). TStrike now boots but sprites don't appear (I had them working at one point, can't remember what broke them again). Dangerous Dungeons fixed. -World version of Double Dragon added (actually same roms as the bootleg, but confirmed from real board) +World version of Double Dragon added (actually same ROMs as the bootleg, but confirmed from real board) Removed stereo audio flag (still on Toffy - does it have it?) todo: @@ -34,8 +34,8 @@ banking in Toffy / Super toffy Super Toffy - Unico 1994 -Main cpu: MC6809EP -Sound cpu: MC6809P +Main CPU: MC6809EP +Sound CPU: MC6809P Sound: YM2151 Clocks: 12 MHz, 3.579MHz @@ -55,8 +55,8 @@ Dip locations verified with manual for ddragon & ddragon2 #include "emu.h" #include "ddragon.h" -#include "cpu/m6809/hd6309.h" #include "cpu/m6800/m6801.h" +#include "cpu/m6809/hd6309.h" #include "cpu/m6809/m6809.h" #include "cpu/z80/z80.h" #include "sound/okim6295.h" @@ -66,12 +66,6 @@ Dip locations verified with manual for ddragon & ddragon2 #include "speaker.h" -#define MAIN_CLOCK XTAL(12'000'000) -#define SOUND_CLOCK XTAL(3'579'545) -#define MCU_CLOCK MAIN_CLOCK / 3 -#define PIXEL_CLOCK MAIN_CLOCK / 2 - - /************************************* * * Video timing @@ -93,7 +87,7 @@ Dip locations verified with manual for ddragon & ddragon2 Since MAME's video timing is 0-based, we need to convert this. */ -int ddragon_state::scanline_to_vcount( int scanline ) +int ddragon_state::scanline_to_vcount(int scanline) { int vcount = scanline + 8; if (vcount < 0x100) @@ -102,22 +96,22 @@ int ddragon_state::scanline_to_vcount( int scanline ) return (vcount - 0x18) | 0x100; } -TIMER_DEVICE_CALLBACK_MEMBER(ddragon_state::ddragon_scanline) +TIMER_DEVICE_CALLBACK_MEMBER(ddragon_state::scanline) { - int scanline = param; - int screen_height = m_screen->height(); - int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); - int vcount = scanline_to_vcount(scanline); + int const scanline = param; + int const screen_height = m_screen->height(); + int const vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); + int const vcount = scanline_to_vcount(scanline); - /* update to the current point */ + // update to the current point if (scanline > 0) m_screen->update_partial(scanline - 1); - /* on the rising edge of VBLK (vcount == F8), signal an NMI */ + // on the rising edge of VBLK (vcount == F8), signal an NMI if (vcount == 0xf8) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); - /* set 1ms signal on rising edge of vcount & 8 */ + // set 1ms signal on rising edge of vcount & 8 if (!(vcount_old & 8) && (vcount & 8)) m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE); } @@ -132,11 +126,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(ddragon_state::ddragon_scanline) void ddragon_state::machine_start() { - /* configure banks */ + // configure banks if (m_mainbank) m_mainbank->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); - /* register for save states */ + // register for save states save_item(NAME(m_scrollx_hi)); save_item(NAME(m_scrolly_hi)); save_item(NAME(m_adpcm_pos)); @@ -166,7 +160,7 @@ void ddragon_state::machine_reset() * *************************************/ -void ddragon_state::ddragon_bankswitch_w(uint8_t data) +void ddragon_state::bankswitch_w(uint8_t data) { /* 76543210 @@ -187,21 +181,21 @@ void ddragon_state::ddragon_bankswitch_w(uint8_t data) } -void toffy_state::toffy_bankswitch_w(uint8_t data) +void toffy_state::bankswitch_w(uint8_t data) { m_scrollx_hi = data & 0x01; m_scrolly_hi = (data & 0x02) >> 1; -// flip_screen_set(machine(), ~data & 0x04); +// flip_screen_set(~data & 0x04); - /* I don't know ... */ + // I don't know ... m_mainbank->set_entry((data & 0x20) >> 5); } -uint8_t darktowr_state::darktowr_mcu_bank_r(offs_t offset) +uint8_t darktowr_state::mcu_bank_r(offs_t offset) { - // logerror("BankRead %05x %08x\n",m_maincpu->pc(),offset); + // logerror("BankRead %05x %08x\n", m_maincpu->pc(), offset); /* Horrible hack - the alternate TStrike set is mismatched against the MCU, so just hack around the protection here. (The hacks are 'right' as I have @@ -209,25 +203,25 @@ uint8_t darktowr_state::darktowr_mcu_bank_r(offs_t offset) */ if (!strcmp(machine().system().name, "tstrike")) { - /* Static protection checks at boot-up */ + // Static protection checks at boot-up if (m_maincpu->pc() == 0x9ace) return 0; if (m_maincpu->pc() == 0x9ae4) return 0x63; - /* Just return whatever the code is expecting */ + // Just return whatever the code is expecting return m_rambase[0xbe1]; } if (offset == 0x1401 || offset == 1) return m_mcu_port_a_out; - logerror("Unmapped mcu bank read %04x\n",offset); + logerror("Unmapped MCU bank read %04x\n", offset); return 0xff; } -void darktowr_state::darktowr_mcu_bank_w(offs_t offset, uint8_t data) +void darktowr_state::mcu_bank_w(offs_t offset, uint8_t data) { logerror("BankWrite %05x %08x %08x\n", m_maincpu->pc(), offset, data); @@ -240,17 +234,17 @@ void darktowr_state::darktowr_mcu_bank_w(offs_t offset, uint8_t data) } -void darktowr_state::darktowr_bankswitch_w(uint8_t data) +void darktowr_state::bankswitch_w(uint8_t data) { m_scrollx_hi = (data & 0x01); m_scrolly_hi = ((data & 0x02) >> 1); -// flip_screen_set(machine(), ~data & 0x04); +// flip_screen_set(~data & 0x04); m_subcpu->set_input_line(INPUT_LINE_RESET, data & 0x08 ? CLEAR_LINE : ASSERT_LINE); m_subcpu->set_input_line(INPUT_LINE_HALT, data & 0x10 ? ASSERT_LINE : CLEAR_LINE); - m_darktowr_bank->set_bank((data & 0xe0) >> 5); + m_bank->set_bank((data & 0xe0) >> 5); } @@ -261,27 +255,27 @@ void darktowr_state::darktowr_bankswitch_w(uint8_t data) * *************************************/ -void ddragon_state::ddragon_interrupt_ack(offs_t offset, uint8_t data) +void ddragon_state::interrupt_ack(offs_t offset, uint8_t data) { switch (offset) { - case 0: /* 380b - NMI ack */ + case 0: // 380b - NMI ack m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); break; - case 1: /* 380c - FIRQ ack */ + case 1: // 380c - FIRQ ack m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); break; - case 2: /* 380d - IRQ ack */ + case 2: // 380d - IRQ ack m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); break; - case 3: /* 380e - SND IRQ and latch */ + case 3: // 380e - SND IRQ and latch m_soundlatch->write(data); break; - case 4: /* 380f - MCU IRQ */ + case 4: // 380f - MCU IRQ if (m_subcpu) m_subcpu->set_input_line(m_sprite_irq, ASSERT_LINE); break; @@ -289,16 +283,16 @@ void ddragon_state::ddragon_interrupt_ack(offs_t offset, uint8_t data) } -uint8_t ddragon_state::ddragon_interrupt_r(offs_t offset) +uint8_t ddragon_state::interrupt_r(offs_t offset) { - ddragon_interrupt_ack(offset, 0xff); + interrupt_ack(offset, 0xff); return 0xff; } -void ddragon_state::ddragon_interrupt_w(offs_t offset, uint8_t data) +void ddragon_state::interrupt_w(offs_t offset, uint8_t data) { - ddragon_interrupt_ack(offset, data); + interrupt_ack(offset, data); } @@ -314,7 +308,7 @@ void ddragon_state::ddragon2_sub_irq_w(uint8_t data) } -void ddragon_state::ddragonba_port_w(uint8_t data) +void ddragon_state::ddragonbla_port_w(uint8_t data) { if ((data & 0x8) == 0) m_subcpu->set_input_line(m_sprite_irq, CLEAR_LINE); @@ -370,7 +364,7 @@ void ddragon_state::sub_port6_w(uint8_t data) * *************************************/ -uint8_t ddragon_state::ddragon_comram_r(offs_t offset) +uint8_t ddragon_state::comram_r(offs_t offset) { // Access to shared RAM is prevented when the sub CPU is active if (!m_subcpu->suspended(SUSPEND_REASON_RESET | SUSPEND_REASON_HALT)) @@ -380,7 +374,7 @@ uint8_t ddragon_state::ddragon_comram_r(offs_t offset) } -void ddragon_state::ddragon_comram_w(offs_t offset, uint8_t data) +void ddragon_state::comram_w(offs_t offset, uint8_t data) { if (!m_subcpu->suspended(SUSPEND_REASON_RESET | SUSPEND_REASON_HALT)) return; @@ -396,9 +390,9 @@ void ddragon_state::ddragon_comram_w(offs_t offset, uint8_t data) * *************************************/ -void ddragon_state::dd_adpcm_w(offs_t offset, uint8_t data) +void ddragon_state::ddragon_adpcm_w(offs_t offset, uint8_t data) { - int chip = offset & 1; + int const chip = offset & 1; switch (offset >> 1) { @@ -422,37 +416,27 @@ void ddragon_state::dd_adpcm_w(offs_t offset, uint8_t data) } } -void ddragon_state::dd_adpcm_int( int chip ) +template +void ddragon_state::ddragon_adpcm_int(int state) { - if (m_adpcm_pos[chip] >= m_adpcm_end[chip] || m_adpcm_pos[chip] >= m_adpcm_rom[chip].length()) + if (m_adpcm_pos[Which] >= m_adpcm_end[Which] || m_adpcm_pos[Which] >= m_adpcm_rom[Which].length()) { - m_adpcm_idle[chip] = true; - m_adpcm[chip]->reset_w(1); + m_adpcm_idle[Which] = true; + m_adpcm[Which]->reset_w(1); } - else if (m_adpcm_data[chip] != -1) + else if (m_adpcm_data[Which] != -1) { - m_adpcm[chip]->data_w(m_adpcm_data[chip] & 0x0f); - m_adpcm_data[chip] = -1; + m_adpcm[Which]->data_w(m_adpcm_data[Which] & 0x0f); + m_adpcm_data[Which] = -1; } else { - m_adpcm_data[chip] = m_adpcm_rom[chip][m_adpcm_pos[chip]++]; - m_adpcm[chip]->data_w(m_adpcm_data[chip] >> 4); + m_adpcm_data[Which] = m_adpcm_rom[Which][m_adpcm_pos[Which]++]; + m_adpcm[Which]->data_w(m_adpcm_data[Which] >> 4); } } -void ddragon_state::dd_adpcm_int_1(int state) -{ - dd_adpcm_int(0); -} - -void ddragon_state::dd_adpcm_int_2(int state) -{ - dd_adpcm_int(1); -} - - -uint8_t ddragon_state::dd_adpcm_status_r() +uint8_t ddragon_state::ddragon_adpcm_status_r() { return (m_adpcm_idle[0] ? 1 : 0) | (m_adpcm_idle[1] ? 2 : 0); } @@ -465,73 +449,73 @@ uint8_t ddragon_state::dd_adpcm_status_r() * *************************************/ -void ddragon_state::ddragon_base_map(address_map &map) +void ddragon_state::base_map(address_map &map) { map(0x0000, 0x0fff).ram().share("rambase"); map(0x1000, 0x11ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); map(0x1200, 0x13ff).ram().w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext"); - map(0x1800, 0x1fff).ram().w(FUNC(ddragon_state::ddragon_fgvideoram_w)).share("fgvideoram"); - map(0x2000, 0x21ff).rw(FUNC(ddragon_state::ddragon_comram_r), FUNC(ddragon_state::ddragon_comram_w)).mirror(0x0600); - map(0x2800, 0x2fff).ram().share("spriteram"); - map(0x3000, 0x37ff).ram().w(FUNC(ddragon_state::ddragon_bgvideoram_w)).share("bgvideoram"); + map(0x1800, 0x1fff).ram().w(FUNC(ddragon_state::fgvideoram_w)).share(m_fgvideoram); + map(0x2000, 0x21ff).rw(FUNC(ddragon_state::comram_r), FUNC(ddragon_state::comram_w)).mirror(0x0600); + map(0x2800, 0x2fff).ram().share(m_spriteram); + map(0x3000, 0x37ff).ram().w(FUNC(ddragon_state::bgvideoram_w)).share(m_bgvideoram); map(0x3800, 0x3800).portr("P1"); map(0x3801, 0x3801).portr("P2"); map(0x3802, 0x3802).portr("EXTRA"); map(0x3803, 0x3803).portr("DSW0"); map(0x3804, 0x3804).portr("DSW1"); - map(0x3809, 0x3809).writeonly().share("scrollx_lo"); - map(0x380a, 0x380a).writeonly().share("scrolly_lo"); - map(0x380b, 0x380f).rw(FUNC(ddragon_state::ddragon_interrupt_r), FUNC(ddragon_state::ddragon_interrupt_w)); + map(0x3809, 0x3809).writeonly().share(m_scrollx_lo); + map(0x380a, 0x380a).writeonly().share(m_scrolly_lo); + map(0x380b, 0x380f).rw(FUNC(ddragon_state::interrupt_r), FUNC(ddragon_state::interrupt_w)); map(0x8000, 0xffff).rom(); } -void ddragon_state::ddragon_map(address_map &map) +void ddragon_state::ddragon_main_map(address_map &map) { - ddragon_base_map(map); - map(0x3808, 0x3808).w(FUNC(ddragon_state::ddragon_bankswitch_w)); - map(0x4000, 0x7fff).bankr("mainbank"); + base_map(map); + map(0x3808, 0x3808).w(FUNC(ddragon_state::bankswitch_w)); + map(0x4000, 0x7fff).bankr(m_mainbank); } -void toffy_state::toffy_map(address_map &map) +void toffy_state::main_map(address_map &map) { - ddragon_base_map(map); - map(0x3808, 0x3808).w(FUNC(toffy_state::toffy_bankswitch_w)); - map(0x4000, 0x7fff).bankr("mainbank"); + base_map(map); + map(0x3808, 0x3808).w(FUNC(toffy_state::bankswitch_w)); + map(0x4000, 0x7fff).bankr(m_mainbank); } -void darktowr_state::darktowr_map(address_map &map) +void darktowr_state::main_map(address_map &map) { - ddragon_base_map(map); - map(0x3808, 0x3808).w(FUNC(darktowr_state::darktowr_bankswitch_w)); - map(0x4000, 0x7fff).m(m_darktowr_bank, FUNC(address_map_bank_device::amap8)); + base_map(map); + map(0x3808, 0x3808).w(FUNC(darktowr_state::bankswitch_w)); + map(0x4000, 0x7fff).m(m_bank, FUNC(address_map_bank_device::amap8)); } -void darktowr_state::darktowr_banked_map(address_map &map) +void darktowr_state::banked_map(address_map &map) { map(0x00000, 0x0ffff).rom().region("maincpu", 0x10000); - map(0x10000, 0x13fff).rw(FUNC(darktowr_state::darktowr_mcu_bank_r), FUNC(darktowr_state::darktowr_mcu_bank_w)); + map(0x10000, 0x13fff).rw(FUNC(darktowr_state::mcu_bank_r), FUNC(darktowr_state::mcu_bank_w)); map(0x14000, 0x1ffff).rom().region("maincpu", 0x24000); // TODO : ROM? empty at most of darktowr_state games } -void ddragon_state::dd2_map(address_map &map) +void ddragon_state::ddragon2_main_map(address_map &map) { map(0x0000, 0x17ff).ram(); - map(0x1800, 0x1fff).ram().w(FUNC(ddragon_state::ddragon_fgvideoram_w)).share("fgvideoram"); - map(0x2000, 0x21ff).rw(FUNC(ddragon_state::ddragon_comram_r), FUNC(ddragon_state::ddragon_comram_w)).mirror(0x0600); - map(0x2800, 0x2fff).ram().share("spriteram"); - map(0x3000, 0x37ff).ram().w(FUNC(ddragon_state::ddragon_bgvideoram_w)).share("bgvideoram"); + map(0x1800, 0x1fff).ram().w(FUNC(ddragon_state::fgvideoram_w)).share(m_fgvideoram); + map(0x2000, 0x21ff).rw(FUNC(ddragon_state::comram_r), FUNC(ddragon_state::comram_w)).mirror(0x0600); + map(0x2800, 0x2fff).ram().share(m_spriteram); + map(0x3000, 0x37ff).ram().w(FUNC(ddragon_state::bgvideoram_w)).share(m_bgvideoram); map(0x3800, 0x3800).portr("P1"); map(0x3801, 0x3801).portr("P2"); map(0x3802, 0x3802).portr("EXTRA"); map(0x3803, 0x3803).portr("DSW0"); map(0x3804, 0x3804).portr("DSW1"); - map(0x3808, 0x3808).w(FUNC(ddragon_state::ddragon_bankswitch_w)); - map(0x3809, 0x3809).writeonly().share("scrollx_lo"); - map(0x380a, 0x380a).writeonly().share("scrolly_lo"); - map(0x380b, 0x380f).rw(FUNC(ddragon_state::ddragon_interrupt_r), FUNC(ddragon_state::ddragon_interrupt_w)); + map(0x3808, 0x3808).w(FUNC(ddragon_state::bankswitch_w)); + map(0x3809, 0x3809).writeonly().share(m_scrollx_lo); + map(0x380a, 0x380a).writeonly().share(m_scrolly_lo); + map(0x380b, 0x380f).rw(FUNC(ddragon_state::interrupt_r), FUNC(ddragon_state::interrupt_w)); map(0x3c00, 0x3dff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); map(0x3e00, 0x3fff).ram().w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext"); - map(0x4000, 0x7fff).bankr("mainbank"); + map(0x4000, 0x7fff).bankr(m_mainbank); map(0x8000, 0xffff).rom(); } @@ -542,9 +526,9 @@ void ddragon_state::dd2_map(address_map &map) * *************************************/ -void ddragon_state::sub_map(address_map &map) +void ddragon_state::ddragon_sub_map(address_map &map) { - map(0x8000, 0x81ff).ram().share("comram"); + map(0x8000, 0x81ff).ram().share(m_comram); } void ddragon_state::sub_6309_map(address_map &map) @@ -553,7 +537,7 @@ void ddragon_state::sub_6309_map(address_map &map) map(0x0016, 0x0016).nopw(); map(0x0017, 0x0017).w(FUNC(ddragon_state::sub_port6_w)); map(0x0020, 0x0fff).ram(); - map(0x8000, 0x81ff).ram().share("comram"); + map(0x8000, 0x81ff).ram().share(m_comram); map(0xc000, 0xffff).rom(); } @@ -562,17 +546,17 @@ void ddragon_state::sub_6809_map(address_map &map) // TODO: everything map(0x8000, 0xffff).rom().region("sub", 0); } -void ddragon_state::ddragonba_sub_map(address_map &map) +void ddragon_state::ddragonbla_sub_map(address_map &map) { map(0x0100, 0x0fff).ram(); - map(0x8000, 0x81ff).ram().share("comram"); + map(0x8000, 0x81ff).ram().share(m_comram); map(0xc000, 0xffff).rom(); } -void ddragon_state::dd2_sub_map(address_map &map) +void ddragon_state::ddragon2_sub_map(address_map &map) { map(0x0000, 0xbfff).rom(); - map(0xc000, 0xc3ff).ram().share("comram"); + map(0xc000, 0xc3ff).ram().share(m_comram); map(0xd000, 0xd000).w(FUNC(ddragon_state::ddragon2_sub_irq_ack_w)); map(0xe000, 0xe000).w(FUNC(ddragon_state::ddragon2_sub_irq_w)); } @@ -584,13 +568,13 @@ void ddragon_state::dd2_sub_map(address_map &map) * *************************************/ -void ddragon_state::sound_map(address_map &map) +void ddragon_state::ddragon_sound_map(address_map &map) { map(0x0000, 0x0fff).ram(); map(0x1000, 0x1000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); - map(0x1800, 0x1800).r(FUNC(ddragon_state::dd_adpcm_status_r)); + map(0x1800, 0x1800).r(FUNC(ddragon_state::ddragon_adpcm_status_r)); map(0x2800, 0x2801).rw("fmsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x3800, 0x3807).w(FUNC(ddragon_state::dd_adpcm_w)); + map(0x3800, 0x3807).w(FUNC(ddragon_state::ddragon_adpcm_w)); map(0x8000, 0xffff).rom(); } @@ -600,7 +584,7 @@ void ddragon_state::ddragon6809_sound_map(address_map &map) // TODO: everything map(0x8000, 0xffff).rom(); } -void ddragon_state::dd2_sound_map(address_map &map) +void ddragon_state::ddragon2_sound_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x87ff).ram(); @@ -939,9 +923,9 @@ static const gfx_layout tile_layout = static GFXDECODE_START( gfx_ddragon ) - GFXDECODE_ENTRY( "gfx1", 0, char_layout, 0, 8 ) /* colors 0-127 */ - GFXDECODE_ENTRY( "gfx2", 0, tile_layout, 128, 8 ) /* colors 128-255 */ - GFXDECODE_ENTRY( "gfx3", 0, tile_layout, 256, 8 ) /* colors 256-383 */ + GFXDECODE_ENTRY( "chars", 0, char_layout, 0, 8 ) // colors 0-127 + GFXDECODE_ENTRY( "sprites", 0, tile_layout, 128, 8 ) // colors 128-255 + GFXDECODE_ENTRY( "tiles", 0, tile_layout, 256, 8 ) // colors 256-383 GFXDECODE_END /************************************* @@ -950,32 +934,37 @@ GFXDECODE_END * *************************************/ +static constexpr XTAL MAIN_CLOCK = 12_MHz_XTAL; +static constexpr XTAL SOUND_CLOCK = 3.579545_MHz_XTAL; +static constexpr XTAL MCU_CLOCK = MAIN_CLOCK / 3; +static constexpr XTAL PIXEL_CLOCK = MAIN_CLOCK / 2; + void ddragon_state::ddragon(machine_config &config) { - /* basic machine hardware */ - HD6309E(config, m_maincpu, MAIN_CLOCK / 4); /* HD63C09EP, 3 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon_map); - TIMER(config, "scantimer").configure_scanline(FUNC(ddragon_state::ddragon_scanline), "screen", 0, 1); + // basic machine hardware + HD6309E(config, m_maincpu, MAIN_CLOCK / 4); // HD63C09EP, 3 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon_main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(ddragon_state::scanline), "screen", 0, 1); - hd63701y0_cpu_device &subcpu(HD63701Y0(config, m_subcpu, MAIN_CLOCK / 2)); /* HD63701Y0P, 6 MHz / 4 internally */ - subcpu.set_addrmap(AS_PROGRAM, &ddragon_state::sub_map); + hd63701y0_cpu_device &subcpu(HD63701Y0(config, m_subcpu, MAIN_CLOCK / 2)); // HD63701Y0P, 6 MHz / 4 internally + subcpu.set_addrmap(AS_PROGRAM, &ddragon_state::ddragon_sub_map); subcpu.out_p6_cb().set(FUNC(ddragon_state::sub_port6_w)); - MC6809(config, m_soundcpu, MAIN_CLOCK / 2); /* HD68A09P, 6 MHz / 4 internally */ - m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::sound_map); + MC6809(config, m_soundcpu, MAIN_CLOCK / 2); // HD68A09P, 6 MHz / 4 internally + m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon_sound_map); - config.set_maximum_quantum(attotime::from_hz(60000)); /* heavy interleaving to sync up sprite<->main CPUs */ + config.set_maximum_quantum(attotime::from_hz(60000)); // heavy interleaving to sync up sprite<->main CPUs - /* video hardware */ + // video hardware GFXDECODE(config, m_gfxdecode, m_palette, gfx_ddragon); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 512); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); - m_screen->set_screen_update(FUNC(ddragon_state::screen_update_ddragon)); + m_screen->set_screen_update(FUNC(ddragon_state::screen_update)); m_screen->set_palette(m_palette); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); @@ -987,33 +976,33 @@ void ddragon_state::ddragon(machine_config &config) fmsnd.add_route(1, "mono", 0.60); MSM5205(config, m_adpcm[0], MAIN_CLOCK / 32); - m_adpcm[0]->vck_legacy_callback().set(FUNC(ddragon_state::dd_adpcm_int_1)); /* interrupt function */ - m_adpcm[0]->set_prescaler_selector(msm5205_device::S48_4B); /* 8kHz */ + m_adpcm[0]->vck_legacy_callback().set(FUNC(ddragon_state::ddragon_adpcm_int<0>)); // interrupt function + m_adpcm[0]->set_prescaler_selector(msm5205_device::S48_4B); // 8kHz m_adpcm[0]->add_route(ALL_OUTPUTS, "mono", 0.50); MSM5205(config, m_adpcm[1], MAIN_CLOCK / 32); - m_adpcm[1]->vck_legacy_callback().set(FUNC(ddragon_state::dd_adpcm_int_2)); /* interrupt function */ - m_adpcm[1]->set_prescaler_selector(msm5205_device::S48_4B); /* 8kHz */ + m_adpcm[1]->vck_legacy_callback().set(FUNC(ddragon_state::ddragon_adpcm_int<1>)); // interrupt function + m_adpcm[1]->set_prescaler_selector(msm5205_device::S48_4B); // 8kHz m_adpcm[1]->add_route(ALL_OUTPUTS, "mono", 0.50); } -void ddragon_state::ddragonb(machine_config &config) +void ddragon_state::ddragonbl(machine_config &config) { ddragon(config); - /* basic machine hardware */ - HD6309E(config.replace(), m_subcpu, MAIN_CLOCK / 8); /* 1.5MHz; labeled "ENC EL1200AR" on one PCB */ + // basic machine hardware + HD6309E(config.replace(), m_subcpu, MAIN_CLOCK / 8); // 1.5MHz; labeled "ENC EL1200AR" on one PCB m_subcpu->set_addrmap(AS_PROGRAM, &ddragon_state::sub_6309_map); } -void ddragon_state::ddragonba(machine_config &config) +void ddragon_state::ddragonbla(machine_config &config) { ddragon(config); - /* basic machine hardware */ + // basic machine hardware m6803_cpu_device &sub(M6803(config.replace(), "sub", MAIN_CLOCK / 2)); // 6MHz / 4 internally - sub.set_addrmap(AS_PROGRAM, &ddragon_state::ddragonba_sub_map); - sub.out_p2_cb().set(FUNC(ddragon_state::ddragonba_port_w)); + sub.set_addrmap(AS_PROGRAM, &ddragon_state::ddragonbla_sub_map); + sub.out_p2_cb().set(FUNC(ddragon_state::ddragonbla_port_w)); } @@ -1030,10 +1019,10 @@ void ddragon_state::ddragonba(machine_config &config) */ void ddragon_state::ddragon6809(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware MC6809E(config, m_maincpu, 24_MHz_XTAL / 16); // divisor not verified - m_maincpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon_map); - TIMER(config, "scantimer").configure_scanline(FUNC(ddragon_state::ddragon_scanline), "screen", 0, 1); + m_maincpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon_main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(ddragon_state::scanline), "screen", 0, 1); MC6809E(config, m_subcpu, 24_MHz_XTAL / 16); // divisor not verified m_subcpu->set_addrmap(AS_PROGRAM, &ddragon_state::sub_6809_map); @@ -1041,18 +1030,18 @@ void ddragon_state::ddragon6809(machine_config &config) MC6809E(config, m_soundcpu, 20_MHz_XTAL / 12); // divisor not verified m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon6809_sound_map); - config.set_maximum_quantum(attotime::from_hz(60000)); /* heavy interleaving to sync up sprite<->main CPUs */ + config.set_maximum_quantum(attotime::from_hz(60000)); // heavy interleaving to sync up sprite<->main CPUs - /* video hardware */ + // video hardware GFXDECODE(config, m_gfxdecode, m_palette, gfx_ddragon); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 512); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); - m_screen->set_screen_update(FUNC(ddragon_state::screen_update_ddragon)); + m_screen->set_screen_update(FUNC(ddragon_state::screen_update)); m_screen->set_palette(m_palette); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); @@ -1065,41 +1054,41 @@ void ddragon_state::ddragon6809(machine_config &config) ym2.add_route(ALL_OUTPUTS, "mono", 0.60); MSM5205(config, m_adpcm[0], 500_kHz_XTAL); - m_adpcm[0]->vck_legacy_callback().set(FUNC(ddragon_state::dd_adpcm_int_1)); /* interrupt function */ - m_adpcm[0]->set_prescaler_selector(msm5205_device::S48_4B); /* 8kHz */ + m_adpcm[0]->vck_legacy_callback().set(FUNC(ddragon_state::ddragon_adpcm_int<0>)); // interrupt function + m_adpcm[0]->set_prescaler_selector(msm5205_device::S48_4B); // 8kHz m_adpcm[0]->add_route(ALL_OUTPUTS, "mono", 0.50); MSM5205(config, m_adpcm[1], 500_kHz_XTAL); - m_adpcm[1]->vck_legacy_callback().set(FUNC(ddragon_state::dd_adpcm_int_2)); /* interrupt function */ - m_adpcm[1]->set_prescaler_selector(msm5205_device::S48_4B); /* 8kHz */ + m_adpcm[1]->vck_legacy_callback().set(FUNC(ddragon_state::ddragon_adpcm_int<1>)); // interrupt function + m_adpcm[1]->set_prescaler_selector(msm5205_device::S48_4B); // 8kHz m_adpcm[1]->add_route(ALL_OUTPUTS, "mono", 0.50); } void ddragon_state::ddragon2(machine_config &config) { - /* basic machine hardware */ - HD6309E(config, m_maincpu, MAIN_CLOCK / 4); /* HD63C09EP, 3 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &ddragon_state::dd2_map); - TIMER(config, "scantimer").configure_scanline(FUNC(ddragon_state::ddragon_scanline), "screen", 0, 1); + // basic machine hardware + HD6309E(config, m_maincpu, MAIN_CLOCK / 4); // HD63C09EP, 3 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon2_main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(ddragon_state::scanline), "screen", 0, 1); - Z80(config, m_subcpu, MAIN_CLOCK / 3); /* 4 MHz */ - m_subcpu->set_addrmap(AS_PROGRAM, &ddragon_state::dd2_sub_map); + Z80(config, m_subcpu, MAIN_CLOCK / 3); // 4 MHz + m_subcpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon2_sub_map); - Z80(config, m_soundcpu, 3579545); - m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::dd2_sound_map); + Z80(config, m_soundcpu, 3'579'545); + m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::ddragon2_sound_map); - config.set_maximum_quantum(attotime::from_hz(60000)); /* heavy interleaving to sync up sprite<->main CPUs */ + config.set_maximum_quantum(attotime::from_hz(60000)); // heavy interleaving to sync up sprite<->main CPUs - /* video hardware */ + // video hardware GFXDECODE(config, m_gfxdecode, m_palette, gfx_ddragon); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 512); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); - m_screen->set_screen_update(FUNC(ddragon_state::screen_update_ddragon)); + m_screen->set_screen_update(FUNC(ddragon_state::screen_update)); m_screen->set_palette(m_palette); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); @@ -1110,7 +1099,7 @@ void ddragon_state::ddragon2(machine_config &config) fmsnd.add_route(0, "mono", 0.60); fmsnd.add_route(1, "mono", 0.60); - okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 verified on bootleg PCB by Jose Tejada + okim6295_device &oki(OKIM6295(config, "oki", 1'056'000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 verified on bootleg PCB by Jose Tejada oki.add_route(ALL_OUTPUTS, "mono", 0.20); } @@ -1118,25 +1107,25 @@ void darktowr_state::darktowr(machine_config &config) { ddragon(config); - /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &darktowr_state::darktowr_map); + // basic machine hardware + m_maincpu->set_addrmap(AS_PROGRAM, &darktowr_state::main_map); M68705P3(config, m_mcu, XTAL(4'000'000)); m_mcu->porta_w().set(FUNC(darktowr_state::mcu_port_a_w)); - ADDRESS_MAP_BANK(config, "darktowr_bank").set_map(&darktowr_state::darktowr_banked_map).set_options(ENDIANNESS_BIG, 8, 17, 0x4000); + ADDRESS_MAP_BANK(config, "darktowr_bank").set_map(&darktowr_state::banked_map).set_options(ENDIANNESS_BIG, 8, 17, 0x4000); } void toffy_state::toffy(machine_config &config) { ddragon(config); - /* basic machine hardware */ - m_maincpu->set_addrmap(AS_PROGRAM, &toffy_state::toffy_map); + // basic machine hardware + m_maincpu->set_addrmap(AS_PROGRAM, &toffy_state::main_map); config.device_remove("sub"); - /* sound hardware */ + // sound hardware config.device_remove("adpcm1"); config.device_remove("adpcm2"); } @@ -1148,66 +1137,23 @@ void toffy_state::toffy(machine_config &config) *************************************/ ROM_START( ddragon ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ - ROM_LOAD( "21j-1-5.26", 0x08000, 0x08000, CRC(42045dfd) SHA1(0983705ea3bb87c4c239692f400e02f15c243479) ) - ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21j-3.24", 0x18000, 0x08000, CRC(3bdea613) SHA1(d9038c80646a6ce3ea61da222873237b0383680e) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21j-4-1.23", 0x20000, 0x08000, CRC(728f87b9) SHA1(d7442be24d41bb9fc021587ef44ae5b830e4503d) ) /* banked at 0x4000-0x8000 */ - - ROM_REGION( 0x4000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) /* 63701Y0P MCU */ - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ - ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ - - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ - ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) - ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) - ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) - ROM_LOAD( "21j-e", 0x40000, 0x10000, CRC(a0a0c261) SHA1(25c534d82bd237386d447d72feee8d9541a5ded4) ) - ROM_LOAD( "21j-f", 0x50000, 0x10000, CRC(6ba152f6) SHA1(a301ff809be0e1471f4ff8305b30c2fa4aa57fae) ) - ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) - ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ - ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) - ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) - ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ - ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ - ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) - - ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* Layer priority */ - ROM_LOAD( "21j-l-0", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* unknown */ -ROM_END - -ROM_START( ddragonw ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "21j-1.26", 0x08000, 0x08000, CRC(ae714964) SHA1(072522b97ca4edd099c6b48d7634354dc7088c53) ) - ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21j-4.23", 0x20000, 0x08000, CRC(6c9f46fa) SHA1(df251a4aea69b2328f7a543bf085b9c35933e2c1) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21j-4.23", 0x20000, 0x08000, CRC(6c9f46fa) SHA1(df251a4aea69b2328f7a543bf085b9c35933e2c1) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x4000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) /* 63701Y0P MCU */ + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU + ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) // 63701Y0P MCU - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1216,41 +1162,41 @@ ROM_START( ddragonw ) ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END -ROM_START( ddragonw1 ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ +ROM_START( ddragona ) + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "e1-1.26", 0x08000, 0x08000, CRC(4b951643) SHA1(efb1f9ef2e46597d76123c9770854c1d83639eb2) ) - ROM_LOAD( "21a-2-4.25", 0x10000, 0x08000, CRC(5cd67657) SHA1(96bc7a5354a76524bd43a4d7eb8b0053a89e39c4) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "e4-1.23", 0x20000, 0x08000, CRC(b1e26935) SHA1(dfff666fd5e9dc4dfb2a1d891eced88730cbaf30) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "21a-2-4.25", 0x10000, 0x08000, CRC(5cd67657) SHA1(96bc7a5354a76524bd43a4d7eb8b0053a89e39c4) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) // banked at 0x4000-0x8000 + ROM_LOAD( "e4-1.23", 0x20000, 0x08000, CRC(b1e26935) SHA1(dfff666fd5e9dc4dfb2a1d891eced88730cbaf30) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x4000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) /* 63701Y0P MCU */ + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU + ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) // 63701Y0P MCU - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1259,41 +1205,41 @@ ROM_START( ddragonw1 ) ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END ROM_START( ddragonu ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "21a-1-5.26", 0x08000, 0x08000, CRC(e24a6e11) SHA1(9dd97dd712d5c896f91fd80df58be9b8a2b198ee) ) - ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-4.23", 0x20000, 0x08000, CRC(6ea16072) SHA1(0b3b84a0d54f7a3aba411586009babbfee653f9a) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-4.23", 0x20000, 0x08000, CRC(6ea16072) SHA1(0b3b84a0d54f7a3aba411586009babbfee653f9a) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x4000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) /* 63701Y0P MCU */ + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU + ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) // 63701Y0P MCU - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1302,41 +1248,41 @@ ROM_START( ddragonu ) ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END ROM_START( ddragonua ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "21a-1", 0x08000, 0x08000, CRC(1d625008) SHA1(84cc19a55e7c91fca1943d9624d93e0347ed4150) ) - ROM_LOAD( "21a-2_4", 0x10000, 0x08000, CRC(5cd67657) SHA1(96bc7a5354a76524bd43a4d7eb8b0053a89e39c4) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-3", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-4_2", 0x20000, 0x08000, CRC(9b019598) SHA1(59f3aa15389f53c4646d21a39634cb1502e66ff6) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "21a-2_4", 0x10000, 0x08000, CRC(5cd67657) SHA1(96bc7a5354a76524bd43a4d7eb8b0053a89e39c4) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-3", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-4_2", 0x20000, 0x08000, CRC(9b019598) SHA1(59f3aa15389f53c4646d21a39634cb1502e66ff6) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x4000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) /* 63701Y0P MCU */ + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU + ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) // 63701Y0P MCU - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1345,42 +1291,42 @@ ROM_START( ddragonua ) ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END ROM_START( ddragonub ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "21a-1_6.bin",0x08000,0x08000, CRC(f354b0e1) SHA1(f2fe5d6102564691a0054d2b8dd98673fdc8a348) ) - ROM_LOAD( "21a-2_4", 0x10000, 0x08000, CRC(5cd67657) SHA1(96bc7a5354a76524bd43a4d7eb8b0053a89e39c4) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-3", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-4_2", 0x20000, 0x08000, CRC(9b019598) SHA1(59f3aa15389f53c4646d21a39634cb1502e66ff6) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "21a-2_4", 0x10000, 0x08000, CRC(5cd67657) SHA1(96bc7a5354a76524bd43a4d7eb8b0053a89e39c4) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-3", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-4_2", 0x20000, 0x08000, CRC(9b019598) SHA1(59f3aa15389f53c4646d21a39634cb1502e66ff6) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x4000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) /* 63701Y0P MCU */ + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU + ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) // 63701Y0P MCU - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1389,42 +1335,127 @@ ROM_START( ddragonub ) ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END +ROM_START( ddragonj ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "21j-1-5.26", 0x08000, 0x08000, CRC(42045dfd) SHA1(0983705ea3bb87c4c239692f400e02f15c243479) ) + ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21j-3.24", 0x18000, 0x08000, CRC(3bdea613) SHA1(d9038c80646a6ce3ea61da222873237b0383680e) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21j-4-1.23", 0x20000, 0x08000, CRC(728f87b9) SHA1(d7442be24d41bb9fc021587ef44ae5b830e4503d) ) // banked at 0x4000-0x8000 -ROM_START( ddragonb ) /* Same program roms as the World set */ - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU + ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) // 63701Y0P MCU + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) + + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) + + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) + ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) + ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) + ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) + ROM_LOAD( "21j-e", 0x40000, 0x10000, CRC(a0a0c261) SHA1(25c534d82bd237386d447d72feee8d9541a5ded4) ) + ROM_LOAD( "21j-f", 0x50000, 0x10000, CRC(6ba152f6) SHA1(a301ff809be0e1471f4ff8305b30c2fa4aa57fae) ) + ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) + ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) + + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) + ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) + ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) + ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) + + ROM_REGION( 0x10000, "adpcm1", 0 ) + ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) + + ROM_REGION( 0x10000, "adpcm2", 0 ) + ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "21j-k-0", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // Layer priority + ROM_LOAD( "21j-l-0", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // unknown +ROM_END + +ROM_START( ddragonja ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "21j-1-8.26", 0x08000, 0x08000, BAD_DUMP CRC(54c1ef98) SHA1(7ad9db27b5b73ab0470b73e846d5733534fe04af) ) // didn't read consistently, hand-fixed + ROM_LOAD( "21j-2-4.25", 0x10000, 0x08000, CRC(5cd67657) SHA1(96bc7a5354a76524bd43a4d7eb8b0053a89e39c4) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21j-3.24", 0x18000, 0x08000, CRC(3bdea613) SHA1(d9038c80646a6ce3ea61da222873237b0383680e) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21j-4-2.23", 0x20000, 0x08000, CRC(6312767d) SHA1(d18b865c3f0819d7f8fe0ec8b81876ca11437893) ) // banked at 0x4000-0x8000 + + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU + ROM_LOAD( "21jm-0.ic55", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) // 63701Y0P MCU + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) + + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) + + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) + ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) + ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) + ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) + ROM_LOAD( "21j-e", 0x40000, 0x10000, CRC(a0a0c261) SHA1(25c534d82bd237386d447d72feee8d9541a5ded4) ) + ROM_LOAD( "21j-f", 0x50000, 0x10000, CRC(6ba152f6) SHA1(a301ff809be0e1471f4ff8305b30c2fa4aa57fae) ) + ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) + ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) + + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) + ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) + ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) + ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) + + ROM_REGION( 0x10000, "adpcm1", 0 ) + ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) + + ROM_REGION( 0x10000, "adpcm2", 0 ) + ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "21j-k-0", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // Layer priority + ROM_LOAD( "21j-l-0", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // unknown +ROM_END + +ROM_START( ddragonbl ) // Same program ROMs as the World set + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "21j-1.26", 0x08000, 0x08000, CRC(ae714964) SHA1(072522b97ca4edd099c6b48d7634354dc7088c53) ) - ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "21j-4.23", 0x20000, 0x08000, CRC(6c9f46fa) SHA1(df251a4aea69b2328f7a543bf085b9c35933e2c1) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21a-3.24", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) // banked at 0x4000-0x8000 + ROM_LOAD( "21j-4.23", 0x20000, 0x08000, CRC(6c9f46fa) SHA1(df251a4aea69b2328f7a543bf085b9c35933e2c1) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x10000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "ic38", 0x0c000, 0x04000, CRC(6a6a0325) SHA1(98a940a9f23ce9154ff94f7f2ce29efe9a92f71b) ) /* HD6903 instead of HD63701 */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU + ROM_LOAD( "ic38", 0x0c000, 0x04000, CRC(6a6a0325) SHA1(98a940a9f23ce9154ff94f7f2ce29efe9a92f71b) ) // HD6903 instead of HD63701 - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "21j-5", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1433,41 +1464,41 @@ ROM_START( ddragonb ) /* Same program roms as the World set */ ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END -ROM_START( ddragonba ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ +ROM_START( ddragonbla ) + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "5.bin", 0x08000, 0x08000, CRC(ae714964) SHA1(072522b97ca4edd099c6b48d7634354dc7088c53) ) - ROM_LOAD( "4.bin", 0x10000, 0x08000, CRC(48045762) SHA1(ca39eea71ca76627a98210ce9cc61457a58f16b9) ) /* banked at 0x4000-0x8000 */ - ROM_CONTINUE(0x20000,0x8000) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "3.bin", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "4.bin", 0x10000, 0x08000, CRC(48045762) SHA1(ca39eea71ca76627a98210ce9cc61457a58f16b9) ) // banked at 0x4000-0x8000 + ROM_CONTINUE(0x20000,0x8000) // banked at 0x4000-0x8000 + ROM_LOAD( "3.bin", 0x18000, 0x08000, CRC(dbf24897) SHA1(1504faaf07c541330cd43b72dc6846911dfd85a3) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x10000, "sub", 0 ) /* sprite cpu */ - ROM_LOAD( "2_32.bin", 0x0c000, 0x04000, CRC(67875473) SHA1(66405cb22d41d353335f037ce5aee69e4c6f05c4) ) /* 6803 instead of HD63701 */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU + ROM_LOAD( "2_32.bin", 0x0c000, 0x04000, CRC(67875473) SHA1(66405cb22d41d353335f037ce5aee69e4c6f05c4) ) // 6803 instead of HD63701 - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "6.bin", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "1.bin", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "1.bin", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "21j-a", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "21j-c", 0x20000, 0x10000, CRC(bb0bc76f) SHA1(37b2225e0593335f636c1e5fded9b21fdeab2f5a) ) ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1476,41 +1507,41 @@ ROM_START( ddragonba ) ROM_LOAD( "21j-g", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "21j-8", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "21j-i", 0x20000, 0x10000, CRC(5effb0a0) SHA1(1f21acb15dad824e831ed9a42b3fde096bb31141) ) ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "8.bin", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "7.bin", 0x00000, 0x10000, CRC(f9311f72) SHA1(aa554ef020e04dc896e5495bcddc64e489d0ffff) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END -ROM_START( ddragonb2 ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ +ROM_START( ddragonbl2 ) + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "b2_4.bin", 0x08000, 0x08000, CRC(668dfa19) SHA1(9b2ff1b66eeba0989e4ed850b7df1f5719ba5572) ) - ROM_LOAD( "b2_5.bin", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "b2_6.bin", 0x18000, 0x08000, CRC(3bdea613) SHA1(d9038c80646a6ce3ea61da222873237b0383680e) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "b2_7.bin", 0x20000, 0x08000, CRC(728f87b9) SHA1(d7442be24d41bb9fc021587ef44ae5b830e4503d) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "b2_5.bin", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) // banked at 0x4000-0x8000 + ROM_LOAD( "b2_6.bin", 0x18000, 0x08000, CRC(3bdea613) SHA1(d9038c80646a6ce3ea61da222873237b0383680e) ) // banked at 0x4000-0x8000 + ROM_LOAD( "b2_7.bin", 0x20000, 0x08000, CRC(728f87b9) SHA1(d7442be24d41bb9fc021587ef44ae5b830e4503d) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x4000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x4000, "sub", 0 ) // sprite CPU ROM_LOAD( "63701.bin", 0x0000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "b2_3.bin", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "b2_8.bin", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "b2_8.bin", 0x00000, 0x08000, CRC(7a8b8db4) SHA1(8368182234f9d4d763d4714fd7567a9e31b7ebeb) ) - ROM_REGION( 0x80000, "gfx2", 0 ) - ROM_LOAD( "11.bin", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) + ROM_LOAD( "11.bin", 0x00000, 0x10000, CRC(574face3) SHA1(481fe574cb79d0159a65ff7486cbc945d50538c5) ) ROM_LOAD( "12.bin", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) ROM_LOAD( "13.bin", 0x20000, 0x10000, CRC(c8b91e17) SHA1(0ce6f6ef68ecc7309a2923f7e756d5e2bf5c7a4a) ) ROM_LOAD( "14.bin", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) @@ -1519,50 +1550,50 @@ ROM_START( ddragonb2 ) ROM_LOAD( "17.bin", 0x60000, 0x10000, CRC(3220a0b6) SHA1(24a16ea509e9aff82b9ddd14935d61bb71acff84) ) ROM_LOAD( "18.bin", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "9.bin", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "9.bin", 0x00000, 0x10000, CRC(7c435887) SHA1(ecb76f2148fa9773426f05aac208eb3ac02747db) ) ROM_LOAD( "10.bin", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) ROM_LOAD( "19.bin", 0x20000, 0x10000, CRC(22d65df2) SHA1(2f286a24ea7af438b39126a4ed0c515745981416) ) ROM_LOAD( "20.bin", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "b2_1.bin", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "2.bin", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END -/* this is a well known italian bootleg of Double Dragon it can be identified by the following gameplay trait +/* this is a well known Italian bootleg of Double Dragon. It can be identified by the following gameplay trait -- The Boss of level 4 is coloured like level 1 and 5 instead of green, and is invulnerable to rocks attack. in terms of code the game code has been heavily modified, banking writes appear to have been removed, and - the graphic roms are all scrambled. The game also runs on 3x M6809 rather than the original CPUs. + the graphic ROMs are all scrambled. The game also runs on 3x M6809 rather than the original CPUs. */ ROM_START( ddragon6809 ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "6809_20.bin", 0x08000, 0x08000, CRC(67e3b4f1) SHA1(4945d76b0694299f2f4739ebfba98da6d96fe4cb) ) - ROM_LOAD( "6809_19.bin", 0x10000, 0x08000, CRC(090e2baf) SHA1(29b775c59c7a4d30a33e3d10e736cd1a83baf3bb) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "6809_18.bin", 0x18000, 0x08000, CRC(154d50c4) SHA1(4ffdd29406b6c6b552344f820f83715b1c7727d1) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "6809_17.bin", 0x20000, 0x08000, CRC(6489d637) SHA1(fd17fd870e9386a3e3bdd56c8d731c73d8c70b88) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "6809_19.bin", 0x10000, 0x08000, CRC(090e2baf) SHA1(29b775c59c7a4d30a33e3d10e736cd1a83baf3bb) ) // banked at 0x4000-0x8000 + ROM_LOAD( "6809_18.bin", 0x18000, 0x08000, CRC(154d50c4) SHA1(4ffdd29406b6c6b552344f820f83715b1c7727d1) ) // banked at 0x4000-0x8000 + ROM_LOAD( "6809_17.bin", 0x20000, 0x08000, CRC(6489d637) SHA1(fd17fd870e9386a3e3bdd56c8d731c73d8c70b88) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x8000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x8000, "sub", 0 ) // sprite CPU ROM_LOAD( "21.bin", 0x00000, 0x08000, CRC(4437fc51) SHA1(fffcf2bec50d0b79861904b4abc607206b7794e6) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "6809_16.bin", 0x08000, 0x08000, CRC(f4c72690) SHA1(c70d032355acf3f7f6586b6e57a94f80e099bf1a) ) - /* all the gfx roms are scrambled on this set */ - ROM_REGION( 0x08000, "gfx1", ROMREGION_ERASEFF ) + // all the gfx ROMs are scrambled on this set + ROM_REGION( 0x08000, "chars", ROMREGION_ERASEFF ) - ROM_REGION( 0x08000, "chars", 0 ) - ROM_LOAD( "6809_13.bin", 0x00000, 0x08000, CRC(b5a54537) SHA1(a6157cde4f9738565008d11a4a6d8576ae3abfef) ) /* chars */ + ROM_REGION( 0x08000, "enc_chars", 0 ) + ROM_LOAD( "6809_13.bin", 0x00000, 0x08000, CRC(b5a54537) SHA1(a6157cde4f9738565008d11a4a6d8576ae3abfef) ) - ROM_REGION( 0x80000, "gfx2", 0 ) + ROM_REGION( 0x80000, "sprites", 0 ) ROM_LOAD( "22.bin", 0x00000, 0x08000, CRC(fe08ef61) SHA1(50404936934dc61f3553add4d4b918529b3b5ef3) ) ROM_LOAD( "23.bin", 0x08000, 0x08000, CRC(988bea93) SHA1(053ebb5a71dfdb68ae88ef49d8409a99f8c6926d) ) ROM_LOAD( "24.bin", 0x10000, 0x08000, CRC(437501fc) SHA1(e7758e0fb226ae46eb398bd95f5e95c90b6adb93) ) @@ -1580,16 +1611,16 @@ ROM_START( ddragon6809 ) ROM_LOAD( "6809_7.bin", 0x70000, 0x08000, CRC(d4e350cd) SHA1(78ed2baa8c52b766f998091e7ce9e1a2941352e7) ) ROM_LOAD( "6809_8.bin", 0x78000, 0x08000, CRC(204fdb7d) SHA1(f75b1bc6f65e7a33927cd451267fcd7e2aa44f7e) ) - ROM_REGION( 0x40000, "gfx3", 0 ) + ROM_REGION( 0x40000, "tiles", 0 ) ROM_LOAD( "6809_9.bin", 0x00000, 0x10000, CRC(736eff0f) SHA1(ae2ec2d5c8ab1db579a08256d874426dc5d889c6) ) ROM_LOAD( "6809_10.bin", 0x10000, 0x10000, CRC(a670d088) SHA1(27e7b49645753dd039f104c3e0a7e6513a98710d) ) ROM_LOAD( "6809_11.bin", 0x20000, 0x10000, CRC(4171b70d) SHA1(dc300c9bca6481417e97ad03c973e47389f261c1) ) ROM_LOAD( "6809_12.bin", 0x30000, 0x10000, CRC(5f6a6d6f) SHA1(7d546a226cda81c28e7ccfb4c5daebc65072198d) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "6809_14.bin", 0x00000, 0x08000, CRC(678f8657) SHA1(2652fdc6719d2c889ca87802f6e2cefae59fc2eb) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "6809_15.bin", 0x00000, 0x08000, CRC(10f21dea) SHA1(739cf649f91490384297a81a2cc9855acb58a1c0) ) ROM_END @@ -1625,25 +1656,25 @@ Note */ ROM_START( ddragon6809a ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "20.7f", 0x08000, 0x08000, CRC(c804819f) SHA1(cc570a90b7bef1c6263f5e1fd96ed377c508fe2b) ) - ROM_LOAD( "19.7g", 0x10000, 0x08000, CRC(de08db4d) SHA1(e63b90c3bb3af01d2855de9a996b51068bed7b52) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "18.7h", 0x18000, 0x08000, CRC(154d50c4) SHA1(4ffdd29406b6c6b552344f820f83715b1c7727d1) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "17.7j", 0x20000, 0x08000, CRC(4052f37a) SHA1(9444a30ce32a2d35c601324d79c0ba602be4f288) ) /* banked at 0x4000-0x8000 */ + ROM_LOAD( "19.7g", 0x10000, 0x08000, CRC(de08db4d) SHA1(e63b90c3bb3af01d2855de9a996b51068bed7b52) ) // banked at 0x4000-0x8000 + ROM_LOAD( "18.7h", 0x18000, 0x08000, CRC(154d50c4) SHA1(4ffdd29406b6c6b552344f820f83715b1c7727d1) ) // banked at 0x4000-0x8000 + ROM_LOAD( "17.7j", 0x20000, 0x08000, CRC(4052f37a) SHA1(9444a30ce32a2d35c601324d79c0ba602be4f288) ) // banked at 0x4000-0x8000 - ROM_REGION( 0x8000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x8000, "sub", 0 ) // sprite CPU ROM_LOAD( "21.7d", 0x00000, 0x8000, CRC(4437fc51) SHA1(fffcf2bec50d0b79861904b4abc607206b7794e6) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "16.7n", 0x08000, 0x08000, CRC(f4c72690) SHA1(c70d032355acf3f7f6586b6e57a94f80e099bf1a) ) - /* all the gfx roms are scrambled on this set */ - ROM_REGION( 0x08000, "gfx1", ROMREGION_ERASEFF ) + // all the gfx roms are scrambled on this set + ROM_REGION( 0x08000, "chars", ROMREGION_ERASEFF ) - ROM_REGION( 0x08000, "chars", 0 ) - ROM_LOAD( "13.5f", 0x00000, 0x08000, CRC(b5a54537) SHA1(a6157cde4f9738565008d11a4a6d8576ae3abfef) ) /* chars */ + ROM_REGION( 0x08000, "enc_chars", 0 ) + ROM_LOAD( "13.5f", 0x00000, 0x08000, CRC(b5a54537) SHA1(a6157cde4f9738565008d11a4a6d8576ae3abfef) ) - ROM_REGION( 0x80000, "gfx2", 0 ) + ROM_REGION( 0x80000, "sprites", 0 ) ROM_LOAD( "1.1t", 0x00000, 0x10000, CRC(5e810a6d) SHA1(5eba3e982b271bc284ca333429cd0b3759c9c8d1) ) ROM_LOAD( "2.1r", 0x10000, 0x10000, CRC(7300b785) SHA1(6d3b72bd7208e2bd790517a753c9d5192c88d20f) ) ROM_LOAD( "3.1q", 0x20000, 0x10000, CRC(19405de8) SHA1(ac1aa40478b92af5ccdde89812be78b7c9f7d20d) ) @@ -1653,25 +1684,25 @@ ROM_START( ddragon6809a ) ROM_LOAD( "7.1l", 0x60000, 0x10000, CRC(8010fcca) SHA1(9401c41088776beea91c32aaff8eb2fbe92b5e37) ) ROM_LOAD( "8.1j", 0x70000, 0x10000, CRC(bfa4da27) SHA1(68a649aec43e18dc79b4690c1dff2e2a6fc0065a) ) - ROM_REGION( 0x40000, "gfx3", 0 ) + ROM_REGION( 0x40000, "tiles", 0 ) ROM_LOAD( "9.2e", 0x00000, 0x10000, CRC(736eff0f) SHA1(ae2ec2d5c8ab1db579a08256d874426dc5d889c6) ) ROM_LOAD( "10.2d", 0x10000, 0x10000, CRC(a670d088) SHA1(27e7b49645753dd039f104c3e0a7e6513a98710d) ) ROM_LOAD( "11.2b", 0x20000, 0x10000, CRC(4171b70d) SHA1(dc300c9bca6481417e97ad03c973e47389f261c1) ) ROM_LOAD( "12.2a", 0x30000, 0x10000, CRC(5f6a6d6f) SHA1(7d546a226cda81c28e7ccfb4c5daebc65072198d) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples (yes these really are smaller than the original game..) */ + ROM_REGION( 0x10000, "adpcm1", 0 ) // yes these really are smaller than the original game.. ROM_LOAD( "14.7q", 0x00000, 0x08000, CRC(678f8657) SHA1(2652fdc6719d2c889ca87802f6e2cefae59fc2eb) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "15.7o", 0x00000, 0x08000, CRC(10f21dea) SHA1(739cf649f91490384297a81a2cc9855acb58a1c0) ) - ROM_REGION( 0x20000, "user1", 0 ) /* PROMs */ + ROM_REGION( 0x20000, "proms", 0 ) ROM_LOAD( "27s21.5o", 0x00000, 0x100, CRC(673f68c3) SHA1(9381453e8f868d80b6069264509a339e20e2b6b1) ) ROM_LOAD( "27s21.5p", 0x00000, 0x100, CRC(2dc270f2) SHA1(9f124ab2c98680bcc249218ee0de09ba49c09a84) ) ROM_LOAD( "27s29.6g", 0x00000, 0x200, CRC(095fb461) SHA1(7fd213fd8b8bbe30334523ccf06d4606c67b472e) ) ROM_LOAD( "82s129.4h", 0x00000, 0x100, CRC(7683cadd) SHA1(ff6fecf273c1d8812814cacc72fb71642ec32b6d) ) - ROM_REGION( 0x20000, "user2", 0 ) /* PALs */ + ROM_REGION( 0x20000, "plds", 0 ) ROM_LOAD( "pal16r4.8g", 0x00000, 0x104, CRC(5b0263fd) SHA1(ddca425f82f5eb06b56f2ab116fb9a9b192e1097) ) ROM_LOAD( "pal16r6.2f", 0x00000, 0x104, CRC(bd76fb53) SHA1(2d0634e8edb3289a103719466465e9777606086e) ) ROM_END @@ -1684,34 +1715,34 @@ ROM_START( ddragon2 ) ROM_LOAD( "26ab-0.bin", 0x18000, 0x8000, CRC(49ddddcd) SHA1(91dc53718d04718b313f23d86e241027c89d1a03) ) ROM_LOAD( "26ac-0e.63", 0x20000, 0x8000, CRC(57acad2c) SHA1(938e2a78af38ecd7e9e08fb10acc1940f7585f5e) ) - ROM_REGION( 0x10000, "sub", 0 ) /* sprite CPU 64kb (Upper 16kb = 0) */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU ROM_LOAD( "26ae-0.bin", 0x00000, 0x10000, CRC(ea437867) SHA1(cd910203af0565f981b9bdef51ea6e9c33ee82d3) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* music CPU, 64kb */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "26ad-0.bin", 0x00000, 0x8000, CRC(75e36cd6) SHA1(f24805f4f6925b3ac508e66a6fc25c275b05f3b9) ) - ROM_REGION( 0x10000, "gfx1", 0 ) - ROM_LOAD( "26a8-0e.19", 0x00000, 0x10000, CRC(4e80cd36) SHA1(dcae0709f27f32effb359f6b943f61b102749f2a) ) /* chars */ + ROM_REGION( 0x10000, "chars", 0 ) + ROM_LOAD( "26a8-0e.19", 0x00000, 0x10000, CRC(4e80cd36) SHA1(dcae0709f27f32effb359f6b943f61b102749f2a) ) - ROM_REGION( 0xc0000, "gfx2", 0 ) - ROM_LOAD( "26j0-0.bin", 0x00000, 0x20000, CRC(db309c84) SHA1(ee095e4a3bc86737539784945decb1f63da47b9b) ) /* sprites */ + ROM_REGION( 0xc0000, "sprites", 0 ) + ROM_LOAD( "26j0-0.bin", 0x00000, 0x20000, CRC(db309c84) SHA1(ee095e4a3bc86737539784945decb1f63da47b9b) ) ROM_LOAD( "26j1-0.bin", 0x20000, 0x20000, CRC(c3081e0c) SHA1(c4a9ae151aae21073a2c79c5ac088c72d4f3d9db) ) ROM_LOAD( "26af-0.bin", 0x40000, 0x20000, CRC(3a615aad) SHA1(ec90a35224a177d00327de6fd1a299df38abd790) ) ROM_LOAD( "26j2-0.bin", 0x60000, 0x20000, CRC(589564ae) SHA1(1e6e0ef623545615e8409b6d3ba586a71e2612b6) ) ROM_LOAD( "26j3-0.bin", 0x80000, 0x20000, CRC(daf040d6) SHA1(ab0fd5482625dbe64f0f0b0baff5dcde05309b81) ) ROM_LOAD( "26a10-0.bin", 0xa0000, 0x20000, CRC(6d16d889) SHA1(3bc62b3e7f4ddc3200a9cf8469239662da80c854) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "26j4-0.bin", 0x00000, 0x20000, CRC(a8c93e76) SHA1(54d64f052971e7fa0d21c5ce12f87b0fa2b648d6) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "26j4-0.bin", 0x00000, 0x20000, CRC(a8c93e76) SHA1(54d64f052971e7fa0d21c5ce12f87b0fa2b648d6) ) ROM_LOAD( "26j5-0.bin", 0x20000, 0x20000, CRC(ee555237) SHA1(f9698f3e57f933a43e508f60667c860dee034d05) ) - ROM_REGION( 0x40000, "oki", 0 ) /* adpcm samples */ + ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "26j6-0.bin", 0x00000, 0x20000, CRC(a84b2a29) SHA1(9cb529e4939c16a0a42f45dd5547c76c2f86f07b) ) ROM_LOAD( "26j7-0.bin", 0x20000, 0x20000, CRC(bc6a48d5) SHA1(04c434f8cd42a8f82a263548183569396f9b684d) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* Layer priority (same as ddragon) */ - ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing (same as ddragon) */ + ROM_LOAD( "21j-k-0", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // Layer priority (same as ddragon) + ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing (same as ddragon) ROM_END @@ -1722,34 +1753,34 @@ ROM_START( ddragon2j ) ROM_LOAD( "26ab-0.ic53", 0x18000, 0x8000, CRC(49ddddcd) SHA1(91dc53718d04718b313f23d86e241027c89d1a03) ) ROM_LOAD( "26ac-0_j.ic63", 0x20000, 0x8000, CRC(165858c7) SHA1(a00953df924cff9e79d28061849070f5401014d7) ) - ROM_REGION( 0x10000, "sub", 0 ) /* sprite CPU 64kb (Upper 16kb = 0) */ + ROM_REGION( 0x10000, "sub", 0 ) ROM_LOAD( "26ae-0.ic37", 0x00000, 0x10000, CRC(ea437867) SHA1(cd910203af0565f981b9bdef51ea6e9c33ee82d3) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* music CPU, 64kb */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "26ad-0.ic41", 0x00000, 0x8000, CRC(3788af3b) SHA1(7f8833b01522553c767c470a9c27d24e638f37b9) ) // why is this different, label was the same - ROM_REGION( 0x10000, "gfx1", 0 ) - ROM_LOAD( "26a8-0e.19", 0x00000, 0x10000, CRC(4e80cd36) SHA1(dcae0709f27f32effb359f6b943f61b102749f2a) ) /* chars */ + ROM_REGION( 0x10000, "chars", 0 ) + ROM_LOAD( "26a8-0e.19", 0x00000, 0x10000, CRC(4e80cd36) SHA1(dcae0709f27f32effb359f6b943f61b102749f2a) ) - ROM_REGION( 0xc0000, "gfx2", 0 ) - ROM_LOAD( "26j0-0.bin", 0x00000, 0x20000, CRC(db309c84) SHA1(ee095e4a3bc86737539784945decb1f63da47b9b) ) /* sprites */ + ROM_REGION( 0xc0000, "sprites", 0 ) + ROM_LOAD( "26j0-0.bin", 0x00000, 0x20000, CRC(db309c84) SHA1(ee095e4a3bc86737539784945decb1f63da47b9b) ) ROM_LOAD( "26j1-0.bin", 0x20000, 0x20000, CRC(c3081e0c) SHA1(c4a9ae151aae21073a2c79c5ac088c72d4f3d9db) ) ROM_LOAD( "26af-0.bin", 0x40000, 0x20000, CRC(3a615aad) SHA1(ec90a35224a177d00327de6fd1a299df38abd790) ) ROM_LOAD( "26j2-0.bin", 0x60000, 0x20000, CRC(589564ae) SHA1(1e6e0ef623545615e8409b6d3ba586a71e2612b6) ) ROM_LOAD( "26j3-0.bin", 0x80000, 0x20000, CRC(daf040d6) SHA1(ab0fd5482625dbe64f0f0b0baff5dcde05309b81) ) ROM_LOAD( "26a10-0.bin", 0xa0000, 0x20000, CRC(6d16d889) SHA1(3bc62b3e7f4ddc3200a9cf8469239662da80c854) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "26j4-0.bin", 0x00000, 0x20000, CRC(a8c93e76) SHA1(54d64f052971e7fa0d21c5ce12f87b0fa2b648d6) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "26j4-0.bin", 0x00000, 0x20000, CRC(a8c93e76) SHA1(54d64f052971e7fa0d21c5ce12f87b0fa2b648d6) ) ROM_LOAD( "26j5-0.bin", 0x20000, 0x20000, CRC(ee555237) SHA1(f9698f3e57f933a43e508f60667c860dee034d05) ) - ROM_REGION( 0x40000, "oki", 0 ) /* adpcm samples */ + ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "26j6-0.bin", 0x00000, 0x20000, CRC(a84b2a29) SHA1(9cb529e4939c16a0a42f45dd5547c76c2f86f07b) ) ROM_LOAD( "26j7-0.bin", 0x20000, 0x20000, CRC(bc6a48d5) SHA1(04c434f8cd42a8f82a263548183569396f9b684d) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0", 0x0000, 0x0100, BAD_DUMP CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* Layer priority (same as ddragon) */ - ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing (same as ddragon) */ + ROM_LOAD( "21j-k-0", 0x0000, 0x0100, BAD_DUMP CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // Layer priority (same as ddragon) + ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing (same as ddragon) ROM_END ROM_START( ddragon2u ) @@ -1759,54 +1790,54 @@ ROM_START( ddragon2u ) ROM_LOAD( "26ab-0.bin", 0x18000, 0x8000, CRC(49ddddcd) SHA1(91dc53718d04718b313f23d86e241027c89d1a03) ) ROM_LOAD( "26ac-02.bin", 0x20000, 0x8000, CRC(097eaf26) SHA1(60504abd30fec44c45197cdf3832c87d05ef577d) ) - ROM_REGION( 0x10000, "sub", 0 ) /* sprite CPU 64kb (Upper 16kb = 0) */ + ROM_REGION( 0x10000, "sub", 0 ) ROM_LOAD( "26ae-0.bin", 0x00000, 0x10000, CRC(ea437867) SHA1(cd910203af0565f981b9bdef51ea6e9c33ee82d3) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* music CPU, 64kb */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "26ad-0.bin", 0x00000, 0x8000, CRC(75e36cd6) SHA1(f24805f4f6925b3ac508e66a6fc25c275b05f3b9) ) - ROM_REGION( 0x10000, "gfx1", 0 ) - ROM_LOAD( "26a8-0.bin", 0x00000, 0x10000, CRC(3ad1049c) SHA1(11d9544a56f8e6a84beb307a5c8a9ff8afc55c66) ) /* chars */ + ROM_REGION( 0x10000, "chars", 0 ) + ROM_LOAD( "26a8-0.bin", 0x00000, 0x10000, CRC(3ad1049c) SHA1(11d9544a56f8e6a84beb307a5c8a9ff8afc55c66) ) - ROM_REGION( 0xc0000, "gfx2", 0 ) - ROM_LOAD( "26j0-0.bin", 0x00000, 0x20000, CRC(db309c84) SHA1(ee095e4a3bc86737539784945decb1f63da47b9b) ) /* sprites */ + ROM_REGION( 0xc0000, "sprites", 0 ) + ROM_LOAD( "26j0-0.bin", 0x00000, 0x20000, CRC(db309c84) SHA1(ee095e4a3bc86737539784945decb1f63da47b9b) ) ROM_LOAD( "26j1-0.bin", 0x20000, 0x20000, CRC(c3081e0c) SHA1(c4a9ae151aae21073a2c79c5ac088c72d4f3d9db) ) ROM_LOAD( "26af-0.bin", 0x40000, 0x20000, CRC(3a615aad) SHA1(ec90a35224a177d00327de6fd1a299df38abd790) ) ROM_LOAD( "26j2-0.bin", 0x60000, 0x20000, CRC(589564ae) SHA1(1e6e0ef623545615e8409b6d3ba586a71e2612b6) ) ROM_LOAD( "26j3-0.bin", 0x80000, 0x20000, CRC(daf040d6) SHA1(ab0fd5482625dbe64f0f0b0baff5dcde05309b81) ) ROM_LOAD( "26a10-0.bin", 0xa0000, 0x20000, CRC(6d16d889) SHA1(3bc62b3e7f4ddc3200a9cf8469239662da80c854) ) - ROM_REGION( 0x40000, "gfx3", 0 ) - ROM_LOAD( "26j4-0.bin", 0x00000, 0x20000, CRC(a8c93e76) SHA1(54d64f052971e7fa0d21c5ce12f87b0fa2b648d6) ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) + ROM_LOAD( "26j4-0.bin", 0x00000, 0x20000, CRC(a8c93e76) SHA1(54d64f052971e7fa0d21c5ce12f87b0fa2b648d6) ) ROM_LOAD( "26j5-0.bin", 0x20000, 0x20000, CRC(ee555237) SHA1(f9698f3e57f933a43e508f60667c860dee034d05) ) - ROM_REGION( 0x40000, "oki", 0 ) /* adpcm samples */ + ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "26j6-0.bin", 0x00000, 0x20000, CRC(a84b2a29) SHA1(9cb529e4939c16a0a42f45dd5547c76c2f86f07b) ) ROM_LOAD( "26j7-0.bin", 0x20000, 0x20000, CRC(bc6a48d5) SHA1(04c434f8cd42a8f82a263548183569396f9b684d) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0", 0x0000, 0x0100, BAD_DUMP CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* Layer priority (same as ddragon) */ - ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing (same as ddragon) */ + ROM_LOAD( "21j-k-0", 0x0000, 0x0100, BAD_DUMP CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // Layer priority (same as ddragon) + ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing (same as ddragon) ROM_END -ROM_START( ddragon2b ) +ROM_START( ddragon2bl ) ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "3", 0x08000, 0x8000, CRC(5cc38bad) SHA1(8ebbb998cce48b5baa4a738c2d4c2e481e2637fb) ) ROM_LOAD( "4", 0x10000, 0x8000, CRC(78750947) SHA1(6b8349c3cd27c37a4329cea213b6ff0167c4edee) ) ROM_LOAD( "5", 0x18000, 0x8000, CRC(49ddddcd) SHA1(91dc53718d04718b313f23d86e241027c89d1a03) ) ROM_LOAD( "6", 0x20000, 0x8000, CRC(097eaf26) SHA1(60504abd30fec44c45197cdf3832c87d05ef577d) ) - ROM_REGION( 0x10000, "sub", 0 ) /* sprite CPU 64kb (Upper 16kb = 0) */ + ROM_REGION( 0x10000, "sub", 0 ) ROM_LOAD( "2", 0x00000, 0x10000, CRC(ea437867) SHA1(cd910203af0565f981b9bdef51ea6e9c33ee82d3) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* music CPU, 64kb */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "11", 0x00000, 0x8000, CRC(75e36cd6) SHA1(f24805f4f6925b3ac508e66a6fc25c275b05f3b9) ) - ROM_REGION( 0x10000, "gfx1", 0 ) - ROM_LOAD( "1", 0x00000, 0x10000, CRC(3ad1049c) SHA1(11d9544a56f8e6a84beb307a5c8a9ff8afc55c66) ) /* chars */ + ROM_REGION( 0x10000, "chars", 0 ) + ROM_LOAD( "1", 0x00000, 0x10000, CRC(3ad1049c) SHA1(11d9544a56f8e6a84beb307a5c8a9ff8afc55c66) ) - ROM_REGION( 0xc0000, "gfx2", 0 ) - ROM_LOAD( "27", 0x00000, 0x10000, CRC(fe42df5d) SHA1(aab801346c2db04263cb61c97c6e086387675586) ) /* sprites */ + ROM_REGION( 0xc0000, "sprites", 0 ) + ROM_LOAD( "27", 0x00000, 0x10000, CRC(fe42df5d) SHA1(aab801346c2db04263cb61c97c6e086387675586) ) ROM_LOAD( "26", 0x10000, 0x10000, CRC(42f582c6) SHA1(bb269f677321f706043aa33a12bd3ddda4c32e55) ) ROM_LOAD( "23", 0x20000, 0x10000, CRC(e157319f) SHA1(8b898fa20329b12293e7cb7ffc2e1b17304f826f) ) ROM_LOAD( "22", 0x30000, 0x10000, CRC(82e952c9) SHA1(d340262c11f3c0ef3640c487e6a78745a2fe97d4) ) @@ -1819,299 +1850,299 @@ ROM_START( ddragon2b ) ROM_LOAD( "18", 0xa0000, 0x10000, CRC(0e1c6c63) SHA1(506e43161992c41d9b77c1df11228117f0587cbd) ) ROM_LOAD( "19", 0xb0000, 0x10000, CRC(0e21eae0) SHA1(0cde9cdc6dbe2015e7f38b391c78cf3f16658e5c) ) - ROM_REGION( 0x40000, "gfx3", 0 ) + ROM_REGION( 0x40000, "tiles", 0 ) ROM_LOAD( "15", 0x00000, 0x10000, CRC(3c3f16f6) SHA1(2fccbf1dd072c59b5923631fc1c6d40f7ea63996)) ROM_LOAD( "13", 0x10000, 0x10000, CRC(7c21be72) SHA1(9935c983d0f7613ee192758ddcd8d8592e8bf78a) ) ROM_LOAD( "14", 0x20000, 0x10000, CRC(e92f91f4) SHA1(4351b2b117c1104dcdb6f48531ddad385691c945) ) ROM_LOAD( "12", 0x30000, 0x10000, CRC(6896e2f7) SHA1(d230d2406ae451f59d1d0783b1d670a0d3e28d8c) ) - ROM_REGION( 0x40000, "oki", 0 ) /* adpcm samples */ + ROM_REGION( 0x40000, "oki", 0 ) ROM_LOAD( "7", 0x00000, 0x10000, CRC(6d9e3f0f) SHA1(5c3e7fb2e46939dd3c540b9e1af9591dbfd15b19) ) ROM_LOAD( "9", 0x10000, 0x10000, CRC(0c15dec9) SHA1(b0a6bb13216f4321b5fc01a649ea84d2d1d51088) ) ROM_LOAD( "8", 0x20000, 0x10000, CRC(151b22b4) SHA1(3b0470df9b719dd76115d8c549010ec92e28d0d0) ) ROM_LOAD( "10", 0x30000, 0x10000, CRC(ae2fc028) SHA1(94fea9088b7b412706b6aaf7aac856709649fb63) ) ROM_REGION( 0x0300, "proms", 0 ) // wasn't in this set, is it still present? - ROM_LOAD( "21j-k-0", 0x0000, 0x0100, BAD_DUMP CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* Layer priority (same as ddragon) */ - ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing (same as ddragon) */ + ROM_LOAD( "21j-k-0", 0x0000, 0x0100, BAD_DUMP CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // Layer priority (same as ddragon) + ROM_LOAD( "prom.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing (same as ddragon) ROM_END ROM_START( tstrike ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "prog.rom", 0x08000, 0x08000, CRC(bf011a00) SHA1(09a55042a219dd37cb9e7feeab092ebfb903ddde) ) - ROM_LOAD( "tstrike.25", 0x10000, 0x08000, CRC(b6a0c2f3) SHA1(3434689ca217f5af268058ad34c277db672d389c) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "tstrike.24", 0x18000, 0x08000, CRC(363816fa) SHA1(65c1ccbb950e09230196b49dc7312a13a34f3f79) ) /* banked at 0x4000-0x8000 */ - /* IC23 is replaced with a daughterboard containing a 68705 MCU */ + ROM_LOAD( "tstrike.25", 0x10000, 0x08000, CRC(b6a0c2f3) SHA1(3434689ca217f5af268058ad34c277db672d389c) ) // banked at 0x4000-0x8000 + ROM_LOAD( "tstrike.24", 0x18000, 0x08000, CRC(363816fa) SHA1(65c1ccbb950e09230196b49dc7312a13a34f3f79) ) // banked at 0x4000-0x8000 + // IC23 is replaced with a daughterboard containing a 68705 MCU - ROM_REGION( 0x10000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU ROM_LOAD( "63701.bin", 0xc000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "tstrike.30", 0x08000, 0x08000, CRC(3f3f04a1) SHA1(45d2b4542ec783c1c4122616606be6c160f76c06) ) - ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */ + ROM_REGION( 0x0800, "mcu", 0 ) ROM_LOAD( "68705prt.mcu", 0x00000, 0x0800, CRC(34cbb2d3) SHA1(8e0c3b13c636012d88753d547c639b1a8af85680) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "alpha.rom", 0x00000, 0x08000, CRC(3a7c3185) SHA1(1ccaa6a1f46d66feda49fdea337b8eb32f14c7b5) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "alpha.rom", 0x00000, 0x08000, CRC(3a7c3185) SHA1(1ccaa6a1f46d66feda49fdea337b8eb32f14c7b5) ) - ROM_REGION( 0x80000, "gfx2", 0 ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) ROM_LOAD( "tstrike.117", 0x00000, 0x10000, CRC(f7122c0d) SHA1(2b6b359585d9df966c1fc0041fb972aac9b1ab93) ) - ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) /* from ddragon (116) */ + ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) // from ddragon (116) ROM_LOAD( "tstrike.115", 0x20000, 0x10000, CRC(a13c7b62) SHA1(d929d8db7eb2b949cd3bd77238611ecc54b2e885) ) - ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) /* from ddragon (114) */ + ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) // from ddragon (114) ROM_LOAD( "tstrike.113", 0x40000, 0x10000, CRC(5ad60938) SHA1(a0af9b227157d87fa6d4ea88b34227a97baff20e) ) - ROM_LOAD( "21j-f", 0x50000, 0x10000, CRC(6ba152f6) SHA1(a301ff809be0e1471f4ff8305b30c2fa4aa57fae) ) /* from ddragon (112) */ + ROM_LOAD( "21j-f", 0x50000, 0x10000, CRC(6ba152f6) SHA1(a301ff809be0e1471f4ff8305b30c2fa4aa57fae) ) // from ddragon (112) ROM_LOAD( "tstrike.111", 0x60000, 0x10000, CRC(7b9c87ad) SHA1(429049f84b2084bb074e380dca63b75150e7e69f) ) - ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) /* from ddragon (110) */ + ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) // from ddragon (110) - ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) ROM_LOAD( "tstrike.78", 0x00000, 0x10000, CRC(88284aec) SHA1(f07bc5f84f2b2f976c911541c8f1ff2558f569ca) ) - ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) /* from ddragon (77) */ + ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) // from ddragon (77) ROM_LOAD( "tstrike.109", 0x20000, 0x10000, CRC(8c2cd0bb) SHA1(364a708484c7750f38162d463104216bbd555b86) ) - ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) /* from ddragon (108) */ + ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) // from ddragon (108) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ - ROM_LOAD( "tstrike.94", 0x00000, 0x10000, CRC(8a2c09fc) SHA1(f59a43c3fa814b169a51744f9604d36ae63c190f) ) /* first+second half identical */ + ROM_REGION( 0x10000, "adpcm1", 0 ) + ROM_LOAD( "tstrike.94", 0x00000, 0x10000, CRC(8a2c09fc) SHA1(f59a43c3fa814b169a51744f9604d36ae63c190f) ) // first+second half identical - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "tstrike.95", 0x00000, 0x08000, CRC(1812eecb) SHA1(9b7d526f30a86682cdf088600b25ea5a56b112ef) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END ROM_START( tstrikea ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "tstrike.26", 0x08000, 0x08000, CRC(871b10bc) SHA1(c824775cf72c039612fda76c4a518cd89e4c8657) ) - ROM_LOAD( "tstrike.25", 0x10000, 0x08000, CRC(b6a0c2f3) SHA1(3434689ca217f5af268058ad34c277db672d389c) ) /* banked at 0x4000-0x8000 */ - ROM_LOAD( "tstrike.24", 0x18000, 0x08000, CRC(363816fa) SHA1(65c1ccbb950e09230196b49dc7312a13a34f3f79) ) /* banked at 0x4000-0x8000 */ - /* IC23 is replaced with a daughterboard containing a 68705 MCU */ + ROM_LOAD( "tstrike.25", 0x10000, 0x08000, CRC(b6a0c2f3) SHA1(3434689ca217f5af268058ad34c277db672d389c) ) // banked at 0x4000-0x8000 + ROM_LOAD( "tstrike.24", 0x18000, 0x08000, CRC(363816fa) SHA1(65c1ccbb950e09230196b49dc7312a13a34f3f79) ) // banked at 0x4000-0x8000 + // IC23 is replaced with a daughterboard containing a 68705 MCU - ROM_REGION( 0x10000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU ROM_LOAD( "63701.bin", 0xc000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "tstrike.30", 0x08000, 0x08000, CRC(3f3f04a1) SHA1(45d2b4542ec783c1c4122616606be6c160f76c06) ) - ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */ + ROM_REGION( 0x0800, "mcu", 0 ) ROM_LOAD( "68705prt.mcu", 0x00000, 0x0800, CRC(34cbb2d3) SHA1(8e0c3b13c636012d88753d547c639b1a8af85680) ) - ROM_REGION( 0x08000, "gfx1", 0 ) - ROM_LOAD( "tstrike.20", 0x00000, 0x08000, CRC(b6b8bfa0) SHA1(ce50f8eb1a84873ef3df621d971a6b087473d6c2) ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) + ROM_LOAD( "tstrike.20", 0x00000, 0x08000, CRC(b6b8bfa0) SHA1(ce50f8eb1a84873ef3df621d971a6b087473d6c2) ) - ROM_REGION( 0x80000, "gfx2", 0 ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) ROM_LOAD( "tstrike.117", 0x00000, 0x10000, CRC(f7122c0d) SHA1(2b6b359585d9df966c1fc0041fb972aac9b1ab93) ) - ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) /* from ddragon (116) */ + ROM_LOAD( "21j-b", 0x10000, 0x10000, CRC(40507a76) SHA1(74581a4b6f48100bddf20f319903af2fe36f39fa) ) // from ddragon (116) ROM_LOAD( "tstrike.115", 0x20000, 0x10000, CRC(a13c7b62) SHA1(d929d8db7eb2b949cd3bd77238611ecc54b2e885) ) - ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) /* from ddragon (114) */ + ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) // from ddragon (114) ROM_LOAD( "tstrike.113", 0x40000, 0x10000, CRC(5ad60938) SHA1(a0af9b227157d87fa6d4ea88b34227a97baff20e) ) - ROM_LOAD( "21j-f", 0x50000, 0x10000, CRC(6ba152f6) SHA1(a301ff809be0e1471f4ff8305b30c2fa4aa57fae) ) /* from ddragon (112) */ + ROM_LOAD( "21j-f", 0x50000, 0x10000, CRC(6ba152f6) SHA1(a301ff809be0e1471f4ff8305b30c2fa4aa57fae) ) // from ddragon (112) ROM_LOAD( "tstrike.111", 0x60000, 0x10000, CRC(7b9c87ad) SHA1(429049f84b2084bb074e380dca63b75150e7e69f) ) - ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) /* from ddragon (110) */ + ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) // from ddragon (110) - ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) ROM_LOAD( "tstrike.78", 0x00000, 0x10000, CRC(88284aec) SHA1(f07bc5f84f2b2f976c911541c8f1ff2558f569ca) ) - ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) /* from ddragon (77) */ + ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) // from ddragon (77) ROM_LOAD( "tstrike.109", 0x20000, 0x10000, CRC(8c2cd0bb) SHA1(364a708484c7750f38162d463104216bbd555b86) ) - ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) /* from ddragon (108) */ + ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) // from ddragon (108) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ - ROM_LOAD( "tstrike.94", 0x00000, 0x10000, CRC(8a2c09fc) SHA1(f59a43c3fa814b169a51744f9604d36ae63c190f) ) /* first+second half identical */ + ROM_REGION( 0x10000, "adpcm1", 0 ) + ROM_LOAD( "tstrike.94", 0x00000, 0x10000, CRC(8a2c09fc) SHA1(f59a43c3fa814b169a51744f9604d36ae63c190f) ) // first+second half identical - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "tstrike.95", 0x00000, 0x08000, CRC(1812eecb) SHA1(9b7d526f30a86682cdf088600b25ea5a56b112ef) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END ROM_START( ddungeon ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* Main CPU? */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "dd25.25", 0x10000, 0x8000, CRC(922e719c) SHA1(d1c73f56913cd368158abc613d7bbab669509742) ) ROM_LOAD( "dd26.26", 0x08000, 0x8000, CRC(a6e7f608) SHA1(83b9301c39bfdc1e50a37f2bdc4d4f65a1111bee) ) - /* IC23 is replaced with a daughterboard containing a 68705 MCU */ + // IC23 is replaced with a daughterboard containing a 68705 MCU - ROM_REGION( 0x10000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU ROM_LOAD( "63701.bin", 0xc000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "dd30.30", 0x08000, 0x08000, CRC(ef1af99a) SHA1(7ced695b81ca9efbb7b28b78013e112edac85672) ) - ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */ + ROM_REGION( 0x0800, "mcu", 0 ) ROM_LOAD( "dd_mcu.bin", 0x00000, 0x0800, CRC(34cbb2d3) SHA1(8e0c3b13c636012d88753d547c639b1a8af85680) ) - ROM_REGION( 0x10000, "gfx1", 0 ) /* GFX? */ + ROM_REGION( 0x10000, "chars", 0 ) ROM_LOAD( "dd20.20", 0x00000, 0x08000, CRC(d976b78d) SHA1(e1cd47032a0f91d812c3925d1f1267a9972bf48e) ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* GFX */ + ROM_REGION( 0x20000, "sprites", 0 ) ROM_LOAD( "dd117.117", 0x00000, 0x08000, CRC(e912ca81) SHA1(8c274400170f46f84042f4f9cffba8d2fe9fbc10) ) ROM_LOAD( "dd113.113", 0x10000, 0x08000, CRC(43264ad8) SHA1(74f031d6179390bc4fa99f4929a6886db8c2b510) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* GFX */ + ROM_REGION( 0x20000, "tiles", 0 ) ROM_LOAD( "dd78.78", 0x00000, 0x08000, CRC(3deacae9) SHA1(6663f054ed3eed50c5cacfa5d22d465dfb179964) ) ROM_LOAD( "dd109.109", 0x10000, 0x08000, CRC(5a2f31eb) SHA1(1b85533443e148adb2a9c2c09c43cbf2c35c86bc) ) - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ - ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) /* at IC95 */ + ROM_REGION( 0x10000, "adpcm1", 0 ) + ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) // at IC95 - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ - ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) /* at IC94 */ + ROM_REGION( 0x10000, "adpcm2", 0 ) + ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) // at IC94 ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END -/* the only differences with this set are 2x graphic roms, and the sound program. +/* the only differences with this set are 2x graphic ROMs, and the sound program. this version uses the sound program from double dragon, and as this configuration has been found on at least - 4 boards it's likely that the updated sound rom in the parent set was only shipped with the 'game room' + 4 boards it's likely that the updated sound ROM in the parent set was only shipped with the 'Game Room' version of the game */ ROM_START( ddungeone ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* Main CPU? */ - ROM_LOAD( "dd25.25", 0x10000, 0x8000, CRC(922e719c) SHA1(d1c73f56913cd368158abc613d7bbab669509742) ) /* 3 on this board */ - ROM_LOAD( "dd26.26", 0x08000, 0x8000, CRC(a6e7f608) SHA1(83b9301c39bfdc1e50a37f2bdc4d4f65a1111bee) ) /* 2 on this board */ - /* IC23 is replaced with a daughterboard containing a 68705 MCU */ + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "dd25.25", 0x10000, 0x8000, CRC(922e719c) SHA1(d1c73f56913cd368158abc613d7bbab669509742) ) // 3 on this board + ROM_LOAD( "dd26.26", 0x08000, 0x8000, CRC(a6e7f608) SHA1(83b9301c39bfdc1e50a37f2bdc4d4f65a1111bee) ) // 2 on this board + // IC23 is replaced with a daughterboard containing a 68705 MCU - ROM_REGION( 0x10000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU ROM_LOAD( "63701.bin", 0xc000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ - ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) /* from ddragon */ + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) // from ddragon - ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */ + ROM_REGION( 0x0800, "mcu", 0 ) ROM_LOAD( "dd_mcu.bin", 0x00000, 0x0800, CRC(34cbb2d3) SHA1(8e0c3b13c636012d88753d547c639b1a8af85680) ) - ROM_REGION( 0x10000, "gfx1", 0 ) /* GFX? */ + ROM_REGION( 0x10000, "chars", 0 ) ROM_LOAD( "dd6.bin", 0x00000, 0x08000, CRC(057588ca) SHA1(d4a5dd3ea8cf455b54657473d4d52ab5e838ae15) ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* GFX */ + ROM_REGION( 0x20000, "sprites", 0 ) ROM_LOAD( "dd-7r.bin", 0x00000, 0x08000, CRC(50d6ab5d) SHA1(4c9cbd72d38b631ea2ca231045ef3f3e11cc7c07) ) - ROM_LOAD( "dd113.113", 0x10000, 0x08000, CRC(43264ad8) SHA1(74f031d6179390bc4fa99f4929a6886db8c2b510) ) /* 7K on this board */ + ROM_LOAD( "dd113.113", 0x10000, 0x08000, CRC(43264ad8) SHA1(74f031d6179390bc4fa99f4929a6886db8c2b510) ) // 7K on this board - ROM_REGION( 0x20000, "gfx3", 0 ) /* GFX */ - ROM_LOAD( "dd78.78", 0x00000, 0x08000, CRC(3deacae9) SHA1(6663f054ed3eed50c5cacfa5d22d465dfb179964) ) /* 6B on this board */ - ROM_LOAD( "dd109.109", 0x10000, 0x08000, CRC(5a2f31eb) SHA1(1b85533443e148adb2a9c2c09c43cbf2c35c86bc) ) /* 7C on this board */ + ROM_REGION( 0x20000, "tiles", 0 ) + ROM_LOAD( "dd78.78", 0x00000, 0x08000, CRC(3deacae9) SHA1(6663f054ed3eed50c5cacfa5d22d465dfb179964) ) // 6B on this board + ROM_LOAD( "dd109.109", 0x10000, 0x08000, CRC(5a2f31eb) SHA1(1b85533443e148adb2a9c2c09c43cbf2c35c86bc) ) // 7C on this board - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm1", 0 ) ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ + ROM_REGION( 0x10000, "adpcm2", 0 ) ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END ROM_START( darktowr ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + bankswitched memory */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "dt.26", 0x08000, 0x08000, CRC(8134a472) SHA1(7d42d2ed8d09855241d98ed94bce140a314c2f66) ) - ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) /* from ddragon */ - ROM_LOAD( "dt.24", 0x18000, 0x08000, CRC(523a5413) SHA1(71c04287e4f2e792c98abdeb97fe70abd0d5e918) ) /* banked at 0x4000-0x8000 */ - /* IC23 is replaced with a daughterboard containing a 68705 MCU */ + ROM_LOAD( "21j-2-3.25", 0x10000, 0x08000, CRC(5779705e) SHA1(4b8f22225d10f5414253ce0383bbebd6f720f3af) ) // from ddragon + ROM_LOAD( "dt.24", 0x18000, 0x08000, CRC(523a5413) SHA1(71c04287e4f2e792c98abdeb97fe70abd0d5e918) ) // banked at 0x4000-0x8000 + // IC23 is replaced with a daughterboard containing a 68705 MCU - ROM_REGION( 0x10000, "sub", 0 ) /* sprite cpu */ + ROM_REGION( 0x10000, "sub", 0 ) // sprite CPU ROM_LOAD( "63701.bin", 0xc000, 0x4000, CRC(f5232d03) SHA1(e2a194e38633592fd6587690b3cb2669d93985c7) ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* audio cpu */ - ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) /* from ddragon */ + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "21j-0-1", 0x08000, 0x08000, CRC(9efa95bb) SHA1(da997d9cc7b9e7b2c70a4b6d30db693086a6f7d8) ) // from ddragon - ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */ + ROM_REGION( 0x0800, "mcu", 0 ) ROM_LOAD( "68705prt.mcu", 0x00000, 0x0800, CRC(34cbb2d3) SHA1(8e0c3b13c636012d88753d547c639b1a8af85680) ) - ROM_REGION( 0x08000, "gfx1", 0 ) /* chars */ + ROM_REGION( 0x08000, "chars", 0 ) ROM_LOAD( "dt.20", 0x00000, 0x08000, CRC(860b0298) SHA1(087e4e6511c5bed74ffbfd077ece55a756b13253) ) - ROM_REGION( 0x80000, "gfx2", 0 ) /* sprites */ + ROM_REGION( 0x80000, "sprites", 0 ) ROM_LOAD( "dt.117", 0x00000, 0x10000, CRC(750dd0fa) SHA1(d95b95a54c7ed87a27edb8660810dd89efa10c9f) ) ROM_LOAD( "dt.116", 0x10000, 0x10000, CRC(22cfa87b) SHA1(0008a41f307be96be91f491bdeaa1fa450dd0fdf) ) ROM_LOAD( "dt.115", 0x20000, 0x10000, CRC(8a9f1c34) SHA1(1f07f424b2ab14a051f2c84b3d89fc5d35c5f20b) ) - ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) /* from ddragon */ + ROM_LOAD( "21j-d", 0x30000, 0x10000, CRC(cb4f231b) SHA1(9f2270f9ceedfe51c5e9a9bbb00d6f43dbc4a3ea) ) // from ddragon ROM_LOAD( "dt.113", 0x40000, 0x10000, CRC(7b4bbf9c) SHA1(d0caa3c38e059d3ee48e3e801da36f67457ed542) ) ROM_LOAD( "dt.112", 0x50000, 0x10000, CRC(df3709d4) SHA1(9cca44be97260e730786db8244a0d655c86537aa) ) ROM_LOAD( "dt.111", 0x60000, 0x10000, CRC(59032154) SHA1(637372e4619472a958f4971b50a6fe0985bffc8b) ) - ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) /* from ddragon */ + ROM_LOAD( "21j-h", 0x70000, 0x10000, CRC(65c7517d) SHA1(f177ba9c1c7cc75ff04d5591b9865ee364788f94) ) // from ddragon - ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */ + ROM_REGION( 0x40000, "tiles", 0 ) /* tiles */ ROM_LOAD( "dt.78", 0x00000, 0x10000, CRC(72c15604) SHA1(202b46a2445eea5877e986a871bb0a6b76b88a6f) ) - ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) /* from ddragon */ + ROM_LOAD( "21j-9", 0x10000, 0x10000, CRC(c6640aed) SHA1(f156c337f48dfe4f7e9caee9a72c7ea3d53e3098) ) // from ddragon ROM_LOAD( "dt.109", 0x20000, 0x10000, CRC(15bdcb62) SHA1(75382a3805dc333b196e119d28b5c3f320bd9f2a) ) - ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) /* from ddragon */ + ROM_LOAD( "21j-j", 0x30000, 0x10000, CRC(5fb42e7c) SHA1(7953316712c56c6f8ca6bba127319e24b618b646) ) // from ddragon - ROM_REGION( 0x10000, "adpcm1", 0 ) /* adpcm samples */ - ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) /* from ddragon */ + ROM_REGION( 0x10000, "adpcm1", 0 ) + ROM_LOAD( "21j-6", 0x00000, 0x10000, CRC(34755de3) SHA1(57c06d6ce9497901072fa50a92b6ed0d2d4d6528) ) // from ddragon - ROM_REGION( 0x10000, "adpcm2", 0 ) /* adpcm samples */ - ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) /* from ddragon */ + ROM_REGION( 0x10000, "adpcm2", 0 ) + ROM_LOAD( "21j-7", 0x00000, 0x10000, CRC(904de6f8) SHA1(3623e5ea05fd7c455992b7ed87e605b87c3850aa) ) // from ddragon ROM_REGION( 0x0300, "proms", 0 ) - ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) /* layer priorities */ - ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) /* sprite timing */ + ROM_LOAD( "21j-k-0.101", 0x0000, 0x0100, CRC(fdb130a9) SHA1(4c4f214229b9fab2b5d69c745ec5428787b89e1f) ) // layer priorities + ROM_LOAD( "21j-l-0.16", 0x0100, 0x0200, CRC(46339529) SHA1(64f4c42a826d67b7cbaa8a23a45ebc4eb6248891) ) // sprite timing ROM_END ROM_START( toffy ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* Main CPU */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "2-27512.rom", 0x00000, 0x10000, CRC(244709dd) SHA1(b2db51b910f1a031b94fb50e684351f657a465dc) ) ROM_RELOAD( 0x10000, 0x10000 ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Sound CPU */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "u142.1", 0x00000, 0x10000, CRC(541bd7f0) SHA1(3f0097f5877eae50651f94d46d7dd9127037eb6e) ) - ROM_REGION( 0x10000, "gfx1", 0 ) /* GFX */ + ROM_REGION( 0x10000, "chars", 0 ) ROM_LOAD( "7-27512.rom", 0x000, 0x10000, CRC(f9e8ec64) SHA1(36891cd8f28800e03fe0eac84b2484a70011eabb) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* GFX */ - /* the same as 'Dangerous Dungeons' once decrypted */ + ROM_REGION( 0x20000, "tiles", 0 ) + // the same as 'Dangerous Dungeons' once decrypted ROM_LOAD( "4-27512.rom", 0x00000, 0x10000, CRC(94b5ef6f) SHA1(32967f6cfc6a077c31923318891ed508f83e67f6) ) ROM_LOAD( "3-27512.rom", 0x10000, 0x10000, CRC(a7a053a3) SHA1(98625fe73a409c8d51136931a5f707a0bf75b66a) ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* GFX */ + ROM_REGION( 0x20000, "sprites", 0 ) ROM_LOAD( "6-27512.rom", 0x00000, 0x10000, CRC(2ba7ca47) SHA1(ad709fc871f1f1a7d4b0fdf0f516c53fd4c8b685) ) ROM_LOAD( "5-27512.rom", 0x10000, 0x10000, CRC(4f91eec6) SHA1(18a5f98dfba33837b73d032a6153eeb03263684b) ) ROM_END ROM_START( stoffy ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* Main CPU */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "2.u70", 0x00000, 0x10000, CRC(6203aeb5) SHA1(e57aa520e8096df01461b235f77557c267571a57) ) ROM_RELOAD( 0x10000, 0x10000 ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Sound CPU */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "1.u142", 0x00000, 0x10000, CRC(541bd7f0) SHA1(3f0097f5877eae50651f94d46d7dd9127037eb6e) ) // same as 'toffy' - ROM_REGION( 0x10000, "gfx1", 0 ) /* GFX */ + ROM_REGION( 0x10000, "chars", 0 ) ROM_LOAD( "7.u35", 0x00000, 0x10000, CRC(1cf13736) SHA1(bff5b99ea20af32f1fc7f28f4f0b397ec987c7ca) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* GFX */ + ROM_REGION( 0x20000, "tiles", 0 ) ROM_LOAD( "4.u78", 0x00000, 0x10000, CRC(2066c3c7) SHA1(6778e654c0953a7e4ff18cbd326e9d3f8218a3b2) ) // 0 ROM_LOAD( "3.u77", 0x10000, 0x10000, CRC(3625f813) SHA1(b44830896c69cd5c618c4740ccf471f31dfa34c1) ) // 0 - ROM_REGION( 0x20000, "gfx2", 0 ) /* GFX */ + ROM_REGION( 0x20000, "sprites", 0 ) ROM_LOAD( "6.u80", 0x00000, 0x10000, CRC(ff190865) SHA1(245e69651d0161fcb416bba8f743602b4ee83139) ) // 1 ROM_LOAD( "5.u79", 0x10000, 0x10000, CRC(333d5b8a) SHA1(d3573db87e2318c144ee9ace6c975a70fc96f4c4) ) // 1 ROM_END ROM_START( stoffyu ) - ROM_REGION( 0x30000, "maincpu", 0 ) /* Main CPU */ + ROM_REGION( 0x30000, "maincpu", 0 ) ROM_LOAD( "u70.2", 0x00000, 0x10000, CRC(3c156610) SHA1(d7fdbc595bdc77c452da39da8b20774db0952e33) ) ROM_RELOAD( 0x10000, 0x10000 ) - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Sound CPU */ + ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "1.u142", 0x00000, 0x10000, CRC(541bd7f0) SHA1(3f0097f5877eae50651f94d46d7dd9127037eb6e) ) // same as 'toffy' - ROM_REGION( 0x10000, "gfx1", 0 ) /* GFX */ + ROM_REGION( 0x10000, "chars", 0 ) ROM_LOAD( "u35.7", 0x00000, 0x10000, CRC(83735d25) SHA1(d82c046db0112d7d2877339652b2111f12513a4f) ) - ROM_REGION( 0x20000, "gfx3", 0 ) /* GFX */ + ROM_REGION( 0x20000, "tiles", 0 ) ROM_LOAD( "u78.4", 0x00000, 0x10000, CRC(9743a74d) SHA1(876696c5e88e58e6e44671c33a4c140be02a941e) ) // 0 ROM_LOAD( "u77.3", 0x10000, 0x10000, CRC(f267109a) SHA1(679d2147c79636796dda850345c04ad8a9daa6af) ) // 0 - ROM_REGION( 0x20000, "gfx2", 0 ) /* GFX */ + ROM_REGION( 0x20000, "sprites", 0 ) ROM_LOAD( "6.u80", 0x00000, 0x10000, CRC(ff190865) SHA1(245e69651d0161fcb416bba8f743602b4ee83139) ) // 1 ROM_LOAD( "5.u79", 0x10000, 0x10000, CRC(333d5b8a) SHA1(d3573db87e2318c144ee9ace6c975a70fc96f4c4) ) // 1 ROM_END @@ -2152,40 +2183,40 @@ void toffy_state::init_toffy() { m_technos_video_hw = 0; - /* the program rom has a simple bitswap encryption */ + // the program ROM has a simple bitswap encryption uint8_t *rom = memregion("maincpu")->base(); int length = memregion("maincpu")->bytes(); for (int i = 0; i < length; i++) rom[i] = bitswap<8>(rom[i], 6,7,5,4,3,2,1,0); - /* and the fg gfx ... */ - rom = memregion("gfx1")->base(); - length = memregion("gfx1")->bytes(); + // and the fg gfx ... + rom = memregion("chars")->base(); + length = memregion("chars")->bytes(); for (int i = 0; i < length; i++) rom[i] = bitswap<8>(rom[i], 7,6,5,3,4,2,1,0); - /* and the sprites gfx */ - rom = memregion("gfx2")->base(); - length = memregion("gfx2")->bytes(); + // and the sprites gfx + rom = memregion("sprites")->base(); + length = memregion("sprites")->bytes(); for (int i = 0; i < length; i++) rom[i] = bitswap<8>(rom[i], 7,6,5,4,3,2,0,1); - /* and the bg gfx */ - rom = memregion("gfx3")->base(); - length = memregion("gfx3")->bytes(); + // and the bg gfx + rom = memregion("tiles")->base(); + length = memregion("tiles")->bytes(); for (int i = 0; i < length / 2; i++) { rom[i + 0*length/2] = bitswap<8>(rom[i + 0*length/2], 7,6,1,4,3,2,5,0); rom[i + 1*length/2] = bitswap<8>(rom[i + 1*length/2], 7,6,2,4,3,5,1,0); } - /* should the sound rom be bitswapped too? */ + // should the sound ROM be bitswapped too? } void ddragon_state::init_ddragon6809() { - uint8_t *src = memregion("chars")->base(); - uint8_t *dst = memregion("gfx1")->base(); + uint8_t *src = memregion("enc_chars")->base(); + uint8_t *dst = memregion("chars")->base(); for (int i = 0; i < 0x8000; i++) { @@ -2210,31 +2241,32 @@ void ddragon_state::init_ddragon6809() * *************************************/ -GAME( 1987, ddragon, 0, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan", "Double Dragon (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ddragonw, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ddragonw1, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ddragon, 0, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ddragona, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ddragonu, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ddragonua, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ddragonub, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ddragonb2, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "bootleg", "Double Dragon (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ddragonb, ddragon, ddragonb, ddragon, ddragon_state, init_ddragon, ROT0, "bootleg", "Double Dragon (bootleg with HD6309)", MACHINE_SUPPORTS_SAVE ) // according to dump notes -GAME( 1987, ddragonba, ddragon, ddragonba, ddragon, ddragon_state, init_ddragon, ROT0, "bootleg", "Double Dragon (bootleg with MC6803)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ddragonj, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan", "Double Dragon (Japan set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ddragonja, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "Technos Japan", "Double Dragon (Japan set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ddragonbl2, ddragon, ddragon, ddragon, ddragon_state, init_ddragon, ROT0, "bootleg", "Double Dragon (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ddragonbl, ddragon, ddragonbl, ddragon, ddragon_state, init_ddragon, ROT0, "bootleg", "Double Dragon (bootleg with HD6309)", MACHINE_SUPPORTS_SAVE ) // according to dump notes +GAME( 1987, ddragonbla, ddragon, ddragonbla, ddragon, ddragon_state, init_ddragon, ROT0, "bootleg", "Double Dragon (bootleg with MC6803)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, ddragon6809, ddragon, ddragon6809, ddragon, ddragon_state, init_ddragon6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 1)", MACHINE_NOT_WORKING ) GAME( 1987, ddragon6809a, ddragon, ddragon6809, ddragon, ddragon_state, init_ddragon6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 2)", MACHINE_NOT_WORKING ) GAME( 1988, ddragon2, 0, ddragon2, ddragon2, ddragon_state, init_ddragon2, ROT0, "Technos Japan", "Double Dragon II: The Revenge (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, ddragon2u, ddragon2, ddragon2, ddragon2, ddragon_state, init_ddragon2, ROT0, "Technos Japan", "Double Dragon II: The Revenge (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, ddragon2j, ddragon2, ddragon2, ddragon2, ddragon_state, init_ddragon2, ROT0, "Technos Japan", "Double Dragon II: The Revenge (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ddragon2b, ddragon2, ddragon2, ddragon2, ddragon_state, init_ddragon2, ROT0, "bootleg", "Double Dragon II: The Revenge (US, bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ddragon2bl, ddragon2, ddragon2, ddragon2, ddragon_state, init_ddragon2, ROT0, "bootleg", "Double Dragon II: The Revenge (US, bootleg)", MACHINE_SUPPORTS_SAVE ) -/* these were conversions of double dragon */ +// these were conversions of Double Dragon GAME( 1991, tstrike, 0, darktowr, tstrike, darktowr_state, init_darktowr, ROT0, "East Coast Coin Company", "Thunder Strike (set 1)", MACHINE_SUPPORTS_SAVE ) // same manufacturer as The Game Room? GAME( 1991, tstrikea, tstrike, darktowr, tstrike, darktowr_state, init_darktowr, ROT0, "The Game Room", "Thunder Strike (set 2, older)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, ddungeon, 0, darktowr, ddungeon, darktowr_state, init_darktowr, ROT0, "The Game Room", "Dangerous Dungeons (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, ddungeone, ddungeon, darktowr, ddungeon, darktowr_state, init_darktowr, ROT0, "East Coast Coin Company", "Dangerous Dungeons (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, darktowr, 0, darktowr, darktowr, darktowr_state, init_darktowr, ROT0, "The Game Room", "Dark Tower", MACHINE_SUPPORTS_SAVE ) -/* these run on their own board, but are basically the same game. Toffy even has 'dangerous dungeons' text in it */ +// these run on their own board, but are basically the same game. Toffy even has 'Dangerous Dungeons' text in it GAME( 1993, toffy, 0, toffy, toffy, toffy_state, init_toffy, ROT0, "Midas", "Toffy", MACHINE_SUPPORTS_SAVE ) GAME( 1994, stoffy, 0, toffy, toffy, toffy_state, init_toffy, ROT0, "Midas", "Super Toffy", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/technos/ddragon.h b/src/mame/technos/ddragon.h index e4f8730fbc4..c6d4619c242 100644 --- a/src/mame/technos/ddragon.h +++ b/src/mame/technos/ddragon.h @@ -1,5 +1,6 @@ // license:BSD-3-Clause -// copyright-holders:Philip Bennett,Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi, David Haywood, R. Belmont +// copyright-holders: Philip Bennett,Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi, David Haywood, R. Belmont + /************************************************************************* Double Dragon & Double Dragon II (but also China Gate) @@ -47,8 +48,8 @@ public: void ddragon(machine_config &config); void ddragon6809(machine_config &config); - void ddragonb(machine_config &config); - void ddragonba(machine_config &config); + void ddragonbl(machine_config &config); + void ddragonbla(machine_config &config); void ddragon2(machine_config &config); void init_ddragon2(); @@ -70,16 +71,23 @@ protected: required_device m_gfxdecode; required_device m_soundlatch; + // memory pointers optional_memory_bank m_mainbank; + required_shared_ptr m_bgvideoram; + required_shared_ptr m_fgvideoram; + optional_shared_ptr m_comram; + required_shared_ptr m_spriteram; + required_shared_ptr m_scrollx_lo; + required_shared_ptr m_scrolly_lo; - /* video-related */ + // video-related tilemap_t *m_fg_tilemap = nullptr; tilemap_t *m_bg_tilemap = nullptr; uint8_t m_technos_video_hw = 0; uint8_t m_scrollx_hi = 0; uint8_t m_scrolly_hi = 0; - /* misc */ + // misc uint8_t m_ddragon_sub_port = 0; uint8_t m_sprite_irq = 0; uint8_t m_adpcm_sound_irq = 0; @@ -88,8 +96,8 @@ protected: bool m_adpcm_idle[2]{}; int m_adpcm_data[2]{}; - void ddragon_bgvideoram_w(offs_t offset, uint8_t data); - void ddragon_fgvideoram_w(offs_t offset, uint8_t data); + void bgvideoram_w(offs_t offset, uint8_t data); + void fgvideoram_w(offs_t offset, uint8_t data); TILEMAP_MAPPER_MEMBER(background_scan); @@ -98,55 +106,45 @@ protected: int scanline_to_vcount(int scanline); - uint32_t screen_update_ddragon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void ddragon_base_map(address_map &map); + void base_map(address_map &map); private: - /* memory pointers */ - required_shared_ptr m_bgvideoram; - required_shared_ptr m_fgvideoram; - optional_shared_ptr m_comram; - required_shared_ptr m_spriteram; - required_shared_ptr m_scrollx_lo; - required_shared_ptr m_scrolly_lo; - - /* devices */ + // devices optional_device_array m_adpcm; optional_region_ptr_array m_adpcm_rom; - void ddragon_interrupt_ack(offs_t offset, uint8_t data); - void dd_adpcm_int(int chip); + void interrupt_ack(offs_t offset, uint8_t data); + template void ddragon_adpcm_int(int state); - /* video/ddragon.cpp */ + // video/ddragon.cpp TILE_GET_INFO_MEMBER(get_fg_tile_info); void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); - TIMER_DEVICE_CALLBACK_MEMBER(ddragon_scanline); + TIMER_DEVICE_CALLBACK_MEMBER(scanline); - void ddragon_bankswitch_w(uint8_t data); - uint8_t ddragon_interrupt_r(offs_t offset); - void ddragon_interrupt_w(offs_t offset, uint8_t data); + void bankswitch_w(uint8_t data); + uint8_t interrupt_r(offs_t offset); + void interrupt_w(offs_t offset, uint8_t data); void ddragon2_sub_irq_ack_w(uint8_t data); void ddragon2_sub_irq_w(uint8_t data); void sub_port6_w(uint8_t data); - uint8_t ddragon_comram_r(offs_t offset); - void ddragon_comram_w(offs_t offset, uint8_t data); - void dd_adpcm_w(offs_t offset, uint8_t data); - uint8_t dd_adpcm_status_r(); - void ddragonba_port_w(uint8_t data); - void dd_adpcm_int_1(int state); - void dd_adpcm_int_2(int state); + uint8_t comram_r(offs_t offset); + void comram_w(offs_t offset, uint8_t data); + void ddragon_adpcm_w(offs_t offset, uint8_t data); + uint8_t ddragon_adpcm_status_r(); + void ddragonbla_port_w(uint8_t data); - void dd2_map(address_map &map); - void dd2_sound_map(address_map &map); - void dd2_sub_map(address_map &map); - void ddragon_map(address_map &map); - void ddragonba_sub_map(address_map &map); - void sound_map(address_map &map); + void ddragon2_main_map(address_map &map); + void ddragon2_sound_map(address_map &map); + void ddragon2_sub_map(address_map &map); + void ddragon_main_map(address_map &map); + void ddragonbla_sub_map(address_map &map); + void ddragon_sound_map(address_map &map); void ddragon6809_sound_map(address_map &map); - void sub_map(address_map &map); + void ddragon_sub_map(address_map &map); void sub_6309_map(address_map &map); void sub_6809_map(address_map &map); }; @@ -158,7 +156,7 @@ public: darktowr_state(const machine_config &mconfig, device_type type, const char *tag) : ddragon_state(mconfig, type, tag) , m_mcu(*this, "mcu") - , m_darktowr_bank(*this, "darktowr_bank") + , m_bank(*this, "darktowr_bank") , m_rambase(*this, "rambase") , m_mcu_port_a_out(0xff) { @@ -169,16 +167,16 @@ public: void init_darktowr(); private: - uint8_t darktowr_mcu_bank_r(offs_t offset); - void darktowr_mcu_bank_w(offs_t offset, uint8_t data); - void darktowr_bankswitch_w(uint8_t data); + uint8_t mcu_bank_r(offs_t offset); + void mcu_bank_w(offs_t offset, uint8_t data); + void bankswitch_w(uint8_t data); void mcu_port_a_w(offs_t offset, uint8_t data); - void darktowr_map(address_map &map); - void darktowr_banked_map(address_map &map); + void main_map(address_map &map); + void banked_map(address_map &map); required_device m_mcu; - required_device m_darktowr_bank; + required_device m_bank; required_shared_ptr m_rambase; uint8_t m_mcu_port_a_out = 0; @@ -198,9 +196,9 @@ public: void init_toffy(); private: - void toffy_bankswitch_w(uint8_t data); + void bankswitch_w(uint8_t data); - void toffy_map(address_map &map); + void main_map(address_map &map); }; #endif // MAME_TECHNOS_DDRAGON_H diff --git a/src/mame/technos/ddragon_v.cpp b/src/mame/technos/ddragon_v.cpp index f202ba9bf01..04c6b3f01f4 100644 --- a/src/mame/technos/ddragon_v.cpp +++ b/src/mame/technos/ddragon_v.cpp @@ -1,5 +1,6 @@ // license:BSD-3-Clause -// copyright-holders:Philip Bennett,Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi, David Haywood, R. Belmont +// copyright-holders: Philip Bennett,Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi, David Haywood, R. Belmont + /*************************************************************************** Video Hardware for some Technos games: @@ -54,14 +55,14 @@ Sprite layout. TILEMAP_MAPPER_MEMBER(ddragon_state::background_scan) { - /* logical (col,row) -> memory offset */ + // logical (col,row) -> memory offset return (col & 0x0f) | ((row & 0x0f) << 4) | ((col & 0x10) << 4) | ((row & 0x10) << 5); } TILE_GET_INFO_MEMBER(ddragon_state::get_bg_tile_info) { tile_index <<= 1; - uint8_t attr = m_bgvideoram[tile_index]; + uint8_t const attr = m_bgvideoram[tile_index]; tileinfo.set(2, m_bgvideoram[tile_index | 1] | ((attr & 0x07) << 8), (attr >> 3) & 0x07, @@ -71,7 +72,7 @@ TILE_GET_INFO_MEMBER(ddragon_state::get_bg_tile_info) TILE_GET_INFO_MEMBER(ddragon_state::get_fg_tile_info) { tile_index <<= 1; - uint8_t attr = m_fgvideoram[tile_index]; + uint8_t const attr = m_fgvideoram[tile_index]; tileinfo.set(0, m_fgvideoram[tile_index | 1] | ((attr & 0x07) << 8), attr >> 5, @@ -81,7 +82,7 @@ TILE_GET_INFO_MEMBER(ddragon_state::get_fg_tile_info) TILE_GET_INFO_MEMBER(ddragon_state::get_fg_16color_tile_info) { tile_index <<= 1; - uint8_t attr = m_fgvideoram[tile_index]; + uint8_t const attr = m_fgvideoram[tile_index]; tileinfo.set(0, m_fgvideoram[tile_index | 1] | ((attr & 0x0f) << 8), attr >> 4, @@ -114,13 +115,13 @@ void ddragon_state::video_start() ***************************************************************************/ -void ddragon_state::ddragon_bgvideoram_w(offs_t offset, uint8_t data) +void ddragon_state::bgvideoram_w(offs_t offset, uint8_t data) { m_bgvideoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset >> 1); } -void ddragon_state::ddragon_fgvideoram_w(offs_t offset, uint8_t data) +void ddragon_state::fgvideoram_w(offs_t offset, uint8_t data) { m_fgvideoram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset >> 1); @@ -145,12 +146,12 @@ void ddragon_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) for (uint32_t i = 0; i < bytes; i += 5) { - int attr = src[i + 1]; - if (attr & 0x80) /* visible */ + int const attr = src[i + 1]; + if (attr & 0x80) // visible { int sx = 240 - src[i + 4] + ((attr & 2) << 7); int sy = 232 - src[i + 0] + ((attr & 1) << 8); - int size = (attr & 0x30) >> 4; + int const size = (attr & 0x30) >> 4; int flipx = attr & 8; int flipy = attr & 4; int dx = -16, dy = -16; @@ -158,17 +159,17 @@ void ddragon_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) int which; int color; - if (m_technos_video_hw == 2) /* Double Dragon 2 */ + if (m_technos_video_hw == 2) // Double Dragon 2 { color = src[i + 2] >> 5; which = src[i + 3] | ((src[i + 2] & 0x1f) << 8); } else { - if (m_technos_video_hw == 1) /* China Gate */ + if (m_technos_video_hw == 1) // China Gate { - if ((sx < -7) && (sx > -16)) sx += 256; /* fix sprite clip */ - if ((sy < -7) && (sy > -16)) sy += 256; /* fix sprite clip */ + if ((sx < -7) && (sx > -16)) sx += 256; // fix sprite clip + if ((sy < -7) && (sy > -16)) sy += 256; // fix sprite clip } color = src[i + 2] >> 4; which = src[i + 3] | ((src[i + 2] & 0x0f) << 8); @@ -188,16 +189,16 @@ void ddragon_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) switch (size) { - case 0: /* normal */ + case 0: // normal DRAW_SPRITE(0, sx, sy); break; - case 1: /* double y */ + case 1: // double y DRAW_SPRITE(0, sx, sy + dy); DRAW_SPRITE(1, sx, sy); break; - case 2: /* double x */ + case 2: // double x DRAW_SPRITE(0, sx + dx, sy); DRAW_SPRITE(2, sx, sy); break; @@ -216,15 +217,15 @@ void ddragon_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) #undef DRAW_SPRITE -uint32_t ddragon_state::screen_update_ddragon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t ddragon_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - int scrollx = (m_scrollx_hi << 8) | *m_scrollx_lo; - int scrolly = (m_scrolly_hi << 8) | *m_scrolly_lo; + int const scrollx = (m_scrollx_hi << 8) | *m_scrollx_lo; + int const scrolly = (m_scrolly_hi << 8) | *m_scrolly_lo; m_bg_tilemap->set_scrollx(0, scrollx); m_bg_tilemap->set_scrolly(0, scrolly); - m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0;