new WORKING

Last Four (09:12 16/01/2001 [f205v]
This commit is contained in:
David Haywood 2016-01-24 21:08:43 +00:00
parent ea933b5a38
commit 5b7fbe265f
2 changed files with 62 additions and 12 deletions

View File

@ -11205,6 +11205,7 @@ sgsafari // (c) 1996 New Impeuropex Corp.
musicsrt // (c) 1995 ABM Games
galaxi // (c) 2000 BRL S.R.L. Bologna
magjoker // (c) 2000 BRL S.R.L. Bologna
lastfour // (c) 2001 BRL S.R.L. Bologna
dwarfd // (c) 198? Electro-Sports
dwarfda // (c) 198? Electro-Sports
quarterh // (c) 1983 Electro-Sports

View File

@ -57,10 +57,13 @@ public:
m_bg3_ram(*this, "bg3_ram"),
m_bg4_ram(*this, "bg4_ram"),
m_fg_ram(*this, "fg_ram"),
m_bg3_xscroll(8),
m_bg3_yscroll(0),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette") { }
m_palette(*this, "palette")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_bg1_ram;
@ -77,10 +80,14 @@ public:
tilemap_t *m_bg4_tmap;
tilemap_t *m_fg_tmap;
UINT16 m_bg3_xscroll;
UINT16 m_bg3_yscroll;
/* misc */
int m_hopper;
int m_ticket;
UINT16 m_out[3];
UINT16 m_out;
DECLARE_WRITE16_MEMBER(galaxi_bg1_w);
DECLARE_WRITE16_MEMBER(galaxi_bg2_w);
DECLARE_WRITE16_MEMBER(galaxi_bg3_w);
@ -187,12 +194,13 @@ void galaxi_state::video_start()
m_bg4_tmap->set_transparent_pen(0);
m_fg_tmap->set_transparent_pen(0);
m_bg3_tmap->set_scrolldx(-8, 0);
}
UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg3_tmap->set_scrollx(m_bg3_xscroll);
m_bg3_tmap->set_scrolly(m_bg3_yscroll);
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@ -208,6 +216,7 @@ UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &b
}
#endif
if (layers_ctrl & 1) m_bg1_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
else bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 2) m_bg2_tmap->draw(screen, bitmap, cliprect, 0, 0);
@ -225,18 +234,18 @@ UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &b
void galaxi_state::show_out( )
{
// popmessage("%04x %04x %04x", m_out[0], m_out[1], m_out[2]);
// popmessage("%04x", m_out);
}
WRITE16_MEMBER(galaxi_state::galaxi_500000_w)
{
COMBINE_DATA(&m_out[0]);
COMBINE_DATA(&m_bg3_yscroll);
show_out();
}
WRITE16_MEMBER(galaxi_state::galaxi_500002_w)
{
COMBINE_DATA(&m_out[1]);
COMBINE_DATA(&m_bg3_xscroll);
show_out();
}
@ -271,7 +280,7 @@ WRITE16_MEMBER(galaxi_state::galaxi_500004_w)
machine().bookkeeping().coin_counter_w(0, data & 0x2000); // coins
}
COMBINE_DATA(&m_out[2]);
COMBINE_DATA(&m_out);
show_out();
}
@ -295,7 +304,32 @@ static ADDRESS_MAP_START( galaxi_map, AS_PROGRAM, 16, galaxi_state )
AM_RANGE(0x100c00, 0x100fff) AM_RAM_WRITE(galaxi_bg4_w) AM_SHARE("bg4_ram")
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(galaxi_fg_w ) AM_SHARE("fg_ram")
AM_RANGE(0x102000, 0x1047ff) AM_READNOP // unknown
AM_RANGE(0x102000, 0x107fff) AM_READNOP // unknown
AM_RANGE(0x300000, 0x3007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("INPUTS")
AM_RANGE(0x500000, 0x500001) AM_WRITE(galaxi_500000_w)
AM_RANGE(0x500002, 0x500003) AM_WRITE(galaxi_500002_w)
AM_RANGE(0x500004, 0x500005) AM_WRITE(galaxi_500004_w)
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x600000, 0x607fff) AM_RAM AM_SHARE("nvram") // 2x DS1230Y (non volatile SRAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( lastfour_map, AS_PROGRAM, 16, galaxi_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
// bg3+4 / 1+2 seem to be swapped, order, palettes, scroll register etc. all suggest this
AM_RANGE(0x100000, 0x1003ff) AM_RAM_WRITE(galaxi_bg3_w) AM_SHARE("bg3_ram")
AM_RANGE(0x100400, 0x1007ff) AM_RAM_WRITE(galaxi_bg4_w) AM_SHARE("bg4_ram")
AM_RANGE(0x100800, 0x100bff) AM_RAM_WRITE(galaxi_bg1_w) AM_SHARE("bg1_ram")
AM_RANGE(0x100c00, 0x100fff) AM_RAM_WRITE(galaxi_bg2_w) AM_SHARE("bg2_ram")
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(galaxi_fg_w ) AM_SHARE("fg_ram")
AM_RANGE(0x102000, 0x107fff) AM_READNOP // unknown
AM_RANGE(0x300000, 0x3007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
@ -401,9 +435,7 @@ void galaxi_state::machine_reset()
{
m_hopper = 0;
m_ticket = 0;
m_out[0] = 0;
m_out[1] = 0;
m_out[2] = 0;
m_out = 0;
}
static MACHINE_CONFIG_START( galaxi, galaxi_state )
@ -449,6 +481,10 @@ static MACHINE_CONFIG_DERIVED( magjoker, galaxi )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 4.0)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( lastfour, galaxi )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(lastfour_map)
MACHINE_CONFIG_END
/***************************************************************************
ROMs Loading
@ -480,6 +516,18 @@ ROM_START( magjoker )
ROM_LOAD( "21.u38", 0x00000, 0x40000, CRC(199baf33) SHA1(006708d955481fe1ae44555d27896d18e1ff8440) )
ROM_END
ROM_START( lastfour )
ROM_REGION( 0x40000, "maincpu", 0 )
ROM_LOAD16_BYTE( "15.u48", 0x00000, 0x20000, CRC(9168e19c) SHA1(4a2f0d100e457bd33691ba084a0f0549e8bf0790) )
ROM_LOAD16_BYTE( "14.u47", 0x00001, 0x20000, CRC(b10ce31a) SHA1(8d51ead24319ff775fc873957e6b4de748432a8d) )
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_LOAD16_BYTE( "13.u34", 0x00000, 0x80000, CRC(d595d4c4) SHA1(7fe8c9f36b03d763965abf325d1ff6d754342100) )
ROM_LOAD16_BYTE( "12.u33", 0x00001, 0x80000, CRC(5ee5568b) SHA1(6384e5dfa24b5ad4e4419fa3bbffb4d552867465) )
ROM_REGION( 0x40000, "oki", 0 ) /* 4-bit ADPCM mono @ 6 kHz.*/
ROM_LOAD( "21.u38", 0x00000, 0x20000, CRC(e48523dd) SHA1(47bc2e5c2164b93d685fa134397845e0ed7aaa5f) )
ROM_END
/***************************************************************************
Game Drivers
@ -488,3 +536,4 @@ ROM_END
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
GAMEL( 2000, galaxi, 0, galaxi, galaxi, driver_device, 0, ROT0, "B.R.L.", "Galaxi (v2.0)", MACHINE_SUPPORTS_SAVE, layout_galaxi )
GAMEL( 2000, magjoker, 0, magjoker, magjoker, driver_device, 0, ROT0, "B.R.L.", "Magic Joker (v1.25.10.2000)", MACHINE_SUPPORTS_SAVE, layout_galaxi )
GAMEL( 2001, lastfour, 0, lastfour, magjoker, driver_device, 0, ROT0, "B.R.L.", "Last Four (09:12 16/01/2001)",MACHINE_SUPPORTS_SAVE, layout_galaxi )