travrusa: revert bios option for color proms with exact same rom contents, small cleanup

This commit is contained in:
hap 2024-11-18 13:01:23 +01:00
parent 749cb31cd6
commit 1e7cb67cd3
2 changed files with 166 additions and 172 deletions

View File

@ -74,7 +74,7 @@ public:
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
m_dsw2(*this, "DSW2")
m_dsw(*this, "DSW%u", 1)
{ }
void shtrider(machine_config &config);
@ -86,7 +86,6 @@ public:
void init_shtridrb();
protected:
virtual void machine_reset() override ATTR_COLD;
virtual void video_start() override ATTR_COLD;
private:
@ -97,7 +96,7 @@ private:
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
required_ioport m_dsw2;
required_ioport_array<2> m_dsw;
tilemap_t *m_bg_tilemap = nullptr;
uint8_t m_scrollx[2]{};
@ -294,7 +293,7 @@ TILE_GET_INFO_MEMBER(travrusa_state::get_tile_info)
uint8_t const attr = m_videoram[2 * tile_index + 1];
int const flags = TILE_FLIPXY((attr & 0x30) >> 4);
tileinfo.group = ((attr & 0x0f) == 0x0f) ? 1 : 0; // tunnels
tileinfo.group = ((attr & 0x0f) == 0x0f) ? 1 : 0; // tunnels
tileinfo.set(0,
m_videoram[2 * tile_index] + ((attr & 0xc0) << 2),
@ -324,6 +323,58 @@ void travrusa_state::video_start()
/***************************************************************************
Display refresh
***************************************************************************/
void travrusa_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const rectangle spritevisiblearea(1*8, 31*8-1, 0*8, 24*8-1);
const rectangle spritevisibleareaflip(1*8, 31*8-1, 8*8, 32*8-1);
rectangle clip = cliprect;
if (flip_screen())
clip &= spritevisibleareaflip;
else
clip &= spritevisiblearea;
for (int offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
int sx = ((m_spriteram[offs + 3] + 8) & 0xff) - 8;
int sy = 240 - m_spriteram[offs];
int const code = m_spriteram[offs + 2];
int const attr = m_spriteram[offs + 1];
int flipx = attr & 0x40;
int flipy = attr & 0x80;
if (flip_screen())
{
sx = 240 - sx;
sy = 240 - sy;
flipx = !flipx;
flipy = !flipy;
}
m_gfxdecode->gfx(1)->transpen(bitmap, clip,
code,
attr & 0x0f,
flipx, flipy,
sx, sy, 0);
}
}
uint32_t travrusa_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(bitmap, cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
/***************************************************************************
Memory handlers
@ -361,7 +412,7 @@ void travrusa_state::scroll_x_high_w(uint8_t data)
void travrusa_state::flipscreen_w(uint8_t data)
{
// screen flip is handled both by software and hardware
data ^= ~m_dsw2->read() & 1;
data ^= ~m_dsw[1]->read() & 1;
flip_screen_set(data & 1);
@ -370,59 +421,21 @@ void travrusa_state::flipscreen_w(uint8_t data)
}
uint8_t travrusa_state::shtriderb_port11_r()
{
logerror("shtriderb_port11_r %04x\n", m_maincpu->pc());
// reads, masks with 0xa8, checks for 0x88, resets game if not happy with value?
return 0x88;
}
/***************************************************************************
Display refresh
Address maps
***************************************************************************/
void travrusa_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const rectangle spritevisiblearea(1*8, 31*8-1, 0*8, 24*8-1);
const rectangle spritevisibleareaflip(1*8, 31*8-1, 8*8, 32*8-1);
rectangle clip = cliprect;
if (flip_screen())
clip &= spritevisibleareaflip;
else
clip &= spritevisiblearea;
for (int offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
int sx = ((m_spriteram[offs + 3] + 8) & 0xff) - 8;
int sy = 240 - m_spriteram[offs];
int const code = m_spriteram[offs + 2];
int const attr = m_spriteram[offs + 1];
int flipx = attr & 0x40;
int flipy = attr & 0x80;
if (flip_screen())
{
sx = 240 - sx;
sy = 240 - sy;
flipx = !flipx;
flipy = !flipy;
}
m_gfxdecode->gfx(1)->transpen(bitmap, clip,
code,
attr & 0x0f,
flipx, flipy,
sx, sy, 0);
}
}
uint32_t travrusa_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(bitmap, cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
void travrusa_state::program_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
@ -431,7 +444,7 @@ void travrusa_state::program_map(address_map &map)
map(0xa000, 0xa000).w(FUNC(travrusa_state::scroll_x_high_w));
map(0xc800, 0xc9ff).writeonly().share(m_spriteram);
map(0xd000, 0xd000).portr("SYSTEM").w("irem_audio", FUNC(irem_audio_device::cmd_w));
map(0xd001, 0xd001).portr("P1").w(FUNC(travrusa_state::flipscreen_w)); // + coin counters - not written by shtrider
map(0xd001, 0xd001).portr("P1").w(FUNC(travrusa_state::flipscreen_w)); // + coin counters - not written by shtrider
map(0xd002, 0xd002).portr("P2");
map(0xd003, 0xd003).portr("DSW1");
map(0xd004, 0xd004).portr("DSW2");
@ -443,6 +456,14 @@ void travrusa_state::shtriderb_io_map(address_map &map)
map(0x0011, 0x0011).mirror(0xff00).r(FUNC(travrusa_state::shtriderb_port11_r));
}
/***************************************************************************
Input ports
***************************************************************************/
static INPUT_PORTS_START( travrusa )
PORT_START("SYSTEM")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
@ -488,8 +509,8 @@ static INPUT_PORTS_START( travrusa )
PORT_DIPSETTING( 0x08, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:5,6,7,8")
PORT_DIPSETTING( 0x80, "Not Used" ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x90, "Not Used" ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x80, "Not Used" ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x90, "Not Used" ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
@ -502,7 +523,7 @@ static INPUT_PORTS_START( travrusa )
PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x20, DEF_STR( 1C_7C ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x10, "Not Used" ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x10, "Not Used" ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x04)
PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) PORT_CONDITION("DSW2", 0x04, EQUALS, 0x00)
@ -529,17 +550,17 @@ static INPUT_PORTS_START( travrusa )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW2:2")
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )
PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) PORT_DIPLOCATION("DSW2:3")
PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) PORT_DIPLOCATION("DSW2:3")
PORT_DIPSETTING( 0x04, "Mode 1" )
PORT_DIPSETTING( 0x00, "Mode 2" )
PORT_DIPNAME( 0x08, 0x08, "Speed Type" ) PORT_DIPLOCATION("DSW2:4")
PORT_DIPSETTING( 0x08, "M/H" ) //mph ?
PORT_DIPSETTING( 0x00, "Km/H" )
PORT_DIPNAME( 0x08, 0x08, "Speed Type" ) PORT_DIPLOCATION("DSW2:4")
PORT_DIPSETTING( 0x08, "mph" )
PORT_DIPSETTING( 0x00, "km/h" )
// In stop mode, press 2 to stop and 1 to restart
PORT_DIPNAME( 0x10, 0x10, "Stop Mode (Cheat)") PORT_DIPLOCATION("DSW2:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "Title" ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPNAME( 0x20, 0x20, "Title" ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPSETTING( 0x20, "Traverse USA" )
PORT_DIPSETTING( 0x00, "Zippy Race" )
PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") PORT_DIPLOCATION("DSW2:7")
@ -604,7 +625,7 @@ static INPUT_PORTS_START( shtrider )
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DSW2:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "Speed Display" ) PORT_DIPLOCATION("DSW2:2")
PORT_DIPNAME( 0x02, 0x02, "Speed Display" ) PORT_DIPLOCATION("DSW2:2")
PORT_DIPSETTING( 0x02, "km/h" )
PORT_DIPSETTING( 0x00, "mph" )
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "DSW2:3" )
@ -619,6 +640,12 @@ INPUT_PORTS_END
/***************************************************************************
GFX layouts
***************************************************************************/
static const gfx_layout spritelayout =
{
16,16,
@ -655,11 +682,13 @@ static GFXDECODE_START( gfx_shtrider )
GFXDECODE_ENTRY( "sprites", 0, shtrider_spritelayout, 16*8, 16 )
GFXDECODE_END
void travrusa_state::machine_reset()
{
m_scrollx[0] = 0;
m_scrollx[1] = 0;
}
/***************************************************************************
Machine configuration
***************************************************************************/
void travrusa_state::travrusa(machine_config &config)
{
@ -701,30 +730,14 @@ void travrusa_state::shtriderb(machine_config &config)
m_gfxdecode->set_info(gfx_shtrider);
}
/***************************************************************************
Game driver(s)
***************************************************************************/
/* The only difference between 'BIOSes' (not really a BIOS) is a different PROM setup (but same content) on the sprites PCB:
Location One character palette PROM Two character palette PROMs
F1 74LS32 PROM
H1 74LS74 PROM
K2 PROM empty
*/
#define TRAVRUSA_PROMS \
ROM_REGION( 0x0320, "proms", 0 ) \
ROM_SYSTEM_BIOS( 0, "1", "One character palette PROM" ) \
ROMX_LOAD( "mmi6349.ij", 0x0000, 0x0200, CRC(c9724350) SHA1(1fac20cdc0a53d94e8f67b49d7dd71d1b9f1f7ef), ROM_BIOS(0) ) /* Character palette - last $100 are unused */ \
ROMX_LOAD( "tbp18s.2", 0x0200, 0x0020, CRC(a1130007) SHA1(9deb0eed75dd06e86f83c819a3393158be7c9dce), ROM_BIOS(0) ) /* Sprite palette */ \
ROMX_LOAD( "tbp24s10.3", 0x0220, 0x0100, CRC(76062638) SHA1(7378a26cf455d9d3df90929dc665870514c34b54), ROM_BIOS(0) ) /* Sprite lookup table */ \
ROM_SYSTEM_BIOS( 1, "2", "Two character palette PROMs" ) \
ROMX_LOAD( "prom.h1", 0x0000, 0x0100, CRC(2f98ddf0) SHA1(e90c3cebe3e788cbf8e23030f58a1153564207e2), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_BIOS(1) ) /* On tiles PCB */ \
ROMX_LOAD( "prom.f1", 0x0000, 0x0100, CRC(adea1297) SHA1(8f365cc15cc3c26b388ba957d7cf3752584d5475), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_BIOS(1) ) /* On tiles PCB */ \
ROMX_LOAD( "prom1.f1", 0x0200, 0x0020, CRC(a1130007) SHA1(9deb0eed75dd06e86f83c819a3393158be7c9dce), ROM_BIOS(1) ) /* On sprites PCB */ \
ROMX_LOAD( "prom2.h2", 0x0220, 0x0100, CRC(76062638) SHA1(7378a26cf455d9d3df90929dc665870514c34b54), ROM_BIOS(1) ) /* On sprites PCB */
ROM_START( travrusa )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "zr1-0.m3", 0x0000, 0x2000, CRC(be066c0a) SHA1(fed0ef114b08519b99d77485b73768a838d2f06e) )
@ -745,29 +758,36 @@ ROM_START( travrusa )
ROM_LOAD( "zr1-9.l3", 0x2000, 0x2000, CRC(13be6a14) SHA1(47861910fe4c46cd72634cf7d834be2da2a0a4f9) )
ROM_LOAD( "zr1-10.k3", 0x4000, 0x2000, CRC(6fcc9fdb) SHA1(88f878b9ebf07c5a16f8cb742016cac971ed3f10) )
TRAVRUSA_PROMS
ROM_REGION( 0x0320, "proms", 0 )
// a 2-PROM configuration for the character palette also exists, with the exact same contents
// prom.h1 == prom.k2("mmi6349.ij") high nibbles, prom.f1 == prom.k2 low nibbles, like so:
// ROMX_LOAD( "prom.h1", 0x0000, 0x0100, CRC(2f98ddf0) SHA1(e90c3cebe3e788cbf8e23030f58a1153564207e2), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI )
// ROMX_LOAD( "prom.f1", 0x0000, 0x0100, CRC(adea1297) SHA1(8f365cc15cc3c26b388ba957d7cf3752584d5475), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO )
ROM_LOAD( "mmi6349.ij", 0x0000, 0x0200, CRC(c9724350) SHA1(1fac20cdc0a53d94e8f67b49d7dd71d1b9f1f7ef) ) // character palette - last $100 are unused
ROM_LOAD( "tbp18s.2", 0x0200, 0x0020, CRC(a1130007) SHA1(9deb0eed75dd06e86f83c819a3393158be7c9dce) ) // sprite palette
ROM_LOAD( "tbp24s10.3", 0x0220, 0x0100, CRC(76062638) SHA1(7378a26cf455d9d3df90929dc665870514c34b54) ) // sprite lookup table
ROM_END
// Bootleg - "American Top" printed on title - (c) 1983 I.P. - Zippy Race graphic logo is blanked out - Main ROM0-ROM3 test NG
ROM_START( travrusab )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "at4.m3", 0x0000, 0x2000, CRC(704ce6e4) SHA1(77385d853e3d5085c6ab155417e2b42212aff6fc) )
ROM_LOAD( "at5.l3", 0x2000, 0x2000, CRC(686cb0e6) SHA1(64c7e682a181bae159cca60ffa617c532b1e16d3) )
ROM_LOAD( "at6.k3", 0x4000, 0x2000, CRC(baf87d80) SHA1(761d687ef3f3dde80a47f547d3c822704a2ac821) )
ROM_LOAD( "at7.h3", 0x6000, 0x2000, CRC(48091ebe) SHA1(6146af6f08053a5955d9b388d25bfbab7ad6b0e5) )
ROM_LOAD( "at4.m3", 0x0000, 0x2000, CRC(704ce6e4) SHA1(77385d853e3d5085c6ab155417e2b42212aff6fc) )
ROM_LOAD( "at5.l3", 0x2000, 0x2000, CRC(686cb0e6) SHA1(64c7e682a181bae159cca60ffa617c532b1e16d3) )
ROM_LOAD( "at6.k3", 0x4000, 0x2000, CRC(baf87d80) SHA1(761d687ef3f3dde80a47f547d3c822704a2ac821) )
ROM_LOAD( "at7.h3", 0x6000, 0x2000, CRC(48091ebe) SHA1(6146af6f08053a5955d9b388d25bfbab7ad6b0e5) )
ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "11.a1", 0x7000, 0x1000, CRC(d2c0bc33) SHA1(3a52ae514daf985d297416301dac0ac6cbe671d7) )
ROM_LOAD( "11.a1", 0x7000, 0x1000, CRC(d2c0bc33) SHA1(3a52ae514daf985d297416301dac0ac6cbe671d7) )
ROM_REGION( 0x06000, "tiles", 0 )
ROM_LOAD( "zippyrac.001", 0x0000, 0x2000, CRC(aa8994dd) SHA1(9b326ce52a03d723e5c3c1b5fd4aa8fa7f70f904) ) // at1.e3
ROM_LOAD( "mr8.3c", 0x2000, 0x2000, CRC(3a046dd1) SHA1(65c1dd1c0b5fb72ac5c04e11a577308245e4b312) ) // at2.c3
ROM_LOAD( "mr9.3a", 0x4000, 0x2000, CRC(1cc3d3f4) SHA1(e7ee365d43d783cb6b7df37c6edeadbed35318d9) ) // at3.a3
ROM_LOAD( "zippyrac.001", 0x0000, 0x2000, CRC(aa8994dd) SHA1(9b326ce52a03d723e5c3c1b5fd4aa8fa7f70f904) ) // at1.e3
ROM_LOAD( "mr8.3c", 0x2000, 0x2000, CRC(3a046dd1) SHA1(65c1dd1c0b5fb72ac5c04e11a577308245e4b312) ) // at2.c3
ROM_LOAD( "mr9.3a", 0x4000, 0x2000, CRC(1cc3d3f4) SHA1(e7ee365d43d783cb6b7df37c6edeadbed35318d9) ) // at3.a3
ROM_REGION( 0x06000, "sprites", 0 )
ROM_LOAD( "8.n3", 0x0000, 0x2000, CRC(00c0f46b) SHA1(5fccc188af653785f3fc0f9d36dbbbab472f6fdc) )
ROM_LOAD( "9.m3", 0x2000, 0x2000, CRC(73ade73b) SHA1(4da012d71e7c1f46407343cc8d4fbe0397b7db71) )
ROM_LOAD( "10.k3", 0x4000, 0x2000, CRC(fcfeaa69) SHA1(a958caf70d2dc4a80298a395cb48db210e6ca16b) )
ROM_LOAD( "8.n3", 0x0000, 0x2000, CRC(00c0f46b) SHA1(5fccc188af653785f3fc0f9d36dbbbab472f6fdc) )
ROM_LOAD( "9.m3", 0x2000, 0x2000, CRC(73ade73b) SHA1(4da012d71e7c1f46407343cc8d4fbe0397b7db71) )
ROM_LOAD( "10.k3", 0x4000, 0x2000, CRC(fcfeaa69) SHA1(a958caf70d2dc4a80298a395cb48db210e6ca16b) )
ROM_REGION( 0x0320, "proms", 0 )
ROM_LOAD( "mmi6349.ij", 0x0000, 0x0200, CRC(c9724350) SHA1(1fac20cdc0a53d94e8f67b49d7dd71d1b9f1f7ef) ) // character palette - last $100 are unused
@ -777,18 +797,18 @@ ROM_END
ROM_START( travrusab2 ) // all ROMs match travrusa but the ones where differently stated
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "0.2m3", 0x0000, 0x2000, CRC(c96e81ac) SHA1(5b01269ce05604239b14ba7eaab8250c8ff17591) ) // unique
ROM_LOAD( "5.2l3", 0x2000, 0x2000, CRC(145d6b34) SHA1(c9e2bd1d3e62c496e4c5057c4012b069dfcf592d) )
ROM_LOAD( "6.2k3", 0x4000, 0x2000, CRC(e1b51383) SHA1(34f4476c1bcc28c53c8ffa7b614f443a329aae13) )
ROM_LOAD( "7.2j3", 0x6000, 0x2000, CRC(ab8a3a33) SHA1(e332b6e727083cf508ccec721ce42ccc3aa54e91) ) // same as mototour
ROM_LOAD( "0.2m3", 0x0000, 0x2000, CRC(c96e81ac) SHA1(5b01269ce05604239b14ba7eaab8250c8ff17591) ) // unique
ROM_LOAD( "5.2l3", 0x2000, 0x2000, CRC(145d6b34) SHA1(c9e2bd1d3e62c496e4c5057c4012b069dfcf592d) )
ROM_LOAD( "6.2k3", 0x4000, 0x2000, CRC(e1b51383) SHA1(34f4476c1bcc28c53c8ffa7b614f443a329aae13) )
ROM_LOAD( "7.2j3", 0x6000, 0x2000, CRC(ab8a3a33) SHA1(e332b6e727083cf508ccec721ce42ccc3aa54e91) ) // same as mototour
ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "4.1a1", 0x7000, 0x1000, CRC(a02ad8a0) SHA1(aff80b506dbecabed2a36eb743693940f6a22d16) )
ROM_LOAD( "4.1a1", 0x7000, 0x1000, CRC(a02ad8a0) SHA1(aff80b506dbecabed2a36eb743693940f6a22d16) )
ROM_REGION( 0x06000, "tiles", 0 )
ROM_LOAD( "1.1e3", 0x0000, 0x2000, CRC(aa8994dd) SHA1(9b326ce52a03d723e5c3c1b5fd4aa8fa7f70f904) )
ROM_LOAD( "2.1c3", 0x2000, 0x2000, CRC(3a046dd1) SHA1(65c1dd1c0b5fb72ac5c04e11a577308245e4b312) )
ROM_LOAD( "3.1a3", 0x4000, 0x2000, CRC(1cc3d3f4) SHA1(e7ee365d43d783cb6b7df37c6edeadbed35318d9) )
ROM_LOAD( "1.1e3", 0x0000, 0x2000, CRC(aa8994dd) SHA1(9b326ce52a03d723e5c3c1b5fd4aa8fa7f70f904) )
ROM_LOAD( "2.1c3", 0x2000, 0x2000, CRC(3a046dd1) SHA1(65c1dd1c0b5fb72ac5c04e11a577308245e4b312) )
ROM_LOAD( "3.1a3", 0x4000, 0x2000, CRC(1cc3d3f4) SHA1(e7ee365d43d783cb6b7df37c6edeadbed35318d9) )
ROM_REGION( 0x06000, "sprites", 0 )
ROM_LOAD( "8.3n3", 0x0000, 0x2000, CRC(3e2c7a6b) SHA1(abc9eeb656ab6ed5f14e10fc988f75f21ccf037a) )
@ -821,64 +841,45 @@ ROM_START( motorace )
ROM_LOAD( "mr5.3m", 0x2000, 0x2000, CRC(f75f2aad) SHA1(e4a8a3da56cbc04f0c9041afac182d1bfceb1d0d) )
ROM_LOAD( "mr6.3k", 0x4000, 0x2000, CRC(518889a0) SHA1(70b417104ce86132cb5542813c1e0509b2260756) )
TRAVRUSA_PROMS
ROM_REGION( 0x0320, "proms", 0 ) // see notes in parent set for alternate character palette PROM configuration
ROM_LOAD( "mmi6349.ij", 0x0000, 0x0200, CRC(c9724350) SHA1(1fac20cdc0a53d94e8f67b49d7dd71d1b9f1f7ef) ) // character palette - last $100 are unused
ROM_LOAD( "tbp18s.2", 0x0200, 0x0020, CRC(a1130007) SHA1(9deb0eed75dd06e86f83c819a3393158be7c9dce) ) // sprite palette
ROM_LOAD( "tbp24s10.3", 0x0220, 0x0100, CRC(76062638) SHA1(7378a26cf455d9d3df90929dc665870514c34b54) ) // sprite lookup table
ROM_END
/*
Moto Tour is a Tecfri licensed version of Traverse USA/Zippy Race from Irem
This version doesn't have the MSM5202 but still has the sounds produced by the 5202 with a lower quality, I guess it converts the sound data to analog in some way, also this version is unprotected, doesn't have the epoxy block.
This version doesn't have the MSM5202 but still has the sounds produced by the 5202 with a lower quality,
I guess it converts the sound data to analog in some way, also this version is unprotected, doesn't have the epoxy block.
Unfortunately the EPROMs' labels have disappeared, so I name it similar to Traverse USA but with the letters mt (Moto Tour)
Rom Info
snd.a1 ------ sound code, 100% identical to Traverse Usa/Zippy race
mt1-1.e3 \
mt1-2.c3 -- Backgrounds?, 100% identical to Traverse Usa/Zippy race
mt1-3.a3 /
mt1-4.m3 \
mt1-5.l3 ==
mt1-6.k3 == Main CPU. Different from the other sets
mt1-7.j3 /
mt1-8.n3 \
mt1-9.m3 -- Sprites. Apparently all different from the other sets
mt1-10.k3 /
mm6349.k2 \
prom1.f1 -- color PROMs, identical to other versions (there are also versions with two character palette PROMs)
prom2.h2 /
Ricky2001
*/
ROM_START( mototour )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "mt1-4.m3", 0x0000, 0x2000, CRC(fe643567) SHA1(2e47b6de43ff7fc1f070d34376fde697fc719b80) )
ROM_LOAD( "mt1-5.l3", 0x2000, 0x2000, CRC(38d9d0f5) SHA1(8b4531a28ff69df04a5eef687383dab57e0aa685) )
ROM_LOAD( "mt1-6.k3", 0x4000, 0x2000, CRC(efd325f2) SHA1(0862c0ec87f601b6c1cba2bd25e3186b6ad0c68e) )
ROM_LOAD( "mt1-7.j3", 0x6000, 0x2000, CRC(ab8a3a33) SHA1(e332b6e727083cf508ccec721ce42ccc3aa54e91) )
ROM_LOAD( "mt1-4.m3", 0x0000, 0x2000, CRC(fe643567) SHA1(2e47b6de43ff7fc1f070d34376fde697fc719b80) )
ROM_LOAD( "mt1-5.l3", 0x2000, 0x2000, CRC(38d9d0f5) SHA1(8b4531a28ff69df04a5eef687383dab57e0aa685) )
ROM_LOAD( "mt1-6.k3", 0x4000, 0x2000, CRC(efd325f2) SHA1(0862c0ec87f601b6c1cba2bd25e3186b6ad0c68e) )
ROM_LOAD( "mt1-7.j3", 0x6000, 0x2000, CRC(ab8a3a33) SHA1(e332b6e727083cf508ccec721ce42ccc3aa54e91) )
ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "snd.a1", 0x7000, 0x1000, CRC(a02ad8a0) SHA1(aff80b506dbecabed2a36eb743693940f6a22d16) ) // == mr10.1a
ROM_LOAD( "snd.a1", 0x7000, 0x1000, CRC(a02ad8a0) SHA1(aff80b506dbecabed2a36eb743693940f6a22d16) ) // == mr10.1a
ROM_REGION( 0x06000, "tiles", 0 )
ROM_LOAD( "mt1-1.e3", 0x0000, 0x2000, CRC(aa8994dd) SHA1(9b326ce52a03d723e5c3c1b5fd4aa8fa7f70f904) ) // == zippyrac.001
ROM_LOAD( "mt1-2.c3", 0x2000, 0x2000, CRC(3a046dd1) SHA1(65c1dd1c0b5fb72ac5c04e11a577308245e4b312) ) // == mr8.3c
ROM_LOAD( "mt1-3.a3", 0x4000, 0x2000, CRC(1cc3d3f4) SHA1(e7ee365d43d783cb6b7df37c6edeadbed35318d9) ) // == mr9.3a
ROM_LOAD( "mt1-1.e3", 0x0000, 0x2000, CRC(aa8994dd) SHA1(9b326ce52a03d723e5c3c1b5fd4aa8fa7f70f904) ) // == zippyrac.001
ROM_LOAD( "mt1-2.c3", 0x2000, 0x2000, CRC(3a046dd1) SHA1(65c1dd1c0b5fb72ac5c04e11a577308245e4b312) ) // == mr8.3c
ROM_LOAD( "mt1-3.a3", 0x4000, 0x2000, CRC(1cc3d3f4) SHA1(e7ee365d43d783cb6b7df37c6edeadbed35318d9) ) // == mr9.3a
ROM_REGION( 0x06000, "sprites", 0 )
ROM_LOAD( "mt1-8.n3", 0x0000, 0x2000, CRC(600a57f5) SHA1(86c2b2efb9392b7eca44510587d2459388c40435) )
ROM_LOAD( "mt1-9.m3", 0x2000, 0x2000, CRC(6f9f2a4e) SHA1(8ebdd69895a4dd5de7fe84505359cccaa0aca6f8) )
ROM_LOAD( "mt1-10.k3", 0x4000, 0x2000, CRC(d958def5) SHA1(198adf7e87804bd018b8cfa8bbc68623255698a2) )
ROM_LOAD( "mt1-8.n3", 0x0000, 0x2000, CRC(600a57f5) SHA1(86c2b2efb9392b7eca44510587d2459388c40435) )
ROM_LOAD( "mt1-9.m3", 0x2000, 0x2000, CRC(6f9f2a4e) SHA1(8ebdd69895a4dd5de7fe84505359cccaa0aca6f8) )
ROM_LOAD( "mt1-10.k3", 0x4000, 0x2000, CRC(d958def5) SHA1(198adf7e87804bd018b8cfa8bbc68623255698a2) )
TRAVRUSA_PROMS
ROM_REGION( 0x0320, "proms", 0 ) // see notes in parent set for alternate character palette PROM configuration
ROM_LOAD( "mmi6349.k2", 0x0000, 0x0200, CRC(c9724350) SHA1(1fac20cdc0a53d94e8f67b49d7dd71d1b9f1f7ef) ) // character palette - last $100 are unused // == mmi6349.ij
ROM_LOAD( "prom1.f1", 0x0200, 0x0020, CRC(a1130007) SHA1(9deb0eed75dd06e86f83c819a3393158be7c9dce) ) // sprite palette // == tbp18s.2
ROM_LOAD( "prom2.h2", 0x0220, 0x0100, CRC(76062638) SHA1(7378a26cf455d9d3df90929dc665870514c34b54) ) // sprite lookup table // == tbp24s10.3
ROM_END
@ -904,10 +905,10 @@ ROM_START( shtrider )
ROM_LOAD( "sr10b.bin", 0x4000, 0x2000, CRC(0a117925) SHA1(e061254428874b6153c2e9e514122373395f4da1) )
ROM_REGION( 0x0420, "proms", 0 )
ROM_LOAD( "1.bpr", 0x0000, 0x0100, CRC(e9e258e5) SHA1(b98df686e8e2afa9ed05a56e1d3acb0d7cee3888) )
ROM_LOAD( "2.bpr", 0x0100, 0x0100, CRC(6cf4591c) SHA1(3a5795758811f4fe3518216491ac13c0d17e842f) )
ROM_LOAD( "4.bpr", 0x0200, 0x0020, CRC(ee97c581) SHA1(a5d0ba5e03f3bcbdd72f89f0495a98cef2821e59) )
ROM_LOAD( "3.bpr", 0x0220, 0x0100, CRC(5db47092) SHA1(8e234ee88143755a4fd5ec86a03b55be5f9c5db8) )
ROM_LOAD( "1.bpr", 0x0000, 0x0100, CRC(e9e258e5) SHA1(b98df686e8e2afa9ed05a56e1d3acb0d7cee3888) )
ROM_LOAD( "2.bpr", 0x0100, 0x0100, CRC(6cf4591c) SHA1(3a5795758811f4fe3518216491ac13c0d17e842f) )
ROM_LOAD( "4.bpr", 0x0200, 0x0020, CRC(ee97c581) SHA1(a5d0ba5e03f3bcbdd72f89f0495a98cef2821e59) )
ROM_LOAD( "3.bpr", 0x0220, 0x0100, CRC(5db47092) SHA1(8e234ee88143755a4fd5ec86a03b55be5f9c5db8) )
ROM_END
ROM_START( shtridera )
@ -918,7 +919,7 @@ ROM_START( shtridera )
ROM_LOAD( "4.bin", 0x6000, 0x2000, CRC(02b96eaa) SHA1(ba4d61cf57142192684c45dd22720234d3521241) )
ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "11.bin", 0x6000, 0x2000, CRC(a8396b76) SHA1(614151fb1d25930e9fee4ab290a63f8fe97adbe6) )
ROM_LOAD( "11.bin", 0x6000, 0x2000, CRC(a8396b76) SHA1(614151fb1d25930e9fee4ab290a63f8fe97adbe6) )
ROM_REGION( 0x06000, "tiles", 0 )
ROM_LOAD( "5.bin", 0x0000, 0x2000, CRC(34449f79) SHA1(30aa9da07bf32282d213f63e50c564a336fd0102) )
@ -939,28 +940,28 @@ ROM_END
ROM_START( shtriderb )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "sr1.20.m3", 0x0000, 0x2000, CRC(8bca38d7) SHA1(97482ea1b6e5415df7149184dd5662d96a3e155a) )
ROM_LOAD( "sr2.21.l3", 0x2000, 0x2000, CRC(56d4a66a) SHA1(e51a409ecc9f4d808678467ca7ce9bc0a35a7863) )
ROM_LOAD( "sr3.22.k3", 0x4000, 0x2000, CRC(44cab4cc) SHA1(9e87d88353c858c25fb4ff9528c3f369505ffd88) )
ROM_LOAD( "sr4.23.h3", 0x6000, 0x2000, CRC(02b96eaa) SHA1(ba4d61cf57142192684c45dd22720234d3521241) )
ROM_LOAD( "sr1.20.m3", 0x0000, 0x2000, CRC(8bca38d7) SHA1(97482ea1b6e5415df7149184dd5662d96a3e155a) )
ROM_LOAD( "sr2.21.l3", 0x2000, 0x2000, CRC(56d4a66a) SHA1(e51a409ecc9f4d808678467ca7ce9bc0a35a7863) )
ROM_LOAD( "sr3.22.k3", 0x4000, 0x2000, CRC(44cab4cc) SHA1(9e87d88353c858c25fb4ff9528c3f369505ffd88) )
ROM_LOAD( "sr4.23.h3", 0x6000, 0x2000, CRC(02b96eaa) SHA1(ba4d61cf57142192684c45dd22720234d3521241) )
ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "sr11.7.a1", 0x6000, 0x2000, CRC(a8396b76) SHA1(614151fb1d25930e9fee4ab290a63f8fe97adbe6) )
ROM_LOAD( "sr11.7.a1", 0x6000, 0x2000, CRC(a8396b76) SHA1(614151fb1d25930e9fee4ab290a63f8fe97adbe6) )
ROM_REGION( 0x06000, "tiles", 0 )
ROM_LOAD( "sr5.f3", 0x0000, 0x2000, CRC(34449f79) SHA1(30aa9da07bf32282d213f63e50c564a336fd0102) )
ROM_LOAD( "sr6.c3", 0x2000, 0x2000, CRC(de43653d) SHA1(a9fae236ee8e32d576123a4871ba3c46ca78ec3b) )
ROM_LOAD( "sr7.a3", 0x4000, 0x2000, CRC(3445b81c) SHA1(6768d411f8c3a347b10908e757a701d5b71ca2bc) )
ROM_LOAD( "sr5.f3", 0x0000, 0x2000, CRC(34449f79) SHA1(30aa9da07bf32282d213f63e50c564a336fd0102) )
ROM_LOAD( "sr6.c3", 0x2000, 0x2000, CRC(de43653d) SHA1(a9fae236ee8e32d576123a4871ba3c46ca78ec3b) )
ROM_LOAD( "sr7.a3", 0x4000, 0x2000, CRC(3445b81c) SHA1(6768d411f8c3a347b10908e757a701d5b71ca2bc) )
ROM_REGION( 0x06000, "sprites", 0 )
ROM_LOAD( "sr8.17.n3", 0x0000, 0x2000, CRC(4072b096) SHA1(e43482ac916a0fa259f74f99dc6ef72e86c23d9d) )
ROM_LOAD( "sr9.18.m3", 0x2000, 0x2000, CRC(fd4cc7e6) SHA1(3852883d32354e8c90c6cf701581ebc57d830c8b))
ROM_LOAD( "sr10.19.k3",0x4000, 0x2000, CRC(0a117925) SHA1(e061254428874b6153c2e9e514122373395f4da1) )
ROM_LOAD( "sr8.17.n3", 0x0000, 0x2000, CRC(4072b096) SHA1(e43482ac916a0fa259f74f99dc6ef72e86c23d9d) )
ROM_LOAD( "sr9.18.m3", 0x2000, 0x2000, CRC(fd4cc7e6) SHA1(3852883d32354e8c90c6cf701581ebc57d830c8b))
ROM_LOAD( "sr10.19.k3", 0x4000, 0x2000, CRC(0a117925) SHA1(e061254428874b6153c2e9e514122373395f4da1) )
ROM_REGION( 0x0420, "proms", 0 )
ROM_LOAD( "6349-2.k2", 0x0000, 0x0200, CRC(854487a7) SHA1(5f3a2a7f7ba89f945fda97debb5436af8a2c6885) )
ROM_LOAD( "prom1.6.f1", 0x0200, 0x0020, CRC(ee97c581) SHA1(a5d0ba5e03f3bcbdd72f89f0495a98cef2821e59))
ROM_LOAD( "prom2.12.h2", 0x0220, 0x0100, CRC(5db47092) SHA1(8e234ee88143755a4fd5ec86a03b55be5f9c5db8) )
ROM_LOAD( "prom1.6.f1", 0x0200, 0x0020, CRC(ee97c581) SHA1(a5d0ba5e03f3bcbdd72f89f0495a98cef2821e59))
ROM_LOAD( "prom2.12.h2", 0x0220, 0x0100, CRC(5db47092) SHA1(8e234ee88143755a4fd5ec86a03b55be5f9c5db8) )
ROM_END
void travrusa_state::init_motorace()
@ -981,18 +982,11 @@ void travrusa_state::init_shtridra()
{
uint8_t *rom = memregion("maincpu")->base();
// D3/D4 and D5/D6 swapped
// D3/D4 and D5/D6 swapped
for (int A = 0; A < 0x2000; A++)
rom[A] = bitswap<8>(rom[A],7 ,5, 6, 3, 4, 2, 1, 0);
}
uint8_t travrusa_state::shtriderb_port11_r()
{
logerror("shtriderb_port11_r %04x\n", m_maincpu->pc());
// reads, masks with 0xa8, checks for 0x88, resets game if not happy with value?
return 0x88;
}
} // anonymous namespace

View File

@ -838,7 +838,7 @@ static INPUT_PORTS_START( docastle )
PORT_DIPNAME( 0x04, 0x04, "Rack Test" ) PORT_DIPLOCATION("SWA:6")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "Advance Credit & Level on Diamond" ) PORT_DIPLOCATION("SWA:5")
PORT_DIPNAME( 0x08, 0x08, "Bonus Credit for Diamond" ) PORT_DIPLOCATION("SWA:5")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x10, "Difficulty of EXTRA" ) PORT_DIPLOCATION("SWA:4")