From c8d0db0c83d4b72e86f6255b95ff45ccc475d85d Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 7 Feb 2019 18:21:07 +0100 Subject: new working clones ----------------------------- The Glob (Pacman hardware, Magic Electronics Inc. license) [jordigahan, ClawGrip] Red Clash (Suntronics) [coolmod] new not working machine ------------------------------------- Champion 85 [PinMAME] --- src/mame/drivers/barni.cpp | 53 ++++++--- src/mame/drivers/pacman.cpp | 258 ++++++++++++++++++++++-------------------- src/mame/drivers/redclash.cpp | 132 +++++++++++---------- src/mame/includes/redclash.h | 20 ++-- src/mame/mame.lst | 3 + src/mame/video/redclash.cpp | 59 +++++----- 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")->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")); + 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")->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")); + 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")); + 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 WRITE8_MEMBER(redclash_state::redclash_star_w) +template 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 DECLARE_WRITE8_MEMBER(redclash_star_w); - void redclash_palette(palette_device &palette) const; + DECLARE_WRITE8_MEMBER(star_reset_w); + template 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; } -- cgit v1.2.3