mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
New working clones
------------------ Umi de Poker / Marine Paradise (Japan, newer) [Ioannis Bampulas]
This commit is contained in:
parent
5c2a4a5520
commit
9ffb107e66
@ -32175,6 +32175,7 @@ twinbskt // (c) 1995 Recreativos Pasqual
|
||||
@source:misc/umipoker.cpp
|
||||
saiyukip //
|
||||
umipoker //
|
||||
umipokera //
|
||||
|
||||
@source:misc/unkgolf.cpp
|
||||
unkgolf
|
||||
|
@ -1,5 +1,6 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Angelo Salese, Roberto Fresca
|
||||
// copyright-holders: Angelo Salese, Roberto Fresca
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Umi de Poker (c) 1997 World Station Co.,LTD
|
||||
@ -42,11 +43,12 @@ class umipoker_state : public driver_device
|
||||
public:
|
||||
umipoker_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_vram(*this, "vram.%u", 0U)
|
||||
, m_z80_wram(*this, "z80_wram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_vram(*this, "vram.%u", 0U)
|
||||
, m_z80_wram(*this, "z80_wram")
|
||||
, m_z80_rom(*this, "audiocpu")
|
||||
{
|
||||
}
|
||||
|
||||
@ -55,6 +57,20 @@ public:
|
||||
protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
void main_map(address_map &map);
|
||||
|
||||
private:
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_shared_ptr_array<uint16_t, 4> m_vram;
|
||||
required_shared_ptr<uint8_t> m_z80_wram;
|
||||
required_region_ptr<uint8_t> m_z80_rom;
|
||||
|
||||
tilemap_t *m_tilemap[4]{};
|
||||
uint16_t m_scrolly[4]{};
|
||||
|
||||
uint8_t z80_rom_readback_r(offs_t offset);
|
||||
uint8_t z80_shared_ram_r(offs_t offset);
|
||||
void z80_shared_ram_w(offs_t offset, uint8_t data);
|
||||
@ -67,16 +83,6 @@ protected:
|
||||
|
||||
void audio_io_map(address_map &map);
|
||||
void audio_map(address_map &map);
|
||||
void umipoker_map(address_map &map);
|
||||
|
||||
required_shared_ptr_array<uint16_t, 4> m_vram;
|
||||
required_shared_ptr<uint8_t> m_z80_wram;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
tilemap_t *m_tilemap[4]{};
|
||||
int m_scrolly[4]{};
|
||||
};
|
||||
|
||||
class saiyukip_state : public umipoker_state
|
||||
@ -97,7 +103,7 @@ private:
|
||||
void lamps_w(uint16_t data);
|
||||
void saiyu_counters_w(uint16_t data);
|
||||
|
||||
void saiyukip_map(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
|
||||
output_finder<6> m_lamps;
|
||||
};
|
||||
@ -105,21 +111,18 @@ private:
|
||||
template<uint8_t Which>
|
||||
TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info)
|
||||
{
|
||||
int tile = m_vram[Which][tile_index*2+0];
|
||||
int color = m_vram[Which][tile_index*2+1] & 0x3f;
|
||||
int const tile = m_vram[Which][tile_index * 2 + 0];
|
||||
int const color = m_vram[Which][tile_index * 2 + 1] & 0x3f;
|
||||
|
||||
tileinfo.set(0,
|
||||
tile,
|
||||
color,
|
||||
0);
|
||||
tileinfo.set(0, tile, color, 0);
|
||||
}
|
||||
|
||||
void umipoker_state::video_start()
|
||||
{
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
|
||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
|
||||
m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
|
||||
m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
|
||||
m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
|
||||
m_tilemap[0]->set_transparent_pen(0);
|
||||
m_tilemap[1]->set_transparent_pen(0);
|
||||
@ -139,19 +142,17 @@ uint32_t umipoker_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
|
||||
|
||||
bitmap.fill(m_palette->black_pen(), cliprect);
|
||||
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_tilemap[2]->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_tilemap[3]->draw(screen, bitmap, cliprect, 0,0);
|
||||
m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[2]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
m_tilemap[3]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t umipoker_state::z80_rom_readback_r(offs_t offset)
|
||||
{
|
||||
uint8_t *ROM = memregion("audiocpu")->base();
|
||||
|
||||
return ROM[offset];
|
||||
return m_z80_rom[offset];
|
||||
}
|
||||
|
||||
uint8_t umipoker_state::z80_shared_ram_r(offs_t offset)
|
||||
@ -172,9 +173,9 @@ void umipoker_state::irq_ack_w(uint16_t data)
|
||||
{
|
||||
m_maincpu->set_input_line(6, CLEAR_LINE);
|
||||
|
||||
/* shouldn't happen */
|
||||
if(data)
|
||||
popmessage("%04x IRQ ACK, contact MAMEdev",data);
|
||||
// shouldn't happen
|
||||
if (data)
|
||||
popmessage("%04x IRQ ACK, contact MAMEdev", data);
|
||||
}
|
||||
|
||||
template<uint8_t Which>
|
||||
@ -280,7 +281,7 @@ void saiyukip_state::saiyu_counters_w(uint16_t data)
|
||||
}
|
||||
|
||||
|
||||
void umipoker_state::umipoker_map(address_map &map)
|
||||
void umipoker_state::main_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_low();
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
@ -308,9 +309,9 @@ void umipoker_state::umipoker_map(address_map &map)
|
||||
map(0xe0002e, 0xe0002f).w(FUNC(umipoker_state::scrolly_w<3>));
|
||||
}
|
||||
|
||||
void saiyukip_state::saiyukip_map(address_map &map)
|
||||
void saiyukip_state::main_map(address_map &map)
|
||||
{
|
||||
umipoker_map(map);
|
||||
umipoker_state::main_map(map);
|
||||
map(0xe0000c, 0xe0000d).w(FUNC(saiyukip_state::lamps_w));
|
||||
map(0xe00010, 0xe00011).w(FUNC(saiyukip_state::saiyu_counters_w));
|
||||
}
|
||||
@ -460,7 +461,7 @@ static INPUT_PORTS_START( umipoker )
|
||||
PORT_DIPSETTING( 0x0030, "30000" )
|
||||
PORT_DIPSETTING( 0x0038, "50000" )
|
||||
PORT_DIPSETTING( 0x0000, "999999" )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, "Out Coin Counter" ) PORT_DIPLOCATION("DSW3:!7") /* Conditional to 'Hopper Sub-Board' (DSW4-3) */
|
||||
PORT_DIPNAME( 0x0040, 0x0040, "Out Coin Counter" ) PORT_DIPLOCATION("DSW3:!7") // Conditional to 'Hopper Sub-Board' (DSW4-3)
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, "Credit Cut" ) PORT_DIPLOCATION("DSW3:!8")
|
||||
@ -472,7 +473,7 @@ static INPUT_PORTS_START( umipoker )
|
||||
PORT_DIPSETTING( 0x0100, "B Type" )
|
||||
PORT_DIPSETTING( 0x0200, "C Type" )
|
||||
PORT_DIPSETTING( 0x0300, "D Type" )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, "Hopper Sub-Board" ) PORT_DIPLOCATION("DSW4:!3") /* When off, allow set the 'Out Coin Counter' (DSW3-7) */
|
||||
PORT_DIPNAME( 0x0400, 0x0400, "Hopper Sub-Board" ) PORT_DIPLOCATION("DSW4:!3") // When off, allow set the 'Out Coin Counter' (DSW3-7)
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0400, "Use" )
|
||||
PORT_DIPNAME( 0x0800, 0x0000, "Title Type" ) PORT_DIPLOCATION("DSW4:!4")
|
||||
@ -486,7 +487,7 @@ static INPUT_PORTS_START( umipoker )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, "Fever Initialize" ) PORT_DIPLOCATION("DSW4:!7")
|
||||
PORT_DIPSETTING( 0x0000, "A Type" )
|
||||
PORT_DIPSETTING( 0x4000, "B Type" )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:!8") /* Unmapped?... */
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:!8") // Unmapped?...
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
@ -601,10 +602,10 @@ static INPUT_PORTS_START( saiyukip )
|
||||
PORT_DIPNAME( 0x1000, 0x1000, "Hopper" ) PORT_DIPLOCATION("DSW4:!5")
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, "Medal Sub-Board" ) PORT_DIPLOCATION("DSW4:!6") /* When off, allow 'Out Counter' to be set */
|
||||
PORT_DIPNAME( 0x2000, 0x2000, "Medal Sub-Board" ) PORT_DIPLOCATION("DSW4:!6") // When off, allow 'Out Counter' to be set
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, "Out Counter" ) PORT_DIPLOCATION("DSW4:!7") /* Conditional to 'Medal Sub-Board' */
|
||||
PORT_DIPNAME( 0x4000, 0x4000, "Out Counter" ) PORT_DIPLOCATION("DSW4:!7") // Conditional to 'Medal Sub-Board'
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, "Credit Over Cut" ) PORT_DIPLOCATION("DSW4:!8")
|
||||
@ -613,19 +614,8 @@ static INPUT_PORTS_START( saiyukip )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const gfx_layout layout_8x8x4 =
|
||||
{
|
||||
8,8,
|
||||
RGN_FRAC(1,4),
|
||||
4,
|
||||
{ RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) },
|
||||
{ STEP8(0,1) },
|
||||
{ STEP8(0,8) },
|
||||
8*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_umipoker )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0, 0x40)
|
||||
GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_planar, 0, 0x40)
|
||||
GFXDECODE_END
|
||||
|
||||
void saiyukip_state::machine_start()
|
||||
@ -638,9 +628,9 @@ void saiyukip_state::machine_start()
|
||||
// TODO: Verify clocks (XTALs are 14.3181 and 2.000MHz)
|
||||
void umipoker_state::umipoker(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
// basic machine hardware
|
||||
M68000(config, m_maincpu, XTAL(14'318'181)); // TMP68HC000-16
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &umipoker_state::umipoker_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &umipoker_state::main_map);
|
||||
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", XTAL(14'318'181) / 4)); // 3.579545MHz
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &umipoker_state::audio_map);
|
||||
@ -648,7 +638,7 @@ void umipoker_state::umipoker(machine_config &config)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
@ -661,7 +651,7 @@ void umipoker_state::umipoker(machine_config &config)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_umipoker);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x400);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
ym3812_device &ym(YM3812(config, "ym", XTAL(14'318'181) / 4)); // 3.579545MHz
|
||||
@ -675,7 +665,7 @@ void umipoker_state::umipoker(machine_config &config)
|
||||
void saiyukip_state::saiyukip(machine_config &config)
|
||||
{
|
||||
umipoker(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &saiyukip_state::saiyukip_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &saiyukip_state::main_map);
|
||||
}
|
||||
|
||||
|
||||
@ -685,7 +675,30 @@ void saiyukip_state::saiyukip(machine_config &config)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
ROM_START( umipoker )
|
||||
ROM_START( umipoker ) // W-ONE 1995-08 PCB
|
||||
ROM_REGION( 0x40000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "p0.u61", 0x000000, 0x020000, CRC(3a0c4a8b) SHA1(009cbbd4df68e31dc683a8cd3425e5f8b986fa92) )
|
||||
ROM_LOAD16_BYTE( "p1.u60", 0x000001, 0x020000, CRC(44f475cb) SHA1(0c5044331dbcc617d200d052b4597dd4551fc95c) )
|
||||
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "sz.u8", 0x000000, 0x010000, CRC(d874ba1a) SHA1(13c06f3b67694d5d5194023c4f7b75aea8b57129) ) // second half 1-filled
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "sg3.u39", 0x000000, 0x020000, CRC(ebd5f96d) SHA1(968c107ee17f1e92ffc2835e13803347881862f1) )
|
||||
ROM_LOAD( "sg2.u40", 0x020000, 0x020000, CRC(eb31649b) SHA1(c0741d85537827e2396e81a1aa3005871dffad78) )
|
||||
ROM_LOAD( "sg1.u41", 0x040000, 0x020000, CRC(7fcbfb17) SHA1(be2f308a8e8f0941c54125950702ddfbd8538733) )
|
||||
ROM_LOAD( "sg0.u42", 0x060000, 0x020000, CRC(876f1f4f) SHA1(eca4c397be57812f2c34791736fee7c43925d927) )
|
||||
|
||||
ROM_REGION( 0x40000, "oki", 0 )
|
||||
ROM_LOAD( "sm.u17", 0x000000, 0x040000, CRC(99503aed) SHA1(011404fad01b3ced708a94143908be3e1d0194d3) ) // first half 1-filled
|
||||
ROM_CONTINUE( 0x000000, 0x040000 )
|
||||
|
||||
ROM_REGION( 0x400, "plds", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "gal16v8b.u11", 0x000, 0x117, NO_DUMP )
|
||||
ROM_LOAD( "gal16v8b.u24", 0x200, 0x117, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
ROM_START( umipokera )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "sp0.u61", 0x000000, 0x020000, CRC(866eaa02) SHA1(445afdfe010aad1102219a0dbd3a363a22294b4c) )
|
||||
ROM_LOAD16_BYTE( "sp1.u60", 0x000001, 0x020000, CRC(8db08696) SHA1(2854d511a8fd30b023e2a2a00b25413f88205d82) )
|
||||
@ -694,10 +707,10 @@ ROM_START( umipoker )
|
||||
ROM_LOAD( "sz.u8", 0x000000, 0x010000, CRC(d874ba1a) SHA1(13c06f3b67694d5d5194023c4f7b75aea8b57129) ) // second half 1-filled
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "sg0.u42", 0x000000, 0x020000, CRC(876f1f4f) SHA1(eca4c397be57812f2c34791736fee7c43925d927) )
|
||||
ROM_LOAD( "sg1.u41", 0x020000, 0x020000, CRC(7fcbfb17) SHA1(be2f308a8e8f0941c54125950702ddfbd8538733) )
|
||||
ROM_LOAD( "sg2.u40", 0x040000, 0x020000, CRC(eb31649b) SHA1(c0741d85537827e2396e81a1aa3005871dffad78) )
|
||||
ROM_LOAD( "sg3.u39", 0x060000, 0x020000, CRC(ebd5f96d) SHA1(968c107ee17f1e92ffc2835e13803347881862f1) )
|
||||
ROM_LOAD( "sg3.u39", 0x000000, 0x020000, CRC(ebd5f96d) SHA1(968c107ee17f1e92ffc2835e13803347881862f1) )
|
||||
ROM_LOAD( "sg2.u40", 0x020000, 0x020000, CRC(eb31649b) SHA1(c0741d85537827e2396e81a1aa3005871dffad78) )
|
||||
ROM_LOAD( "sg1.u41", 0x040000, 0x020000, CRC(7fcbfb17) SHA1(be2f308a8e8f0941c54125950702ddfbd8538733) )
|
||||
ROM_LOAD( "sg0.u42", 0x060000, 0x020000, CRC(876f1f4f) SHA1(eca4c397be57812f2c34791736fee7c43925d927) )
|
||||
|
||||
ROM_REGION( 0x40000, "oki", 0 )
|
||||
ROM_LOAD( "sm.u17", 0x000000, 0x040000, CRC(99503aed) SHA1(011404fad01b3ced708a94143908be3e1d0194d3) ) // first half 1-filled
|
||||
@ -713,23 +726,24 @@ ROM_START( saiyukip )
|
||||
ROM_LOAD( "slz.u8", 0x000000, 0x010000, CRC(4f32ba1c) SHA1(8f1f8c0995bcd05d19120dd3b64b135908caf759) ) // second half 1-filled
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_LOAD( "slg0.u42", 0x000000, 0x020000, CRC(49ba7ffd) SHA1(3bbb7656eafbd8c91c9054fca056c8fc3002ed13) )
|
||||
ROM_LOAD( "slg1.u41", 0x020000, 0x020000, CRC(59b5f399) SHA1(2b999cebcc53b3b8fd38e3034a12434d82b6fad3) )
|
||||
ROM_LOAD( "slg2.u40", 0x040000, 0x020000, CRC(fe6cd717) SHA1(65e59d88a30efd0cec642cda54e2bc38196f0231) )
|
||||
ROM_LOAD( "slg3.u39", 0x060000, 0x020000, CRC(e99b2906) SHA1(77884d2dae2e7f7cf27103aa8bbd0eaa39628993) )
|
||||
ROM_LOAD( "slg3.u39", 0x000000, 0x020000, CRC(e99b2906) SHA1(77884d2dae2e7f7cf27103aa8bbd0eaa39628993) )
|
||||
ROM_LOAD( "slg2.u40", 0x020000, 0x020000, CRC(fe6cd717) SHA1(65e59d88a30efd0cec642cda54e2bc38196f0231) )
|
||||
ROM_LOAD( "slg1.u41", 0x040000, 0x020000, CRC(59b5f399) SHA1(2b999cebcc53b3b8fd38e3034a12434d82b6fad3) )
|
||||
ROM_LOAD( "slg0.u42", 0x060000, 0x020000, CRC(49ba7ffd) SHA1(3bbb7656eafbd8c91c9054fca056c8fc3002ed13) )
|
||||
|
||||
ROM_REGION( 0x40000, "oki", 0 )
|
||||
ROM_LOAD( "slm.u17", 0x000000, 0x040000, CRC(b50eb70b) SHA1(342fcb307844f4d0a02a85b2c61e73b5e8bacd44) ) // first half 1-filled
|
||||
ROM_CONTINUE( 0x000000, 0x040000 )
|
||||
ROM_END
|
||||
|
||||
} // Anonymous namespace
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
/******************************************
|
||||
* Game Drivers *
|
||||
******************************************/
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT
|
||||
GAME( 1997, umipoker, 0, umipoker, umipoker, umipoker_state, empty_init, ROT0, "World Station Co.,LTD", "Umi de Poker / Marine Paradise (Japan)", MACHINE_SUPPORTS_SAVE ) // title screen is toggleable thru a dsw
|
||||
GAMEL( 1998, saiyukip, 0, saiyukip, saiyukip, saiyukip_state, empty_init, ROT0, "World Station Co.,LTD", "Slot Poker Saiyuki (Japan)", MACHINE_SUPPORTS_SAVE, layout_saiyukip )
|
||||
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT
|
||||
GAME( 1997, umipoker, 0, umipoker, umipoker, umipoker_state, empty_init, ROT0, "World Station Co.,LTD", "Umi de Poker / Marine Paradise (Japan, newer)", MACHINE_SUPPORTS_SAVE ) // title screen is toggleable thru a dsw
|
||||
GAME( 1997, umipokera, umipoker, umipoker, umipoker, umipoker_state, empty_init, ROT0, "World Station Co.,LTD", "Umi de Poker / Marine Paradise (Japan, older)", MACHINE_SUPPORTS_SAVE ) // title screen is toggleable thru a dsw
|
||||
GAMEL( 1998, saiyukip, 0, saiyukip, saiyukip, saiyukip_state, empty_init, ROT0, "World Station Co.,LTD", "Slot Poker Saiyuki (Japan)", MACHINE_SUPPORTS_SAVE, layout_saiyukip )
|
||||
|
@ -23,6 +23,10 @@ KB89C67 (YM2413 clone)
|
||||
3.579545 MHz XTAL (near KB89C67)
|
||||
K-665 sound chip (Oki M6295 clone)
|
||||
2x 8-DIP banks
|
||||
|
||||
|
||||
TODO:
|
||||
- everything. Currently stops with 'BK RAM ERROR'.
|
||||
*/
|
||||
|
||||
|
||||
@ -59,7 +63,8 @@ public:
|
||||
whtm68k_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode")
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_txtram(*this, "txtram")
|
||||
{ }
|
||||
|
||||
void unkwht(machine_config &config) ATTR_COLD;
|
||||
@ -70,7 +75,12 @@ protected:
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_shared_ptr<uint16_t> m_txtram;
|
||||
|
||||
tilemap_t *m_txt_tilemap = nullptr;
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_txt_tile_info);
|
||||
void txtram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void main_program_map(address_map &map) ATTR_COLD;
|
||||
@ -81,20 +91,35 @@ private:
|
||||
|
||||
void whtm68k_state::video_start()
|
||||
{
|
||||
m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(whtm68k_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
|
||||
}
|
||||
|
||||
// TODO: wrong, just to show something
|
||||
TILE_GET_INFO_MEMBER(whtm68k_state::get_txt_tile_info)
|
||||
{
|
||||
int const tile = m_txtram[tile_index] & 0xfff;
|
||||
tileinfo.set(0, tile, 0, 0);
|
||||
}
|
||||
|
||||
uint32_t whtm68k_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
bitmap.fill(rgb_t::black(), cliprect);
|
||||
|
||||
m_txt_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void whtm68k_state::txtram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_txtram[offset]);
|
||||
m_txt_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void whtm68k_state::main_program_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x03ffff).rom();
|
||||
map(0xd00000, 0xd03fff).ram();
|
||||
map(0xd00000, 0xd03fff).ram().w(FUNC(whtm68k_state::txtram_w)).share(m_txtram);
|
||||
map(0xd10000, 0xd13fff).ram();
|
||||
map(0xd20000, 0xd23fff).ram();
|
||||
map(0xe00000, 0xe03fff).ram();
|
||||
@ -111,7 +136,7 @@ void whtm68k_state::audio_io_map(address_map &map)
|
||||
map(0x8000, 0x803f).ram(); // ??
|
||||
map(0xa000, 0xa000).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||
// some kind of latch with the main CPU or inputs? Returning rand activates the sound chips.
|
||||
//map(0xb000, 0xb000).lr8(NAME([this] () -> uint8_t { return machine().rand(); }));
|
||||
map(0xb000, 0xb000).nopr();//lr8(NAME([this] () -> uint8_t { return machine().rand(); }));
|
||||
map(0xc000, 0xc001).w("ym", FUNC(ym2413_device::write));
|
||||
}
|
||||
|
||||
@ -191,7 +216,7 @@ void whtm68k_state::unkwht(machine_config &config)
|
||||
// basic machine hardware
|
||||
M68000(config, m_maincpu, 24_MHz_XTAL / 2);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &whtm68k_state::main_program_map);
|
||||
//m_maincpu->set_vblank_int("screen", FUNC(whtm68k_state::irq2_line_hold));
|
||||
m_maincpu->set_vblank_int("screen", FUNC(whtm68k_state::irq2_line_hold));
|
||||
|
||||
i80c32_device &audiocpu(I80C32(config, "audiocpu", 12_MHz_XTAL));
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &whtm68k_state::audio_program_map);
|
||||
@ -241,7 +266,7 @@ ROM_START( unkwht )
|
||||
|
||||
ROM_REGION( 0x60000, "tiles", 0 )
|
||||
ROM_LOAD( "chs_v1.u50", 0x00000, 0x20000, CRC(dde0d62b) SHA1(bbf0d7dadbeec9036c20a4dfd64a8276c4ff1664) )
|
||||
ROM_LOAD( "chs_v2.u54", 0x20000, 0x20000, CRC(347db59c) SHA1(532d5621ea45fe569e37612f99fed46e6b6fe377) ) // the u53 socket is between u50 and u53 on PCB
|
||||
ROM_LOAD( "chs_v2.u54", 0x20000, 0x20000, CRC(347db59c) SHA1(532d5621ea45fe569e37612f99fed46e6b6fe377) ) // the u54 socket is between u50 and u53 on PCB
|
||||
ROM_LOAD( "chs_v3.u53", 0x40000, 0x20000, CRC(36353ce4) SHA1(427c9b946398a38afae850c199438808eee96d80) )
|
||||
|
||||
ROM_REGION( 0x40000, "oki", 0 )
|
||||
|
@ -2,9 +2,10 @@
|
||||
// copyright-holders:Nicola Salmoria, Lee Taylor
|
||||
/***************************************************************************
|
||||
|
||||
Universal board numbers (found on the schematics)
|
||||
Universal board numbers (found on the schematics / pics)
|
||||
|
||||
Cosmic Alien - 7910
|
||||
No Man's Land - 8003
|
||||
Magical Spot - 8013
|
||||
Magical Spot II - 8013
|
||||
Devil Zone - 8022
|
||||
|
Loading…
Reference in New Issue
Block a user