mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
new WORKING
Last Four (09:12 16/01/2001 [f205v]
This commit is contained in:
parent
ea933b5a38
commit
5b7fbe265f
@ -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
|
||||
|
@ -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 )
|
||||
|
Loading…
Reference in New Issue
Block a user