hankin.c : WIP

This commit is contained in:
Robbbert 2014-08-14 03:40:05 +00:00
parent a6dfe918d3
commit 444a902c3e
4 changed files with 245 additions and 67 deletions

1
.gitattributes vendored
View File

@ -6534,6 +6534,7 @@ src/mame/layout/gunchamps.lay svneol=native#text/xml
src/mame/layout/gunfight.lay svneol=native#text/xml
src/mame/layout/gunnrose.lay svneol=native#text/xml
src/mame/layout/gypsyjug.lay svneol=native#text/xml
src/mame/layout/hankin.lay svneol=native#text/plain
src/mame/layout/icecold.lay svneol=native#text/xml
src/mame/layout/igspoker.lay svneol=native#text/xml
src/mame/layout/imolagp.lay svneol=native#text/xml

View File

@ -1,45 +1,53 @@
/**********************************************************************************
Pinball
Hankin
PINBALL
Hankin
Based on Bally BY35
***********************************************************************************/
#include "emu.h"
#include "machine/genpin.h"
#include "cpu/m6800/m6800.h"
#include "machine/6821pia.h"
#include "hankin.lh"
class hankin_state : public driver_device
class hankin_state : public genpin_class
{
public:
hankin_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu")
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_audiocpu(*this, "audiocpu")
, m_ic10(*this, "ic10")
, m_ic11(*this, "ic11")
, m_ic2(*this, "ic2")
{ }
protected:
// devices
required_device<cpu_device> m_maincpu;
// driver_device overrides
virtual void machine_reset();
public:
DECLARE_DRIVER_INIT(hankin);
private:
virtual void machine_reset();
required_device<m6802_cpu_device> m_maincpu;
required_device<m6802_cpu_device> m_audiocpu;
required_device<pia6821_device> m_ic10;
required_device<pia6821_device> m_ic11;
required_device<pia6821_device> m_ic2;
};
static ADDRESS_MAP_START( hankin_map, AS_PROGRAM, 8, hankin_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_ROM
AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("ic11", pia6821_device, read, write)
AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("ic10", pia6821_device, read, write)
AM_RANGE(0x0200, 0x02ff) AM_RAM AM_SHARE("nvram") // 5101L 4-bit static ram
AM_RANGE(0x1000, 0x1fff) AM_ROM AM_REGION("roms", 0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hankin_sub_map, AS_PROGRAM, 8, hankin_state )
AM_RANGE(0x0000, 0x007f) AM_RAM
//AM_RANGE(0x0080, 0x0083) AM_ pia6821
//AM_RANGE(0x0200, 0x0200) AM_READWRITE(
AM_RANGE(0x1000, 0x17ff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
AM_RANGE(0x0080, 0x0083) AM_DEVREADWRITE("ic2", pia6821_device, read, write)
AM_RANGE(0x1000, 0x17ff) AM_ROM AM_MIRROR(0x800) AM_REGION("roms", 0x1000)
ADDRESS_MAP_END
static INPUT_PORTS_START( hankin )
@ -55,85 +63,110 @@ DRIVER_INIT_MEMBER(hankin_state,hankin)
static MACHINE_CONFIG_START( hankin, hankin_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6802, 900000)
MCFG_CPU_ADD("maincpu", M6802, 3276800)
MCFG_CPU_PROGRAM_MAP(hankin_map)
MCFG_CPU_ADD("cpu2", M6802, 900000)
MCFG_CPU_ADD("audiocpu", M6802, 3276800) // guess, xtal value not shown
MCFG_CPU_PROGRAM_MAP(hankin_sub_map)
MCFG_NVRAM_ADD_0FILL("nvram")
/* Video */
MCFG_DEFAULT_LAYOUT(layout_hankin)
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
/* Devices */
MCFG_DEVICE_ADD("ic10", PIA6821, 0)
//MCFG_PIA_READPA_HANDLER(READ8(hankin_state, ic10_a_r))
//MCFG_PIA_WRITEPA_HANDLER(WRITE8(hankin_state, ic10_a_w))
//MCFG_PIA_READPB_HANDLER(READ8(hankin_state, ic10_b_r))
//MCFG_PIA_WRITEPB_HANDLER(WRITE8(hankin_state, ic10_b_w))
//MCFG_PIA_CA2_HANDLER(WRITELINE(hankin_state, ic10_ca2_w))
//MCFG_PIA_CB2_HANDLER(WRITELINE(hankin_state, ic10_cb2_w))
MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line))
MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line))
MCFG_DEVICE_ADD("ic11", PIA6821, 0)
//MCFG_PIA_READPA_HANDLER(READ8(hankin_state, ic11_a_r))
//MCFG_PIA_WRITEPA_HANDLER(WRITE8(hankin_state, ic11_a_w))
//MCFG_PIA_READPB_HANDLER(READ8(hankin_state, ic11_b_r))
//MCFG_PIA_WRITEPB_HANDLER(WRITE8(hankin_state, ic11_b_w))
//MCFG_PIA_CA2_HANDLER(WRITELINE(hankin_state, ic11_ca2_w))
//MCFG_PIA_CB2_HANDLER(WRITELINE(hankin_state, ic11_cb2_w))
MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line))
MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line))
MCFG_DEVICE_ADD("ic2", PIA6821, 0)
//MCFG_PIA_READPA_HANDLER(READ8(hankin_state, ic2_a_r))
//MCFG_PIA_WRITEPA_HANDLER(WRITE8(hankin_state, ic2_a_w))
//MCFG_PIA_READPB_HANDLER(READ8(hankin_state, ic2_b_r))
//MCFG_PIA_WRITEPB_HANDLER(WRITE8(hankin_state, ic2_b_w))
//MCFG_PIA_CA2_HANDLER(WRITELINE(hankin_state, ic2_ca2_w))
//MCFG_PIA_CB2_HANDLER(WRITELINE(hankin_state, ic2_cb2_w))
MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("audiocpu", m6802_cpu_device, irq_line))
MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("audiocpu", m6802_cpu_device, irq_line))
MACHINE_CONFIG_END
/*--------------------------------
/ FJ Holden
/-------------------------------*/
ROM_START(fjholden)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "fj_ic2.mpu", 0x1000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD( "fj_ic3.mpu", 0x1800, 0x0800, CRC(ceaeb7d3) SHA1(9e479b985f8500983e71d6ff33ee94160e99650d))
ROM_REGION(0x10000, "cpu2", 0)
ROM_LOAD("fj_ic14.snd", 0x1000, 0x0800, CRC(34fe3587) SHA1(132714675a23c101ceb5a4d544818650ae5ccea2))
ROM_RELOAD( 0xf800, 0x0800)
ROM_LOAD("fj_ic3.snd", 0xf000, 0x0200, CRC(09d3f020) SHA1(274be0b94d341ee43357011691da82e83a7c4a00))
ROM_REGION(0x1a00, "roms", 0)
ROM_LOAD("fj_ic2.mpu", 0x0000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD("fj_ic3.mpu", 0x0800, 0x0800, CRC(ceaeb7d3) SHA1(9e479b985f8500983e71d6ff33ee94160e99650d))
ROM_LOAD("fj_ic14.snd", 0x1000, 0x0800, CRC(34fe3587) SHA1(132714675a23c101ceb5a4d544818650ae5ccea2))
ROM_LOAD("fj_ic3.snd", 0x1800, 0x0200, CRC(09d3f020) SHA1(274be0b94d341ee43357011691da82e83a7c4a00))
ROM_END
/*--------------------------------
/ Howzat!
/-------------------------------*/
ROM_START(howzat)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "hz_ic2.mpu", 0x1000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD( "hz_ic3.mpu", 0x1800, 0x0800, CRC(d13df4bc) SHA1(27a70260698d3eaa7cf7a56edc5dd9a4af3f4103))
ROM_REGION(0x10000, "cpu2", 0)
ROM_LOAD("hz_ic14.snd", 0x1000, 0x0800, CRC(0e3fdb59) SHA1(cae3c85b2c32a0889785f770ece66b959bcf21e1))
ROM_RELOAD( 0xf800, 0x0800)
ROM_LOAD("hz_ic3.snd", 0xf000, 0x0200, CRC(dfc57606) SHA1(638853c8e46bf461f2ecde02b8b2aa68c2d414b8))
ROM_REGION(0x1a00, "roms", 0)
ROM_LOAD("hz_ic2.mpu", 0x0000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD("hz_ic3.mpu", 0x0800, 0x0800, CRC(d13df4bc) SHA1(27a70260698d3eaa7cf7a56edc5dd9a4af3f4103))
ROM_LOAD("hz_ic14.snd", 0x1000, 0x0800, CRC(0e3fdb59) SHA1(cae3c85b2c32a0889785f770ece66b959bcf21e1))
ROM_LOAD("hz_ic3.snd", 0x1800, 0x0200, CRC(dfc57606) SHA1(638853c8e46bf461f2ecde02b8b2aa68c2d414b8))
ROM_END
/*--------------------------------
/ Orbit 1
/-------------------------------*/
ROM_START(orbit1)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "o1_ic2.mpu", 0x1000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD( "o1_ic3.mpu", 0x1800, 0x0800, CRC(fe7b61be) SHA1(c086b0433bb9ab3f2139c705d4372beb1656b27f))
ROM_REGION(0x10000, "cpu2", 0)
ROM_LOAD("o1_ic14.snd", 0x1000, 0x0800, CRC(323bfbd5) SHA1(2e89aa4fcd33f9bfeea5c310ffb0a5be45fb70a9))
ROM_RELOAD( 0xf800, 0x0800)
ROM_LOAD("o1_ic3.snd", 0xf000, 0x0200, CRC(dfc57606) SHA1(638853c8e46bf461f2ecde02b8b2aa68c2d414b8))
ROM_REGION(0x1a00, "roms", 0)
ROM_LOAD("o1_ic2.mpu", 0x0000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD("o1_ic3.mpu", 0x0800, 0x0800, CRC(fe7b61be) SHA1(c086b0433bb9ab3f2139c705d4372beb1656b27f))
ROM_LOAD("o1_ic14.snd", 0x1000, 0x0800, CRC(323bfbd5) SHA1(2e89aa4fcd33f9bfeea5c310ffb0a5be45fb70a9))
ROM_LOAD("o1_ic3.snd", 0x1800, 0x0200, CRC(dfc57606) SHA1(638853c8e46bf461f2ecde02b8b2aa68c2d414b8))
ROM_END
/*--------------------------------
/ Shark
/-------------------------------*/
ROM_START(shark)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "shk_ic2.mpu", 0x1000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD( "shk_ic3.mpu", 0x1800, 0x0800, CRC(c3ef936c) SHA1(14668496d162a77e03c1142bef2956d5b76afc99))
ROM_REGION(0x10000, "cpu2", 0)
ROM_REGION(0x1a00, "roms", 0)
ROM_LOAD("shk_ic2.mpu", 0x0000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD("shk_ic3.mpu", 0x0800, 0x0800, CRC(c3ef936c) SHA1(14668496d162a77e03c1142bef2956d5b76afc99))
ROM_LOAD("shk_ic14.snd", 0x1000, 0x0800, CRC(8f8b0e48) SHA1(72d94aa9b32c603b1ca681b0ab3bf8ddbf5c9afe))
ROM_RELOAD( 0xf800, 0x0800)
ROM_LOAD("shk_ic3.snd", 0xf000, 0x0200, CRC(dfc57606) SHA1(638853c8e46bf461f2ecde02b8b2aa68c2d414b8))
ROM_LOAD("shk_ic3.snd", 0x1800, 0x0200, CRC(dfc57606) SHA1(638853c8e46bf461f2ecde02b8b2aa68c2d414b8))
ROM_END
/*--------------------------------
/ The Empire Strike Back
/-------------------------------*/
ROM_START(empsback)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "sw_ic2.mpu", 0x1000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD( "sw_ic3.mpu", 0x1800, 0x0800, CRC(837ffe32) SHA1(9affc5d9345ce15394553d3204e5234cc6348d2e))
ROM_REGION(0x10000, "cpu2", 0)
ROM_LOAD("sw_ic14.snd", 0x1000, 0x0800, CRC(c1eeb53b) SHA1(7a800dd0a8ae392e14639e1819198d4215cc2251))
ROM_RELOAD( 0xf800, 0x0800)
ROM_LOAD("sw_ic3.snd", 0xf000, 0x0200, CRC(db214f65) SHA1(1a499cf2059a5c0d860d5a4251a89a5735937ef8))
ROM_REGION(0x1a00, "roms", 0)
ROM_LOAD("sw_ic2.mpu", 0x0000, 0x0800, CRC(b47bc2c7) SHA1(42c985d83a9454fcd08b87e572e5563ebea0d052))
ROM_LOAD("sw_ic3.mpu", 0x0800, 0x0800, CRC(837ffe32) SHA1(9affc5d9345ce15394553d3204e5234cc6348d2e))
ROM_LOAD("sw_ic14.snd", 0x1000, 0x0800, CRC(c1eeb53b) SHA1(7a800dd0a8ae392e14639e1819198d4215cc2251))
ROM_LOAD("sw_ic3.snd", 0x1800, 0x0200, CRC(db214f65) SHA1(1a499cf2059a5c0d860d5a4251a89a5735937ef8))
ROM_END
GAME(1978, fjholden, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "FJ Holden", GAME_IS_SKELETON_MECHANICAL)
GAME(1980, howzat, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "Howzat!", GAME_IS_SKELETON_MECHANICAL)
GAME(1978, orbit1, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "Orbit 1", GAME_IS_SKELETON_MECHANICAL)
GAME(1980, shark, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "Shark", GAME_IS_SKELETON_MECHANICAL)
GAME(1981, empsback, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "The Empire Strike Back",GAME_IS_SKELETON_MECHANICAL)
GAME(1978, fjholden, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "FJ Holden", GAME_IS_SKELETON_MECHANICAL)
GAME(1980, howzat, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "Howzat!", GAME_IS_SKELETON_MECHANICAL)
GAME(1978, orbit1, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "Orbit 1", GAME_IS_SKELETON_MECHANICAL)
GAME(1980, shark, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "Shark", GAME_IS_SKELETON_MECHANICAL)
GAME(1981, empsback, 0, hankin, hankin, hankin_state, hankin, ROT0, "Hankin", "The Empire Strike Back", GAME_IS_SKELETON_MECHANICAL)

142
src/mame/layout/hankin.lay Normal file
View File

@ -0,0 +1,142 @@
<!-- Hankin copied from gp_1.lay -->
<!-- 2014-08-14: Initial version. [Robbbert] -->
<mamelayout version="2">
<element name="digit" defstate="0">
<led7seg>
<color red="1.0" green="0.25" blue="0.0" />
</led7seg>
</element>
<element name="red_led">
<disk><color red="1.0" green="0.0" blue="0.0" /></disk>
</element>
<element name="background">
<rect>
<bounds left="0" top="0" right="1" bottom="1" />
<color red="0.0" green="0.0" blue="0.0" />
</rect>
</element>
<element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P2"><text string="Players"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<view name="Default Layout">
<!-- Background -->
<backdrop element="background">
<bounds left="0" top="20" right="274" bottom="394" />
</backdrop>
<!-- LEDs -->
<!-- Player 1 Score -->
<bezel name="digit5" element="digit">
<bounds left="10" top="45" right="44" bottom="84" />
</bezel>
<bezel name="digit4" element="digit">
<bounds left="54" top="45" right="88" bottom="84" />
</bezel>
<bezel name="digit3" element="digit">
<bounds left="98" top="45" right="132" bottom="84" />
</bezel>
<bezel name="digit2" element="digit">
<bounds left="142" top="45" right="176" bottom="84" />
</bezel>
<bezel name="digit1" element="digit">
<bounds left="186" top="45" right="220" bottom="84" />
</bezel>
<bezel name="digit0" element="digit">
<bounds left="230" top="45" right="264" bottom="84" />
</bezel>
<!-- Player 2 Score -->
<bezel name="digit15" element="digit">
<bounds left="10" top="105" right="44" bottom="144" />
</bezel>
<bezel name="digit14" element="digit">
<bounds left="54" top="105" right="88" bottom="144" />
</bezel>
<bezel name="digit13" element="digit">
<bounds left="98" top="105" right="132" bottom="144" />
</bezel>
<bezel name="digit12" element="digit">
<bounds left="142" top="105" right="176" bottom="144" />
</bezel>
<bezel name="digit11" element="digit">
<bounds left="186" top="105" right="220" bottom="144" />
</bezel>
<bezel name="digit10" element="digit">
<bounds left="230" top="105" right="264" bottom="144" />
</bezel>
<!-- Player 3 Score -->
<bezel name="digit25" element="digit">
<bounds left="10" top="165" right="44" bottom="204" />
</bezel>
<bezel name="digit24" element="digit">
<bounds left="54" top="165" right="88" bottom="204" />
</bezel>
<bezel name="digit23" element="digit">
<bounds left="98" top="165" right="132" bottom="204" />
</bezel>
<bezel name="digit22" element="digit">
<bounds left="142" top="165" right="176" bottom="204" />
</bezel>
<bezel name="digit21" element="digit">
<bounds left="186" top="165" right="220" bottom="204" />
</bezel>
<bezel name="digit20" element="digit">
<bounds left="230" top="165" right="264" bottom="204" />
</bezel>
<!-- Player 4 Score -->
<bezel name="digit35" element="digit">
<bounds left="10" top="225" right="44" bottom="264" />
</bezel>
<bezel name="digit34" element="digit">
<bounds left="54" top="225" right="88" bottom="264" />
</bezel>
<bezel name="digit33" element="digit">
<bounds left="98" top="225" right="132" bottom="264" />
</bezel>
<bezel name="digit32" element="digit">
<bounds left="142" top="225" right="176" bottom="264" />
</bezel>
<bezel name="digit31" element="digit">
<bounds left="186" top="225" right="220" bottom="264" />
</bezel>
<bezel name="digit30" element="digit">
<bounds left="230" top="225" right="264" bottom="264" />
</bezel>
<!-- Credits and Balls -->
<bezel name="digit44" element="digit">
<bounds left="39" top="345" right="73" bottom="384" />
</bezel>
<bezel name="digit43" element="digit">
<bounds left="110" top="345" right="144" bottom="384" />
</bezel>
<bezel name="digit42" element="digit">
<bounds left="171" top="345" right="205" bottom="384" />
</bezel>
<bezel name="digit41" element="digit">
<bounds left="210" top="345" right="244" bottom="384" />
</bezel>
<bezel element="P2"><bounds left="100" right="158" top="330" bottom="342" /></bezel>
<bezel element="P1"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
<bezel element="P0"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
<bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
<bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
<bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
<bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
<bezel name="led0" element="red_led">
<bounds left="10" right="25" top="360" bottom="375" /></bezel>
</view>
</mamelayout>

View File

@ -2636,6 +2636,8 @@ $(DRIVERS)/grchamp.o: $(LAYOUT)/grchamp.lh
$(DRIVERS)/highvdeo.o: $(LAYOUT)/fashion.lh
$(DRIVERS)/hankin.o: $(LAYOUT)/hankin.lh
$(DRIVERS)/hitme.o: $(LAYOUT)/barricad.lh
$(DRIVERS)/icecold.o: $(LAYOUT)/icecold.lh