mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
new working clones
----------------------------- The Glob (Pacman hardware, Magic Electronics Inc. license) [jordigahan, ClawGrip] Red Clash (Suntronics) [coolmod] new not working machine ------------------------------------- Champion 85 [PinMAME]
This commit is contained in:
parent
d3403e2dce
commit
c8d0db0c83
@ -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 )
|
||||
|
@ -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 )
|
||||
|
||||
|
@ -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)
|
||||
void redclash_state::redclash(machine_config &config)
|
||||
{
|
||||
zerohour(config);
|
||||
|
||||
/* 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);
|
||||
|
||||
/* 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 )
|
||||
|
@ -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);
|
||||
|
@ -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 //
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user