mirror of
https://github.com/holub/mame
synced 2025-05-13 17:38:21 +03:00
pc090oj.cpp : Updates (#5196)
* pc090oj.cpp : Updates Internalize gfxdecode, Use callback for color bank / priority behavior, Reduce defines, Unnecessary lines, Simplify handlers, Use shorter / correct type values asuka.cpp, opwolf.cpp, rastan.cpp, rbisland.cpp, volfied.cpp : Simplify gfxdecodes, Reduce trampolines, Duplicates, Fix namings * rastan.cpp, volfied.cpp : Minor note fixes
This commit is contained in:
parent
32b655b292
commit
0d4948e0dc
@ -328,7 +328,7 @@ void asuka_state::bonzeadv_map(address_map &map)
|
||||
map(0x10c000, 0x10ffff).ram();
|
||||
map(0x200000, 0x200007).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_word_w));
|
||||
map(0x390000, 0x390001).portr("DSWA");
|
||||
map(0x3a0000, 0x3a0001).w(FUNC(asuka_state::asuka_spritectrl_w));
|
||||
map(0x3a0000, 0x3a0001).w(m_pc090oj, FUNC(pc090oj_device::sprite_ctrl_w));
|
||||
map(0x3b0000, 0x3b0001).portr("DSWB");
|
||||
map(0x3c0000, 0x3c0001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
|
||||
map(0x3d0000, 0x3d0001).nopr();
|
||||
@ -347,7 +347,7 @@ void asuka_state::asuka_map(address_map &map)
|
||||
map(0x100000, 0x103fff).ram();
|
||||
map(0x1076f0, 0x1076f1).nopr(); /* Mofflott init does dummy reads here */
|
||||
map(0x200000, 0x20000f).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_word_w));
|
||||
map(0x3a0000, 0x3a0003).w(FUNC(asuka_state::asuka_spritectrl_w));
|
||||
map(0x3a0000, 0x3a0003).w(m_pc090oj, FUNC(pc090oj_device::sprite_ctrl_w));
|
||||
map(0x3e0000, 0x3e0001).nopr();
|
||||
map(0x3e0001, 0x3e0001).w("ciu", FUNC(pc060ha_device::master_port_w));
|
||||
map(0x3e0003, 0x3e0003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w));
|
||||
@ -361,7 +361,7 @@ void asuka_state::asuka_map(address_map &map)
|
||||
void asuka_state::cadash_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom();
|
||||
map(0x080000, 0x080003).w(FUNC(asuka_state::asuka_spritectrl_w));
|
||||
map(0x080000, 0x080003).w(m_pc090oj, FUNC(pc090oj_device::sprite_ctrl_w));
|
||||
map(0x0c0000, 0x0c0001).nopr();
|
||||
map(0x0c0001, 0x0c0001).w("ciu", FUNC(pc060ha_device::master_port_w));
|
||||
map(0x0c0003, 0x0c0003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w));
|
||||
@ -381,7 +381,7 @@ void asuka_state::eto_map(address_map &map)
|
||||
map(0x200000, 0x203fff).ram();
|
||||
map(0x300000, 0x30000f).rw(m_tc0220ioc, FUNC(tc0220ioc_device::read), FUNC(tc0220ioc_device::write)).umask16(0x00ff);
|
||||
map(0x400000, 0x40000f).r(m_tc0220ioc, FUNC(tc0220ioc_device::read)).umask16(0x00ff); /* service mode mirror */
|
||||
map(0x4a0000, 0x4a0003).w(FUNC(asuka_state::asuka_spritectrl_w));
|
||||
map(0x4a0000, 0x4a0003).w(m_pc090oj, FUNC(pc090oj_device::sprite_ctrl_w));
|
||||
map(0x4e0000, 0x4e0001).nopr();
|
||||
map(0x4e0001, 0x4e0001).w("ciu", FUNC(pc060ha_device::master_port_w));
|
||||
map(0x4e0003, 0x4e0003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w));
|
||||
@ -760,8 +760,7 @@ INPUT_PORTS_END
|
||||
**************************************************************/
|
||||
|
||||
static GFXDECODE_START( gfx_asuka )
|
||||
GFXDECODE_ENTRY( "pc090oj", 0, gfx_16x16x4_packed_msb, 0, 256 ) /* OBJ */
|
||||
GFXDECODE_ENTRY( "tc0100scn", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* SCR */
|
||||
GFXDECODE_ENTRY( "tc0100scn", 0, gfx_8x8x4_packed_msb, 0, 256 ) /* SCR */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -784,7 +783,7 @@ void asuka_state::machine_reset()
|
||||
m_adpcm_ff = false;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(asuka_state::screen_vblank_asuka)
|
||||
WRITE_LINE_MEMBER(asuka_state::screen_vblank)
|
||||
{
|
||||
// rising edge
|
||||
if (state)
|
||||
@ -842,19 +841,19 @@ void asuka_state::bonzeadv(machine_config &config)
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 3*8, 31*8-1);
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update_bonzeadv));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka));
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank));
|
||||
screen.set_palette(m_tc0110pcr);
|
||||
|
||||
GFXDECODE(config, "gfxdecode", m_tc0110pcr, gfx_asuka);
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_offsets(0, 8);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_palette(m_tc0110pcr);
|
||||
m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb), this);
|
||||
|
||||
TC0100SCN(config, m_tc0100scn, 0);
|
||||
m_tc0100scn->set_gfx_region(1);
|
||||
m_tc0100scn->set_gfx_region(0);
|
||||
m_tc0100scn->set_gfxdecode_tag("gfxdecode");
|
||||
m_tc0100scn->set_palette(m_tc0110pcr);
|
||||
|
||||
@ -900,20 +899,20 @@ void asuka_state::asuka(machine_config &config)
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update_asuka));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka));
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank));
|
||||
screen.set_palette(m_tc0110pcr);
|
||||
|
||||
GFXDECODE(config, "gfxdecode", m_tc0110pcr, gfx_asuka);
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_offsets(0, 8);
|
||||
m_pc090oj->set_usebuffer(1);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_usebuffer(true);
|
||||
m_pc090oj->set_palette(m_tc0110pcr);
|
||||
m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
|
||||
|
||||
TC0100SCN(config, m_tc0100scn, 0);
|
||||
m_tc0100scn->set_gfx_region(1);
|
||||
m_tc0100scn->set_gfx_region(0);
|
||||
m_tc0100scn->set_gfxdecode_tag("gfxdecode");
|
||||
m_tc0100scn->set_palette(m_tc0110pcr);
|
||||
|
||||
@ -971,20 +970,20 @@ void asuka_state::cadash(machine_config &config)
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update_bonzeadv));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka));
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank));
|
||||
screen.set_palette(m_tc0110pcr);
|
||||
|
||||
GFXDECODE(config, "gfxdecode", m_tc0110pcr, gfx_asuka);
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_offsets(0, 8);
|
||||
m_pc090oj->set_usebuffer(1);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_usebuffer(true);
|
||||
m_pc090oj->set_palette(m_tc0110pcr);
|
||||
m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb), this);
|
||||
|
||||
TC0100SCN(config, m_tc0100scn, 0);
|
||||
m_tc0100scn->set_gfx_region(1);
|
||||
m_tc0100scn->set_gfx_region(0);
|
||||
m_tc0100scn->set_offsets(1, 0);
|
||||
m_tc0100scn->set_gfxdecode_tag("gfxdecode");
|
||||
m_tc0100scn->set_palette(m_tc0110pcr);
|
||||
@ -1031,19 +1030,19 @@ void asuka_state::mofflott(machine_config &config)
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update_asuka));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka));
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank));
|
||||
screen.set_palette(m_tc0110pcr);
|
||||
|
||||
GFXDECODE(config, "gfxdecode", m_tc0110pcr, gfx_asuka);
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_offsets(0, 8);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_palette(m_tc0110pcr);
|
||||
m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
|
||||
|
||||
TC0100SCN(config, m_tc0100scn, 0);
|
||||
m_tc0100scn->set_gfx_region(1);
|
||||
m_tc0100scn->set_gfx_region(0);
|
||||
m_tc0100scn->set_offsets(1, 0);
|
||||
m_tc0100scn->set_gfxdecode_tag("gfxdecode");
|
||||
m_tc0100scn->set_palette(m_tc0110pcr);
|
||||
@ -1098,19 +1097,19 @@ void asuka_state::eto(machine_config &config)
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update_asuka));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka));
|
||||
screen.set_screen_update(FUNC(asuka_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(asuka_state::screen_vblank));
|
||||
screen.set_palette(m_tc0110pcr);
|
||||
|
||||
GFXDECODE(config, "gfxdecode", m_tc0110pcr, gfx_asuka);
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_offsets(0, 8);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_palette(m_tc0110pcr);
|
||||
m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
|
||||
|
||||
TC0100SCN(config, m_tc0100scn, 0);
|
||||
m_tc0100scn->set_gfx_region(1);
|
||||
m_tc0100scn->set_gfx_region(0);
|
||||
m_tc0100scn->set_offsets(1, 0);
|
||||
m_tc0100scn->set_gfxdecode_tag("gfxdecode");
|
||||
m_tc0100scn->set_palette(m_tc0110pcr);
|
||||
|
@ -342,7 +342,8 @@ private:
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb);
|
||||
|
||||
DECLARE_MACHINE_RESET(opwolf);
|
||||
uint32_t screen_update_opwolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void opwolf_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void opwolf_msm5205_vck(msm5205_device *device, int chip);
|
||||
template<int N> DECLARE_WRITE_LINE_MEMBER(msm5205_vck_w);
|
||||
|
||||
@ -648,7 +649,7 @@ WRITE16_MEMBER(opwolf_state::opwolf_spritectrl_w)
|
||||
/* bit 4 -> LATCH - used to signal light gun position can be latched to inputs on v-blank */
|
||||
/* bits 5-7 are the sprite palette bank */
|
||||
|
||||
m_pc090oj->set_sprite_ctrl((data & 0xe0) >> 5);
|
||||
m_pc090oj->sprite_ctrl_w(data);
|
||||
|
||||
/* If data & 3, the Piston Motor is activated via M-1/M-2 connector */
|
||||
if (data & 3)
|
||||
@ -662,7 +663,13 @@ WRITE16_MEMBER(opwolf_state::opwolf_spritectrl_w)
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t opwolf_state::screen_update_opwolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
void opwolf_state::opwolf_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)
|
||||
{
|
||||
sprite_colbank = (sprite_ctrl & 0xe0) >> 1;
|
||||
pri_mask = 0xfc; /* sprites under top bg layer */
|
||||
}
|
||||
|
||||
uint32_t opwolf_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int layer[2];
|
||||
|
||||
@ -678,7 +685,7 @@ uint32_t opwolf_state::screen_update_opwolf(screen_device &screen, bitmap_ind16
|
||||
m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
|
||||
m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
|
||||
m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 1);
|
||||
m_pc090oj->draw_sprites(screen, bitmap, cliprect);
|
||||
|
||||
// if (ioport("P1X")->read())
|
||||
// popmessage("%d %d", machine(), "P1X"), ioport("P1Y")->read());
|
||||
@ -691,58 +698,8 @@ uint32_t opwolf_state::screen_update_opwolf(screen_device &screen, bitmap_ind16
|
||||
// DRAWGFX LAYOUTS
|
||||
//**************************************************************************
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
8,8, /* 8*8 characters */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8 /* every sprite takes 32 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout tilelayout =
|
||||
{
|
||||
16,16, /* 16*16 sprites */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout charlayout_b =
|
||||
{
|
||||
8,8, /* 8*8 characters */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8 /* every sprite takes 32 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout tilelayout_b =
|
||||
{
|
||||
16,16, /* 16*16 sprites */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_opwolf )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 128 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 128 ) /* scr tiles */
|
||||
GFXDECODE_END
|
||||
|
||||
static GFXDECODE_START( gfx_opwolfb )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout_b, 0, 128 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout_b, 0, 128 ) /* scr tiles */
|
||||
GFXDECODE_ENTRY( "pc080sn", 0, gfx_8x8x4_packed_msb, 0, 128 ) /* scr tiles */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -961,19 +918,19 @@ void opwolf_state::opwolf(machine_config &config)
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
|
||||
screen.set_screen_update(FUNC(opwolf_state::screen_update_opwolf));
|
||||
screen.set_screen_update(FUNC(opwolf_state::screen_update));
|
||||
screen.set_palette("palette");
|
||||
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_opwolf);
|
||||
PALETTE(config, "palette").set_format(palette_device::xRGB_444, 2048);
|
||||
|
||||
PC080SN(config, m_pc080sn, 0);
|
||||
m_pc080sn->set_gfx_region(1);
|
||||
m_pc080sn->set_gfx_region(0);
|
||||
m_pc080sn->set_gfxdecode_tag("gfxdecode");
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_palette("palette");
|
||||
m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb), this);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
@ -1035,19 +992,19 @@ void opwolf_state::opwolfb(machine_config &config) /* OSC clocks unknown for the
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
|
||||
screen.set_screen_update(FUNC(opwolf_state::screen_update_opwolf));
|
||||
screen.set_screen_update(FUNC(opwolf_state::screen_update));
|
||||
screen.set_palette("palette");
|
||||
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_opwolfb);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_opwolf);
|
||||
PALETTE(config, "palette").set_format(palette_device::xRGB_444, 2048);
|
||||
|
||||
PC080SN(config, m_pc080sn, 0);
|
||||
m_pc080sn->set_gfx_region(1);
|
||||
m_pc080sn->set_gfx_region(0);
|
||||
m_pc080sn->set_gfxdecode_tag("gfxdecode");
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_palette("palette");
|
||||
m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb), this);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
@ -1094,11 +1051,11 @@ ROM_START( opwolf )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "b20-18.73", 0x0000, 0x2000, CRC(5987b4e9) SHA1(d4b3d1c35a6eac86c86bd4ea49f1f157a2c05b2a) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
|
||||
@ -1122,11 +1079,11 @@ ROM_START( opwolfa )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "b20-18.73", 0x0000, 0x2000, CRC(5987b4e9) SHA1(d4b3d1c35a6eac86c86bd4ea49f1f157a2c05b2a) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
|
||||
@ -1145,11 +1102,11 @@ ROM_START( opwolfj )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "b20-18.73", 0x0000, 0x2000, CRC(5987b4e9) SHA1(d4b3d1c35a6eac86c86bd4ea49f1f157a2c05b2a) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
|
||||
@ -1168,11 +1125,11 @@ ROM_START( opwolfjsc )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "b20-18.73", 0x0000, 0x2000, CRC(5987b4e9) SHA1(d4b3d1c35a6eac86c86bd4ea49f1f157a2c05b2a) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
|
||||
@ -1191,11 +1148,11 @@ ROM_START( opwolfu ) /* Taito TC0030 C-Chip labeled B20-18 (yes, it has a specif
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "b20-18.73", 0x0000, 0x2000, CRC(5987b4e9) SHA1(d4b3d1c35a6eac86c86bd4ea49f1f157a2c05b2a) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-14.72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
|
||||
@ -1217,11 +1174,11 @@ ROM_START( opwolfp )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
|
||||
ROM_LOAD( "ic10", 0x00000, 0x10000, CRC(684b40dd) SHA1(0546e01cf2c76b9c60730a14835cdeaaec21d26f) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-13.13", 0x00000, 0x80000, CRC(f6acdab1) SHA1(716b94ab3fa330ecf22df576f6a9f47a49c7554a) ) /* SCR tiles (8 x 8) */
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_LOAD( "b20-06.ic72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */ // same content as b20-14.72 despite different label (confirmed)
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b20-06.ic72", 0x00000, 0x80000, CRC(89f889e5) SHA1(1592f6ce4fbb75e33d6ab957e5b90242a7a7a8c4) ) /* Sprites (16 x 16) */ // same content as b20-14.72 despite different label (confirmed)
|
||||
|
||||
ROM_REGION( 0x80000, "adpcm", 0 ) /* ADPCM samples */
|
||||
ROM_LOAD( "b20-08.21", 0x00000, 0x80000, CRC(f3e19c64) SHA1(39d48645f776c9c2ade537d959ecc6f9dc6dfa1b) )
|
||||
@ -1240,7 +1197,7 @@ ROM_START( opwolfb )
|
||||
ROM_REGION( 0x10000, "sub", 0 ) /* c-chip substitute Z80 */
|
||||
ROM_LOAD( "opwlfb.09", 0x00000, 0x08000, CRC(ab27a3dd) SHA1(cf589e7a9ccf3e86020b86f917fb91f3d8ba7512) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "opwlfb.08", 0x00000, 0x10000, CRC(134d294e) SHA1(bd05169dbd761c2944f0ac51c1ec114577777452) ) /* SCR tiles (8 x 8) */
|
||||
ROM_LOAD16_BYTE( "opwlfb.06", 0x20000, 0x10000, CRC(317d0e66) SHA1(70298c0ef5243f481b18f904be9404527d1d99d5) )
|
||||
ROM_LOAD16_BYTE( "opwlfb.07", 0x40000, 0x10000, CRC(e1c4095e) SHA1(d5f1d26d6612e78001002f92de670e68e00c6f9e) )
|
||||
@ -1250,7 +1207,7 @@ ROM_START( opwolfb )
|
||||
ROM_LOAD16_BYTE( "opwlfb.03", 0x40001, 0x10000, CRC(ccf8ba80) SHA1(8366f5ef0de885e5241567d1a083d98a8a2875d9) )
|
||||
ROM_LOAD16_BYTE( "opwlfb.01", 0x60001, 0x10000, CRC(0a65f256) SHA1(4dfcd3cb138a87d002eb65a02f94e33f4d07676d) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx2", 0 )
|
||||
ROM_REGION( 0x80000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "opwlfb.14", 0x00000, 0x10000, CRC(663786eb) SHA1(a25710f6c16158e51d0934f184390a01ff0a614a) ) /* Sprites (16 x 16) */
|
||||
ROM_LOAD16_BYTE( "opwlfb.15", 0x20000, 0x10000, CRC(315b8aa9) SHA1(4a904e5532421d933e4c401c03c958eb32b15e03) )
|
||||
ROM_LOAD16_BYTE( "opwlfb.16", 0x40000, 0x10000, CRC(e01099e3) SHA1(4c5391d71978f72c57c140e58a767e138acdce12) )
|
||||
|
@ -314,31 +314,8 @@ static INPUT_PORTS_START( rastsaga )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const gfx_layout tilelayout =
|
||||
{
|
||||
8,8,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ STEP4(0,1) },
|
||||
{ STEP8(0,4) },
|
||||
{ STEP8(0,4*8) },
|
||||
8*8*4
|
||||
};
|
||||
|
||||
static const gfx_layout spritelayout =
|
||||
{
|
||||
16,16,
|
||||
RGN_FRAC(1,1),
|
||||
4,
|
||||
{ STEP4(0,1) },
|
||||
{ STEP16(0,4) },
|
||||
{ STEP16(0,4*16) },
|
||||
16*16*4
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_rastan )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 0x80 )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0, 0x80 )
|
||||
GFXDECODE_ENTRY( "pc080sn", 0, gfx_8x8x4_packed_msb, 0, 0x80 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -392,9 +369,8 @@ void rastan_state::rastan(machine_config &config)
|
||||
m_pc080sn->set_gfxdecode_tag("gfxdecode");
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_gfx_region(1);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_palette("palette");
|
||||
m_pc090oj->set_colpri_callback(FUNC(rastan_state::rastan_colpri_cb), this);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -444,13 +420,13 @@ ROM_START( rastan )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -472,13 +448,13 @@ ROM_START( rastana )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -500,13 +476,13 @@ ROM_START( rastanb ) /* Earlier code base, but uses 2 US region roms and shows T
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -535,13 +511,13 @@ ROM_START( rastanu ) /* This US set is based on newer code */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -563,13 +539,13 @@ ROM_START( rastanua ) /* This US set is based on newer code */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -601,13 +577,13 @@ ROM_START( rastanub ) /* This US set is based on the earlier code */
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -629,13 +605,13 @@ ROM_START( rastsaga )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -657,13 +633,13 @@ ROM_START( rastsagaa )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
@ -685,13 +661,13 @@ ROM_START( rastsagab )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "b04-19.49", 0x00000, 0x10000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx1", 0 )
|
||||
ROM_REGION( 0x080000, "pc080sn", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
|
||||
ROM_LOAD16_BYTE( "b04-02.67", 0x00001, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
|
||||
ROM_LOAD16_BYTE( "b04-03.39", 0x40000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
|
||||
ROM_LOAD16_BYTE( "b04-04.66", 0x40001, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
|
||||
|
||||
ROM_REGION( 0x080000, "gfx2", 0 )
|
||||
ROM_REGION( 0x080000, "pc090oj", 0 )
|
||||
ROM_LOAD16_BYTE( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
|
||||
ROM_LOAD16_BYTE( "b04-06.28", 0x00001, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
|
||||
ROM_LOAD16_BYTE( "b04-07.14", 0x40000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
|
||||
|
@ -353,7 +353,7 @@ void rbisland_state::rbisland_map(address_map &map)
|
||||
map(0x200000, 0x200fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
map(0x201000, 0x203fff).ram(); /* r/w in initial checks */
|
||||
map(0x390000, 0x390003).portr("DSWA");
|
||||
map(0x3a0000, 0x3a0001).w(FUNC(rbisland_state::rbisland_spritectrl_w));
|
||||
map(0x3a0000, 0x3a0001).w(m_pc090oj, FUNC(pc090oj_device::sprite_ctrl_w));
|
||||
map(0x3b0000, 0x3b0003).portr("DSWB");
|
||||
map(0x3c0000, 0x3c0003).nopw(); /* written very often, watchdog? */
|
||||
map(0x3e0000, 0x3e0001).nopr();
|
||||
@ -568,60 +568,36 @@ INPUT_PORTS_END
|
||||
GFX DECODING
|
||||
**************************************************************/
|
||||
|
||||
static const gfx_layout tilelayout =
|
||||
{
|
||||
8,8, /* 8*8 tiles */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 8, 12, 0, 4, 24, 28, 16, 20 },
|
||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
||||
32*8 /* every tile takes 32 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout spritelayout =
|
||||
{
|
||||
16,16, /* 16*16 sprites */
|
||||
RGN_FRAC(1,1),
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 8, 12, 0, 4, 24, 28, 16, 20, 40, 44, 32, 36, 56, 60, 48, 52 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
|
||||
8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8 /* every sprite takes 128 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_rbisland )
|
||||
GFXDECODE_ENTRY( "gfx2", 0x000000, spritelayout, 0, 0x80 ) /* OBJ 16x16 */
|
||||
GFXDECODE_ENTRY( "gfx1", 0x000000, tilelayout, 0, 0x80 ) /* SCR 8x8 */
|
||||
GFXDECODE_ENTRY( "pc080sn", 0, gfx_8x8x4_packed_msb, 0, 0x80 ) /* SCR 8x8 */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
static const gfx_layout jumping_tilelayout =
|
||||
{
|
||||
8,8, /* 8*8 tiles */
|
||||
16384, /* 16384 tiles */
|
||||
RGN_FRAC(1,1), /* 16384 tiles */
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0, 0x20000*8, 0x40000*8, 0x60000*8 },
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||
{ 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
|
||||
8*8 /* every tile takes 8 consecutive bytes */
|
||||
{ STEP4(0,8) },
|
||||
{ STEP8(0,1) },
|
||||
{ STEP8(0,8*4) },
|
||||
8*8*4 /* every tile takes 8 consecutive bytes */
|
||||
};
|
||||
|
||||
static const gfx_layout jumping_spritelayout =
|
||||
{
|
||||
16,16, /* 16*16 sprites */
|
||||
5120, /* 5120 sprites */
|
||||
RGN_FRAC(1,1), /* 5120 sprites */
|
||||
4, /* 4 bits per pixel */
|
||||
{ 0x78000*8,0x50000*8,0x28000*8,0 },
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 },
|
||||
{ 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
|
||||
32*8 /* every sprite takes 32 consecutive bytes */
|
||||
{ STEP4(0,8) },
|
||||
{ STEP8(0,1), STEP8(8*4*16,1) },
|
||||
{ STEP16(0,8*4) },
|
||||
16*16*4 /* every sprite takes 32 consecutive bytes */
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_jumping )
|
||||
GFXDECODE_ENTRY( "gfx2", 0, jumping_spritelayout, 0, 0x80 ) /* OBJ 16x16 */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, jumping_tilelayout, 0, 0x80 ) /* SCR 8x8 */
|
||||
GFXDECODE_ENTRY( "sprites", 0, jumping_spritelayout, 0, 0x80 ) /* OBJ 16x16 */
|
||||
GFXDECODE_ENTRY( "pc080sn", 0, jumping_tilelayout, 0, 0x80 ) /* SCR 8x8 */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -687,12 +663,12 @@ void rbisland_state::rbisland(machine_config &config)
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048);
|
||||
|
||||
PC080SN(config, m_pc080sn, 0);
|
||||
m_pc080sn->set_gfx_region(1);
|
||||
m_pc080sn->set_gfx_region(0);
|
||||
m_pc080sn->set_gfxdecode_tag(m_gfxdecode);
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_gfxdecode_tag(m_gfxdecode);
|
||||
m_pc090oj->set_palette(m_palette);
|
||||
m_pc090oj->set_colpri_callback(FUNC(rbisland_state::rbisland_colpri_cb), this);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -722,7 +698,6 @@ void rbisland_state::jumping(machine_config &config)
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough unless otherwise */
|
||||
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
@ -778,13 +753,13 @@ ROM_START( rbisland )
|
||||
ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
|
||||
ROM_CONTINUE( 0x10000, 0xc000 )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
|
||||
ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
|
||||
ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
|
||||
ROM_LOAD16_BYTE ( "b22-13.6", 0x80000, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
|
||||
ROM_LOAD16_BYTE ( "b22-12.7", 0x80001, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( rbislando )
|
||||
@ -803,13 +778,13 @@ ROM_START( rbislando )
|
||||
ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
|
||||
ROM_CONTINUE( 0x10000, 0xc000 )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
|
||||
ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
|
||||
ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
|
||||
ROM_LOAD16_BYTE ( "b22-13.6", 0x80000, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
|
||||
ROM_LOAD16_BYTE ( "b22-12.7", 0x80001, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( rbislande )
|
||||
@ -833,13 +808,13 @@ ROM_START( rbislande )
|
||||
ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
|
||||
ROM_CONTINUE( 0x10000, 0xc000 )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", 0 )
|
||||
ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
|
||||
ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
|
||||
ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
|
||||
ROM_REGION( 0xa0000, "pc090oj", 0 )
|
||||
ROM_LOAD16_WORD_SWAP( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
|
||||
ROM_LOAD16_BYTE ( "b22-13.6", 0x80000, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
|
||||
ROM_LOAD16_BYTE ( "b22-12.7", 0x80001, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( jumping )
|
||||
@ -859,29 +834,29 @@ ROM_START( jumping )
|
||||
ROM_CONTINUE( 0x10000, 0x4000 )
|
||||
ROM_CONTINUE( 0x0c000, 0x4000 )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
|
||||
ROM_LOAD( "18.ic7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
|
||||
ROM_LOAD( "15.ic10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
|
||||
ROM_LOAD( "16.ic9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
|
||||
ROM_LOAD( "13.ic12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
|
||||
ROM_LOAD( "14.ic11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
|
||||
ROM_LOAD( "11.ic14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
|
||||
ROM_LOAD( "12.ic13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD32_BYTE( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
|
||||
ROM_LOAD32_BYTE( "18.ic7", 0x40000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
|
||||
ROM_LOAD32_BYTE( "15.ic10", 0x00001, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
|
||||
ROM_LOAD32_BYTE( "16.ic9", 0x40001, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
|
||||
ROM_LOAD32_BYTE( "13.ic12", 0x00002, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
|
||||
ROM_LOAD32_BYTE( "14.ic11", 0x40002, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
|
||||
ROM_LOAD32_BYTE( "11.ic14", 0x00003, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
|
||||
ROM_LOAD32_BYTE( "12.ic13", 0x40003, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
|
||||
ROM_LOAD( "jb2_ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
|
||||
ROM_LOAD( "jb2_ic61", 0x10000, 0x10000, CRC(37c5923b) SHA1(c83ef45564c56ef62d7019aecbd79dccc671deee) )
|
||||
ROM_LOAD( "jb2_ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
|
||||
ROM_LOAD( "jb2_ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
|
||||
ROM_LOAD( "jb2_ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
|
||||
ROM_LOAD( "jb2_ic76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
|
||||
ROM_LOAD( "jb2_ic93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
|
||||
ROM_LOAD( "jb2_ic92", 0x60000, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
|
||||
ROM_LOAD( "jb2_ic91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
|
||||
ROM_LOAD( "jb2_i121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
|
||||
ROM_LOAD( "jb2_i120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
|
||||
ROM_LOAD( "jb2_i119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
|
||||
ROM_REGION( 0xa0000, "sprites", ROMREGION_INVERT )
|
||||
ROM_LOAD32_BYTE( "jb2_ic62", 0x00003, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
|
||||
ROM_LOAD32_BYTE( "jb2_ic61", 0x40003, 0x10000, CRC(37c5923b) SHA1(c83ef45564c56ef62d7019aecbd79dccc671deee) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic60", 0x80003, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic78", 0x00002, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic77", 0x40002, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic76", 0x80002, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic93", 0x00001, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic92", 0x40001, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic91", 0x80001, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
|
||||
ROM_LOAD32_BYTE( "jb2_i121", 0x00000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
|
||||
ROM_LOAD32_BYTE( "jb2_i120", 0x40000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
|
||||
ROM_LOAD32_BYTE( "jb2_i119", 0x80000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
|
||||
|
||||
ROM_REGION( 0x200, "pals", 0 )
|
||||
ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
|
||||
@ -906,29 +881,29 @@ ROM_START( jumpinga )
|
||||
ROM_CONTINUE( 0x10000, 0x4000 )
|
||||
ROM_CONTINUE( 0x0c000, 0x4000 )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
|
||||
ROM_LOAD( "18.ic7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
|
||||
ROM_LOAD( "15.ic10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
|
||||
ROM_LOAD( "16.ic9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
|
||||
ROM_LOAD( "13.ic12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
|
||||
ROM_LOAD( "14.ic11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
|
||||
ROM_LOAD( "11.ic14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
|
||||
ROM_LOAD( "12.ic13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD32_BYTE( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
|
||||
ROM_LOAD32_BYTE( "18.ic7", 0x40000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
|
||||
ROM_LOAD32_BYTE( "15.ic10", 0x00001, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
|
||||
ROM_LOAD32_BYTE( "16.ic9", 0x40001, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
|
||||
ROM_LOAD32_BYTE( "13.ic12", 0x00002, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
|
||||
ROM_LOAD32_BYTE( "14.ic11", 0x40002, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
|
||||
ROM_LOAD32_BYTE( "11.ic14", 0x00003, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
|
||||
ROM_LOAD32_BYTE( "12.ic13", 0x40003, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
|
||||
ROM_LOAD( "jb2_ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
|
||||
ROM_LOAD( "20.bin", 0x10000, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) ) // dumped multiple times, always the same
|
||||
ROM_LOAD( "jb2_ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
|
||||
ROM_LOAD( "jb2_ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
|
||||
ROM_LOAD( "jb2_ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
|
||||
ROM_LOAD( "jb2_ic76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
|
||||
ROM_LOAD( "jb2_ic93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
|
||||
ROM_LOAD( "jb2_ic92", 0x60000, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
|
||||
ROM_LOAD( "jb2_ic91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
|
||||
ROM_LOAD( "jb2_i121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
|
||||
ROM_LOAD( "jb2_i120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
|
||||
ROM_LOAD( "jb2_i119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
|
||||
ROM_REGION( 0xa0000, "sprites", ROMREGION_INVERT )
|
||||
ROM_LOAD32_BYTE( "jb2_ic62", 0x00003, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
|
||||
ROM_LOAD32_BYTE( "20.bin", 0x40003, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) ) // dumped multiple times, always the same
|
||||
ROM_LOAD32_BYTE( "jb2_ic60", 0x80003, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic78", 0x00002, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic77", 0x40002, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic76", 0x80002, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic93", 0x00001, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic92", 0x40001, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
|
||||
ROM_LOAD32_BYTE( "jb2_ic91", 0x80001, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
|
||||
ROM_LOAD32_BYTE( "jb2_i121", 0x00000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
|
||||
ROM_LOAD32_BYTE( "jb2_i120", 0x40000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
|
||||
ROM_LOAD32_BYTE( "jb2_i119", 0x80000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
|
||||
|
||||
ROM_REGION( 0x200, "pals", 0 )
|
||||
ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
|
||||
@ -938,51 +913,49 @@ ROM_END
|
||||
|
||||
/* red 'Imnoe' PCB */
|
||||
ROM_START( jumpingi )
|
||||
ROM_REGION( 0xa0000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "05.ic3", 0x00000, 0x20000, CRC(69ac4af4) SHA1(39055573e412e2591f7a68f9fee5919528529544) )
|
||||
ROM_LOAD16_BYTE( "03.ic6", 0x00001, 0x20000, CRC(38975cdc) SHA1(23c02a4574a95904805d5f458c06c77c14d11c14) )
|
||||
ROM_LOAD16_BYTE( "06.ic2", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) ) // b22-03.23
|
||||
ROM_LOAD16_BYTE( "04.ic5", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) ) // b22-04.24
|
||||
ROM_LOAD16_BYTE( "02", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
|
||||
ROM_REGION( 0xa0000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "05.ic3", 0x00000, 0x20000, CRC(69ac4af4) SHA1(39055573e412e2591f7a68f9fee5919528529544) )
|
||||
ROM_LOAD16_BYTE( "03.ic6", 0x00001, 0x20000, CRC(38975cdc) SHA1(23c02a4574a95904805d5f458c06c77c14d11c14) )
|
||||
ROM_LOAD16_BYTE( "06.ic2", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) ) // b22-03.23
|
||||
ROM_LOAD16_BYTE( "04.ic5", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) ) // b22-04.24
|
||||
ROM_LOAD16_BYTE( "02", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
|
||||
|
||||
ROM_REGION( 0x14000, "audiocpu", 0 )
|
||||
ROM_LOAD( "01.ic53", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
|
||||
ROM_CONTINUE( 0x10000, 0x4000 )
|
||||
ROM_CONTINUE( 0x0c000, 0x4000 )
|
||||
ROM_REGION( 0x14000, "audiocpu", 0 )
|
||||
ROM_LOAD( "01.ic53", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
|
||||
ROM_CONTINUE( 0x10000, 0x4000 )
|
||||
ROM_CONTINUE( 0x0c000, 0x4000 )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "13.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
|
||||
ROM_LOAD( "14.ic7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
|
||||
ROM_LOAD( "11.ic10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
|
||||
ROM_LOAD( "12.ic9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
|
||||
ROM_LOAD( "09.ic12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
|
||||
ROM_LOAD( "10.ic11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
|
||||
ROM_LOAD( "07.ic14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
|
||||
ROM_LOAD( "08.ic13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
|
||||
ROM_REGION( 0x80000, "pc080sn", 0 )
|
||||
ROM_LOAD32_BYTE( "13.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
|
||||
ROM_LOAD32_BYTE( "14.ic7", 0x40000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
|
||||
ROM_LOAD32_BYTE( "11.ic10", 0x00001, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
|
||||
ROM_LOAD32_BYTE( "12.ic9", 0x40001, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
|
||||
ROM_LOAD32_BYTE( "09.ic12", 0x00002, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
|
||||
ROM_LOAD32_BYTE( "10.ic11", 0x40002, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
|
||||
ROM_LOAD32_BYTE( "07.ic14", 0x00003, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
|
||||
ROM_LOAD32_BYTE( "08.ic13", 0x40003, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
|
||||
|
||||
ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
|
||||
ROM_LOAD( "15.ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
|
||||
ROM_LOAD( "19.ic61", 0x10000, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) )
|
||||
ROM_LOAD( "23.ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
|
||||
ROM_LOAD( "16.ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
|
||||
ROM_LOAD( "20.ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
|
||||
ROM_LOAD( "24.ic76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
|
||||
ROM_LOAD( "17.ic93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
|
||||
ROM_LOAD( "21.ic92", 0x60000, 0x10000, CRC(16e1b0ff) SHA1(1467a317d07a447d01113e6b6b9f5aca30cb0dcb) )
|
||||
ROM_LOAD( "25.ic91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
|
||||
ROM_LOAD( "18.ic121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
|
||||
ROM_LOAD( "22.ic120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
|
||||
ROM_LOAD( "26.ic119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
|
||||
ROM_REGION( 0xa0000, "sprites", ROMREGION_INVERT )
|
||||
ROM_LOAD32_BYTE( "15.ic62", 0x00003, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
|
||||
ROM_LOAD32_BYTE( "19.ic61", 0x40003, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) )
|
||||
ROM_LOAD32_BYTE( "23.ic60", 0x80003, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
|
||||
ROM_LOAD32_BYTE( "16.ic78", 0x00002, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
|
||||
ROM_LOAD32_BYTE( "20.ic77", 0x40002, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
|
||||
ROM_LOAD32_BYTE( "24.ic76", 0x80002, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
|
||||
ROM_LOAD32_BYTE( "17.ic93", 0x00001, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
|
||||
ROM_LOAD32_BYTE( "21.ic92", 0x40001, 0x10000, CRC(16e1b0ff) SHA1(1467a317d07a447d01113e6b6b9f5aca30cb0dcb) )
|
||||
ROM_LOAD32_BYTE( "25.ic91", 0x80001, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
|
||||
ROM_LOAD32_BYTE( "18.ic121", 0x00000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
|
||||
ROM_LOAD32_BYTE( "22.ic120", 0x40000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
|
||||
ROM_LOAD32_BYTE( "26.ic119", 0x80000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
|
||||
|
||||
ROM_REGION( 0x200, "pals", 0 )
|
||||
ROM_LOAD( "jp2.ic56", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) ) // PAL16R6A-2CN
|
||||
ROM_LOAD( "jp1.ic13", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) ) // PAL20L8A-2CNS
|
||||
ROM_LOAD( "jp3.ic51", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // PAL16L8A-2CN z80 address decoder?
|
||||
ROM_REGION( 0x200, "pals", 0 )
|
||||
ROM_LOAD( "jp2.ic56", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) ) // PAL16R6A-2CN
|
||||
ROM_LOAD( "jp1.ic13", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) ) // PAL20L8A-2CNS
|
||||
ROM_LOAD( "jp3.ic51", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // PAL16L8A-2CN z80 address decoder?
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
|
||||
void rbisland_state::init_rbisland()
|
||||
{
|
||||
uint8_t *ROM = memregion("audiocpu")->base();
|
||||
|
@ -76,7 +76,7 @@ void volfied_state::main_map(address_map &map)
|
||||
map(0x400000, 0x47ffff).rw(FUNC(volfied_state::video_ram_r), FUNC(volfied_state::video_ram_w));
|
||||
map(0x500000, 0x503fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
|
||||
map(0x600000, 0x600001).w(FUNC(volfied_state::video_mask_w));
|
||||
map(0x700000, 0x700001).w(FUNC(volfied_state::sprite_ctrl_w));
|
||||
map(0x700000, 0x700001).w(m_pc090oj, FUNC(pc090oj_device::sprite_ctrl_w));
|
||||
map(0xd00000, 0xd00001).rw(FUNC(volfied_state::video_ctrl_r), FUNC(volfied_state::video_ctrl_w));
|
||||
map(0xe00001, 0xe00001).w("ciu", FUNC(pc060ha_device::master_port_w));
|
||||
map(0xe00003, 0xe00003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w));
|
||||
@ -187,26 +187,6 @@ static INPUT_PORTS_START( volfiedj )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/**************************************************************
|
||||
GFX DECODING
|
||||
**************************************************************/
|
||||
|
||||
static const gfx_layout tilelayout =
|
||||
{
|
||||
16, 16,
|
||||
0x1800,
|
||||
4,
|
||||
{ 0, 1, 2, 3 },
|
||||
{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 },
|
||||
{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
|
||||
128*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_volfied )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 4096, 256 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
/***********************************************************
|
||||
MACHINE DRIVERS
|
||||
***********************************************************/
|
||||
@ -270,12 +250,11 @@ void volfied_state::volfied(machine_config &config)
|
||||
m_screen->set_screen_update(FUNC(volfied_state::screen_update));
|
||||
m_screen->set_palette("palette");
|
||||
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_volfied);
|
||||
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 8192);
|
||||
|
||||
PC090OJ(config, m_pc090oj, 0);
|
||||
m_pc090oj->set_gfxdecode_tag("gfxdecode");
|
||||
m_pc090oj->set_palette("palette");
|
||||
m_pc090oj->set_colpri_callback(FUNC(volfied_state::volfied_colpri_cb), this);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -313,7 +292,7 @@ ROM_START( volfied )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_c04-23", 0x0000, 0x2000, CRC(46b0b479) SHA1(73aa2267eb468c5aa5db67183047e9aef8321215) )
|
||||
|
||||
ROM_REGION( 0xc0000, "gfx1", 0 ) /* sprites 16x16 */
|
||||
ROM_REGION( 0xc0000, "pc090oj", 0 ) /* sprites 16x16 */
|
||||
ROM_LOAD16_BYTE( "c04-16.2", 0x00000, 0x20000, CRC(8c2476ef) SHA1(972ddc8e47a669f1aeca67d02b4a0bed867ddb7d) )
|
||||
ROM_LOAD16_BYTE( "c04-18.4", 0x00001, 0x20000, CRC(7665212c) SHA1(b816ac2a95ee273aaf90991f53766d7f0d5d9238) )
|
||||
ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
|
||||
@ -345,7 +324,7 @@ ROM_START( volfiedo )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_c04-23", 0x0000, 0x2000, CRC(46b0b479) SHA1(73aa2267eb468c5aa5db67183047e9aef8321215) )
|
||||
|
||||
ROM_REGION( 0xc0000, "gfx1", 0 ) /* sprites 16x16 */
|
||||
ROM_REGION( 0xc0000, "pc090oj", 0 ) /* sprites 16x16 */
|
||||
ROM_LOAD16_BYTE( "c04-16.2", 0x00000, 0x20000, CRC(8c2476ef) SHA1(972ddc8e47a669f1aeca67d02b4a0bed867ddb7d) )
|
||||
ROM_LOAD16_BYTE( "c04-18.4", 0x00001, 0x20000, CRC(7665212c) SHA1(b816ac2a95ee273aaf90991f53766d7f0d5d9238) )
|
||||
ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
|
||||
@ -377,7 +356,7 @@ ROM_START( volfiedu )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_c04-23", 0x0000, 0x2000, CRC(46b0b479) SHA1(73aa2267eb468c5aa5db67183047e9aef8321215) )
|
||||
|
||||
ROM_REGION( 0xc0000, "gfx1", 0 ) /* sprites 16x16 */
|
||||
ROM_REGION( 0xc0000, "pc090oj", 0 ) /* sprites 16x16 */
|
||||
ROM_LOAD16_BYTE( "c04-16.2", 0x00000, 0x20000, CRC(8c2476ef) SHA1(972ddc8e47a669f1aeca67d02b4a0bed867ddb7d) )
|
||||
ROM_LOAD16_BYTE( "c04-18.4", 0x00001, 0x20000, CRC(7665212c) SHA1(b816ac2a95ee273aaf90991f53766d7f0d5d9238) )
|
||||
ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
|
||||
@ -409,7 +388,7 @@ ROM_START( volfieduo )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_c04-23", 0x0000, 0x2000, CRC(46b0b479) SHA1(73aa2267eb468c5aa5db67183047e9aef8321215) )
|
||||
|
||||
ROM_REGION( 0xc0000, "gfx1", 0 ) /* sprites 16x16 */
|
||||
ROM_REGION( 0xc0000, "pc090oj", 0 ) /* sprites 16x16 */
|
||||
ROM_LOAD16_BYTE( "c04-16.2", 0x00000, 0x20000, CRC(8c2476ef) SHA1(972ddc8e47a669f1aeca67d02b4a0bed867ddb7d) )
|
||||
ROM_LOAD16_BYTE( "c04-18.4", 0x00001, 0x20000, CRC(7665212c) SHA1(b816ac2a95ee273aaf90991f53766d7f0d5d9238) )
|
||||
ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
|
||||
@ -441,7 +420,7 @@ ROM_START( volfiedj )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_c04-23", 0x0000, 0x2000, CRC(46b0b479) SHA1(73aa2267eb468c5aa5db67183047e9aef8321215) )
|
||||
|
||||
ROM_REGION( 0xc0000, "gfx1", 0 ) /* sprites 16x16 */
|
||||
ROM_REGION( 0xc0000, "pc090oj", 0 ) /* sprites 16x16 */
|
||||
ROM_LOAD16_BYTE( "c04-16.2", 0x00000, 0x20000, CRC(8c2476ef) SHA1(972ddc8e47a669f1aeca67d02b4a0bed867ddb7d) )
|
||||
ROM_LOAD16_BYTE( "c04-18.4", 0x00001, 0x20000, CRC(7665212c) SHA1(b816ac2a95ee273aaf90991f53766d7f0d5d9238) )
|
||||
ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
|
||||
@ -473,7 +452,7 @@ ROM_START( volfiedjo )
|
||||
ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
|
||||
ROM_LOAD( "cchip_c04-23", 0x0000, 0x2000, CRC(46b0b479) SHA1(73aa2267eb468c5aa5db67183047e9aef8321215) )
|
||||
|
||||
ROM_REGION( 0xc0000, "gfx1", 0 ) /* sprites 16x16 */
|
||||
ROM_REGION( 0xc0000, "pc090oj", 0 ) /* sprites 16x16 */
|
||||
ROM_LOAD16_BYTE( "c04-16.2", 0x00000, 0x20000, CRC(8c2476ef) SHA1(972ddc8e47a669f1aeca67d02b4a0bed867ddb7d) )
|
||||
ROM_LOAD16_BYTE( "c04-18.4", 0x00001, 0x20000, CRC(7665212c) SHA1(b816ac2a95ee273aaf90991f53766d7f0d5d9238) )
|
||||
ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
|
||||
|
@ -93,13 +93,13 @@ private:
|
||||
void msm5205_address_w(u8 data);
|
||||
u16 cadash_share_r(offs_t offset);
|
||||
void cadash_share_w(offs_t offset, u16 data);
|
||||
void asuka_spritectrl_w(u16 data);
|
||||
void msm5205_start_w(u8 data);
|
||||
void msm5205_stop_w(u8 data);
|
||||
void counters_w(u8 data);
|
||||
uint32_t screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_asuka);
|
||||
void asuka_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl);
|
||||
void bonzeadv_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
INTERRUPT_GEN_MEMBER(cadash_interrupt);
|
||||
INTERRUPT_GEN_MEMBER(bonze_interrupt);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb);
|
||||
|
@ -61,6 +61,7 @@ private:
|
||||
void sound_bankswitch_w(u8 data);
|
||||
void msm5205_start_w(u8 data);
|
||||
void msm5205_stop_w(u8 data);
|
||||
void rastan_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl);
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(msm5205_vck);
|
||||
void main_map(address_map &map);
|
||||
|
@ -57,6 +57,7 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(counters_w);
|
||||
DECLARE_VIDEO_START(jumping);
|
||||
void rbisland_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl);
|
||||
uint32_t screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_jumping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_CALLBACK_MEMBER(cchip_timer);
|
||||
|
@ -46,8 +46,8 @@ private:
|
||||
DECLARE_WRITE16_MEMBER(video_ctrl_w);
|
||||
DECLARE_READ16_MEMBER(video_ctrl_r);
|
||||
DECLARE_WRITE16_MEMBER(video_mask_w);
|
||||
DECLARE_WRITE16_MEMBER(sprite_ctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(counters_w);
|
||||
void volfied_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(interrupt);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb);
|
||||
|
@ -8,10 +8,16 @@
|
||||
SPRITE READ AND WRITE HANDLERS
|
||||
**************************************************************/
|
||||
|
||||
void asuka_state::asuka_spritectrl_w(u16 data)
|
||||
void asuka_state::asuka_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)
|
||||
{
|
||||
/* Bits 2-5 are color bank; in asuka games bit 0 is global priority */
|
||||
m_pc090oj->set_sprite_ctrl(((data & 0x3c) >> 2) | ((data & 0x1) << 15));
|
||||
sprite_colbank = (sprite_ctrl & 0x3c) << 2;
|
||||
pri_mask = (sprite_ctrl & 1) ? 0xfc : 0xf0; /* variable sprite/tile priority */
|
||||
}
|
||||
|
||||
void asuka_state::bonzeadv_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)
|
||||
{
|
||||
sprite_colbank = (sprite_ctrl & 0x3c) << 2;
|
||||
pri_mask = 0xf0; /* sprites over top bg layer */
|
||||
}
|
||||
|
||||
|
||||
@ -19,7 +25,7 @@ void asuka_state::asuka_spritectrl_w(u16 data)
|
||||
SCREEN REFRESH
|
||||
**************************************************************/
|
||||
|
||||
uint32_t asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t asuka_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
u8 layer[3];
|
||||
|
||||
@ -38,32 +44,6 @@ uint32_t asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &b
|
||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
||||
|
||||
/* Sprites may be over or under top bg layer */
|
||||
m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
uint32_t asuka_state::screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
u8 layer[3];
|
||||
|
||||
m_tc0100scn->tilemap_update();
|
||||
|
||||
layer[0] = m_tc0100scn->bottomlayer();
|
||||
layer[1] = layer[0] ^ 1;
|
||||
layer[2] = 2;
|
||||
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
|
||||
bitmap.fill(0, cliprect);
|
||||
|
||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
|
||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
||||
|
||||
/* Sprites are always over both bg layers */
|
||||
m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 0);
|
||||
m_pc090oj->draw_sprites(screen, bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
@ -61,10 +61,10 @@ Taito pc090oj
|
||||
|
||||
#include "emu.h"
|
||||
#include "pc090oj.h"
|
||||
#include "screen.h"
|
||||
|
||||
#define PC090OJ_RAM_SIZE 0x4000
|
||||
#define PC090OJ_ACTIVE_RAM_SIZE 0x800
|
||||
|
||||
static constexpr u32 PC090OJ_RAM_SIZE = 0x4000;
|
||||
static constexpr u32 PC090OJ_ACTIVE_RAM_SIZE = 0x800;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
@ -74,29 +74,40 @@ Taito pc090oj
|
||||
|
||||
DEFINE_DEVICE_TYPE(PC090OJ, pc090oj_device, "pc090oj", "Taito PC090OJ")
|
||||
|
||||
pc090oj_device::pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, PC090OJ, tag, owner, clock),
|
||||
device_gfx_interface(mconfig, *this),
|
||||
m_ctrl(0),
|
||||
m_sprite_ctrl(0),
|
||||
m_ram(nullptr),
|
||||
m_ram_buffered(nullptr),
|
||||
m_gfxnum(0),
|
||||
m_x_offset(0),
|
||||
m_y_offset(0),
|
||||
m_use_buffer(0),
|
||||
m_gfxdecode(*this, finder_base::DUMMY_TAG)
|
||||
pc090oj_device::pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: device_t(mconfig, PC090OJ, tag, owner, clock)
|
||||
, device_gfx_interface(mconfig, *this, nullptr)
|
||||
, m_ctrl(0)
|
||||
, m_sprite_ctrl(0)
|
||||
, m_ram(nullptr)
|
||||
, m_ram_buffered(nullptr)
|
||||
, m_x_offset(0)
|
||||
, m_y_offset(0)
|
||||
, m_use_buffer(false)
|
||||
{
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Graphics definitions
|
||||
*
|
||||
*************************************/
|
||||
|
||||
GFXDECODE_MEMBER(pc090oj_device::gfxinfo)
|
||||
GFXDECODE_DEVICE(DEVICE_SELF, 0, gfx_16x16x4_packed_msb, 0, 1)
|
||||
GFXDECODE_END
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void pc090oj_device::device_start()
|
||||
{
|
||||
m_ram = make_unique_clear<uint16_t[]>(PC090OJ_RAM_SIZE / 2);
|
||||
m_ram_buffered = make_unique_clear<uint16_t[]>(PC090OJ_RAM_SIZE / 2);
|
||||
decode_gfx(gfxinfo);
|
||||
gfx(0)->set_colors(palette().entries() / 16);
|
||||
|
||||
m_ram = make_unique_clear<u16[]>(PC090OJ_RAM_SIZE / 2);
|
||||
m_ram_buffered = make_unique_clear<u16[]>(PC090OJ_RAM_SIZE / 2);
|
||||
|
||||
save_pointer(NAME(m_ram), PC090OJ_RAM_SIZE / 2);
|
||||
save_pointer(NAME(m_ram_buffered), PC090OJ_RAM_SIZE / 2);
|
||||
@ -117,17 +128,17 @@ void pc090oj_device::device_reset()
|
||||
DEVICE HANDLERS
|
||||
*****************************************************************************/
|
||||
|
||||
void pc090oj_device::set_sprite_ctrl( uint16_t sprctrl )
|
||||
void pc090oj_device::sprite_ctrl_w(u16 data)
|
||||
{
|
||||
m_sprite_ctrl = sprctrl;
|
||||
m_sprite_ctrl = data;
|
||||
}
|
||||
|
||||
READ16_MEMBER( pc090oj_device::word_r )
|
||||
u16 pc090oj_device::word_r(offs_t offset)
|
||||
{
|
||||
return m_ram[offset];
|
||||
}
|
||||
|
||||
WRITE16_MEMBER( pc090oj_device::word_w )
|
||||
void pc090oj_device::word_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_ram[offset]);
|
||||
|
||||
@ -146,50 +157,37 @@ WRITE16_MEMBER( pc090oj_device::word_w )
|
||||
}
|
||||
}
|
||||
|
||||
void pc090oj_device::eof_callback( )
|
||||
void pc090oj_device::eof_callback()
|
||||
{
|
||||
if (m_use_buffer)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < PC090OJ_ACTIVE_RAM_SIZE / 2; i++)
|
||||
for (int i = 0; i < PC090OJ_ACTIVE_RAM_SIZE / 2; i++)
|
||||
m_ram_buffered[i] = m_ram[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void pc090oj_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_type )
|
||||
void pc090oj_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int offs, priority = 0;
|
||||
int sprite_colbank = (m_sprite_ctrl & 0xf) << 4; /* top nibble */
|
||||
const bool priority = !m_colpri_cb.isnull();
|
||||
u32 sprite_colbank = 0, pri_mask = 0;
|
||||
if (priority)
|
||||
m_colpri_cb(sprite_colbank, pri_mask, m_sprite_ctrl);
|
||||
|
||||
switch (pri_type)
|
||||
int start, end, inc;
|
||||
if (priority) { start = 0; end = PC090OJ_ACTIVE_RAM_SIZE / 2; inc = 4; }
|
||||
else { start = (PC090OJ_ACTIVE_RAM_SIZE / 2) - 4; end = -4; inc = -4; }
|
||||
|
||||
for (int offs = start; offs != end; offs += inc)
|
||||
{
|
||||
case 0x00:
|
||||
priority = 0; /* sprites over top bg layer */
|
||||
break;
|
||||
const u16 data = m_ram_buffered[offs];
|
||||
int flipy = (data & 0x8000) >> 15;
|
||||
int flipx = (data & 0x4000) >> 14;
|
||||
const u32 color = (data & 0x000f) | sprite_colbank;
|
||||
|
||||
case 0x01:
|
||||
priority = 1; /* sprites under top bg layer */
|
||||
break;
|
||||
|
||||
case 0x02:
|
||||
priority = m_sprite_ctrl >> 15; /* variable sprite/tile priority */
|
||||
}
|
||||
|
||||
for (offs = 0; offs < PC090OJ_ACTIVE_RAM_SIZE / 2; offs += 4)
|
||||
{
|
||||
int flipx, flipy;
|
||||
int x, y;
|
||||
int data, code, color;
|
||||
|
||||
data = m_ram_buffered[offs];
|
||||
flipy = (data & 0x8000) >> 15;
|
||||
flipx = (data & 0x4000) >> 14;
|
||||
color = (data & 0x000f) | sprite_colbank;
|
||||
|
||||
code = m_ram_buffered[offs + 2] & 0x1fff;
|
||||
x = m_ram_buffered[offs + 3] & 0x1ff; /* mask verified with Rainbowe board */
|
||||
y = m_ram_buffered[offs + 1] & 0x1ff; /* mask verified with Rainbowe board */
|
||||
const u32 code = m_ram_buffered[offs + 2] & 0x1fff;
|
||||
int x = m_ram_buffered[offs + 3] & 0x1ff; /* mask verified with Rainbowe board */
|
||||
int y = m_ram_buffered[offs + 1] & 0x1ff; /* mask verified with Rainbowe board */
|
||||
|
||||
/* treat coords as signed */
|
||||
if (x > 0x140) x -= 0x200;
|
||||
@ -206,12 +204,24 @@ void pc090oj_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
|
||||
x += m_x_offset;
|
||||
y += m_y_offset;
|
||||
|
||||
m_gfxdecode->gfx(m_gfxnum)->prio_transpen(bitmap,cliprect,
|
||||
code,
|
||||
color,
|
||||
flipx,flipy,
|
||||
x,y,
|
||||
priority_bitmap,
|
||||
priority ? 0xfc : 0xf0,0);
|
||||
if (priority)
|
||||
{
|
||||
gfx(0)->prio_transpen(bitmap,cliprect,
|
||||
code,
|
||||
color,
|
||||
flipx,flipy,
|
||||
x,y,
|
||||
screen.priority(),pri_mask,
|
||||
0);
|
||||
}
|
||||
else
|
||||
{
|
||||
gfx(0)->transpen(bitmap,cliprect,
|
||||
code,
|
||||
color,
|
||||
flipx,flipy,
|
||||
x,y,
|
||||
0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,27 +5,28 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef device_delegate<void (u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)> pc090oj_colpri_cb_delegate;
|
||||
|
||||
class pc090oj_device : public device_t, public device_gfx_interface
|
||||
{
|
||||
public:
|
||||
pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
|
||||
// configuration
|
||||
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
|
||||
void set_gfx_region(int gfxregion) { m_gfxnum = gfxregion; }
|
||||
void set_usebuffer(int use_buf) { m_use_buffer = use_buf; }
|
||||
void set_usebuffer(bool use_buf) { m_use_buffer = use_buf; }
|
||||
void set_offsets(int x_offset, int y_offset)
|
||||
{
|
||||
m_x_offset = x_offset;
|
||||
m_y_offset = y_offset;
|
||||
}
|
||||
template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = pc090oj_colpri_cb_delegate(std::forward<T>(args)...); }
|
||||
|
||||
DECLARE_READ16_MEMBER( word_r );
|
||||
DECLARE_WRITE16_MEMBER( word_w );
|
||||
u16 word_r(offs_t offset);
|
||||
void word_w(offs_t offset, u16 data, u16 mem_mask = 0);
|
||||
void sprite_ctrl_w(u16 data);
|
||||
|
||||
void set_sprite_ctrl(uint16_t sprctrl);
|
||||
void eof_callback();
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_type);
|
||||
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
@ -42,18 +43,19 @@ private:
|
||||
routines here modular.
|
||||
|
||||
*/
|
||||
pc090oj_colpri_cb_delegate m_colpri_cb;
|
||||
|
||||
uint16_t m_ctrl;
|
||||
uint16_t m_sprite_ctrl;
|
||||
// decoding info
|
||||
DECLARE_GFXDECODE_MEMBER(gfxinfo);
|
||||
|
||||
std::unique_ptr<uint16_t[]> m_ram;
|
||||
std::unique_ptr<uint16_t[]> m_ram_buffered;
|
||||
u16 m_ctrl;
|
||||
u16 m_sprite_ctrl;
|
||||
|
||||
std::unique_ptr<u16[]> m_ram;
|
||||
std::unique_ptr<u16[]> m_ram_buffered;
|
||||
|
||||
int m_gfxnum;
|
||||
int m_x_offset, m_y_offset;
|
||||
int m_use_buffer;
|
||||
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
bool m_use_buffer;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(PC090OJ, pc090oj_device)
|
||||
|
@ -13,10 +13,16 @@
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
void rastan_state::spritectrl_w(u16 data)
|
||||
void rastan_state::rastan_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)
|
||||
{
|
||||
/* bits 5-7 are the sprite palette bank */
|
||||
m_pc090oj->set_sprite_ctrl((data & 0xe0) >> 5);
|
||||
sprite_colbank = (sprite_ctrl & 0xe0) >> 1;
|
||||
pri_mask = 0; /* sprites over everything */
|
||||
}
|
||||
|
||||
void rastan_state::spritectrl_w(u16 data)
|
||||
{
|
||||
m_pc090oj->sprite_ctrl_w(data);
|
||||
|
||||
/* bit 4 unused */
|
||||
|
||||
@ -45,6 +51,6 @@ u32 rastan_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, con
|
||||
m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
|
||||
m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
|
||||
m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 0);
|
||||
m_pc090oj->draw_sprites(screen, bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
@ -14,16 +14,14 @@
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
WRITE16_MEMBER(rbisland_state::rbisland_spritectrl_w)
|
||||
void rbisland_state::rbisland_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
/* bits 0 and 1 always set */
|
||||
/* bits 5-7 are the sprite palette bank */
|
||||
/* other bits unknown */
|
||||
/* bits 0 and 1 always set */
|
||||
/* bits 5-7 are the sprite palette bank */
|
||||
/* other bits unknown */
|
||||
|
||||
m_pc090oj->set_sprite_ctrl((data & 0xe0) >> 5);
|
||||
}
|
||||
sprite_colbank = (sprite_ctrl & 0xe0) >> 1;
|
||||
pri_mask = 0xfc; /* sprites under top bg layer */
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(rbisland_state::jumping_spritectrl_w)
|
||||
@ -54,7 +52,7 @@ uint32_t rbisland_state::screen_update_rainbow(screen_device &screen, bitmap_ind
|
||||
m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
|
||||
m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2);
|
||||
|
||||
m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 1);
|
||||
m_pc090oj->draw_sprites(screen, bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -57,9 +57,10 @@ WRITE16_MEMBER(volfied_state::video_mask_w)
|
||||
COMBINE_DATA(&m_video_mask);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(volfied_state::sprite_ctrl_w)
|
||||
void volfied_state::volfied_colpri_cb(u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)
|
||||
{
|
||||
m_pc090oj->set_sprite_ctrl((data & 0x3c) >> 2);
|
||||
sprite_colbank = 0x100 | ((sprite_ctrl & 0x3c) << 2);
|
||||
pri_mask = 0; /* sprites over everything */
|
||||
}
|
||||
|
||||
|
||||
@ -123,6 +124,6 @@ uint32_t volfied_state::screen_update(screen_device &screen, bitmap_ind16 &bitma
|
||||
{
|
||||
screen.priority().fill(0, cliprect);
|
||||
refresh_pixel_layer(bitmap);
|
||||
m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 0);
|
||||
m_pc090oj->draw_sprites(screen, bitmap, cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user