mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
contra.cpp, gng.cpp: finders and other small cleanups
This commit is contained in:
parent
b206c1c7bd
commit
976ec5da28
@ -1554,8 +1554,6 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/fcrash.cpp",
|
||||
MAME_DIR .. "src/mame/includes/fcrash.h",
|
||||
MAME_DIR .. "src/mame/drivers/gng.cpp",
|
||||
MAME_DIR .. "src/mame/includes/gng.h",
|
||||
MAME_DIR .. "src/mame/video/gng.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/gunsmoke.cpp",
|
||||
MAME_DIR .. "src/mame/includes/gunsmoke.h",
|
||||
MAME_DIR .. "src/mame/video/gunsmoke.cpp",
|
||||
@ -2435,8 +2433,6 @@ files {
|
||||
MAME_DIR .. "src/mame/includes/combatsc.h",
|
||||
MAME_DIR .. "src/mame/video/combatsc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/contra.cpp",
|
||||
MAME_DIR .. "src/mame/includes/contra.h",
|
||||
MAME_DIR .. "src/mame/video/contra.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/crimfght.cpp",
|
||||
MAME_DIR .. "src/mame/includes/crimfght.h",
|
||||
MAME_DIR .. "src/mame/video/crimfght.cpp",
|
||||
|
@ -19,29 +19,311 @@ Dip locations and factory settings verified with manual
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/contra.h"
|
||||
|
||||
#include "includes/konamipt.h"
|
||||
#include "machine/k007452.h"
|
||||
#include "video/k007121.h"
|
||||
|
||||
#include "cpu/m6809/hd6309.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/k007452.h"
|
||||
#include "sound/ymopm.h"
|
||||
#include "video/bufsprite.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
|
||||
INTERRUPT_GEN_MEMBER(contra_state::contra_interrupt)
|
||||
namespace {
|
||||
|
||||
class contra_state : public driver_device
|
||||
{
|
||||
if (m_k007121_1->ctrlram_r(7) & 0x02)
|
||||
public:
|
||||
contra_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_cram(*this, "cram%u", 0U),
|
||||
m_vram(*this, "vram%u", 0U),
|
||||
m_mainbank(*this, "mainbank"),
|
||||
m_buffered_spriteram(*this, "spriteram%u", 1U),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_k007121(*this, "k007121_%u", 1U),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
void contra(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
// memory pointers
|
||||
required_shared_ptr_array<uint8_t, 3> m_cram;
|
||||
required_shared_ptr_array<uint8_t, 3> m_vram;
|
||||
required_memory_bank m_mainbank;
|
||||
|
||||
// video-related
|
||||
tilemap_t *m_tilemap[3]{};
|
||||
rectangle m_clip[3]{};
|
||||
|
||||
// devices
|
||||
required_device_array<buffered_spriteram8_device, 2> m_buffered_spriteram;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device_array<k007121_device, 2> m_k007121;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
void bankswitch_w(uint8_t data);
|
||||
void sh_irqtrigger_w(uint8_t data);
|
||||
void sirq_clear_w(uint8_t data);
|
||||
void coin_counter_w(uint8_t data);
|
||||
template <uint8_t Which> void vram_w(offs_t offset, uint8_t data);
|
||||
template <uint8_t Which> void cram_w(offs_t offset, uint8_t data);
|
||||
template <uint8_t Which> void K007121_ctrl_w(offs_t offset, uint8_t data);
|
||||
template <uint8_t Which> TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tx_tile_info);
|
||||
void palette(palette_device &palette) const;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(interrupt);
|
||||
template <uint8_t Which> void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap);
|
||||
|
||||
void main_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
// video
|
||||
|
||||
/***************************************************************************
|
||||
**
|
||||
** Contra has palette RAM, but it also has four lookup table PROMs
|
||||
**
|
||||
** 0 sprites #0
|
||||
** 1 tiles #0
|
||||
** 2 sprites #1
|
||||
** 3 tiles #1
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
void contra_state::palette(palette_device &palette) const
|
||||
{
|
||||
uint8_t const *const color_prom = memregion("proms")->base();
|
||||
|
||||
for (int chip = 0; chip < 2; chip++)
|
||||
{
|
||||
for (int pal = 0; pal < 8; pal++)
|
||||
{
|
||||
int const clut = (chip << 1) | (pal & 1);
|
||||
|
||||
for (int i = 0; i < 0x100; i++)
|
||||
{
|
||||
uint8_t ctabentry;
|
||||
|
||||
if (((pal & 0x01) == 0) && (color_prom[(clut << 8) | i] == 0))
|
||||
ctabentry = 0;
|
||||
else
|
||||
ctabentry = (pal << 4) | (color_prom[(clut << 8) | i] & 0x0f);
|
||||
|
||||
palette.set_pen_indirect((chip << 11) | (pal << 8) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
template <uint8_t Which>
|
||||
TILE_GET_INFO_MEMBER(contra_state::get_tile_info)
|
||||
{
|
||||
uint8_t ctrl_3 = m_k007121[Which]->ctrlram_r(3);
|
||||
uint8_t ctrl_4 = m_k007121[Which]->ctrlram_r(4);
|
||||
uint8_t ctrl_5 = m_k007121[Which]->ctrlram_r(5);
|
||||
uint8_t ctrl_6 = m_k007121[Which]->ctrlram_r(6);
|
||||
int attr = m_cram[Which][tile_index];
|
||||
int bit0 = (ctrl_5 >> 0) & 0x03;
|
||||
int bit1 = (ctrl_5 >> 2) & 0x03;
|
||||
int bit2 = (ctrl_5 >> 4) & 0x03;
|
||||
int bit3 = (ctrl_5 >> 6) & 0x03;
|
||||
int bank = ((attr & 0x80) >> 7) |
|
||||
((attr >> (bit0 + 2)) & 0x02) |
|
||||
((attr >> (bit1 + 1)) & 0x04) |
|
||||
((attr >> (bit2 )) & 0x08) |
|
||||
((attr >> (bit3 - 1)) & 0x10) |
|
||||
((ctrl_3 & 0x01) << 5);
|
||||
int mask = (ctrl_4 & 0xf0) >> 4;
|
||||
|
||||
bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1);
|
||||
|
||||
tileinfo.set(Which,
|
||||
m_vram[Which][tile_index] + bank * 256,
|
||||
((ctrl_6 & 0x30) * 2 + 16) + (attr & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info)
|
||||
{
|
||||
uint8_t ctrl_5 = m_k007121[0]->ctrlram_r(5);
|
||||
uint8_t ctrl_6 = m_k007121[0]->ctrlram_r(6);
|
||||
int attr = m_cram[2][tile_index];
|
||||
int bit0 = (ctrl_5 >> 0) & 0x03;
|
||||
int bit1 = (ctrl_5 >> 2) & 0x03;
|
||||
int bit2 = (ctrl_5 >> 4) & 0x03;
|
||||
int bit3 = (ctrl_5 >> 6) & 0x03;
|
||||
int bank = ((attr & 0x80) >> 7) |
|
||||
((attr >> (bit0 + 2)) & 0x02) |
|
||||
((attr >> (bit1 + 1)) & 0x04) |
|
||||
((attr >> (bit2 )) & 0x08) |
|
||||
((attr >> (bit3 - 1)) & 0x10);
|
||||
|
||||
tileinfo.set(0,
|
||||
m_vram[2][tile_index] + bank * 256,
|
||||
((ctrl_6 & 0x30) * 2 + 16) + (attr & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Start the video hardware emulation.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void contra_state::video_start()
|
||||
{
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
|
||||
m_clip[1] = m_screen->visible_area();
|
||||
m_clip[1].min_x += 40;
|
||||
|
||||
m_clip[0] = m_clip[1];
|
||||
|
||||
m_clip[2] = m_screen->visible_area();
|
||||
m_clip[2].max_x = 39;
|
||||
m_clip[2].min_x = 0;
|
||||
|
||||
m_tilemap[0]->set_transparent_pen(0);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Memory handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
template <uint8_t Which>
|
||||
void contra_state::vram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_vram[Which][offset] = data;
|
||||
m_tilemap[Which]->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
template <uint8_t Which>
|
||||
void contra_state::cram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_cram[Which][offset] = data;
|
||||
m_tilemap[Which]->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
template <uint8_t Which>
|
||||
void contra_state::K007121_ctrl_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
uint8_t ctrl_6 = m_k007121[Which]->ctrlram_r(6);
|
||||
|
||||
if (offset == 3)
|
||||
{
|
||||
if ((data & 0x8) == 0)
|
||||
m_buffered_spriteram[Which]->copy(0x800, 0x800);
|
||||
else
|
||||
m_buffered_spriteram[Which]->copy(0x000, 0x800);
|
||||
}
|
||||
|
||||
if (offset == 6)
|
||||
{
|
||||
if (ctrl_6 != data)
|
||||
m_tilemap[Which]->mark_all_dirty();
|
||||
}
|
||||
|
||||
if (offset == 7)
|
||||
m_tilemap[Which]->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||
|
||||
m_k007121[Which]->ctrl_w(offset, data);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display Refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
template <uint8_t Which>
|
||||
void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap)
|
||||
{
|
||||
int base_color = (m_k007121[Which]->ctrlram_r(6) & 0x30) * 2;
|
||||
|
||||
m_k007121[Which]->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(Which), *m_palette, m_buffered_spriteram[Which]->buffer(), base_color, 40, 0, priority_bitmap, (uint32_t)-1);
|
||||
}
|
||||
|
||||
uint32_t contra_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
uint8_t ctrl_1_0 = m_k007121[0]->ctrlram_r(0);
|
||||
uint8_t ctrl_1_2 = m_k007121[0]->ctrlram_r(2);
|
||||
uint8_t ctrl_2_0 = m_k007121[1]->ctrlram_r(0);
|
||||
uint8_t ctrl_2_2 = m_k007121[1]->ctrlram_r(2);
|
||||
rectangle bg_finalclip = m_clip[1];
|
||||
rectangle fg_finalclip = m_clip[0];
|
||||
rectangle tx_finalclip = m_clip[2];
|
||||
|
||||
bg_finalclip &= cliprect;
|
||||
fg_finalclip &= cliprect;
|
||||
tx_finalclip &= cliprect;
|
||||
|
||||
m_tilemap[0]->set_scrollx(0, ctrl_1_0 - 40);
|
||||
m_tilemap[0]->set_scrolly(0, ctrl_1_2);
|
||||
m_tilemap[1]->set_scrollx(0, ctrl_2_0 - 40);
|
||||
m_tilemap[1]->set_scrolly(0, ctrl_2_2);
|
||||
|
||||
m_tilemap[1]->draw(screen, bitmap, bg_finalclip, 0 ,0);
|
||||
m_tilemap[0]->draw(screen, bitmap, fg_finalclip, 0 ,0);
|
||||
draw_sprites<0>(bitmap, cliprect, screen.priority());
|
||||
draw_sprites<1>(bitmap, cliprect, screen.priority());
|
||||
m_tilemap[2]->draw(screen, bitmap, tx_finalclip, 0 ,0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// machine
|
||||
|
||||
INTERRUPT_GEN_MEMBER(contra_state::interrupt)
|
||||
{
|
||||
if (m_k007121[0]->ctrlram_r(7) & 0x02)
|
||||
device.execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
|
||||
}
|
||||
|
||||
void contra_state::contra_bankswitch_w(uint8_t data)
|
||||
void contra_state::bankswitch_w(uint8_t data)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x0f);
|
||||
m_mainbank->set_entry(data & 0x0f);
|
||||
}
|
||||
|
||||
void contra_state::contra_sh_irqtrigger_w(uint8_t data)
|
||||
void contra_state::sh_irqtrigger_w(uint8_t data)
|
||||
{
|
||||
m_audiocpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
|
||||
}
|
||||
@ -51,18 +333,15 @@ void contra_state::sirq_clear_w(uint8_t data)
|
||||
m_audiocpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
void contra_state::contra_coin_counter_w(uint8_t data)
|
||||
void contra_state::coin_counter_w(uint8_t data)
|
||||
{
|
||||
if (data & 0x01)
|
||||
machine().bookkeeping().coin_counter_w(0, data & 0x01);
|
||||
|
||||
if (data & 0x02)
|
||||
machine().bookkeeping().coin_counter_w(1, (data & 0x02) >> 1);
|
||||
machine().bookkeeping().coin_counter_w(1, data & 0x02);
|
||||
}
|
||||
|
||||
void contra_state::contra_map(address_map &map)
|
||||
void contra_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0007).w(FUNC(contra_state::contra_K007121_ctrl_0_w));
|
||||
map(0x0000, 0x0007).w(FUNC(contra_state::K007121_ctrl_w<0>));
|
||||
map(0x0008, 0x000f).rw("k007452", FUNC(k007452_device::read), FUNC(k007452_device::write));
|
||||
map(0x0010, 0x0010).portr("SYSTEM");
|
||||
map(0x0011, 0x0011).portr("P1");
|
||||
@ -72,39 +351,39 @@ void contra_state::contra_map(address_map &map)
|
||||
map(0x0015, 0x0015).portr("DSW2");
|
||||
map(0x0016, 0x0016).portr("DSW3");
|
||||
|
||||
map(0x0018, 0x0018).w(FUNC(contra_state::contra_coin_counter_w));
|
||||
map(0x001a, 0x001a).w(FUNC(contra_state::contra_sh_irqtrigger_w));
|
||||
map(0x0018, 0x0018).w(FUNC(contra_state::coin_counter_w));
|
||||
map(0x001a, 0x001a).w(FUNC(contra_state::sh_irqtrigger_w));
|
||||
map(0x001c, 0x001c).w("soundlatch", FUNC(generic_latch_8_device::write));
|
||||
map(0x001e, 0x001e).nopw(); /* ? */
|
||||
map(0x0060, 0x0067).w(FUNC(contra_state::contra_K007121_ctrl_1_w));
|
||||
map(0x001e, 0x001e).nopw(); // ?
|
||||
map(0x0060, 0x0067).w(FUNC(contra_state::K007121_ctrl_w<1>));
|
||||
|
||||
map(0x0c00, 0x0cff).ram().w(m_palette, FUNC(palette_device::write_indirect)).share("palette");
|
||||
|
||||
map(0x1000, 0x1fff).ram();
|
||||
|
||||
map(0x2000, 0x23ff).ram().w(FUNC(contra_state::contra_fg_cram_w)).share("fg_cram");
|
||||
map(0x2400, 0x27ff).ram().w(FUNC(contra_state::contra_fg_vram_w)).share("fg_vram");
|
||||
map(0x2800, 0x2bff).ram().w(FUNC(contra_state::contra_text_cram_w)).share("tx_cram");
|
||||
map(0x2c00, 0x2fff).ram().w(FUNC(contra_state::contra_text_vram_w)).share("tx_vram");
|
||||
map(0x3000, 0x3fff).ram().share("spriteram");
|
||||
map(0x4000, 0x43ff).ram().w(FUNC(contra_state::contra_bg_cram_w)).share("bg_cram");
|
||||
map(0x4400, 0x47ff).ram().w(FUNC(contra_state::contra_bg_vram_w)).share("bg_vram");
|
||||
map(0x2000, 0x23ff).ram().w(FUNC(contra_state::cram_w<0>)).share(m_cram[0]);
|
||||
map(0x2400, 0x27ff).ram().w(FUNC(contra_state::vram_w<0>)).share(m_vram[0]);
|
||||
map(0x2800, 0x2bff).ram().w(FUNC(contra_state::cram_w<2>)).share(m_cram[2]);
|
||||
map(0x2c00, 0x2fff).ram().w(FUNC(contra_state::vram_w<2>)).share(m_vram[2]);
|
||||
map(0x3000, 0x3fff).ram().share("spriteram1");
|
||||
map(0x4000, 0x43ff).ram().w(FUNC(contra_state::cram_w<1>)).share(m_cram[1]);
|
||||
map(0x4400, 0x47ff).ram().w(FUNC(contra_state::vram_w<1>)).share(m_vram[1]);
|
||||
map(0x4800, 0x4fff).ram();
|
||||
map(0x5000, 0x5fff).ram().share("spriteram_2");
|
||||
map(0x5000, 0x5fff).ram().share("spriteram2");
|
||||
|
||||
map(0x6000, 0x7fff).bankr("bank1");
|
||||
map(0x7000, 0x7000).w(FUNC(contra_state::contra_bankswitch_w));
|
||||
map(0x6000, 0x7fff).bankr(m_mainbank);
|
||||
map(0x7000, 0x7000).w(FUNC(contra_state::bankswitch_w));
|
||||
|
||||
map(0x8000, 0xffff).rom();
|
||||
map(0x8000, 0xffff).rom().region("maincpu", 0x18000);
|
||||
}
|
||||
|
||||
void contra_state::sound_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0000).r("soundlatch", FUNC(generic_latch_8_device::read));
|
||||
map(0x2000, 0x2001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
|
||||
map(0x4000, 0x4000).w(FUNC(contra_state::sirq_clear_w)); /* read triggers irq reset and latch read (in the hardware only). */
|
||||
map(0x4000, 0x4000).w(FUNC(contra_state::sirq_clear_w)); // read triggers irq reset and latch read (in the hardware only).
|
||||
map(0x6000, 0x67ff).ram();
|
||||
map(0x8000, 0xffff).rom();
|
||||
map(0x8000, 0xffff).rom().region("audiocpu", 0);
|
||||
}
|
||||
|
||||
|
||||
@ -121,7 +400,7 @@ static INPUT_PORTS_START( contra )
|
||||
|
||||
PORT_START("DSW1")
|
||||
KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
|
||||
/* "No Coin B" = coins produce sound, but no effect on coin counter */
|
||||
// "No Coin B" = coins produce sound, but no effect on coin counter
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
|
||||
@ -165,40 +444,27 @@ static INPUT_PORTS_START( gryzor )
|
||||
PORT_INCLUDE( contra )
|
||||
|
||||
PORT_MODIFY("DSW2")
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:3") /* Not Used according to manual, used in gryzor sets */
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:3") // Not Used according to manual, used in gryzor sets
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
|
||||
|
||||
PORT_MODIFY("DSW3")
|
||||
PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) PORT_DIPLOCATION("SW3:2") /* Not Used according to manual, used in gryzor sets */
|
||||
PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) PORT_DIPLOCATION("SW3:2") // Not Used according to manual, used in gryzor sets
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Single ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Dual ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const gfx_layout gfxlayout =
|
||||
{
|
||||
8,8,
|
||||
0x4000,
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 0, 4, 8, 12, 16, 20, 24, 28 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_contra )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, gfxlayout, 0, 8*16 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, gfxlayout, 8*16*16, 8*16 )
|
||||
GFXDECODE_ENTRY( "k007121_1", 0, gfx_8x8x4_packed_msb, 0, 8*16 )
|
||||
GFXDECODE_ENTRY( "k007121_2", 0, gfx_8x8x4_packed_msb, 8*16*16, 8*16 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
|
||||
void contra_state::machine_start()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
|
||||
membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
|
||||
m_mainbank->configure_entries(0, 16, memregion("maincpu")->base(), 0x2000);
|
||||
}
|
||||
|
||||
void contra_state::machine_reset()
|
||||
@ -208,40 +474,44 @@ void contra_state::machine_reset()
|
||||
|
||||
void contra_state::contra(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
HD6309E(config, m_maincpu, XTAL(24'000'000) / 8); /* (HD63C09EP) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &contra_state::contra_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(contra_state::contra_interrupt));
|
||||
// basic machine hardware
|
||||
HD6309E(config, m_maincpu, XTAL(24'000'000) / 8); // (HD63C09EP)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &contra_state::main_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(contra_state::interrupt));
|
||||
|
||||
MC6809E(config, m_audiocpu, XTAL(3'579'545) / 2 ); /* (HD68B09EP) */
|
||||
MC6809E(config, m_audiocpu, XTAL(3'579'545) / 2); // (HD68B09EP)
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &contra_state::sound_map);
|
||||
|
||||
config.set_maximum_quantum(attotime::from_hz(6000)); /* enough for the sound CPU to read all commands */
|
||||
config.set_maximum_quantum(attotime::from_hz(6000)); // enough for the sound CPU to read all commands
|
||||
|
||||
KONAMI_007452_MATH(config, "k007452");
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
BUFFERED_SPRITERAM8(config, m_buffered_spriteram[0]);
|
||||
|
||||
BUFFERED_SPRITERAM8(config, m_buffered_spriteram[1]);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
m_screen->set_size(37*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 35*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(contra_state::screen_update_contra));
|
||||
m_screen->set_screen_update(FUNC(contra_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_contra);
|
||||
|
||||
PALETTE(config, m_palette, FUNC(contra_state::contra_palette));
|
||||
PALETTE(config, m_palette, FUNC(contra_state::palette));
|
||||
m_palette->set_format(palette_device::xBGR_555, 2 * 8 * 16 * 16);
|
||||
m_palette->set_indirect_entries(128);
|
||||
m_palette->set_endianness(ENDIANNESS_LITTLE);
|
||||
|
||||
K007121(config, m_k007121_1, 0);
|
||||
m_k007121_1->set_palette_tag(m_palette);
|
||||
K007121(config, m_k007121_2, 0);
|
||||
m_k007121_2->set_palette_tag(m_palette);
|
||||
K007121(config, m_k007121[0], 0);
|
||||
m_k007121[0]->set_palette_tag(m_palette);
|
||||
K007121(config, m_k007121[1], 0);
|
||||
m_k007121[1]->set_palette_tag(m_palette);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
@ -252,70 +522,67 @@ void contra_state::contra(machine_config &config)
|
||||
|
||||
|
||||
ROM_START( contra )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "633m03.18a", 0x20000, 0x08000, CRC(d045e1da) SHA1(ec781e98a6efb14861223250c6239b06ec98ed0b) )
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "633i02.17a", 0x10000, 0x10000, CRC(b2f7bd9a) SHA1(6c29568419bc49f0be3995b0c34edd9038f6f8d9) )
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "633i02.17a", 0x00000, 0x10000, CRC(b2f7bd9a) SHA1(6c29568419bc49f0be3995b0c34edd9038f6f8d9) )
|
||||
ROM_LOAD( "633m03.18a", 0x10000, 0x10000, CRC(d045e1da) SHA1(ec781e98a6efb14861223250c6239b06ec98ed0b) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "633e01.12a", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "633e01.12a", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
ROM_LOAD16_BYTE( "633e04.7d", 0x00000, 0x40000, CRC(14ddc542) SHA1(c7d8592672a6e50c2fe6b0670001c340022f16f9) )
|
||||
ROM_LOAD16_BYTE( "633e05.7f", 0x00001, 0x40000, CRC(42185044) SHA1(a6e2598d766e6995c1a912e4a04987e6f4d547ff) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
ROM_LOAD16_BYTE( "633e06.16d", 0x00000, 0x40000, CRC(9cf6faae) SHA1(9ab79c06cb541ce6fdac322886b8a14a2f3f5cf7) )
|
||||
ROM_LOAD16_BYTE( "633e07.16f", 0x00001, 0x40000, CRC(f2d06638) SHA1(0fa0fbfc53ab5c31b9de22f90153d9af37ff22ce) )
|
||||
|
||||
ROM_REGION( 0x0500, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
|
||||
ROM_REGION( 0x0001, "pals", 0 )
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8A-2CN */
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8A-2CN
|
||||
ROM_END
|
||||
|
||||
ROM_START( contra1 )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "633i03.18a", 0x20000, 0x08000, CRC(7fc0d8cf) SHA1(cf1cf15646a4e5dc72671e957bc51ca44d30995c) )
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "633i02.17a", 0x10000, 0x10000, CRC(b2f7bd9a) SHA1(6c29568419bc49f0be3995b0c34edd9038f6f8d9) )
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "633i02.17a", 0x00000, 0x10000, CRC(b2f7bd9a) SHA1(6c29568419bc49f0be3995b0c34edd9038f6f8d9) )
|
||||
ROM_LOAD( "633i03.18a", 0x10000, 0x10000, CRC(7fc0d8cf) SHA1(cf1cf15646a4e5dc72671e957bc51ca44d30995c) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "633e01.12a", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "633e01.12a", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
ROM_LOAD16_BYTE( "633e04.7d", 0x00000, 0x40000, CRC(14ddc542) SHA1(c7d8592672a6e50c2fe6b0670001c340022f16f9) )
|
||||
ROM_LOAD16_BYTE( "633e05.7f", 0x00001, 0x40000, CRC(42185044) SHA1(a6e2598d766e6995c1a912e4a04987e6f4d547ff) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
ROM_LOAD16_BYTE( "633e06.16d", 0x00000, 0x40000, CRC(9cf6faae) SHA1(9ab79c06cb541ce6fdac322886b8a14a2f3f5cf7) )
|
||||
ROM_LOAD16_BYTE( "633e07.16f", 0x00001, 0x40000, CRC(f2d06638) SHA1(0fa0fbfc53ab5c31b9de22f90153d9af37ff22ce) )
|
||||
|
||||
ROM_REGION( 0x0400, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
|
||||
ROM_REGION( 0x0001, "pals", 0 )
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8A-2CN */
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8A-2CN
|
||||
ROM_END
|
||||
|
||||
ROM_START( contrae )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "633_e03.18a", 0x20000, 0x08000, CRC(7ebdb314) SHA1(b42c032cce7ae0c9b3eea6a41b7ffa5cb7fced5d) )
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "633_e02.17a", 0x10000, 0x10000, CRC(9d5ebe66) SHA1(5218426e1494b4f6dec667f1ade7ada13aa04f2b) )
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "633_e02.17a", 0x00000, 0x10000, CRC(9d5ebe66) SHA1(5218426e1494b4f6dec667f1ade7ada13aa04f2b) )
|
||||
ROM_LOAD( "633_e03.18a", 0x10000, 0x10000, CRC(7ebdb314) SHA1(b42c032cce7ae0c9b3eea6a41b7ffa5cb7fced5d) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "633e01.12a", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "633e01.12a", 0x000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
|
||||
// this PCB used official Konami riser-boards in place of the mask roms
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
// this PCB used official Konami riser-boards in place of the mask ROMs
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
ROM_LOAD16_BYTE( "633_e04_a.7d", 0x00000, 0x10000, CRC(e027f330) SHA1(e3480c0ed9f5ed5df829e66eb72e01ea39d5fca3) )
|
||||
ROM_LOAD16_BYTE( "633_e04_b.7d", 0x20000, 0x10000, CRC(a71230f5) SHA1(c2c92b42a04adbb4c7ba3d4632b9a9db0555840e) )
|
||||
ROM_LOAD16_BYTE( "633_e04_c.7d", 0x40000, 0x10000, CRC(0b103d01) SHA1(95e7feb7103d71b43ba921b7a376a2faf642621b) )
|
||||
@ -325,7 +592,7 @@ ROM_START( contrae )
|
||||
ROM_LOAD16_BYTE( "633_e05_c.7f", 0x40001, 0x10000, CRC(acba86bf) SHA1(c248c837b1f8093bcaf465b0c75b67f1f67a3f61) )
|
||||
ROM_LOAD16_BYTE( "633_e05_d.7f", 0x60001, 0x10000, CRC(59cf234d) SHA1(4a6bb30789e581c0600c55d8e8fba778e30ba299) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
ROM_LOAD16_BYTE( "633_e06_a.16d", 0x00000, 0x10000, CRC(030079c5) SHA1(3f93e05e9df0a9dde570b771e04b719cf0ace967) )
|
||||
ROM_LOAD16_BYTE( "633_e06_b.16d", 0x20000, 0x10000, CRC(e17d5807) SHA1(15ebbf62d026cc8ac75c9877304458cbc0c5d5e0) )
|
||||
ROM_LOAD16_BYTE( "633_e06_c.16d", 0x40000, 0x10000, CRC(7d6a28cd) SHA1(9fbbe0460406bb8b3e2e572c4d5a2f8be4ba9c2e) )
|
||||
@ -336,136 +603,131 @@ ROM_START( contrae )
|
||||
ROM_LOAD16_BYTE( "633_e07_d.16f", 0x60001, 0x10000, CRC(cfab0988) SHA1(3961bcbc3093b787211ab2815914f90a89df78b1) )
|
||||
|
||||
ROM_REGION( 0x0500, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633e10.18g", 0x0200, 0x0100, CRC(e782c494) SHA1(9459e721a4361fc4fbace3a017211f0199dee24d) ) /* 007121 #1 sprite lookup table */ // earlier rev
|
||||
ROM_LOAD( "633e11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633e10.18g", 0x0200, 0x0100, CRC(e782c494) SHA1(9459e721a4361fc4fbace3a017211f0199dee24d) ) // 007121 #1 sprite lookup table // earlier rev
|
||||
ROM_LOAD( "633e11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
|
||||
ROM_REGION( 0x0001, "pals", 0 )
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8A-2CN */
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8A-2CN
|
||||
ROM_END
|
||||
|
||||
ROM_START( contraj )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "633n03.18a", 0x20000, 0x08000, CRC(fedab568) SHA1(7fd4546335bdeef7f8326d4cbde7fa36d74e5cfc) )
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "633k02.17a", 0x10000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) )
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "633k02.17a", 0x00000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) )
|
||||
ROM_LOAD( "633n03.18a", 0x10000, 0x10000, CRC(fedab568) SHA1(7fd4546335bdeef7f8326d4cbde7fa36d74e5cfc) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "633e01.12a", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "633e01.12a", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
ROM_LOAD16_BYTE( "633e04.7d", 0x00000, 0x40000, CRC(14ddc542) SHA1(c7d8592672a6e50c2fe6b0670001c340022f16f9) )
|
||||
ROM_LOAD16_BYTE( "633e05.7f", 0x00001, 0x40000, CRC(42185044) SHA1(a6e2598d766e6995c1a912e4a04987e6f4d547ff) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
ROM_LOAD16_BYTE( "633e06.16d", 0x00000, 0x40000, CRC(9cf6faae) SHA1(9ab79c06cb541ce6fdac322886b8a14a2f3f5cf7) )
|
||||
ROM_LOAD16_BYTE( "633e07.16f", 0x00001, 0x40000, CRC(f2d06638) SHA1(0fa0fbfc53ab5c31b9de22f90153d9af37ff22ce) )
|
||||
|
||||
ROM_REGION( 0x0400, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
|
||||
ROM_REGION( 0x0001, "pals", 0 )
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8A-2CN */
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8A-2CN
|
||||
ROM_END
|
||||
|
||||
ROM_START( contraj1 )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "633k03.18a", 0x20000, 0x08000, CRC(bdb9196d) SHA1(fad170e8fda94c9c9d7b82433daa30b80af12efc) )
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "633k02.17a", 0x10000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) )
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "633k02.17a", 0x00000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) )
|
||||
ROM_LOAD( "633k03.18a", 0x10000, 0x10000, CRC(bdb9196d) SHA1(fad170e8fda94c9c9d7b82433daa30b80af12efc) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "633e01.12a", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "633e01.12a", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
ROM_LOAD16_BYTE( "633e04.7d", 0x00000, 0x40000, CRC(14ddc542) SHA1(c7d8592672a6e50c2fe6b0670001c340022f16f9) )
|
||||
ROM_LOAD16_BYTE( "633e05.7f", 0x00001, 0x40000, CRC(42185044) SHA1(a6e2598d766e6995c1a912e4a04987e6f4d547ff) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
ROM_LOAD16_BYTE( "633e06.16d", 0x00000, 0x40000, CRC(9cf6faae) SHA1(9ab79c06cb541ce6fdac322886b8a14a2f3f5cf7) )
|
||||
ROM_LOAD16_BYTE( "633e07.16f", 0x00001, 0x40000, CRC(f2d06638) SHA1(0fa0fbfc53ab5c31b9de22f90153d9af37ff22ce) )
|
||||
|
||||
ROM_REGION( 0x0400, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
|
||||
ROM_REGION( 0x0001, "pals", 0 )
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8A-2CN */
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8A-2CN
|
||||
ROM_END
|
||||
|
||||
ROM_START( gryzor )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "633j03.18a", 0x20000, 0x08000, CRC(20919162) SHA1(2f375166428ee03f6e8ac0372a373bb8ab35e64c) )
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "633j02.17a", 0x10000, 0x10000, CRC(b5922f9a) SHA1(441a23dc99a908ec2c09c855e73070dbab8c5ae2) )
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "633j02.17a", 0x00000, 0x10000, CRC(b5922f9a) SHA1(441a23dc99a908ec2c09c855e73070dbab8c5ae2) )
|
||||
ROM_LOAD( "633j03.18a", 0x10000, 0x10000, CRC(20919162) SHA1(2f375166428ee03f6e8ac0372a373bb8ab35e64c) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "633e01.12a", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "633e01.12a", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
ROM_LOAD16_BYTE( "633e04.7d", 0x00000, 0x40000, CRC(14ddc542) SHA1(c7d8592672a6e50c2fe6b0670001c340022f16f9) )
|
||||
ROM_LOAD16_BYTE( "633e05.7f", 0x00001, 0x40000, CRC(42185044) SHA1(a6e2598d766e6995c1a912e4a04987e6f4d547ff) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
ROM_LOAD16_BYTE( "633e06.16d", 0x00000, 0x40000, CRC(9cf6faae) SHA1(9ab79c06cb541ce6fdac322886b8a14a2f3f5cf7) )
|
||||
ROM_LOAD16_BYTE( "633e07.16f", 0x00001, 0x40000, CRC(f2d06638) SHA1(0fa0fbfc53ab5c31b9de22f90153d9af37ff22ce) )
|
||||
|
||||
ROM_REGION( 0x0400, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
|
||||
ROM_REGION( 0x0001, "pals", 0 )
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8A-2CN */
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8A-2CN
|
||||
ROM_END
|
||||
|
||||
ROM_START( gryzor1 )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "633g2.18a", 0x20000, 0x08000, CRC(92ca77bd) SHA1(3a56f51a617edff9f2a60df0141dff040881b82a) )
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "633g3.17a", 0x10000, 0x10000, CRC(bbd9e95e) SHA1(fd5de1bcc485de7b8fc2e321351c2e3ddd25d053) )
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "633g3.17a", 0x00000, 0x10000, CRC(bbd9e95e) SHA1(fd5de1bcc485de7b8fc2e321351c2e3ddd25d053) )
|
||||
ROM_LOAD( "633g2.18a", 0x10000, 0x10000, CRC(92ca77bd) SHA1(3a56f51a617edff9f2a60df0141dff040881b82a) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "633e01.12a", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "633e01.12a", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
ROM_LOAD16_BYTE( "633e04.7d", 0x00000, 0x40000, CRC(14ddc542) SHA1(c7d8592672a6e50c2fe6b0670001c340022f16f9) )
|
||||
ROM_LOAD16_BYTE( "633e05.7f", 0x00001, 0x40000, CRC(42185044) SHA1(a6e2598d766e6995c1a912e4a04987e6f4d547ff) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
ROM_LOAD16_BYTE( "633e06.16d", 0x00000, 0x40000, CRC(9cf6faae) SHA1(9ab79c06cb541ce6fdac322886b8a14a2f3f5cf7) )
|
||||
ROM_LOAD16_BYTE( "633e07.16f", 0x00001, 0x40000, CRC(f2d06638) SHA1(0fa0fbfc53ab5c31b9de22f90153d9af37ff22ce) )
|
||||
|
||||
ROM_REGION( 0x0400, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
|
||||
ROM_REGION( 0x0001, "pals", 0 )
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8A-2CN */
|
||||
ROM_LOAD( "007766.20d.bin", 0x0000, 0x0001, NO_DUMP ) // PAL16L8A-2CN
|
||||
ROM_END
|
||||
|
||||
/* Bootlegs */
|
||||
// Bootlegs
|
||||
|
||||
ROM_START( contrab )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "3.ic20", 0x20000, 0x08000, CRC(d045e1da) SHA1(ec781e98a6efb14861223250c6239b06ec98ed0b) ) /* == 633m03.18a */
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "1.ic19", 0x10000, 0x10000, CRC(b2f7bd9a) SHA1(6c29568419bc49f0be3995b0c34edd9038f6f8d9) ) /* == 633i03.18a */
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "1.ic19", 0x00000, 0x10000, CRC(b2f7bd9a) SHA1(6c29568419bc49f0be3995b0c34edd9038f6f8d9) ) // == 633i03.18a
|
||||
ROM_LOAD( "3.ic20", 0x10000, 0x10000, CRC(d045e1da) SHA1(ec781e98a6efb14861223250c6239b06ec98ed0b) ) // == 633m03.18a
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "3.ic63", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) ) /* == 633k01.12a */
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "3.ic63", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) ) // == 633k01.12a
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
/* bootleg versions use smaller gfx ROMs, but the data is the same */
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
// bootleg versions use smaller gfx ROMs, but the data is the same
|
||||
ROM_LOAD( "7.rom", 0x00000, 0x10000, CRC(57f467d2) SHA1(e30be315980f421143d1357174af678362836285) )
|
||||
ROM_LOAD( "10.rom", 0x10000, 0x10000, CRC(e6db9685) SHA1(4d5ccfe95b082fe9830e7a316f88fd6f02464900) )
|
||||
ROM_LOAD( "9.rom", 0x20000, 0x10000, CRC(875c61de) SHA1(e8dc42fef810a9f5471d96cb5297eb29296ba472) )
|
||||
@ -475,8 +737,8 @@ ROM_START( contrab )
|
||||
ROM_LOAD( "17.rom", 0x60000, 0x10000, CRC(ce4330b9) SHA1(0a2bd31baa0bc5e3745ee5ddac995557a551d58c) )
|
||||
ROM_LOAD( "18.rom", 0x70000, 0x10000, CRC(1571ce42) SHA1(04082ed78b5e7f20b99d6edfb6c363574abd6158) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
/* bootleg versions use smaller gfx ROMs, but the data is the same */
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
// bootleg versions use smaller gfx ROMs, but the data is the same
|
||||
ROM_LOAD( "4.rom", 0x00000, 0x10000, CRC(2cc7e52c) SHA1(7598a63346bf06dd34fd643fdff53fc3de6768a6) )
|
||||
ROM_LOAD( "5.rom", 0x10000, 0x10000, CRC(e01a5b9c) SHA1(58c99cf99f209c584da757320a2f107244056d4c) )
|
||||
ROM_LOAD( "6.rom", 0x20000, 0x10000, CRC(aeea6744) SHA1(220b42f707db99967bdcbd9ac66fcc83675a72aa) )
|
||||
@ -484,27 +746,26 @@ ROM_START( contrab )
|
||||
ROM_LOAD( "11.rom", 0x40000, 0x10000, CRC(bd9ba92c) SHA1(e7f65ed20cd7754cc476e8fab7e56105cedcdb98) )
|
||||
ROM_LOAD( "12.rom", 0x50000, 0x10000, CRC(d0be7ec2) SHA1(5aa829b8ffbe3f5f92ba672b1c24bfb7836ba1a3) )
|
||||
ROM_LOAD( "13.rom", 0x60000, 0x10000, CRC(2b513d12) SHA1(152ebd849751cc2e95513134ce773a6b2eeb320e) )
|
||||
/* This last section, 0x70000-0x7ffff is empty */
|
||||
// This last section, 0x70000-0x7ffff is empty
|
||||
|
||||
ROM_REGION( 0x0500, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "conprom.53", 0x0400, 0x0100, CRC(05a1da7e) SHA1(ec0bdfc9da05c99e6a283014769db6d641f1a0aa) ) /* unknown (only present in this bootleg) */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
ROM_LOAD( "conprom.53", 0x0400, 0x0100, CRC(05a1da7e) SHA1(ec0bdfc9da05c99e6a283014769db6d641f1a0aa) ) // unknown (only present in this bootleg)
|
||||
ROM_END
|
||||
|
||||
ROM_START( contrabj )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "2.2k", 0x20000, 0x08000, CRC(fedab568) SHA1(7fd4546335bdeef7f8326d4cbde7fa36d74e5cfc) ) /* == 633n03.18a */
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "1.2h", 0x10000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) ) /* == 633k02.17a */
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "1.2h", 0x00000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) ) // == 633k02.17a
|
||||
ROM_LOAD( "2.2k", 0x10000, 0x10000, CRC(fedab568) SHA1(7fd4546335bdeef7f8326d4cbde7fa36d74e5cfc) ) // == 633n03.18a
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "a3.4p", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) ) /* == 633k01.12a */
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "a3.4p", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) ) // == 633k01.12a
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
/* bootleg versions use smaller gfx ROMs, but the data is the same */
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
// bootleg versions use smaller gfx ROMs, but the data is the same
|
||||
ROM_LOAD( "a7.14f", 0x00000, 0x10000, CRC(57f467d2) SHA1(e30be315980f421143d1357174af678362836285) )
|
||||
ROM_LOAD( "a10.14l", 0x10000, 0x10000, CRC(e6db9685) SHA1(4d5ccfe95b082fe9830e7a316f88fd6f02464900) )
|
||||
ROM_LOAD( "a9.14k", 0x20000, 0x10000, CRC(875c61de) SHA1(e8dc42fef810a9f5471d96cb5297eb29296ba472) )
|
||||
@ -514,36 +775,35 @@ ROM_START( contrabj )
|
||||
ROM_LOAD( "a17.14v", 0x60000, 0x10000, CRC(ce4330b9) SHA1(0a2bd31baa0bc5e3745ee5ddac995557a551d58c) )
|
||||
ROM_LOAD( "a18.14w", 0x70000, 0x10000, CRC(1571ce42) SHA1(04082ed78b5e7f20b99d6edfb6c363574abd6158) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
/* bootleg versions use smaller gfx ROMs, but the data is the same */
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
// bootleg versions use smaller gfx ROMs, but the data is the same
|
||||
ROM_LOAD( "a4.14a", 0x00000, 0x10000, CRC(2cc7e52c) SHA1(7598a63346bf06dd34fd643fdff53fc3de6768a6) )
|
||||
ROM_LOAD( "a5.14c", 0x10000, 0x10000, CRC(e01a5b9c) SHA1(58c99cf99f209c584da757320a2f107244056d4c) )
|
||||
ROM_LOAD( "e6.14d", 0x20000, 0x10000, CRC(aeea6744) SHA1(220b42f707db99967bdcbd9ac66fcc83675a72aa) ) /* Yes, this one was labeled "E" and not "A" */
|
||||
ROM_LOAD( "e6.14d", 0x20000, 0x10000, CRC(aeea6744) SHA1(220b42f707db99967bdcbd9ac66fcc83675a72aa) ) // Yes, this one was labeled "E" and not "A"
|
||||
ROM_LOAD( "a14.14q", 0x30000, 0x10000, CRC(765afdc7) SHA1(b7f6871cb154ee7e42e683bce08b73b00e61b0bc) )
|
||||
ROM_LOAD( "a11.14m", 0x40000, 0x10000, CRC(bd9ba92c) SHA1(e7f65ed20cd7754cc476e8fab7e56105cedcdb98) )
|
||||
ROM_LOAD( "a12.14n", 0x50000, 0x10000, CRC(d0be7ec2) SHA1(5aa829b8ffbe3f5f92ba672b1c24bfb7836ba1a3) )
|
||||
ROM_LOAD( "a13.14p", 0x60000, 0x10000, CRC(2b513d12) SHA1(152ebd849751cc2e95513134ce773a6b2eeb320e) )
|
||||
/* This last section, 0x70000-0x7ffff is empty */
|
||||
// This last section, 0x70000-0x7ffff is empty
|
||||
|
||||
|
||||
ROM_REGION( 0x0400, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
ROM_END
|
||||
|
||||
ROM_START( contrabj1 )
|
||||
ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 96k for banked ROMs */
|
||||
ROM_LOAD( "2__,contrabtj2.2k", 0x20000, 0x08000, CRC(bdb9196d) SHA1(fad170e8fda94c9c9d7b82433daa30b80af12efc) ) /* == 633k03.18a */
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
ROM_LOAD( "1.2h", 0x10000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) ) /* == 633k02.17a */
|
||||
ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "1.2h", 0x00000, 0x10000, CRC(5d5f7438) SHA1(489fe56ca57ef4f6a7792fba07a9656009f3f285) ) // == 633k02.17a
|
||||
ROM_LOAD( "2__,contrabtj2.2k", 0x10000, 0x10000, CRC(bdb9196d) SHA1(fad170e8fda94c9c9d7b82433daa30b80af12efc) ) // == 633k03.18a
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for SOUND code */
|
||||
ROM_LOAD( "a3.4p", 0x08000, 0x08000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) ) /* == 633k01.12a */
|
||||
ROM_REGION( 0x8000, "audiocpu", 0 )
|
||||
ROM_LOAD( "a3.4p", 0x0000, 0x8000, CRC(d1549255) SHA1(d700c7de36746ba247e3a5d0410b7aa036aa4073) ) // == 633k01.12a
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
/* bootleg versions use smaller gfx ROMs, but the data is the same */
|
||||
ROM_REGION( 0x80000, "k007121_1", 0 )
|
||||
// bootleg versions use smaller gfx ROMs, but the data is the same
|
||||
ROM_LOAD( "a7.14f", 0x00000, 0x10000, CRC(57f467d2) SHA1(e30be315980f421143d1357174af678362836285) )
|
||||
ROM_LOAD( "a10.14l", 0x10000, 0x10000, CRC(e6db9685) SHA1(4d5ccfe95b082fe9830e7a316f88fd6f02464900) )
|
||||
ROM_LOAD( "a9.14k", 0x20000, 0x10000, CRC(875c61de) SHA1(e8dc42fef810a9f5471d96cb5297eb29296ba472) )
|
||||
@ -553,25 +813,28 @@ ROM_START( contrabj1 )
|
||||
ROM_LOAD( "a17.14v", 0x60000, 0x10000, CRC(ce4330b9) SHA1(0a2bd31baa0bc5e3745ee5ddac995557a551d58c) )
|
||||
ROM_LOAD( "a18.14w", 0x70000, 0x10000, CRC(1571ce42) SHA1(04082ed78b5e7f20b99d6edfb6c363574abd6158) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
/* bootleg versions use smaller gfx ROMs, but the data is the same */
|
||||
ROM_REGION( 0x80000, "k007121_2", 0 )
|
||||
// bootleg versions use smaller gfx ROMs, but the data is the same
|
||||
ROM_LOAD( "a4.14a", 0x00000, 0x10000, CRC(2cc7e52c) SHA1(7598a63346bf06dd34fd643fdff53fc3de6768a6) )
|
||||
ROM_LOAD( "a5.14c", 0x10000, 0x10000, CRC(e01a5b9c) SHA1(58c99cf99f209c584da757320a2f107244056d4c) )
|
||||
ROM_LOAD( "e6.14d", 0x20000, 0x10000, CRC(aeea6744) SHA1(220b42f707db99967bdcbd9ac66fcc83675a72aa) ) /* Yes, this one was labeled "E" and not "A" */
|
||||
ROM_LOAD( "e6.14d", 0x20000, 0x10000, CRC(aeea6744) SHA1(220b42f707db99967bdcbd9ac66fcc83675a72aa) ) // Yes, this one was labeled "E" and not "A"
|
||||
ROM_LOAD( "a14.14q", 0x30000, 0x10000, CRC(765afdc7) SHA1(b7f6871cb154ee7e42e683bce08b73b00e61b0bc) )
|
||||
ROM_LOAD( "a11.14m", 0x40000, 0x10000, CRC(bd9ba92c) SHA1(e7f65ed20cd7754cc476e8fab7e56105cedcdb98) )
|
||||
ROM_LOAD( "a12.14n", 0x50000, 0x10000, CRC(d0be7ec2) SHA1(5aa829b8ffbe3f5f92ba672b1c24bfb7836ba1a3) )
|
||||
ROM_LOAD( "a13.14p", 0x60000, 0x10000, CRC(2b513d12) SHA1(152ebd849751cc2e95513134ce773a6b2eeb320e) )
|
||||
/* This last section, 0x70000-0x7ffff is empty */
|
||||
// This last section, 0x70000-0x7ffff is empty
|
||||
|
||||
|
||||
ROM_REGION( 0x0400, "proms", 0 )
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) /* 007121 #0 sprite lookup table */
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #0 char lookup table */
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) /* 007121 #1 sprite lookup table */
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) /* 007121 #1 char lookup table */
|
||||
ROM_LOAD( "633e08.10g", 0x0000, 0x0100, CRC(9f0949fa) SHA1(7c8fefdcae4523d008a7d39062194c7a80aa3500) ) // 007121 #0 sprite lookup table
|
||||
ROM_LOAD( "633e09.12g", 0x0100, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #0 char lookup table
|
||||
ROM_LOAD( "633f10.18g", 0x0200, 0x0100, CRC(2b244d84) SHA1(c3bde7afb501bae58d07721c637dc06938c22150) ) // 007121 #1 sprite lookup table
|
||||
ROM_LOAD( "633f11.20g", 0x0300, 0x0100, CRC(14ca5e19) SHA1(eeee2f8b3d1e4acf47de1e74c4e507ff924591e7) ) // 007121 #1 char lookup table
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
GAME( 1987, contra, 0, contra, contra, contra_state, empty_init, ROT90, "Konami", "Contra (US / Asia, set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, contra1, contra, contra, contra, contra_state, empty_init, ROT90, "Konami", "Contra (US / Asia, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, contrae, contra, contra, contra, contra_state, empty_init, ROT90, "Konami", "Contra (US / Asia, set 3)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -17,13 +17,13 @@ Notes:
|
||||
The 0x6000-0x7fff ROM space doesn't seem to be used: instead the game writes
|
||||
to 6048 and reads from 6000. Silly copy protection?
|
||||
|
||||
- Increased "gfx3" to address 0x400 sprites, to avoid Ghosts'n Goblins
|
||||
from drawing a bad sprite. (18/08/2005 Pierpaolo Prazzoli)
|
||||
- Increased "sprites" to address 0x400 sprites, to avoid Ghosts'n Goblins
|
||||
drawing a bad sprite. (18/08/2005 Pierpaolo Prazzoli)
|
||||
|
||||
Notes by Jose Tejada (jotego)
|
||||
|
||||
There is no watchdog in GnG, as previously stated in the MAME driver.
|
||||
Instead, there is a DMA circuit that copies object data from the CPU RAM to a buffer
|
||||
Instead, there is a DMA circuit that copies object data from the CPU RAM to a buffer,
|
||||
this also slows down the CPU as it is halted during that time.
|
||||
The DMA is triggered when a certain memory location is addressed. That location was
|
||||
thought to be a watchdog before.
|
||||
@ -31,22 +31,225 @@ thought to be a watchdog before.
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/gng.h"
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/74259.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "sound/ymopn.h"
|
||||
#include "video/bufsprite.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
|
||||
void gng_state::gng_bankswitch_w(uint8_t data)
|
||||
namespace {
|
||||
|
||||
class gng_state : public driver_device
|
||||
{
|
||||
public:
|
||||
gng_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_fgvideoram(*this, "fgvideoram"),
|
||||
m_bgvideoram(*this, "bgvideoram"),
|
||||
m_mainbank(*this, "mainbank"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_ym(*this, "ym%u", 1),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
void gng(machine_config &config);
|
||||
void diamond(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
// memory pointers
|
||||
required_device<buffered_spriteram8_device> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_fgvideoram;
|
||||
required_shared_ptr<uint8_t> m_bgvideoram;
|
||||
required_memory_bank m_mainbank;
|
||||
|
||||
// video-related
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
tilemap_t *m_fg_tilemap = nullptr;
|
||||
uint8_t m_scrollx[2]{};
|
||||
uint8_t m_scrolly[2]{};
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device_array<ym2203_device, 2> m_ym;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
void bankswitch_w(uint8_t data);
|
||||
DECLARE_WRITE_LINE_MEMBER(ym_reset_w);
|
||||
uint8_t diamond_hack_r();
|
||||
void fgvideoram_w(offs_t offset, uint8_t data);
|
||||
void bgvideoram_w(offs_t offset, uint8_t data);
|
||||
void bgscrollx_w(offs_t offset, uint8_t data);
|
||||
void bgscrolly_w(offs_t offset, uint8_t data);
|
||||
DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void diamond_main_map(address_map &map);
|
||||
void gng_main_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
// video
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(gng_state::get_fg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_fgvideoram[tile_index + 0x400];
|
||||
tileinfo.set(0,
|
||||
m_fgvideoram[tile_index] + ((attr & 0xc0) << 2),
|
||||
attr & 0x0f,
|
||||
TILE_FLIPYX((attr & 0x30) >> 4));
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(gng_state::get_bg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_bgvideoram[tile_index + 0x400];
|
||||
tileinfo.set(1,
|
||||
m_bgvideoram[tile_index] + ((attr & 0xc0) << 2),
|
||||
attr & 0x07,
|
||||
TILE_FLIPYX((attr & 0x30) >> 4));
|
||||
tileinfo.group = (attr & 0x08) >> 3;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Start the video hardware emulation.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void gng_state::video_start()
|
||||
{
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(3);
|
||||
m_bg_tilemap->set_transmask(0, 0xff, 0x00); // split type 0 is totally transparent in front half
|
||||
m_bg_tilemap->set_transmask(1, 0x41, 0xbe); // split type 1 has pens 0 and 6 transparent in front half
|
||||
|
||||
m_bg_tilemap->set_scrolldx(128, 128);
|
||||
m_bg_tilemap->set_scrolldy( 6, 6);
|
||||
m_fg_tilemap->set_scrolldx(128, 128);
|
||||
m_fg_tilemap->set_scrolldy( 6, 6);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Memory handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void gng_state::fgvideoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_fgvideoram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
|
||||
}
|
||||
|
||||
void gng_state::bgvideoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_bgvideoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
|
||||
}
|
||||
|
||||
|
||||
void gng_state::bgscrollx_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scrollx[offset] = data;
|
||||
m_bg_tilemap->set_scrollx(0, m_scrollx[0] + 256 * m_scrollx[1]);
|
||||
}
|
||||
|
||||
void gng_state::bgscrolly_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scrolly[offset] = data;
|
||||
m_bg_tilemap->set_scrolly(0, m_scrolly[0] + 256 * m_scrolly[1]);
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(gng_state::flipscreen_w)
|
||||
{
|
||||
flip_screen_set(!state);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void gng_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
uint8_t *buffered_spriteram = m_spriteram->buffer();
|
||||
gfx_element *gfx = m_gfxdecode->gfx(2);
|
||||
|
||||
for (int offs = m_spriteram->bytes() - 4; offs >= 0; offs -= 4)
|
||||
{
|
||||
uint8_t attributes = buffered_spriteram[offs + 1];
|
||||
int sx = buffered_spriteram[offs + 3] - 0x100 * (attributes & 0x01);
|
||||
int sy = buffered_spriteram[offs + 2];
|
||||
int flipx = attributes & 0x04;
|
||||
int flipy = attributes & 0x08;
|
||||
|
||||
if (flip_screen())
|
||||
{
|
||||
sx = 240 - sx;
|
||||
sy = 240 - sy;
|
||||
flipx = !flipx;
|
||||
flipy = !flipy;
|
||||
}
|
||||
|
||||
gfx->transpen(bitmap,cliprect,
|
||||
buffered_spriteram[offs] + ((attributes << 2) & 0x300),
|
||||
(attributes >> 4) & 3,
|
||||
flipx, flipy,
|
||||
sx + 128, sy + 6, 15);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t gng_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// machine
|
||||
|
||||
void gng_state::bankswitch_w(uint8_t data)
|
||||
{
|
||||
if (data == 4)
|
||||
membank("bank1")->set_entry(4);
|
||||
m_mainbank->set_entry(4);
|
||||
else
|
||||
membank("bank1")->set_entry((data & 0x03));
|
||||
m_mainbank->set_entry(data & 0x03);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(gng_state::ym_reset_w)
|
||||
@ -63,12 +266,12 @@ uint8_t gng_state::diamond_hack_r()
|
||||
return 0;
|
||||
}
|
||||
|
||||
void gng_state::gng_map(address_map &map)
|
||||
void gng_state::gng_main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1dff).ram();
|
||||
map(0x1e00, 0x1fff).ram().share("spriteram");
|
||||
map(0x2000, 0x27ff).ram().w(FUNC(gng_state::gng_fgvideoram_w)).share("fgvideoram");
|
||||
map(0x2800, 0x2fff).ram().w(FUNC(gng_state::gng_bgvideoram_w)).share("bgvideoram");
|
||||
map(0x2000, 0x27ff).ram().w(FUNC(gng_state::fgvideoram_w)).share(m_fgvideoram);
|
||||
map(0x2800, 0x2fff).ram().w(FUNC(gng_state::bgvideoram_w)).share(m_bgvideoram);
|
||||
map(0x3000, 0x3000).portr("SYSTEM");
|
||||
map(0x3001, 0x3001).portr("P1");
|
||||
map(0x3002, 0x3002).portr("P2");
|
||||
@ -77,21 +280,21 @@ void gng_state::gng_map(address_map &map)
|
||||
map(0x3800, 0x38ff).w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext");
|
||||
map(0x3900, 0x39ff).w(m_palette, FUNC(palette_device::write8)).share("palette");
|
||||
map(0x3a00, 0x3a00).w("soundlatch", FUNC(generic_latch_8_device::write));
|
||||
map(0x3b08, 0x3b09).w(FUNC(gng_state::gng_bgscrollx_w));
|
||||
map(0x3b0a, 0x3b0b).w(FUNC(gng_state::gng_bgscrolly_w));
|
||||
map(0x3b08, 0x3b09).w(FUNC(gng_state::bgscrollx_w));
|
||||
map(0x3b0a, 0x3b0b).w(FUNC(gng_state::bgscrolly_w));
|
||||
// 0x3c00 is the DMA trigger. Not emulated.
|
||||
map(0x3d00, 0x3d07).w("mainlatch", FUNC(ls259_device::write_d0));
|
||||
map(0x3e00, 0x3e00).w(FUNC(gng_state::gng_bankswitch_w));
|
||||
map(0x4000, 0x5fff).bankr("bank1");
|
||||
map(0x3e00, 0x3e00).w(FUNC(gng_state::bankswitch_w));
|
||||
map(0x4000, 0x5fff).bankr(m_mainbank);
|
||||
map(0x6000, 0xffff).rom();
|
||||
}
|
||||
|
||||
void gng_state::diamond_map(address_map &map)
|
||||
void gng_state::diamond_main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1dff).ram();
|
||||
map(0x1e00, 0x1fff).ram().share("spriteram");
|
||||
map(0x2000, 0x27ff).ram().w(FUNC(gng_state::gng_fgvideoram_w)).share("fgvideoram");
|
||||
map(0x2800, 0x2fff).ram().w(FUNC(gng_state::gng_bgvideoram_w)).share("bgvideoram");
|
||||
map(0x2000, 0x27ff).ram().w(FUNC(gng_state::fgvideoram_w)).share(m_fgvideoram);
|
||||
map(0x2800, 0x2fff).ram().w(FUNC(gng_state::bgvideoram_w)).share(m_bgvideoram);
|
||||
map(0x3000, 0x33ff).noprw(); // faulty POST?
|
||||
map(0x3000, 0x3000).portr("SYSTEM");
|
||||
map(0x3001, 0x3001).portr("P1");
|
||||
@ -101,13 +304,13 @@ void gng_state::diamond_map(address_map &map)
|
||||
map(0x3800, 0x38ff).w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext");
|
||||
map(0x3900, 0x39ff).w(m_palette, FUNC(palette_device::write8)).share("palette");
|
||||
map(0x3a00, 0x3a00).w("soundlatch", FUNC(generic_latch_8_device::write));
|
||||
map(0x3b08, 0x3b09).w(FUNC(gng_state::gng_bgscrollx_w));
|
||||
map(0x3b0a, 0x3b0b).w(FUNC(gng_state::gng_bgscrolly_w));
|
||||
map(0x3c00, 0x3c00).noprw(); /* watchdog? */
|
||||
map(0x3b08, 0x3b09).w(FUNC(gng_state::bgscrollx_w));
|
||||
map(0x3b0a, 0x3b0b).w(FUNC(gng_state::bgscrolly_w));
|
||||
map(0x3c00, 0x3c00).noprw(); // watchdog?
|
||||
map(0x3d00, 0x3d00).nopw(); // ? (writes $01 and $0F)
|
||||
map(0x3d01, 0x3d01).nopw(); // ?
|
||||
map(0x3e00, 0x3e00).w(FUNC(gng_state::gng_bankswitch_w));
|
||||
map(0x4000, 0x5fff).bankr("bank1");
|
||||
map(0x3e00, 0x3e00).w(FUNC(gng_state::bankswitch_w));
|
||||
map(0x4000, 0x5fff).bankr(m_mainbank);
|
||||
map(0x6000, 0xffff).rom();
|
||||
map(0x6000, 0x6000).r(FUNC(gng_state::diamond_hack_r));
|
||||
map(0x6048, 0x6048).nopw(); // ?
|
||||
@ -204,10 +407,10 @@ static INPUT_PORTS_START( gng )
|
||||
PORT_DIPSETTING( 0x60, DEF_STR( Normal ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Difficult ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Very_Difficult ) )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:1" ) /* Listed as "Unused" */
|
||||
PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:1" ) // Listed as "Unused"
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* identical to gng, but the "unknown" dip switch is Invulnerability */
|
||||
// identical to gng, but the "unknown" dip switch is Invulnerability
|
||||
static INPUT_PORTS_START( makaimur )
|
||||
PORT_INCLUDE( gng )
|
||||
|
||||
@ -342,9 +545,9 @@ static const gfx_layout spritelayout =
|
||||
|
||||
|
||||
static GFXDECODE_START( gfx_gng )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x80, 16 ) /* colors 0x80-0xbf */
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x00, 8 ) /* colors 0x00-0x3f */
|
||||
GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 0x40, 4 ) /* colors 0x40-0x7f */
|
||||
GFXDECODE_ENTRY( "chars", 0, charlayout, 0x80, 16 ) // colors 0x80-0xbf
|
||||
GFXDECODE_ENTRY( "tiles", 0, tilelayout, 0x00, 8 ) // colors 0x00-0x3f
|
||||
GFXDECODE_ENTRY( "sprites", 0, spritelayout, 0x40, 4 ) // colors 0x40-0x7f
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -353,8 +556,8 @@ GFXDECODE_END
|
||||
void gng_state::machine_start()
|
||||
{
|
||||
uint8_t *rombase = memregion("maincpu")->base();
|
||||
membank("bank1")->configure_entries(0, 4, &rombase[0x10000], 0x2000);
|
||||
membank("bank1")->configure_entry(4, &rombase[0x4000]);
|
||||
m_mainbank->configure_entries(0, 4, &rombase[0x10000], 0x2000);
|
||||
m_mainbank->configure_entry(4, &rombase[0x4000]);
|
||||
|
||||
save_item(NAME(m_scrollx));
|
||||
save_item(NAME(m_scrolly));
|
||||
@ -368,34 +571,32 @@ void gng_state::machine_reset()
|
||||
m_scrolly[1] = 0;
|
||||
|
||||
{
|
||||
int i;
|
||||
|
||||
/* TODO: PCB reference clearly shows that the POST has random/filled data on the paletteram.
|
||||
For now let's fill everything with white colors until we have better info about it */
|
||||
for(i=0;i<0x100;i+=4)
|
||||
for(int i = 0 ; i < 0x100; i += 4)
|
||||
{
|
||||
m_palette->basemem().write8(i, 0x00); m_palette->extmem().write8(i, 0x00);
|
||||
m_palette->basemem().write8(i+1, 0x55); m_palette->extmem().write8(i+1, 0x55);
|
||||
m_palette->basemem().write8(i+2, 0xaa); m_palette->extmem().write8(i+2, 0xaa);
|
||||
m_palette->basemem().write8(i+3, 0xff); m_palette->extmem().write8(i+3, 0xff);
|
||||
m_palette->set_pen_color(i+0,0x00,0x00,0x00);
|
||||
m_palette->set_pen_color(i+1,0x55,0x55,0x55);
|
||||
m_palette->set_pen_color(i+2,0xaa,0xaa,0xaa);
|
||||
m_palette->set_pen_color(i+3,0xff,0xff,0xff);
|
||||
m_palette->basemem().write8(i + 1, 0x55); m_palette->extmem().write8(i + 1, 0x55);
|
||||
m_palette->basemem().write8(i + 2, 0xaa); m_palette->extmem().write8(i + 2, 0xaa);
|
||||
m_palette->basemem().write8(i + 3, 0xff); m_palette->extmem().write8(i + 3, 0xff);
|
||||
m_palette->set_pen_color(i + 0, 0x00, 0x00, 0x00);
|
||||
m_palette->set_pen_color(i + 1, 0x55, 0x55, 0x55);
|
||||
m_palette->set_pen_color(i + 2, 0xaa, 0xaa, 0xaa);
|
||||
m_palette->set_pen_color(i + 3, 0xff, 0xff, 0xff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void gng_state::gng(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MC6809(config, m_maincpu, XTAL(12'000'000)/2); /* verified on pcb */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gng_state::gng_map);
|
||||
// basic machine hardware
|
||||
MC6809(config, m_maincpu, XTAL(12'000'000) / 2); // verified on PCB
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gng_state::gng_main_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(gng_state::irq0_line_hold));
|
||||
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", XTAL(12'000'000)/4)); /* verified on pcb */
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", XTAL(12'000'000) / 4)); // verified on PCB
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &gng_state::sound_map);
|
||||
audiocpu.set_periodic_int(FUNC(gng_state::irq0_line_hold), attotime::from_hz(4*60));
|
||||
audiocpu.set_periodic_int(FUNC(gng_state::irq0_line_hold), attotime::from_hz(4 * 60));
|
||||
|
||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 9B on A board
|
||||
mainlatch.q_out_cb<0>().set(FUNC(gng_state::flipscreen_w));
|
||||
@ -404,12 +605,12 @@ void gng_state::gng(machine_config &config)
|
||||
mainlatch.q_out_cb<2>().set([this] (int state) { machine().bookkeeping().coin_counter_w(0, state); });
|
||||
mainlatch.q_out_cb<3>().set([this] (int state) { machine().bookkeeping().coin_counter_w(1, state); });
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
BUFFERED_SPRITERAM8(config, m_spriteram);
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(12'000'000)/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||
screen.set_screen_update(FUNC(gng_state::screen_update_gng));
|
||||
screen.set_raw(XTAL(12'000'000) / 2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||
screen.set_screen_update(FUNC(gng_state::screen_update));
|
||||
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
@ -417,18 +618,18 @@ void gng_state::gng(machine_config &config)
|
||||
|
||||
PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 256);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
YM2203(config, m_ym[0], XTAL(12'000'000)/8); /* verified on pcb */
|
||||
YM2203(config, m_ym[0], XTAL(12'000'000) / 8); // verified on PCB
|
||||
m_ym[0]->add_route(0, "mono", 0.40);
|
||||
m_ym[0]->add_route(1, "mono", 0.40);
|
||||
m_ym[0]->add_route(2, "mono", 0.40);
|
||||
m_ym[0]->add_route(3, "mono", 0.20);
|
||||
|
||||
YM2203(config, m_ym[1], XTAL(12'000'000)/8); /* verified on pcb */
|
||||
YM2203(config, m_ym[1], XTAL(12'000'000) / 8); // verified on PCB
|
||||
m_ym[1]->add_route(0, "mono", 0.40);
|
||||
m_ym[1]->add_route(1, "mono", 0.40);
|
||||
m_ym[1]->add_route(2, "mono", 0.40);
|
||||
@ -438,7 +639,7 @@ void gng_state::gng(machine_config &config)
|
||||
void gng_state::diamond(machine_config &config)
|
||||
{
|
||||
gng(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gng_state::diamond_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gng_state::diamond_main_map);
|
||||
|
||||
config.device_remove("mainlatch");
|
||||
}
|
||||
@ -453,35 +654,35 @@ void gng_state::diamond(machine_config &config)
|
||||
|
||||
ROM_START( gng )
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD( "gg4.bin", 0x04000, 0x4000, CRC(66606beb) SHA1(4c640f49be93c7d2b12d4d4c56c56e74099b6c2f) ) /* 4000-5fff is page 4 */
|
||||
ROM_LOAD( "gg4.bin", 0x04000, 0x4000, CRC(66606beb) SHA1(4c640f49be93c7d2b12d4d4c56c56e74099b6c2f) ) // 4000-5fff is page 4
|
||||
ROM_LOAD( "gg3.bin", 0x08000, 0x8000, CRC(9e01c65e) SHA1(a87880d87c64a6d61313c3bc69c8d49511e0f9c3) )
|
||||
ROM_LOAD( "gg5.bin", 0x10000, 0x8000, CRC(d6397b2b) SHA1(39aa3cb8c229e60ac0ac410ff61e0c09dba78501) ) /* page 0, 1, 2, 3 */
|
||||
ROM_LOAD( "gg5.bin", 0x10000, 0x8000, CRC(d6397b2b) SHA1(39aa3cb8c229e60ac0ac410ff61e0c09dba78501) ) // page 0, 1, 2, 3
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
|
||||
ROM_REGION( 0x0100, "plds", 0 )
|
||||
ROM_LOAD( "gg-pal10l8.bin", 0x0000, 0x002c, CRC(87f1b7e0) SHA1(b719c3be7bd4a02660bb0887f752e9769cbd37d2) )
|
||||
@ -498,28 +699,28 @@ ROM_START( gnga )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
ROM_END
|
||||
|
||||
ROM_START( gngbl )
|
||||
@ -533,24 +734,24 @@ ROM_START( gngbl )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "2.8529.13h", 0x0000, 0x8000, CRC(55cfb196) SHA1(df9cdbb24c26bca226d7274225725d62ea854c7a) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "1.84490.11e", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "1.84490.11e", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "13.84490.3e", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "12.84490.1e", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "11.84490.3c", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "10.84490.1c", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "9.84490.3b", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "8.84490.1b", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "13.84490.3e", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "12.84490.1e", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "11.84490.3c", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "10.84490.1c", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "9.84490.3b", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "8.84490.1b", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "19.84472.4n", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "18.84472.3n", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "17.84472.1n", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "16.84472.4l", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "15.84490.3l", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "14.84490.1l", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "19.84472.4n", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "18.84472.3n", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "17.84472.1n", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "16.84472.4l", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "15.84490.3l", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "14.84490.1l", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
ROM_END
|
||||
|
||||
ROM_START( gngprot )
|
||||
@ -564,24 +765,24 @@ ROM_START( gngprot )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg14h.bin", 0x0000, 0x8000, CRC(55cfb196) SHA1(df9cdbb24c26bca226d7274225725d62ea854c7a) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg11e.bin", 0x00000, 0x4000, CRC(ccea9365) SHA1(bb567529fa376afc0a5afd331dcecef4f61cc8a3) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg11e.bin", 0x00000, 0x4000, CRC(ccea9365) SHA1(bb567529fa376afc0a5afd331dcecef4f61cc8a3) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg3e.bin", 0x00000, 0x4000, CRC(68db22c8) SHA1(ada859bfa60d9563a8a86b1b6526f626b932981c) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg1e.bin", 0x04000, 0x4000, CRC(dad8dd2f) SHA1(30a6dd2f6b26acaab0a003f5099a2fcb46644d45) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg3c.bin", 0x08000, 0x4000, CRC(7a158323) SHA1(183f33f214b4c04e9130cbe2c24e08b5303bb2de) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg1c.bin", 0x0c000, 0x4000, CRC(7314d095) SHA1(1288eaf0d82ac65a1bb94e68114b4b2f84910901) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg3b.bin", 0x10000, 0x4000, CRC(03a96d9b) SHA1(5d74e156b0cd1b54d7bd61e1664834f768d5b9f8) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg1b.bin", 0x14000, 0x4000, CRC(7b9899bc) SHA1(be9b7b18542f38c8fb8b075760995acecace79ad) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg3e.bin", 0x00000, 0x4000, CRC(68db22c8) SHA1(ada859bfa60d9563a8a86b1b6526f626b932981c) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg1e.bin", 0x04000, 0x4000, CRC(dad8dd2f) SHA1(30a6dd2f6b26acaab0a003f5099a2fcb46644d45) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg3c.bin", 0x08000, 0x4000, CRC(7a158323) SHA1(183f33f214b4c04e9130cbe2c24e08b5303bb2de) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg1c.bin", 0x0c000, 0x4000, CRC(7314d095) SHA1(1288eaf0d82ac65a1bb94e68114b4b2f84910901) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg3b.bin", 0x10000, 0x4000, CRC(03a96d9b) SHA1(5d74e156b0cd1b54d7bd61e1664834f768d5b9f8) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg1b.bin", 0x14000, 0x4000, CRC(7b9899bc) SHA1(be9b7b18542f38c8fb8b075760995acecace79ad) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg4l.bin", 0x00000, 0x4000, CRC(49cf81b4) SHA1(b87aba71446884f9926ced28716876ad701b183f) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg3l.bin", 0x04000, 0x4000, CRC(e61437b1) SHA1(7043ac80ee40057839bf7ee7af62961d9ff3d50b) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg1l.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gg4n.bin", 0x10000, 0x4000, CRC(d5aff5a7) SHA1(b75b271c7d38ed9689bff7a3bc9a67a0aae9ed8b) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg3n.bin", 0x14000, 0x4000, CRC(d589caeb) SHA1(f787557dc083f765aec3d64896ef6cdf5e8d54cc) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg1n.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg4l.bin", 0x00000, 0x4000, CRC(49cf81b4) SHA1(b87aba71446884f9926ced28716876ad701b183f) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg3l.bin", 0x04000, 0x4000, CRC(e61437b1) SHA1(7043ac80ee40057839bf7ee7af62961d9ff3d50b) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg1l.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gg4n.bin", 0x10000, 0x4000, CRC(d5aff5a7) SHA1(b75b271c7d38ed9689bff7a3bc9a67a0aae9ed8b) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg3n.bin", 0x14000, 0x4000, CRC(d589caeb) SHA1(f787557dc083f765aec3d64896ef6cdf5e8d54cc) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg1n.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -594,28 +795,28 @@ ROM_START( gngblita )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
|
||||
ROM_REGION( 0x0100, "plds", 0 )
|
||||
ROM_LOAD( "gg-pal10l8.bin", 0x0000, 0x002c, CRC(87f1b7e0) SHA1(b719c3be7bd4a02660bb0887f752e9769cbd37d2) )
|
||||
@ -630,28 +831,28 @@ ROM_START( gngc )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -664,166 +865,167 @@ ROM_END
|
||||
|
||||
ROM_START( gngt )
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD( "mmt04d.10n", 0x04000, 0x4000, CRC(652406f6) SHA1(3b2bafd31f670ea26c568c48f3bd00597e5a2ed6) ) /* 4000-5fff is page 4 */
|
||||
ROM_LOAD( "mmt04d.10n", 0x04000, 0x4000, CRC(652406f6) SHA1(3b2bafd31f670ea26c568c48f3bd00597e5a2ed6) ) // 4000-5fff is page 4
|
||||
ROM_LOAD( "mmt03d.8n", 0x08000, 0x8000, CRC(fb040b42) SHA1(c1c58943bd20c6a2520b39fae90067769ec97ed6) )
|
||||
ROM_LOAD( "mmt05d.13n", 0x10000, 0x8000, CRC(8f7cff61) SHA1(1875f254a7737e1fbf6770ee4a322d675d043a44) ) /* page 0, 1, 2, 3 */
|
||||
ROM_LOAD( "mmt05d.13n", 0x10000, 0x8000, CRC(8f7cff61) SHA1(1875f254a7737e1fbf6770ee4a322d675d043a44) ) // page 0, 1, 2, 3
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "mm02.14h", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "mm01.11e", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "mm01.11e", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "mm11.3e", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "mm10.1e", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "mm09.3c", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "mm08.1c", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "mm07.3b", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "mm06.1b", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "mm11.3e", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "mm10.1e", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "mm09.3c", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "mm08.1c", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "mm07.3b", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "mm06.1b", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "mm17.4n", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "mm16.3n", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "mm15.1n", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "mm14.4l", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "mm13.3l", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "mm12.1l", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "mm17.4n", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "mm16.3n", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "mm15.1n", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "mm14.4l", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "mm13.3l", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "mm12.1l", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "m-02.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* 63s141, video timing (not used) */
|
||||
ROM_LOAD( "m-01.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* 63s141, priority (not used) */
|
||||
ROM_LOAD( "m-02.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // 63s141, video timing (not used)
|
||||
ROM_LOAD( "m-01.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // 63s141, priority (not used)
|
||||
ROM_END
|
||||
|
||||
ROM_START( makaimur )
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD( "10n.rom", 0x04000, 0x4000, CRC(81e567e0) SHA1(2a917e562686e782ea7d034a54e9728695a19258) ) /* 4000-5fff is page 4 */
|
||||
ROM_LOAD( "10n.rom", 0x04000, 0x4000, CRC(81e567e0) SHA1(2a917e562686e782ea7d034a54e9728695a19258) ) // 4000-5fff is page 4
|
||||
ROM_LOAD( "8n.rom", 0x08000, 0x8000, CRC(9612d66c) SHA1(64c458d6d87b9c339488c9f0c89da2c796fcb759) )
|
||||
ROM_LOAD( "12n.rom", 0x10000, 0x8000, CRC(65a6a97b) SHA1(79de931ae183d8044cb6d9024b475196c679c86c) ) /* page 0, 1, 2, 3 */
|
||||
ROM_LOAD( "12n.rom", 0x10000, 0x8000, CRC(65a6a97b) SHA1(79de931ae183d8044cb6d9024b475196c679c86c) ) // page 0, 1, 2, 3
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
ROM_END
|
||||
|
||||
ROM_START( makaimurc )
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD( "mj04c.bin", 0x04000, 0x4000, CRC(1294edb1) SHA1(35d3b3ce4ee25d3cfa27097de0c9a2ab5e4892aa) ) /* 4000-5fff is page 4 */
|
||||
ROM_LOAD( "mj04c.bin", 0x04000, 0x4000, CRC(1294edb1) SHA1(35d3b3ce4ee25d3cfa27097de0c9a2ab5e4892aa) ) // 4000-5fff is page 4
|
||||
ROM_LOAD( "mj03c.bin", 0x08000, 0x8000, CRC(d343332d) SHA1(3edf47ff2bd49b4451b737b6d3eb54256b489c81) )
|
||||
ROM_LOAD( "mj05c.bin", 0x10000, 0x8000, CRC(535342c2) SHA1(5f05a4965476f2db6fddec557d93d12ec1f9750c) ) /* page 0, 1, 2, 3 */
|
||||
ROM_LOAD( "mj05c.bin", 0x10000, 0x8000, CRC(535342c2) SHA1(5f05a4965476f2db6fddec557d93d12ec1f9750c) ) // page 0, 1, 2, 3
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
ROM_END
|
||||
|
||||
ROM_START( makaimurg )
|
||||
ROM_REGION( 0x18000, "maincpu", 0 )
|
||||
ROM_LOAD( "mj04g.bin", 0x04000, 0x4000, CRC(757c94d3) SHA1(07f7cf788810a1425016e016ce3579adb3253ac7) ) /* 4000-5fff is page 4 */
|
||||
ROM_LOAD( "mj04g.bin", 0x04000, 0x4000, CRC(757c94d3) SHA1(07f7cf788810a1425016e016ce3579adb3253ac7) ) // 4000-5fff is page 4
|
||||
ROM_LOAD( "mj03g.bin", 0x08000, 0x8000, CRC(61b043bb) SHA1(23a0a17d0abc4b084ffeba90266ef455361771cc) )
|
||||
ROM_LOAD( "mj05g.bin", 0x10000, 0x8000, CRC(f2fdccf5) SHA1(7694a981a6196d77fd2279fc34042b4cfb40c054) ) /* page 0, 1, 2, 3 */
|
||||
ROM_LOAD( "mj05g.bin", 0x10000, 0x8000, CRC(f2fdccf5) SHA1(7694a981a6196d77fd2279fc34042b4cfb40c054) ) // page 0, 1, 2, 3
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */
|
||||
ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) // sprites 1 Plane 1-2
|
||||
ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) // sprites 2 Plane 1-2
|
||||
ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) // sprites 0 Plane 3-4
|
||||
ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) // sprites 1 Plane 3-4
|
||||
ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) // sprites 2 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
ROM_END
|
||||
|
||||
ROM_START( diamond )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD( "d3o", 0x04000, 0x4000, CRC(ba4bf9f1) SHA1(460e01f5ba9cd0c76d1a2ea1e66e9ad49ef1e13b) ) /* 4000-5fff is page 4 */
|
||||
ROM_LOAD( "d3o", 0x04000, 0x4000, CRC(ba4bf9f1) SHA1(460e01f5ba9cd0c76d1a2ea1e66e9ad49ef1e13b) ) // 4000-5fff is page 4
|
||||
ROM_LOAD( "d3", 0x08000, 0x8000, CRC(f436d6fa) SHA1(18287ac51e717ea2ba9b307a738f76735120f21b) )
|
||||
ROM_LOAD( "d5o", 0x10000, 0x8000, CRC(ae58bd3a) SHA1(674611c7107cae53150fc249ffc616df891698fe) ) /* page 0, 1, 2, 3 */
|
||||
ROM_LOAD( "d5", 0x18000, 0x8000, CRC(453f3f9e) SHA1(b4dcf2eb0e6d4eca8ccde6e1a60f5e002e49a57b) ) /* is this supposed to be used? */
|
||||
ROM_LOAD( "d5o", 0x10000, 0x8000, CRC(ae58bd3a) SHA1(674611c7107cae53150fc249ffc616df891698fe) ) // page 0, 1, 2, 3
|
||||
ROM_LOAD( "d5", 0x18000, 0x8000, CRC(453f3f9e) SHA1(b4dcf2eb0e6d4eca8ccde6e1a60f5e002e49a57b) ) // is this supposed to be used?
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "d2", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "d1", 0x00000, 0x4000, CRC(3a24e504) SHA1(56bc38413b8a0dc2829e9c8f7bcfabafe26fd257) ) /* characters */
|
||||
ROM_REGION( 0x04000, "chars", 0 )
|
||||
ROM_LOAD( "d1", 0x00000, 0x4000, CRC(3a24e504) SHA1(56bc38413b8a0dc2829e9c8f7bcfabafe26fd257) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx2", 0 )
|
||||
ROM_LOAD( "d11", 0x00000, 0x4000, CRC(754357d7) SHA1(eb6e07a5f2d02687306711845001205bf0efa61b) ) /* tiles 0-1 Plane 1*/
|
||||
ROM_LOAD( "d10", 0x04000, 0x4000, CRC(7531edcd) SHA1(dc3eabf7e7503f0588f65620d26c1bc5eebde211) ) /* tiles 2-3 Plane 1*/
|
||||
ROM_LOAD( "d9", 0x08000, 0x4000, CRC(22eeca08) SHA1(6454b6c0a7a0991744386b79d4988a2517ad0636) ) /* tiles 0-1 Plane 2*/
|
||||
ROM_LOAD( "d8", 0x0c000, 0x4000, CRC(6b61be60) SHA1(a92ff6e922da523caec1919f53bea48dab4ca564) ) /* tiles 2-3 Plane 2*/
|
||||
ROM_LOAD( "d7", 0x10000, 0x4000, CRC(fd595274) SHA1(8d22f89a7251ecc8b56ee3f8cfaab2fd5a716b3f) ) /* tiles 0-1 Plane 3*/
|
||||
ROM_LOAD( "d6", 0x14000, 0x4000, CRC(7f51dcd2) SHA1(ff4a68a7a6a5caa558898b03ba4a4dc3ab43ce30) ) /* tiles 2-3 Plane 3*/
|
||||
ROM_REGION( 0x18000, "tiles", 0 )
|
||||
ROM_LOAD( "d11", 0x00000, 0x4000, CRC(754357d7) SHA1(eb6e07a5f2d02687306711845001205bf0efa61b) ) // 0-1 Plane 1
|
||||
ROM_LOAD( "d10", 0x04000, 0x4000, CRC(7531edcd) SHA1(dc3eabf7e7503f0588f65620d26c1bc5eebde211) ) // 2-3 Plane 1
|
||||
ROM_LOAD( "d9", 0x08000, 0x4000, CRC(22eeca08) SHA1(6454b6c0a7a0991744386b79d4988a2517ad0636) ) // 0-1 Plane 2
|
||||
ROM_LOAD( "d8", 0x0c000, 0x4000, CRC(6b61be60) SHA1(a92ff6e922da523caec1919f53bea48dab4ca564) ) // 2-3 Plane 2
|
||||
ROM_LOAD( "d7", 0x10000, 0x4000, CRC(fd595274) SHA1(8d22f89a7251ecc8b56ee3f8cfaab2fd5a716b3f) ) // 0-1 Plane 3
|
||||
ROM_LOAD( "d6", 0x14000, 0x4000, CRC(7f51dcd2) SHA1(ff4a68a7a6a5caa558898b03ba4a4dc3ab43ce30) ) // 2-3 Plane 3
|
||||
|
||||
ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "d17", 0x00000, 0x4000, CRC(8164b005) SHA1(d03bf62734b03c90a8393a23f8ce0a3769c43bf7) ) /* sprites 0 Plane 1-2 */
|
||||
ROM_LOAD( "d14", 0x10000, 0x4000, CRC(6f132163) SHA1(cd1ebf9671bcce58896dadbf20f036eaadbe8bd5) ) /* sprites 0 Plane 3-4 */
|
||||
ROM_REGION( 0x20000, "sprites", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "d17", 0x00000, 0x4000, CRC(8164b005) SHA1(d03bf62734b03c90a8393a23f8ce0a3769c43bf7) ) // sprites 0 Plane 1-2
|
||||
ROM_LOAD( "d14", 0x10000, 0x4000, CRC(6f132163) SHA1(cd1ebf9671bcce58896dadbf20f036eaadbe8bd5) ) // sprites 0 Plane 3-4
|
||||
|
||||
ROM_REGION( 0x0200, "proms", 0 )
|
||||
ROM_LOAD( "prom1", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
|
||||
ROM_LOAD( "prom2", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */
|
||||
ROM_LOAD( "prom1", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) // video timing (not used)
|
||||
ROM_LOAD( "prom2", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) // priority (not used)
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
GAME( 1985, gng, 0, gng, gng, gng_state, empty_init, ROT0, "Capcom", "Ghosts'n Goblins (World? set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "sound/msm5205.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/ymopn.h"
|
||||
#include "video/bufsprite.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
@ -34,9 +35,7 @@ public:
|
||||
m_bg_data(*this, "bg_data"),
|
||||
m_fg_data(*this, "fg_data"),
|
||||
m_tx_data(*this, "tx_data"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_scrollram(*this, "scrollram"),
|
||||
m_buffered_spriteram(*this, "buffered_spriteram", 0x800, ENDIANNESS_BIG),
|
||||
m_soundbank(*this, "soundbank"),
|
||||
m_in(*this, "IN%u", 1U),
|
||||
m_dsw(*this, "DSW%u", 1U),
|
||||
@ -44,7 +43,8 @@ public:
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_msm(*this, "msm"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette")
|
||||
m_palette(*this, "palette"),
|
||||
m_buffered_spriteram(*this, "buffered_spriteram")
|
||||
{ }
|
||||
|
||||
void goal92(machine_config &config);
|
||||
@ -59,9 +59,7 @@ private:
|
||||
required_shared_ptr<uint16_t> m_bg_data;
|
||||
required_shared_ptr<uint16_t> m_fg_data;
|
||||
required_shared_ptr<uint16_t> m_tx_data;
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
required_shared_ptr<uint16_t> m_scrollram;
|
||||
memory_share_creator<uint16_t> m_buffered_spriteram;
|
||||
required_memory_bank m_soundbank;
|
||||
|
||||
// video-related
|
||||
@ -82,6 +80,7 @@ private:
|
||||
required_device<msm5205_device> m_msm;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<buffered_spriteram16_device> m_buffered_spriteram;
|
||||
|
||||
uint16_t inputs_r(offs_t offset, uint16_t mem_mask = ~0);
|
||||
void adpcm_data_w(uint8_t data);
|
||||
@ -95,7 +94,6 @@ private:
|
||||
TILE_GET_INFO_MEMBER(get_back_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fore_tile_info);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
||||
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
|
||||
@ -185,11 +183,13 @@ TILE_GET_INFO_MEMBER(goal92_state::get_fore_tile_info)
|
||||
|
||||
void goal92_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri)
|
||||
{
|
||||
uint16_t *buffered_spriteram = m_buffered_spriteram->buffer();
|
||||
|
||||
for (int offs = 3; offs <= 0x400 - 5; offs += 4)
|
||||
{
|
||||
uint16_t data = m_buffered_spriteram[offs + 2];
|
||||
uint16_t data = buffered_spriteram[offs + 2];
|
||||
|
||||
int y = m_buffered_spriteram[offs + 0];
|
||||
int y = buffered_spriteram[offs + 0];
|
||||
|
||||
if (y & 0x8000)
|
||||
break;
|
||||
@ -197,12 +197,12 @@ void goal92_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
|
||||
if (!(data & 0x8000))
|
||||
continue;
|
||||
|
||||
int sprite = m_buffered_spriteram[offs + 1];
|
||||
int sprite = buffered_spriteram[offs + 1];
|
||||
|
||||
if ((sprite >> 14) != pri)
|
||||
continue;
|
||||
|
||||
int x = m_buffered_spriteram[offs + 3];
|
||||
int x = buffered_spriteram[offs + 3];
|
||||
|
||||
sprite &= 0x1fff;
|
||||
|
||||
@ -270,13 +270,6 @@ uint32_t goal92_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(goal92_state::screen_vblank)
|
||||
{
|
||||
// rising edge
|
||||
if (state)
|
||||
memcpy(m_buffered_spriteram, m_spriteram, 0x400 * 2);
|
||||
}
|
||||
|
||||
|
||||
// machine
|
||||
|
||||
@ -312,7 +305,7 @@ void goal92_state::main_map(address_map &map)
|
||||
map(0x102000, 0x102fff).ram().w(FUNC(goal92_state::text_w)).share(m_tx_data);
|
||||
map(0x103000, 0x103fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x104000, 0x13ffff).ram();
|
||||
map(0x140000, 0x1407ff).ram().share(m_spriteram);
|
||||
map(0x140000, 0x1407ff).ram().share("buffered_spriteram");
|
||||
map(0x140800, 0x140801).nopw();
|
||||
map(0x140802, 0x140803).nopw();
|
||||
map(0x180000, 0x18000f).r(FUNC(goal92_state::inputs_r));
|
||||
@ -531,13 +524,15 @@ void goal92_state::goal92(machine_config &config)
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &goal92_state::sound_map); // IRQs are triggered by the main CPU
|
||||
|
||||
// video hardware
|
||||
BUFFERED_SPRITERAM16(config, m_buffered_spriteram);
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); // black border at bottom is a game bug...
|
||||
screen.set_screen_update(FUNC(goal92_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(goal92_state::screen_vblank));
|
||||
screen.screen_vblank().set(m_buffered_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_goal92);
|
||||
|
@ -1,100 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Carlos A. Lozano, Phil Stroffolino
|
||||
/*************************************************************************
|
||||
|
||||
Contra / Gryzor
|
||||
|
||||
*************************************************************************/
|
||||
#ifndef MAME_INCLUDES_CONTRA_H
|
||||
#define MAME_INCLUDES_CONTRA_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "video/k007121.h"
|
||||
#include "machine/k007452.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
class contra_state : public driver_device
|
||||
{
|
||||
public:
|
||||
contra_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_fg_cram(*this, "fg_cram"),
|
||||
m_fg_vram(*this, "fg_vram"),
|
||||
m_tx_cram(*this, "tx_cram"),
|
||||
m_tx_vram(*this, "tx_vram"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_spriteram_2(*this, "spriteram_2"),
|
||||
m_bg_cram(*this, "bg_cram"),
|
||||
m_bg_vram(*this, "bg_vram"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_k007121_1(*this, "k007121_1"),
|
||||
m_k007121_2(*this, "k007121_2"),
|
||||
m_k007452(*this, "k007452"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
void contra(machine_config &config);
|
||||
|
||||
private:
|
||||
/* memory pointers */
|
||||
std::unique_ptr<uint8_t[]> m_buffered_spriteram;
|
||||
std::unique_ptr<uint8_t[]> m_buffered_spriteram_2;
|
||||
required_shared_ptr<uint8_t> m_fg_cram;
|
||||
required_shared_ptr<uint8_t> m_fg_vram;
|
||||
required_shared_ptr<uint8_t> m_tx_cram;
|
||||
required_shared_ptr<uint8_t> m_tx_vram;
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_spriteram_2;
|
||||
required_shared_ptr<uint8_t> m_bg_cram;
|
||||
required_shared_ptr<uint8_t> m_bg_vram;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
tilemap_t *m_fg_tilemap = nullptr;
|
||||
tilemap_t *m_tx_tilemap = nullptr;
|
||||
rectangle m_bg_clip{};
|
||||
rectangle m_fg_clip{};
|
||||
rectangle m_tx_clip{};
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<k007121_device> m_k007121_1;
|
||||
required_device<k007121_device> m_k007121_2;
|
||||
required_device<k007452_device> m_k007452;
|
||||
void contra_bankswitch_w(uint8_t data);
|
||||
void contra_sh_irqtrigger_w(uint8_t data);
|
||||
void sirq_clear_w(uint8_t data);
|
||||
void contra_coin_counter_w(uint8_t data);
|
||||
void contra_fg_vram_w(offs_t offset, uint8_t data);
|
||||
void contra_fg_cram_w(offs_t offset, uint8_t data);
|
||||
void contra_bg_vram_w(offs_t offset, uint8_t data);
|
||||
void contra_bg_cram_w(offs_t offset, uint8_t data);
|
||||
void contra_text_vram_w(offs_t offset, uint8_t data);
|
||||
void contra_text_cram_w(offs_t offset, uint8_t data);
|
||||
void contra_K007121_ctrl_0_w(offs_t offset, uint8_t data);
|
||||
void contra_K007121_ctrl_1_w(offs_t offset, uint8_t data);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_tx_tile_info);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
void contra_palette(palette_device &palette) const;
|
||||
uint32_t screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(contra_interrupt);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int bank );
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
void contra_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_CONTRA_H
|
@ -1,73 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Pierpaolo Prazzoli
|
||||
/*************************************************************************
|
||||
|
||||
Ghosts'n Goblins
|
||||
|
||||
*************************************************************************/
|
||||
#ifndef MAME_INCLUDES_GNG_H
|
||||
#define MAME_INCLUDES_GNG_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "sound/ymopn.h"
|
||||
#include "video/bufsprite.h"
|
||||
#include "emupal.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
class gng_state : public driver_device
|
||||
{
|
||||
public:
|
||||
gng_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_fgvideoram(*this, "fgvideoram"),
|
||||
m_bgvideoram(*this, "bgvideoram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_ym(*this, "ym%u", 1),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette")
|
||||
{ }
|
||||
|
||||
void gng(machine_config &config);
|
||||
void diamond(machine_config &config);
|
||||
|
||||
private:
|
||||
void gng_bankswitch_w(uint8_t data);
|
||||
DECLARE_WRITE_LINE_MEMBER(ym_reset_w);
|
||||
uint8_t diamond_hack_r();
|
||||
void gng_fgvideoram_w(offs_t offset, uint8_t data);
|
||||
void gng_bgvideoram_w(offs_t offset, uint8_t data);
|
||||
void gng_bgscrollx_w(offs_t offset, uint8_t data);
|
||||
void gng_bgscrolly_w(offs_t offset, uint8_t data);
|
||||
DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void diamond_map(address_map &map);
|
||||
void gng_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
|
||||
/* memory pointers */
|
||||
required_device<buffered_spriteram8_device> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_fgvideoram;
|
||||
required_shared_ptr<uint8_t> m_bgvideoram;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
tilemap_t *m_fg_tilemap = nullptr;
|
||||
uint8_t m_scrollx[2]{};
|
||||
uint8_t m_scrolly[2]{};
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device_array<ym2203_device, 2> m_ym;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_GNG_H
|
@ -1,300 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Carlos A. Lozano, Phil Stroffolino
|
||||
/***************************************************************************
|
||||
|
||||
video/contra.c
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/contra.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
**
|
||||
** Contra has palette RAM, but it also has four lookup table PROMs
|
||||
**
|
||||
** 0 sprites #0
|
||||
** 1 tiles #0
|
||||
** 2 sprites #1
|
||||
** 3 tiles #1
|
||||
**
|
||||
***************************************************************************/
|
||||
|
||||
void contra_state::contra_palette(palette_device &palette) const
|
||||
{
|
||||
uint8_t const *const color_prom = memregion("proms")->base();
|
||||
|
||||
for (int chip = 0; chip < 2; chip++)
|
||||
{
|
||||
for (int pal = 0; pal < 8; pal++)
|
||||
{
|
||||
int const clut = (chip << 1) | (pal & 1);
|
||||
|
||||
for (int i = 0; i < 0x100; i++)
|
||||
{
|
||||
uint8_t ctabentry;
|
||||
|
||||
if (((pal & 0x01) == 0) && (color_prom[(clut << 8) | i] == 0))
|
||||
ctabentry = 0;
|
||||
else
|
||||
ctabentry = (pal << 4) | (color_prom[(clut << 8) | i] & 0x0f);
|
||||
|
||||
palette.set_pen_indirect((chip << 11) | (pal << 8) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info)
|
||||
{
|
||||
uint8_t ctrl_3 = m_k007121_1->ctrlram_r(3);
|
||||
uint8_t ctrl_4 = m_k007121_1->ctrlram_r(4);
|
||||
uint8_t ctrl_5 = m_k007121_1->ctrlram_r(5);
|
||||
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
|
||||
int attr = m_fg_cram[tile_index];
|
||||
int bit0 = (ctrl_5 >> 0) & 0x03;
|
||||
int bit1 = (ctrl_5 >> 2) & 0x03;
|
||||
int bit2 = (ctrl_5 >> 4) & 0x03;
|
||||
int bit3 = (ctrl_5 >> 6) & 0x03;
|
||||
int bank = ((attr & 0x80) >> 7) |
|
||||
((attr >> (bit0 + 2)) & 0x02) |
|
||||
((attr >> (bit1 + 1)) & 0x04) |
|
||||
((attr >> (bit2 )) & 0x08) |
|
||||
((attr >> (bit3 - 1)) & 0x10) |
|
||||
((ctrl_3 & 0x01) << 5);
|
||||
int mask = (ctrl_4 & 0xf0) >> 4;
|
||||
|
||||
bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1);
|
||||
|
||||
tileinfo.set(0,
|
||||
m_fg_vram[tile_index] + bank * 256,
|
||||
((ctrl_6 & 0x30) * 2 + 16) + (attr & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info)
|
||||
{
|
||||
uint8_t ctrl_3 = m_k007121_2->ctrlram_r(3);
|
||||
uint8_t ctrl_4 = m_k007121_2->ctrlram_r(4);
|
||||
uint8_t ctrl_5 = m_k007121_2->ctrlram_r(5);
|
||||
uint8_t ctrl_6 = m_k007121_2->ctrlram_r(6);
|
||||
int attr = m_bg_cram[tile_index];
|
||||
int bit0 = (ctrl_5 >> 0) & 0x03;
|
||||
int bit1 = (ctrl_5 >> 2) & 0x03;
|
||||
int bit2 = (ctrl_5 >> 4) & 0x03;
|
||||
int bit3 = (ctrl_5 >> 6) & 0x03;
|
||||
int bank = ((attr & 0x80) >> 7) |
|
||||
((attr >> (bit0 + 2)) & 0x02) |
|
||||
((attr >> (bit1 + 1)) & 0x04) |
|
||||
((attr >> (bit2 )) & 0x08) |
|
||||
((attr >> (bit3 - 1)) & 0x10) |
|
||||
((ctrl_3 & 0x01) << 5);
|
||||
int mask = (ctrl_4 & 0xf0) >> 4;
|
||||
|
||||
// 2009-12 FP: TO BE VERIFIED - old code used ctrl4 from chip 0?!?
|
||||
bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1);
|
||||
|
||||
tileinfo.set(1,
|
||||
m_bg_vram[tile_index] + bank * 256,
|
||||
((ctrl_6 & 0x30) * 2 + 16) + (attr & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info)
|
||||
{
|
||||
uint8_t ctrl_5 = m_k007121_1->ctrlram_r(5);
|
||||
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
|
||||
int attr = m_tx_cram[tile_index];
|
||||
int bit0 = (ctrl_5 >> 0) & 0x03;
|
||||
int bit1 = (ctrl_5 >> 2) & 0x03;
|
||||
int bit2 = (ctrl_5 >> 4) & 0x03;
|
||||
int bit3 = (ctrl_5 >> 6) & 0x03;
|
||||
int bank = ((attr & 0x80) >> 7) |
|
||||
((attr >> (bit0 + 2)) & 0x02) |
|
||||
((attr >> (bit1 + 1)) & 0x04) |
|
||||
((attr >> (bit2 )) & 0x08) |
|
||||
((attr >> (bit3 - 1)) & 0x10);
|
||||
|
||||
tileinfo.set(0,
|
||||
m_tx_vram[tile_index] + bank * 256,
|
||||
((ctrl_6 & 0x30) * 2 + 16) + (attr & 7),
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Start the video hardware emulation.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void contra_state::video_start()
|
||||
{
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
|
||||
m_buffered_spriteram = std::make_unique<uint8_t[]>(0x800);
|
||||
m_buffered_spriteram_2 = std::make_unique<uint8_t[]>(0x800);
|
||||
|
||||
m_bg_clip = m_screen->visible_area();
|
||||
m_bg_clip.min_x += 40;
|
||||
|
||||
m_fg_clip = m_bg_clip;
|
||||
|
||||
m_tx_clip = m_screen->visible_area();
|
||||
m_tx_clip.max_x = 39;
|
||||
m_tx_clip.min_x = 0;
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
save_pointer(NAME(m_buffered_spriteram), 0x800);
|
||||
save_pointer(NAME(m_buffered_spriteram_2), 0x800);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Memory handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void contra_state::contra_fg_vram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_fg_vram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void contra_state::contra_fg_cram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_fg_cram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void contra_state::contra_bg_vram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_bg_vram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void contra_state::contra_bg_cram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_bg_cram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void contra_state::contra_text_vram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_tx_vram[offset] = data;
|
||||
m_tx_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void contra_state::contra_text_cram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_tx_cram[offset] = data;
|
||||
m_tx_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void contra_state::contra_K007121_ctrl_0_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
|
||||
|
||||
if (offset == 3)
|
||||
{
|
||||
if ((data & 0x8) == 0)
|
||||
memcpy(m_buffered_spriteram.get(), m_spriteram + 0x800, 0x800);
|
||||
else
|
||||
memcpy(m_buffered_spriteram.get(), m_spriteram, 0x800);
|
||||
}
|
||||
|
||||
if (offset == 6)
|
||||
{
|
||||
if (ctrl_6 != data)
|
||||
m_fg_tilemap->mark_all_dirty();
|
||||
}
|
||||
|
||||
if (offset == 7)
|
||||
m_fg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||
|
||||
m_k007121_1->ctrl_w(offset, data);
|
||||
}
|
||||
|
||||
void contra_state::contra_K007121_ctrl_1_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
uint8_t ctrl_6 = m_k007121_2->ctrlram_r(6);
|
||||
|
||||
if (offset == 3)
|
||||
{
|
||||
if ((data & 0x8) == 0)
|
||||
memcpy(m_buffered_spriteram_2.get(), m_spriteram_2 + 0x800, 0x800);
|
||||
else
|
||||
memcpy(m_buffered_spriteram_2.get(), m_spriteram_2 + 0x000, 0x800);
|
||||
}
|
||||
if (offset == 6)
|
||||
{
|
||||
if (ctrl_6 != data )
|
||||
m_bg_tilemap->mark_all_dirty();
|
||||
}
|
||||
if (offset == 7)
|
||||
m_bg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||
|
||||
m_k007121_2->ctrl_w(offset, data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display Refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int bank )
|
||||
{
|
||||
k007121_device *k007121 = bank ? m_k007121_2 : m_k007121_1;
|
||||
int base_color = (k007121->ctrlram_r(6) & 0x30) * 2;
|
||||
const uint8_t *source;
|
||||
|
||||
if (bank == 0)
|
||||
source = m_buffered_spriteram.get();
|
||||
else
|
||||
source = m_buffered_spriteram_2.get();
|
||||
|
||||
k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(bank), *m_palette, source, base_color, 40, 0, priority_bitmap, (uint32_t)-1);
|
||||
}
|
||||
|
||||
uint32_t contra_state::screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
uint8_t ctrl_1_0 = m_k007121_1->ctrlram_r(0);
|
||||
uint8_t ctrl_1_2 = m_k007121_1->ctrlram_r(2);
|
||||
uint8_t ctrl_2_0 = m_k007121_2->ctrlram_r(0);
|
||||
uint8_t ctrl_2_2 = m_k007121_2->ctrlram_r(2);
|
||||
rectangle bg_finalclip = m_bg_clip;
|
||||
rectangle fg_finalclip = m_fg_clip;
|
||||
rectangle tx_finalclip = m_tx_clip;
|
||||
|
||||
bg_finalclip &= cliprect;
|
||||
fg_finalclip &= cliprect;
|
||||
tx_finalclip &= cliprect;
|
||||
|
||||
m_fg_tilemap->set_scrollx(0, ctrl_1_0 - 40);
|
||||
m_fg_tilemap->set_scrolly(0, ctrl_1_2);
|
||||
m_bg_tilemap->set_scrollx(0, ctrl_2_0 - 40);
|
||||
m_bg_tilemap->set_scrolly(0, ctrl_2_2);
|
||||
|
||||
m_bg_tilemap->draw(screen, bitmap, bg_finalclip, 0 ,0);
|
||||
m_fg_tilemap->draw(screen, bitmap, fg_finalclip, 0 ,0);
|
||||
draw_sprites(bitmap,cliprect, screen.priority(), 0);
|
||||
draw_sprites(bitmap,cliprect, screen.priority(), 1);
|
||||
m_tx_tilemap->draw(screen, bitmap, tx_finalclip, 0 ,0);
|
||||
return 0;
|
||||
}
|
@ -1,147 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Pierpaolo Prazzoli
|
||||
/***************************************************************************
|
||||
|
||||
video.c
|
||||
|
||||
Functions to emulate the video hardware of the machine.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/gng.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(gng_state::get_fg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_fgvideoram[tile_index + 0x400];
|
||||
tileinfo.set(0,
|
||||
m_fgvideoram[tile_index] + ((attr & 0xc0) << 2),
|
||||
attr & 0x0f,
|
||||
TILE_FLIPYX((attr & 0x30) >> 4));
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(gng_state::get_bg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_bgvideoram[tile_index + 0x400];
|
||||
tileinfo.set(1,
|
||||
m_bgvideoram[tile_index] + ((attr & 0xc0) << 2),
|
||||
attr & 0x07,
|
||||
TILE_FLIPYX((attr & 0x30) >> 4));
|
||||
tileinfo.group = (attr & 0x08) >> 3;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Start the video hardware emulation.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void gng_state::video_start()
|
||||
{
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(3);
|
||||
m_bg_tilemap->set_transmask(0, 0xff, 0x00); // split type 0 is totally transparent in front half
|
||||
m_bg_tilemap->set_transmask(1, 0x41, 0xbe); // split type 1 has pens 0 and 6 transparent in front half
|
||||
|
||||
m_bg_tilemap->set_scrolldx(128, 128);
|
||||
m_bg_tilemap->set_scrolldy( 6, 6);
|
||||
m_fg_tilemap->set_scrolldx(128, 128);
|
||||
m_fg_tilemap->set_scrolldy( 6, 6);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Memory handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void gng_state::gng_fgvideoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_fgvideoram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
|
||||
}
|
||||
|
||||
void gng_state::gng_bgvideoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_bgvideoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
|
||||
}
|
||||
|
||||
|
||||
void gng_state::gng_bgscrollx_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scrollx[offset] = data;
|
||||
m_bg_tilemap->set_scrollx(0, m_scrollx[0] + 256 * m_scrollx[1]);
|
||||
}
|
||||
|
||||
void gng_state::gng_bgscrolly_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scrolly[offset] = data;
|
||||
m_bg_tilemap->set_scrolly(0, m_scrolly[0] + 256 * m_scrolly[1]);
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(gng_state::flipscreen_w)
|
||||
{
|
||||
flip_screen_set(!state);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void gng_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
{
|
||||
uint8_t *buffered_spriteram = m_spriteram->buffer();
|
||||
gfx_element *gfx = m_gfxdecode->gfx(2);
|
||||
int offs;
|
||||
|
||||
|
||||
for (offs = m_spriteram->bytes() - 4; offs >= 0; offs -= 4)
|
||||
{
|
||||
uint8_t attributes = buffered_spriteram[offs + 1];
|
||||
int sx = buffered_spriteram[offs + 3] - 0x100 * (attributes & 0x01);
|
||||
int sy = buffered_spriteram[offs + 2];
|
||||
int flipx = attributes & 0x04;
|
||||
int flipy = attributes & 0x08;
|
||||
|
||||
if (flip_screen())
|
||||
{
|
||||
sx = 240 - sx;
|
||||
sy = 240 - sy;
|
||||
flipx = !flipx;
|
||||
flipy = !flipy;
|
||||
}
|
||||
|
||||
gfx->transpen(bitmap,cliprect,
|
||||
buffered_spriteram[offs] + ((attributes << 2) & 0x300),
|
||||
(attributes >> 4) & 3,
|
||||
flipx,flipy,
|
||||
sx+128,sy+6,15);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t gng_state::screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user