mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
cbasebal.cpp, vendetta.cpp: finders and other small cleanups
This commit is contained in:
parent
209b0bf704
commit
b4873d059e
@ -1531,8 +1531,6 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/blktiger.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/blktiger_ms.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/cbasebal.cpp",
|
||||
MAME_DIR .. "src/mame/includes/cbasebal.h",
|
||||
MAME_DIR .. "src/mame/video/cbasebal.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/commando.cpp",
|
||||
MAME_DIR .. "src/mame/includes/commando.h",
|
||||
MAME_DIR .. "src/mame/video/commando.cpp",
|
||||
@ -2666,8 +2664,6 @@ files {
|
||||
MAME_DIR .. "src/mame/includes/ultraman.h",
|
||||
MAME_DIR .. "src/mame/video/ultraman.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/vendetta.cpp",
|
||||
MAME_DIR .. "src/mame/includes/vendetta.h",
|
||||
MAME_DIR .. "src/mame/video/vendetta.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/viper.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wecleman.cpp",
|
||||
MAME_DIR .. "src/mame/includes/wecleman.h",
|
||||
|
@ -15,71 +15,267 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/cbasebal.h"
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/kabuki.h" // needed for decoding functions only
|
||||
#include "machine/eepromser.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/ymopl.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class cbasebal_state : public driver_device
|
||||
{
|
||||
public:
|
||||
cbasebal_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_textram(*this, "textram"),
|
||||
m_scrollram(*this, "scrollram"),
|
||||
m_databank(*this, "databank"),
|
||||
m_opbank(*this, "opbank"),
|
||||
m_bankedram(*this, "bankedram") { }
|
||||
|
||||
void init_cbasebal();
|
||||
void cbasebal(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
// devices
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
// memory pointers
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_textram;
|
||||
required_shared_ptr<uint8_t> m_scrollram;
|
||||
required_memory_bank m_databank;
|
||||
required_memory_bank m_opbank;
|
||||
memory_view m_bankedram;
|
||||
|
||||
// video-related
|
||||
tilemap_t *m_fg_tilemap = nullptr;
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
std::unique_ptr<uint8_t[]> m_decoded;
|
||||
uint8_t m_scroll_x[2]{};
|
||||
uint8_t m_scroll_y[2]{};
|
||||
uint8_t m_tilebank = 0;
|
||||
uint8_t m_spritebank = 0;
|
||||
uint8_t m_text_on = 0;
|
||||
uint8_t m_bg_on = 0;
|
||||
uint8_t m_obj_on = 0;
|
||||
uint8_t m_flipscreen = 0;
|
||||
|
||||
void bankswitch_w(uint8_t data);
|
||||
void coinctrl_w(uint8_t data);
|
||||
void textram_w(offs_t offset, uint8_t data);
|
||||
void scrollram_w(offs_t offset, uint8_t data);
|
||||
void gfxctrl_w(uint8_t data);
|
||||
void scrollx_w(offs_t offset, uint8_t data);
|
||||
void scrolly_w(offs_t offset, uint8_t data);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void prg_map(address_map &map);
|
||||
void port_map(address_map &map);
|
||||
void decrypted_opcodes_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
// video
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(cbasebal_state::get_bg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_scrollram[2 * tile_index + 1];
|
||||
tileinfo.set(1,
|
||||
m_scrollram[2 * tile_index] + ((attr & 0x07) << 8) + 0x800 * m_tilebank,
|
||||
(attr & 0xf0) >> 4,
|
||||
(attr & 0x08) ? TILE_FLIPX : 0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(cbasebal_state::get_fg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_textram[tile_index + 0x800];
|
||||
tileinfo.set(0,
|
||||
m_textram[tile_index] + ((attr & 0xf0) << 4),
|
||||
attr & 0x07,
|
||||
(attr & 0x08) ? TILE_FLIPX : 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Start the video hardware emulation.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void cbasebal_state::video_start()
|
||||
{
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Memory handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void cbasebal_state::textram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_textram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset & 0x7ff);
|
||||
}
|
||||
|
||||
void cbasebal_state::scrollram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scrollram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
void cbasebal_state::gfxctrl_w(uint8_t data)
|
||||
{
|
||||
// bit 0 is unknown - toggles continuously
|
||||
|
||||
// bit 1 is flip screen
|
||||
m_flipscreen = data & 0x02;
|
||||
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||
|
||||
// bit 2 is unknown - unused?
|
||||
|
||||
// bit 3 is tile bank
|
||||
if (m_tilebank != ((data & 0x08) >> 3))
|
||||
{
|
||||
m_tilebank = (data & 0x08) >> 3;
|
||||
m_bg_tilemap->mark_all_dirty();
|
||||
}
|
||||
|
||||
// bit 4 is sprite bank
|
||||
m_spritebank = (data & 0x10) >> 4;
|
||||
|
||||
// bits 5 is text enable
|
||||
m_text_on = ~data & 0x20;
|
||||
|
||||
// bits 6-7 are bg/sprite enable (don't know which is which)
|
||||
m_bg_on = ~data & 0x40;
|
||||
m_obj_on = ~data & 0x80;
|
||||
}
|
||||
|
||||
void cbasebal_state::scrollx_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scroll_x[offset] = data;
|
||||
m_bg_tilemap->set_scrollx(0, m_scroll_x[0] + 256 * m_scroll_x[1]);
|
||||
}
|
||||
|
||||
void cbasebal_state::scrolly_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scroll_y[offset] = data;
|
||||
m_bg_tilemap->set_scrolly(0, m_scroll_y[0] + 256 * m_scroll_y[1]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void cbasebal_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
// the last entry is not a sprite, we skip it otherwise spang (mitchell.cpp) shows a bubble moving diagonally across the screen
|
||||
for (int offs = m_spriteram.bytes() - 8; offs >= 0; offs -= 4)
|
||||
{
|
||||
int code = m_spriteram[offs];
|
||||
int attr = m_spriteram[offs + 1];
|
||||
int color = attr & 0x07;
|
||||
int flipx = attr & 0x08;
|
||||
int sx = m_spriteram[offs + 3] + ((attr & 0x10) << 4);
|
||||
int sy = ((m_spriteram[offs + 2] + 8) & 0xff) - 8;
|
||||
code += (attr & 0xe0) << 3;
|
||||
code += m_spritebank * 0x800;
|
||||
|
||||
if (m_flipscreen)
|
||||
{
|
||||
sx = 496 - sx;
|
||||
sy = 240 - sy;
|
||||
flipx = !flipx;
|
||||
}
|
||||
|
||||
m_gfxdecode->gfx(2)->transpen(bitmap, cliprect,
|
||||
code,
|
||||
color,
|
||||
flipx, m_flipscreen,
|
||||
sx, sy, 15);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t cbasebal_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
if (m_bg_on)
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
else
|
||||
bitmap.fill(768, cliprect);
|
||||
|
||||
if (m_obj_on)
|
||||
draw_sprites(bitmap, cliprect);
|
||||
|
||||
if (m_text_on)
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// machine
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Memory handlers
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void cbasebal_state::cbasebal_bankswitch_w(uint8_t data)
|
||||
void cbasebal_state::bankswitch_w(uint8_t data)
|
||||
{
|
||||
/* bits 0-4 select ROM bank */
|
||||
// bits 0-4 select ROM bank
|
||||
//logerror("%04x: bankswitch %02x\n", m_maincpu->pc(), data);
|
||||
membank("bank1")->set_entry(data & 0x1f);
|
||||
membank("bank1d")->set_entry(data & 0x1f);
|
||||
m_databank->set_entry(data & 0x1f);
|
||||
m_opbank->set_entry(data & 0x1f);
|
||||
|
||||
/* bit 5 used but unknown */
|
||||
// bit 5 used but unknown
|
||||
|
||||
/* bits 6-7 select RAM bank */
|
||||
m_rambank = (data & 0xc0) >> 6;
|
||||
// bits 6-7 select RAM bank
|
||||
m_bankedram.select((data & 0xc0) >> 6);
|
||||
}
|
||||
|
||||
|
||||
uint8_t cbasebal_state::bankedram_r(offs_t offset)
|
||||
{
|
||||
switch (m_rambank)
|
||||
{
|
||||
case 2:
|
||||
return cbasebal_textram_r(offset); /* VRAM */
|
||||
case 1:
|
||||
if (offset < 0x800)
|
||||
return m_palette->basemem().read8(offset);
|
||||
else
|
||||
return 0;
|
||||
default:
|
||||
return cbasebal_scrollram_r(offset); /* SCROLL */
|
||||
}
|
||||
}
|
||||
|
||||
void cbasebal_state::bankedram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
switch (m_rambank)
|
||||
{
|
||||
case 2:
|
||||
cbasebal_textram_w(offset, data);
|
||||
break;
|
||||
case 1:
|
||||
if (offset < 0x800)
|
||||
m_palette->write8(offset, data);
|
||||
break;
|
||||
default:
|
||||
cbasebal_scrollram_w(offset, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void cbasebal_state::cbasebal_coinctrl_w(uint8_t data)
|
||||
void cbasebal_state::coinctrl_w(uint8_t data)
|
||||
{
|
||||
machine().bookkeeping().coin_lockout_w(0, ~data & 0x04);
|
||||
machine().bookkeeping().coin_lockout_w(1, ~data & 0x08);
|
||||
@ -94,37 +290,41 @@ void cbasebal_state::cbasebal_coinctrl_w(uint8_t data)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
void cbasebal_state::cbasebal_map(address_map &map)
|
||||
void cbasebal_state::prg_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0xbfff).bankr("bank1");
|
||||
map(0xc000, 0xcfff).rw(FUNC(cbasebal_state::bankedram_r), FUNC(cbasebal_state::bankedram_w)).share("palette"); /* palette + vram + scrollram */
|
||||
map(0xe000, 0xfdff).ram(); /* work RAM */
|
||||
map(0xfe00, 0xffff).ram().share("spriteram");
|
||||
map(0x8000, 0xbfff).bankr(m_databank);
|
||||
map(0xc000, 0xcfff).view(m_bankedram); // palette + VRAM + scrollram
|
||||
m_bankedram[0](0xc000, 0xcfff).ram().w(FUNC(cbasebal_state::scrollram_w)).share(m_scrollram);
|
||||
m_bankedram[1](0xc000, 0xc7ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
|
||||
m_bankedram[2](0xc000, 0xcfff).ram().w(FUNC(cbasebal_state::textram_w)).share(m_textram);
|
||||
m_bankedram[3](0xc000, 0xcfff).ram().w(FUNC(cbasebal_state::scrollram_w)).share(m_scrollram);
|
||||
map(0xe000, 0xfdff).ram(); // work RAM
|
||||
map(0xfe00, 0xffff).ram().share(m_spriteram);
|
||||
}
|
||||
|
||||
void cbasebal_state::decrypted_opcodes_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).bankr("bank0d");
|
||||
map(0x8000, 0xbfff).bankr("bank1d");
|
||||
map(0x0000, 0x7fff).bankr("opbase");
|
||||
map(0x8000, 0xbfff).bankr(m_opbank);
|
||||
}
|
||||
|
||||
void cbasebal_state::cbasebal_portmap(address_map &map)
|
||||
void cbasebal_state::port_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).w(FUNC(cbasebal_state::cbasebal_bankswitch_w));
|
||||
map(0x00, 0x00).w(FUNC(cbasebal_state::bankswitch_w));
|
||||
map(0x01, 0x01).portw("IO_01");
|
||||
map(0x02, 0x02).portw("IO_02");
|
||||
map(0x03, 0x03).portw("IO_03");
|
||||
map(0x05, 0x05).w("oki", FUNC(okim6295_device::write));
|
||||
map(0x06, 0x07).w("ymsnd", FUNC(ym2413_device::write));
|
||||
map(0x08, 0x09).w(FUNC(cbasebal_state::cbasebal_scrollx_w));
|
||||
map(0x0a, 0x0b).w(FUNC(cbasebal_state::cbasebal_scrolly_w));
|
||||
map(0x08, 0x09).w(FUNC(cbasebal_state::scrollx_w));
|
||||
map(0x0a, 0x0b).w(FUNC(cbasebal_state::scrolly_w));
|
||||
map(0x10, 0x10).portr("P1");
|
||||
map(0x11, 0x11).portr("P2");
|
||||
map(0x12, 0x12).portr("SYSTEM");
|
||||
map(0x13, 0x13).w(FUNC(cbasebal_state::cbasebal_gfxctrl_w));
|
||||
map(0x14, 0x14).w(FUNC(cbasebal_state::cbasebal_coinctrl_w));
|
||||
map(0x13, 0x13).w(FUNC(cbasebal_state::gfxctrl_w));
|
||||
map(0x14, 0x14).w(FUNC(cbasebal_state::coinctrl_w));
|
||||
}
|
||||
|
||||
|
||||
@ -162,7 +362,7 @@ static INPUT_PORTS_START( cbasebal )
|
||||
PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen") /* ? */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen") // ?
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
|
||||
|
||||
PORT_START( "IO_01" )
|
||||
@ -185,45 +385,45 @@ INPUT_PORTS_END
|
||||
|
||||
static const gfx_layout cbasebal_textlayout =
|
||||
{
|
||||
8,8, /* 8*8 characters */
|
||||
4096, /* 4096 characters */
|
||||
2, /* 2 bits per pixel */
|
||||
8,8, // 8*8 characters
|
||||
4096, // 4096 characters
|
||||
2, // 2 bits per pixel
|
||||
{ 0, 4 },
|
||||
{ 8+3, 8+2, 8+1, 8+0, 3, 2, 1, 0 },
|
||||
{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
|
||||
16*8 /* every char takes 16 consecutive bytes */
|
||||
16*8 // every char takes 16 consecutive bytes
|
||||
};
|
||||
|
||||
static const gfx_layout cbasebal_tilelayout =
|
||||
{
|
||||
16,16, /* 16*16 tiles */
|
||||
4096, /* 4096 tiles */
|
||||
4, /* 4 bits per pixel */
|
||||
16,16, // 16*16 tiles
|
||||
4096, // 4096 tiles
|
||||
4, // 4 bits per pixel
|
||||
{ 4096*64*8+4, 4096*64*8+0,4, 0 },
|
||||
{ 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
|
||||
16*16+0, 16*16+1, 16*16+2, 16*16+3, 16*16+8+0, 16*16+8+1, 16*16+8+2, 16*16+8+3 },
|
||||
{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
|
||||
8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
|
||||
64*8 /* every tile takes 64 consecutive bytes */
|
||||
64*8 // every tile takes 64 consecutive bytes
|
||||
};
|
||||
|
||||
static const gfx_layout cbasebal_spritelayout =
|
||||
{
|
||||
16,16, /* 16*16 sprites */
|
||||
4096, /* 2048 sprites */
|
||||
4, /* 4 bits per pixel */
|
||||
16,16, // 16*16 sprites
|
||||
4096, // 2048 sprites
|
||||
4, // 4 bits per pixel
|
||||
{ 4096*64*8+4, 4096*64*8+0, 4, 0 },
|
||||
{ 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
|
||||
32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 },
|
||||
{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
|
||||
8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
|
||||
64*8 /* every sprite takes 64 consecutive bytes */
|
||||
64*8 // every sprite takes 64 consecutive bytes
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_cbasebal )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, cbasebal_textlayout, 256, 8 ) /* colors 256- 287 */
|
||||
GFXDECODE_ENTRY( "gfx2", 0, cbasebal_tilelayout, 768, 16 ) /* colors 768-1023 */
|
||||
GFXDECODE_ENTRY( "gfx3", 0, cbasebal_spritelayout, 512, 8 ) /* colors 512- 639 */
|
||||
GFXDECODE_ENTRY( "text", 0, cbasebal_textlayout, 256, 8 ) // colors 256 - 287
|
||||
GFXDECODE_ENTRY( "tiles", 0, cbasebal_tilelayout, 768, 16 ) // colors 768 - 1023
|
||||
GFXDECODE_ENTRY( "sprites", 0, cbasebal_spritelayout, 512, 8 ) // colors 512 - 639
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -235,7 +435,6 @@ GFXDECODE_END
|
||||
|
||||
void cbasebal_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_rambank));
|
||||
save_item(NAME(m_tilebank));
|
||||
save_item(NAME(m_spritebank));
|
||||
save_item(NAME(m_text_on));
|
||||
@ -248,7 +447,6 @@ void cbasebal_state::machine_start()
|
||||
|
||||
void cbasebal_state::machine_reset()
|
||||
{
|
||||
m_rambank = 0;
|
||||
m_tilebank = 0;
|
||||
m_spritebank = 0;
|
||||
m_text_on = 0;
|
||||
@ -263,30 +461,30 @@ void cbasebal_state::machine_reset()
|
||||
|
||||
void cbasebal_state::cbasebal(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, 6000000); /* ??? */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cbasebal_state::cbasebal_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &cbasebal_state::cbasebal_portmap);
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, 6000000); // ???
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &cbasebal_state::prg_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &cbasebal_state::port_map);
|
||||
m_maincpu->set_addrmap(AS_OPCODES, &cbasebal_state::decrypted_opcodes_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(cbasebal_state::irq0_line_hold)); /* ??? */
|
||||
m_maincpu->set_vblank_int("screen", FUNC(cbasebal_state::irq0_line_hold)); // ???
|
||||
|
||||
EEPROM_93C46_16BIT(config, "eeprom");
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 );
|
||||
screen.set_screen_update(FUNC(cbasebal_state::screen_update_cbasebal));
|
||||
screen.set_screen_update(FUNC(cbasebal_state::screen_update));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cbasebal);
|
||||
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); // clock frequency & pin 7 not verified
|
||||
@ -308,24 +506,24 @@ ROM_START( cbasebal )
|
||||
ROM_LOAD( "cbj07.16f", 0x10000, 0x20000, CRC(8111d13f) SHA1(264e21e824c87f55da326440c6ed71e1c287a63e) )
|
||||
ROM_LOAD( "cbj06.14f", 0x30000, 0x20000, CRC(9aaa0e37) SHA1(1a7b96b44c66b58f06707aafb1806520747b8c76) )
|
||||
ROM_LOAD( "cbj05.13f", 0x50000, 0x20000, CRC(d0089f37) SHA1(32354c3f4693a65e297791c4d8faac3aa9cff5a1) )
|
||||
/* 0x70000-0x8ffff empty (space for 04) */
|
||||
// 0x70000-0x8ffff empty (space for 04)
|
||||
|
||||
ROM_REGION( 0x10000, "gfx1", 0 )
|
||||
ROM_LOAD( "cbj13.16m", 0x00000, 0x10000, CRC(2359fa0a) SHA1(3a37532ea43dd4b150c53a240d35a57a9b76d23d) ) /* text */
|
||||
ROM_REGION( 0x10000, "text", 0 )
|
||||
ROM_LOAD( "cbj13.16m", 0x00000, 0x10000, CRC(2359fa0a) SHA1(3a37532ea43dd4b150c53a240d35a57a9b76d23d) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "cbj02.1f", 0x00000, 0x20000, CRC(d6740535) SHA1(2ece885525718fd5fe52b8fa4c07930695b89659) ) /* tiles */
|
||||
ROM_REGION( 0x80000, "tiles", 0 )
|
||||
ROM_LOAD( "cbj02.1f", 0x00000, 0x20000, CRC(d6740535) SHA1(2ece885525718fd5fe52b8fa4c07930695b89659) )
|
||||
ROM_LOAD( "cbj03.2f", 0x20000, 0x20000, CRC(88098dcd) SHA1(caddebeea581129d6a62fc9f7f354d61eef175c7) )
|
||||
ROM_LOAD( "cbj08.1j", 0x40000, 0x20000, CRC(5f3344bf) SHA1(1d3193078108e86e31bbfce15a8d2443cfbf2ff6) )
|
||||
ROM_LOAD( "cbj09.2j", 0x60000, 0x20000, CRC(aafffdae) SHA1(26e76b55fff49811df8e5b1f165be20ec8dd196a) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx3", 0 )
|
||||
ROM_LOAD( "cbj11.1m", 0x00000, 0x20000, CRC(bdc1507d) SHA1(efeaf3066acfb7186d73ad8e5b291d6e61965de2) ) /* sprites */
|
||||
ROM_REGION( 0x80000, "sprites", 0 )
|
||||
ROM_LOAD( "cbj11.1m", 0x00000, 0x20000, CRC(bdc1507d) SHA1(efeaf3066acfb7186d73ad8e5b291d6e61965de2) )
|
||||
ROM_LOAD( "cbj12.2m", 0x20000, 0x20000, CRC(973f3efe) SHA1(d776499d5ac4bc23eb5d1f28b88447cc07d8ac99) )
|
||||
ROM_LOAD( "cbj14.1n", 0x40000, 0x20000, CRC(765dabaa) SHA1(742d1c50b65f649f23eac7976fe26c2d7400e4e1) )
|
||||
ROM_LOAD( "cbj15.2n", 0x60000, 0x20000, CRC(74756de5) SHA1(791d6620cdb563f0b3a717432aa4647981b0a10e) )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "cbj01.1e", 0x00000, 0x20000, CRC(1d8968bd) SHA1(813e475d1d0c343e7dad516f1fe564d00c9c27fb) )
|
||||
ROM_END
|
||||
|
||||
@ -342,11 +540,13 @@ void cbasebal_state::init_cbasebal()
|
||||
int size = memregion("maincpu")->bytes();
|
||||
m_decoded = std::make_unique<uint8_t[]>(size);
|
||||
pang_decode(src, m_decoded.get(), size);
|
||||
membank("bank1")->configure_entries(0, 32, src + 0x10000, 0x4000);
|
||||
membank("bank0d")->set_base(m_decoded.get());
|
||||
membank("bank1d")->configure_entries(0, 32, m_decoded.get() + 0x10000, 0x4000);
|
||||
m_databank->configure_entries(0, 32, src + 0x10000, 0x4000);
|
||||
membank("opbase")->set_base(m_decoded.get());
|
||||
m_opbank->configure_entries(0, 32, m_decoded.get() + 0x10000, 0x4000);
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
|
@ -196,4 +196,4 @@ ROM_START( cptlucky )
|
||||
ROM_END
|
||||
|
||||
|
||||
GAME( 199?, cptlucky, 0, sigmab31, cptlucky, sigmab31_state, empty_init, ROT0, "Sigma", "Captain Lucky", MACHINE_IS_SKELETON_MECHANICAL ) // a 1992 copyright can be found online, but could be for a later version
|
||||
GAME( 1988, cptlucky, 0, sigmab31, cptlucky, sigmab31_state, empty_init, ROT0, "Sigma", "Captain Lucky", MACHINE_IS_SKELETON_MECHANICAL ) // 1988 copyright in main CPU ROM
|
||||
|
@ -88,17 +88,187 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/vendetta.h"
|
||||
#include "includes/konamipt.h"
|
||||
|
||||
#include "includes/konamipt.h"
|
||||
#include "video/k052109.h"
|
||||
#include "video/k053246_k053247_k055673.h"
|
||||
#include "video/k053251.h"
|
||||
#include "video/k054000.h"
|
||||
#include "video/konami_helper.h"
|
||||
|
||||
#include "cpu/m6809/konami.h" // for the callback and the firq irq definition
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/eepromser.h"
|
||||
#include "machine/k053252.h"
|
||||
#include "machine/watchdog.h"
|
||||
#include "sound/k053260.h"
|
||||
#include "sound/ymopm.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class vendetta_state : public driver_device
|
||||
{
|
||||
public:
|
||||
vendetta_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_k052109(*this, "k052109"),
|
||||
m_k053246(*this, "k053246"),
|
||||
m_k053251(*this, "k053251"),
|
||||
m_k053252(*this, "k053252"),
|
||||
m_k054000(*this, "k054000"),
|
||||
m_palette(*this, "palette"),
|
||||
m_videoview0(*this, "videoview0"),
|
||||
m_videoview1(*this, "videoview1"),
|
||||
m_mainbank(*this, "mainbank"),
|
||||
m_eeprom_out(*this, "EEPROMOUT")
|
||||
{ }
|
||||
|
||||
void esckids(machine_config &config);
|
||||
void vendetta(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
// video-related
|
||||
uint8_t m_layer_colorbase[3]{};
|
||||
uint8_t m_sprite_colorbase = 0;
|
||||
int m_layerpri[3]{};
|
||||
|
||||
// misc
|
||||
uint8_t m_irq_enabled = 0;
|
||||
emu_timer *m_z80_nmi_timer;
|
||||
|
||||
// devices
|
||||
required_device<konami_cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<k052109_device> m_k052109;
|
||||
required_device<k053247_device> m_k053246;
|
||||
required_device<k053251_device> m_k053251;
|
||||
optional_device<k053252_device> m_k053252;
|
||||
optional_device<k054000_device> m_k054000;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
// views
|
||||
memory_view m_videoview0;
|
||||
memory_view m_videoview1;
|
||||
|
||||
required_memory_bank m_mainbank;
|
||||
|
||||
required_ioport m_eeprom_out;
|
||||
|
||||
void eeprom_w(uint8_t data);
|
||||
uint8_t K052109_r(offs_t offset);
|
||||
void K052109_w(offs_t offset, uint8_t data);
|
||||
void _5fe0_w(uint8_t data);
|
||||
void z80_arm_nmi_w(uint8_t data);
|
||||
void z80_irq_w(uint8_t data);
|
||||
uint8_t z80_irq_r();
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(irq);
|
||||
TIMER_CALLBACK_MEMBER(z80_nmi);
|
||||
|
||||
K052109_CB_MEMBER(vendetta_tile_callback);
|
||||
K052109_CB_MEMBER(esckids_tile_callback);
|
||||
void banking_callback(uint8_t data);
|
||||
K053246_CB_MEMBER(sprite_callback);
|
||||
|
||||
void esckids_map(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
// video
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the K052109
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
K052109_CB_MEMBER(vendetta_state::vendetta_tile_callback)
|
||||
{
|
||||
*code |= ((*color & 0x03) << 8) | ((*color & 0x30) << 6) | ((*color & 0x0c) << 10) | (bank << 14);
|
||||
*color = m_layer_colorbase[layer] + ((*color & 0xc0) >> 6);
|
||||
}
|
||||
|
||||
K052109_CB_MEMBER(vendetta_state::esckids_tile_callback)
|
||||
{
|
||||
*code |= ((*color & 0x03) << 8) | ((*color & 0x10) << 6) | ((*color & 0x0c) << 9) | (bank << 13);
|
||||
*color = m_layer_colorbase[layer] + ((*color & 0xe0) >> 5);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the K053247
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
K053246_CB_MEMBER(vendetta_state::sprite_callback)
|
||||
{
|
||||
int pri = (*color & 0x03e0) >> 4; // ???????
|
||||
if (pri <= m_layerpri[2])
|
||||
*priority_mask = 0;
|
||||
else if (pri > m_layerpri[2] && pri <= m_layerpri[1])
|
||||
*priority_mask = 0xf0;
|
||||
else if (pri > m_layerpri[1] && pri <= m_layerpri[0])
|
||||
*priority_mask = 0xf0 | 0xcc;
|
||||
else
|
||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||
|
||||
*color = m_sprite_colorbase + (*color & 0x001f);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
uint32_t vendetta_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int layer[3];
|
||||
|
||||
m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1);
|
||||
m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2);
|
||||
m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI3);
|
||||
m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI4);
|
||||
|
||||
m_k052109->tilemap_update();
|
||||
|
||||
layer[0] = 0;
|
||||
m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2);
|
||||
layer[1] = 1;
|
||||
m_layerpri[1] = m_k053251->get_priority(k053251_device::CI3);
|
||||
layer[2] = 2;
|
||||
m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4);
|
||||
|
||||
konami_sortlayers3(layer, m_layerpri);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
|
||||
m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
||||
|
||||
m_k053246->k053247_sprites_draw(bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// machine
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
EEPROM
|
||||
@ -107,21 +277,21 @@
|
||||
|
||||
void vendetta_state::eeprom_w(uint8_t data)
|
||||
{
|
||||
/* bit 0 - VOC0 - Video banking related */
|
||||
/* bit 1 - VOC1 - Video banking related */
|
||||
/* bit 2 - MSCHNG - Mono Sound select (Amp) */
|
||||
/* bit 3 - EEPCS - EEPROM CS */
|
||||
/* bit 4 - EEPCLK - EEPROM clock */
|
||||
/* bit 5 - EEPDI - EEPROM data */
|
||||
/* bit 6 - IRQ enable */
|
||||
/* bit 7 - Unused */
|
||||
// bit 0 - VOC0 - Video banking related
|
||||
// bit 1 - VOC1 - Video banking related
|
||||
// bit 2 - MSCHNG - Mono Sound select (Amp)
|
||||
// bit 3 - EEPCS - EEPROM CS
|
||||
// bit 4 - EEPCLK - EEPROM clock
|
||||
// bit 5 - EEPDI - EEPROM data
|
||||
// bit 6 - IRQ enable
|
||||
// bit 7 - Unused
|
||||
|
||||
|
||||
if (data == 0xff ) /* this is a bug in the EEPROM write code */
|
||||
if (data == 0xff ) // this is a bug in the EEPROM write code
|
||||
return;
|
||||
|
||||
/* EEPROM */
|
||||
ioport("EEPROMOUT")->write(data, 0xff);
|
||||
// EEPROM
|
||||
m_eeprom_out->write(data, 0xff);
|
||||
|
||||
m_irq_enabled = (data >> 6) & 1;
|
||||
|
||||
@ -150,38 +320,31 @@ void vendetta_state::K052109_w(offs_t offset, uint8_t data)
|
||||
|
||||
void vendetta_state::_5fe0_w(uint8_t data)
|
||||
{
|
||||
/* bit 0,1 coin counters */
|
||||
// bit 0,1 coin counters
|
||||
machine().bookkeeping().coin_counter_w(0, data & 0x01);
|
||||
machine().bookkeeping().coin_counter_w(1, data & 0x02);
|
||||
|
||||
/* bit 2 = BRAMBK ?? */
|
||||
// bit 2 = BRAMBK ??
|
||||
|
||||
/* bit 3 = enable char ROM reading through the video RAM */
|
||||
// bit 3 = enable char ROM reading through the video RAM
|
||||
m_k052109->set_rmrd_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
|
||||
|
||||
/* bit 4 = INIT ?? */
|
||||
// bit 4 = INIT ??
|
||||
|
||||
/* bit 5 = enable sprite ROM reading */
|
||||
// bit 5 = enable sprite ROM reading
|
||||
m_k053246->k053246_set_objcha_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
void vendetta_state::device_timer(emu_timer &timer, device_timer_id id, int param)
|
||||
TIMER_CALLBACK_MEMBER(vendetta_state::z80_nmi)
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
case TIMER_Z80_NMI:
|
||||
m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
|
||||
break;
|
||||
default:
|
||||
throw emu_fatalerror("Unknown id in vendetta_state::device_timer");
|
||||
}
|
||||
m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
|
||||
}
|
||||
|
||||
void vendetta_state::z80_arm_nmi_w(uint8_t data)
|
||||
{
|
||||
m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
|
||||
|
||||
timer_set(attotime::from_usec(25), TIMER_Z80_NMI);
|
||||
m_z80_nmi_timer->adjust(attotime::from_usec(25));
|
||||
}
|
||||
|
||||
void vendetta_state::z80_irq_w(uint8_t data)
|
||||
@ -199,10 +362,10 @@ uint8_t vendetta_state::z80_irq_r()
|
||||
|
||||
void vendetta_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).bankr("bank1");
|
||||
map(0x0000, 0x1fff).bankr(m_mainbank);
|
||||
map(0x2000, 0x3fff).ram();
|
||||
|
||||
/* what is the desired effect of overlapping these memory regions anyway? */
|
||||
// what is the desired effect of overlapping these memory regions anyway?
|
||||
map(0x4000, 0x7fff).rw(m_k052109, FUNC(k052109_device::read), FUNC(k052109_device::write));
|
||||
|
||||
map(0x4000, 0x4fff).view(m_videoview0);
|
||||
@ -232,7 +395,7 @@ void vendetta_state::main_map(address_map &map)
|
||||
void vendetta_state::esckids_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram(); // 053248 64K SRAM
|
||||
/* what is the desired effect of overlapping these memory regions anyway? */
|
||||
// what is the desired effect of overlapping these memory regions anyway?
|
||||
map(0x2000, 0x5fff).rw(m_k052109, FUNC(k052109_device::read), FUNC(k052109_device::write)); // 052109 (Tilemap)
|
||||
|
||||
map(0x2000, 0x2fff).view(m_videoview0); // 052109 (Tilemap) 0x0000-0x0fff - 052109 (Tilemap)
|
||||
@ -244,19 +407,19 @@ void vendetta_state::esckids_map(address_map &map)
|
||||
map(0x3f83, 0x3f83).portr("P4"); // ??? (But not used)
|
||||
map(0x3f92, 0x3f92).portr("EEPROM");
|
||||
map(0x3f93, 0x3f93).portr("SERVICE");
|
||||
map(0x3fa0, 0x3fa7).w(m_k053246, FUNC(k053247_device::k053246_w)); // 053246 (Sprite)
|
||||
map(0x3fb0, 0x3fbf).w(m_k053251, FUNC(k053251_device::write)); // 053251 (Priority Encoder)
|
||||
map(0x3fc0, 0x3fcf).rw(m_k053252, FUNC(k053252_device::read), FUNC(k053252_device::write)); // 053252
|
||||
map(0x3fa0, 0x3fa7).w(m_k053246, FUNC(k053247_device::k053246_w)); // Sprite
|
||||
map(0x3fb0, 0x3fbf).w(m_k053251, FUNC(k053251_device::write)); // Priority Encoder
|
||||
map(0x3fc0, 0x3fcf).rw(m_k053252, FUNC(k053252_device::read), FUNC(k053252_device::write));
|
||||
map(0x3fd0, 0x3fd0).w(FUNC(vendetta_state::_5fe0_w)); // Coin Counter, 052109 RMRD, 053246 OBJCHA
|
||||
map(0x3fd2, 0x3fd2).w(FUNC(vendetta_state::eeprom_w)); // EEPROM, Video banking
|
||||
map(0x3fd4, 0x3fd4).rw(FUNC(vendetta_state::z80_irq_r), FUNC(vendetta_state::z80_irq_w)); // Sound
|
||||
map(0x3fd6, 0x3fd7).rw("k053260", FUNC(k053260_device::main_read), FUNC(k053260_device::main_write)); // Sound
|
||||
map(0x3fd8, 0x3fd9).r(m_k053246, FUNC(k053247_device::k053246_r)); // 053246 (Sprite)
|
||||
map(0x3fd8, 0x3fd9).r(m_k053246, FUNC(k053247_device::k053246_r)); // Sprite
|
||||
map(0x3fda, 0x3fda).nopw(); // Not Emulated (Watchdog ???)
|
||||
map(0x4000, 0x4fff).view(m_videoview1); // Tilemap mask ROM bank selector (mask ROM Test)
|
||||
m_videoview1[0](0x4000, 0x4fff).rw(FUNC(vendetta_state::K052109_r), FUNC(vendetta_state::K052109_w));
|
||||
m_videoview1[1](0x4000, 0x4fff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
|
||||
map(0x6000, 0x7fff).bankr("bank1"); // 053248 '975r01' 1M ROM (Banked)
|
||||
map(0x6000, 0x7fff).bankr(m_mainbank); // 053248 '975r01' 1M ROM (Banked)
|
||||
map(0x8000, 0xffff).rom().region("maincpu", 0x18000); // 053248 '975r01' 1M ROM (0x18000-0x1ffff)
|
||||
}
|
||||
|
||||
@ -302,7 +465,7 @@ static INPUT_PORTS_START( vendet4p )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read)
|
||||
PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") /* not really vblank, object related. Its timed, otherwise sprites flicker */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // not really vblank, object related. It's timed, otherwise sprites flicker
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START( "EEPROMOUT" )
|
||||
@ -358,7 +521,7 @@ static INPUT_PORTS_START( esckids )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read)
|
||||
PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") /* not really vblank, object related. Its timed, otherwise sprites flicker */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") // not really vblank, object related. It's timed, otherwise sprites flicker
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START( "EEPROMOUT" )
|
||||
@ -391,8 +554,10 @@ INTERRUPT_GEN_MEMBER(vendetta_state::irq)
|
||||
|
||||
void vendetta_state::machine_start()
|
||||
{
|
||||
membank("bank1")->configure_entries(0, 28, memregion("maincpu")->base(), 0x2000);
|
||||
membank("bank1")->set_entry(0);
|
||||
m_mainbank->configure_entries(0, 28, memregion("maincpu")->base(), 0x2000);
|
||||
m_mainbank->set_entry(0);
|
||||
|
||||
m_z80_nmi_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(vendetta_state::z80_nmi), this));
|
||||
|
||||
save_item(NAME(m_irq_enabled));
|
||||
save_item(NAME(m_sprite_colorbase));
|
||||
@ -417,28 +582,28 @@ void vendetta_state::banking_callback(uint8_t data)
|
||||
if (data >= 0x1c)
|
||||
logerror("%s Unknown bank selected %02x\n", machine().describe_context(), data);
|
||||
else
|
||||
membank("bank1")->set_entry(data);
|
||||
m_mainbank->set_entry(data);
|
||||
}
|
||||
|
||||
void vendetta_state::vendetta(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
KONAMI(config, m_maincpu, XTAL(24'000'000)/8); /* 052001 (verified on pcb) */
|
||||
// basic machine hardware
|
||||
KONAMI(config, m_maincpu, XTAL(24'000'000) / 8); // 052001 (verified on PCB)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vendetta_state::main_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vendetta_state::irq));
|
||||
m_maincpu->line().set(FUNC(vendetta_state::banking_callback));
|
||||
|
||||
Z80(config, m_audiocpu, XTAL(3'579'545)); /* verified with PCB */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &vendetta_state::sound_map); /* interrupts are triggered by the main CPU */
|
||||
Z80(config, m_audiocpu, XTAL(3'579'545)); // verified with PCB
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &vendetta_state::sound_map); // interrupts are triggered by the main CPU
|
||||
|
||||
EEPROM_ER5911_8BIT(config, "eeprom");
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(59.17); /* measured on PCB */
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_refresh_hz(59.17); // measured on PCB
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(13*8, (64-13)*8-1, 2*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(vendetta_state::screen_update));
|
||||
@ -459,13 +624,13 @@ void vendetta_state::vendetta(machine_config &config)
|
||||
K053251(config, m_k053251, 0);
|
||||
K054000(config, m_k054000, 0);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
YM2151(config, "ymsnd", XTAL(3'579'545)).add_route(0, "lspeaker", 0.5).add_route(1, "rspeaker", 0.5); /* verified with PCB */
|
||||
YM2151(config, "ymsnd", XTAL(3'579'545)).add_route(0, "lspeaker", 0.5).add_route(1, "rspeaker", 0.5); // verified with PCB
|
||||
|
||||
k053260_device &k053260(K053260(config, "k053260", XTAL(3'579'545))); /* verified with PCB */
|
||||
k053260_device &k053260(K053260(config, "k053260", XTAL(3'579'545))); // verified with PCB
|
||||
k053260.add_route(0, "lspeaker", 0.75);
|
||||
k053260.add_route(1, "rspeaker", 0.75);
|
||||
}
|
||||
@ -474,10 +639,10 @@ void vendetta_state::esckids(machine_config &config)
|
||||
{
|
||||
vendetta(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
// basic machine hardware
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vendetta_state::esckids_map);
|
||||
|
||||
//subdevice<screen_device>("screen")->set_visarea(13*8, (64-13)*8-1, 2*8, 30*8-1); /* black areas on the edges */
|
||||
//subdevice<screen_device>("screen")->set_visarea(13*8, (64-13)*8-1, 2*8, 30*8-1); // black areas on the edges
|
||||
subdevice<screen_device>("screen")->set_visarea(14*8, (64-14)*8-1, 2*8, 30*8-1);
|
||||
|
||||
config.device_remove("k054000");
|
||||
@ -501,23 +666,23 @@ void vendetta_state::esckids(machine_config &config)
|
||||
***************************************************************************/
|
||||
|
||||
ROM_START( vendetta )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081t01.17c", 0x00000, 0x40000, CRC(e76267f5) SHA1(efef6c2edb4c181374661f358dad09123741b63d) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -525,23 +690,23 @@ ROM_START( vendetta )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendettar )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081r01.17c", 0x00000, 0x40000, CRC(84796281) SHA1(e4330c6eaa17adda5b4bd3eb824388c89fb07918) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -549,23 +714,23 @@ ROM_START( vendettar )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendettaz )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081z01.17c", 0x00000, 0x40000, CRC(4d225a8d) SHA1(fe8f6e63d033cf04c9a287d870db244fddb81f03) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -573,23 +738,23 @@ ROM_START( vendettaz )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendettaun )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_LOAD( "1.17c", 0x00000, 0x40000, CRC(1a7ceb1b) SHA1(c7454e11b7a06d10c94fe44ba6f83208bca4ced9) ) /* World 4 player, program ROM found labeled simply as "1" */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "1.17c", 0x00000, 0x40000, CRC(1a7ceb1b) SHA1(c7454e11b7a06d10c94fe44ba6f83208bca4ced9) ) // World 4 player, program ROM found labeled simply as "1"
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -597,23 +762,23 @@ ROM_START( vendettaun )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendetta2pw )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081w01.17c", 0x00000, 0x40000, CRC(cee57132) SHA1(8b6413877e127511daa76278910c2ee3247d613a) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -621,23 +786,23 @@ ROM_START( vendetta2pw )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendetta2peba )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081-eb-a01.17c", 0x00000, 0x40000, CRC(8430bb52) SHA1(54e896510fa44e76b0640b17150210fbf6b3b5bc)) // Label was unclear apart from EB stamp on the middle line. Bottom line looked like 401, but probably A01
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -645,23 +810,23 @@ ROM_START( vendetta2peba )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendetta2pun )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_LOAD( "1.17c", 0x00000, 0x40000, CRC(b4edde48) SHA1(bf6342cfeb0560cdf9c943f6d112fd89ee5a4f6b) ) /* World 2 player, program ROM found labeled simply as "1" */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "1.17c", 0x00000, 0x40000, CRC(b4edde48) SHA1(bf6342cfeb0560cdf9c943f6d112fd89ee5a4f6b) ) // World 2 player, program ROM found labeled simply as "1"
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -669,23 +834,23 @@ ROM_START( vendetta2pun )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendetta2pu )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081u01.17c", 0x00000, 0x40000, CRC(b4d9ade5) SHA1(fbd543738cb0b68c80ff05eed7849b608de03395) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -693,23 +858,23 @@ ROM_START( vendetta2pu )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendetta2pd )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081d01.17c", 0x00000, 0x40000, CRC(335da495) SHA1(ea74680eb898aeecf9f1eec95f151bcf66e6b6cb) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -717,23 +882,23 @@ ROM_START( vendetta2pd )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendettan )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081n01.17c", 0x00000, 0x40000, CRC(fc766fab) SHA1(a22c82810f2a2b66fc112e2d043e8025d0dc2841) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -741,23 +906,23 @@ ROM_START( vendettan )
|
||||
ROM_END
|
||||
|
||||
ROM_START( vendetta2pp )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) /* code + banked ROMs + banked RAM */
|
||||
ROM_REGION( 0x40000, "maincpu", 0 ) // code + banked ROMs
|
||||
ROM_LOAD( "081p01.17c", 0x00000, 0x40000, CRC(5fe30242) SHA1(2ea98e66637fa2ad60044b1a2b0dd158a82403a2) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "081b02", 0x000000, 0x10000, CRC(4c604d9b) SHA1(22d979f5dbde7912dd927bf5538fdbfc5b82905e) )
|
||||
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
|
||||
ROM_REGION( 0x100000, "k052109", 0 ) // tiles
|
||||
ROM_LOAD32_WORD( "081a09", 0x000000, 0x080000, CRC(b4c777a9) SHA1(cc2b1dff4404ecd72b604e25d00fffdf7f0f8b52) )
|
||||
ROM_LOAD32_WORD( "081a08", 0x000002, 0x080000, CRC(272ac8d9) SHA1(2da12fe4c13921bf0d4ebffec326f8d207ec4fad) )
|
||||
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) /* graphics ( don't dispose as the program can read them ) */
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) /* sprites */
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) /* sprites */
|
||||
ROM_REGION( 0x400000, "k053246", 0 ) // graphics (don't dispose as the program can read them)
|
||||
ROM_LOAD64_WORD( "081a04", 0x000000, 0x100000, CRC(464b9aa4) SHA1(28066ff0a07c3e56e7192918a882778c1b316b37) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a05", 0x000002, 0x100000, CRC(4e173759) SHA1(ce803f2aca7d7dedad00ab30e112443848747bd2) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a06", 0x000004, 0x100000, CRC(e9fe6d80) SHA1(2b7fc9d7fe43cd85dc8b975fe639c273cb0d9256) ) // sprites
|
||||
ROM_LOAD64_WORD( "081a07", 0x000006, 0x100000, CRC(8a22b29a) SHA1(be539f21518e13038ab1d4cc2b2a901dd3e621f4) ) // sprites
|
||||
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) /* 053260 samples */
|
||||
ROM_REGION( 0x100000, "k053260", 0 ) // samples
|
||||
ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", 0 ) // default EEPROM to prevent game booting upside down with error
|
||||
@ -814,6 +979,8 @@ ROM_START( esckidsj )
|
||||
ROM_LOAD( "esckidsj.nv", 0x0000, 0x080, CRC(985e2a2d) SHA1(afd9e5fc014d593d0a384326f32caf2a73fba867) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
@ -825,10 +992,10 @@ ROM_END
|
||||
GAME( 1991, vendetta, 0, vendetta, vendet4p, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (World, 4 Players, ver. T)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vendettar, vendetta, vendetta, vendet4p, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (US, 4 Players, ver. R)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vendettaz, vendetta, vendetta, vendet4p, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (Asia, 4 Players, ver. Z)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vendettaun, vendetta, vendetta, vendet4p, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (World, 4 Players, ver. ?)", MACHINE_SUPPORTS_SAVE ) /* program ROM labeled as 1 */
|
||||
GAME( 1991, vendettaun, vendetta, vendetta, vendet4p, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (World, 4 Players, ver. ?)", MACHINE_SUPPORTS_SAVE ) // program ROM labeled as 1
|
||||
GAME( 1991, vendetta2pw, vendetta, vendetta, vendetta, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (World, 2 Players, ver. W)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vendetta2peba,vendetta,vendetta, vendetta, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (World, 2 Players, ver. EB-A?)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vendetta2pun,vendetta, vendetta, vendetta, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (World, 2 Players, ver. ?)", MACHINE_SUPPORTS_SAVE ) /* program ROM labeled as 1 */
|
||||
GAME( 1991, vendetta2pun,vendetta, vendetta, vendetta, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (World, 2 Players, ver. ?)", MACHINE_SUPPORTS_SAVE ) // program ROM labeled as 1
|
||||
GAME( 1991, vendetta2pu, vendetta, vendetta, vendetta, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. U)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vendetta2pd, vendetta, vendetta, vendetta, vendetta_state, empty_init, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. D)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, vendettan, vendetta, vendetta, vendet4p, vendetta_state, empty_init, ROT0, "Konami", "Crime Fighters 2 (Japan, 4 Players, ver. N)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -1,70 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Nicola Salmoria
|
||||
/*************************************************************************
|
||||
|
||||
Capcom Baseball
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include "emupal.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
class cbasebal_state : public driver_device
|
||||
{
|
||||
public:
|
||||
cbasebal_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
void init_cbasebal();
|
||||
void cbasebal(machine_config &config);
|
||||
|
||||
private:
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_fg_tilemap = nullptr;
|
||||
tilemap_t *m_bg_tilemap = nullptr;
|
||||
std::unique_ptr<uint8_t[]> m_textram;
|
||||
std::unique_ptr<uint8_t[]> m_scrollram;
|
||||
std::unique_ptr<uint8_t[]> m_decoded;
|
||||
uint8_t m_scroll_x[2]{};
|
||||
uint8_t m_scroll_y[2]{};
|
||||
int m_tilebank = 0;
|
||||
int m_spritebank = 0;
|
||||
int m_text_on = 0;
|
||||
int m_bg_on = 0;
|
||||
int m_obj_on = 0;
|
||||
int m_flipscreen = 0;
|
||||
|
||||
/* misc */
|
||||
uint8_t m_rambank = 0U;
|
||||
void cbasebal_bankswitch_w(uint8_t data);
|
||||
uint8_t bankedram_r(offs_t offset);
|
||||
void bankedram_w(offs_t offset, uint8_t data);
|
||||
void cbasebal_coinctrl_w(uint8_t data);
|
||||
void cbasebal_textram_w(offs_t offset, uint8_t data);
|
||||
uint8_t cbasebal_textram_r(offs_t offset);
|
||||
void cbasebal_scrollram_w(offs_t offset, uint8_t data);
|
||||
uint8_t cbasebal_scrollram_r(offs_t offset);
|
||||
void cbasebal_gfxctrl_w(uint8_t data);
|
||||
void cbasebal_scrollx_w(offs_t offset, uint8_t data);
|
||||
void cbasebal_scrolly_w(offs_t offset, uint8_t data);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
void cbasebal_map(address_map &map);
|
||||
void cbasebal_portmap(address_map &map);
|
||||
void decrypted_opcodes_map(address_map &map);
|
||||
};
|
@ -1,97 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ernesto Corvi
|
||||
/*************************************************************************
|
||||
|
||||
Vendetta
|
||||
|
||||
*************************************************************************/
|
||||
#ifndef MAME_INCLUDES_VENDETTA_H
|
||||
#define MAME_INCLUDES_VENDETTA_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpu/m6809/konami.h" // for the callback and the firq irq definition
|
||||
#include "machine/k053252.h"
|
||||
#include "video/k052109.h"
|
||||
#include "video/k053246_k053247_k055673.h"
|
||||
#include "video/k053251.h"
|
||||
#include "video/k054000.h"
|
||||
#include "video/konami_helper.h"
|
||||
#include "emupal.h"
|
||||
|
||||
class vendetta_state : public driver_device
|
||||
{
|
||||
public:
|
||||
vendetta_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_k052109(*this, "k052109"),
|
||||
m_k053246(*this, "k053246"),
|
||||
m_k053251(*this, "k053251"),
|
||||
m_k053252(*this, "k053252"),
|
||||
m_k054000(*this, "k054000"),
|
||||
m_palette(*this, "palette"),
|
||||
m_videoview0(*this, "videoview0"),
|
||||
m_videoview1(*this, "videoview1")
|
||||
{ }
|
||||
|
||||
void esckids(machine_config &config);
|
||||
void vendetta(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
TIMER_Z80_NMI
|
||||
};
|
||||
|
||||
// video-related
|
||||
int m_layer_colorbase[3]{};
|
||||
int m_sprite_colorbase = 0;
|
||||
int m_layerpri[3]{};
|
||||
|
||||
// misc
|
||||
int m_irq_enabled = 0;
|
||||
|
||||
// devices
|
||||
required_device<konami_cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<k052109_device> m_k052109;
|
||||
required_device<k053247_device> m_k053246;
|
||||
required_device<k053251_device> m_k053251;
|
||||
optional_device<k053252_device> m_k053252;
|
||||
optional_device<k054000_device> m_k054000;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
// views
|
||||
memory_view m_videoview0;
|
||||
memory_view m_videoview1;
|
||||
|
||||
void eeprom_w(uint8_t data);
|
||||
uint8_t K052109_r(offs_t offset);
|
||||
void K052109_w(offs_t offset, uint8_t data);
|
||||
void _5fe0_w(uint8_t data);
|
||||
void z80_arm_nmi_w(uint8_t data);
|
||||
void z80_irq_w(uint8_t data);
|
||||
uint8_t z80_irq_r();
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(irq);
|
||||
|
||||
K052109_CB_MEMBER(vendetta_tile_callback);
|
||||
K052109_CB_MEMBER(esckids_tile_callback);
|
||||
void banking_callback(uint8_t data);
|
||||
K053246_CB_MEMBER(sprite_callback);
|
||||
|
||||
void esckids_map(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_VENDETTA_H
|
@ -38823,13 +38823,13 @@ sidepcktj // (c) 1986 Data East Corporation
|
||||
sigma21 //
|
||||
|
||||
@source:sigmab31.cpp
|
||||
cptlucky // (c) 199? Sigma
|
||||
cptlucky // (c) 1988 Sigma
|
||||
|
||||
@source:sigmab52.cpp
|
||||
jwildb52 // (c) 199? Sigma
|
||||
jwildb52a // (c) 199? Sigma
|
||||
jwildb52h // (c) 199? Sigma
|
||||
s8waysfc // (c) 199? Sigma
|
||||
s8waysfc // (c) 1989 Sigma
|
||||
|
||||
@source:sigmab98.cpp
|
||||
animalc // (c) 2000 Sammy
|
||||
|
@ -1,179 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Nicola Salmoria
|
||||
#include "emu.h"
|
||||
#include "includes/cbasebal.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(cbasebal_state::get_bg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_scrollram[2 * tile_index + 1];
|
||||
tileinfo.set(1,
|
||||
m_scrollram[2 * tile_index] + ((attr & 0x07) << 8) + 0x800 * m_tilebank,
|
||||
(attr & 0xf0) >> 4,
|
||||
(attr & 0x08) ? TILE_FLIPX : 0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(cbasebal_state::get_fg_tile_info)
|
||||
{
|
||||
uint8_t attr = m_textram[tile_index + 0x800];
|
||||
tileinfo.set(0,
|
||||
m_textram[tile_index] + ((attr & 0xf0) << 4),
|
||||
attr & 0x07,
|
||||
(attr & 0x08) ? TILE_FLIPX : 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Start the video hardware emulation.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void cbasebal_state::video_start()
|
||||
{
|
||||
m_textram = std::make_unique<uint8_t[]>(0x1000);
|
||||
m_scrollram = std::make_unique<uint8_t[]>(0x1000);
|
||||
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(3);
|
||||
|
||||
save_pointer(NAME(m_textram), 0x1000);
|
||||
save_pointer(NAME(m_scrollram), 0x1000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Memory handlers
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void cbasebal_state::cbasebal_textram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_textram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset & 0x7ff);
|
||||
}
|
||||
|
||||
uint8_t cbasebal_state::cbasebal_textram_r(offs_t offset)
|
||||
{
|
||||
return m_textram[offset];
|
||||
}
|
||||
|
||||
void cbasebal_state::cbasebal_scrollram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scrollram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
uint8_t cbasebal_state::cbasebal_scrollram_r(offs_t offset)
|
||||
{
|
||||
return m_scrollram[offset];
|
||||
}
|
||||
|
||||
void cbasebal_state::cbasebal_gfxctrl_w(uint8_t data)
|
||||
{
|
||||
/* bit 0 is unknown - toggles continuously */
|
||||
|
||||
/* bit 1 is flip screen */
|
||||
m_flipscreen = data & 0x02;
|
||||
machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||
|
||||
/* bit 2 is unknown - unused? */
|
||||
|
||||
/* bit 3 is tile bank */
|
||||
if (m_tilebank != ((data & 0x08) >> 3))
|
||||
{
|
||||
m_tilebank = (data & 0x08) >> 3;
|
||||
m_bg_tilemap->mark_all_dirty();
|
||||
}
|
||||
|
||||
/* bit 4 is sprite bank */
|
||||
m_spritebank = (data & 0x10) >> 4;
|
||||
|
||||
/* bits 5 is text enable */
|
||||
m_text_on = ~data & 0x20;
|
||||
|
||||
/* bits 6-7 are bg/sprite enable (don't know which is which) */
|
||||
m_bg_on = ~data & 0x40;
|
||||
m_obj_on = ~data & 0x80;
|
||||
|
||||
/* other bits unknown, but used */
|
||||
}
|
||||
|
||||
void cbasebal_state::cbasebal_scrollx_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scroll_x[offset] = data;
|
||||
m_bg_tilemap->set_scrollx(0, m_scroll_x[0] + 256 * m_scroll_x[1]);
|
||||
}
|
||||
|
||||
void cbasebal_state::cbasebal_scrolly_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_scroll_y[offset] = data;
|
||||
m_bg_tilemap->set_scrolly(0, m_scroll_y[0] + 256 * m_scroll_y[1]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void cbasebal_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
{
|
||||
uint8_t *spriteram = m_spriteram;
|
||||
int offs, sx, sy;
|
||||
|
||||
/* the last entry is not a sprite, we skip it otherwise spang shows a bubble */
|
||||
/* moving diagonally across the screen */
|
||||
for (offs = m_spriteram.bytes() - 8; offs >= 0; offs -= 4)
|
||||
{
|
||||
int code = spriteram[offs];
|
||||
int attr = spriteram[offs + 1];
|
||||
int color = attr & 0x07;
|
||||
int flipx = attr & 0x08;
|
||||
sx = spriteram[offs + 3] + ((attr & 0x10) << 4);
|
||||
sy = ((spriteram[offs + 2] + 8) & 0xff) - 8;
|
||||
code += (attr & 0xe0) << 3;
|
||||
code += m_spritebank * 0x800;
|
||||
|
||||
if (m_flipscreen)
|
||||
{
|
||||
sx = 496 - sx;
|
||||
sy = 240 - sy;
|
||||
flipx = !flipx;
|
||||
}
|
||||
|
||||
m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
|
||||
code,
|
||||
color,
|
||||
flipx,m_flipscreen,
|
||||
sx,sy,15);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t cbasebal_state::screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
if (m_bg_on)
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
else
|
||||
bitmap.fill(768, cliprect);
|
||||
|
||||
if (m_obj_on)
|
||||
draw_sprites(bitmap, cliprect);
|
||||
|
||||
if (m_text_on)
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
return 0;
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ernesto Corvi
|
||||
#include "emu.h"
|
||||
#include "includes/vendetta.h"
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the K052109
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
K052109_CB_MEMBER(vendetta_state::vendetta_tile_callback)
|
||||
{
|
||||
*code |= ((*color & 0x03) << 8) | ((*color & 0x30) << 6) | ((*color & 0x0c) << 10) | (bank << 14);
|
||||
*color = m_layer_colorbase[layer] + ((*color & 0xc0) >> 6);
|
||||
}
|
||||
|
||||
K052109_CB_MEMBER(vendetta_state::esckids_tile_callback)
|
||||
{
|
||||
*code |= ((*color & 0x03) << 8) | ((*color & 0x10) << 6) | ((*color & 0x0c) << 9) | (bank << 13);
|
||||
*color = m_layer_colorbase[layer] + ((*color & 0xe0) >> 5);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the K053247
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
K053246_CB_MEMBER(vendetta_state::sprite_callback)
|
||||
{
|
||||
int pri = (*color & 0x03e0) >> 4; /* ??????? */
|
||||
if (pri <= m_layerpri[2])
|
||||
*priority_mask = 0;
|
||||
else if (pri > m_layerpri[2] && pri <= m_layerpri[1])
|
||||
*priority_mask = 0xf0;
|
||||
else if (pri > m_layerpri[1] && pri <= m_layerpri[0])
|
||||
*priority_mask = 0xf0 | 0xcc;
|
||||
else
|
||||
*priority_mask = 0xf0 | 0xcc | 0xaa;
|
||||
|
||||
*color = m_sprite_colorbase + (*color & 0x001f);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Display refresh
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
uint32_t vendetta_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int layer[3];
|
||||
|
||||
m_sprite_colorbase = m_k053251->get_palette_index(k053251_device::CI1);
|
||||
m_layer_colorbase[0] = m_k053251->get_palette_index(k053251_device::CI2);
|
||||
m_layer_colorbase[1] = m_k053251->get_palette_index(k053251_device::CI3);
|
||||
m_layer_colorbase[2] = m_k053251->get_palette_index(k053251_device::CI4);
|
||||
|
||||
m_k052109->tilemap_update();
|
||||
|
||||
layer[0] = 0;
|
||||
m_layerpri[0] = m_k053251->get_priority(k053251_device::CI2);
|
||||
layer[1] = 1;
|
||||
m_layerpri[1] = m_k053251->get_priority(k053251_device::CI3);
|
||||
layer[2] = 2;
|
||||
m_layerpri[2] = m_k053251->get_priority(k053251_device::CI4);
|
||||
|
||||
konami_sortlayers3(layer, m_layerpri);
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
|
||||
m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
||||
|
||||
m_k053246->k053247_sprites_draw(bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user