summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-02-07 18:21:07 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2019-02-07 18:21:07 +0100
commitc8d0db0c83d4b72e86f6255b95ff45ccc475d85d (patch)
treeaa21170c2884133d093b36c5fe04ef3cc6d0efbe
parentd3403e2dce28f9c687fab43088cd20ee8e1da39d (diff)
new working clones
----------------------------- The Glob (Pacman hardware, Magic Electronics Inc. license) [jordigahan, ClawGrip] Red Clash (Suntronics) [coolmod] new not working machine ------------------------------------- Champion 85 [PinMAME]
-rw-r--r--src/mame/drivers/barni.cpp53
-rw-r--r--src/mame/drivers/pacman.cpp258
-rw-r--r--src/mame/drivers/redclash.cpp132
-rw-r--r--src/mame/includes/redclash.h20
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/video/redclash.cpp59
6 files changed, 285 insertions, 240 deletions
diff --git a/src/mame/drivers/barni.cpp b/src/mame/drivers/barni.cpp
index 98e94382618..ff225775bd8 100644
--- a/src/mame/drivers/barni.cpp
+++ b/src/mame/drivers/barni.cpp
@@ -1,18 +1,18 @@
// license:BSD-3-Clause
// copyright-holders:Ivan Vangelista
// PINBALL
-// Skeleton driver for Barni pinballs. At this time only Red Baron is dumped.
+// Skeleton driver for Barni pinballs.
// Known pinballs to be dumped: Shield (1985)
// Hardware listing and ROM definitions from PinMAME.
/*
- Hardware:
-CPU: 2 x 6809E, optional MC6802 which may replace second 6809E
+ Hardware:
+ CPU: 2 x 6809E, optional MC6802 which may replace second 6809E
INT: IRQ on CPU 0, FIRQ on CPU 1
-IO: 2x PIA 6821
- 1x VIA 6522
-DISPLAY: 5x6 digit 7 or 16 segment display
-SOUND: basically the same as Bally's Squalk & Talk -61 board but missing AY8912 synth chip
+ IO: 2x PIA 6821
+ 1x VIA 6522
+ DISPLAY: 5x6 digit 7 or 16 segment display
+ SOUND: basically the same as Bally's Squalk & Talk -61 board but missing AY8912 synth chip
*/
#include "emu.h"
@@ -62,19 +62,20 @@ void barni_state::audiocpu_map(address_map &map)
static INPUT_PORTS_START( barni )
INPUT_PORTS_END
-MACHINE_CONFIG_START(barni_state::barni)
+void barni_state::barni(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(4'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(maincpu_map)
+ MC6809E(config, m_maincpu, XTAL(4'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &barni_state::maincpu_map);
- MCFG_DEVICE_ADD("subcpu", MC6809E, XTAL(4'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(subcpu_map)
+ mc6809e_device &subcpu(MC6809E(config, "subcpu", XTAL(4'000'000) / 4));
+ subcpu.set_addrmap(AS_PROGRAM, &barni_state::subcpu_map);
- MCFG_DEVICE_ADD("audiocpu", M6802, 4000000) // uses own XTAL, but what is the value?
- MCFG_DEVICE_PROGRAM_MAP(audiocpu_map)
+ m6802_cpu_device &audiocpu(M6802(config, "audiocpu", 4000000)); // uses own XTAL, but what is the value?
+ audiocpu.set_addrmap(AS_PROGRAM, &barni_state::audiocpu_map);
/* video hardware */
- //MCFG_DEFAULT_LAYOUT()
+ //config.set_default_layout();
//6522via
//6821pia
@@ -83,7 +84,26 @@ MACHINE_CONFIG_START(barni_state::barni)
//tmms5220
//dac
genpin_audio(config);
-MACHINE_CONFIG_END
+}
+
+
+/*--------------------------------
+/ Champion 85
+/-------------------------------*/
+ROM_START(champion)
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_LOAD("che.bin", 0xe000, 0x2000, CRC(c5dc9228) SHA1(5306980a9c73118cfb843dbce0d56f516d054220))
+ ROM_LOAD("chc.bin", 0xc000, 0x2000, CRC(6ab0f232) SHA1(0638d33f86c62ee93dff924a16a5b9309392d9e8))
+
+ ROM_REGION(0x10000, "subcpu", 0)
+ ROM_LOAD("chan.bin", 0xe000, 0x2000, CRC(3f148587) SHA1(e44dc9cce15830f522dc781aaa13c659a43371f3))
+
+ ROM_REGION(0x10000, "audiocpu", 0)
+ ROM_LOAD("voz1.bin", 0xf000, 0x1000, CRC(48665778) SHA1(c295dfe7f4a98756f508391eb326f37a5aac37ff))
+ ROM_LOAD("voz2.bin", 0xe000, 0x1000, CRC(30e7da5e) SHA1(3054cf9b09e0f89c242e1ad35bb31d9bd77248e4))
+ ROM_LOAD("voz3.bin", 0xd000, 0x1000, CRC(3cd8058e) SHA1(fa4fd0cf4124263d4021c5a86033af9e5aa66eed))
+ ROM_LOAD("voz4.bin", 0xc000, 0x1000, CRC(0d00d8cc) SHA1(10f64d2fc3fc3e276bbd0e108815a3b395dcf0c9))
+ROM_END
/*--------------------------------
@@ -105,4 +125,5 @@ ROM_START(redbarnp)
ROM_END
+GAME( 1985, champion, 0, barni, barni, barni_state, empty_init, ROT0, "Barni", "Champion 85", MACHINE_IS_SKELETON_MECHANICAL )
GAME( 1985, redbarnp, 0, barni, barni, barni_state, empty_init, ROT0, "Barni", "Red Baron (Pinball)", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp
index 2cacbc19b70..ed05527b38f 100644
--- a/src/mame/drivers/pacman.cpp
+++ b/src/mame/drivers/pacman.cpp
@@ -3564,31 +3564,33 @@ void pacman_state::pacman(machine_config &config, bool latch)
m_namco_sound->add_route(ALL_OUTPUTS, "mono", 1.0);
}
-MACHINE_CONFIG_START(pacman_state::maketrax)
+void pacman_state::maketrax(machine_config &config)
+{
pacman(config);
MCFG_MACHINE_RESET_OVERRIDE(pacman_state,maketrax)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::korosuke)
+void pacman_state::korosuke(machine_config &config)
+{
maketrax(config);
// 8K on original boards
m_mainlatch->q_out_cb<7>().set_nop(); // outputs 4-7 go to protection chip at 6P
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::pengojpm)
+void pacman_state::pengojpm(machine_config &config)
+{
pacman(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(pengojpm_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::pengojpm_map);
+}
-MACHINE_CONFIG_START(pacman_state::birdiy)
+void pacman_state::birdiy(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(birdiy_map)
- MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_IO)
+ Z80(config.replace(), m_maincpu, MASTER_CLOCK/6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::birdiy_map);
// 74LS259 at 8K or 4099 at 7K
m_mainlatch->q_out_cb<0>().set_nop();
@@ -3597,58 +3599,56 @@ MACHINE_CONFIG_START(pacman_state::birdiy)
m_mainlatch->q_out_cb<7>().set(FUNC(pacman_state::coin_counter_w));
MCFG_VIDEO_START_OVERRIDE(pacman_state,birdiy)
-MACHINE_CONFIG_END
-
-
+}
-MACHINE_CONFIG_START(pacman_state::piranha)
+void pacman_state::piranha(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(piranha_portmap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::piranha_portmap);
+}
-MACHINE_CONFIG_START(pacman_state::nmouse)
+void pacman_state::nmouse(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(nmouse_portmap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::nmouse_portmap);
+}
-MACHINE_CONFIG_START(pacman_state::mspacman)
+void pacman_state::mspacman(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mspacman_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::mspacman_map);
m_mainlatch->q_out_cb<6>().set(FUNC(pacman_state::coin_lockout_global_w));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::woodpek)
+void pacman_state::woodpek(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(woodpek_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::woodpek_map);
+}
-MACHINE_CONFIG_START(pacman_state::numcrash)
+void pacman_state::numcrash(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(numcrash_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::numcrash_map);
m_mainlatch->q_out_cb<3>().set_nop(); // ???
m_mainlatch->q_out_cb<7>().set_nop(); // ???
-MACHINE_CONFIG_END
+}
void pacman_state::alibaba(machine_config &config)
{
@@ -3669,107 +3669,104 @@ void pacman_state::alibaba(machine_config &config)
latch2.q_out_cb<2>().set(FUNC(pacman_state::irq_mask_w));
}
-MACHINE_CONFIG_START(pacman_state::dremshpr)
+void pacman_state::dremshpr(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dremshpr_map)
- MCFG_DEVICE_IO_MAP(dremshpr_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::dremshpr_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::dremshpr_portmap);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pacman_state, vblank_nmi))
+ subdevice<screen_device>("screen")->screen_vblank().set(FUNC(pacman_state::vblank_nmi));
/* sound hardware */
config.device_remove("namco");
AY8910(config, "ay8910", 14318000/8).add_route(ALL_OUTPUTS, "mono", 0.50);
m_mainlatch->q_out_cb<1>().set_nop();
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::theglobp)
+void pacman_state::theglobp(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(epos_map)
- MCFG_DEVICE_IO_MAP(epos_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::epos_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::epos_portmap);
MCFG_MACHINE_START_OVERRIDE(pacman_state,theglobp)
MCFG_MACHINE_RESET_OVERRIDE(pacman_state,theglobp)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::acitya)
+void pacman_state::acitya(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(epos_map)
- MCFG_DEVICE_IO_MAP(epos_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::epos_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::epos_portmap);
MCFG_MACHINE_START_OVERRIDE(pacman_state,acitya)
MCFG_MACHINE_RESET_OVERRIDE(pacman_state,acitya)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::eeekk)
+void pacman_state::eeekk(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(epos_map)
- MCFG_DEVICE_IO_MAP(epos_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::epos_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::epos_portmap);
MCFG_MACHINE_START_OVERRIDE(pacman_state,eeekk)
MCFG_MACHINE_RESET_OVERRIDE(pacman_state,eeekk)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::vanvan)
+void pacman_state::vanvan(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dremshpr_map)
- MCFG_DEVICE_IO_MAP(vanvan_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::dremshpr_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::vanvan_portmap);
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pacman_state, vblank_nmi))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(2*8, 34*8-1, 0*8, 28*8-1);
+ screen.screen_vblank().set(FUNC(pacman_state::vblank_nmi));
/* sound hardware */
config.device_remove("namco");
- MCFG_DEVICE_ADD("sn1", SN76496, 1789750)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
- MCFG_DEVICE_ADD("sn2", SN76496, 1789750)
+ SN76496(config, "sn1", 1789750).add_route(ALL_OUTPUTS, "mono", 0.75);
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
+ SN76496(config, "sn2", 1789750).add_route(ALL_OUTPUTS, "mono", 0.75);
m_mainlatch->q_out_cb<1>().set_nop();
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::bigbucks)
+void pacman_state::bigbucks(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(bigbucks_map)
- MCFG_DEVICE_IO_MAP(bigbucks_portmap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(pacman_state, periodic_irq, 20*60)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::bigbucks_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::bigbucks_portmap);
+ m_maincpu->set_periodic_int(FUNC(pacman_state::periodic_irq), attotime::from_hz(20*60));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
+ subdevice<screen_device>("screen")->set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
m_mainlatch->q_out_cb<7>().set_nop(); /*?*/
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::s2650games)
+void pacman_state::s2650games(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
@@ -3789,80 +3786,79 @@ MACHINE_CONFIG_START(pacman_state::s2650games)
m_gfxdecode->set_info(gfx_s2650games);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_s2650games)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pacman_state, s2650_interrupt))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pacman_state::screen_update_s2650games));
+ screen.screen_vblank().set(FUNC(pacman_state::s2650_interrupt));
MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games)
/* sound hardware */
config.device_remove("namco");
- MCFG_DEVICE_ADD("sn1", SN76496, MASTER_CLOCK/6) /* 1H */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
-MACHINE_CONFIG_END
+ SN76496(config, "sn1", MASTER_CLOCK/6).add_route(ALL_OUTPUTS, "mono", 0.75); /* 1H */
+}
-MACHINE_CONFIG_START(pacman_state::drivfrcp)
+void pacman_state::drivfrcp(machine_config &config)
+{
s2650games(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(drivfrcp_portmap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::drivfrcp_portmap);
+}
-MACHINE_CONFIG_START(pacman_state::_8bpm )
+void pacman_state::_8bpm(machine_config &config)
+{
s2650games(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(_8bpm_portmap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::_8bpm_portmap);
+}
-MACHINE_CONFIG_START(pacman_state::porky)
+void pacman_state::porky(machine_config &config)
+{
s2650games(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(porky_portmap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::porky_portmap);
+}
-MACHINE_CONFIG_START(pacman_state::rocktrv2)
+void pacman_state::rocktrv2(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(rocktrv2_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::rocktrv2_map);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pacman_state, rocktrv2_vblank_irq))
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1);
+ screen.screen_vblank().set(FUNC(pacman_state::rocktrv2_vblank_irq));
+}
-MACHINE_CONFIG_START(pacman_state::mschamp)
+void pacman_state::mschamp(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mschamp_map)
- MCFG_DEVICE_IO_MAP(mschamp_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::mschamp_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::mschamp_portmap);
MCFG_MACHINE_RESET_OVERRIDE(pacman_state,mschamp)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pacman_state::superabc)
+void pacman_state::superabc(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(superabc_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::superabc_map);
NVRAM(config, "28c16.u17", nvram_device::DEFAULT_ALL_0);
@@ -3870,7 +3866,7 @@ MACHINE_CONFIG_START(pacman_state::superabc)
/* video hardware */
m_gfxdecode->set_info(gfx_superabc);
-MACHINE_CONFIG_END
+}
void pacman_state::crush4(machine_config &config)
@@ -3881,17 +3877,17 @@ void pacman_state::crush4(machine_config &config)
m_gfxdecode->set_info(gfx_crush4);
}
-MACHINE_CONFIG_START(pacman_state::crushs)
+void pacman_state::crushs(machine_config &config)
+{
pacman(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(crushs_map)
- MCFG_DEVICE_IO_MAP(crushs_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pacman_state::crushs_map);
+ m_maincpu->set_addrmap(AS_IO, &pacman_state::crushs_portmap);
/* sound hardware */
AY8912(config, "ay8912", 1789750).add_route(ALL_OUTPUTS, "mono", 0.75);
-MACHINE_CONFIG_END
+}
@@ -6338,6 +6334,27 @@ ROM_START( sprglbpg )
ROM_END
+// 2 PCB set (G-GA-2 and G-GB-2). It was modified to use one 27128 instead of eight 2716 for the program ROMs.
+ROM_START( theglobme )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "globo_1-8_a.6e", 0x0000, 0x4000, CRC(57252220) SHA1(ee02a1f8817cb5c55d67653391f4509bb5a30403) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "globo-10_b.5e", 0x0000, 0x0800, CRC(36408c76) SHA1(f5bb18e38de57adc2aed6211048d9f0ee0e58df7) )
+ ROM_LOAD( "globo-12_b.5h", 0x0800, 0x0800, CRC(b8ba069c) SHA1(f8d8e40afd8214a6d951af8de2761703b0651f79) )
+ ROM_LOAD( "globo-11_b.5f", 0x1000, 0x0800, CRC(890b8ebf) SHA1(1bf64f4ca1fca8efd35ac3d414d2bb755c5e44cc) )
+ ROM_LOAD( "globo-13_b.5j", 0x1800, 0x0800, CRC(7c4456a4) SHA1(74f55ae921cdf8f1f7a866d75a63244187426f17) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "n82s123an_a.7f", 0x0000, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) )
+ ROM_LOAD( "n82s129n_b.4a", 0x0020, 0x0100, CRC(28faa769) SHA1(7588889f3102d4e0ca7918f536556209b2490ea1) )
+
+ ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs, Harris 63S141J */
+ ROM_LOAD( "63s141_b.1m", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
+ ROM_LOAD( "63s141_b.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+
ROM_START( beastfp )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "bf-u2.bin", 0x0000, 0x2000, CRC(3afc517b) SHA1(5b74bca9e9cd4d8bcf94a340f8f0e53fe1dcfc1d) )
@@ -7637,6 +7654,7 @@ GAME( 1983, acitya, bwcasino, acitya, acitya, pacman_state, empty_init,
GAME( 1983, theglobp, suprglob, theglobp, theglobp, pacman_state, empty_init, ROT90, "Epos Corporation", "The Glob (Pac-Man hardware)", MACHINE_SUPPORTS_SAVE )
GAME( 1983, sprglobp, suprglob, theglobp, theglobp, pacman_state, empty_init, ROT90, "Epos Corporation", "Super Glob (Pac-Man hardware)", MACHINE_SUPPORTS_SAVE )
GAME( 1984, sprglbpg, suprglob, pacman, theglobp, pacman_state, empty_init, ROT90, "bootleg (Software Labor)", "Super Glob (Pac-Man hardware) (German bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, theglobme,suprglob, woodpek, theglobp, pacman_state, empty_init, ROT90, "Magic Electronics Inc.", "The Glob (Pacman hardware, Magic Electronics Inc. license)", MACHINE_SUPPORTS_SAVE )
GAME( 1984, beastfp, suprglob, theglobp, theglobp, pacman_state, empty_init, ROT90, "Epos Corporation", "Beastie Feastie (conversion kit)", MACHINE_SUPPORTS_SAVE )
GAME( 1984, eeekk, 0, eeekk, eeekk, pacman_state, empty_init, ROT90, "Epos Corporation", "Eeekk!", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/redclash.cpp b/src/mame/drivers/redclash.cpp
index 6ce9e4ee47a..0442a7ef404 100644
--- a/src/mame/drivers/redclash.cpp
+++ b/src/mame/drivers/redclash.cpp
@@ -36,7 +36,7 @@ WRITE8_MEMBER( redclash_state::irqack_w )
m_maincpu->set_input_line(0, CLEAR_LINE);
}
-template <unsigned B> WRITE8_MEMBER(redclash_state::redclash_star_w)
+template <unsigned B> WRITE8_MEMBER(redclash_state::star_w)
{
m_stars->set_speed(BIT(data, 0) << B, 1U << B);
}
@@ -45,41 +45,41 @@ void redclash_state::zerohour_map(address_map &map)
{
map(0x0000, 0x2fff).rom();
map(0x3000, 0x37ff).ram();
- map(0x3800, 0x3bff).ram().share("spriteram");
- map(0x4000, 0x43ff).ram().w(FUNC(redclash_state::redclash_videoram_w)).share("videoram");
+ map(0x3800, 0x3bff).ram().share(m_spriteram);
+ map(0x4000, 0x43ff).ram().w(FUNC(redclash_state::videoram_w)).share(m_videoram);
map(0x4800, 0x4800).portr("IN0"); /* IN0 */
map(0x4801, 0x4801).portr("IN1"); /* IN1 */
map(0x4802, 0x4802).portr("DSW1"); /* DSW0 */
map(0x4803, 0x4803).portr("DSW2"); /* DSW1 */
map(0x5000, 0x5007).nopw(); /* to sound board */
- map(0x5800, 0x5800).w(FUNC(redclash_state::redclash_star_w<0>));
+ map(0x5800, 0x5800).w(FUNC(redclash_state::star_w<0>));
map(0x5801, 0x5804).nopw(); /* to sound board */
- map(0x5805, 0x5805).w(FUNC(redclash_state::redclash_star_w<1>));
- map(0x5806, 0x5806).w(FUNC(redclash_state::redclash_star_w<2>));
- map(0x5807, 0x5807).w(FUNC(redclash_state::redclash_flipscreen_w));
- map(0x7000, 0x7000).w(FUNC(redclash_state::redclash_star_reset_w));
+ map(0x5805, 0x5805).w(FUNC(redclash_state::star_w<1>));
+ map(0x5806, 0x5806).w(FUNC(redclash_state::star_w<2>));
+ map(0x5807, 0x5807).w(FUNC(redclash_state::flipscreen_w));
+ map(0x7000, 0x7000).w(FUNC(redclash_state::star_reset_w));
map(0x7800, 0x7800).w(FUNC(redclash_state::irqack_w));
}
void redclash_state::redclash_map(address_map &map)
{
map(0x0000, 0x2fff).rom();
-// AM_RANGE(0x3000, 0x3000) AM_WRITENOP
-// AM_RANGE(0x3800, 0x3800) AM_WRITENOP
- map(0x4000, 0x43ff).ram().w(FUNC(redclash_state::redclash_videoram_w)).share("videoram");
+// map(0x3000, 0x3000).set_nopw();
+// map(0x3800, 0x3800).set_nopw();
+ map(0x4000, 0x43ff).ram().w(FUNC(redclash_state::videoram_w)).share(m_videoram);
map(0x4800, 0x4800).portr("IN0"); /* IN0 */
map(0x4801, 0x4801).portr("IN1"); /* IN1 */
map(0x4802, 0x4802).portr("DSW1"); /* DSW0 */
map(0x4803, 0x4803).portr("DSW2"); /* DSW1 */
map(0x5000, 0x5007).nopw(); /* to sound board */
- map(0x5800, 0x5800).w(FUNC(redclash_state::redclash_star_w<0>));
- map(0x5801, 0x5801).w(FUNC(redclash_state::redclash_gfxbank_w));
- map(0x5805, 0x5805).w(FUNC(redclash_state::redclash_star_w<1>));
- map(0x5806, 0x5806).w(FUNC(redclash_state::redclash_star_w<2>));
- map(0x5807, 0x5807).w(FUNC(redclash_state::redclash_flipscreen_w));
+ map(0x5800, 0x5800).w(FUNC(redclash_state::star_w<0>));
+ map(0x5801, 0x5801).w(FUNC(redclash_state::gfxbank_w));
+ map(0x5805, 0x5805).w(FUNC(redclash_state::star_w<1>));
+ map(0x5806, 0x5806).w(FUNC(redclash_state::star_w<2>));
+ map(0x5807, 0x5807).w(FUNC(redclash_state::flipscreen_w));
map(0x6000, 0x67ff).ram();
- map(0x6800, 0x6bff).ram().share("spriteram");
- map(0x7000, 0x7000).w(FUNC(redclash_state::redclash_star_reset_w));
+ map(0x6800, 0x6bff).ram().share(m_spriteram);
+ map(0x7000, 0x7000).w(FUNC(redclash_state::star_reset_w));
map(0x7800, 0x7800).w(FUNC(redclash_state::irqack_w));
}
@@ -119,7 +119,7 @@ static INPUT_PORTS_START( redclash )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
/* Note that there are TWO VBlank inputs, one is active low, the other active */
- /* high. There are probably other differencies in the hardware, but emulating */
+ /* high. There are probably other differences in the hardware, but emulating */
/* them this way is enough to get the game running. */
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
@@ -213,7 +213,7 @@ static INPUT_PORTS_START( zerohour )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
/* Note that there are TWO VBlank inputs, one is active low, the other active */
- /* high. There are probably other differencies in the hardware, but emulating */
+ /* high. There are probably other differences in the hardware, but emulating */
/* them this way is enough to get the game running. */
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
@@ -345,54 +345,37 @@ void redclash_state::machine_reset()
m_gfxbank = 0;
}
-MACHINE_CONFIG_START(redclash_state::zerohour)
-
+void redclash_state::zerohour(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(zerohour_map)
+ Z80(config, m_maincpu, 4000000); /* 4 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &redclash_state::zerohour_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(redclash_state, screen_update_redclash)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, redclash_state, screen_vblank_redclash))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(1*8, 31*8-1, 4*8, 28*8-1);
+ screen.set_screen_update(FUNC(redclash_state::screen_update));
+ screen.screen_vblank().set(FUNC(redclash_state::screen_vblank));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_redclash);
- PALETTE(config, m_palette, FUNC(redclash_state::redclash_palette), 4*8 + 4*16 + 32, 32 + 32);
+ PALETTE(config, m_palette, FUNC(redclash_state::palette), 4*8 + 4*16 + 32, 32 + 32);
ZEROHOUR_STARS(config, m_stars, 0);
/* sound hardware */
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(redclash_state::redclash)
-
- /* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(redclash_map)
-
- /* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(redclash_state, screen_update_redclash)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, redclash_state, screen_vblank_redclash))
- MCFG_SCREEN_PALETTE(m_palette)
+}
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_redclash);
- PALETTE(config, m_palette, FUNC(redclash_state::redclash_palette), 4*8 + 4*16 + 32, 32 + 32);
- ZEROHOUR_STARS(config, m_stars, 0);
+void redclash_state::redclash(machine_config &config)
+{
+ zerohour(config);
- /* sound hardware */
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &redclash_state::redclash_map);
+}
@@ -560,6 +543,30 @@ ROM_START( redclashk )
ROM_LOAD( "3.11e", 0x0040, 0x0020, CRC(27fa3a50) SHA1(7cf59b7a37c156640d6ea91554d1c4276c1780e0) ) /* 6331.6w */
ROM_END
+// 2 PCB set (K-00A and K-00B)
+ROM_START( redclashs )
+ ROM_REGION(0x10000, "maincpu", 0 )
+ ROM_LOAD( "1.11c", 0x0000, 0x1000, CRC(62275f85) SHA1(8f5d7113a012cc29e3729d54c4a0319c838a7c0d) )
+ ROM_LOAD( "3.7c", 0x1000, 0x1000, CRC(c2090318) SHA1(71725cdf51aedf5f29fa1dd1a41ad5e62c9a580d) )
+ ROM_LOAD( "2.9c", 0x2000, 0x1000, CRC(b60e5ada) SHA1(37440f382c5e8852d804fa9837c36cc1e9d94d1d) )
+
+ ROM_REGION(0x0800, "gfx1", 0 )
+ ROM_LOAD( "6.a12", 0x0000, 0x0800, CRC(da9bbcc2) SHA1(4cbe03c7f5e99cc2f124e0089ea3c392156b5d92) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "4.3e", 0x0000, 0x0800, CRC(483a1293) SHA1(e7812475c7509389bcf8fee35598e9894428eb37) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_LOAD( "5.3d", 0x0800, 0x0800, CRC(c45d9601) SHA1(2f156ad61161d65284df0cc55eb1b3b990eb41cb) )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+
+ ROM_REGION( 0x2000, "gfx3", ROMREGION_ERASE00 )
+ /* gfx data will be rearranged here for 8x8 sprites */
+
+ ROM_REGION( 0x0060, "proms", 0 ) // not dumped for this set
+ ROM_LOAD( "1.12f", 0x0000, 0x0020, CRC(43989681) SHA1(0d471e6f499294f2f62f27392b8370e2af8e38a3) ) /* palette */
+ ROM_LOAD( "2.4a", 0x0020, 0x0020, CRC(9adabf46) SHA1(f3538fdbc4280b6be46a4d7ebb4c34bd1a1ce2b7) ) /* sprite color lookup table */
+ ROM_LOAD( "3.11e", 0x0040, 0x0020, CRC(27fa3a50) SHA1(7cf59b7a37c156640d6ea91554d1c4276c1780e0) ) /* ?? */
+ROM_END
void redclash_state::init_redclash()
{
@@ -576,9 +583,10 @@ void redclash_state::init_redclash()
}
-GAME( 1980, zerohour, 0, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, zerohoura, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1980, zerohouri, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, redclash, 0, redclash, redclash, redclash_state, init_redclash, ROT270, "Tehkan", "Red Clash (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, redclasha, redclash, redclash, redclash, redclash_state, init_redclash, ROT270, "Tehkan", "Red Clash (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, redclashk, redclash, redclash, redclash, redclash_state, init_redclash, ROT270, "Tehkan (Kaneko license)", "Red Clash (Kaneko)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, zerohour, 0, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, zerohoura, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "Universal", "Zero Hour (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, zerohouri, zerohour, zerohour, zerohour, redclash_state, init_redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, redclash, 0, redclash, redclash, redclash_state, init_redclash, ROT270, "Tehkan", "Red Clash (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, redclasha, redclash, redclash, redclash, redclash_state, init_redclash, ROT270, "Tehkan", "Red Clash (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, redclashk, redclash, redclash, redclash, redclash_state, init_redclash, ROT270, "Tehkan (Kaneko license)", "Red Clash (Kaneko)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, redclashs, redclash, redclash, redclash, redclash_state, init_redclash, ROT270, "Tehkan (Suntronics license)", "Red Clash (Suntronics)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/redclash.h b/src/mame/includes/redclash.h
index 5abdfb6dd07..3238f9485c1 100644
--- a/src/mame/includes/redclash.h
+++ b/src/mame/includes/redclash.h
@@ -42,19 +42,19 @@ protected:
virtual void video_start() override;
private:
- DECLARE_WRITE_LINE_MEMBER(screen_vblank_redclash);
- DECLARE_WRITE8_MEMBER(redclash_videoram_w);
- DECLARE_WRITE8_MEMBER(redclash_gfxbank_w);
- DECLARE_WRITE8_MEMBER(redclash_flipscreen_w);
+ DECLARE_WRITE_LINE_MEMBER(screen_vblank);
+ DECLARE_WRITE8_MEMBER(videoram_w);
+ DECLARE_WRITE8_MEMBER(gfxbank_w);
+ DECLARE_WRITE8_MEMBER(flipscreen_w);
DECLARE_WRITE8_MEMBER(irqack_w);
- DECLARE_WRITE8_MEMBER(redclash_star_reset_w);
- template <unsigned B> DECLARE_WRITE8_MEMBER(redclash_star_w);
- void redclash_palette(palette_device &palette) const;
+ DECLARE_WRITE8_MEMBER(star_reset_w);
+ template <unsigned B> DECLARE_WRITE8_MEMBER(star_w);
+ void palette(palette_device &palette) const;
TILE_GET_INFO_MEMBER(get_fg_tile_info);
- uint32_t screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void redclash_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
- void redclash_draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect);
void redclash_map(address_map &map);
void zerohour_map(address_map &map);
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 28fdfc942c2..af85fd558bd 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -2828,6 +2828,7 @@ metrocrsa // (c) 1985
barata //
@source:barni.cpp
+champion //
redbarnp //
@source:bartop52.cpp
@@ -30998,6 +30999,7 @@ sprglbpg // German bootleg
sprglobp // (c) 1983 Epos Corporation
superabc // hack
superabco // hack
+theglobme // (c) 1983 Magic Electronics
theglobp // (c) 1983 Epos Corporation
titanpac // hack
pacmanfm // bootleg (FAMARE S.A.)
@@ -33305,6 +33307,7 @@ ww3 // M27 (c) 1981
redclash // (c) 1981 Tehkan
redclasha // (c) 1981 Tehkan
redclashk // (c) Kaneko (bootleg?)
+redclashs // (c) Suntronics (licensed?)
zerohour // 8011 (c) Universal
zerohoura // 8011 (c) Universal
zerohouri //
diff --git a/src/mame/video/redclash.cpp b/src/mame/video/redclash.cpp
index 83e4e00ce1e..7737b711fe3 100644
--- a/src/mame/video/redclash.cpp
+++ b/src/mame/video/redclash.cpp
@@ -2,7 +2,7 @@
// copyright-holders:David Haywood
/***************************************************************************
- video.c
+ redclash.cpp
Functions to emulate the video hardware of the machine.
@@ -21,7 +21,7 @@
***************************************************************************/
-void redclash_state::redclash_palette(palette_device &palette) const
+void redclash_state::palette(palette_device &palette) const
{
const uint8_t *color_prom = memregion("proms")->base();
@@ -98,13 +98,13 @@ void redclash_state::redclash_palette(palette_device &palette) const
}
-WRITE8_MEMBER( redclash_state::redclash_videoram_w )
+WRITE8_MEMBER( redclash_state::videoram_w )
{
m_videoram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER( redclash_state::redclash_gfxbank_w )
+WRITE8_MEMBER( redclash_state::gfxbank_w )
{
if (m_gfxbank != (data & 0x01))
{
@@ -113,12 +113,12 @@ WRITE8_MEMBER( redclash_state::redclash_gfxbank_w )
}
}
-WRITE8_MEMBER( redclash_state::redclash_flipscreen_w )
+WRITE8_MEMBER( redclash_state::flipscreen_w )
{
flip_screen_set(data & 0x01);
}
-WRITE8_MEMBER( redclash_state::redclash_star_reset_w )
+WRITE8_MEMBER( redclash_state::star_reset_w )
{
m_stars->set_enable(true);
}
@@ -138,33 +138,30 @@ void redclash_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-void redclash_state::redclash_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
+void redclash_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- uint8_t *spriteram = m_spriteram;
- int i, offs;
-
- for (offs = m_spriteram.bytes() - 0x20; offs >= 0; offs -= 0x20)
+ for (int offs = m_spriteram.bytes() - 0x20; offs >= 0; offs -= 0x20)
{
- i = 0;
- while (i < 0x20 && spriteram[offs + i] != 0)
+ int i = 0;
+ while (i < 0x20 && m_spriteram[offs + i] != 0)
i += 4;
while (i > 0)
{
i -= 4;
- if (spriteram[offs + i] & 0x80)
+ if (m_spriteram[offs + i] & 0x80)
{
- int color = spriteram[offs + i + 2] & 0x0f;
- int sx = spriteram[offs + i + 3];
- int sy = offs / 4 + (spriteram[offs + i] & 0x07);
+ int color = m_spriteram[offs + i + 2] & 0x0f;
+ int sx = m_spriteram[offs + i + 3];
+ int sy = offs / 4 + (m_spriteram[offs + i] & 0x07);
- switch ((spriteram[offs + i] & 0x18) >> 3)
+ switch ((m_spriteram[offs + i] & 0x18) >> 3)
{
case 3: /* 24x24 */
{
- int code = ((spriteram[offs + i + 1] & 0xf0) >> 4) + ((m_gfxbank & 1) << 4);
+ int code = ((m_spriteram[offs + i + 1] & 0xf0) >> 4) + ((m_gfxbank & 1) << 4);
m_gfxdecode->gfx(3)->transpen(bitmap,cliprect,
code,
@@ -181,10 +178,10 @@ void redclash_state::redclash_draw_sprites(bitmap_ind16 &bitmap, const rectangle
}
case 2: /* 16x16 */
- if (spriteram[offs + i] & 0x20) /* zero hour spaceships */
+ if (m_spriteram[offs + i] & 0x20) /* zero hour spaceships */
{
- int code = ((spriteram[offs + i + 1] & 0xf8) >> 3) + ((m_gfxbank & 1) << 5);
- int bank = (spriteram[offs + i + 1] & 0x02) >> 1;
+ int code = ((m_spriteram[offs + i + 1] & 0xf8) >> 3) + ((m_gfxbank & 1) << 5);
+ int bank = (m_spriteram[offs + i + 1] & 0x02) >> 1;
m_gfxdecode->gfx(4+bank)->transpen(bitmap,cliprect,
code,
@@ -194,7 +191,7 @@ void redclash_state::redclash_draw_sprites(bitmap_ind16 &bitmap, const rectangle
}
else
{
- int code = ((spriteram[offs + i + 1] & 0xf0) >> 4) + ((m_gfxbank & 1) << 4);
+ int code = ((m_spriteram[offs + i + 1] & 0xf0) >> 4) + ((m_gfxbank & 1) << 4);
m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
code,
@@ -206,7 +203,7 @@ void redclash_state::redclash_draw_sprites(bitmap_ind16 &bitmap, const rectangle
case 1: /* 8x8 */
m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
- spriteram[offs + i + 1],// + 4 * (spriteram[offs + i + 2] & 0x10),
+ m_spriteram[offs + i + 1],// + 4 * (m_spriteram[offs + i + 2] & 0x10),
color,
0,0,
sx,sy - 16,0);
@@ -221,11 +218,9 @@ void redclash_state::redclash_draw_sprites(bitmap_ind16 &bitmap, const rectangle
}
}
-void redclash_state::redclash_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect )
+void redclash_state::draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- int offs;
-
- for (offs = 0; offs < 0x20; offs++)
+ for (int offs = 0; offs < 0x20; offs++)
{
// sx = m_videoramoffs];
int sx = 8 * offs + (m_videoram[offs] & 0x07); /* ?? */
@@ -241,19 +236,19 @@ void redclash_state::redclash_draw_bullets( bitmap_ind16 &bitmap, const rectangl
}
}
-WRITE_LINE_MEMBER(redclash_state::screen_vblank_redclash)
+WRITE_LINE_MEMBER(redclash_state::screen_vblank)
{
// falling edge
if (!state)
m_stars->update_state();
}
-uint32_t redclash_state::screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t redclash_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
m_stars->draw(bitmap, cliprect, 0x60, true, 0x00, 0xff);
- redclash_draw_sprites(bitmap, cliprect);
- redclash_draw_bullets(bitmap, cliprect);
+ draw_sprites(bitmap, cliprect);
+ draw_bullets(bitmap, cliprect);
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}