From a4308800e02bdfcb5c0498d9662c6d2b4aabbde3 Mon Sep 17 00:00:00 2001 From: angelosa Date: Tue, 20 Mar 2018 21:56:52 +0100 Subject: ddayjlc.cpp: fixed clouds priority, title screen colors, added flip screen [Angelo Salese] --- src/mame/drivers/ddayjlc.cpp | 319 +++++++++++++++++++++++++++---------------- 1 file changed, 199 insertions(+), 120 deletions(-) diff --git a/src/mame/drivers/ddayjlc.cpp b/src/mame/drivers/ddayjlc.cpp index d9a163f526b..bc15ffe22cb 100644 --- a/src/mame/drivers/ddayjlc.cpp +++ b/src/mame/drivers/ddayjlc.cpp @@ -1,11 +1,18 @@ // license:BSD-3-Clause -// copyright-holders:Pierpaolo Prazzoli, Tomasz Slanina +// copyright-holders:Pierpaolo Prazzoli, Tomasz Slanina, Angelo Salese /* D-DAY (c)Jaleco 1984 - driver by Pierpaolo Prazzoli and Tomasz Slanina + driver by Pierpaolo Prazzoli, Tomasz Slanina and Angelo Salese + TODO: + - text colors most likely are hardwired but iirc hi score text has a different color? Needs a reference shot; + - unused upper sprite color bank; + - improve sound comms, sometimes BGM becomes silent; + - hookup proper i8257 device; + - identify & dump MCU; + ------------------------------------------------------- Is it 1984 or 1987 game ? There's text inside rom "1987.07 BY ELS" @@ -69,21 +76,53 @@ public: m_mainram(*this, "mainram"), m_spriteram(*this, "spriteram"), m_videoram(*this, "videoram"), - m_bgram(*this, "bgram"), + m_bgvram(*this, "bgram"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), m_soundlatch(*this, "soundlatch") { } + DECLARE_WRITE8_MEMBER(prot_w); + DECLARE_WRITE8_MEMBER(char_bank_w); + DECLARE_WRITE8_MEMBER(bgvram_w); + DECLARE_WRITE8_MEMBER(vram_w); + DECLARE_WRITE8_MEMBER(sound_nmi_w); + DECLARE_WRITE8_MEMBER(main_nmi_w); + DECLARE_WRITE8_MEMBER(bg0_w); + DECLARE_WRITE8_MEMBER(bg1_w); + DECLARE_WRITE8_MEMBER(bg2_w); + DECLARE_WRITE8_MEMBER(sound_w); + DECLARE_WRITE8_MEMBER(flip_screen_w); + DECLARE_WRITE8_MEMBER(i8257_CH0_w); + DECLARE_WRITE8_MEMBER(i8257_LMSR_w); + DECLARE_CUSTOM_INPUT_MEMBER(prot_r); + DECLARE_DRIVER_INIT(ddayjlc); + TILE_GET_INFO_MEMBER(get_tile_info_bg); + TILE_GET_INFO_MEMBER(get_tile_info_fg); + DECLARE_PALETTE_INIT(ddayjlc); + uint32_t screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(ddayjlc_interrupt); + INTERRUPT_GEN_MEMBER(ddayjlc_snd_interrupt); + void ddayjlc(machine_config &config); + void main_map(address_map &map); + void sound_map(address_map &map); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + +private: /* memory pointers */ required_shared_ptr m_mainram; required_shared_ptr m_spriteram; required_shared_ptr m_videoram; - required_shared_ptr m_bgram; + required_shared_ptr m_bgvram; /* video-related */ tilemap_t *m_bg_tilemap; + tilemap_t *m_fg_tilemap; int32_t m_char_bank; int32_t m_bgadr; @@ -100,34 +139,100 @@ public: required_device m_gfxdecode; required_device m_palette; required_device m_soundlatch; - - DECLARE_WRITE8_MEMBER(prot_w); - DECLARE_WRITE8_MEMBER(char_bank_w); - DECLARE_WRITE8_MEMBER(ddayjlc_bgram_w); - DECLARE_WRITE8_MEMBER(ddayjlc_videoram_w); - DECLARE_WRITE8_MEMBER(sound_nmi_w); - DECLARE_WRITE8_MEMBER(main_nmi_w); - DECLARE_WRITE8_MEMBER(bg0_w); - DECLARE_WRITE8_MEMBER(bg1_w); - DECLARE_WRITE8_MEMBER(bg2_w); - DECLARE_WRITE8_MEMBER(sound_w); - DECLARE_WRITE8_MEMBER(i8257_CH0_w); - DECLARE_WRITE8_MEMBER(i8257_LMSR_w); - DECLARE_CUSTOM_INPUT_MEMBER(prot_r); - DECLARE_DRIVER_INIT(ddayjlc); - TILE_GET_INFO_MEMBER(get_tile_info_bg); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; - DECLARE_PALETTE_INIT(ddayjlc); - uint32_t screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(ddayjlc_interrupt); - INTERRUPT_GEN_MEMBER(ddayjlc_snd_interrupt); - void ddayjlc(machine_config &config); - void main_cpu(address_map &map); - void sound_cpu(address_map &map); + + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_foreground(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; +/******************************** + * + * Video section + * + *******************************/ + + +TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_bg) +{ + uint8_t attr = m_bgvram[tile_index + 0x400]; + int code = m_bgvram[tile_index] + ((attr & 0x08) << 5); + int color = (attr & 0x7); + color |= (attr & 0x40) >> 3; + + tileinfo.category = BIT(attr,7); + SET_TILE_INFO_MEMBER(2, code, color, 0); +} + +TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_fg) +{ + int code = m_videoram[tile_index] + (m_char_bank << 8); + + SET_TILE_INFO_MEMBER(1, code, 0, 0); +} + +void ddayjlc_state::video_start() +{ + m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_fg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); + + m_bg_tilemap->set_transparent_pen(0); + m_fg_tilemap->set_transparent_pen(0); +} + +/**************************** + [0] xxxx xxxx Y offset + [1] x--- ---- Y flip + -xxx xxxx code lower offset + [2] x--- ---- X flip + --xx ---- code upper offset + ---- xxxx color offset + [3] xxxx xxxx X offset + ***************************/ +void ddayjlc_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + for (uint16_t i = 0; i < 0x400; i += 4) + { + uint8_t flags = m_spriteram[i + 2]; + uint8_t y = 256 - m_spriteram[i + 0] - 8; + uint16_t code = m_spriteram[i + 1]; + uint8_t x = m_spriteram[i + 3] - 16; + uint8_t xflip = (flags & 0x80) >> 7; + uint8_t yflip = (code & 0x80) >> 7; + uint8_t color = flags & 0xf; + + code = (code & 0x7f) | ((flags & 0x30) << 3); + + if (flip_screen()) + { + x = 256 - 16 - x; + xflip ^= 1; + } + + m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, color, xflip, yflip, x, y, 0); + } +} + +void ddayjlc_state::draw_foreground(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + + rectangle opaque_rect(cliprect.min_x, cliprect.min_x + 16, cliprect.min_y, cliprect.max_y); + m_fg_tilemap->draw(screen, bitmap, opaque_rect, TILEMAP_DRAW_OPAQUE, 0); + + opaque_rect.min_x = cliprect.max_x - 16; + opaque_rect.max_x = cliprect.max_x; + m_fg_tilemap->draw(screen, bitmap, opaque_rect, TILEMAP_DRAW_OPAQUE, 0); +} + +uint32_t ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(0x100, cliprect); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_OPAQUE, 0); + draw_sprites(bitmap, cliprect); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0); + draw_foreground(screen, bitmap, cliprect); + + return 0; +} /* @@ -184,21 +289,25 @@ WRITE8_MEMBER(ddayjlc_state::prot_w) WRITE8_MEMBER(ddayjlc_state::char_bank_w) { - m_char_bank = data; + m_char_bank = BIT(data,0); + m_fg_tilemap->mark_all_dirty(); + if(data & 0xfe) + logerror("Warning: char_bank_w with %02x\n",data); } -WRITE8_MEMBER(ddayjlc_state::ddayjlc_bgram_w) +WRITE8_MEMBER(ddayjlc_state::bgvram_w) { if (!offset) m_bg_tilemap->set_scrollx(0, data + 8); - m_bgram[offset] = data; + m_bgvram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset & 0x3ff); } -WRITE8_MEMBER(ddayjlc_state::ddayjlc_videoram_w) +WRITE8_MEMBER(ddayjlc_state::vram_w) { m_videoram[offset] = data; + m_fg_tilemap->mark_tile_dirty(offset & 0x3ff); } @@ -237,6 +346,11 @@ WRITE8_MEMBER(ddayjlc_state::sound_w) m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); } +WRITE8_MEMBER(ddayjlc_state::flip_screen_w) +{ + flip_screen_set(data & 1); +} + WRITE8_MEMBER(ddayjlc_state::i8257_CH0_w) { m_e00x_d[offset][m_e00x_l[offset]] = data; @@ -251,13 +365,11 @@ WRITE8_MEMBER(ddayjlc_state::i8257_LMSR_w) int32_t dst = m_e00x_d[2][1] * 256 + m_e00x_d[2][0]; int32_t size = (m_e00x_d[1][1] * 256 + m_e00x_d[1][0]) & 0x3ff; int32_t i; - + size++; //?? for(i = 0; i < size; i++) - { space.write_byte(dst++, space.read_byte(src++)); - } m_e00x_l[0] = 0; m_e00x_l[1] = 0; @@ -266,34 +378,36 @@ WRITE8_MEMBER(ddayjlc_state::i8257_LMSR_w) } } -void ddayjlc_state::main_cpu(address_map &map) + + +void ddayjlc_state::main_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x8fff).ram().share("mainram"); map(0x9000, 0x93ff).ram().share("spriteram"); - map(0x9400, 0x97ff).ram().w(this, FUNC(ddayjlc_state::ddayjlc_videoram_w)).share("videoram"); - map(0x9800, 0x9fff).ram().w(this, FUNC(ddayjlc_state::ddayjlc_bgram_w)).share("bgram"); /* 9800-981f - videoregs */ + map(0x9400, 0x97ff).ram().w(this, FUNC(ddayjlc_state::vram_w)).share("videoram"); + map(0x9800, 0x9fff).ram().w(this, FUNC(ddayjlc_state::bgvram_w)).share("bgram"); /* 9800-981f - videoregs */ map(0xa000, 0xdfff).bankr("bank1").nopw(); map(0xe000, 0xe003).w(this, FUNC(ddayjlc_state::i8257_CH0_w)); - map(0xe008, 0xe008).nopw(); + map(0xe008, 0xe008).nopw(); // i8257 control byte map(0xf000, 0xf000).w(this, FUNC(ddayjlc_state::sound_w)); - map(0xf100, 0xf100).nopw(); - map(0xf080, 0xf080).w(this, FUNC(ddayjlc_state::char_bank_w)); - map(0xf081, 0xf081).nopw(); + map(0xf100, 0xf100).nopw(); // sound related (f/f irq trigger?) + map(0xf080, 0xf080).portr("P2").w(this, FUNC(ddayjlc_state::char_bank_w)); + map(0xf081, 0xf081).w(this, FUNC(ddayjlc_state::flip_screen_w)); map(0xf083, 0xf083).w(this, FUNC(ddayjlc_state::i8257_LMSR_w)); map(0xf084, 0xf084).w(this, FUNC(ddayjlc_state::bg0_w)); map(0xf085, 0xf085).w(this, FUNC(ddayjlc_state::bg1_w)); map(0xf086, 0xf086).w(this, FUNC(ddayjlc_state::bg2_w)); map(0xf101, 0xf101).w(this, FUNC(ddayjlc_state::main_nmi_w)); map(0xf102, 0xf105).w(this, FUNC(ddayjlc_state::prot_w)); - map(0xf000, 0xf000).portr("INPUTS"); + map(0xf000, 0xf000).portr("P1"); map(0xf100, 0xf100).portr("SYSTEM"); map(0xf180, 0xf180).portr("DSW1"); map(0xf200, 0xf200).portr("DSW2"); } -void ddayjlc_state::sound_cpu(address_map &map) +void ddayjlc_state::sound_map(address_map &map) { map(0x0000, 0x1fff).rom(); map(0x2000, 0x23ff).ram(); @@ -305,16 +419,27 @@ void ddayjlc_state::sound_cpu(address_map &map) } static INPUT_PORTS_START( ddayjlc ) - PORT_START("INPUTS") + // TODO: uses single input side for upright, dual for cocktail + PORT_START("P1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) - + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("P2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_COCKTAIL + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_COCKTAIL + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_COCKTAIL + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_COCKTAIL + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_COCKTAIL + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_COCKTAIL + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_START("SYSTEM") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) @@ -345,9 +470,9 @@ static INPUT_PORTS_START( ddayjlc ) PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) ) PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) PORT_START("DSW2") PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coin_B ) ) @@ -387,61 +512,11 @@ static const gfx_layout spritelayout = }; static GFXDECODE_START( ddayjlc ) - GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0x000, 16 ) - GFXDECODE_ENTRY( "gfx2", 0, charlayout, 0x080, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0x000, 16 ) // upper 16 colors are unused + GFXDECODE_ENTRY( "gfx2", 0, charlayout, 0x200, 1 ) GFXDECODE_ENTRY( "gfx3", 0, charlayout, 0x100, 16 ) GFXDECODE_END -TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_bg) -{ - int code = m_bgram[tile_index] + ((m_bgram[tile_index + 0x400] & 0x08) << 5); - int color = (m_bgram[tile_index + 0x400] & 0x7); - color |= (m_bgram[tile_index + 0x400] & 0x40) >> 3; - - SET_TILE_INFO_MEMBER(2, code, color, 0); -} - -void ddayjlc_state::video_start() -{ - m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); -} - -uint32_t ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - uint32_t i; - m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); - - for (i = 0; i < 0x400; i += 4) - { - uint8_t flags = m_spriteram[i + 2]; - uint8_t y = 256 - m_spriteram[i + 0] - 8; - uint16_t code = m_spriteram[i + 1]; - uint8_t x = m_spriteram[i + 3] - 16; - uint8_t xflip = flags & 0x80; - uint8_t yflip = (code & 0x80); - uint8_t color = flags & 0xf; - - code = (code & 0x7f) | ((flags & 0x30) << 3); - - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, color, xflip, yflip, x, y, 0); - } - - { - uint32_t x, y, c; - /* FIXME: where is/are the color offset(s)? I doubt it's hard-coded ... */ - for (y = 0; y < 32; y++) - for (x = 0; x < 32; x++) - { - c = m_videoram[y * 32 + x]; - if (x > 1 && x < 30) - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0); - else - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8); - } - } - return 0; -} - INTERRUPT_GEN_MEMBER(ddayjlc_state::ddayjlc_interrupt) { if(m_main_nmi_enable) @@ -513,22 +588,27 @@ PALETTE_INIT_MEMBER(ddayjlc_state, ddayjlc) palette.set_pen_color(i, rgb_t(r, g, b)); } + + // text colors, almost likely hardwired + palette.set_pen_color(0x200, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(0x201, rgb_t(0xff, 0x00, 0x00)); + palette.set_pen_color(0x202, rgb_t(0x00, 0x97, 0x97)); + palette.set_pen_color(0x203, rgb_t(0xff, 0xff, 0xff)); } MACHINE_CONFIG_START(ddayjlc_state::ddayjlc) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,12000000/3) - MCFG_CPU_PROGRAM_MAP(main_cpu) + MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", ddayjlc_state, ddayjlc_interrupt) MCFG_CPU_ADD("audiocpu", Z80, 12000000/4) - MCFG_CPU_PROGRAM_MAP(sound_cpu) + MCFG_CPU_PROGRAM_MAP(sound_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", ddayjlc_state, ddayjlc_snd_interrupt) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) - /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -539,7 +619,7 @@ MACHINE_CONFIG_START(ddayjlc_state::ddayjlc) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", ddayjlc) - MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_ADD("palette", 0x200+4) MCFG_PALETTE_INIT_OWNER(ddayjlc_state, ddayjlc) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -588,11 +668,11 @@ ROM_START( ddayjlc ) ROM_LOAD( "10", 0x0a000, 0x2000, CRC(5452aba1) SHA1(03ef47161d0ab047c8675d6ffd3b7acf81f74721) ) ROM_REGION( 0x0500, "proms", 0 ) - ROM_LOAD( "3l.bin", 0x00400, 0x0100, CRC(da6fe846) SHA1(e8386cf7f552facf2d1a5b7b63ca3d2f1801d215) ) - ROM_LOAD( "4l.bin", 0x00000, 0x0100, CRC(2c3fa534) SHA1(e4c0d06cf62459c1835cb27a4e659b01ad4be20c) ) - ROM_LOAD( "4m.bin", 0x00200, 0x0100, CRC(e0ab9a8f) SHA1(77010c4039f9d408f40cea079c1ef56132ddbd2b) ) - ROM_LOAD( "5n.bin", 0x00300, 0x0100, CRC(61d85970) SHA1(189e9da3dade54936872b80893b1318e5fbfbe5e) ) - ROM_LOAD( "5p.bin", 0x00100, 0x0100, CRC(4fd96b26) SHA1(0fb9928ab6c4ee937cefcf82145a4c9d43ca8517) ) + ROM_LOAD( "4l.bin", 0x00000, 0x0100, CRC(2c3fa534) SHA1(e4c0d06cf62459c1835cb27a4e659b01ad4be20c) ) // sprite color lower data + ROM_LOAD( "5p.bin", 0x00100, 0x0100, CRC(4fd96b26) SHA1(0fb9928ab6c4ee937cefcf82145a4c9d43ca8517) ) // background color lower data + ROM_LOAD( "4m.bin", 0x00200, 0x0100, CRC(e0ab9a8f) SHA1(77010c4039f9d408f40cea079c1ef56132ddbd2b) ) // sprite color upper data + ROM_LOAD( "5n.bin", 0x00300, 0x0100, CRC(61d85970) SHA1(189e9da3dade54936872b80893b1318e5fbfbe5e) ) // background color upper data + ROM_LOAD( "3l.bin", 0x00400, 0x0100, CRC(da6fe846) SHA1(e8386cf7f552facf2d1a5b7b63ca3d2f1801d215) ) // unknown ROM_END ROM_START( ddayjlca ) @@ -628,12 +708,11 @@ ROM_START( ddayjlca ) ROM_LOAD( "10", 0x0a000, 0x2000, CRC(5452aba1) SHA1(03ef47161d0ab047c8675d6ffd3b7acf81f74721) ) ROM_REGION( 0x0500, "proms", 0 ) - ROM_LOAD( "3l.bin", 0x00400, 0x0100, CRC(da6fe846) SHA1(e8386cf7f552facf2d1a5b7b63ca3d2f1801d215) ) - ROM_LOAD( "4l.bin", 0x00000, 0x0100, CRC(2c3fa534) SHA1(e4c0d06cf62459c1835cb27a4e659b01ad4be20c) ) - ROM_LOAD( "4m.bin", 0x00200, 0x0100, CRC(e0ab9a8f) SHA1(77010c4039f9d408f40cea079c1ef56132ddbd2b) ) - ROM_LOAD( "5n.bin", 0x00300, 0x0100, CRC(61d85970) SHA1(189e9da3dade54936872b80893b1318e5fbfbe5e) ) - ROM_LOAD( "5p.bin", 0x00100, 0x0100, CRC(4fd96b26) SHA1(0fb9928ab6c4ee937cefcf82145a4c9d43ca8517) ) - + ROM_LOAD( "4l.bin", 0x00000, 0x0100, CRC(2c3fa534) SHA1(e4c0d06cf62459c1835cb27a4e659b01ad4be20c) ) // sprite color lower data + ROM_LOAD( "5p.bin", 0x00100, 0x0100, CRC(4fd96b26) SHA1(0fb9928ab6c4ee937cefcf82145a4c9d43ca8517) ) // background color lower data + ROM_LOAD( "4m.bin", 0x00200, 0x0100, CRC(e0ab9a8f) SHA1(77010c4039f9d408f40cea079c1ef56132ddbd2b) ) // sprite color upper data + ROM_LOAD( "5n.bin", 0x00300, 0x0100, CRC(61d85970) SHA1(189e9da3dade54936872b80893b1318e5fbfbe5e) ) // background color upper data + ROM_LOAD( "3l.bin", 0x00400, 0x0100, CRC(da6fe846) SHA1(e8386cf7f552facf2d1a5b7b63ca3d2f1801d215) ) // unknown ROM_END -- cgit v1.2.3