summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.gitattributes1
-rw-r--r--src/mame/drivers/inder.c295
-rw-r--r--src/mame/layout/inder.lay150
-rw-r--r--src/mame/mame.mak2
4 files changed, 422 insertions, 26 deletions
diff --git a/.gitattributes b/.gitattributes
index 10913dacba1..5ffafd94935 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6588,6 +6588,7 @@ 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
+src/mame/layout/inder.lay svneol=native#text/plain
src/mame/layout/invad2ct.lay svneol=native#text/xml
src/mame/layout/invaders.lay svneol=native#text/xml
src/mame/layout/jankenmn.lay svneol=native#text/xml
diff --git a/src/mame/drivers/inder.c b/src/mame/drivers/inder.c
index 5c6c7f26679..e9b2e60cf57 100644
--- a/src/mame/drivers/inder.c
+++ b/src/mame/drivers/inder.c
@@ -1,46 +1,272 @@
+/*******************************************************************************************************
-#include "emu.h"
+ PINBALL
+ Inder S.A. of Spain
+
+ All manuals are in Spanish (including the 'English' ones), so some guesswork will be needed.
+ The schematics for Brave Team, Canasta are too blurry to read.
+
+********************************************************************************************************/
+
+#include "machine/genpin.h"
#include "cpu/z80/z80.h"
+#include "machine/i8255.h"
+#include "inder.lh"
-class inder_state : public driver_device
+class inder_state : public genpin_class
{
public:
inder_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_switches(*this, "SW")
{ }
-protected:
-
- // devices
- required_device<cpu_device> m_maincpu;
-
- // driver_device overrides
- virtual void machine_reset();
-public:
+ DECLARE_READ8_MEMBER(io_r);
+ DECLARE_WRITE8_MEMBER(io_w);
+ DECLARE_WRITE8_MEMBER(disp_w);
DECLARE_DRIVER_INIT(inder);
+private:
+ UINT8 m_row;
+ UINT8 m_segment[5];
+ virtual void machine_reset();
+ required_device<cpu_device> m_maincpu;
+ required_ioport_array<11> m_switches;
};
static ADDRESS_MAP_START( inder_map, AS_PROGRAM, 8, inder_state )
- AM_RANGE(0x0000, 0xffff) AM_NOP
- AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x20ff) AM_WRITE(disp_w)
+ AM_RANGE(0x4000, 0x43ff) AM_RAM // pair of 2114
+ AM_RANGE(0x4400, 0x44ff) AM_RAM AM_SHARE("nvram") // pair of 5101, battery-backed
+ AM_RANGE(0x4800, 0x480a) AM_READWRITE(io_r,io_w)
+ //AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("ppi", i8255_device, read, write)
ADDRESS_MAP_END
static INPUT_PORTS_START( inder )
+ PORT_START("TEST")
+ //PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, inder_state, self_test, 0)
+ //PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, inder_state, activity_test, 0)
+
+ PORT_START("SW.0")
+ PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1")
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C )) // same as 01
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ))
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ))
+ PORT_DIPSETTING( 0x05, DEF_STR( 2C_2C ))
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_3C ))
+ PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C ))
+ PORT_DIPSETTING( 0x09, DEF_STR( 2C_4C ))
+ PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C ))
+ PORT_DIPSETTING( 0x0b, DEF_STR( 2C_5C ))
+ PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ))
+ PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C ))
+ PORT_DIPSETTING( 0x0e, DEF_STR( 1C_7C ))
+ PORT_DIPSETTING( 0x0f, DEF_STR( 2C_7C ))
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C ))
+ PORT_DIPSETTING( 0x11, DEF_STR( 2C_8C ))
+ PORT_DIPSETTING( 0x12, DEF_STR( 1C_9C ))
+ PORT_DIPSETTING( 0x13, "2 coins 9 credits")
+ PORT_DIPSETTING( 0x14, "1 coin 10 credits")
+ PORT_DIPSETTING( 0x15, "2 coins 10 credits")
+ PORT_DIPSETTING( 0x16, "1 coin 11 credits")
+ PORT_DIPSETTING( 0x17, "2 coins 11 credits")
+ PORT_DIPSETTING( 0x18, "1 coin 12 credits")
+ PORT_DIPSETTING( 0x19, "2 coins 12 credits")
+ PORT_DIPSETTING( 0x1a, "1 coin 13 credits")
+ PORT_DIPSETTING( 0x1b, "2 coins 13 credits")
+ PORT_DIPSETTING( 0x1c, "1 coin 14 credits")
+ PORT_DIPSETTING( 0x1d, "2 coins 14 credits")
+ PORT_DIPSETTING( 0x1e, "1 coin 15 credits")
+ PORT_DIPSETTING( 0x1f, "2 coins 15 credits")
+ PORT_DIPNAME( 0x60, 0x40, "Award for beating high score")
+ PORT_DIPSETTING( 0x00, "Nothing")
+ PORT_DIPSETTING( 0x20, "1 free game")
+ PORT_DIPSETTING( 0x40, "2 free games")
+ PORT_DIPSETTING( 0x60, "3 free games")
+ PORT_DIPNAME( 0x80, 0x00, "Melody option 1")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
+
+ PORT_START("SW.1")
+ PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C )) // same as 01
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ))
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ))
+ PORT_DIPSETTING( 0x05, DEF_STR( 2C_2C ))
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_3C ))
+ PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C ))
+ PORT_DIPSETTING( 0x09, DEF_STR( 2C_4C ))
+ PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C ))
+ PORT_DIPSETTING( 0x0b, DEF_STR( 2C_5C ))
+ PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ))
+ PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C ))
+ PORT_DIPSETTING( 0x0e, DEF_STR( 1C_7C ))
+ PORT_DIPSETTING( 0x0f, DEF_STR( 2C_7C ))
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C ))
+ PORT_DIPSETTING( 0x11, DEF_STR( 2C_8C ))
+ PORT_DIPSETTING( 0x12, DEF_STR( 1C_9C ))
+ PORT_DIPSETTING( 0x13, "2 coins 9 credits")
+ PORT_DIPSETTING( 0x14, "1 coin 10 credits")
+ PORT_DIPSETTING( 0x15, "2 coins 10 credits")
+ PORT_DIPSETTING( 0x16, "1 coin 11 credits")
+ PORT_DIPSETTING( 0x17, "2 coins 11 credits")
+ PORT_DIPSETTING( 0x18, "1 coin 12 credits")
+ PORT_DIPSETTING( 0x19, "2 coins 12 credits")
+ PORT_DIPSETTING( 0x1a, "1 coin 13 credits")
+ PORT_DIPSETTING( 0x1b, "2 coins 13 credits")
+ PORT_DIPSETTING( 0x1c, "1 coin 14 credits")
+ PORT_DIPSETTING( 0x1d, "2 coins 14 credits")
+ PORT_DIPSETTING( 0x1e, "1 coin 15 credits")
+ PORT_DIPSETTING( 0x1f, "2 coins 15 credits")
+ PORT_DIPNAME( 0x60, 0x60, "Award")
+ PORT_DIPSETTING( 0x00, "Nothing")
+ PORT_DIPSETTING( 0x40, "Extra Ball")
+ PORT_DIPSETTING( 0x60, "Free Game")
+ PORT_DIPNAME( 0x80, 0x00, "Balls")
+ PORT_DIPSETTING( 0x00, "3")
+ PORT_DIPSETTING( 0x80, "5")
+
+ PORT_START("SW.2")
+ PORT_DIPNAME( 0x07, 0x02, "Maximum Credits")
+ PORT_DIPSETTING( 0x00, "5")
+ PORT_DIPSETTING( 0x01, "10")
+ PORT_DIPSETTING( 0x02, "15")
+ PORT_DIPSETTING( 0x03, "20")
+ PORT_DIPSETTING( 0x04, "25")
+ PORT_DIPSETTING( 0x05, "30")
+ PORT_DIPSETTING( 0x06, "35")
+ PORT_DIPSETTING( 0x07, "40")
+ PORT_DIPNAME( 0x08, 0x08, "Credits displayed")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x08, DEF_STR( On ))
+ PORT_DIPNAME( 0x10, 0x10, "Match")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "S22 (game specific)")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "S23 (game specific)")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
+ PORT_DIPNAME( 0x80, 0x00, "S24 (game specific)")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
+
+ PORT_START("SW.3")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
+
+ PORT_START("SW.4")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
+
+ PORT_START("SW.5")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
+
+ PORT_START("SW.6")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
+
+ PORT_START("SW.7")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
+
+ PORT_START("SW.8")
+ PORT_START("SW.9")
+ PORT_START("SW.10")
INPUT_PORTS_END
+READ8_MEMBER( inder_state::io_r )
+{
+ return m_switches[m_row]->read();
+}
+
+WRITE8_MEMBER( inder_state::io_w )
+{
+ m_row = offset;
+}
+
+WRITE8_MEMBER( inder_state::disp_w )
+{
+ UINT8 i;
+ if (offset < 5)
+ m_segment[offset] = data;
+ else
+ {
+ offset = (offset >> 3) & 7;
+ for (i = 0; i < 5; i++)
+ output_set_digit_value(i*10+offset, m_segment[i]);
+ }
+}
+
+
void inder_state::machine_reset()
{
+ m_row = 0;
}
-DRIVER_INIT_MEMBER(inder_state,inder)
+DRIVER_INIT_MEMBER( inder_state, inder )
{
}
static MACHINE_CONFIG_START( inder, inder_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, 2500000)
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2)
MCFG_CPU_PROGRAM_MAP(inder_map)
+ MCFG_CPU_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE556
+
+ MCFG_NVRAM_ADD_1FILL("nvram")
+
+ /* Video */
+ MCFG_DEFAULT_LAYOUT(layout_inder)
+
+ /* Sound */
+ MCFG_FRAGMENT_ADD( genpin_audio )
+
+ /* Devices */
+ MCFG_DEVICE_ADD("ppi", I8255A, 0 )
+ //MCFG_I8255_IN_PORTA_CB(READ8(inder_state, porta_r))
+ //MCFG_I8255_OUT_PORTA_CB(WRITE8(inder_state, porta_w))
+ //MCFG_I8255_IN_PORTB_CB(READ8(inder_state, portb_r))
+ //MCFG_I8255_OUT_PORTB_CB(WRITE8(inder_state, portb_w))
+ //MCFG_I8255_IN_PORTC_CB(READ8(inder_state, portc_r))
+ //MCFG_I8255_OUT_PORTC_CB(WRITE8(inder_state, portc_w))
MACHINE_CONFIG_END
/*-------------------------------------------------------------------
@@ -49,8 +275,10 @@ MACHINE_CONFIG_END
ROM_START(ind250cc)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("0-250cc.bin", 0x0000, 0x2000, CRC(753d82ec) SHA1(61950336ba571f9f75f2fc31ccb7beaf4e05dddc))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("a-250cc.bin", 0x00000, 0x2000, CRC(b64bdafb) SHA1(eab6d54d34b44187d454c1999e4bcf455183d5a0))
+
ROM_REGION(0x40000, "user1", 0)
ROM_LOAD("b-250cc.bin", 0x00000, 0x10000, CRC(884c31c8) SHA1(23a838f1f0cb4905fa8552579b5452134f0fc9cc))
ROM_LOAD("c-250cc.bin", 0x10000, 0x10000, CRC(5a1dfa1d) SHA1(4957431d87be0bb6d27910b718f7b7edcd405fff))
@@ -65,8 +293,10 @@ ROM_START(atleta)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("atleta0.cpu", 0x0000, 0x2000, CRC(5f27240f) SHA1(8b77862fa311d703b3af8a1db17e13b17dca7ec6))
ROM_LOAD("atleta1.cpu", 0x2000, 0x2000, CRC(12bef582) SHA1(45e1da318141d9228bc91a4e09fff6bf6f194235))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("atletaa.snd", 0x00000, 0x2000, CRC(051c5329) SHA1(339115af4a2e3f1f2c31073cbed1842518d5916e))
+
ROM_REGION(0x40000, "user1", 0)
ROM_LOAD("atletab.snd", 0x0000, 0x10000, CRC(7f155828) SHA1(e459c81b2c2e47d4276344d8d6a08c2c6242f941))
ROM_LOAD("atletac.snd", 0x10000, 0x10000, CRC(20456363) SHA1(b226400dac35dedc039a7e03cb525c6033b24ebc))
@@ -98,8 +328,10 @@ ROM_END
ROM_START(pinclown)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("clown_a.bin", 0x0000, 0x2000, CRC(b7c3f9ab) SHA1(89ede10d9e108089da501b28f53cd7849f791a00))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("clown_b.bin", 0x00000, 0x2000, CRC(81a66302) SHA1(3d1243ae878747f20e54cd3322c5a54ded45ce21))
+
ROM_REGION(0x40000, "user1", 0)
ROM_LOAD("clown_c.bin", 0x00000, 0x10000, CRC(dff89319) SHA1(3745a02c3755d11ea7fb552f7a5df2e8bbee2c29))
ROM_LOAD("clown_d.bin", 0x10000, 0x10000, CRC(cce4e1dc) SHA1(561c9331d2d110d34cf250cd7b25be16a72a1d79))
@@ -113,8 +345,10 @@ ROM_END
ROM_START(corsario)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("0-corsar.bin", 0x0000, 0x2000, CRC(800f6895) SHA1(a222e7ea959629202686815646fc917ffc5a646c))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("a-corsar.bin", 0x00000, 0x2000, CRC(e14b7918) SHA1(5a5fc308b0b70fe041b81071ba4820782b6ff988))
+
ROM_REGION(0x40000, "user1", 0)
ROM_LOAD("b-corsar.bin", 0x00000, 0x10000, CRC(7f155828) SHA1(e459c81b2c2e47d4276344d8d6a08c2c6242f941))
ROM_LOAD("c-corsar.bin", 0x10000, 0x10000, CRC(047fd722) SHA1(2385507459f85c68141adc7084cb51dfa02462f6))
@@ -128,8 +362,10 @@ ROM_END
ROM_START(mundial)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("mundial.cpu", 0x0000, 0x2000, CRC(b615e69b) SHA1(d129eb6f2943af40ddffd0da1e7a711b58f65b3c))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("snd11.bin", 0x00000, 0x2000, CRC(2cebc1a5) SHA1(e0dae2b1ce31ff436b55ceb1ec71d39fc56694da))
+
ROM_REGION(0x40000, "user1", 0)
ROM_LOAD("snd24.bin", 0x00000, 0x10000, CRC(603bfc3c) SHA1(8badd9731243270ce5b8003373ed09ec7eac6ca6))
ROM_LOAD("snd23.bin", 0x10000, 0x10000, CRC(2868ce6f) SHA1(317457763f764be08cbe6a5dd4008ba2257c9d78))
@@ -144,6 +380,7 @@ ROM_START(lapbylap)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("lblr0.bin", 0x0000, 0x1000, CRC(2970f31a) SHA1(01fb774de19944bb3a19577921f84ab5b6746afb))
ROM_LOAD("lblr1.bin", 0x1000, 0x1000, CRC(94787c10) SHA1(f2a5b07e57222ee811982eb220c239e34a358d6f))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("lblsr0.bin", 0x00000, 0x2000, CRC(cbaddf02) SHA1(8207eebc414d90328bfd521190d508b88bb870a2))
ROM_END
@@ -154,8 +391,10 @@ ROM_END
ROM_START(pinmoonl)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("ci-3.bin", 0x0000, 0x2000, CRC(56b901ae) SHA1(7269d1a100c378b21454f9f80f5bd9fbb736c222))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("ci-11.bin", 0x00000, 0x2000, CRC(a0732fe4) SHA1(54f62cd81bdb7e1924acb67ddbe43eb3d0a4eab0))
+
ROM_REGION(0x40000, "user1", 0)
ROM_LOAD("ci-24.bin", 0x00000, 0x10000, CRC(6406bd18) SHA1(ae45ed9e8b1fd278a36a68b780352dbbb6ee781e))
ROM_LOAD("ci-23.bin", 0x10000, 0x10000, CRC(eac346da) SHA1(7c4c26ae089dda0dcd7300fd1ecabf5a91099c41))
@@ -170,24 +409,28 @@ ROM_START(metalman)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("cpu_0.bin", 0x00000, 0x02000, CRC(7fe4335b) SHA1(52ef2efa29337eebd8c2c9a8aec864356a6829b6))
ROM_LOAD("cpu_1.bin", 0x02000, 0x02000, CRC(2cca735e) SHA1(6a76017dfbcac0d57fcec8f07f92d5e04dd3e00b))
+
ROM_REGION(0x10000, "soundcpu", 0)
ROM_LOAD("sound_e1.bin", 0x00000, 0x02000, CRC(55e889e8) SHA1(0a240868c1b17762588c0ed9a14f568a6e50f409))
+
ROM_REGION(0x80000, "user1", 0)
ROM_LOAD("sound_e2.bin", 0x00000, 0x20000, CRC(5ac61535) SHA1(75b9a805f8639554251192e3777073c29952c78f))
+
ROM_REGION(0x10000, "soundcpu2", 0)
ROM_LOAD("sound_m1.bin", 0x00000, 0x02000, CRC(21a9ee1d) SHA1(d906ac7d6e741f05e81076a5be33fc763f0de9c1))
+
ROM_REGION(0x80000, "user2", 0)
ROM_LOAD("sound_m2.bin", 0x00000, 0x20000, CRC(349df1fe) SHA1(47e7ddbdc398396e40bb5340e5edcb8baf06c255))
ROM_LOAD("sound_m3.bin", 0x40000, 0x20000, CRC(4d9f5ed2) SHA1(bc6b7c70369c25eddddac5304497f30cee7675d4))
ROM_END
-GAME(1992, ind250cc, 0, inder, inder, inder_state, inder, ROT0, "Inder", "250 CC", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, atleta, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Atleta", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, brvteam, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Brave Team", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, canasta, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Canasta '86'", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, pinclown, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Clown (Inder)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, corsario, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Corsario", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, mundial, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Mundial 90", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, pinmoonl, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Moon Light (Inder)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, metalman, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Metal Man", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, lapbylap, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Lap By Lap", GAME_IS_SKELETON_MECHANICAL)
+GAME(1985, brvteam, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Brave Team", GAME_IS_SKELETON_MECHANICAL)
+GAME(1986, canasta, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Canasta '86'", GAME_IS_SKELETON_MECHANICAL)
+GAME(1986, lapbylap, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Lap By Lap", GAME_IS_SKELETON_MECHANICAL)
+GAME(1987, pinmoonl, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Moon Light (Inder)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1988, pinclown, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Clown (Inder)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1989, corsario, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Corsario", GAME_IS_SKELETON_MECHANICAL)
+GAME(1990, mundial, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Mundial 90", GAME_IS_SKELETON_MECHANICAL)
+GAME(1991, atleta, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Atleta", GAME_IS_SKELETON_MECHANICAL)
+GAME(1992, ind250cc, 0, inder, inder, inder_state, inder, ROT0, "Inder", "250 CC", GAME_IS_SKELETON_MECHANICAL)
+GAME(1992, metalman, 0, inder, inder, inder_state, inder, ROT0, "Inder", "Metal Man", GAME_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/layout/inder.lay b/src/mame/layout/inder.lay
new file mode 100644
index 00000000000..c7d1b2c6c99
--- /dev/null
+++ b/src/mame/layout/inder.lay
@@ -0,0 +1,150 @@
+<!-- Inder copied from jeutel.lay -->
+
+<!-- 2014-09-03: 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="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="318" bottom="394" />
+ </backdrop>
+
+ <!-- LEDs -->
+
+ <!-- Player 1 Score -->
+
+ <bezel name="digit6" element="digit">
+ <bounds left="10" top="45" right="44" bottom="84" />
+ </bezel>
+ <bezel name="digit5" element="digit">
+ <bounds left="54" top="45" right="88" bottom="84" />
+ </bezel>
+ <bezel name="digit4" element="digit">
+ <bounds left="98" top="45" right="132" bottom="84" />
+ </bezel>
+ <bezel name="digit3" element="digit">
+ <bounds left="142" top="45" right="176" bottom="84" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds left="186" top="45" right="220" bottom="84" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds left="230" top="45" right="264" bottom="84" />
+ </bezel>
+ <bezel name="digit0" element="digit">
+ <bounds left="274" top="45" right="308" bottom="84" />
+ </bezel>
+
+ <!-- Player 2 Score -->
+ <bezel name="digit16" element="digit">
+ <bounds left="10" top="105" right="44" bottom="144" />
+ </bezel>
+ <bezel name="digit15" element="digit">
+ <bounds left="54" top="105" right="88" bottom="144" />
+ </bezel>
+ <bezel name="digit14" element="digit">
+ <bounds left="98" top="105" right="132" bottom="144" />
+ </bezel>
+ <bezel name="digit13" element="digit">
+ <bounds left="142" top="105" right="176" bottom="144" />
+ </bezel>
+ <bezel name="digit12" element="digit">
+ <bounds left="186" top="105" right="220" bottom="144" />
+ </bezel>
+ <bezel name="digit11" element="digit">
+ <bounds left="230" top="105" right="264" bottom="144" />
+ </bezel>
+ <bezel name="digit10" element="digit">
+ <bounds left="274" top="105" right="308" bottom="144" />
+ </bezel>
+
+ <!-- Player 3 Score -->
+ <bezel name="digit26" element="digit">
+ <bounds left="10" top="165" right="44" bottom="204" />
+ </bezel>
+ <bezel name="digit25" element="digit">
+ <bounds left="54" top="165" right="88" bottom="204" />
+ </bezel>
+ <bezel name="digit24" element="digit">
+ <bounds left="98" top="165" right="132" bottom="204" />
+ </bezel>
+ <bezel name="digit23" element="digit">
+ <bounds left="142" top="165" right="176" bottom="204" />
+ </bezel>
+ <bezel name="digit22" element="digit">
+ <bounds left="186" top="165" right="220" bottom="204" />
+ </bezel>
+ <bezel name="digit21" element="digit">
+ <bounds left="230" top="165" right="264" bottom="204" />
+ </bezel>
+ <bezel name="digit20" element="digit">
+ <bounds left="274" top="165" right="308" bottom="204" />
+ </bezel>
+
+ <!-- Player 4 Score -->
+ <bezel name="digit36" element="digit">
+ <bounds left="10" top="225" right="44" bottom="264" />
+ </bezel>
+ <bezel name="digit35" element="digit">
+ <bounds left="54" top="225" right="88" bottom="264" />
+ </bezel>
+ <bezel name="digit34" element="digit">
+ <bounds left="98" top="225" right="132" bottom="264" />
+ </bezel>
+ <bezel name="digit33" element="digit">
+ <bounds left="142" top="225" right="176" bottom="264" />
+ </bezel>
+ <bezel name="digit32" element="digit">
+ <bounds left="186" top="225" right="220" bottom="264" />
+ </bezel>
+ <bezel name="digit31" element="digit">
+ <bounds left="230" top="225" right="264" bottom="264" />
+ </bezel>
+ <bezel name="digit30" element="digit">
+ <bounds left="274" top="225" right="308" bottom="264" />
+ </bezel>
+
+ <!-- Credits and Balls -->
+ <bezel name="digit41" element="digit">
+ <bounds left="30" top="345" right="64" bottom="384" />
+ </bezel>
+ <bezel name="digit40" element="digit">
+ <bounds left="69" top="345" right="103" bottom="384" />
+ </bezel>
+ <bezel name="digit42" element="digit">
+ <bounds left="171" top="345" right="205" bottom="384" />
+ </bezel>
+ <bezel name="digit45" element="digit">
+ <bounds left="210" top="345" right="244" bottom="384" />
+ </bezel>
+ <bezel element="P1"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
+ <bezel element="P0"><bounds left="50" right="108" 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>
+ </view>
+</mamelayout>
diff --git a/src/mame/mame.mak b/src/mame/mame.mak
index 4f13f7866e8..a52a599b472 100644
--- a/src/mame/mame.mak
+++ b/src/mame/mame.mak
@@ -2648,6 +2648,8 @@ $(DRIVERS)/igspoker.o: $(LAYOUT)/igspoker.lh
$(DRIVERS)/imolagp.o: $(LAYOUT)/imolagp.lh
+$(DRIVERS)/inder.o: $(LAYOUT)/inder.lh
+
$(DRIVERS)/jankenmn.o: $(LAYOUT)/jankenmn.lh
$(DRIVERS)/jeutel.o: $(LAYOUT)/jeutel.lh