trunk/src/mame/layout/jeutel.lay
| r0 | r31710 | |
| 1 | <!-- Jeutel copied from hankin.lay --> |
| 2 | |
| 3 | <!-- 2014-08-20: Initial version. [Robbbert] --> |
| 4 | |
| 5 | <mamelayout version="2"> |
| 6 | |
| 7 | <element name="digit" defstate="0"> |
| 8 | <led14seg> |
| 9 | <color red="0.0" green="0.75" blue="1.0" /> |
| 10 | </led14seg> |
| 11 | </element> |
| 12 | <element name="red_led"> |
| 13 | <disk><color red="1.0" green="0.0" blue="0.0" /></disk> |
| 14 | </element> |
| 15 | <element name="background"> |
| 16 | <rect> |
| 17 | <bounds left="0" top="0" right="1" bottom="1" /> |
| 18 | <color red="0.0" green="0.0" blue="0.0" /> |
| 19 | </rect> |
| 20 | </element> |
| 21 | <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 22 | <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 23 | <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 24 | <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 25 | <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 26 | <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element> |
| 27 | |
| 28 | <view name="Default Layout"> |
| 29 | |
| 30 | <!-- Background --> |
| 31 | <backdrop element="background"> |
| 32 | <bounds left="0" top="20" right="318" bottom="394" /> |
| 33 | </backdrop> |
| 34 | |
| 35 | <!-- LEDs --> |
| 36 | |
| 37 | <!-- Player 1 Score --> |
| 38 | |
| 39 | <bezel name="digit6" element="digit"> |
| 40 | <bounds left="10" top="45" right="44" bottom="84" /> |
| 41 | </bezel> |
| 42 | <bezel name="digit5" element="digit"> |
| 43 | <bounds left="54" top="45" right="88" bottom="84" /> |
| 44 | </bezel> |
| 45 | <bezel name="digit4" element="digit"> |
| 46 | <bounds left="98" top="45" right="132" bottom="84" /> |
| 47 | </bezel> |
| 48 | <bezel name="digit3" element="digit"> |
| 49 | <bounds left="142" top="45" right="176" bottom="84" /> |
| 50 | </bezel> |
| 51 | <bezel name="digit2" element="digit"> |
| 52 | <bounds left="186" top="45" right="220" bottom="84" /> |
| 53 | </bezel> |
| 54 | <bezel name="digit1" element="digit"> |
| 55 | <bounds left="230" top="45" right="264" bottom="84" /> |
| 56 | </bezel> |
| 57 | <bezel name="digit0" element="digit"> |
| 58 | <bounds left="274" top="45" right="308" bottom="84" /> |
| 59 | </bezel> |
| 60 | |
| 61 | <!-- Player 2 Score --> |
| 62 | <bezel name="digit16" element="digit"> |
| 63 | <bounds left="10" top="105" right="44" bottom="144" /> |
| 64 | </bezel> |
| 65 | <bezel name="digit15" element="digit"> |
| 66 | <bounds left="54" top="105" right="88" bottom="144" /> |
| 67 | </bezel> |
| 68 | <bezel name="digit14" element="digit"> |
| 69 | <bounds left="98" top="105" right="132" bottom="144" /> |
| 70 | </bezel> |
| 71 | <bezel name="digit13" element="digit"> |
| 72 | <bounds left="142" top="105" right="176" bottom="144" /> |
| 73 | </bezel> |
| 74 | <bezel name="digit12" element="digit"> |
| 75 | <bounds left="186" top="105" right="220" bottom="144" /> |
| 76 | </bezel> |
| 77 | <bezel name="digit11" element="digit"> |
| 78 | <bounds left="230" top="105" right="264" bottom="144" /> |
| 79 | </bezel> |
| 80 | <bezel name="digit10" element="digit"> |
| 81 | <bounds left="274" top="105" right="308" bottom="144" /> |
| 82 | </bezel> |
| 83 | |
| 84 | <!-- Player 3 Score --> |
| 85 | <bezel name="digit26" element="digit"> |
| 86 | <bounds left="10" top="165" right="44" bottom="204" /> |
| 87 | </bezel> |
| 88 | <bezel name="digit25" element="digit"> |
| 89 | <bounds left="54" top="165" right="88" bottom="204" /> |
| 90 | </bezel> |
| 91 | <bezel name="digit24" element="digit"> |
| 92 | <bounds left="98" top="165" right="132" bottom="204" /> |
| 93 | </bezel> |
| 94 | <bezel name="digit23" element="digit"> |
| 95 | <bounds left="142" top="165" right="176" bottom="204" /> |
| 96 | </bezel> |
| 97 | <bezel name="digit22" element="digit"> |
| 98 | <bounds left="186" top="165" right="220" bottom="204" /> |
| 99 | </bezel> |
| 100 | <bezel name="digit21" element="digit"> |
| 101 | <bounds left="230" top="165" right="264" bottom="204" /> |
| 102 | </bezel> |
| 103 | <bezel name="digit20" element="digit"> |
| 104 | <bounds left="274" top="165" right="308" bottom="204" /> |
| 105 | </bezel> |
| 106 | |
| 107 | <!-- Player 4 Score --> |
| 108 | <bezel name="digit36" element="digit"> |
| 109 | <bounds left="10" top="225" right="44" bottom="264" /> |
| 110 | </bezel> |
| 111 | <bezel name="digit35" element="digit"> |
| 112 | <bounds left="54" top="225" right="88" bottom="264" /> |
| 113 | </bezel> |
| 114 | <bezel name="digit34" element="digit"> |
| 115 | <bounds left="98" top="225" right="132" bottom="264" /> |
| 116 | </bezel> |
| 117 | <bezel name="digit33" element="digit"> |
| 118 | <bounds left="142" top="225" right="176" bottom="264" /> |
| 119 | </bezel> |
| 120 | <bezel name="digit32" element="digit"> |
| 121 | <bounds left="186" top="225" right="220" bottom="264" /> |
| 122 | </bezel> |
| 123 | <bezel name="digit31" element="digit"> |
| 124 | <bounds left="230" top="225" right="264" bottom="264" /> |
| 125 | </bezel> |
| 126 | <bezel name="digit30" element="digit"> |
| 127 | <bounds left="274" top="225" right="308" bottom="264" /> |
| 128 | </bezel> |
| 129 | |
| 130 | <!-- Credits and Balls --> |
| 131 | <bezel name="digit41" element="digit"> |
| 132 | <bounds left="30" top="345" right="64" bottom="384" /> |
| 133 | </bezel> |
| 134 | <bezel name="digit40" element="digit"> |
| 135 | <bounds left="69" top="345" right="103" bottom="384" /> |
| 136 | </bezel> |
| 137 | <bezel name="digit44" element="digit"> |
| 138 | <bounds left="171" top="345" right="205" bottom="384" /> |
| 139 | </bezel> |
| 140 | <bezel name="digit43" element="digit"> |
| 141 | <bounds left="210" top="345" right="244" bottom="384" /> |
| 142 | </bezel> |
| 143 | <bezel element="P1"><bounds left="200" right="258" top="330" bottom="342" /></bezel> |
| 144 | <bezel element="P0"><bounds left="50" right="108" top="330" bottom="342" /></bezel> |
| 145 | <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel> |
| 146 | <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel> |
| 147 | <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel> |
| 148 | <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel> |
| 149 | <bezel name="led0" element="red_led"> |
| 150 | <bounds left="10" right="25" top="360" bottom="375" /></bezel> |
| 151 | </view> |
| 152 | </mamelayout> |
trunk/src/mame/drivers/jeutel.c
| r31709 | r31710 | |
| 1 | 1 | /******************************************************************************* |
| 2 | 2 | |
| 3 | | Pinball |
| 4 | | Jeutel |
| 3 | PINBALL |
| 4 | Jeutel |
| 5 | 5 | |
| 6 | There are at least 7 machines from this manufacturer. Unable to find anything |
| 7 | technical at all... so will be using PinMAME as the reference. |
| 8 | |
| 9 | ToDo: |
| 10 | - Everything! |
| 11 | - Each machine has 4 players, 7-digit, 12-segment florescent display |
| 12 | |
| 6 | 13 | ********************************************************************************/ |
| 7 | 14 | |
| 8 | | #include "emu.h" |
| 15 | #include "machine/genpin.h" |
| 9 | 16 | #include "cpu/z80/z80.h" |
| 17 | #include "machine/i8255.h" |
| 18 | #include "sound/ay8910.h" |
| 19 | #include "sound/tms5110.h" |
| 20 | #include "jeutel.lh" |
| 10 | 21 | |
| 11 | | class jeutel_state : public driver_device |
| 22 | class jeutel_state : public genpin_class |
| 12 | 23 | { |
| 13 | 24 | public: |
| 14 | 25 | jeutel_state(const machine_config &mconfig, device_type type, const char *tag) |
| 15 | | : driver_device(mconfig, type, tag), |
| 16 | | m_maincpu(*this, "maincpu") |
| 26 | : genpin_class(mconfig, type, tag) |
| 27 | , m_maincpu(*this, "maincpu") |
| 17 | 28 | { } |
| 18 | 29 | |
| 19 | | protected: |
| 20 | | |
| 21 | | // devices |
| 30 | DECLARE_DRIVER_INIT(jeutel); |
| 31 | private: |
| 32 | virtual void machine_reset(); |
| 22 | 33 | required_device<cpu_device> m_maincpu; |
| 23 | | |
| 24 | | // driver_device overrides |
| 25 | | virtual void machine_reset(); |
| 26 | | public: |
| 27 | | DECLARE_DRIVER_INIT(jeutel); |
| 28 | 34 | }; |
| 29 | 35 | |
| 30 | 36 | |
| 31 | 37 | static ADDRESS_MAP_START( jeutel_map, AS_PROGRAM, 8, jeutel_state ) |
| 32 | 38 | ADDRESS_MAP_UNMAP_HIGH |
| 33 | 39 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
| 34 | | AM_RANGE(0xc000, 0xc7ff) AM_RAM |
| 35 | | //AM_RANGE(0xe000, 0xe003) AM_READWRITE ppi8255_2 |
| 40 | AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("shared") |
| 41 | AM_RANGE(0xc400, 0xc7ff) AM_RAM |
| 42 | AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) |
| 36 | 43 | ADDRESS_MAP_END |
| 37 | 44 | |
| 38 | 45 | static ADDRESS_MAP_START( jeutel_cpu2, AS_PROGRAM, 8, jeutel_state ) |
| 39 | 46 | ADDRESS_MAP_UNMAP_HIGH |
| 40 | 47 | AM_RANGE(0x0000, 0x0fff) AM_ROM |
| 41 | | //AM_RANGE(0x2000, 0x2003) AM_WRITE ppi8255_0 |
| 42 | | //AM_RANGE(0x3000, 0x3003) AM_WRITE ppi8255_1 |
| 43 | | //AM_RANGE(0x4000, 0x4000) AM_WRITENOP |
| 48 | AM_RANGE(0x2000, 0x2003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) |
| 49 | AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) |
| 50 | AM_RANGE(0x4000, 0x4000) AM_WRITENOP |
| 44 | 51 | AM_RANGE(0x8000, 0x83ff) AM_RAM |
| 52 | AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("shared") |
| 45 | 53 | ADDRESS_MAP_END |
| 46 | 54 | |
| 47 | 55 | static ADDRESS_MAP_START( jeutel_cpu3, AS_PROGRAM, 8, jeutel_state ) |
| r31709 | r31710 | |
| 52 | 60 | |
| 53 | 61 | static ADDRESS_MAP_START( jeutel_cpu3_io, AS_IO, 8, jeutel_state ) |
| 54 | 62 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 55 | | //AM_RANGE(0x00, 0x00) AM_WRITE AY8910_control_port_0_w |
| 56 | | //AM_RANGE(0x01, 0x01) AM_WRITE AY8910_write_port_0_w |
| 57 | | //AM_RANGE(0x04, 0x04) AM_READ(AY8910_read_port_0_r) |
| 63 | AM_RANGE(0x00, 0x00) AM_DEVWRITE("aysnd", ay8910_device, address_w) |
| 64 | AM_RANGE(0x01, 0x01) AM_DEVWRITE("aysnd", ay8910_device, data_w) |
| 65 | AM_RANGE(0x04, 0x04) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 58 | 66 | ADDRESS_MAP_END |
| 59 | 67 | |
| 60 | 68 | static INPUT_PORTS_START( jeutel ) |
| r31709 | r31710 | |
| 64 | 72 | { |
| 65 | 73 | } |
| 66 | 74 | |
| 67 | | DRIVER_INIT_MEMBER(jeutel_state,jeutel) |
| 75 | DRIVER_INIT_MEMBER( jeutel_state, jeutel ) |
| 68 | 76 | { |
| 69 | 77 | } |
| 70 | 78 | |
| r31709 | r31710 | |
| 77 | 85 | MCFG_CPU_ADD("cpu3", Z80, 3300000) |
| 78 | 86 | MCFG_CPU_PROGRAM_MAP(jeutel_cpu3) |
| 79 | 87 | MCFG_CPU_IO_MAP(jeutel_cpu3_io) |
| 88 | |
| 89 | /* Video */ |
| 90 | MCFG_DEFAULT_LAYOUT(layout_jeutel) |
| 91 | |
| 92 | /* Sound */ |
| 93 | MCFG_FRAGMENT_ADD( genpin_audio ) |
| 94 | |
| 95 | /* sound hardware */ |
| 96 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 97 | |
| 98 | MCFG_SOUND_ADD("aysnd", AY8910, 639450) |
| 99 | //MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1")) |
| 100 | //MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2")) |
| 101 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) |
| 102 | |
| 103 | MCFG_SOUND_ADD("tms", TMS5110A, 640000) |
| 104 | //MCFG_TMS5110_M0_CB(DEVWRITELINE("tmsprom", tmsprom_device, m0_w)) |
| 105 | //MCFG_TMS5110_DATA_CB(DEVREADLINE("tmsprom", tmsprom_device, data_r)) |
| 106 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 107 | |
| 108 | /* Devices */ |
| 109 | MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0) |
| 110 | //MCFG_I8255_IN_PORTA_CB(IOPORT("P1")) |
| 111 | //MCFG_I8255_OUT_PORTA_CB(WRITE8(jeutel_state, port_C_w)) |
| 112 | //MCFG_I8255_IN_PORTB_CB(IOPORT("P2")) |
| 113 | //MCFG_I8255_OUT_PORTB_CB(WRITE8(jeutel_state, port_C_w)) |
| 114 | //MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA")) |
| 115 | //MCFG_I8255_OUT_PORTC_CB(WRITE8(jeutel_state, port_C_w)) |
| 116 | |
| 117 | MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0) |
| 118 | //MCFG_I8255_IN_PORTA_CB(IOPORT("P1")) |
| 119 | //MCFG_I8255_OUT_PORTA_CB(WRITE8(jeutel_state, port_C_w)) |
| 120 | //MCFG_I8255_IN_PORTB_CB(IOPORT("P2")) |
| 121 | //MCFG_I8255_OUT_PORTB_CB(WRITE8(jeutel_state, port_C_w)) |
| 122 | //MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA")) |
| 123 | //MCFG_I8255_OUT_PORTC_CB(WRITE8(jeutel_state, port_C_w)) |
| 124 | |
| 125 | MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) |
| 126 | //MCFG_I8255_IN_PORTA_CB(IOPORT("P1")) |
| 127 | //MCFG_I8255_OUT_PORTA_CB(WRITE8(jeutel_state, port_C_w)) |
| 128 | //MCFG_I8255_IN_PORTB_CB(IOPORT("P2")) |
| 129 | //MCFG_I8255_OUT_PORTB_CB(WRITE8(jeutel_state, port_C_w)) |
| 130 | //MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA")) |
| 131 | //MCFG_I8255_OUT_PORTC_CB(WRITE8(jeutel_state, port_C_w)) |
| 132 | |
| 80 | 133 | MACHINE_CONFIG_END |
| 81 | 134 | |
| 82 | 135 | /*-------------------------------- |