summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2019-07-04 12:54:00 -0400
committer GitHub <noreply@github.com>2019-07-04 12:54:00 -0400
commit59f3d063f07d0f609ccc21b1413c9d98d7d1c6de (patch)
tree6544b884a51b9e446b8d440271398a5e071fed0e
parentbbbc56a7f426897cf8354ae4044dee6ff56cdf2f (diff)
parent758720643e528c441910c8405456f1aa3bd9ce65 (diff)
Merge pull request #5305 from cam900/dooyong_args
dooyong.cpp : Updates
-rw-r--r--src/mame/drivers/dooyong.cpp659
-rw-r--r--src/mame/video/dooyong.cpp66
-rw-r--r--src/mame/video/dooyong.h55
3 files changed, 418 insertions, 362 deletions
diff --git a/src/mame/drivers/dooyong.cpp b/src/mame/drivers/dooyong.cpp
index 64acce48ce0..269e59cb5d2 100644
--- a/src/mame/drivers/dooyong.cpp
+++ b/src/mame/drivers/dooyong.cpp
@@ -59,6 +59,9 @@ Music tempo and audio pitch depends on (unknown) YM clocks.
Sound cpu runs currently at 8 MHz to avoid jerky music when there's (too)
many SFX scheduled.
+Reference video:
+- pollux : https://www.youtube.com/watch?v=SuUvX9U9dxo
+
Currently there's some workaround implemented - both YM lines are OR-ed to
allow nested (and in fact - delayed) interrupts. It's temporary solution
until we find real PCB and verify clocks and trace int lines.
@@ -139,61 +142,61 @@ protected:
SPRITE_YSHIFT_FLYTIGER = 0x08
};
- DECLARE_WRITE8_MEMBER(flip_screen_w)
+ void flip_screen_w(u8 data)
{
flip_screen_set(data);
}
- DECLARE_WRITE8_MEMBER(bankswitch_w)
+ void bankswitch_w(u8 data)
{
m_mainbank->set_entry(data & 0x07);
if (data & 0xf8) popmessage("bankswitch %02x",data);
}
- DECLARE_READ8_MEMBER(lastday_tx_r)
+ u8 lastday_tx_r(offs_t offset)
{
- bool const lane(BIT(offset, 11));
- return m_tx->tileram_r(space, offset & 0x07ffU) >> (lane ? 8 : 0);
+ const bool lane(BIT(offset, 11));
+ return m_tx->tileram_r(offset & 0x07ffU) >> (lane ? 8 : 0);
}
- DECLARE_WRITE8_MEMBER(lastday_tx_w)
+ void lastday_tx_w(offs_t offset, u8 data)
{
- bool const lane(BIT(offset, 11));
- m_tx->tileram_w(space, offset & 0x07ffU, uint16_t(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU);
+ const bool lane(BIT(offset, 11));
+ m_tx->tileram_w(offset & 0x07ffU, u16(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU);
}
- DECLARE_READ8_MEMBER(bluehawk_tx_r)
+ u8 bluehawk_tx_r(offs_t offset)
{
- bool const lane(BIT(offset, 0));
- return m_tx->tileram_r(space, offset >> 1) >> (lane ? 8 : 0);
+ const bool lane(BIT(offset, 0));
+ return m_tx->tileram_r(offset >> 1) >> (lane ? 8 : 0);
}
- DECLARE_WRITE8_MEMBER(bluehawk_tx_w)
+ void bluehawk_tx_w(offs_t offset, u8 data)
{
- bool const lane(BIT(offset, 0));
- m_tx->tileram_w(space, offset >> 1, uint16_t(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU);
+ const bool lane(BIT(offset, 0));
+ m_tx->tileram_w(offset >> 1, u16(data) << (lane ? 8 : 0), lane ? 0xff00U : 0x00ffU);
}
- DECLARE_READ8_MEMBER(paletteram_flytiger_r)
+ u8 paletteram_flytiger_r(offs_t offset)
{
if (m_palette_bank) offset |= 0x800;
return m_paletteram_flytiger[offset];
}
- DECLARE_WRITE8_MEMBER(paletteram_flytiger_w)
+ void paletteram_flytiger_w(offs_t offset, u8 data)
{
if (m_palette_bank) offset |= 0x800;
m_paletteram_flytiger[offset] = data;
- uint16_t const value = m_paletteram_flytiger[offset & ~1] | (m_paletteram_flytiger[offset | 1] << 8);
+ const u16 value = m_paletteram_flytiger[offset & ~1] | (m_paletteram_flytiger[offset | 1] << 8);
m_palette->set_pen_color(offset/2, pal5bit(value >> 10), pal5bit(value >> 5), pal5bit(value >> 0));
}
- DECLARE_WRITE8_MEMBER(primella_ctrl_w);
- DECLARE_WRITE8_MEMBER(flytiger_ctrl_w);
+ void primella_ctrl_w(u8 data);
+ void flytiger_ctrl_w(u8 data);
- uint32_t screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_MACHINE_START(cpu_z80)
{
@@ -206,7 +209,7 @@ protected:
DECLARE_VIDEO_START(flytiger)
{
- m_paletteram_flytiger = make_unique_clear<uint8_t[]>(0x1000);
+ m_paletteram_flytiger = make_unique_clear<u8[]>(0x1000);
save_pointer(NAME(m_paletteram_flytiger), 0x1000);
m_palette_bank = 0;
@@ -222,6 +225,12 @@ protected:
save_item(NAME(m_tx_pri));
}
+ void bluehawk_tile_callback(u16 attr, u32 &code, u32 &color)
+ {
+ code = attr & 0x3ff;
+ color = (attr & 0x3c00) >> 10;
+ }
+
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, unsigned extensions = 0);
void sound_2151(machine_config &config);
@@ -229,11 +238,11 @@ protected:
void flytiger_map(address_map &map);
void primella_map(address_map &map);
- std::unique_ptr<uint8_t[]> m_paletteram_flytiger;
- uint8_t m_sprites_disabled = 0;
- uint8_t m_flytiger_pri = 0;
- uint8_t m_tx_pri = 0;
- uint8_t m_palette_bank = 0;
+ std::unique_ptr<u8[]> m_paletteram_flytiger;
+ u8 m_sprites_disabled = 0;
+ u8 m_flytiger_pri = 0;
+ u8 m_tx_pri = 0;
+ u8 m_palette_bank = 0;
required_device<dooyong_ram_tilemap_device> m_tx;
optional_device<buffered_spriteram8_device> m_spriteram;
@@ -254,13 +263,13 @@ public:
void pollux(machine_config &config);
protected:
- DECLARE_WRITE8_MEMBER(lastday_ctrl_w);
- DECLARE_WRITE8_MEMBER(pollux_ctrl_w);
- DECLARE_READ8_MEMBER(unk_r);
+ void lastday_ctrl_w(u8 data);
+ void pollux_ctrl_w(u8 data);
+ u8 unk_r();
- uint32_t screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_VIDEO_START(lastday)
{
@@ -278,7 +287,7 @@ protected:
DECLARE_VIDEO_START(pollux)
{
- m_paletteram_flytiger = make_unique_clear<uint8_t[]>(0x1000);
+ m_paletteram_flytiger = make_unique_clear<u8[]>(0x1000);
save_pointer(NAME(m_paletteram_flytiger), 0x1000);
m_palette_bank = 0;
@@ -307,25 +316,22 @@ protected:
{
}
- DECLARE_WRITE16_MEMBER(ctrl_w)
+ void ctrl_w(u8 data)
{
- if (ACCESSING_BITS_0_7)
- {
- /* bit 0 flips screen */
- flip_screen_set(data & 0x0001);
+ /* bit 0 flips screen */
+ flip_screen_set(data & 0x01);
- /* bit 4 changes tilemaps priority */
- m_bg2_priority = data & 0x0010;
+ /* bit 4 changes tilemaps priority */
+ m_bg2_priority = data & 0x10;
- /* bit 5 used but unknown */
- }
+ /* bit 5 used but unknown */
}
TIMER_DEVICE_CALLBACK_MEMBER(scanline);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint16_t m_bg2_priority = 0;
+ u16 m_bg2_priority = 0;
required_device<buffered_spriteram16_device> m_spriteram;
};
@@ -342,7 +348,7 @@ public:
void superx(machine_config &config);
protected:
- uint32_t screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
virtual void video_start() override
{
@@ -350,6 +356,12 @@ protected:
save_item(NAME(m_bg2_priority));
}
+ void rshark_tile_callback(u16 attr, u32 &code, u32 &color)
+ {
+ code = attr & 0x1fff; // uses more code bits; because rshark and superx are uses 16x16 tiles for tilemap instead 32x32 tiles
+ color = 0; // use external ROM
+ }
+
void dooyong_68k(machine_config &config);
void rshark_map(address_map &map);
@@ -369,7 +381,7 @@ public:
void popbingo(machine_config &config);
protected:
- uint32_t screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
virtual void video_start() override
{
@@ -380,6 +392,12 @@ protected:
save_item(NAME(m_bg2_priority)); // Not used atm
}
+ void popbingo_tile_callback(u16 attr, u32 &code, u32 &color)
+ {
+ code = attr & 0x7ff;
+ color = 0;
+ }
+
void popbingo_map(address_map &map);
private:
@@ -389,10 +407,9 @@ private:
};
-
/* Control registers seem to be different on every game */
-WRITE8_MEMBER(dooyong_z80_ym2203_state::lastday_ctrl_w)
+void dooyong_z80_ym2203_state::lastday_ctrl_w(u8 data)
{
/* bits 0 and 1 are coin counters */
machine().bookkeeping().coin_counter_w(0, data & 0x01);
@@ -407,7 +424,7 @@ WRITE8_MEMBER(dooyong_z80_ym2203_state::lastday_ctrl_w)
flip_screen_set(data & 0x40);
}
-WRITE8_MEMBER(dooyong_z80_ym2203_state::pollux_ctrl_w)
+void dooyong_z80_ym2203_state::pollux_ctrl_w(u8 data)
{
// printf("pollux_ctrl_w %02x\n", data);
@@ -419,7 +436,7 @@ WRITE8_MEMBER(dooyong_z80_ym2203_state::pollux_ctrl_w)
machine().bookkeeping().coin_counter_w(1, data & 0x40);
/* bit 1 is used but unknown - palette banking (both write and display based on pollux bombs) */
- uint8_t const last_palbank = m_palette_bank;
+ const u8 last_palbank = m_palette_bank;
if (m_paletteram_flytiger) m_palette_bank = BIT(data, 1);
if (last_palbank != m_palette_bank)
{
@@ -434,8 +451,7 @@ WRITE8_MEMBER(dooyong_z80_ym2203_state::pollux_ctrl_w)
}
-
-WRITE8_MEMBER(dooyong_z80_state::primella_ctrl_w)
+void dooyong_z80_state::primella_ctrl_w(u8 data)
{
/* bits 0-2 select ROM bank */
m_mainbank->set_entry(data & 0x07);
@@ -452,7 +468,7 @@ WRITE8_MEMBER(dooyong_z80_state::primella_ctrl_w)
}
-WRITE8_MEMBER(dooyong_z80_state::flytiger_ctrl_w)
+void dooyong_z80_state::flytiger_ctrl_w(u8 data)
{
/* bit 0 is flip screen */
flip_screen_set(data & 0x01);
@@ -460,7 +476,7 @@ WRITE8_MEMBER(dooyong_z80_state::flytiger_ctrl_w)
/* bits 1, 2 used but unknown */
/* bit 3 palette banking */
- uint8_t const last_palbank = m_palette_bank;
+ const u8 last_palbank = m_palette_bank;
m_palette_bank = BIT(data, 3);
if (last_palbank != m_palette_bank)
{
@@ -499,7 +515,7 @@ void dooyong_z80_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
height only used by pollux, bluehawk and flytiger
x flip and y flip only used by pollux and flytiger */
- uint8_t const *const buffered_spriteram = m_spriteram->buffer();
+ const u8 *const buffered_spriteram = m_spriteram->buffer();
for (int offs = 0; offs < m_spriteram->bytes(); offs += 32)
{
int sx = buffered_spriteram[offs+3] | ((buffered_spriteram[offs+1] & 0x10) << 4);
@@ -509,13 +525,13 @@ void dooyong_z80_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
//TODO: This priority mechanism works for known games, but seems a bit strange.
//Are we missing something? (The obvious spare palette bit isn't it.)
- int const pri = (((color == 0x00) || (color == 0x0f)) ? 0xfc : 0xf0);
+ const int pri = (((color == 0x00) || (color == 0x0f)) ? 0xfc : 0xf0);
bool flipx = false, flipy = false;
int height = 0;
if (extensions)
{
- uint8_t const ext = buffered_spriteram[offs+0x1c];
+ const u8 ext = buffered_spriteram[offs+0x1c];
if (extensions & SPRITE_12BIT)
code |= ((ext & 0x01) << 11);
@@ -560,7 +576,7 @@ void dooyong_z80_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
}
-uint32_t dooyong_z80_ym2203_state::screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 dooyong_z80_ym2203_state::screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -578,7 +594,7 @@ uint32_t dooyong_z80_ym2203_state::screen_update_lastday(screen_device &screen,
return 0;
}
-uint32_t dooyong_z80_ym2203_state::screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 dooyong_z80_ym2203_state::screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -595,7 +611,7 @@ uint32_t dooyong_z80_ym2203_state::screen_update_gulfstrm(screen_device &screen,
return 0;
}
-uint32_t dooyong_z80_ym2203_state::screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 dooyong_z80_ym2203_state::screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -609,7 +625,7 @@ uint32_t dooyong_z80_ym2203_state::screen_update_pollux(screen_device &screen, b
return 0;
}
-uint32_t dooyong_z80_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 dooyong_z80_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -632,7 +648,7 @@ uint32_t dooyong_z80_state::screen_update_flytiger(screen_device &screen, bitmap
}
-uint32_t dooyong_z80_state::screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 dooyong_z80_state::screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -647,7 +663,7 @@ uint32_t dooyong_z80_state::screen_update_bluehawk(screen_device &screen, bitmap
return 0;
}
-uint32_t dooyong_z80_state::screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 dooyong_z80_state::screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
@@ -660,7 +676,6 @@ uint32_t dooyong_z80_state::screen_update_primella(screen_device &screen, bitmap
}
-
void dooyong_68k_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* Sprites take 8 16-bit words each in memory:
@@ -682,22 +697,22 @@ void dooyong_68k_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
w = width
h = height */
- uint16_t const *const buffered_spriteram = m_spriteram->buffer();
+ const u16 *const buffered_spriteram = m_spriteram->buffer();
for (int offs = (m_spriteram->bytes() / 2) - 8; offs >= 0; offs -= 8)
{
if (buffered_spriteram[offs] & 0x0001) /* enable */
{
int code = buffered_spriteram[offs+3];
- int const color = buffered_spriteram[offs+7] & 0x000f;
+ const int color = buffered_spriteram[offs+7] & 0x000f;
//TODO: This priority mechanism works for known games, but seems a bit strange.
//Are we missing something? (The obvious spare palette bit isn't it.)
- int const pri = GFX_PMASK_4 | (((color == 0x00) || (color == 0x0f)) ? GFX_PMASK_2 : 0);
- int const width = buffered_spriteram[offs+1] & 0x000f;
- int const height = (buffered_spriteram[offs+1] & 0x00f0) >> 4;
+ const int pri = GFX_PMASK_4 | (((color == 0x00) || (color == 0x0f)) ? GFX_PMASK_2 : 0);
+ const int width = buffered_spriteram[offs+1] & 0x000f;
+ const int height = (buffered_spriteram[offs+1] & 0x00f0) >> 4;
- bool const flip = flip_screen();
+ const bool flip = flip_screen();
int sx = buffered_spriteram[offs+4] & 0x01ff;
- int sy = (int16_t)buffered_spriteram[offs+6] & 0x01ff;
+ int sy = (s16)buffered_spriteram[offs+6] & 0x01ff;
if (sy & 0x0100) sy |= ~(int)0x01ff; // Correctly sign-extend 9-bit number
if (flip)
{
@@ -707,10 +722,10 @@ void dooyong_68k_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
for (int y = 0; y <= height; y++)
{
- int const _y = sy + (16 * (flip ? (height - y) : y));
+ const int _y = sy + (16 * (flip ? (height - y) : y));
for (int x = 0; x <= width; x++)
{
- int const _x = sx + (16 * (flip ? (width - x) : x));
+ const int _x = sx + (16 * (flip ? (width - x) : x));
m_gfxdecode->gfx(0)->prio_transpen(bitmap,cliprect,
code,
color,
@@ -726,7 +741,7 @@ void dooyong_68k_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap
}
-uint32_t rshark_state::screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 rshark_state::screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -742,7 +757,7 @@ uint32_t rshark_state::screen_update_rshark(screen_device &screen, bitmap_ind16
}
-uint32_t popbingo_state::screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 popbingo_state::screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
screen.priority().fill(0, cliprect);
@@ -755,9 +770,9 @@ uint32_t popbingo_state::screen_update_popbingo(screen_device &screen, bitmap_in
for (int y = cliprect.top(); cliprect.bottom() >= y; y++)
{
- uint16_t const *const bg_src(&m_bg_bitmap[0].pix16(y, 0));
- uint16_t const *const bg2_src(&m_bg_bitmap[1].pix16(y, 0));
- uint16_t *const dst(&bitmap.pix16(y, 0));
+ const u16 *const bg_src(&m_bg_bitmap[0].pix16(y, 0));
+ const u16 *const bg2_src(&m_bg_bitmap[1].pix16(y, 0));
+ u16 *const dst(&bitmap.pix16(y, 0));
for (int x = cliprect.left(); cliprect.right() >= x; x++)
dst[x] = 0x100U | (bg_src[x] << 4) | bg2_src[x];
}
@@ -768,7 +783,6 @@ uint32_t popbingo_state::screen_update_popbingo(screen_device &screen, bitmap_in
}
-
/***************************************************************************
Memory Structure(s)
@@ -821,8 +835,7 @@ void dooyong_z80_ym2203_state::gulfstrm_map(address_map &map)
map(0xc000, 0xcfff).ram();
map(0xd000, 0xdfff).ram().share("spriteram");
map(0xe000, 0xefff).rw(FUNC(dooyong_z80_ym2203_state::lastday_tx_r), FUNC(dooyong_z80_ym2203_state::lastday_tx_w));
- map(0xf000, 0xf000).portr("DSWA");
- map(0xf000, 0xf000).w(FUNC(dooyong_z80_ym2203_state::bankswitch_w));
+ map(0xf000, 0xf000).portr("DSWA").w(FUNC(dooyong_z80_ym2203_state::bankswitch_w));
map(0xf001, 0xf001).portr("DSWB");
map(0xf002, 0xf002).portr("P2");
map(0xf003, 0xf003).portr("P1");
@@ -908,7 +921,7 @@ void rshark_state::rshark_map(address_map &map)
map(0x0c4010, 0x0c401f).w(m_bg[1], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
map(0x0c8000, 0x0c8fff).w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x0c0013, 0x0c0013).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0x0c0014, 0x0c0015).w(FUNC(rshark_state::ctrl_w)); /* flip screen + unknown stuff */
+ map(0x0c0015, 0x0c0015).w(FUNC(rshark_state::ctrl_w)); /* flip screen + unknown stuff */
map(0x0cc000, 0x0cc00f).w(m_fg[0], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
map(0x0cc010, 0x0cc01f).w(m_fg[1], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
}
@@ -927,7 +940,7 @@ void rshark_state::superx_map(address_map &map)
map(0x084010, 0x08401f).w(m_bg[1], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
map(0x088000, 0x088fff).w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x080013, 0x080013).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0x080014, 0x080015).w(FUNC(rshark_state::ctrl_w)); /* flip screen + unknown stuff */
+ map(0x080015, 0x080015).w(FUNC(rshark_state::ctrl_w)); /* flip screen + unknown stuff */
map(0x08c000, 0x08c00f).w(m_fg[0], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
map(0x08c010, 0x08c01f).w(m_fg[1], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
}
@@ -943,7 +956,7 @@ void popbingo_state::popbingo_map(address_map &map)
map(0x0c0004, 0x0c0005).portr("P1_P2");
map(0x0c0006, 0x0c0007).portr("SYSTEM");
map(0x0c0013, 0x0c0013).w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0x0c0014, 0x0c0015).w(FUNC(popbingo_state::ctrl_w));
+ map(0x0c0015, 0x0c0015).w(FUNC(popbingo_state::ctrl_w));
map(0x0c0018, 0x0c001b).nopw(); // ?
map(0x0c4000, 0x0c400f).w(m_bg[0], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
map(0x0c4010, 0x0c401f).w(m_bg[1], FUNC(dooyong_rom_tilemap_device::ctrl_w)).umask16(0x00ff);
@@ -1371,52 +1384,52 @@ const gfx_layout rshark_spritelayout =
};
GFXDECODE_START( gfx_lastday )
- GFXDECODE_ENTRY( "gfx1", 0, lastday_charlayout, 0, 16+64 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16+64 )
- GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16+64 )
- GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 512, 16+64 )
+ GFXDECODE_ENTRY( "tx", 0, lastday_charlayout, 0, 16+64 )
+ GFXDECODE_ENTRY( "sprite", 0, spritelayout, 256, 16+64 )
+ GFXDECODE_ENTRY( "bg0", 0, tilelayout, 768, 16+64 )
+ GFXDECODE_ENTRY( "fg0", 0, tilelayout, 512, 16+64 )
GFXDECODE_END
GFXDECODE_START( gfx_flytiger )
- GFXDECODE_ENTRY( "gfx1", 0, lastday_charlayout, 0, 16+64 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16+64 )
- GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16+64 )
- GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 512, 32+64 )
+ GFXDECODE_ENTRY( "tx", 0, lastday_charlayout, 0, 16+64 )
+ GFXDECODE_ENTRY( "sprite", 0, spritelayout, 256, 16+64 )
+ GFXDECODE_ENTRY( "bg0", 0, tilelayout, 768, 16+64 )
+ GFXDECODE_ENTRY( "fg0", 0, tilelayout, 512, 32+64 )
GFXDECODE_END
GFXDECODE_START( gfx_bluehawk )
- GFXDECODE_ENTRY( "gfx1", 0, bluehawk_charlayout, 0, 16 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 768, 16 )
- GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 512, 16 )
- GFXDECODE_ENTRY( "gfx5", 0, tilelayout, 0, 16 )
+ GFXDECODE_ENTRY( "tx", 0, bluehawk_charlayout, 0, 16 )
+ GFXDECODE_ENTRY( "sprite", 0, spritelayout, 256, 16 )
+ GFXDECODE_ENTRY( "bg0", 0, tilelayout, 768, 16 )
+ GFXDECODE_ENTRY( "fg0", 0, tilelayout, 512, 16 )
+ GFXDECODE_ENTRY( "fg1", 0, tilelayout, 0, 16 )
GFXDECODE_END
GFXDECODE_START( gfx_primella )
- GFXDECODE_ENTRY( "gfx1", 0, bluehawk_charlayout, 0, 16 )
+ GFXDECODE_ENTRY( "tx", 0, bluehawk_charlayout, 0, 16 )
/* no sprites */
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 768, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 512, 16 )
+ GFXDECODE_ENTRY( "bg0", 0, tilelayout, 768, 16 )
+ GFXDECODE_ENTRY( "fg0", 0, tilelayout, 512, 16 )
GFXDECODE_END
GFXDECODE_START( gfx_rshark )
/* no chars */
- GFXDECODE_ENTRY( "gfx1", 0, rshark_spritelayout, 0, 16 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 256, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 512, 16 )
- GFXDECODE_ENTRY( "gfx4", 0, spritelayout, 768, 16 )
- GFXDECODE_ENTRY( "gfx5", 0, spritelayout, 1024, 16 )
+ GFXDECODE_ENTRY( "sprite", 0, rshark_spritelayout, 0, 16 )
+ GFXDECODE_ENTRY( "fg1", 0, spritelayout, 256, 16 )
+ GFXDECODE_ENTRY( "fg0", 0, spritelayout, 512, 16 )
+ GFXDECODE_ENTRY( "bg1", 0, spritelayout, 768, 16 )
+ GFXDECODE_ENTRY( "bg0", 0, spritelayout, 1024, 16 )
GFXDECODE_END
GFXDECODE_START( gfx_popbingo )
/* no chars */
- GFXDECODE_ENTRY( "gfx1", 0, rshark_spritelayout, 0, 16 )
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 1 )
- GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0, 1 )
+ GFXDECODE_ENTRY( "sprite", 0, rshark_spritelayout, 0, 16 )
+ GFXDECODE_ENTRY( "bg0", 0, tilelayout, 0, 1 )
+ GFXDECODE_ENTRY( "bg1", 0, tilelayout, 0, 1 )
GFXDECODE_END
-READ8_MEMBER(dooyong_z80_ym2203_state::unk_r)
+u8 dooyong_z80_ym2203_state::unk_r()
{
return 0;
}
@@ -1501,8 +1514,8 @@ void dooyong_z80_ym2203_state::lastday(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastday);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
- DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "gfx5", 0x00000);
- DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "gfx6", 0x00000);
+ DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "bg0_tmap", 0x00000, -1);
+ DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "fg0_tmap", 0x00000, -1);
m_fg[0]->set_transparent_pen(15);
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
@@ -1552,8 +1565,8 @@ void dooyong_z80_ym2203_state::gulfstrm(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastday);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
- DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "gfx5", 0x00000);
- DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "gfx6", 0x00000);
+ DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "bg0_tmap", 0x00000, -1);
+ DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "fg0_tmap", 0x00000, -1);
m_fg[0]->set_transparent_pen(15);
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
@@ -1589,15 +1602,15 @@ void dooyong_z80_ym2203_state::pollux(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastday);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024*2);
- DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "gfx5", 0x00000);
- DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "gfx6", 0x00000);
+ DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "bg0_tmap", 0x00000, -1);
+ DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "fg0_tmap", 0x00000, -1);
m_fg[0]->set_transparent_pen(15);
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_ym2203_state, pollux)
/* sound hardware */
- sound_2203(config); /* 3.579545MHz or 4Mhz ??? */
+ sound_2203(config); /* 1.5MHz verified */
}
void dooyong_z80_state::bluehawk(machine_config &config)
@@ -1626,11 +1639,18 @@ void dooyong_z80_state::bluehawk(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bluehawk);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
- DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "gfx3", 0x3c000);
- DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "gfx4", 0x3c000);
+
+ DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "bg0", 0x3c000, 0x4000);
+ m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+
+ DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "fg0", 0x3c000, 0x4000);
m_fg[0]->set_transparent_pen(15);
- DOOYONG_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 4, "gfx5", 0x1c000);
+ m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+
+ DOOYONG_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 4, "fg1", 0x1c000, 0x4000);
m_fg[1]->set_transparent_pen(15);
+ m_fg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_state, bluehawk)
@@ -1665,9 +1685,9 @@ void dooyong_z80_state::flytiger(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_flytiger);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024*2);
- DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "gfx3", 0x3c000);
+ DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "bg0", 0x3c000, 0x4000);
m_bg[0]->set_transparent_pen(15);
- DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "gfx4", 0x3c000);
+ DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "fg0", 0x3c000, 0x4000);
m_fg[0]->set_transparent_pen(15);
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
@@ -1700,11 +1720,14 @@ void dooyong_z80_state::primella(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_primella);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
- DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "gfx2", -0x4000);
- m_bg[0]->set_primella_code_bits(10);
- DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "gfx3", -0x4000);
+
+ DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "bg0", -0x4000, 0x4000);
+ m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+
+ DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "fg0", -0x4000, 0x4000);
m_fg[0]->set_transparent_pen(15);
- m_fg[0]->set_primella_code_bits(10);
+ m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
MCFG_VIDEO_START_OVERRIDE(dooyong_z80_state, primella)
@@ -1750,13 +1773,20 @@ void rshark_state::dooyong_68k(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rshark);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
- RSHARK_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 4, "gfx5", 0x00000, "gfx6", 0x60000);
- RSHARK_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 3, "gfx4", 0x00000, "gfx6", 0x40000);
+ RSHARK_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 4, "bg0", 0x00000, 0x20000, "tmap_hi", 0x60000, 0x20000);
+ m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+
+ RSHARK_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 3, "bg1", 0x00000, 0x20000, "tmap_hi", 0x40000, 0x20000);
m_bg[1]->set_transparent_pen(15);
- RSHARK_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "gfx3", 0x00000, "gfx6", 0x20000);
+ m_bg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+
+ RSHARK_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "fg0", 0x00000, 0x20000, "tmap_hi", 0x20000, 0x20000);
m_fg[0]->set_transparent_pen(15);
- RSHARK_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 1, "gfx2", 0x00000, "gfx6", 0x00000);
+ m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+
+ RSHARK_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 1, "fg1", 0x00000, 0x20000, "tmap_hi", 0x00000, 0x20000);
m_fg[1]->set_transparent_pen(15);
+ m_fg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
// sound hardware
sound_2151_4mhz(config);
@@ -1801,10 +1831,11 @@ void popbingo_state::popbingo(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_popbingo);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
- DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "gfx2", 0x00000);
- m_bg[0]->set_primella_code_bits(11);
- DOOYONG_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 2, "gfx3", 0x00000);
- m_bg[1]->set_primella_code_bits(11);
+ DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "bg0", 0x00000, 0x4000);
+ m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(popbingo_state::popbingo_tile_callback), this));
+
+ DOOYONG_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 2, "bg1", 0x00000, 0x4000);
+ m_bg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(popbingo_state::popbingo_tile_callback), this));
// sound hardware
sound_2151_4mhz(config);
@@ -1825,32 +1856,32 @@ ROM_START( lastday ) /* 90030003 PCB */
ROM_LOAD( "4.u5", 0x10000, 0x10000, CRC(70961ea6) SHA1(245d3da67abb4a511a024f030de461b9a2b4804e) ) /* banked at 0x8000-0xbfff */
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
- ROM_LOAD( "1.d3", 0x0000, 0x8000, CRC(dd4316fd) SHA1(496e6657bb76d91f488a2464d1af1be095ab9105) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_LOAD( "1.d3", 0x00000, 0x08000, CRC(dd4316fd) SHA1(496e6657bb76d91f488a2464d1af1be095ab9105) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.j4", 0x0000, 0x8000, CRC(83eb572c) SHA1(e915afd55d505bce202206c9ecfa89bad561ef6c) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x8000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.j4", 0x00000, 0x08000, CRC(83eb572c) SHA1(e915afd55d505bce202206c9ecfa89bad561ef6c) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x40000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x40000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "16.d14", 0x00000, 0x20000, CRC(df503504) SHA1(daa58a7bc24415b5f59b7c7cc918bc85de9702a3) )
ROM_LOAD16_BYTE( "15.a14", 0x00001, 0x20000, CRC(cd990442) SHA1(891b2163db23ab0bb40cbadce6e06fc067d0532f) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "6.s9", 0x00000, 0x20000, CRC(1054361d) SHA1(52566786ca8177404be8b66fd7de94ac25fc49ea) )
ROM_LOAD16_BYTE( "9.s11", 0x00001, 0x20000, CRC(6952ef4d) SHA1(b4e5ec02e97df213fe0bd4cd8a2ca77d7ecf8ad5) )
ROM_LOAD16_BYTE( "7.u9", 0x40000, 0x20000, CRC(6e57a888) SHA1(8efe876ea3c788b83e8291f7fc6f55b90de158c8) )
ROM_LOAD16_BYTE( "10.u11", 0x40001, 0x20000, CRC(a5548dca) SHA1(9914e01c1739c3bfd868a01e53c9030726ced4ea) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.s13", 0x00000, 0x20000, CRC(992bc4af) SHA1(94570ebd1ee6acf1871cf914907acd12dca4026e) )
ROM_LOAD16_BYTE( "14.s14", 0x00001, 0x20000, CRC(a79abc85) SHA1(3e63dad11db9b7420331403a1d551d8c041c4cc2) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* background tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* background tilemaps */
ROM_LOAD16_BYTE( "5.r9", 0x00000, 0x10000, CRC(4789bae8) SHA1(6ffecc16eb8c9c783b02c4ef68cb5098b01fafef) )
ROM_LOAD16_BYTE( "8.r11", 0x00001, 0x10000, CRC(92402b9a) SHA1(2ca8078d2687afbe7b6fc5412de16c6fbc11a650) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "11.r13", 0x00000, 0x10000, CRC(04b961de) SHA1(7a94c9d0800d79048660cf3758708a346ead33f9) )
ROM_LOAD16_BYTE( "13.r14", 0x00001, 0x10000, CRC(6bdbd887) SHA1(a54f26f9ddd72b8b8f7a030610c1c4a5f94a3358) )
ROM_END
@@ -1861,32 +1892,32 @@ ROM_START( lastdaya ) /* 90030003 PCB */
ROM_LOAD( "4.u5", 0x10000, 0x10000, CRC(70961ea6) SHA1(245d3da67abb4a511a024f030de461b9a2b4804e) ) /* banked at 0x8000-0xbfff */
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
- ROM_LOAD( "e1.d3", 0x0000, 0x8000, CRC(ce96e106) SHA1(5ef1f221618abd757e02db79c3d7016100f30c07) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_LOAD( "e1.d3", 0x00000, 0x08000, CRC(ce96e106) SHA1(5ef1f221618abd757e02db79c3d7016100f30c07) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.j4", 0x0000, 0x8000, CRC(83eb572c) SHA1(e915afd55d505bce202206c9ecfa89bad561ef6c) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x08000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.j4", 0x00000, 0x08000, CRC(83eb572c) SHA1(e915afd55d505bce202206c9ecfa89bad561ef6c) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x40000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x40000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "16.d14", 0x00000, 0x20000, CRC(df503504) SHA1(daa58a7bc24415b5f59b7c7cc918bc85de9702a3) )
ROM_LOAD16_BYTE( "15.a14", 0x00001, 0x20000, CRC(cd990442) SHA1(891b2163db23ab0bb40cbadce6e06fc067d0532f) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "e6.s9", 0x00000, 0x20000, CRC(7623c443) SHA1(abfed648a8cc438dbb7de9c23a663082667ca366) )
ROM_LOAD16_BYTE( "e9.s11", 0x00001, 0x20000, CRC(717f6a0e) SHA1(0b2d98fa5b8734210df18bce7725972fd42a6e4a) )
ROM_LOAD16_BYTE( "7.u9", 0x40000, 0x20000, CRC(6e57a888) SHA1(8efe876ea3c788b83e8291f7fc6f55b90de158c8) )
ROM_LOAD16_BYTE( "10.u11", 0x40001, 0x20000, CRC(a5548dca) SHA1(9914e01c1739c3bfd868a01e53c9030726ced4ea) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.s13", 0x00000, 0x20000, CRC(992bc4af) SHA1(94570ebd1ee6acf1871cf914907acd12dca4026e) )
ROM_LOAD16_BYTE( "14.s14", 0x00001, 0x20000, CRC(a79abc85) SHA1(3e63dad11db9b7420331403a1d551d8c041c4cc2) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* bg tilemaps */
- ROM_LOAD16_BYTE( "e5.r9", 0x00000, 0x10000, CRC(5f801410) SHA1(382c1bcd69a6a5c245d2ba7603bc273fba840c8f) )
- ROM_LOAD16_BYTE( "e8.r11", 0x00001, 0x10000, CRC(a7b8250b) SHA1(4bd79c09dacf69e1993353d7fcc7746d1324e9b0) )
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* bg tilemaps */
+ ROM_LOAD16_BYTE( "e5.r9", 0x00000, 0x10000, CRC(5f801410) SHA1(382c1bcd69a6a5c245d2ba7603bc273fba840c8f) )
+ ROM_LOAD16_BYTE( "e8.r11", 0x00001, 0x10000, CRC(a7b8250b) SHA1(4bd79c09dacf69e1993353d7fcc7746d1324e9b0) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "11.r13", 0x00000, 0x10000, CRC(04b961de) SHA1(7a94c9d0800d79048660cf3758708a346ead33f9) )
ROM_LOAD16_BYTE( "13.r14", 0x00001, 0x10000, CRC(6bdbd887) SHA1(a54f26f9ddd72b8b8f7a030610c1c4a5f94a3358) )
ROM_END
@@ -1897,32 +1928,32 @@ ROM_START( ddaydoo ) /* 90030003 PCB */
ROM_LOAD( "4.u5", 0x10000, 0x10000, CRC(70961ea6) SHA1(245d3da67abb4a511a024f030de461b9a2b4804e) ) /* banked at 0x8000-0xbfff */
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
- ROM_LOAD( "1.d3", 0x0000, 0x8000, CRC(dd4316fd) SHA1(496e6657bb76d91f488a2464d1af1be095ab9105) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_LOAD( "1.d3", 0x00000, 0x08000, CRC(dd4316fd) SHA1(496e6657bb76d91f488a2464d1af1be095ab9105) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.j4", 0x0000, 0x8000, CRC(83eb572c) SHA1(e915afd55d505bce202206c9ecfa89bad561ef6c) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x08000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.j4", 0x00000, 0x08000, CRC(83eb572c) SHA1(e915afd55d505bce202206c9ecfa89bad561ef6c) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x40000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x40000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "16.d14", 0x00000, 0x20000, CRC(df503504) SHA1(daa58a7bc24415b5f59b7c7cc918bc85de9702a3) )
ROM_LOAD16_BYTE( "15.a14", 0x00001, 0x20000, CRC(cd990442) SHA1(891b2163db23ab0bb40cbadce6e06fc067d0532f) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "6.s9", 0x00000, 0x20000, CRC(1054361d) SHA1(52566786ca8177404be8b66fd7de94ac25fc49ea) )
ROM_LOAD16_BYTE( "9.s11", 0x00001, 0x20000, CRC(6952ef4d) SHA1(b4e5ec02e97df213fe0bd4cd8a2ca77d7ecf8ad5) )
ROM_LOAD16_BYTE( "7.u9", 0x40000, 0x20000, CRC(6e57a888) SHA1(8efe876ea3c788b83e8291f7fc6f55b90de158c8) )
ROM_LOAD16_BYTE( "10.u11", 0x40001, 0x20000, CRC(a5548dca) SHA1(9914e01c1739c3bfd868a01e53c9030726ced4ea) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.s13", 0x00000, 0x20000, CRC(992bc4af) SHA1(94570ebd1ee6acf1871cf914907acd12dca4026e) )
ROM_LOAD16_BYTE( "14.s14", 0x00001, 0x20000, CRC(a79abc85) SHA1(3e63dad11db9b7420331403a1d551d8c041c4cc2) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* background tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* background tilemaps */
ROM_LOAD16_BYTE( "5.r9", 0x00000, 0x10000, CRC(4789bae8) SHA1(6ffecc16eb8c9c783b02c4ef68cb5098b01fafef) )
ROM_LOAD16_BYTE( "8.r11", 0x00001, 0x10000, CRC(92402b9a) SHA1(2ca8078d2687afbe7b6fc5412de16c6fbc11a650) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "11.r13", 0x00000, 0x10000, CRC(04b961de) SHA1(7a94c9d0800d79048660cf3758708a346ead33f9) )
ROM_LOAD16_BYTE( "13.r14", 0x00001, 0x10000, CRC(6bdbd887) SHA1(a54f26f9ddd72b8b8f7a030610c1c4a5f94a3358) )
ROM_END
@@ -1934,31 +1965,31 @@ ROM_START( gulfstrm )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "3.c5", 0x00000, 0x10000, CRC(c029b015) SHA1(86f8d4f6560cb99e25e8e8baf72dde743a7b9c4c) )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.s4", 0x0000, 0x8000, CRC(c2d65a25) SHA1(a198b42c0737b253aca5bab6fb58ab561ccc1d5c) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x08000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.s4", 0x00000, 0x08000, CRC(c2d65a25) SHA1(a198b42c0737b253aca5bab6fb58ab561ccc1d5c) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "14.b1", 0x00000, 0x20000, CRC(67bdf73d) SHA1(3e357448b6f255fdec731f143afa3d3149523ed2) )
ROM_LOAD16_BYTE( "16.c1", 0x00001, 0x20000, CRC(7770a76f) SHA1(4f9f5245f59008b26ed60e636285ea85271744e7) )
ROM_LOAD16_BYTE( "15.b1", 0x40000, 0x20000, CRC(84803f7e) SHA1(74b694c0d20c5b016b9d7258b0296229972151d5) )
ROM_LOAD16_BYTE( "17.e1", 0x40001, 0x20000, CRC(94706500) SHA1(8f4a6f7ce20b1b50577271601c2c2632b5a2292c) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "4.d8", 0x00000, 0x20000, CRC(858fdbb6) SHA1(4c317ab6069a8509287d3df88cf4272f512a40a3) )
ROM_LOAD16_BYTE( "5.b9", 0x00001, 0x20000, CRC(c0a552e8) SHA1(31dcb14eb8815c609b0bf4d5f1ea17b26ab18aec) )
ROM_LOAD16_BYTE( "6.d8", 0x40000, 0x20000, CRC(20eedda3) SHA1(8c8b1284e07f5380037f8431f2649aa99fd47542) )
ROM_LOAD16_BYTE( "7.d9", 0x40001, 0x20000, CRC(294f8c40) SHA1(b7afb87510ab52682151ff2b13029427487589ec) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.r8", 0x00000, 0x20000, CRC(ec3ad3e7) SHA1(276da309b788091cd6e5faada2ff9e5b0df2caea) )
ROM_LOAD16_BYTE( "13.r9", 0x00001, 0x20000, CRC(c64090cb) SHA1(5dab576e5f454c62c7826d477b3f699e979753ad) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* background tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* background tilemaps */
ROM_LOAD16_BYTE( "8.e8", 0x00000, 0x10000, CRC(8d7f4693) SHA1(a7c8573d9e54c8230decc3e88f76ae729d77b096) )
ROM_LOAD16_BYTE( "9.e9", 0x00001, 0x10000, CRC(34d440c4) SHA1(74b0e15e75f62106177234b6ea54a5d312628802) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "10.n8", 0x00000, 0x10000, CRC(b4f15bf4) SHA1(cb203390c3f917f213807a23c442e43bc6bcfc67) )
ROM_LOAD16_BYTE( "11.n9", 0x00001, 0x10000, CRC(7dfe4a9c) SHA1(40982b5b266e4a928544ab5ec330080935588c57) )
ROM_END
@@ -1970,31 +2001,31 @@ ROM_START( gulfstrma )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "3.c5", 0x00000, 0x10000, CRC(c029b015) SHA1(86f8d4f6560cb99e25e8e8baf72dde743a7b9c4c) )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.s4", 0x0000, 0x8000, CRC(c2d65a25) SHA1(a198b42c0737b253aca5bab6fb58ab561ccc1d5c) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x08000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.s4", 0x00000, 0x08000, CRC(c2d65a25) SHA1(a198b42c0737b253aca5bab6fb58ab561ccc1d5c) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "14.b1", 0x00000, 0x20000, CRC(67bdf73d) SHA1(3e357448b6f255fdec731f143afa3d3149523ed2) )
ROM_LOAD16_BYTE( "16.c1", 0x00001, 0x20000, CRC(7770a76f) SHA1(4f9f5245f59008b26ed60e636285ea85271744e7) )
ROM_LOAD16_BYTE( "15.b1", 0x40000, 0x20000, CRC(84803f7e) SHA1(74b694c0d20c5b016b9d7258b0296229972151d5) )
ROM_LOAD16_BYTE( "17.e1", 0x40001, 0x20000, CRC(94706500) SHA1(8f4a6f7ce20b1b50577271601c2c2632b5a2292c) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "4.d8", 0x00000, 0x20000, CRC(858fdbb6) SHA1(4c317ab6069a8509287d3df88cf4272f512a40a3) )
ROM_LOAD16_BYTE( "5.b9", 0x00001, 0x20000, CRC(c0a552e8) SHA1(31dcb14eb8815c609b0bf4d5f1ea17b26ab18aec) )
ROM_LOAD16_BYTE( "6.d8", 0x40000, 0x20000, CRC(20eedda3) SHA1(8c8b1284e07f5380037f8431f2649aa99fd47542) )
ROM_LOAD16_BYTE( "7.d9", 0x40001, 0x20000, CRC(294f8c40) SHA1(b7afb87510ab52682151ff2b13029427487589ec) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x20000, CRC(3e3d3b57) SHA1(398a6cac7144ba7bacaa36c593bcb4b3c051eb0f) )
ROM_LOAD16_BYTE( "13.bin", 0x00001, 0x20000, CRC(66fcce80) SHA1(6ab2b7cd49447d374cde40b98db0a6209dcad461) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* background tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* background tilemaps */
ROM_LOAD16_BYTE( "8.e8", 0x00000, 0x10000, CRC(8d7f4693) SHA1(a7c8573d9e54c8230decc3e88f76ae729d77b096) )
ROM_LOAD16_BYTE( "9.e9", 0x00001, 0x10000, CRC(34d440c4) SHA1(74b0e15e75f62106177234b6ea54a5d312628802) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "10.bin", 0x00000, 0x10000, CRC(08149140) SHA1(ff0094883ca0fc81bae991d6ea62d0064d6f7c47) )
ROM_LOAD16_BYTE( "11.bin", 0x00001, 0x10000, CRC(2ed7545b) SHA1(6a70743bbb03ef694310f2b5531f384209db62a1) )
ROM_END
@@ -2006,31 +2037,31 @@ ROM_START( gulfstrmb )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "3.c5", 0x00000, 0x10000, CRC(c029b015) SHA1(86f8d4f6560cb99e25e8e8baf72dde743a7b9c4c) )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.s4", 0x0000, 0x8000, CRC(c2d65a25) SHA1(a198b42c0737b253aca5bab6fb58ab561ccc1d5c) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x08000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.s4", 0x00000, 0x08000, CRC(c2d65a25) SHA1(a198b42c0737b253aca5bab6fb58ab561ccc1d5c) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "14.b1", 0x00000, 0x20000, CRC(67bdf73d) SHA1(3e357448b6f255fdec731f143afa3d3149523ed2) )
ROM_LOAD16_BYTE( "16.c1", 0x00001, 0x20000, CRC(7770a76f) SHA1(4f9f5245f59008b26ed60e636285ea85271744e7) )
ROM_LOAD16_BYTE( "15.b1", 0x40000, 0x20000, CRC(84803f7e) SHA1(74b694c0d20c5b016b9d7258b0296229972151d5) )
ROM_LOAD16_BYTE( "17.e1", 0x40001, 0x20000, CRC(94706500) SHA1(8f4a6f7ce20b1b50577271601c2c2632b5a2292c) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "4.d8", 0x00000, 0x20000, CRC(858fdbb6) SHA1(4c317ab6069a8509287d3df88cf4272f512a40a3) )
ROM_LOAD16_BYTE( "5.b9", 0x00001, 0x20000, CRC(c0a552e8) SHA1(31dcb14eb8815c609b0bf4d5f1ea17b26ab18aec) )
ROM_LOAD16_BYTE( "6.d8", 0x40000, 0x20000, CRC(20eedda3) SHA1(8c8b1284e07f5380037f8431f2649aa99fd47542) )
ROM_LOAD16_BYTE( "7.d9", 0x40001, 0x20000, CRC(294f8c40) SHA1(b7afb87510ab52682151ff2b13029427487589ec) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x20000, CRC(3e3d3b57) SHA1(398a6cac7144ba7bacaa36c593bcb4b3c051eb0f) )
ROM_LOAD16_BYTE( "13.bin", 0x00001, 0x20000, CRC(66fcce80) SHA1(6ab2b7cd49447d374cde40b98db0a6209dcad461) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* background tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* background tilemaps */
ROM_LOAD16_BYTE( "8.e8", 0x00000, 0x10000, CRC(8d7f4693) SHA1(a7c8573d9e54c8230decc3e88f76ae729d77b096) )
ROM_LOAD16_BYTE( "9.e9", 0x00001, 0x10000, CRC(34d440c4) SHA1(74b0e15e75f62106177234b6ea54a5d312628802) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "10.bin", 0x00000, 0x10000, CRC(08149140) SHA1(ff0094883ca0fc81bae991d6ea62d0064d6f7c47) )
ROM_LOAD16_BYTE( "11.bin", 0x00001, 0x10000, CRC(2ed7545b) SHA1(6a70743bbb03ef694310f2b5531f384209db62a1) )
ROM_END
@@ -2042,31 +2073,31 @@ ROM_START( gulfstrmm )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "3.c5", 0x00000, 0x10000, CRC(c029b015) SHA1(86f8d4f6560cb99e25e8e8baf72dde743a7b9c4c) )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(cb555d96) SHA1(ebc1dee91a09a829db2ae6fc1616c7c989f7f1c2) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x08000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.bin", 0x00000, 0x08000, CRC(cb555d96) SHA1(ebc1dee91a09a829db2ae6fc1616c7c989f7f1c2) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "14.b1", 0x00000, 0x20000, CRC(67bdf73d) SHA1(3e357448b6f255fdec731f143afa3d3149523ed2) )
ROM_LOAD16_BYTE( "16.c1", 0x00001, 0x20000, CRC(7770a76f) SHA1(4f9f5245f59008b26ed60e636285ea85271744e7) )
ROM_LOAD16_BYTE( "15.b1", 0x40000, 0x20000, CRC(84803f7e) SHA1(74b694c0d20c5b016b9d7258b0296229972151d5) )
ROM_LOAD16_BYTE( "17.e1", 0x40001, 0x20000, CRC(94706500) SHA1(8f4a6f7ce20b1b50577271601c2c2632b5a2292c) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "4.d8", 0x00000, 0x20000, CRC(858fdbb6) SHA1(4c317ab6069a8509287d3df88cf4272f512a40a3) )
ROM_LOAD16_BYTE( "5.b9", 0x00001, 0x20000, CRC(c0a552e8) SHA1(31dcb14eb8815c609b0bf4d5f1ea17b26ab18aec) )
ROM_LOAD16_BYTE( "6.d8", 0x40000, 0x20000, CRC(20eedda3) SHA1(8c8b1284e07f5380037f8431f2649aa99fd47542) )
ROM_LOAD16_BYTE( "7.d9", 0x40001, 0x20000, CRC(294f8c40) SHA1(b7afb87510ab52682151ff2b13029427487589ec) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x20000, CRC(3e3d3b57) SHA1(398a6cac7144ba7bacaa36c593bcb4b3c051eb0f) )
ROM_LOAD16_BYTE( "13.bin", 0x00001, 0x20000, CRC(66fcce80) SHA1(6ab2b7cd49447d374cde40b98db0a6209dcad461) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* background tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* background tilemaps */
ROM_LOAD16_BYTE( "8.e8", 0x00000, 0x10000, CRC(8d7f4693) SHA1(a7c8573d9e54c8230decc3e88f76ae729d77b096) )
ROM_LOAD16_BYTE( "9.e9", 0x00001, 0x10000, CRC(34d440c4) SHA1(74b0e15e75f62106177234b6ea54a5d312628802) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "10.bin", 0x00000, 0x10000, CRC(08149140) SHA1(ff0094883ca0fc81bae991d6ea62d0064d6f7c47) )
ROM_LOAD16_BYTE( "11.bin", 0x00001, 0x10000, CRC(2ed7545b) SHA1(6a70743bbb03ef694310f2b5531f384209db62a1) )
ROM_END
@@ -2078,31 +2109,31 @@ ROM_START( gulfstrmk )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "3.c5", 0x00000, 0x10000, CRC(c029b015) SHA1(86f8d4f6560cb99e25e8e8baf72dde743a7b9c4c) )
- ROM_REGION( 0x8000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(cb555d96) SHA1(ebc1dee91a09a829db2ae6fc1616c7c989f7f1c2) ) /* empty */
- ROM_CONTINUE( 0x0000, 0x8000 )
+ ROM_REGION( 0x08000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.bin", 0x00000, 0x08000, CRC(cb555d96) SHA1(ebc1dee91a09a829db2ae6fc1616c7c989f7f1c2) ) /* empty */
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "14.b1", 0x00000, 0x20000, CRC(67bdf73d) SHA1(3e357448b6f255fdec731f143afa3d3149523ed2) )
ROM_LOAD16_BYTE( "16.c1", 0x00001, 0x20000, CRC(7770a76f) SHA1(4f9f5245f59008b26ed60e636285ea85271744e7) )
ROM_LOAD16_BYTE( "15.b1", 0x40000, 0x20000, CRC(84803f7e) SHA1(74b694c0d20c5b016b9d7258b0296229972151d5) )
ROM_LOAD16_BYTE( "17.e1", 0x40001, 0x20000, CRC(94706500) SHA1(8f4a6f7ce20b1b50577271601c2c2632b5a2292c) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "4.d8", 0x00000, 0x20000, CRC(858fdbb6) SHA1(4c317ab6069a8509287d3df88cf4272f512a40a3) )
ROM_LOAD16_BYTE( "5.b9", 0x00001, 0x20000, CRC(c0a552e8) SHA1(31dcb14eb8815c609b0bf4d5f1ea17b26ab18aec) )
ROM_LOAD16_BYTE( "6.d8", 0x40000, 0x20000, CRC(20eedda3) SHA1(8c8b1284e07f5380037f8431f2649aa99fd47542) )
ROM_LOAD16_BYTE( "7.d9", 0x40001, 0x20000, CRC(294f8c40) SHA1(b7afb87510ab52682151ff2b13029427487589ec) )
- ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x20000, CRC(3e3d3b57) SHA1(398a6cac7144ba7bacaa36c593bcb4b3c051eb0f) )
ROM_LOAD16_BYTE( "13.bin", 0x00001, 0x20000, CRC(66fcce80) SHA1(6ab2b7cd49447d374cde40b98db0a6209dcad461) )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* background tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* background tilemaps */
ROM_LOAD16_BYTE( "8.e8", 0x00000, 0x10000, CRC(8d7f4693) SHA1(a7c8573d9e54c8230decc3e88f76ae729d77b096) )
ROM_LOAD16_BYTE( "9.e9", 0x00001, 0x10000, CRC(34d440c4) SHA1(74b0e15e75f62106177234b6ea54a5d312628802) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "10.bin", 0x00000, 0x10000, CRC(08149140) SHA1(ff0094883ca0fc81bae991d6ea62d0064d6f7c47) )
ROM_LOAD16_BYTE( "11.bin", 0x00001, 0x10000, CRC(2ed7545b) SHA1(6a70743bbb03ef694310f2b5531f384209db62a1) )
ROM_END
@@ -2114,26 +2145,26 @@ ROM_START( pollux )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "pollux3.bin", 0x00000, 0x10000, CRC(85a9dc98) SHA1(a349bfb05d870ba920469066ce5c007363aca348) )
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "pollux1.bin", 0x08000, 0x08000, CRC(7f7135da) SHA1(0f77841e52b3d7e731d5142fba9ed5cd57343305) )
ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_WORD_SWAP( "dy-pl-m2_be023.bin", 0x00000, 0x80000, CRC(bdea6f7d) SHA1(b418710a6d12aa53037acf7bbec85a26dfac9ebe) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_WORD_SWAP( "dy-pl-m1_be015.bin", 0x00000, 0x80000, CRC(1d2dedd2) SHA1(9bcb1c80f05eabbca2c0738e409d3cadfc14b0c8) )
- ROM_REGION16_BE( 0x80000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "pollux6.bin", 0x00000, 0x20000, CRC(b0391db5) SHA1(0c522c5074dc7c0a639ebfb7b9a9eddc90314081) )
ROM_LOAD16_BYTE( "pollux7.bin", 0x00001, 0x20000, CRC(632f6e10) SHA1(a3605cbe7a9dc04cd8c1ab50110f72d93c78208b) )
ROM_FILL( 0x40000, 0x40000, 0xff )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* bg tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* bg tilemaps */
ROM_LOAD16_BYTE( "pollux9.bin", 0x00000, 0x10000, CRC(378d8914) SHA1(ef95903971673bc26774fe2aff17e1581a7f0eb9) )
ROM_LOAD16_BYTE( "pollux8.bin", 0x00001, 0x10000, CRC(8859fa70) SHA1(7b1b9edde3f762c7ae1f0b847aa17e30140e9ffa) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "pollux5.bin", 0x00000, 0x10000, CRC(ac090d34) SHA1(6b554450d8d46165e25fd6f12ab4c4b9b63dcd35) )
ROM_LOAD16_BYTE( "pollux4.bin", 0x00001, 0x10000, CRC(2c6bd3be) SHA1(6648264be83588a01f264e7ec72d84e29e0d4795) )
ROM_END
@@ -2145,26 +2176,26 @@ ROM_START( polluxa )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "pollux3.bin", 0x00000, 0x10000, CRC(85a9dc98) SHA1(a349bfb05d870ba920469066ce5c007363aca348) )
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "dooyong1.bin", 0x08000, 0x08000, CRC(a7d820b2) SHA1(bbcc3690f91a4bd4f0cff5da25cbfeceb7a19437) )
- ROM_CONTINUE( 0x00000, 0x08000 )
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_WORD_SWAP( "dy-pl-m2_be023.bin", 0x00000, 0x80000, CRC(bdea6f7d) SHA1(b418710a6d12aa53037acf7bbec85a26dfac9ebe) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_WORD_SWAP( "dy-pl-m1_be015.bin", 0x00000, 0x80000, CRC(1d2dedd2) SHA1(9bcb1c80f05eabbca2c0738e409d3cadfc14b0c8) )
- ROM_REGION16_BE( 0x80000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "pollux6.bin", 0x00000, 0x20000, CRC(b0391db5) SHA1(0c522c5074dc7c0a639ebfb7b9a9eddc90314081) )
ROM_LOAD16_BYTE( "pollux7.bin", 0x00001, 0x20000, CRC(632f6e10) SHA1(a3605cbe7a9dc04cd8c1ab50110f72d93c78208b) )
ROM_FILL( 0x40000, 0x40000, 0xff )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* bg tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* bg tilemaps */
ROM_LOAD16_BYTE( "pollux9.bin", 0x00000, 0x10000, CRC(378d8914) SHA1(ef95903971673bc26774fe2aff17e1581a7f0eb9) )
ROM_LOAD16_BYTE( "pollux8.bin", 0x00001, 0x10000, CRC(8859fa70) SHA1(7b1b9edde3f762c7ae1f0b847aa17e30140e9ffa) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "pollux5.bin", 0x00000, 0x10000, CRC(ac090d34) SHA1(6b554450d8d46165e25fd6f12ab4c4b9b63dcd35) )
ROM_LOAD16_BYTE( "pollux4.bin", 0x00001, 0x10000, CRC(2c6bd3be) SHA1(6648264be83588a01f264e7ec72d84e29e0d4795) )
ROM_END
@@ -2176,26 +2207,26 @@ ROM_START( polluxa2 )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "pollux3.bin", 0x00000, 0x10000, CRC(85a9dc98) SHA1(a349bfb05d870ba920469066ce5c007363aca348) )
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "dooyong1.bin", 0x08000, 0x08000, CRC(a7d820b2) SHA1(bbcc3690f91a4bd4f0cff5da25cbfeceb7a19437) )
- ROM_CONTINUE( 0x00000, 0x08000 )
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_WORD_SWAP( "dy-pl-m2_be023.bin", 0x00000, 0x80000, CRC(bdea6f7d) SHA1(b418710a6d12aa53037acf7bbec85a26dfac9ebe) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_WORD_SWAP( "dy-pl-m1_be015.bin", 0x00000, 0x80000, CRC(1d2dedd2) SHA1(9bcb1c80f05eabbca2c0738e409d3cadfc14b0c8) )
- ROM_REGION16_BE( 0x80000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "pollux6.bin", 0x00000, 0x20000, CRC(b0391db5) SHA1(0c522c5074dc7c0a639ebfb7b9a9eddc90314081) )
ROM_LOAD16_BYTE( "pollux7.bin", 0x00001, 0x20000, CRC(632f6e10) SHA1(a3605cbe7a9dc04cd8c1ab50110f72d93c78208b) )
ROM_FILL( 0x40000, 0x40000, 0xff )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* bg tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* bg tilemaps */
ROM_LOAD16_BYTE( "pollux9.bin", 0x00000, 0x10000, CRC(378d8914) SHA1(ef95903971673bc26774fe2aff17e1581a7f0eb9) )
ROM_LOAD16_BYTE( "pollux8.bin", 0x00001, 0x10000, CRC(8859fa70) SHA1(7b1b9edde3f762c7ae1f0b847aa17e30140e9ffa) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "pollux5.bin", 0x00000, 0x10000, CRC(ac090d34) SHA1(6b554450d8d46165e25fd6f12ab4c4b9b63dcd35) )
ROM_LOAD16_BYTE( "pollux4.bin", 0x00001, 0x10000, CRC(2c6bd3be) SHA1(6648264be83588a01f264e7ec72d84e29e0d4795) )
ROM_END
@@ -2207,26 +2238,26 @@ ROM_START( polluxn )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "polluxntc_3.6t", 0x00000, 0x10000, CRC(85a9dc98) SHA1(a349bfb05d870ba920469066ce5c007363aca348) )
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "polluxntc_1.3r", 0x08000, 0x08000, CRC(7f7135da) SHA1(0f77841e52b3d7e731d5142fba9ed5cd57343305) )
- ROM_CONTINUE( 0x00000, 0x08000 )
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_WORD_SWAP( "polluxntc_dy-pl-m2_be023.3t", 0x00000, 0x80000, CRC(bdea6f7d) SHA1(b418710a6d12aa53037acf7bbec85a26dfac9ebe) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles */
ROM_LOAD16_WORD_SWAP( "polluxntc_dy-pl-m1_be002.8a", 0x00000, 0x80000, CRC(1d2dedd2) SHA1(9bcb1c80f05eabbca2c0738e409d3cadfc14b0c8) )
- ROM_REGION16_BE( 0x80000, "gfx4", 0 ) /* tiles */
+ ROM_REGION16_BE( 0x80000, "fg0", 0 ) /* tiles */
ROM_LOAD16_BYTE( "polluxntc_6.8m", 0x00000, 0x20000, CRC(b0391db5) SHA1(0c522c5074dc7c0a639ebfb7b9a9eddc90314081) )
ROM_LOAD16_BYTE( "polluxntc_7.8l", 0x00001, 0x20000, CRC(632f6e10) SHA1(a3605cbe7a9dc04cd8c1ab50110f72d93c78208b) )
- ROM_FILL( 0x40000, 0x40000, 0xff )
+ ROM_FILL( 0x40000, 0x40000, 0xff )
- ROM_REGION16_BE( 0x20000, "gfx5", 0 ) /* bg tilemaps */
+ ROM_REGION16_BE( 0x20000, "bg0_tmap", 0 ) /* bg tilemaps */
ROM_LOAD16_BYTE( "polluxntc_9.8b", 0x00000, 0x10000, CRC(378d8914) SHA1(ef95903971673bc26774fe2aff17e1581a7f0eb9) )
ROM_LOAD16_BYTE( "polluxntc_8.8j", 0x00001, 0x10000, CRC(8859fa70) SHA1(7b1b9edde3f762c7ae1f0b847aa17e30140e9ffa) )
- ROM_REGION16_BE( 0x20000, "gfx6", 0 ) /* fg tilemaps */
+ ROM_REGION16_BE( 0x20000, "fg0_tmap", 0 ) /* fg tilemaps */
ROM_LOAD16_BYTE( "polluxntc_5.8p", 0x00000, 0x10000, CRC(ac090d34) SHA1(6b554450d8d46165e25fd6f12ab4c4b9b63dcd35) )
ROM_LOAD16_BYTE( "polluxntc_4.8r", 0x00001, 0x10000, BAD_DUMP CRC(0195dc4e) SHA1(c87c90a38b382f11ee3377683c0becda745341e0) ) // need to confirm as bad, the same as other sets except it has some bits of data blanked out with 0xFF
ROM_END
@@ -2239,19 +2270,19 @@ ROM_START( bluehawk )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "rom1", 0x00000, 0x10000, CRC(eef22920) SHA1(a3295ae7524df8c4d00ac3da422bbf66c959bf4f) )
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "rom3", 0x00000, 0x10000, CRC(c192683f) SHA1(060372b21bf331671c135a074640868eeb5f13ec) )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_WORD_SWAP( "dy-bh-m3", 0x00000, 0x80000, CRC(8809d157) SHA1(7f86378f9fcb95ab83b68f37a29732bb8cb3d95a) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "dy-bh-m1", 0x00000, 0x80000, CRC(51816b2c) SHA1(72fb055de7979e40195316ef38a2e8c54be12e2b) )
- ROM_REGION16_BE( 0x80000, "gfx4", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x80000, "fg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "dy-bh-m2", 0x00000, 0x80000, CRC(f9daace6) SHA1(5e7892bad170ab9bd52426629ad49843fbc31996) )
- ROM_REGION16_BE( 0x40000, "gfx5", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x40000, "fg1", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "rom6", 0x00000, 0x20000, CRC(e6bd9daa) SHA1(3b478fd02b145d13e49539df5260191a5254be19) )
ROM_LOAD16_BYTE( "rom5", 0x00001, 0x20000, CRC(5c654dc6) SHA1(f10f64d7114adf7f18ec37c193c524ec80236201) )
@@ -2266,19 +2297,19 @@ ROM_START( bluehawkn )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "rom1", 0x00000, 0x10000, CRC(eef22920) SHA1(a3295ae7524df8c4d00ac3da422bbf66c959bf4f) )
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "rom3ntc", 0x00000, 0x10000, CRC(31eb221a) SHA1(7b893972227047d2f609fd1f97cc006eba2c9579) )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_WORD_SWAP( "dy-bh-m3", 0x00000, 0x80000, CRC(8809d157) SHA1(7f86378f9fcb95ab83b68f37a29732bb8cb3d95a) ) // ROM7+ROM8+ROM13+ROM14
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "dy-bh-m1", 0x00000, 0x80000, CRC(51816b2c) SHA1(72fb055de7979e40195316ef38a2e8c54be12e2b) ) // ROM9+ROM10+ROM15+ROM16
- ROM_REGION16_BE( 0x80000, "gfx4", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x80000, "fg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "dy-bh-m2", 0x00000, 0x80000, CRC(f9daace6) SHA1(5e7892bad170ab9bd52426629ad49843fbc31996) ) // ROM11+ROM12+ROM17+ROM18
- ROM_REGION16_BE( 0x40000, "gfx5", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x40000, "fg1", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "rom6", 0x00000, 0x20000, CRC(e6bd9daa) SHA1(3b478fd02b145d13e49539df5260191a5254be19) )
ROM_LOAD16_BYTE( "rom5", 0x00001, 0x20000, CRC(5c654dc6) SHA1(f10f64d7114adf7f18ec37c193c524ec80236201) )
@@ -2362,20 +2393,20 @@ ROM_START( flytiger )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "3.6p", 0x00000, 0x10000, CRC(d238df5e) SHA1(428fd7abd78238089c0c0fd73de57102f4f65a74))
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "2.4h", 0x08000, 0x08000, CRC(2fb72912) SHA1(34453e2b49cf3a6bc9e87a8400428d95f626b97a) )
- ROM_CONTINUE( 0x00000, 0x8000 )
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "16.4h", 0x00000, 0x20000, CRC(8a158b95) SHA1(ed09d9c40b76a27e06601381e463a00b16555f1e) )
ROM_LOAD16_BYTE( "15.2h", 0x00001, 0x20000, CRC(399f6043) SHA1(ea0debd6d0f8c61f0078809c2828734fc15e891d) )
ROM_LOAD16_BYTE( "14.4k", 0x40000, 0x20000, CRC(df66b6f3) SHA1(3a29ae69a09306c5a2a2786acbf227832b408152) )
ROM_LOAD16_BYTE( "13.2k", 0x40001, 0x20000, CRC(f24a5099) SHA1(408559057989a40ca298baa85d5fe7cbde72d2b8) )
- ROM_REGION16_BE( 0x80000, "gfx3",0 ) /* tiles + tilemaps */
- ROM_LOAD16_WORD_SWAP( "dy-ft-m1.11n", 0x00000, 0x80000, CRC(f06589c2) SHA1(fb4aa12257e2e0162f2219ebea5177e8bb15e3f0) )
+ ROM_REGION16_BE( 0x80000, "bg0",0 ) /* tiles + tilemaps */
+ ROM_LOAD16_WORD_SWAP( "dy-ft-m1.11n", 0x00000, 0x80000, CRC(f06589c2) SHA1(fb4aa12257e2e0162f2219ebea5177e8bb15e3f0) )
- ROM_REGION16_BE( 0x80000, "gfx4",0 ) /* tiles + tilemaps */
+ ROM_REGION16_BE( 0x80000, "fg0",0 ) /* tiles + tilemaps */
ROM_LOAD16_WORD_SWAP("dy-ft-m2.11g", 0x00000, 0x80000, CRC(7545f9c9) SHA1(dcab4d64a8fada5afd4a352f5a30c868676d2b57) )
ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
@@ -2389,23 +2420,23 @@ ROM_START( flytigera ) // alt pcb type
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "ftiger_11.6p", 0x00000, 0x10000, CRC(d238df5e) SHA1(428fd7abd78238089c0c0fd73de57102f4f65a74))
- ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_REGION( 0x10000, "tx", 0 ) /* chars */
ROM_LOAD( "ftiger_2.4h", 0x08000, 0x08000, CRC(ca9d6713) SHA1(645cccc06c7f6744b25e7917f414956856419b8a) )
- ROM_CONTINUE( 0x00000, 0x8000 )
+ ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* sprites */
+ ROM_REGION16_BE( 0x80000, "sprite", 0 ) /* sprites */
ROM_LOAD16_BYTE( "ftiger_16.4h", 0x00000, 0x20000, CRC(8a158b95) SHA1(ed09d9c40b76a27e06601381e463a00b16555f1e) )
ROM_LOAD16_BYTE( "ftiger_15.2h", 0x00001, 0x20000, CRC(399f6043) SHA1(ea0debd6d0f8c61f0078809c2828734fc15e891d) )
ROM_LOAD16_BYTE( "ftiger_14.4k", 0x40000, 0x20000, CRC(df66b6f3) SHA1(3a29ae69a09306c5a2a2786acbf227832b408152) )
ROM_LOAD16_BYTE( "ftiger_13.2k", 0x40001, 0x20000, CRC(f24a5099) SHA1(408559057989a40ca298baa85d5fe7cbde72d2b8) )
- ROM_REGION16_BE( 0x80000, "gfx3",0 ) /* tiles + tilemaps */ // same data, but split
+ ROM_REGION16_BE( 0x80000, "bg0",0 ) /* tiles + tilemaps */ // same data, but split
ROM_LOAD16_BYTE( "ftiger_3.10p", 0x00001, 0x20000, CRC(9fc12ebd) SHA1(c8f03a20da01bd61a27813564eb79bb2e8483f28) )
ROM_LOAD16_BYTE( "ftiger_5.10l", 0x00000, 0x20000, CRC(06c9dd2a) SHA1(20235b7d55b9bc73ddb1fec5fd68e5ba32508d1b) )
ROM_LOAD16_BYTE( "ftiger_4.11p", 0x40001, 0x20000, CRC(fb30e884) SHA1(1f01ed15ae6cdebb120cc1f03ac65465c824dc89) )
ROM_LOAD16_BYTE( "ftiger_6.11l", 0x40000, 0x20000, CRC(dfb85152) SHA1(03a07e016d400c1c0e7a59716c08a61e23e5d60f) )
- ROM_REGION16_BE( 0x80000, "gfx4",0 ) /* tiles + tilemaps */ // same data, but split
+ ROM_REGION16_BE( 0x80000, "fg0",0 ) /* tiles + tilemaps */ // same data, but split
ROM_LOAD16_BYTE( "ftiger_8.11h", 0x00001, 0x20000, CRC(cbd8c22f) SHA1(e7e64c99990e99336abbdbd7ffadfa4c0f1a4c0f) )
ROM_LOAD16_BYTE( "ftiger_10.11f",0x00000, 0x20000, CRC(e2175f3b) SHA1(1ce17beb431bb3e8454bb1899f28d16c6a537183) )
ROM_LOAD16_BYTE( "ftiger_7.10h", 0x40001, 0x20000, CRC(be431c61) SHA1(3227912117700751370059c173e46d0a8367c5f8) )
@@ -2420,20 +2451,20 @@ ROM_START( sadari )
ROM_LOAD( "1.3d", 0x00000, 0x20000, CRC(bd953217) SHA1(6e230103ea01744761ab8a194d0dde6921bee92e) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
- ROM_LOAD( "3.6r", 0x0000, 0x10000, CRC(4786fca6) SHA1(b2347e2f6bbe3dd9d1cc8d8a4af40e7997d5ab74) )
+ ROM_LOAD( "3.6r", 0x00000, 0x10000, CRC(4786fca6) SHA1(b2347e2f6bbe3dd9d1cc8d8a4af40e7997d5ab74) )
- ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "2.4c", 0x0000, 0x20000, CRC(b2a3f1c6) SHA1(06f0038dc113c8001786157b9c9ee0eda76c2411) )
+ ROM_REGION( 0x20000, "tx", 0 ) /* chars */
+ ROM_LOAD( "2.4c", 0x00000, 0x20000, CRC(b2a3f1c6) SHA1(06f0038dc113c8001786157b9c9ee0eda76c2411) )
/* no sprites */
- ROM_REGION16_BE( 0x80000, "gfx2", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x80000, "bg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "10.10l", 0x00000, 0x20000, CRC(70269ab1) SHA1(055ff484da028f11bb3097652ef4713603870f89) )
ROM_LOAD16_BYTE( "5.8l", 0x00001, 0x20000, CRC(ceceb4c3) SHA1(db08bbe9d23eb50d5c0603893a6e0368e2b6bbba) )
ROM_LOAD16_BYTE( "9.10n", 0x40000, 0x20000, CRC(21bd1bda) SHA1(a5c9df8b45b05130374a83e45b3fb7cce76b58f8) )
ROM_LOAD16_BYTE( "4.8n", 0x40001, 0x20000, CRC(cd318ae5) SHA1(457ccaf1d841ff763878dca8e534b9738510899a) )
- ROM_REGION16_BE( 0x80000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x80000, "fg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "11.10j", 0x00000, 0x20000, CRC(62a1d580) SHA1(4df60db9ad306a4d8776d10826e802cab27809f7) )
ROM_LOAD16_BYTE( "6.8j", 0x00001, 0x20000, CRC(c4b13ed7) SHA1(97a33d700a8372b0e4bb13e567afc5ef898e9351) )
ROM_LOAD16_BYTE( "12.10g", 0x40000, 0x20000, CRC(547b7645) SHA1(fdfe5cccdae1b88736aae702aa55fd642396ce01) )
@@ -2448,18 +2479,18 @@ ROM_START( gundl94 )
ROM_LOAD( "gd94_001.d3", 0x00000, 0x20000, CRC(3a5cc045) SHA1(182743458c36bb6254a39cf9a371fd2b0d72d145) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
- ROM_LOAD( "gd94_003.r6", 0x0000, 0x10000, CRC(ea41c4ad) SHA1(e39e0507f4f370432ef0ca11dbecef176716cec4) )
+ ROM_LOAD( "gd94_003.r6", 0x00000, 0x10000, CRC(ea41c4ad) SHA1(e39e0507f4f370432ef0ca11dbecef176716cec4) )
- ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "gd94_002.c5", 0x0000, 0x20000, CRC(8575e64b) SHA1(08ef8af655a354c30ee3fe587554e418903147f5) )
+ ROM_REGION( 0x20000, "tx", 0 ) /* chars */
+ ROM_LOAD( "gd94_002.c5", 0x00000, 0x20000, CRC(8575e64b) SHA1(08ef8af655a354c30ee3fe587554e418903147f5) )
/* no sprites */
- ROM_REGION16_BE( 0x40000, "gfx2", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x40000, "bg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "gd94_009.n9", 0x00000, 0x20000, CRC(40eabf55) SHA1(660f4318248001049369e1e715c7ff09d551c256) )
ROM_LOAD16_BYTE( "gd94_004.n7", 0x00001, 0x20000, CRC(0654abb9) SHA1(c0fcd8ba78db341f46acb523c670d053e3d82b16) )
- ROM_REGION16_BE( 0x40000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "gd94_012.g9", 0x00000, 0x20000, CRC(117c693c) SHA1(e08bd6fbbae8ac657e6a1f9df36983ace941da3a) )
ROM_LOAD16_BYTE( "gd94_007.g7", 0x00001, 0x20000, CRC(96a72c6d) SHA1(b79a746fc114eb8977591f147e4ea4a4e4f14526) )
@@ -2470,7 +2501,7 @@ ROM_START( gundl94 )
ROM_LOAD( "gd94_011.j9", 0x00000, 0x20000, CRC(d8ad0208) SHA1(5df0f94ef86d7a03bde546e7aafdc0caf8a17076) )
ROM_RELOAD( 0x10000, 0x20000 ) /* banked at 0x8000-0xbfff */
- ROM_REGION( 0x40000, "gfx4", 0 ) /* more tiles? they don't seem to belong to this game! */
+ ROM_REGION16_BE( 0x40000, "gfx4", 0 ) /* more tiles? they don't seem to belong to this game! */
ROM_LOAD16_BYTE( "gd94_006.j7", 0x00000, 0x20000, CRC(1d9536fe) SHA1(d72e66a529456c87217f9ba88f7f45aa2aa3e399) )
ROM_LOAD16_BYTE( "gd94_010.l7", 0x00001, 0x20000, CRC(4b74857f) SHA1(a4413369fdb165c0f12454592181675095f28145) )
ROM_END
@@ -2480,18 +2511,18 @@ ROM_START( primella )
ROM_LOAD( "1_d3.bin", 0x00000, 0x20000, CRC(82fea4e0) SHA1(3603c0edda29868d5e282465880e1ad341365f6f) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
- ROM_LOAD( "gd94_003.r6", 0x0000, 0x10000, CRC(ea41c4ad) SHA1(e39e0507f4f370432ef0ca11dbecef176716cec4) )
+ ROM_LOAD( "gd94_003.r6", 0x00000, 0x10000, CRC(ea41c4ad) SHA1(e39e0507f4f370432ef0ca11dbecef176716cec4) )
- ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
- ROM_LOAD( "gd94_002.c5", 0x0000, 0x20000, CRC(8575e64b) SHA1(08ef8af655a354c30ee3fe587554e418903147f5) )
+ ROM_REGION( 0x20000, "tx", 0 ) /* chars */
+ ROM_LOAD( "gd94_002.c5", 0x00000, 0x20000, CRC(8575e64b) SHA1(08ef8af655a354c30ee3fe587554e418903147f5) )
/* no sprites */
- ROM_REGION16_BE( 0x40000, "gfx2", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x40000, "bg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "7_n9.bin", 0x00000, 0x20000, CRC(20b6a574) SHA1(e180e8440bf2dc22c7d24707fc47d0c70433ecba) )
ROM_LOAD16_BYTE( "4_n7.bin", 0x00001, 0x20000, CRC(fe593666) SHA1(f511e4881f79de91c501b0026de2ac5b4a59f747) )
- ROM_REGION16_BE( 0x40000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x40000, "fg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_BYTE( "8_g9.bin", 0x00000, 0x20000, CRC(542ecb83) SHA1(0a4decaad9dde4681f7b6cdab0ae0e4951efc83d) )
ROM_LOAD16_BYTE( "5_g7.bin", 0x00001, 0x20000, CRC(058ecac6) SHA1(12f70f78b882b6ce08c56f6fa9a1211c3464bf9d) )
@@ -2569,23 +2600,27 @@ ROM_START( superx )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "1.5u", 0x0000, 0x10000, CRC(6894ce05) SHA1(9726fc3f1e9bebecf498c208ab03007f34936632) )
- ROM_REGION16_BE( 0x200000, "gfx1", 0 ) /* sprite */
- ROM_LOAD16_WORD_SWAP( "spxo-m05.10m", 0x00000, 0x200000, CRC(9120dd84) SHA1(bcf1fdc860d51b9bcfec1e84940ef21dfc41b5dc) )
+ ROM_REGION16_BE( 0x200000, "sprite", 0 ) /* sprite */
+ ROM_LOAD16_WORD_SWAP( "spxo-m05.10m", 0x00000, 0x200000, CRC(9120dd84) SHA1(bcf1fdc860d51b9bcfec1e84940ef21dfc41b5dc) )
- ROM_REGION16_BE( 0x100000, "gfx2", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x100000, "fg1", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "spxb-m04.8f", 0x00000, 0x100000, CRC(91a7ac6e) SHA1(b7fb79c2e4f5eecb7128b86ee2b1070eed905d2a) ) // bomb
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION16_BE( 0x100000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x100000, "fg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "spxb-m03.8j", 0x00000, 0x100000, CRC(8b42861b) SHA1(6eb1f6bfe0b8e987e624a6fe7e025c6918804cf9) ) // title logo
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION16_BE( 0x100000, "gfx4", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_WORD_SWAP( "spxb-m02.8a", 0x00000, 0x100000, CRC(21b8db78) SHA1(e7c51c9566ebce5b5db5af48f33e2194b518715f)) // title screen upper background
+ ROM_REGION16_BE( 0x100000, "bg1", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_WORD_SWAP( "spxb-m02.8a", 0x00000, 0x100000, CRC(21b8db78) SHA1(e7c51c9566ebce5b5db5af48f33e2194b518715f) ) // title screen upper background
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION16_BE( 0x100000, "gfx5", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x100000, "bg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "spxb-m01.8c", 0x00000, 0x100000, CRC(60c69129) SHA1(6871b08e354c7cf5fb16b0ed4562c537e2ce9194) ) // title screen lower background
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION( 0x80000, "gfx6", 0 ) /* top 4 bits of tilemaps */
- ROM_LOAD( "spxb-ms3.10f", 0x00000, 0x20000, CRC(8bf8c77d) SHA1(a89e50bd571e754cb56a17fe4ada6a804e74520b)) // bomb
+ ROM_REGION( 0x80000, "tmap_hi", 0 ) /* top 4 bits of tilemaps */
+ ROM_LOAD( "spxb-ms3.10f", 0x00000, 0x20000, CRC(8bf8c77d) SHA1(a89e50bd571e754cb56a17fe4ada6a804e74520b) ) // bomb
ROM_LOAD( "spxb-ms4.10j", 0x20000, 0x20000, CRC(d418a900) SHA1(0d69afa48d3072c7fecfc5d6dd63717b9f61c0fc) ) // title logo
ROM_LOAD( "spxb-ms2.10a", 0x40000, 0x20000, CRC(5ec87adf) SHA1(cdd0864ea23b2c6d8ace519fc66e77f59813e206) ) // title screen upper background
ROM_LOAD( "spxb-ms1.10c", 0x60000, 0x20000, CRC(40b4fe6c) SHA1(5ab63ce83522c32039ee33c59e713d2fb37aac44) ) // title screen lower background
@@ -2604,23 +2639,27 @@ ROM_START( superxm )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "1_m.5u", 0x0000, 0x10000, CRC(319fa632) SHA1(b621ad080e8cf6611fc88d8fc2af5aa4e31e9e01) )
- ROM_REGION16_BE( 0x200000, "gfx1", 0 ) /* sprite */
- ROM_LOAD16_WORD_SWAP( "spxo-m05.10m", 0x00000, 0x200000, CRC(9120dd84) SHA1(bcf1fdc860d51b9bcfec1e84940ef21dfc41b5dc) )
+ ROM_REGION16_BE( 0x200000, "sprite", 0 ) /* sprite */
+ ROM_LOAD16_WORD_SWAP( "spxo-m05.10m", 0x00000, 0x200000, CRC(9120dd84) SHA1(bcf1fdc860d51b9bcfec1e84940ef21dfc41b5dc) )
- ROM_REGION16_BE( 0x100000, "gfx2", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x100000, "fg1", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "spxb-m04.8f", 0x00000, 0x100000, CRC(91a7ac6e) SHA1(b7fb79c2e4f5eecb7128b86ee2b1070eed905d2a) ) // bomb
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION16_BE( 0x100000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x100000, "fg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "spxb-m03.8j", 0x00000, 0x100000, CRC(8b42861b) SHA1(6eb1f6bfe0b8e987e624a6fe7e025c6918804cf9) ) // title logo
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION16_BE( 0x100000, "gfx4", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_WORD_SWAP( "spxb-m02.8a", 0x00000, 0x100000, CRC(21b8db78) SHA1(e7c51c9566ebce5b5db5af48f33e2194b518715f)) // title screen upper background
+ ROM_REGION16_BE( 0x100000, "bg1", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_WORD_SWAP( "spxb-m02.8a", 0x00000, 0x100000, CRC(21b8db78) SHA1(e7c51c9566ebce5b5db5af48f33e2194b518715f) ) // title screen upper background
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION16_BE( 0x100000, "gfx5", 0 ) /* tiles + tilemaps (together!) */
+ ROM_REGION16_BE( 0x100000, "bg0", 0 ) /* tiles + tilemaps (together!) */
ROM_LOAD16_WORD_SWAP( "spxb-m01.8c", 0x00000, 0x100000, CRC(60c69129) SHA1(6871b08e354c7cf5fb16b0ed4562c537e2ce9194) ) // title screen lower background
+ // 0x00000-0x3ffff tilemap infos
- ROM_REGION( 0x80000, "gfx6", 0 ) /* top 4 bits of tilemaps */
- ROM_LOAD( "spxb-ms3.10f", 0x00000, 0x20000, CRC(8bf8c77d) SHA1(a89e50bd571e754cb56a17fe4ada6a804e74520b)) // bomb
+ ROM_REGION( 0x80000, "tmap_hi", 0 ) /* top 4 bits of tilemaps */
+ ROM_LOAD( "spxb-ms3.10f", 0x00000, 0x20000, CRC(8bf8c77d) SHA1(a89e50bd571e754cb56a17fe4ada6a804e74520b) ) // bomb
ROM_LOAD( "spxb-ms4.10j", 0x20000, 0x20000, CRC(d418a900) SHA1(0d69afa48d3072c7fecfc5d6dd63717b9f61c0fc) ) // title logo
ROM_LOAD( "spxb-ms2.10a", 0x40000, 0x20000, CRC(5ec87adf) SHA1(cdd0864ea23b2c6d8ace519fc66e77f59813e206) ) // title screen upper background
ROM_LOAD( "spxb-ms1.10c", 0x60000, 0x20000, CRC(40b4fe6c) SHA1(5ab63ce83522c32039ee33c59e713d2fb37aac44) ) // title screen lower background
@@ -2638,29 +2677,29 @@ ROM_START( rshark )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "rse3.bin", 0x0000, 0x10000, CRC(03c8fd17) SHA1(d59a3d8b731484572384a9d6f24ef4cd200ef661) )
- ROM_REGION16_BE( 0x200000, "gfx1", 0 ) /* sprite */
+ ROM_REGION16_BE( 0x200000, "sprite", 0 ) /* sprite */
ROM_LOAD16_BYTE( "rse4.bin", 0x000000, 0x80000, CRC(b857e411) SHA1(14a8883243f3f1ee661395cbcce7d5d3c08caef8) )
ROM_LOAD16_BYTE( "rse5.bin", 0x000001, 0x80000, CRC(7822d77a) SHA1(25d34b508a25ab8052d3f73eeb60c7b9e6610db6) )
ROM_LOAD16_BYTE( "rse6.bin", 0x100000, 0x80000, CRC(80215c52) SHA1(6138804fc2f81cf1366cc1bcca7572e45845ca8a) )
ROM_LOAD16_BYTE( "rse7.bin", 0x100001, 0x80000, CRC(bd28bbdc) SHA1(b09ce8b21a08d129703f95b6fe9361e7f6614ee3) )
- ROM_REGION16_BE( 0x100000, "gfx2", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_BYTE( "rse11.bin", 0x00000, 0x80000, CRC(8a0c572f) SHA1(218c4e4aeacedf459c6c08cc47dd2154b7dd4279) )
+ ROM_REGION16_BE( 0x100000, "fg1", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_BYTE( "rse11.bin", 0x00000, 0x80000, CRC(8a0c572f) SHA1(218c4e4aeacedf459c6c08cc47dd2154b7dd4279) ) // 0x00000-0x3ffff tilemap infos
ROM_LOAD16_BYTE( "rse10.bin", 0x00001, 0x80000, CRC(139d5947) SHA1(e371f27091924c605962f0a88d9f1f3deb0c954e) )
- ROM_REGION16_BE( 0x100000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_BYTE( "rse15.bin", 0x00000, 0x80000, CRC(d188134d) SHA1(b0711657ad87166330b471fa449e95d63939b223) )
+ ROM_REGION16_BE( 0x100000, "fg0", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_BYTE( "rse15.bin", 0x00000, 0x80000, CRC(d188134d) SHA1(b0711657ad87166330b471fa449e95d63939b223) ) // 0x00000-0x3ffff tilemap infos
ROM_LOAD16_BYTE( "rse14.bin", 0x00001, 0x80000, CRC(0ef637a7) SHA1(827867831f751a5ed4022932b755e128fb5886b6) )
- ROM_REGION16_BE( 0x100000, "gfx4", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_BYTE( "rse17.bin", 0x00000, 0x80000, CRC(7ff0f3c7) SHA1(033722dbf69745676b71f7002b413abd3c7bdf3c) )
+ ROM_REGION16_BE( 0x100000, "bg1", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_BYTE( "rse17.bin", 0x00000, 0x80000, CRC(7ff0f3c7) SHA1(033722dbf69745676b71f7002b413abd3c7bdf3c) ) // 0x00000-0x3ffff tilemap infos
ROM_LOAD16_BYTE( "rse16.bin", 0x00001, 0x80000, CRC(c176c8bc) SHA1(98ef043befd2e067012d24299196964a0957b2ea) )
- ROM_REGION16_BE( 0x100000, "gfx5", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_BYTE( "rse21.bin", 0x00000, 0x80000, CRC(2ea665af) SHA1(67445e525016c0873bc2d831230f908388dabd4d) )
+ ROM_REGION16_BE( 0x100000, "bg0", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_BYTE( "rse21.bin", 0x00000, 0x80000, CRC(2ea665af) SHA1(67445e525016c0873bc2d831230f908388dabd4d) ) // 0x00000-0x3ffff tilemap infos
ROM_LOAD16_BYTE( "rse20.bin", 0x00001, 0x80000, CRC(ef93e3ac) SHA1(397afe70c8039eb073589353bd5a9f469e8a6776) )
- ROM_REGION( 0x80000, "gfx6", 0 ) /* top 4 bits of tilemaps */
+ ROM_REGION( 0x80000, "tmap_hi", 0 ) /* top 4 bits of tilemaps */
ROM_LOAD( "rse12.bin", 0x00000, 0x20000, CRC(fadbf947) SHA1(0d752c2499adca883f281aed95356a7fbf78fe5f) )
ROM_LOAD( "rse13.bin", 0x20000, 0x20000, CRC(323d4df6) SHA1(9ea0b84f7f565c7ca33335d286e8d4f812b216f2) )
ROM_LOAD( "rse18.bin", 0x40000, 0x20000, CRC(e00c9171) SHA1(10365ddbf4d60e99758ff0bb5042648c5f0f9c34) )
@@ -2719,16 +2758,16 @@ ROM_START( popbingo )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound */
ROM_LOAD( "rom1.3p", 0x0000, 0x10000, CRC(46e8d2c4) SHA1(a6fb55766e0bad321ac03977f33d3000ab7ab295) )
- ROM_REGION16_BE( 0x100000, "gfx1", 0 ) /* sprite */
+ ROM_REGION16_BE( 0x100000, "sprite", 0 ) /* sprite */
ROM_LOAD16_BYTE( "rom5.9m", 0x00000, 0x80000, CRC(e8d73e07) SHA1(4ed647eaa6b32b9f159fc49d30962ad20f97b245) )
ROM_LOAD16_BYTE( "rom6.9l", 0x00001, 0x80000, CRC(c3db3975) SHA1(bb085c9339d640585b18992dc8b861870920559a) )
- ROM_REGION16_BE( 0x100000, "gfx2", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_BYTE( "rom10.9a", 0x00000, 0x80000, CRC(135ab90a) SHA1(5911923ccf579edd0bf3449945a434fbf37b51aa) )
+ ROM_REGION16_BE( 0x100000, "bg0", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_BYTE( "rom10.9a", 0x00000, 0x80000, CRC(135ab90a) SHA1(5911923ccf579edd0bf3449945a434fbf37b51aa) ) // 0x00000-0x07fff Tilemap infos
ROM_LOAD16_BYTE( "rom9.9c", 0x00001, 0x80000, CRC(c9d90007) SHA1(ad457ef297797dcb9bb8dc1725fa207cd57eedfe) )
- ROM_REGION16_BE( 0x100000, "gfx3", 0 ) /* tiles + tilemaps (together!) */
- ROM_LOAD16_BYTE( "rom7.9h", 0x00000, 0x80000, CRC(b2b4c13b) SHA1(37ddc9751860a85b809782c5cec4418bca71412c) )
+ ROM_REGION16_BE( 0x100000, "bg1", 0 ) /* tiles + tilemaps (together!) */
+ ROM_LOAD16_BYTE( "rom7.9h", 0x00000, 0x80000, CRC(b2b4c13b) SHA1(37ddc9751860a85b809782c5cec4418bca71412c) ) // 0x00000-0x07fff Tilemap infos
ROM_LOAD16_BYTE( "rom8.9e", 0x00001, 0x80000, CRC(66c4b00f) SHA1(ed416ec594fe065c0f169008fb8ce553813f6260) )
ROM_REGION( 0x40000, "oki", 0 ) /* OKI6295 samples */
@@ -2750,7 +2789,7 @@ GAME( 1990, ddaydoo, lastday, lastday, lastday, dooyong_z80_ym2203_state, e
GAME( 1991, gulfstrm, 0, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, empty_init, ROT270, "Dooyong", "Gulf Storm (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, gulfstrma, gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, empty_init, ROT270, "Dooyong", "Gulf Storm (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, gulfstrmb, gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, empty_init, ROT270, "Dooyong", "Gulf Storm (set 3)", MACHINE_SUPPORTS_SAVE )
-GAME( 1991, gulfstrmm, gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, empty_init, ROT270, "Dooyong (Media Shoji license)", "Gulf Storm (Media Shoji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gulfstrmm, gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, empty_init, ROT270, "Dooyong (Media Shoji license)", "Gulf Storm (Japan, Media Shoji license)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, gulfstrmk, gulfstrm, gulfstrm, gulfstrm, dooyong_z80_ym2203_state, empty_init, ROT270, "Dooyong", "Gulf Storm (Korea)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, pollux, 0, pollux, pollux, dooyong_z80_ym2203_state, empty_init, ROT270, "Dooyong", "Pollux (set 1)", MACHINE_SUPPORTS_SAVE )
@@ -2761,13 +2800,13 @@ GAME( 1991, polluxn, pollux, pollux, pollux, dooyong_z80_ym2203_state, e
GAME( 1992, flytiger, 0, flytiger, flytiger, dooyong_z80_state, empty_init, ROT270, "Dooyong", "Flying Tiger (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1992, flytigera, flytiger, flytiger, flytiger, dooyong_z80_state, empty_init, ROT270, "Dooyong", "Flying Tiger (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1993, bluehawk, 0, bluehawk, bluehawk, dooyong_z80_state, empty_init, ROT270, "Dooyong", "Blue Hawk", MACHINE_SUPPORTS_SAVE )
-GAME( 1993, bluehawkn, bluehawk, bluehawk, bluehawk, dooyong_z80_state, empty_init, ROT270, "Dooyong (NTC license)", "Blue Hawk (NTC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, bluehawk, 0, bluehawk, bluehawk, dooyong_z80_state, empty_init, ROT270, "Dooyong", "Blue Hawk", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, bluehawkn, bluehawk, bluehawk, bluehawk, dooyong_z80_state, empty_init, ROT270, "Dooyong (NTC license)", "Blue Hawk (Japan, NTC license)", MACHINE_SUPPORTS_SAVE )
-GAME( 1993, sadari, 0, primella, sadari, dooyong_z80_state, empty_init, ROT0, "Dooyong (NTC license)", "Sadari", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, sadari, 0, primella, sadari, dooyong_z80_state, empty_init, ROT0, "Dooyong (NTC license)", "Sadari (Japan, NTC license)", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, gundl94, 0, primella, primella, dooyong_z80_state, empty_init, ROT0, "Dooyong", "Gun Dealer '94", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, primella, gundl94, primella, primella, dooyong_z80_state, empty_init, ROT0, "Dooyong (NTC license)", "Primella", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, gundl94, 0, primella, primella, dooyong_z80_state, empty_init, ROT0, "Dooyong", "Gun Dealer '94", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, primella, gundl94, primella, primella, dooyong_z80_state, empty_init, ROT0, "Dooyong (NTC license)", "Primella (Japan, NTC license)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, superx, 0, superx, superx, rshark_state, empty_init, ROT270, "Dooyong (NTC license)", "Super-X (NTC)", MACHINE_SUPPORTS_SAVE )
GAME( 1994, superxm, superx, superx, superx, rshark_state, empty_init, ROT270, "Dooyong (Mitchell license)", "Super-X (Mitchell)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/video/dooyong.cpp b/src/mame/video/dooyong.cpp
index 474e19fd5bb..bcacce58628 100644
--- a/src/mame/video/dooyong.cpp
+++ b/src/mame/video/dooyong.cpp
@@ -26,7 +26,7 @@ dooyong_tilemap_device_base::dooyong_tilemap_device_base(
device_type type,
char const *tag,
device_t *owner,
- uint32_t clock)
+ u32 clock)
: device_t(mconfig, type, tag, owner, clock)
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
, m_gfxnum(0)
@@ -35,12 +35,12 @@ dooyong_tilemap_device_base::dooyong_tilemap_device_base(
{
}
-void dooyong_tilemap_device_base::draw(screen_device &screen, bitmap_ind16 &dest, rectangle const &cliprect, uint32_t flags, uint8_t priority)
+void dooyong_tilemap_device_base::draw(screen_device &screen, bitmap_ind16 &dest, rectangle const &cliprect, u32 flags, u8 priority, u8 priority_mask)
{
- m_tilemap->draw(screen, dest, cliprect, flags, priority);
+ m_tilemap->draw(screen, dest, cliprect, flags, priority, priority_mask);
}
-void dooyong_tilemap_device_base::set_palette_bank(uint16_t bank)
+void dooyong_tilemap_device_base::set_palette_bank(u16 bank)
{
if (bank != m_palette_bank)
{
@@ -49,8 +49,7 @@ void dooyong_tilemap_device_base::set_palette_bank(uint16_t bank)
}
}
-
-dooyong_rom_tilemap_device::dooyong_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock)
+dooyong_rom_tilemap_device::dooyong_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
: dooyong_rom_tilemap_device(mconfig, DOOYONG_ROM_TILEMAP, tag, owner, clock)
{
}
@@ -60,23 +59,21 @@ dooyong_rom_tilemap_device::dooyong_rom_tilemap_device(
device_type type,
char const *tag,
device_t *owner,
- uint32_t clock)
+ u32 clock)
: dooyong_tilemap_device_base(mconfig, type, tag, owner, clock)
, m_rows(8)
, m_tilerom(*this, finder_base::DUMMY_TAG)
, m_tilerom_offset(0)
+ , m_tilerom_length(~0U)
, m_transparent_pen(~0U)
- , m_primella_code_mask(0x03ff)
- , m_primella_color_mask(0x3c00)
- , m_primella_color_shift(10)
, m_registers{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
{
}
-WRITE8_MEMBER(dooyong_rom_tilemap_device::ctrl_w)
+void dooyong_rom_tilemap_device::ctrl_w(offs_t offset, u8 data)
{
offset &= 0x07U;
- uint8_t const old = m_registers[offset];
+ const u8 old = m_registers[offset];
if (old != data)
{
m_registers[offset] = data;
@@ -111,6 +108,8 @@ void dooyong_rom_tilemap_device::device_start()
if (!m_gfxdecode->started())
throw device_missing_dependencies();
+ m_tmap_cb.bind_relative_to(*owner());
+
m_tilemap = &machine().tilemap().create(
*m_gfxdecode,
tilemap_get_info_delegate(FUNC(dooyong_rom_tilemap_device::tile_info), this),
@@ -125,6 +124,9 @@ void dooyong_rom_tilemap_device::device_start()
if (0 > m_tilerom_offset)
m_tilerom_offset = m_tilerom.length() + m_tilerom_offset;
+ if (m_tilerom_length < 0)
+ m_tilerom_length = m_tilerom.length();
+
std::fill(std::begin(m_registers), std::end(m_registers), 0U);
m_palette_bank = 0U;
@@ -134,8 +136,9 @@ void dooyong_rom_tilemap_device::device_start()
TILE_GET_INFO_MEMBER(dooyong_rom_tilemap_device::tile_info)
{
- unsigned const attr = m_tilerom[m_tilerom_offset + adjust_tile_index(tile_index)];
- unsigned code, color, flags;
+ const int tile_index_tile = adjust_tile_index(tile_index) & (m_tilerom_length - 1);
+ const u16 attr = m_tilerom[m_tilerom_offset + tile_index_tile];
+ u32 code = 0, color = 0, flags;
if (BIT(m_registers[6], 5))
{ // lastday/gulfstrm/pollux/flytiger
// Tiles take one word in ROM:
@@ -146,13 +149,14 @@ TILE_GET_INFO_MEMBER(dooyong_rom_tilemap_device::tile_info)
// X = x flip
// Y = y flip
code = (BIT(attr, 15) << 9) | (attr & 0x01ff);
- color = m_palette_bank | ((attr >> 11) & 0x0fU);
+ color = (attr >> 11) & 0x0fU;
flags = TILE_FLIPYX((attr >> 9) & 0x03U);
}
else
- { // primella/popbingo
+ { // bluehawk/primella/popbingo
// Tiles take one word in ROM:
// MSB LSB
+ // bluehawk YXCC CCcc cccc cccc (Y flip, X flip, bits 3-0 of color code, bits 9-0 of gfx code)
// primella YXCC CCcc cccc cccc (Y flip, X flip, bits 3-0 of color code, bits 9-0 of gfx code)
// popbingo YX?? ?ccc cccc cccc (Y flip, X flip, bits 3-0 of color code, bits 10-0 of gfx code)
// rshark YX?c cccc cccc cccc (Y flip, X flip, bits 3-0 of color code, bits 12-0 of gfx code)
@@ -161,19 +165,27 @@ TILE_GET_INFO_MEMBER(dooyong_rom_tilemap_device::tile_info)
// X = x flip
// Y = y flip
// ? = unused?
- color = m_palette_bank | ((attr & m_primella_color_mask) >> m_primella_color_shift);
+ if (!m_tmap_cb.isnull())
+ m_tmap_cb(attr & 0x3fff, code, color);
+ else // just mimic old driver behavior (default configuration)
+ {
+ code = attr & 0x3ff;
+ color = (attr & 0x3c00) >> 10;
+ }
+
flags = TILE_FLIPYX((attr >> 14) & 0x03U);
- code = attr & m_primella_code_mask;
}
+ color |= m_palette_bank;
tileinfo.set(m_gfxnum, code, color, flags);
}
-rshark_rom_tilemap_device::rshark_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock)
+rshark_rom_tilemap_device::rshark_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
: dooyong_rom_tilemap_device(mconfig, RSHARK_ROM_TILEMAP, tag, owner, clock)
, m_colorrom(*this, finder_base::DUMMY_TAG)
, m_colorrom_offset(0)
+ , m_colorrom_length(0)
{
m_rows = 32;
}
@@ -184,27 +196,31 @@ void rshark_rom_tilemap_device::device_start()
if (0 > m_colorrom_offset)
m_colorrom_offset = m_colorrom.length() + m_colorrom_offset;
+
+ if (m_colorrom_length < 0)
+ m_colorrom_length = m_colorrom.length();
}
TILE_GET_INFO_MEMBER(rshark_rom_tilemap_device::tile_info)
{
dooyong_rom_tilemap_device::tile_info(tilemap, tileinfo, tile_index);
- uint8_t const color = m_colorrom[m_colorrom_offset + adjust_tile_index(tile_index)] & 0x0fU;
+ const int tile_index_color = adjust_tile_index(tile_index) & (m_colorrom_length - 1);
+ const u16 color = m_palette_bank | (m_colorrom[m_colorrom_offset + tile_index_color] & 0x0fU);
tileinfo.palette_base = gfx().colorbase() + (gfx().granularity() * (color % gfx().colors()));
}
-dooyong_ram_tilemap_device::dooyong_ram_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock)
+dooyong_ram_tilemap_device::dooyong_ram_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
: dooyong_tilemap_device_base(mconfig, DOOYONG_RAM_TILEMAP, tag, owner, clock)
, m_tileram()
{
}
-WRITE16_MEMBER(dooyong_ram_tilemap_device::tileram_w)
+void dooyong_ram_tilemap_device::tileram_w(offs_t offset, u16 data, u16 mem_mask)
{
offset &= (64U * 32U) - 1U;
- uint16_t value(m_tileram[offset]);
+ u16 value(m_tileram[offset]);
COMBINE_DATA(&value);
if (value != m_tileram[offset])
{
@@ -228,7 +244,7 @@ void dooyong_ram_tilemap_device::device_start()
32);
m_tilemap->set_transparent_pen(15);
- m_tileram.reset(new uint16_t[64 * 32]);
+ m_tileram.reset(new u16[64 * 32]);
std::fill(m_tileram.get(), m_tileram.get() + (64 * 32), 0U);
m_palette_bank = 0U;
@@ -243,6 +259,6 @@ TILE_GET_INFO_MEMBER(dooyong_ram_tilemap_device::tile_info)
// CCCC cccc cccc cccc (bits 3-0 of color code, bits 11-0 of gfx code)
// c = gfx code
// C = color code
- unsigned const attr(m_tileram[tile_index]);
+ const u16 attr(m_tileram[tile_index]);
tileinfo.set(m_gfxnum, attr & 0x0fffU, m_palette_bank | ((attr >> 12) & 0x0fU), 0);
}
diff --git a/src/mame/video/dooyong.h b/src/mame/video/dooyong.h
index ccc33d111cc..8c1c76012ee 100644
--- a/src/mame/video/dooyong.h
+++ b/src/mame/video/dooyong.h
@@ -18,9 +18,9 @@ public:
template <typename T> void set_gfxdecode_tag(T &&cpu_tag) { m_gfxdecode.set_tag(std::forward<T>(cpu_tag)); }
void set_gfxnum(int gfxnum) { m_gfxnum = gfxnum; }
- void draw(screen_device &screen, bitmap_ind16 &dest, rectangle const &cliprect, uint32_t flags, uint8_t priority);
+ void draw(screen_device &screen, bitmap_ind16 &dest, rectangle const &cliprect, u32 flags, u8 priority, u8 priority_mask = 0xff);
- void set_palette_bank(uint16_t bank);
+ void set_palette_bank(u16 bank);
protected:
dooyong_tilemap_device_base(
@@ -28,7 +28,7 @@ protected:
device_type type,
char const *tag,
device_t *owner,
- uint32_t clock);
+ u32 clock);
gfx_element const &gfx() const { return *m_gfxdecode->gfx(m_gfxnum); }
@@ -36,35 +36,34 @@ protected:
int m_gfxnum;
tilemap_t *m_tilemap;
- uint16_t m_palette_bank;
+ u16 m_palette_bank;
};
class dooyong_rom_tilemap_device : public dooyong_tilemap_device_base
{
public:
template <typename T, typename U>
- dooyong_rom_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&gfxdecode_tag, int gfxnum, U &&tilerom_tag, int tilerom_offset)
+ dooyong_rom_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&gfxdecode_tag, int gfxnum, U &&tilerom_tag, int tilerom_offset, int tilerom_length)
: dooyong_rom_tilemap_device(mconfig, tag, owner, 0)
{
set_gfxdecode_tag(std::forward<T>(gfxdecode_tag));
set_gfxnum(gfxnum);
set_tilerom_tag(std::forward<U>(tilerom_tag));
set_tilerom_offset(tilerom_offset);
+ set_tilerom_length(tilerom_length);
}
- dooyong_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
+ dooyong_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
template <typename U> void set_tilerom_tag(U &&tilerom_tag) { m_tilerom.set_tag(std::forward<U>(tilerom_tag)); }
void set_tilerom_offset(int offset) { m_tilerom_offset = offset; }
+ void set_tilerom_length(int length) { m_tilerom_length = length; }
void set_transparent_pen(unsigned pen) { m_transparent_pen = pen; }
- void set_primella_code_bits(unsigned bits)
- {
- m_primella_code_mask = (1U << bits) - 1U;
- m_primella_color_mask = ((1U << 14) - 1) & ~m_primella_code_mask;
- m_primella_color_shift = bits;
- }
- DECLARE_WRITE8_MEMBER(ctrl_w);
+ typedef device_delegate<void (u16 attr, u32 &code, u32 &color)> dooyong_tmap_cb_delegate;
+ void set_tile_callback(dooyong_tmap_cb_delegate cb) { m_tmap_cb = cb; }
+
+ void ctrl_w(offs_t offset, u8 data);
protected:
dooyong_rom_tilemap_device(
@@ -72,7 +71,7 @@ protected:
device_type type,
char const *tag,
device_t *owner,
- uint32_t clock);
+ u32 clock);
virtual void device_start() override;
@@ -84,36 +83,37 @@ protected:
int m_rows;
private:
- required_region_ptr<uint16_t> m_tilerom;
+ required_region_ptr<u16> m_tilerom;
int m_tilerom_offset;
+ int m_tilerom_length;
unsigned m_transparent_pen;
- unsigned m_primella_code_mask;
- unsigned m_primella_color_mask;
- unsigned m_primella_color_shift;
- uint8_t m_registers[0x10];
+ u8 m_registers[0x10];
+ dooyong_tmap_cb_delegate m_tmap_cb;
};
class rshark_rom_tilemap_device : public dooyong_rom_tilemap_device
{
public:
template <typename T, typename U, typename V>
- rshark_rom_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&gfxdecode_tag, int gfxnum, U &&tilerom_tag, int tilerom_offset, V &&colorrom_tag, int colorrom_offset)
+ rshark_rom_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&gfxdecode_tag, int gfxnum, U &&tilerom_tag, int tilerom_offset, int tilerom_length, V &&colorrom_tag, int colorrom_offset, int colorrom_length)
: rshark_rom_tilemap_device(mconfig, tag, owner, 0)
{
set_gfxdecode_tag(std::forward<T>(gfxdecode_tag));
set_gfxnum(gfxnum);
set_tilerom_tag(std::forward<U>(tilerom_tag));
set_tilerom_offset(tilerom_offset);
+ set_tilerom_length(tilerom_length);
set_colorrom_tag(std::forward<V>(colorrom_tag));
set_colorrom_offset(colorrom_offset);
- set_primella_code_bits(13);
+ set_colorrom_length(colorrom_length);
}
- rshark_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
+ rshark_rom_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
template <typename V> void set_colorrom_tag(V &&colorrom_tag) { m_colorrom.set_tag(std::forward<V>(colorrom_tag)); }
void set_colorrom_offset(int offset) { m_colorrom_offset = offset; }
+ void set_colorrom_length(int length) { m_colorrom_length = length; }
protected:
virtual void device_start() override;
@@ -121,8 +121,9 @@ protected:
virtual TILE_GET_INFO_MEMBER(tile_info) override;
private:
- required_region_ptr<uint8_t> m_colorrom;
+ required_region_ptr<u8> m_colorrom;
int m_colorrom_offset;
+ int m_colorrom_length;
};
class dooyong_ram_tilemap_device : public dooyong_tilemap_device_base
@@ -136,10 +137,10 @@ public:
set_gfxnum(gfxnum);
}
- dooyong_ram_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
+ dooyong_ram_tilemap_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
- DECLARE_READ16_MEMBER(tileram_r) { return m_tileram[offset & ((64U * 32U) - 1)]; }
- DECLARE_WRITE16_MEMBER(tileram_w);
+ u16 tileram_r(offs_t offset) { return m_tileram[offset & ((64U * 32U) - 1)]; }
+ void tileram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
void set_scrolly(int value) { m_tilemap->set_scrolly(value); }
protected:
@@ -148,7 +149,7 @@ protected:
private:
TILE_GET_INFO_MEMBER(tile_info);
- std::unique_ptr<uint16_t[]> m_tileram;
+ std::unique_ptr<u16[]> m_tileram;
};
#endif // MAME_VIDEO_DOOYONG_H