Previous 199869 Revisions Next

r18711 Thursday 25th October, 2012 at 19:26:27 UTC by Robbbert
Williams Pinball WIP to fix reported error.
[src/mame]mame.mak
[src/mame/drivers]s3.c s4.c s6.c s6a.c
[src/mame/layout]s3.lay s4.lay* s6.lay* s6a.lay*

trunk/src/mame/layout/s3.lay
r18710r18711
99         <color red="1.0" green="0.25" blue="0.0" />
1010      </led7seg>
1111   </element>
12
12   <element name="red_led">
13      <disk><color red="1.0" green="0.0" blue="0.0" /></disk>
14   </element>
1315   <element name="background">
1416      <rect>
1517         <bounds left="0" top="0" right="1" bottom="1" />
r18710r18711
132134      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
133135      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
134136      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
137      <bezel name="led0" element="red_led">
138         <bounds left="110" right="125" top="360" bottom="375" /></bezel>
139      <bezel name="led1" element="red_led">
140         <bounds left="144" right="159" top="360" bottom="375" /></bezel>
135141   </view>
136142</mamelayout>
trunk/src/mame/layout/s4.lay
r0r18711
1<!-- s4.lay -->
2
3<!-- 2012-10-23: Initial version.  [Robbbert] -->
4
5<mamelayout version="2">
6
7   <element name="digit" defstate="0">
8      <led7seg>
9         <color red="1.0" green="0.25" blue="0.0" />
10      </led7seg>
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="274" bottom="394" />
33      </backdrop>
34
35      <!-- LEDs -->
36
37      <!-- Player 1 Score -->
38
39      <bezel name="digit0" element="digit">
40         <bounds left="10" top="45" right="44" bottom="84" />
41      </bezel>
42      <bezel name="digit1" element="digit">
43         <bounds left="54" top="45" right="88" bottom="84" />
44      </bezel>
45      <bezel name="digit2" 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="digit4" element="digit">
52         <bounds left="186" top="45" right="220" bottom="84" />
53      </bezel>
54      <bezel name="digit5" element="digit">
55         <bounds left="230" top="45" right="264" bottom="84" />
56      </bezel>
57
58      <!-- Player 2 Score -->
59      <bezel name="digit8" element="digit">
60         <bounds left="10" top="105" right="44" bottom="144" />
61      </bezel>
62      <bezel name="digit9" element="digit">
63         <bounds left="54" top="105" right="88" bottom="144" />
64      </bezel>
65      <bezel name="digit10" element="digit">
66         <bounds left="98" top="105" right="132" bottom="144" />
67      </bezel>
68      <bezel name="digit11" element="digit">
69         <bounds left="142" top="105" right="176" bottom="144" />
70      </bezel>
71      <bezel name="digit12" element="digit">
72         <bounds left="186" top="105" right="220" bottom="144" />
73      </bezel>
74      <bezel name="digit13" element="digit">
75         <bounds left="230" top="105" right="264" bottom="144" />
76      </bezel>
77
78      <!-- Player 3 Score -->
79      <bezel name="digit16" element="digit">
80         <bounds left="10" top="165" right="44" bottom="204" />
81      </bezel>
82      <bezel name="digit17" element="digit">
83         <bounds left="54" top="165" right="88" bottom="204" />
84      </bezel>
85      <bezel name="digit18" element="digit">
86         <bounds left="98" top="165" right="132" bottom="204" />
87      </bezel>
88      <bezel name="digit19" element="digit">
89         <bounds left="142" top="165" right="176" bottom="204" />
90      </bezel>
91      <bezel name="digit20" element="digit">
92         <bounds left="186" top="165" right="220" bottom="204" />
93      </bezel>
94      <bezel name="digit21" element="digit">
95         <bounds left="230" top="165" right="264" bottom="204" />
96      </bezel>
97
98      <!-- Player 4 Score -->
99      <bezel name="digit24" element="digit">
100         <bounds left="10" top="225" right="44" bottom="264" />
101      </bezel>
102      <bezel name="digit25" element="digit">
103         <bounds left="54" top="225" right="88" bottom="264" />
104      </bezel>
105      <bezel name="digit26" element="digit">
106         <bounds left="98" top="225" right="132" bottom="264" />
107      </bezel>
108      <bezel name="digit27" element="digit">
109         <bounds left="142" top="225" right="176" bottom="264" />
110      </bezel>
111      <bezel name="digit28" element="digit">
112         <bounds left="186" top="225" right="220" bottom="264" />
113      </bezel>
114      <bezel name="digit29" element="digit">
115         <bounds left="230" top="225" right="264" bottom="264" />
116      </bezel>
117
118      <!-- Credits and Balls -->
119      <bezel name="digit14" element="digit">
120         <bounds left="10" top="345" right="44" bottom="384" />
121      </bezel>
122      <bezel name="digit15" element="digit">
123         <bounds left="54" top="345" right="88" bottom="384" />
124      </bezel>
125      <bezel name="digit8" element="digit">
126         <bounds left="186" top="345" right="220" bottom="384" />
127      </bezel>
128      <bezel name="digit7" element="digit">
129         <bounds left="230" top="345" right="264" bottom="384" />
130      </bezel>
131      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
132      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
133      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
134      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
135      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
136      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
137      <bezel name="led0" element="red_led">
138         <bounds left="110" right="125" top="360" bottom="375" /></bezel>
139      <bezel name="led1" element="red_led">
140         <bounds left="144" right="159" top="360" bottom="375" /></bezel>
141   </view>
142</mamelayout>
trunk/src/mame/layout/s6.lay
r0r18711
1<!-- s6.lay -->
2
3<!-- 2012-10-24: Initial version.  [Robbbert] -->
4
5<mamelayout version="2">
6
7   <element name="digit" defstate="0">
8      <led7seg>
9         <color red="1.0" green="0.25" blue="0.0" />
10      </led7seg>
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="274" bottom="394" />
33      </backdrop>
34
35      <!-- LEDs -->
36
37      <!-- Player 1 Score -->
38
39      <bezel name="digit0" element="digit">
40         <bounds left="10" top="45" right="44" bottom="84" />
41      </bezel>
42      <bezel name="digit1" element="digit">
43         <bounds left="54" top="45" right="88" bottom="84" />
44      </bezel>
45      <bezel name="digit2" 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="digit4" element="digit">
52         <bounds left="186" top="45" right="220" bottom="84" />
53      </bezel>
54      <bezel name="digit5" element="digit">
55         <bounds left="230" top="45" right="264" bottom="84" />
56      </bezel>
57
58      <!-- Player 2 Score -->
59      <bezel name="digit8" element="digit">
60         <bounds left="10" top="105" right="44" bottom="144" />
61      </bezel>
62      <bezel name="digit9" element="digit">
63         <bounds left="54" top="105" right="88" bottom="144" />
64      </bezel>
65      <bezel name="digit10" element="digit">
66         <bounds left="98" top="105" right="132" bottom="144" />
67      </bezel>
68      <bezel name="digit11" element="digit">
69         <bounds left="142" top="105" right="176" bottom="144" />
70      </bezel>
71      <bezel name="digit12" element="digit">
72         <bounds left="186" top="105" right="220" bottom="144" />
73      </bezel>
74      <bezel name="digit13" element="digit">
75         <bounds left="230" top="105" right="264" bottom="144" />
76      </bezel>
77
78      <!-- Player 3 Score -->
79      <bezel name="digit16" element="digit">
80         <bounds left="10" top="165" right="44" bottom="204" />
81      </bezel>
82      <bezel name="digit17" element="digit">
83         <bounds left="54" top="165" right="88" bottom="204" />
84      </bezel>
85      <bezel name="digit18" element="digit">
86         <bounds left="98" top="165" right="132" bottom="204" />
87      </bezel>
88      <bezel name="digit19" element="digit">
89         <bounds left="142" top="165" right="176" bottom="204" />
90      </bezel>
91      <bezel name="digit20" element="digit">
92         <bounds left="186" top="165" right="220" bottom="204" />
93      </bezel>
94      <bezel name="digit21" element="digit">
95         <bounds left="230" top="165" right="264" bottom="204" />
96      </bezel>
97
98      <!-- Player 4 Score -->
99      <bezel name="digit24" element="digit">
100         <bounds left="10" top="225" right="44" bottom="264" />
101      </bezel>
102      <bezel name="digit25" element="digit">
103         <bounds left="54" top="225" right="88" bottom="264" />
104      </bezel>
105      <bezel name="digit26" element="digit">
106         <bounds left="98" top="225" right="132" bottom="264" />
107      </bezel>
108      <bezel name="digit27" element="digit">
109         <bounds left="142" top="225" right="176" bottom="264" />
110      </bezel>
111      <bezel name="digit28" element="digit">
112         <bounds left="186" top="225" right="220" bottom="264" />
113      </bezel>
114      <bezel name="digit29" element="digit">
115         <bounds left="230" top="225" right="264" bottom="264" />
116      </bezel>
117
118      <!-- Credits and Balls -->
119      <bezel name="digit14" element="digit">
120         <bounds left="10" top="345" right="44" bottom="384" />
121      </bezel>
122      <bezel name="digit15" element="digit">
123         <bounds left="54" top="345" right="88" bottom="384" />
124      </bezel>
125      <bezel name="digit8" element="digit">
126         <bounds left="186" top="345" right="220" bottom="384" />
127      </bezel>
128      <bezel name="digit7" element="digit">
129         <bounds left="230" top="345" right="264" bottom="384" />
130      </bezel>
131      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
132      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
133      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
134      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
135      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
136      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
137      <bezel name="led0" element="red_led">
138         <bounds left="110" right="125" top="360" bottom="375" /></bezel>
139      <bezel name="led1" element="red_led">
140         <bounds left="144" right="159" top="360" bottom="375" /></bezel>
141   </view>
142</mamelayout>
trunk/src/mame/layout/s6a.lay
r0r18711
1<!-- s6a.lay -->
2
3<!-- 2012-10-24: Initial version.  [Robbbert] -->
4
5<mamelayout version="2">
6
7   <element name="digit" defstate="0">
8      <led7seg>
9         <color red="1.0" green="0.25" blue="0.0" />
10      </led7seg>
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="274" bottom="394" />
33      </backdrop>
34
35      <!-- LEDs -->
36
37      <!-- Player 1 Score -->
38
39      <bezel name="digit0" element="digit">
40         <bounds left="10" top="45" right="44" bottom="84" />
41      </bezel>
42      <bezel name="digit1" element="digit">
43         <bounds left="54" top="45" right="88" bottom="84" />
44      </bezel>
45      <bezel name="digit2" 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="digit4" element="digit">
52         <bounds left="186" top="45" right="220" bottom="84" />
53      </bezel>
54      <bezel name="digit5" element="digit">
55         <bounds left="230" top="45" right="264" bottom="84" />
56      </bezel>
57
58      <!-- Player 2 Score -->
59      <bezel name="digit8" element="digit">
60         <bounds left="10" top="105" right="44" bottom="144" />
61      </bezel>
62      <bezel name="digit9" element="digit">
63         <bounds left="54" top="105" right="88" bottom="144" />
64      </bezel>
65      <bezel name="digit10" element="digit">
66         <bounds left="98" top="105" right="132" bottom="144" />
67      </bezel>
68      <bezel name="digit11" element="digit">
69         <bounds left="142" top="105" right="176" bottom="144" />
70      </bezel>
71      <bezel name="digit12" element="digit">
72         <bounds left="186" top="105" right="220" bottom="144" />
73      </bezel>
74      <bezel name="digit13" element="digit">
75         <bounds left="230" top="105" right="264" bottom="144" />
76      </bezel>
77
78      <!-- Player 3 Score -->
79      <bezel name="digit16" element="digit">
80         <bounds left="10" top="165" right="44" bottom="204" />
81      </bezel>
82      <bezel name="digit17" element="digit">
83         <bounds left="54" top="165" right="88" bottom="204" />
84      </bezel>
85      <bezel name="digit18" element="digit">
86         <bounds left="98" top="165" right="132" bottom="204" />
87      </bezel>
88      <bezel name="digit19" element="digit">
89         <bounds left="142" top="165" right="176" bottom="204" />
90      </bezel>
91      <bezel name="digit20" element="digit">
92         <bounds left="186" top="165" right="220" bottom="204" />
93      </bezel>
94      <bezel name="digit21" element="digit">
95         <bounds left="230" top="165" right="264" bottom="204" />
96      </bezel>
97
98      <!-- Player 4 Score -->
99      <bezel name="digit24" element="digit">
100         <bounds left="10" top="225" right="44" bottom="264" />
101      </bezel>
102      <bezel name="digit25" element="digit">
103         <bounds left="54" top="225" right="88" bottom="264" />
104      </bezel>
105      <bezel name="digit26" element="digit">
106         <bounds left="98" top="225" right="132" bottom="264" />
107      </bezel>
108      <bezel name="digit27" element="digit">
109         <bounds left="142" top="225" right="176" bottom="264" />
110      </bezel>
111      <bezel name="digit28" element="digit">
112         <bounds left="186" top="225" right="220" bottom="264" />
113      </bezel>
114      <bezel name="digit29" element="digit">
115         <bounds left="230" top="225" right="264" bottom="264" />
116      </bezel>
117
118      <!-- Credits and Balls -->
119      <bezel name="digit14" element="digit">
120         <bounds left="10" top="345" right="44" bottom="384" />
121      </bezel>
122      <bezel name="digit15" element="digit">
123         <bounds left="54" top="345" right="88" bottom="384" />
124      </bezel>
125      <bezel name="digit8" element="digit">
126         <bounds left="186" top="345" right="220" bottom="384" />
127      </bezel>
128      <bezel name="digit7" element="digit">
129         <bounds left="230" top="345" right="264" bottom="384" />
130      </bezel>
131      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
132      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
133      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
134      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
135      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
136      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
137      <bezel name="led0" element="red_led">
138         <bounds left="110" right="125" top="360" bottom="375" /></bezel>
139      <bezel name="led1" element="red_led">
140         <bounds left="144" right="159" top="360" bottom="375" /></bezel>
141   </view>
142</mamelayout>
trunk/src/mame/drivers/s6.c
r18710r18711
1/*
1/***********************************************************************************
2
3    Pinball
24    Williams System 6
3*/
45
6    After starting a game, nothing much works.
57
6#include "emu.h"
8
9ToDo:
10- Almost Everything
11
12
13************************************************************************************/
14
15
16#include "machine/genpin.h"
717#include "cpu/m6800/m6800.h"
18#include "machine/6821pia.h"
19#include "sound/dac.h"
20#include "s6.lh"
821
9class williams_s6_state : public driver_device
22
23class s6_state : public genpin_class
1024{
1125public:
12   williams_s6_state(const machine_config &mconfig, device_type type, const char *tag)
13      : driver_device(mconfig, type, tag),
14        m_maincpu(*this, "maincpu")
26   s6_state(const machine_config &mconfig, device_type type, const char *tag)
27      : genpin_class(mconfig, type, tag),
28   m_maincpu(*this, "maincpu"),
29   m_dac(*this, "dac"),
30   m_pia0(*this, "pia0"),
31   m_pia1(*this, "pia1"),
32   m_pia2(*this, "pia2"),
33   m_pia3(*this, "pia3"),
34   m_pia4(*this, "pia4")
1535   { }
1636
37   DECLARE_READ8_MEMBER(dac_r);
38   DECLARE_WRITE8_MEMBER(dac_w);
39   DECLARE_WRITE8_MEMBER(dig0_w);
40   DECLARE_WRITE8_MEMBER(dig1_w);
41   DECLARE_WRITE8_MEMBER(lamp0_w);
42   DECLARE_WRITE8_MEMBER(lamp1_w);
43   DECLARE_WRITE8_MEMBER(sol0_w);
44   DECLARE_WRITE8_MEMBER(sol1_w);
45   DECLARE_READ8_MEMBER(switch_r);
46   DECLARE_WRITE8_MEMBER(switch_w);
47   DECLARE_READ_LINE_MEMBER(cb1_r);
48   TIMER_DEVICE_CALLBACK_MEMBER(irq);
49   DECLARE_INPUT_CHANGED_MEMBER(nmi);
50   DECLARE_MACHINE_RESET(s6);
1751protected:
1852
1953   // devices
2054   required_device<cpu_device> m_maincpu;
21
22   // driver_device overrides
23   virtual void machine_reset();
24public:
25   DECLARE_DRIVER_INIT(williams_s6);
55   optional_device<dac_device> m_dac;
56   required_device<pia6821_device> m_pia0;
57   required_device<pia6821_device> m_pia1;
58   required_device<pia6821_device> m_pia2;
59   required_device<pia6821_device> m_pia3;
60   optional_device<pia6821_device> m_pia4;
61private:
62   UINT8 m_t_c;
63   UINT8 m_sound_data;
64   UINT8 m_strobe;
65   UINT8 m_kbdrow;
66   bool m_cb1;
67   bool m_data_ok;
2668};
2769
70static ADDRESS_MAP_START( s6_main_map, AS_PROGRAM, 8, s6_state )
71   ADDRESS_MAP_GLOBAL_MASK(0x7fff)
72   AM_RANGE(0x0000, 0x00ff) AM_RAM
73   AM_RANGE(0x0100, 0x01ff) AM_RAM AM_SHARE("nvram")
74   AM_RANGE(0x2200, 0x2203) AM_DEVREADWRITE("pia0", pia6821_device, read, write) // solenoids
75   AM_RANGE(0x2400, 0x2403) AM_DEVREADWRITE("pia1", pia6821_device, read, write) // lamps
76   AM_RANGE(0x2800, 0x2803) AM_DEVREADWRITE("pia2", pia6821_device, read, write) // display
77   AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pia3", pia6821_device, read, write) // inputs
78   AM_RANGE(0x6000, 0x7fff) AM_ROM
79ADDRESS_MAP_END
2880
29static ADDRESS_MAP_START( williams_s6_map, AS_PROGRAM, 8, williams_s6_state )
30   AM_RANGE(0x0000, 0xffff) AM_NOP
81static ADDRESS_MAP_START( s6_audio_map, AS_PROGRAM, 8, s6_state )
82   ADDRESS_MAP_GLOBAL_MASK(0x7fff)
83   AM_RANGE(0x0000, 0x007f) AM_RAM
84   AM_RANGE(0x0400, 0x0403) AM_DEVREADWRITE("pia4", pia6821_device, read, write) // sounds
85   AM_RANGE(0x0800, 0x7fff) AM_ROM
3186ADDRESS_MAP_END
3287
33static INPUT_PORTS_START( williams_s6 )
88static INPUT_PORTS_START( s6 )
89   PORT_START("X0")
90   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
91   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
92   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
93   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
94   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
95   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
96   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
97   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
98
99   PORT_START("X1")
100   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
101   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
102   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
103   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
104   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
105   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
106   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER )
107   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )
108
109   PORT_START("X2")
110   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
111   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
112   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
113   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F)
114   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
115   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H)
116   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
117   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
118
119   PORT_START("X4")
120   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
121   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
122   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
123   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
124   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
125   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
126   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
127   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
128
129   PORT_START("X8")
130   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
131   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
132   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
133   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
134   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
135   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
136   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
137   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
138
139   PORT_START("X10")
140   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
141   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
142   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
143   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
144   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
145   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
146   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
147   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
148
149   PORT_START("X20")
150   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
151
152   PORT_START("X40")
153   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
154
155   PORT_START("X80")
156   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
157
158   PORT_START("SND")
159   PORT_BIT( 0xbf, IP_ACTIVE_LOW, IPT_UNUSED )
160   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Music") PORT_CODE(KEYCODE_9) PORT_TOGGLE
161
162   PORT_START("DIAGS")
163   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Diagnostic") PORT_CODE(KEYCODE_0) PORT_CHANGED_MEMBER(DEVICE_SELF, s6_state, nmi, 1)
34164INPUT_PORTS_END
35165
36void williams_s6_state::machine_reset()
166MACHINE_RESET_MEMBER( s6_state, s6 )
37167{
168   m_t_c = 0;
38169}
39170
40DRIVER_INIT_MEMBER(williams_s6_state,williams_s6)
171INPUT_CHANGED_MEMBER( s6_state::nmi )
41172{
173   // Diagnostic button sends a pulse to NMI pin
174   if (newval==CLEAR_LINE)
175      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
42176}
43177
44static MACHINE_CONFIG_START( williams_s6, williams_s6_state )
178WRITE8_MEMBER( s6_state::sol0_w )
179{
180   if (BIT(data, 4))
181      m_samples->start(2, 5); // outhole
182}
183
184WRITE8_MEMBER( s6_state::sol1_w )
185{
186   m_sound_data = ioport("SND")->read(); // 0xff or 0xbf
187   if (BIT(data, 0))
188      m_sound_data &= 0xfe;
189   else
190   if (BIT(data, 1))
191      m_sound_data &= 0xfd;
192   else
193   if (BIT(data, 2))
194      m_sound_data &= 0xfb;
195   else
196   if (BIT(data, 3))
197      m_sound_data &= 0xf7;
198   else
199   if (BIT(data, 4))
200      m_sound_data &= 0x7f;
201
202   if ((m_sound_data & 0xbf) == 0xbf)
203   {
204      m_cb1 = 0;
205      m_pia4->cb1_w(0);
206   }
207   else
208   {
209      m_cb1 = 1;
210      m_pia4->cb1_w(1);
211   }
212
213   if (BIT(data, 5))
214      m_samples->start(0, 6); // knocker
215}
216
217static const pia6821_interface pia0_intf =
218{
219   DEVCB_NULL,      /* port A in */
220   DEVCB_NULL,      /* port B in */
221   DEVCB_LINE_GND,      /* line CA1 in */
222   DEVCB_LINE_GND,      /* line CB1 in */
223   DEVCB_NULL,      /* line CA2 in */
224   DEVCB_NULL,      /* line CB2 in */
225   DEVCB_DRIVER_MEMBER(s6_state, sol0_w),      /* port A out */
226   DEVCB_DRIVER_MEMBER(s6_state, sol1_w),      /* port B out */
227   DEVCB_NULL,      /* line CA2 out */
228   DEVCB_NULL,      /* port CB2 out */
229   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
230   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
231};
232
233WRITE8_MEMBER( s6_state::lamp0_w )
234{
235   m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE);
236}
237
238WRITE8_MEMBER( s6_state::lamp1_w )
239{
240}
241
242static const pia6821_interface pia1_intf =
243{
244   DEVCB_NULL,      /* port A in */
245   DEVCB_NULL,      /* port B in */
246   DEVCB_LINE_GND,      /* line CA1 in */
247   DEVCB_LINE_GND,      /* line CB1 in */
248   DEVCB_NULL,      /* line CA2 in */
249   DEVCB_NULL,      /* line CB2 in */
250   DEVCB_DRIVER_MEMBER(s6_state, lamp0_w),      /* port A out */
251   DEVCB_DRIVER_MEMBER(s6_state, lamp1_w),      /* port B out */
252   DEVCB_NULL,      /* line CA2 out */
253   DEVCB_NULL,      /* port CB2 out */
254   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
255   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
256};
257
258WRITE8_MEMBER( s6_state::dig0_w )
259{
260   m_strobe = data;
261   m_data_ok = true;
262}
263
264WRITE8_MEMBER( s6_state::dig1_w )
265{
266   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
267   if (m_data_ok)
268   {
269      output_set_digit_value(m_strobe+16, patterns[data&15]);
270      output_set_digit_value(m_strobe, patterns[data>>4]);
271   }
272   m_data_ok = false;
273}
274
275static const pia6821_interface pia2_intf =
276{
277   DEVCB_NULL,      /* port A in */
278   DEVCB_NULL,      /* port B in */
279   DEVCB_NULL,      /* line CA1 in */
280   DEVCB_NULL,      /* line CB1 in */
281   DEVCB_NULL,      /* line CA2 in */
282   DEVCB_NULL,      /* line CB2 in */
283   DEVCB_DRIVER_MEMBER(s6_state, dig0_w),      /* port A out */
284   DEVCB_DRIVER_MEMBER(s6_state, dig1_w),      /* port B out */
285   DEVCB_NULL,      /* line CA2 out */
286   DEVCB_NULL,      /* port CB2 out */
287   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
288   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
289};
290
291READ8_MEMBER( s6_state::switch_r )
292{
293   char kbdrow[8];
294   sprintf(kbdrow,"X%X",m_kbdrow);
295   return ioport(kbdrow)->read();
296}
297
298WRITE8_MEMBER( s6_state::switch_w )
299{
300   m_kbdrow = data;
301}
302
303static const pia6821_interface pia3_intf =
304{
305   DEVCB_DRIVER_MEMBER(s6_state, switch_r),      /* port A in */
306   DEVCB_NULL,      /* port B in */
307   DEVCB_LINE_GND,      /* line CA1 in */
308   DEVCB_LINE_GND,      /* line CB1 in */
309   DEVCB_NULL,      /* line CA2 in */
310   DEVCB_NULL,      /* line CB2 in */
311   DEVCB_NULL,      /* port A out */
312   DEVCB_DRIVER_MEMBER(s6_state, switch_w),      /* port B out */
313   DEVCB_NULL,      /* line CA2 out */
314   DEVCB_NULL,      /* port CB2 out */
315   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
316   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
317};
318
319READ_LINE_MEMBER( s6_state::cb1_r )
320{
321   return m_cb1;
322}
323
324READ8_MEMBER( s6_state::dac_r )
325{
326   return m_sound_data;   
327}
328
329WRITE8_MEMBER( s6_state::dac_w )
330{
331   m_dac->write_unsigned8(data);
332}
333
334static const pia6821_interface pia4_intf =
335{
336   DEVCB_NULL,      /* port A in */
337   DEVCB_DRIVER_MEMBER(s6_state, dac_r),      /* port B in */
338   DEVCB_NULL,      /* line CA1 in */
339   DEVCB_DRIVER_LINE_MEMBER(s6_state, cb1_r),      /* line CB1 in */
340   DEVCB_NULL,      /* line CA2 in */
341   DEVCB_NULL,      /* line CB2 in */
342   DEVCB_DRIVER_MEMBER(s6_state, dac_w),      /* port A out */
343   DEVCB_NULL,      /* port B out */
344   DEVCB_NULL,      /* line CA2 out */
345   DEVCB_NULL,      /* port CB2 out */
346   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE),      /* IRQA */
347   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE)      /* IRQB */
348};
349
350TIMER_DEVICE_CALLBACK_MEMBER( s6_state::irq)
351{
352   if (m_t_c > 0x70)
353      m_maincpu->set_input_line(M6800_IRQ_LINE, ASSERT_LINE);
354   else
355      m_t_c++;
356}
357
358static MACHINE_CONFIG_START( s6, s6_state )
45359   /* basic machine hardware */
46   MCFG_CPU_ADD("maincpu", M6800, 1000000)
47   MCFG_CPU_PROGRAM_MAP(williams_s6_map)
360   MCFG_CPU_ADD("maincpu", M6802, 3580000) // 6802 or 6808 could be used here
361   MCFG_CPU_PROGRAM_MAP(s6_main_map)
362   MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s6_state, irq, attotime::from_hz(1000))
363   MCFG_MACHINE_RESET_OVERRIDE(s6_state, s6)
364
365   /* Video */
366   MCFG_DEFAULT_LAYOUT(layout_s6)
367
368   /* Sound */
369   MCFG_FRAGMENT_ADD( genpin_audio )
370
371   /* Devices */
372   MCFG_PIA6821_ADD("pia0", pia0_intf)
373   MCFG_PIA6821_ADD("pia1", pia1_intf)
374   MCFG_PIA6821_ADD("pia2", pia2_intf)
375   MCFG_PIA6821_ADD("pia3", pia3_intf)
376   MCFG_NVRAM_ADD_1FILL("nvram")
377
378   /* Add the soundcard */
379   MCFG_CPU_ADD("audiocpu", M6802, 3580000)
380   MCFG_CPU_PROGRAM_MAP(s6_audio_map)
381   MCFG_SPEAKER_STANDARD_MONO("mono")
382   MCFG_SOUND_ADD("dac", DAC, 0)
383   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
384   MCFG_PIA6821_ADD("pia4", pia4_intf)
48385MACHINE_CONFIG_END
49386
387/*--------------------------------
388/ Tri Zone - Sys.4 (Game #487)
389/-------------------------------*/
390ROM_START(trizn_l1)
391   ROM_REGION(0x10000, "maincpu", 0)
392   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(757091c5) SHA1(00dac6c19b08d2528ea293619c4a39499a1a02c2))
393   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
394   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
395
396   ROM_REGION(0x10000, "audiocpu", 0)
397   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
398ROM_END
399
400ROM_START(trizn_t1)
401   ROM_REGION(0x10000, "maincpu", 0)
402   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(757091c5) SHA1(00dac6c19b08d2528ea293619c4a39499a1a02c2))
403   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
404   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
405
406   ROM_REGION(0x10000, "audiocpu", 0)
407   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
408ROM_END
409
410/*--------------------------------
411/ Time Warp - Sys.4 (Game #489)
412/-------------------------------*/
413ROM_START(tmwrp_l2)
414   ROM_REGION(0x10000, "maincpu", 0)
415   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(b168df09) SHA1(d4c97714636ce51be2e5f8cc5af89e10a2f82ac7))
416   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
417   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
418
419   ROM_REGION(0x10000, "audiocpu", 0)
420   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
421ROM_END
422
423ROM_START(tmwrp_t2)
424   ROM_REGION(0x10000, "maincpu", 0)
425   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(b168df09) SHA1(d4c97714636ce51be2e5f8cc5af89e10a2f82ac7))
426   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
427   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
428
429   ROM_REGION(0x10000, "audiocpu", 0)
430   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
431ROM_END
432
433/*--------------------------------
434/ Laser Ball - Sys.6 (Game #493)
435/-------------------------------*/
436ROM_START(lzbal_l2)
437   ROM_REGION(0x10000, "maincpu", 0)
438   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(9c5ffe2f) SHA1(f0db627abaeb8c023a3ccc75262e236c998a5d6f))
439   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
440   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
441
442   ROM_REGION(0x10000, "audiocpu", 0)
443   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
444ROM_END
445
446ROM_START(lzbal_t2)
447   ROM_REGION(0x10000, "maincpu", 0)
448   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(9c5ffe2f) SHA1(f0db627abaeb8c023a3ccc75262e236c998a5d6f))
449   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
450   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
451
452   ROM_REGION(0x10000, "audiocpu", 0)
453   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
454ROM_END
455
456/*-----------------------------
457/ Scorpion - Sys.6 (Game #494)
458/----------------------------*/
459ROM_START(scrpn_l1)
460   ROM_REGION(0x10000, "maincpu", 0)
461   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(881109a9) SHA1(53d4275c76b47b68a74209fe660d943a51e90eca))
462   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
463   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
464
465   ROM_REGION(0x10000, "audiocpu", 0)
466   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
467ROM_END
468
469ROM_START(scrpn_t1)
470   ROM_REGION(0x10000, "maincpu", 0)
471   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(881109a9) SHA1(53d4275c76b47b68a74209fe660d943a51e90eca))
472   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
473   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
474
475   ROM_REGION(0x10000, "audiocpu", 0)
476   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
477ROM_END
478
50479/*----------------------------
51480/ Blackout - Sys.6 (Game #495)
52481/---------------------------*/
53482ROM_START(blkou_l1)
54483   ROM_REGION(0x10000, "maincpu", 0)
55484   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(4b407ae2) SHA1(46a2afcfc2d969c5acae18b57a678265257a6102))
56   ROM_RELOAD( 0xe000, 0x0800)
485   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
57486   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
58   ROM_RELOAD( 0xf800, 0x0800)
59   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
60   ROM_RELOAD( 0xf000, 0x0800)
61   ROM_REGION(0x10000, "cpu2", 0)
62   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
63   ROM_RELOAD( 0xf800, 0x0800)
487
488   ROM_REGION(0x10000, "audiocpu", 0)
64489   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(87864071) SHA1(d03c71efc0431f30a07c8194c0614c96fb683710))
65   ROM_RELOAD( 0xb000, 0x1000)
66490   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(046a96d8) SHA1(879127a88b3640bbb202c64cbf8678869c964177))
67   ROM_RELOAD( 0xc000, 0x1000)
68491   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(0104e5c4) SHA1(c073cb4bdea189085ae074e9c16872752b6ffba0))
69   ROM_RELOAD( 0xd000, 0x1000)
492   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
70493ROM_END
71494
72495ROM_START(blkou_t1)
73496   ROM_REGION(0x10000, "maincpu", 0)
74497   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(4b407ae2) SHA1(46a2afcfc2d969c5acae18b57a678265257a6102))
75   ROM_RELOAD( 0xe000, 0x0800)
498   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
76499   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
77   ROM_RELOAD( 0xf800, 0x0800)
78   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
79   ROM_RELOAD( 0xf000, 0x0800)
80   ROM_REGION(0x10000, "cpu2", 0)
81   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
82   ROM_RELOAD( 0xf800, 0x0800)
500
501   ROM_REGION(0x10000, "audiocpu", 0)
83502   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(87864071) SHA1(d03c71efc0431f30a07c8194c0614c96fb683710))
84   ROM_RELOAD( 0xb000, 0x1000)
85503   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(046a96d8) SHA1(879127a88b3640bbb202c64cbf8678869c964177))
86   ROM_RELOAD( 0xc000, 0x1000)
87504   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(0104e5c4) SHA1(c073cb4bdea189085ae074e9c16872752b6ffba0))
88   ROM_RELOAD( 0xd000, 0x1000)
505   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
89506ROM_END
90507
91508ROM_START(blkou_f1)
92509   ROM_REGION(0x10000, "maincpu", 0)
93510   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(4b407ae2) SHA1(46a2afcfc2d969c5acae18b57a678265257a6102))
94   ROM_RELOAD( 0xe000, 0x0800)
511   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
95512   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
96   ROM_RELOAD( 0xf800, 0x0800)
97   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
98   ROM_RELOAD( 0xf000, 0x0800)
99   ROM_REGION(0x10000, "cpu2", 0)
100   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
101   ROM_RELOAD( 0xf800, 0x0800)
513
514   ROM_REGION(0x10000, "audiocpu", 0)
102515   ROM_LOAD("speech7f.532", 0x3000, 0x1000, CRC(bdc1b0b1) SHA1(c78f8653dfe3ec58722a8a17da7924e4a76cf692))
103   ROM_RELOAD( 0xb000, 0x1000)
104516   ROM_LOAD("speech6f.532", 0x4000, 0x1000, CRC(9b7e4ae9) SHA1(137b5ec871162329cb7ca3a62da3193382223d8a))
105   ROM_RELOAD( 0xc000, 0x1000)
106517   ROM_LOAD("speech5f.532", 0x5000, 0x1000, CRC(9040f34a) SHA1(529eae0b58f3300f2b9bdf40c5ca7f4b29425dff))
107   ROM_RELOAD( 0xd000, 0x1000)
108518   ROM_LOAD("speech4f.532", 0x6000, 0x1000, CRC(29c4abde) SHA1(b3af7b8d0c2548f5c0bb240aa1dc5cc59bb2af9a))
109   ROM_RELOAD( 0xe000, 0x1000)
519   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
110520ROM_END
111521
112/*-------------------------------
113/ Firepower - Sys.6 (Game #497)
114/------------------------------*/
115ROM_START(frpwr_l6)
116   ROM_REGION(0x10000, "maincpu", 0)
117   ROM_LOAD("gamerom.716", 0x6800, 0x0800, CRC(fdd3b983) SHA1(fb5d1eb01589311cf4b2ef16e25db03d40bca2f7))
118   ROM_RELOAD( 0xe800, 0x0800)
119   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
120   ROM_RELOAD( 0xf800, 0x0800)
121   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
122   ROM_RELOAD( 0xf000, 0x0800)
123   ROM_LOAD("prom1_6.474", 0x6000, 0x0200, CRC(af6eb0b9) SHA1(28f8366737e09ffd60cb5ea55a5734143cdb9663))
124   ROM_RELOAD( 0xe000, 0x0200)
125   ROM_LOAD("prom2.474", 0x6200, 0x0200, CRC(f75ade1a) SHA1(a5572c5c721dbcb82988b709f4ef2119118e37c2))
126   ROM_RELOAD( 0xe000, 0x0200)
127   ROM_LOAD("prom3.474", 0x6400, 0x0200, CRC(242ec687) SHA1(c3366c898a66c78034687e6a6000193d52be4141))
128   ROM_RELOAD( 0xe000, 0x0200)
129   ROM_REGION(0x10000, "cpu2", 0)
130   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
131   ROM_RELOAD( 0xf800, 0x0800)
132   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(94c5c0a7) SHA1(ff7c618d1666c1d5c3319fdd72c1af2846659290))
133   ROM_RELOAD( 0xb000, 0x1000)
134   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(1737fdd2) SHA1(6307e0ae715e97294ee8aaaeb2e2bebb0cb590c2))
135   ROM_RELOAD( 0xc000, 0x1000)
136   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(e56f7aa2) SHA1(cb922c3f4d91285dda4ccae880c2d798a82fd51b))
137   ROM_RELOAD( 0xd000, 0x1000)
138ROM_END
139
140ROM_START(frpwr_t6)
141   ROM_REGION(0x10000, "maincpu", 0)
142   ROM_LOAD("gamerom.716", 0x6800, 0x0800, CRC(fdd3b983) SHA1(fb5d1eb01589311cf4b2ef16e25db03d40bca2f7))
143   ROM_RELOAD( 0xe800, 0x0800)
144   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
145   ROM_RELOAD( 0xf800, 0x0800)
146   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
147   ROM_RELOAD( 0xf000, 0x0800)
148   ROM_LOAD("prom1_6.474", 0x6000, 0x0200, CRC(af6eb0b9) SHA1(28f8366737e09ffd60cb5ea55a5734143cdb9663))
149   ROM_RELOAD( 0xe000, 0x0200)
150   ROM_LOAD("prom2.474", 0x6200, 0x0200, CRC(f75ade1a) SHA1(a5572c5c721dbcb82988b709f4ef2119118e37c2))
151   ROM_RELOAD( 0xe000, 0x0200)
152   ROM_LOAD("prom3.474", 0x6400, 0x0200, CRC(242ec687) SHA1(c3366c898a66c78034687e6a6000193d52be4141))
153   ROM_RELOAD( 0xe000, 0x0200)
154   ROM_REGION(0x10000, "cpu2", 0)
155   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
156   ROM_RELOAD( 0xf800, 0x0800)
157   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(94c5c0a7) SHA1(ff7c618d1666c1d5c3319fdd72c1af2846659290))
158   ROM_RELOAD( 0xb000, 0x1000)
159   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(1737fdd2) SHA1(6307e0ae715e97294ee8aaaeb2e2bebb0cb590c2))
160   ROM_RELOAD( 0xc000, 0x1000)
161   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(e56f7aa2) SHA1(cb922c3f4d91285dda4ccae880c2d798a82fd51b))
162   ROM_RELOAD( 0xd000, 0x1000)
163ROM_END
164
165ROM_START(frpwr_l2)
166   ROM_REGION(0x10000, "maincpu", 0)
167   ROM_LOAD("gamerom.716", 0x6800, 0x0800, CRC(fdd3b983) SHA1(fb5d1eb01589311cf4b2ef16e25db03d40bca2f7))
168   ROM_RELOAD( 0xe800, 0x0800)
169   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
170   ROM_RELOAD( 0xf800, 0x0800)
171   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
172   ROM_RELOAD( 0xf000, 0x0800)
173   ROM_LOAD("prom1.474", 0x6000, 0x0200, CRC(fbb7299f) SHA1(0ae9dbdc6ed8315596bf755ece34691671dc8d44))
174   ROM_RELOAD( 0xe000, 0x0200)
175   ROM_LOAD("prom2.474", 0x6200, 0x0200, CRC(f75ade1a) SHA1(a5572c5c721dbcb82988b709f4ef2119118e37c2))
176   ROM_RELOAD( 0xe000, 0x0200)
177   ROM_LOAD("prom3.474", 0x6400, 0x0200, CRC(242ec687) SHA1(c3366c898a66c78034687e6a6000193d52be4141))
178   ROM_RELOAD( 0xe000, 0x0200)
179   ROM_REGION(0x10000, "cpu2", 0)
180   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
181   ROM_RELOAD( 0xf800, 0x0800)
182   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(94c5c0a7) SHA1(ff7c618d1666c1d5c3319fdd72c1af2846659290))
183   ROM_RELOAD( 0xb000, 0x1000)
184   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(1737fdd2) SHA1(6307e0ae715e97294ee8aaaeb2e2bebb0cb590c2))
185   ROM_RELOAD( 0xc000, 0x1000)
186   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(e56f7aa2) SHA1(cb922c3f4d91285dda4ccae880c2d798a82fd51b))
187   ROM_RELOAD( 0xd000, 0x1000)
188ROM_END
189
190522/*--------------------------
191523/ Gorgar - Sys.6 (Game #496)
192524/-------------------------*/
193525ROM_START(grgar_l1)
194526   ROM_REGION(0x10000, "maincpu", 0)
195527   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(1c6f3e48) SHA1(ba5536e6fbcaf3709277fe27827d7f75c1889ba3))
196   ROM_RELOAD( 0xe000, 0x0800)
528   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
197529   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
198   ROM_RELOAD( 0xf800, 0x0800)
199   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
200   ROM_RELOAD( 0xf000, 0x0800)
201   ROM_REGION(0x10000, "cpu2", 0)
202   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
203   ROM_RELOAD( 0xf800, 0x0800)
530
531   ROM_REGION(0x10000, "audiocpu", 0)
204532   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(0b1879e3) SHA1(2c34a815f598b4413e9229e8eb1322ec9e7cc9d6))
205   ROM_RELOAD( 0xb000, 0x1000)
206533   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(0ceaef37) SHA1(33b5f5286b8588162d56dbc5c9a8ccb70d3b9090))
207   ROM_RELOAD( 0xc000, 0x1000)
208534   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(218290b9) SHA1(6afeff1413895489e92a4bb1c05f6de5773dbb6a))
209   ROM_RELOAD( 0xd000, 0x1000)
535   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
210536ROM_END
211537
212538ROM_START(grgar_t1)
213539   ROM_REGION(0x10000, "maincpu", 0)
214540   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(1c6f3e48) SHA1(ba5536e6fbcaf3709277fe27827d7f75c1889ba3))
215   ROM_RELOAD( 0xe000, 0x0800)
541   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
216542   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
217   ROM_RELOAD( 0xf800, 0x0800)
218   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
219   ROM_RELOAD( 0xf000, 0x0800)
220   ROM_REGION(0x10000, "cpu2", 0)
221   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
222   ROM_RELOAD( 0xf800, 0x0800)
543
544   ROM_REGION(0x10000, "audiocpu", 0)
223545   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(0b1879e3) SHA1(2c34a815f598b4413e9229e8eb1322ec9e7cc9d6))
224   ROM_RELOAD( 0xb000, 0x1000)
225546   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(0ceaef37) SHA1(33b5f5286b8588162d56dbc5c9a8ccb70d3b9090))
226   ROM_RELOAD( 0xc000, 0x1000)
227547   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(218290b9) SHA1(6afeff1413895489e92a4bb1c05f6de5773dbb6a))
228   ROM_RELOAD( 0xd000, 0x1000)
548   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
229549ROM_END
230550
231/*--------------------------------
232/ Laser Ball - Sys.6 (Game #493)
233/-------------------------------*/
234ROM_START(lzbal_l2)
551/*-------------------------------
552/ Firepower - Sys.6 (Game #497)
553/------------------------------*/
554ROM_START(frpwr_l6)
235555   ROM_REGION(0x10000, "maincpu", 0)
236   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(9c5ffe2f) SHA1(f0db627abaeb8c023a3ccc75262e236c998a5d6f))
237   ROM_RELOAD( 0xe000, 0x0800)
556   ROM_LOAD("prom2.474", 0x6200, 0x0200, CRC(f75ade1a) SHA1(a5572c5c721dbcb82988b709f4ef2119118e37c2))
557   ROM_LOAD("prom3.474", 0x6400, 0x0200, CRC(242ec687) SHA1(c3366c898a66c78034687e6a6000193d52be4141))
558   ROM_LOAD("gamerom.716", 0x6800, 0x0800, CRC(fdd3b983) SHA1(fb5d1eb01589311cf4b2ef16e25db03d40bca2f7))
559   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
238560   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
239   ROM_RELOAD( 0xf800, 0x0800)
240   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
241   ROM_RELOAD( 0xf000, 0x0800)
242   ROM_REGION(0x10000, "cpu2", 0)
243   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
244   ROM_RELOAD( 0xf800, 0x0800)
245ROM_END
561   ROM_LOAD("prom1_6.474", 0x6000, 0x0200, CRC(af6eb0b9) SHA1(28f8366737e09ffd60cb5ea55a5734143cdb9663))
246562
247ROM_START(lzbal_t2)
248   ROM_REGION(0x10000, "maincpu", 0)
249   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(9c5ffe2f) SHA1(f0db627abaeb8c023a3ccc75262e236c998a5d6f))
250   ROM_RELOAD( 0xe000, 0x0800)
251   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
252   ROM_RELOAD( 0xf800, 0x0800)
253   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
254   ROM_RELOAD( 0xf000, 0x0800)
255   ROM_REGION(0x10000, "cpu2", 0)
256   ROM_LOAD("sound2.716", 0x7800, 0x0800, CRC(c9103a68) SHA1(cc77af54fdb192f0b334d9d1028210618c3f1d95))
257   ROM_RELOAD( 0xf800, 0x0800)
563   ROM_REGION(0x10000, "audiocpu", 0)
564   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(94c5c0a7) SHA1(ff7c618d1666c1d5c3319fdd72c1af2846659290))
565   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(1737fdd2) SHA1(6307e0ae715e97294ee8aaaeb2e2bebb0cb590c2))
566   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(e56f7aa2) SHA1(cb922c3f4d91285dda4ccae880c2d798a82fd51b))
567   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
258568ROM_END
259569
260/*--------------------------------
261/ Time Warp - Sys.4 (Game #489)
262/-------------------------------*/
263ROM_START(tmwrp_l2)
570ROM_START(frpwr_t6)
264571   ROM_REGION(0x10000, "maincpu", 0)
265   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(b168df09) SHA1(d4c97714636ce51be2e5f8cc5af89e10a2f82ac7))
266   ROM_RELOAD( 0xe000, 0x0800)
267   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
268   ROM_RELOAD( 0xf800, 0x0800)
572   ROM_LOAD("prom1_6.474", 0x6000, 0x0200, CRC(af6eb0b9) SHA1(28f8366737e09ffd60cb5ea55a5734143cdb9663))
573   ROM_LOAD("prom2.474", 0x6200, 0x0200, CRC(f75ade1a) SHA1(a5572c5c721dbcb82988b709f4ef2119118e37c2))
574   ROM_LOAD("prom3.474", 0x6400, 0x0200, CRC(242ec687) SHA1(c3366c898a66c78034687e6a6000193d52be4141))
575   ROM_LOAD("gamerom.716", 0x6800, 0x0800, CRC(fdd3b983) SHA1(fb5d1eb01589311cf4b2ef16e25db03d40bca2f7))
269576   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
270   ROM_RELOAD( 0xf000, 0x0800)
271   ROM_REGION(0x10000, "cpu2", 0)
272   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
273   ROM_RELOAD( 0xf800, 0x0800)
274ROM_END
275
276ROM_START(tmwrp_t2)
277   ROM_REGION(0x10000, "maincpu", 0)
278   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(b168df09) SHA1(d4c97714636ce51be2e5f8cc5af89e10a2f82ac7))
279   ROM_RELOAD( 0xe000, 0x0800)
280577   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
281   ROM_RELOAD( 0xf800, 0x0800)
282   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
283   ROM_RELOAD( 0xf000, 0x0800)
284   ROM_REGION(0x10000, "cpu2", 0)
285   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
286   ROM_RELOAD( 0xf800, 0x0800)
287ROM_END
288578
289/*-----------------------------
290/ Scorpion - Sys.6 (Game #494)
291/----------------------------*/
292ROM_START(scrpn_l1)
293   ROM_REGION(0x10000, "maincpu", 0)
294   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(881109a9) SHA1(53d4275c76b47b68a74209fe660d943a51e90eca))
295   ROM_RELOAD( 0xe000, 0x0800)
296   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
297   ROM_RELOAD( 0xf800, 0x0800)
298   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
299   ROM_RELOAD( 0xf000, 0x0800)
300   ROM_REGION(0x10000, "cpu2", 0)
301   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
302   ROM_RELOAD( 0xf800, 0x0800)
579   ROM_REGION(0x10000, "audiocpu", 0)
580   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(94c5c0a7) SHA1(ff7c618d1666c1d5c3319fdd72c1af2846659290))
581   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(1737fdd2) SHA1(6307e0ae715e97294ee8aaaeb2e2bebb0cb590c2))
582   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(e56f7aa2) SHA1(cb922c3f4d91285dda4ccae880c2d798a82fd51b))
583   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
303584ROM_END
304585
305ROM_START(scrpn_t1)
586ROM_START(frpwr_l2)
306587   ROM_REGION(0x10000, "maincpu", 0)
307   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(881109a9) SHA1(53d4275c76b47b68a74209fe660d943a51e90eca))
308   ROM_RELOAD( 0xe000, 0x0800)
309   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
310   ROM_RELOAD( 0xf800, 0x0800)
588   ROM_LOAD("prom1.474", 0x6000, 0x0200, CRC(fbb7299f) SHA1(0ae9dbdc6ed8315596bf755ece34691671dc8d44))
589   ROM_LOAD("prom2.474", 0x6200, 0x0200, CRC(f75ade1a) SHA1(a5572c5c721dbcb82988b709f4ef2119118e37c2))
590   ROM_LOAD("prom3.474", 0x6400, 0x0200, CRC(242ec687) SHA1(c3366c898a66c78034687e6a6000193d52be4141))
591   ROM_LOAD("gamerom.716", 0x6800, 0x0800, CRC(fdd3b983) SHA1(fb5d1eb01589311cf4b2ef16e25db03d40bca2f7))
311592   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
312   ROM_RELOAD( 0xf000, 0x0800)
313   ROM_REGION(0x10000, "cpu2", 0)
314   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
315   ROM_RELOAD( 0xf800, 0x0800)
316ROM_END
317
318/*--------------------------------
319/ Tri Zone - Sys.4 (Game #487)
320/-------------------------------*/
321ROM_START(trizn_l1)
322   ROM_REGION(0x10000, "maincpu", 0)
323   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(757091c5) SHA1(00dac6c19b08d2528ea293619c4a39499a1a02c2))
324   ROM_RELOAD( 0xe000, 0x0800)
325593   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
326   ROM_RELOAD( 0xf800, 0x0800)
327   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
328   ROM_RELOAD( 0xf000, 0x0800)
329   ROM_REGION(0x10000, "cpu2", 0)
330   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
331   ROM_RELOAD( 0xf800, 0x0800)
332ROM_END
333594
334ROM_START(trizn_t1)
335   ROM_REGION(0x10000, "maincpu", 0)
336   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(757091c5) SHA1(00dac6c19b08d2528ea293619c4a39499a1a02c2))
337   ROM_RELOAD( 0xe000, 0x0800)
338   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
339   ROM_RELOAD( 0xf800, 0x0800)
340   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
341   ROM_RELOAD( 0xf000, 0x0800)
342   ROM_REGION(0x10000, "cpu2", 0)
343   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
344   ROM_RELOAD( 0xf800, 0x0800)
595   ROM_REGION(0x10000, "audiocpu", 0)
596   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(94c5c0a7) SHA1(ff7c618d1666c1d5c3319fdd72c1af2846659290))
597   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(1737fdd2) SHA1(6307e0ae715e97294ee8aaaeb2e2bebb0cb590c2))
598   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(e56f7aa2) SHA1(cb922c3f4d91285dda4ccae880c2d798a82fd51b))
599   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
345600ROM_END
346601
347602
348GAME(1979,   blkou_l1,      0,         williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Blackout (L-1)",            GAME_IS_SKELETON_MECHANICAL)
349GAME(1979,   blkou_t1,      blkou_l1,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Blackout (T-1)",            GAME_IS_SKELETON_MECHANICAL)
350GAME(1979,   blkou_f1,      blkou_l1,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Blackout (L-1, French Speech)",            GAME_IS_SKELETON_MECHANICAL)
351GAME(1980,   frpwr_l6,      0,         williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Firepower (L-6)",            GAME_IS_SKELETON_MECHANICAL)
352GAME(1980,   frpwr_t6,      frpwr_l6,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Firepower (T-6)",            GAME_IS_SKELETON_MECHANICAL)
353GAME(1980,   frpwr_l2,      frpwr_l6,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Firepower (L-2)",            GAME_IS_SKELETON_MECHANICAL)
354GAME(1979,   grgar_l1,      0,         williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Gorgar (L-1)",               GAME_IS_SKELETON_MECHANICAL)
355GAME(1979,   grgar_t1,      grgar_l1,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Gorgar (T-1)",               GAME_IS_SKELETON_MECHANICAL)
356GAME(1979,   lzbal_l2,      0,         williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Laser Ball (L-2)",            GAME_IS_SKELETON_MECHANICAL)
357GAME(1980,   lzbal_t2,      lzbal_l2,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Laser Ball (T-2)",            GAME_IS_SKELETON_MECHANICAL)
358GAME(1979,   tmwrp_l2,      0,         williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Time Warp (L-2)",            GAME_IS_SKELETON_MECHANICAL)
359GAME(1979,   tmwrp_t2,      tmwrp_l2,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Time Warp (T-2)",            GAME_IS_SKELETON_MECHANICAL)
360GAME(1980,   scrpn_l1,      0,         williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Scorpion (L-1)",            GAME_IS_SKELETON_MECHANICAL)
361GAME(1980,   scrpn_t1,      scrpn_l1,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Scorpion (T-1)",            GAME_IS_SKELETON_MECHANICAL)
362GAME(1978,   trizn_l1,      0,         williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Tri Zone (L-1)",            GAME_IS_SKELETON_MECHANICAL)
363GAME(1978,   trizn_t1,      trizn_l1,   williams_s6,   williams_s6, williams_s6_state,   williams_s6,   ROT0,   "Williams",            "Tri Zone (T-1)",            GAME_IS_SKELETON_MECHANICAL)
603GAME( 1978, trizn_l1, 0,        s6, s6, driver_device, 0,ROT0, "Williams", "Tri Zone (L-1)", GAME_IS_SKELETON_MECHANICAL)
604GAME( 1978, trizn_t1, trizn_l1, s6, s6, driver_device, 0,ROT0, "Williams", "Tri Zone (T-1)", GAME_IS_SKELETON_MECHANICAL)
605GAME( 1979, tmwrp_l2, 0,        s6, s6, driver_device, 0,ROT0, "Williams", "Time Warp (L-2)", GAME_IS_SKELETON_MECHANICAL)
606GAME( 1979, tmwrp_t2, tmwrp_l2, s6, s6, driver_device, 0,ROT0, "Williams", "Time Warp (T-2)", GAME_IS_SKELETON_MECHANICAL)
607GAME( 1979, lzbal_l2, 0,        s6, s6, driver_device, 0,ROT0, "Williams", "Laser Ball (L-2)", GAME_IS_SKELETON_MECHANICAL)
608GAME( 1980, lzbal_t2, lzbal_l2, s6, s6, driver_device, 0,ROT0, "Williams", "Laser Ball (T-2)", GAME_IS_SKELETON_MECHANICAL)
609GAME( 1980, scrpn_l1, 0,        s6, s6, driver_device, 0,ROT0, "Williams", "Scorpion (L-1)", GAME_IS_SKELETON_MECHANICAL)
610GAME( 1980, scrpn_t1, scrpn_l1, s6, s6, driver_device, 0,ROT0, "Williams", "Scorpion (T-1)", GAME_IS_SKELETON_MECHANICAL)
611GAME( 1979, blkou_l1, 0,        s6, s6, driver_device, 0,ROT0, "Williams", "Blackout (L-1)", GAME_IS_SKELETON_MECHANICAL)
612GAME( 1979, blkou_t1, blkou_l1, s6, s6, driver_device, 0,ROT0, "Williams", "Blackout (T-1)", GAME_IS_SKELETON_MECHANICAL)
613GAME( 1979, blkou_f1, blkou_l1, s6, s6, driver_device, 0,ROT0, "Williams", "Blackout (L-1, French Speech)", GAME_IS_SKELETON_MECHANICAL)
614GAME( 1979, grgar_l1, 0,        s6, s6, driver_device, 0,ROT0, "Williams", "Gorgar (L-1)", GAME_IS_SKELETON_MECHANICAL)
615GAME( 1979, grgar_t1, grgar_l1, s6, s6, driver_device, 0,ROT0, "Williams", "Gorgar (T-1)", GAME_IS_SKELETON_MECHANICAL)
616GAME( 1980, frpwr_l6, 0,        s6, s6, driver_device, 0,ROT0, "Williams", "Firepower (L-6)", GAME_IS_SKELETON_MECHANICAL)
617GAME( 1980, frpwr_t6, frpwr_l6, s6, s6, driver_device, 0,ROT0, "Williams", "Firepower (T-6)", GAME_IS_SKELETON_MECHANICAL)
618GAME( 1980, frpwr_l2, frpwr_l6, s6, s6, driver_device, 0,ROT0, "Williams", "Firepower (L-2)", GAME_IS_SKELETON_MECHANICAL)
trunk/src/mame/drivers/s3.c
r18710r18711
282282   {
283283      if (BIT(data, 0))
284284         m_samples->start(1, 1); // 10 chime
285      else
285      //else
286286      if (BIT(data, 1))
287287         m_samples->start(2, 2); // 100 chime
288      else
288      //else
289289      if (BIT(data, 2))
290290         m_samples->start(3, 3); // 1000 chime
291291      // we don't have a 10k chime in samples yet
r18710r18711
298298      m_sound_data = ioport("SND")->read(); // 0xff or 0xbf
299299      if (BIT(data, 0))
300300         m_sound_data &= 0xfe;
301      else
301
302302      if (BIT(data, 1))
303303         m_sound_data &= 0xfd;
304      else
304
305305      if (BIT(data, 2))
306306         m_sound_data &= 0xfb;
307      else
307
308308      if (BIT(data, 3))
309309         m_sound_data &= 0xf7;
310      else
310
311311      if (BIT(data, 4))
312312         m_sound_data &= 0x7f;
313313
314      if ((m_sound_data & 0xbf) == 0xbf)
315      {
316         m_cb1 = 0;
317         m_pia4->cb1_w(0);
318      }
319      else
320      {
321         m_cb1 = 1;
322         m_pia4->cb1_w(1);
323      }
314
315      m_cb1 = ((m_sound_data & 0x7f) != 0x7f);
316
317      m_pia4->cb1_w(!m_cb1);
324318   }
325319
326320   if (BIT(data, 5))
trunk/src/mame/drivers/s6a.c
r18710r18711
1/*
1/***********************************************************************************
2
3    Pinball
24    Williams System 6a
3*/
45
6    After pressing Start, nothing much works.
57
6#include "emu.h"
8ToDo:
9- Almost Everything
10
11
12************************************************************************************/
13
14
15#include "machine/genpin.h"
716#include "cpu/m6800/m6800.h"
17#include "machine/6821pia.h"
18#include "sound/dac.h"
19#include "s6a.lh"
820
9class williams_s6a_state : public driver_device
21
22class s6a_state : public genpin_class
1023{
1124public:
12   williams_s6a_state(const machine_config &mconfig, device_type type, const char *tag)
13      : driver_device(mconfig, type, tag),
14        m_maincpu(*this, "maincpu")
25   s6a_state(const machine_config &mconfig, device_type type, const char *tag)
26      : genpin_class(mconfig, type, tag),
27   m_maincpu(*this, "maincpu"),
28   m_audiocpu(*this, "audiocpu"),
29   m_dac(*this, "dac"),
30   m_pia0(*this, "pia0"),
31   m_pia1(*this, "pia1"),
32   m_pia2(*this, "pia2"),
33   m_pia3(*this, "pia3"),
34   m_pia4(*this, "pia4")
1535   { }
1636
37   DECLARE_READ8_MEMBER(dac_r);
38   DECLARE_WRITE8_MEMBER(dac_w);
39   DECLARE_WRITE8_MEMBER(dig0_w);
40   DECLARE_WRITE8_MEMBER(dig1_w);
41   DECLARE_WRITE8_MEMBER(lamp0_w);
42   DECLARE_WRITE8_MEMBER(lamp1_w);
43   DECLARE_WRITE8_MEMBER(sol0_w);
44   DECLARE_WRITE8_MEMBER(sol1_w);
45   DECLARE_READ8_MEMBER(dips_r);
46   DECLARE_READ8_MEMBER(switch_r);
47   DECLARE_WRITE8_MEMBER(switch_w);
48   DECLARE_READ_LINE_MEMBER(pia2_ca1_r);
49   DECLARE_READ_LINE_MEMBER(pia2_cb1_r);
50   DECLARE_READ_LINE_MEMBER(pia4_cb1_r);
51   DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w) { }; //ST5
52   DECLARE_WRITE_LINE_MEMBER(pia0_cb2_w) { }; //ST-solenoids enable
53   DECLARE_WRITE_LINE_MEMBER(pia1_ca2_w) { }; //ST2
54   DECLARE_WRITE_LINE_MEMBER(pia1_cb2_w) { }; //ST1
55   DECLARE_WRITE_LINE_MEMBER(pia2_ca2_w) { }; //diag leds enable
56   DECLARE_WRITE_LINE_MEMBER(pia2_cb2_w) { }; //ST6
57   DECLARE_WRITE_LINE_MEMBER(pia3_ca2_w) { }; //ST4
58   DECLARE_WRITE_LINE_MEMBER(pia3_cb2_w) { }; //ST3
59   TIMER_DEVICE_CALLBACK_MEMBER(irq);
60   DECLARE_INPUT_CHANGED_MEMBER(main_nmi);
61   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
62   DECLARE_MACHINE_RESET(s6a);
63   DECLARE_MACHINE_RESET(s6aa);
1764protected:
1865
1966   // devices
2067   required_device<cpu_device> m_maincpu;
21
22   // driver_device overrides
23   virtual void machine_reset();
24public:
25   DECLARE_DRIVER_INIT(williams_s6a);
68   optional_device<cpu_device> m_audiocpu;
69   optional_device<dac_device> m_dac;
70   required_device<pia6821_device> m_pia0;
71   required_device<pia6821_device> m_pia1;
72   required_device<pia6821_device> m_pia2;
73   required_device<pia6821_device> m_pia3;
74   optional_device<pia6821_device> m_pia4;
75private:
76   UINT8 m_t_c;
77   UINT8 m_sound_data;
78   UINT8 m_strobe;
79   UINT8 m_kbdrow;
80   bool m_cb1;
81   bool m_data_ok;
82   bool m_chimes;
2683};
2784
85static ADDRESS_MAP_START( s6a_main_map, AS_PROGRAM, 8, s6a_state )
86   ADDRESS_MAP_GLOBAL_MASK(0x7fff)
87   AM_RANGE(0x0000, 0x00ff) AM_RAM
88   AM_RANGE(0x0100, 0x01ff) AM_RAM AM_SHARE("nvram")
89   AM_RANGE(0x2200, 0x2203) AM_DEVREADWRITE("pia0", pia6821_device, read, write) // solenoids
90   AM_RANGE(0x2400, 0x2403) AM_DEVREADWRITE("pia1", pia6821_device, read, write) // lamps
91   AM_RANGE(0x2800, 0x2803) AM_DEVREADWRITE("pia2", pia6821_device, read, write) // display
92   AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pia3", pia6821_device, read, write) // inputs
93   AM_RANGE(0x6000, 0x7fff) AM_ROM
94ADDRESS_MAP_END
2895
29static ADDRESS_MAP_START( williams_s6a_map, AS_PROGRAM, 8, williams_s6a_state )
30   AM_RANGE(0x0000, 0xffff) AM_NOP
96static ADDRESS_MAP_START( s6a_audio_map, AS_PROGRAM, 8, s6a_state )
97   AM_RANGE(0x0000, 0x00ff) AM_RAM
98   AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE("pia4", pia6821_device, read, write) // sounds
99   AM_RANGE(0x3000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
31100ADDRESS_MAP_END
32101
33static INPUT_PORTS_START( williams_s6a )
102static INPUT_PORTS_START( s6a )
103   PORT_START("X0")
104   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
105   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
106   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
107   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
108   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
109   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
110   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
111   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
112
113   PORT_START("X1")
114   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
115   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
116   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
117   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
118   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
119   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
120   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER )
121   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )
122
123   PORT_START("X2")
124   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
125   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
126   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
127   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F)
128   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
129   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H)
130   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
131   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
132
133   PORT_START("X4")
134   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
135   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
136   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
137   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
138   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
139   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
140   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
141   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
142
143   PORT_START("X8")
144   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
145   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
146   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
147   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
148   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X)
149   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
150   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
151   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
152
153   PORT_START("X10")
154   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
155   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
156   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
157   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
158   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
159   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
160   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
161   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
162
163   PORT_START("X20")
164   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
165
166   PORT_START("X40")
167   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
168
169   PORT_START("X80")
170   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
171
172   PORT_START("SND")
173   PORT_BIT( 0x9f, IP_ACTIVE_LOW, IPT_UNUSED )
174   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Music1") PORT_CODE(KEYCODE_3) PORT_TOGGLE
175   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Music2") PORT_CODE(KEYCODE_4) PORT_TOGGLE
176
177   PORT_START("DIAGS")
178   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, s6a_state, audio_nmi, 1)
179   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, s6a_state, main_nmi, 1)
180   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Advance") PORT_CODE(KEYCODE_0)
181   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_9)
182   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Enter") PORT_CODE(KEYCODE_8)
183
184   PORT_START("DSW0")
185   PORT_DIPNAME( 0x01, 0x01, "SW01" )
186   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
187   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
188   PORT_DIPNAME( 0x02, 0x02, "SW02" )
189   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
190   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
191   PORT_DIPNAME( 0x04, 0x04, "SW03" )
192   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
193   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
194   PORT_DIPNAME( 0x08, 0x08, "SW04" )
195   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
196   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
197   PORT_DIPNAME( 0x10, 0x10, "SW05" )
198   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
199   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
200   PORT_DIPNAME( 0x20, 0x20, "SW06" )
201   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
202   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
203   PORT_DIPNAME( 0x40, 0x40, "SW07" )
204   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
205   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
206   PORT_DIPNAME( 0x80, 0x80, "SW08" )
207   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
208   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
209
210   PORT_START("DSW1")
211   PORT_DIPNAME( 0x01, 0x01, "SW11" )
212   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
213   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
214   PORT_DIPNAME( 0x02, 0x02, "SW12" )
215   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
216   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
217   PORT_DIPNAME( 0x04, 0x04, "SW13" )
218   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
219   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
220   PORT_DIPNAME( 0x08, 0x08, "SW14" )
221   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
222   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
223   PORT_DIPNAME( 0x10, 0x10, "SW15" )
224   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
225   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
226   PORT_DIPNAME( 0x20, 0x20, "SW16" )
227   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
228   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
229   PORT_DIPNAME( 0x40, 0x40, "SW17" )
230   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
231   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
232   PORT_DIPNAME( 0x80, 0x80, "SW18" )
233   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
234   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
34235INPUT_PORTS_END
35236
36void williams_s6a_state::machine_reset()
237MACHINE_RESET_MEMBER( s6a_state, s6a )
37238{
239   m_t_c = 0;
240   m_chimes = 0;
38241}
39242
40DRIVER_INIT_MEMBER(williams_s6a_state,williams_s6a)
243INPUT_CHANGED_MEMBER( s6a_state::main_nmi )
41244{
245   // Diagnostic button sends a pulse to NMI pin
246   if (newval==CLEAR_LINE)
247      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
42248}
43249
44static MACHINE_CONFIG_START( williams_s6a, williams_s6a_state )
250INPUT_CHANGED_MEMBER( s6a_state::audio_nmi )
251{
252   // Diagnostic button sends a pulse to NMI pin
253   if ((newval==CLEAR_LINE) && !m_chimes)
254      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
255}
256
257WRITE8_MEMBER( s6a_state::sol0_w )
258{
259   if (BIT(data, 4))
260      m_samples->start(2, 5); // outhole
261}
262
263WRITE8_MEMBER( s6a_state::sol1_w )
264{
265   if (m_chimes)
266   {
267      if (BIT(data, 0))
268         m_samples->start(1, 1); // 10 chime
269
270      if (BIT(data, 1))
271         m_samples->start(2, 2); // 100 chime
272
273      if (BIT(data, 2))
274         m_samples->start(3, 3); // 1000 chime
275
276      // we don't have a 10k chime in samples yet
277      //if (BIT(data, 3))
278         //m_samples->start(1, x); // 10k chime
279   }
280   else
281   {printf("%X ",data);
282      m_sound_data = ioport("SND")->read();
283      if (BIT(data, 0))
284         m_sound_data &= 0xfe;
285
286      if (BIT(data, 1))
287         m_sound_data &= 0xfd;
288
289      if (BIT(data, 2))
290         m_sound_data &= 0xfb;
291
292      if (BIT(data, 3))
293         m_sound_data &= 0xf7;
294
295      if (BIT(data, 4))
296         m_sound_data &= 0x7f;
297
298      m_cb1 = ((m_sound_data & 0x7f) != 0x7f);
299
300      m_pia4->cb1_w(m_cb1);
301   }
302
303   if (BIT(data, 5))
304      m_samples->start(0, 6); // knocker
305}
306
307static const pia6821_interface pia0_intf =
308{
309   DEVCB_NULL,      /* port A in */
310   DEVCB_NULL,      /* port B in */
311   DEVCB_LINE_GND,      /* line CA1 in */
312   DEVCB_LINE_GND,      /* line CB1 in */
313   DEVCB_NULL,      /* line CA2 in */
314   DEVCB_NULL,      /* line CB2 in */
315   DEVCB_DRIVER_MEMBER(s6a_state, sol0_w),      /* port A out */
316   DEVCB_DRIVER_MEMBER(s6a_state, sol1_w),      /* port B out */
317   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia0_ca2_w),      /* line CA2 out */
318   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia0_cb2_w),      /* line CB2 out */
319   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
320   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
321};
322
323WRITE8_MEMBER( s6a_state::lamp0_w )
324{
325   m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE);
326}
327
328WRITE8_MEMBER( s6a_state::lamp1_w )
329{
330}
331
332static const pia6821_interface pia1_intf =
333{
334   DEVCB_NULL,      /* port A in */
335   DEVCB_NULL,      /* port B in */
336   DEVCB_LINE_GND,      /* line CA1 in */
337   DEVCB_LINE_GND,      /* line CB1 in */
338   DEVCB_NULL,      /* line CA2 in */
339   DEVCB_NULL,      /* line CB2 in */
340   DEVCB_DRIVER_MEMBER(s6a_state, lamp0_w),      /* port A out */
341   DEVCB_DRIVER_MEMBER(s6a_state, lamp1_w),      /* port B out */
342   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia1_ca2_w),      /* line CA2 out */
343   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia1_cb2_w),      /* line CB2 out */
344   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
345   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
346};
347
348READ_LINE_MEMBER( s6a_state::pia2_ca1_r )
349{
350   return BIT(ioport("DIAGS")->read(), 2); // advance button
351}
352
353READ_LINE_MEMBER( s6a_state::pia2_cb1_r )
354{
355   return BIT(ioport("DIAGS")->read(), 3); // auto/manual switch
356}
357
358READ8_MEMBER( s6a_state::dips_r )
359{
360   if (BIT(ioport("DIAGS")->read(), 4) )
361   {
362      switch (m_strobe)
363      {
364      case 0:
365         return ioport("DSW0")->read() & 15;
366         break;
367      case 1:
368         return ioport("DSW0")->read() << 4;
369         break;
370      case 2:
371         return ioport("DSW1")->read() & 15;
372         break;
373      case 3:
374         return ioport("DSW1")->read() << 4;
375         break;
376      }
377   }
378   return 0xff;
379}
380
381WRITE8_MEMBER( s6a_state::dig0_w )
382{
383   m_strobe = data & 15;
384   m_data_ok = true;
385   output_set_value("led0", BIT(data, 4));
386   output_set_value("led1", BIT(data, 5));
387}
388
389WRITE8_MEMBER( s6a_state::dig1_w )
390{
391   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
392   if (m_data_ok)
393   {
394      output_set_digit_value(m_strobe+16, patterns[data&15]);
395      output_set_digit_value(m_strobe, patterns[data>>4]);
396   }
397   m_data_ok = false;
398}
399
400static const pia6821_interface pia2_intf =
401{
402   DEVCB_DRIVER_MEMBER(s6a_state, dips_r),      /* port A in */
403   DEVCB_NULL,      /* port B in */
404   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia2_ca1_r),      /* line CA1 in */
405   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia2_cb1_r),      /* line CB1 in */
406   DEVCB_NULL,      /* line CA2 in */
407   DEVCB_NULL,      /* line CB2 in */
408   DEVCB_DRIVER_MEMBER(s6a_state, dig0_w),      /* port A out */
409   DEVCB_DRIVER_MEMBER(s6a_state, dig1_w),      /* port B out */
410   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia2_ca2_w),      /* line CA2 out */
411   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia2_cb2_w),      /* line CB2 out */
412   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
413   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
414};
415
416READ8_MEMBER( s6a_state::switch_r )
417{
418   char kbdrow[8];
419   sprintf(kbdrow,"X%X",m_kbdrow);
420   return ioport(kbdrow)->read();
421}
422
423WRITE8_MEMBER( s6a_state::switch_w )
424{
425   m_kbdrow = data;
426}
427
428static const pia6821_interface pia3_intf =
429{
430   DEVCB_DRIVER_MEMBER(s6a_state, switch_r),      /* port A in */
431   DEVCB_NULL,      /* port B in */
432   DEVCB_LINE_GND,      /* line CA1 in */
433   DEVCB_LINE_GND,      /* line CB1 in */
434   DEVCB_NULL,      /* line CA2 in */
435   DEVCB_NULL,      /* line CB2 in */
436   DEVCB_NULL,      /* port A out */
437   DEVCB_DRIVER_MEMBER(s6a_state, switch_w),      /* port B out */
438   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia3_ca2_w),      /* line CA2 out */
439   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia3_cb2_w),      /* line CB2 out */
440   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
441   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
442};
443
444READ_LINE_MEMBER( s6a_state::pia4_cb1_r )
445{
446   return m_cb1;
447}
448
449READ8_MEMBER( s6a_state::dac_r )
450{printf("%X ",m_sound_data);
451   return m_sound_data;   
452}
453
454WRITE8_MEMBER( s6a_state::dac_w )
455{
456   m_dac->write_unsigned8(data);
457}
458
459static const pia6821_interface pia4_intf =
460{
461   DEVCB_NULL,      /* port A in */
462   DEVCB_DRIVER_MEMBER(s6a_state, dac_r),      /* port B in */
463   DEVCB_NULL,      /* line CA1 in */
464   DEVCB_DRIVER_LINE_MEMBER(s6a_state, pia4_cb1_r),      /* line CB1 in */
465   DEVCB_NULL,      /* line CA2 in */
466   DEVCB_NULL,      /* line CB2 in */
467   DEVCB_DRIVER_MEMBER(s6a_state, dac_w),      /* port A out */
468   DEVCB_NULL,      /* port B out */
469   DEVCB_NULL,      /* line CA2 out */
470   DEVCB_NULL,      /* line CB2 out */
471   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE),      /* IRQA */
472   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE)      /* IRQB */
473};
474
475TIMER_DEVICE_CALLBACK_MEMBER( s6a_state::irq)
476{
477   if (m_t_c > 0x70)
478      m_maincpu->set_input_line(M6800_IRQ_LINE, ASSERT_LINE);
479   else
480      m_t_c++;
481}
482
483static MACHINE_CONFIG_START( s6a, s6a_state )
45484   /* basic machine hardware */
46   MCFG_CPU_ADD("maincpu", M6800, 1000000)
47   MCFG_CPU_PROGRAM_MAP(williams_s6a_map)
485   MCFG_CPU_ADD("maincpu", M6802, 3580000)
486   MCFG_CPU_PROGRAM_MAP(s6a_main_map)
487   MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s6a_state, irq, attotime::from_hz(1000))
488   MCFG_MACHINE_RESET_OVERRIDE(s6a_state, s6a)
489
490   /* Video */
491   MCFG_DEFAULT_LAYOUT(layout_s6a)
492
493   /* Sound */
494   MCFG_FRAGMENT_ADD( genpin_audio )
495
496   /* Devices */
497   MCFG_PIA6821_ADD("pia0", pia0_intf)
498   MCFG_PIA6821_ADD("pia1", pia1_intf)
499   MCFG_PIA6821_ADD("pia2", pia2_intf)
500   MCFG_PIA6821_ADD("pia3", pia3_intf)
501   MCFG_NVRAM_ADD_1FILL("nvram")
502   /* Add the soundcard */
503   MCFG_CPU_ADD("audiocpu", M6808, 3580000)
504   MCFG_CPU_PROGRAM_MAP(s6a_audio_map)
505   MCFG_SPEAKER_STANDARD_MONO("mono")
506   MCFG_SOUND_ADD("dac", DAC, 0)
507   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
508   MCFG_PIA6821_ADD("pia4", pia4_intf)
48509MACHINE_CONFIG_END
49510
511
50512/*--------------------------
51513/ Algar - Sys.6 (Game #499)
52514/-------------------------*/
53515ROM_START(algar_l1)
54516   ROM_REGION(0x10000, "maincpu", 0)
55517   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(6711da23) SHA1(80a46f5a2630977bc1c6e17466e8865083eb9a18))
56   ROM_RELOAD( 0xe000, 0x0800)
57518   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
58   ROM_RELOAD( 0xf800, 0x0800)
59519   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
60   ROM_RELOAD( 0xf000, 0x0800)
61   ROM_REGION(0x10000, "cpu2", 0)
520
521   ROM_REGION(0x10000, "audiocpu", 0)
62522   ROM_LOAD("sound4.716", 0x7800, 0x0800, CRC(67ea12e7) SHA1(f81e97183442736d5766a7e5e074bc6539e8ced0))
63   ROM_RELOAD( 0xf800, 0x0800)
64523ROM_END
65524
66525/*-------------------------------
r18710r18711
69528ROM_START(alpok_l6)
70529   ROM_REGION(0x10000, "maincpu", 0)
71530   ROM_LOAD("gamerom6.716", 0x6000, 0x0800, CRC(20538a4a) SHA1(6cdd6b7ded76b3cbd954d371e126e1bbd95a6219))
72   ROM_RELOAD( 0xe000, 0x0800)
73531   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
74   ROM_RELOAD( 0xf800, 0x0800)
75532   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
76   ROM_RELOAD( 0xf000, 0x0800)
77   ROM_REGION(0x10000, "cpu2", 0)
533
534   ROM_REGION(0x10000, "audiocpu", 0)
78535   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
79   ROM_RELOAD( 0xf800, 0x0800)
80536   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(a66c7ca6) SHA1(6e90081f853fcf66bfeac0a8ee1c762b3760b90b))
81   ROM_RELOAD( 0xb000, 0x1000)
82537   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(f16a237a) SHA1(a904138fad5cbc19946bcf0de824e27537dcd621))
83   ROM_RELOAD( 0xc000, 0x1000)
84538   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(15a3cc85) SHA1(86002ac78189415ae912e8bc23c92b3b67610d87))
85   ROM_RELOAD( 0xd000, 0x1000)
86539ROM_END
87540
88541ROM_START(alpok_l2)
89542   ROM_REGION(0x10000, "maincpu", 0)
90543   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(79c07603) SHA1(526a45b139394e475fc052636e98d880a8908168))
91   ROM_RELOAD( 0xe000, 0x0800)
544   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
92545   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
93   ROM_RELOAD( 0xf800, 0x0800)
94   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
95   ROM_RELOAD( 0xf000, 0x0800)
96   ROM_REGION(0x10000, "cpu2", 0)
97   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
98   ROM_RELOAD( 0xf800, 0x0800)
546
547   ROM_REGION(0x10000, "audiocpu", 0)
99548   ROM_LOAD("v_ic7.532", 0x3000, 0x1000, CRC(a66c7ca6) SHA1(6e90081f853fcf66bfeac0a8ee1c762b3760b90b))
100   ROM_RELOAD( 0xb000, 0x1000)
101549   ROM_LOAD("v_ic5.532", 0x4000, 0x1000, CRC(f16a237a) SHA1(a904138fad5cbc19946bcf0de824e27537dcd621))
102   ROM_RELOAD( 0xc000, 0x1000)
103550   ROM_LOAD("v_ic6.532", 0x5000, 0x1000, CRC(15a3cc85) SHA1(86002ac78189415ae912e8bc23c92b3b67610d87))
104   ROM_RELOAD( 0xd000, 0x1000)
551   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
105552ROM_END
106553
107554ROM_START(alpok_f6)
108555   ROM_REGION(0x10000, "maincpu", 0)
109556   ROM_LOAD("gamerom6.716", 0x6000, 0x0800, CRC(20538a4a) SHA1(6cdd6b7ded76b3cbd954d371e126e1bbd95a6219))
110   ROM_RELOAD( 0xe000, 0x0800)
557   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
111558   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
112   ROM_RELOAD( 0xf800, 0x0800)
113   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
114   ROM_RELOAD( 0xf000, 0x0800)
115   ROM_REGION(0x10000, "cpu2", 0)
116   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
117   ROM_RELOAD( 0xf800, 0x0800)
559
560   ROM_REGION(0x10000, "audiocpu", 0)
118561   ROM_LOAD("5t5014fr.dat", 0x3000, 0x1000, CRC(1d961517) SHA1(c71ee324becfc8cdbecabd1e64b11b5a39ff2483))
119   ROM_RELOAD( 0xb000, 0x1000)
120562   ROM_LOAD("5t5015fr.dat", 0x4000, 0x1000, CRC(8d065f80) SHA1(0ab22c9b20ab6fe41abab620435ad03652db7a8e))
121   ROM_RELOAD( 0xc000, 0x1000)
122563   ROM_LOAD("5t5016fr.dat", 0x5000, 0x1000, CRC(0ddf91e9) SHA1(48f5fdfc0c5a66dd318fecb7c90e5f5a684a3876))
123   ROM_RELOAD( 0xd000, 0x1000)
124564   ROM_LOAD("5t5017fr.dat", 0x6000, 0x1000, CRC(7e546dc1) SHA1(58f8286403978b0d929987189089881d754a9a83))
125   ROM_RELOAD( 0xe000, 0x1000)
565   ROM_LOAD("sound3.716", 0x7800, 0x0800, CRC(55a10d13) SHA1(521d4cdfb0ed8178b3594cedceae93b772a951a4))
126566ROM_END
127567
128568
129GAME(1980,   algar_l1,      0,         williams_s6a,   williams_s6a, williams_s6a_state,   williams_s6a,   ROT0,   "Williams",            "Algar (L-1)",                        GAME_IS_SKELETON_MECHANICAL)
130GAME(1980,   alpok_l6,      0,         williams_s6a,   williams_s6a, williams_s6a_state,   williams_s6a,   ROT0,   "Williams",            "Alien Poker (L-6)",                  GAME_IS_SKELETON_MECHANICAL)
131GAME(1980,   alpok_l2,      alpok_l6,   williams_s6a,   williams_s6a, williams_s6a_state,   williams_s6a,   ROT0,   "Williams",            "Alien Poker (L-2)",                  GAME_IS_SKELETON_MECHANICAL)
132GAME(1980,   alpok_f6,      alpok_l6,   williams_s6a,   williams_s6a, williams_s6a_state,   williams_s6a,   ROT0,   "Williams",            "Alien Poker (L-6 French speech)",         GAME_IS_SKELETON_MECHANICAL)
569GAME(1980,algar_l1, 0,       s6a, s6a, driver_device, 0, ROT0, "Williams", "Algar (L-1)", GAME_IS_SKELETON_MECHANICAL)
570GAME(1980,alpok_l6, 0,       s6a, s6a, driver_device, 0, ROT0, "Williams", "Alien Poker (L-6)", GAME_IS_SKELETON_MECHANICAL)
571GAME(1980,alpok_l2, alpok_l6,s6a, s6a, driver_device, 0, ROT0, "Williams", "Alien Poker (L-2)", GAME_IS_SKELETON_MECHANICAL)
572GAME(1980,alpok_f6, alpok_l6,s6a, s6a, driver_device, 0, ROT0, "Williams", "Alien Poker (L-6 French speech)", GAME_IS_SKELETON_MECHANICAL)
trunk/src/mame/drivers/s4.c
r18710r18711
66    No schematics have been located as yet.
77
88    Phoenix and Pokerino are listed as System 4 systems, but use System 3 roms.
9    They have been moved to s3.c, and are working there.
9    They have been moved to s4.c, and are working there.
1010
11    Only Flash and Stellar Wars are pinball machines. The remainder are so-called
12    "Shuffle", which is a flat board with an air-driven puck and 10 bowling pins.
13    You must push the puck as if it was a bowling ball, and score strikes and spares.
14    Since the maximum score is 300, the displays have 4 digits and 6 can play. They
15    are Williams System 5 and should be moved to a separate driver.
16
17    Stellar Wars - it works, but the music is half-missing.
18    Flash - coins and start works, but not much else.
19
1120ToDo:
12- Everything
21- Almost Everything
1322
1423
1524
1625************************************************************************************/
1726
18
1927#include "machine/genpin.h"
2028#include "cpu/m6800/m6800.h"
29#include "machine/6821pia.h"
30#include "sound/dac.h"
31#include "s4.lh"
2132
33
2234class s4_state : public genpin_class
2335{
2436public:
2537   s4_state(const machine_config &mconfig, device_type type, const char *tag)
2638      : genpin_class(mconfig, type, tag),
27   m_maincpu(*this, "maincpu")
39   m_maincpu(*this, "maincpu"),
40   m_audiocpu(*this, "audiocpu"),
41   m_dac(*this, "dac"),
42   m_pia0(*this, "pia0"),
43   m_pia1(*this, "pia1"),
44   m_pia2(*this, "pia2"),
45   m_pia3(*this, "pia3"),
46   m_pia4(*this, "pia4")
2847   { }
2948
49   DECLARE_READ8_MEMBER(dac_r);
50   DECLARE_WRITE8_MEMBER(dac_w);
51   DECLARE_WRITE8_MEMBER(dig0_w);
52   DECLARE_WRITE8_MEMBER(dig1_w);
53   DECLARE_WRITE8_MEMBER(lamp0_w);
54   DECLARE_WRITE8_MEMBER(lamp1_w);
55   DECLARE_WRITE8_MEMBER(sol0_w);
56   DECLARE_WRITE8_MEMBER(sol1_w);
57   DECLARE_READ8_MEMBER(dips_r);
58   DECLARE_READ8_MEMBER(switch_r);
59   DECLARE_WRITE8_MEMBER(switch_w);
60   DECLARE_READ_LINE_MEMBER(pia2_ca1_r);
61   DECLARE_READ_LINE_MEMBER(pia2_cb1_r);
62   DECLARE_READ_LINE_MEMBER(pia4_cb1_r);
63   DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w) { }; //ST5
64   DECLARE_WRITE_LINE_MEMBER(pia0_cb2_w) { }; //ST-solenoids enable
65   DECLARE_WRITE_LINE_MEMBER(pia1_ca2_w) { }; //ST2
66   DECLARE_WRITE_LINE_MEMBER(pia1_cb2_w) { }; //ST1
67   DECLARE_WRITE_LINE_MEMBER(pia2_ca2_w) { }; //diag leds enable
68   DECLARE_WRITE_LINE_MEMBER(pia2_cb2_w) { }; //ST6
69   DECLARE_WRITE_LINE_MEMBER(pia3_ca2_w) { }; //ST4
70   DECLARE_WRITE_LINE_MEMBER(pia3_cb2_w) { }; //ST3
71   TIMER_DEVICE_CALLBACK_MEMBER(irq);
72   DECLARE_INPUT_CHANGED_MEMBER(main_nmi);
73   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
74   DECLARE_MACHINE_RESET(s4);
75   DECLARE_MACHINE_RESET(s4a);
3076protected:
3177
3278   // devices
3379   required_device<cpu_device> m_maincpu;
34
35   // driver_device overrides
36   virtual void machine_reset();
80   optional_device<cpu_device> m_audiocpu;
81   optional_device<dac_device> m_dac;
82   required_device<pia6821_device> m_pia0;
83   required_device<pia6821_device> m_pia1;
84   required_device<pia6821_device> m_pia2;
85   required_device<pia6821_device> m_pia3;
86   optional_device<pia6821_device> m_pia4;
3787private:
88   UINT8 m_t_c;
89   UINT8 m_sound_data;
90   UINT8 m_strobe;
91   UINT8 m_kbdrow;
92   bool m_cb1;
93   bool m_data_ok;
94   bool m_chimes;
3895};
3996
4097static ADDRESS_MAP_START( s4_main_map, AS_PROGRAM, 8, s4_state )
41   AM_RANGE(0x0000, 0xffff) AM_NOP
98   ADDRESS_MAP_GLOBAL_MASK(0x7fff)
99   AM_RANGE(0x0000, 0x00ff) AM_RAM
100   AM_RANGE(0x0100, 0x01ff) AM_RAM AM_SHARE("nvram")
101   AM_RANGE(0x2200, 0x2203) AM_DEVREADWRITE("pia0", pia6821_device, read, write) // solenoids
102   AM_RANGE(0x2400, 0x2403) AM_DEVREADWRITE("pia1", pia6821_device, read, write) // lamps
103   AM_RANGE(0x2800, 0x2803) AM_DEVREADWRITE("pia2", pia6821_device, read, write) // display
104   AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pia3", pia6821_device, read, write) // inputs
105   AM_RANGE(0x6000, 0x7fff) AM_ROM
42106ADDRESS_MAP_END
43107
108static ADDRESS_MAP_START( s4_audio_map, AS_PROGRAM, 8, s4_state )
109   AM_RANGE(0x0000, 0x00ff) AM_RAM
110   AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE("pia4", pia6821_device, read, write) // sounds
111   AM_RANGE(0x3000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
112ADDRESS_MAP_END
113
44114static INPUT_PORTS_START( s4 )
115   PORT_START("X0")
116   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
117   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
118   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
119   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
120   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
121   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
122   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
123   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
124
125   PORT_START("X1")
126   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
127   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
128   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
129   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
130   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
131   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
132   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER )
133   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )
134
135   PORT_START("X2")
136   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
137   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
138   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
139   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F)
140   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
141   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H)
142   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
143   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
144
145   PORT_START("X4")
146   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
147   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
148   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
149   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
150   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
151   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
152   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
153   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
154
155   PORT_START("X8")
156   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
157   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
158   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
159   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
160   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X)
161   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
162   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
163   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
164
165   PORT_START("X10")
166   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
167   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
168   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
169   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
170   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
171   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
172   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
173   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
174
175   PORT_START("X20")
176   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
177
178   PORT_START("X40")
179   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
180
181   PORT_START("X80")
182   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
183
184   PORT_START("SND")
185   PORT_BIT( 0x9f, IP_ACTIVE_LOW, IPT_UNUSED )
186   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Music1") PORT_CODE(KEYCODE_3) PORT_TOGGLE
187   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Music2") PORT_CODE(KEYCODE_4) PORT_TOGGLE
188
189   PORT_START("DIAGS")
190   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, s4_state, audio_nmi, 1)
191   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, s4_state, main_nmi, 1)
192   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Advance") PORT_CODE(KEYCODE_0)
193   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_9)
194   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Enter") PORT_CODE(KEYCODE_8)
195
196   PORT_START("DSW0")
197   PORT_DIPNAME( 0x01, 0x01, "SW01" )
198   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
199   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
200   PORT_DIPNAME( 0x02, 0x02, "SW02" )
201   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
202   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
203   PORT_DIPNAME( 0x04, 0x04, "SW03" )
204   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
205   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
206   PORT_DIPNAME( 0x08, 0x08, "SW04" )
207   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
208   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
209   PORT_DIPNAME( 0x10, 0x10, "SW05" )
210   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
211   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
212   PORT_DIPNAME( 0x20, 0x20, "SW06" )
213   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
214   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
215   PORT_DIPNAME( 0x40, 0x40, "SW07" )
216   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
217   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
218   PORT_DIPNAME( 0x80, 0x80, "SW08" )
219   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
220   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
221
222   PORT_START("DSW1")
223   PORT_DIPNAME( 0x01, 0x01, "SW11" )
224   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
225   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
226   PORT_DIPNAME( 0x02, 0x02, "SW12" )
227   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
228   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
229   PORT_DIPNAME( 0x04, 0x04, "SW13" )
230   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
231   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
232   PORT_DIPNAME( 0x08, 0x08, "SW14" )
233   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
234   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
235   PORT_DIPNAME( 0x10, 0x10, "SW15" )
236   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
237   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
238   PORT_DIPNAME( 0x20, 0x20, "SW16" )
239   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
240   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
241   PORT_DIPNAME( 0x40, 0x40, "SW17" )
242   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
243   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
244   PORT_DIPNAME( 0x80, 0x80, "SW18" )
245   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
246   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
45247INPUT_PORTS_END
46248
47void s4_state::machine_reset()
249MACHINE_RESET_MEMBER( s4_state, s4 )
48250{
251   m_t_c = 0;
252   m_chimes = 1;
49253}
50254
255MACHINE_RESET_MEMBER( s4_state, s4a )
256{
257   m_t_c = 0;
258   m_chimes = 0;
259}
260
261INPUT_CHANGED_MEMBER( s4_state::main_nmi )
262{
263   // Diagnostic button sends a pulse to NMI pin
264   if (newval==CLEAR_LINE)
265      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
266}
267
268INPUT_CHANGED_MEMBER( s4_state::audio_nmi )
269{
270   // Diagnostic button sends a pulse to NMI pin
271   if ((newval==CLEAR_LINE) && !m_chimes)
272      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
273}
274
275WRITE8_MEMBER( s4_state::sol0_w )
276{
277   if (BIT(data, 4))
278      m_samples->start(2, 5); // outhole
279}
280
281WRITE8_MEMBER( s4_state::sol1_w )
282{
283   if (m_chimes)
284   {
285      if (BIT(data, 0))
286         m_samples->start(1, 1); // 10 chime
287
288      if (BIT(data, 1))
289         m_samples->start(2, 2); // 100 chime
290
291      if (BIT(data, 2))
292         m_samples->start(3, 3); // 1000 chime
293
294      // we don't have a 10k chime in samples yet
295      //if (BIT(data, 3))
296         //m_samples->start(1, x); // 10k chime
297   }
298   else
299   {printf("%X ",data);
300      m_sound_data = ioport("SND")->read();
301      if (BIT(data, 0))
302         m_sound_data &= 0xfe;
303
304      if (BIT(data, 1))
305         m_sound_data &= 0xfd;
306
307      if (BIT(data, 2))
308         m_sound_data &= 0xfb;
309
310      if (BIT(data, 3))
311         m_sound_data &= 0xf7;
312
313      if (BIT(data, 4))
314         m_sound_data &= 0x7f;
315
316      m_cb1 = ((m_sound_data & 0x7f) != 0x7f);
317
318      m_pia4->cb1_w(m_cb1);
319   }
320
321   if (BIT(data, 5))
322      m_samples->start(0, 6); // knocker
323}
324
325static const pia6821_interface pia0_intf =
326{
327   DEVCB_NULL,      /* port A in */
328   DEVCB_NULL,      /* port B in */
329   DEVCB_LINE_GND,      /* line CA1 in */
330   DEVCB_LINE_GND,      /* line CB1 in */
331   DEVCB_NULL,      /* line CA2 in */
332   DEVCB_NULL,      /* line CB2 in */
333   DEVCB_DRIVER_MEMBER(s4_state, sol0_w),      /* port A out */
334   DEVCB_DRIVER_MEMBER(s4_state, sol1_w),      /* port B out */
335   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia0_ca2_w),      /* line CA2 out */
336   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia0_cb2_w),      /* line CB2 out */
337   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
338   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
339};
340
341WRITE8_MEMBER( s4_state::lamp0_w )
342{
343   m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE);
344}
345
346WRITE8_MEMBER( s4_state::lamp1_w )
347{
348}
349
350static const pia6821_interface pia1_intf =
351{
352   DEVCB_NULL,      /* port A in */
353   DEVCB_NULL,      /* port B in */
354   DEVCB_LINE_GND,      /* line CA1 in */
355   DEVCB_LINE_GND,      /* line CB1 in */
356   DEVCB_NULL,      /* line CA2 in */
357   DEVCB_NULL,      /* line CB2 in */
358   DEVCB_DRIVER_MEMBER(s4_state, lamp0_w),      /* port A out */
359   DEVCB_DRIVER_MEMBER(s4_state, lamp1_w),      /* port B out */
360   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia1_ca2_w),      /* line CA2 out */
361   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia1_cb2_w),      /* line CB2 out */
362   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
363   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
364};
365
366READ_LINE_MEMBER( s4_state::pia2_ca1_r )
367{
368   return BIT(ioport("DIAGS")->read(), 2); // advance button
369}
370
371READ_LINE_MEMBER( s4_state::pia2_cb1_r )
372{
373   return BIT(ioport("DIAGS")->read(), 3); // auto/manual switch
374}
375
376READ8_MEMBER( s4_state::dips_r )
377{
378   if (BIT(ioport("DIAGS")->read(), 4) )
379   {
380      switch (m_strobe)
381      {
382      case 0:
383         return ioport("DSW0")->read() & 15;
384         break;
385      case 1:
386         return ioport("DSW0")->read() << 4;
387         break;
388      case 2:
389         return ioport("DSW1")->read() & 15;
390         break;
391      case 3:
392         return ioport("DSW1")->read() << 4;
393         break;
394      }
395   }
396   return 0xff;
397}
398
399WRITE8_MEMBER( s4_state::dig0_w )
400{
401   m_strobe = data & 15;
402   m_data_ok = true;
403   output_set_value("led0", BIT(data, 4));
404   output_set_value("led1", BIT(data, 5));
405}
406
407WRITE8_MEMBER( s4_state::dig1_w )
408{
409   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
410   if (m_data_ok)
411   {
412      output_set_digit_value(m_strobe+16, patterns[data&15]);
413      output_set_digit_value(m_strobe, patterns[data>>4]);
414   }
415   m_data_ok = false;
416}
417
418static const pia6821_interface pia2_intf =
419{
420   DEVCB_DRIVER_MEMBER(s4_state, dips_r),      /* port A in */
421   DEVCB_NULL,      /* port B in */
422   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia2_ca1_r),      /* line CA1 in */
423   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia2_cb1_r),      /* line CB1 in */
424   DEVCB_NULL,      /* line CA2 in */
425   DEVCB_NULL,      /* line CB2 in */
426   DEVCB_DRIVER_MEMBER(s4_state, dig0_w),      /* port A out */
427   DEVCB_DRIVER_MEMBER(s4_state, dig1_w),      /* port B out */
428   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia2_ca2_w),      /* line CA2 out */
429   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia2_cb2_w),      /* line CB2 out */
430   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
431   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
432};
433
434READ8_MEMBER( s4_state::switch_r )
435{
436   char kbdrow[8];
437   sprintf(kbdrow,"X%X",m_kbdrow);
438   return ioport(kbdrow)->read();
439}
440
441WRITE8_MEMBER( s4_state::switch_w )
442{
443   m_kbdrow = data;
444}
445
446static const pia6821_interface pia3_intf =
447{
448   DEVCB_DRIVER_MEMBER(s4_state, switch_r),      /* port A in */
449   DEVCB_NULL,      /* port B in */
450   DEVCB_LINE_GND,      /* line CA1 in */
451   DEVCB_LINE_GND,      /* line CB1 in */
452   DEVCB_NULL,      /* line CA2 in */
453   DEVCB_NULL,      /* line CB2 in */
454   DEVCB_NULL,      /* port A out */
455   DEVCB_DRIVER_MEMBER(s4_state, switch_w),      /* port B out */
456   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia3_ca2_w),      /* line CA2 out */
457   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia3_cb2_w),      /* line CB2 out */
458   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
459   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
460};
461
462READ_LINE_MEMBER( s4_state::pia4_cb1_r )
463{
464   return m_cb1;
465}
466
467READ8_MEMBER( s4_state::dac_r )
468{printf("%X ",m_sound_data);
469   return m_sound_data;   
470}
471
472WRITE8_MEMBER( s4_state::dac_w )
473{
474   m_dac->write_unsigned8(data);
475}
476
477static const pia6821_interface pia4_intf =
478{
479   DEVCB_NULL,      /* port A in */
480   DEVCB_DRIVER_MEMBER(s4_state, dac_r),      /* port B in */
481   DEVCB_NULL,      /* line CA1 in */
482   DEVCB_DRIVER_LINE_MEMBER(s4_state, pia4_cb1_r),      /* line CB1 in */
483   DEVCB_NULL,      /* line CA2 in */
484   DEVCB_NULL,      /* line CB2 in */
485   DEVCB_DRIVER_MEMBER(s4_state, dac_w),      /* port A out */
486   DEVCB_NULL,      /* port B out */
487   DEVCB_NULL,      /* line CA2 out */
488   DEVCB_NULL,      /* line CB2 out */
489   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE),      /* IRQA */
490   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE)      /* IRQB */
491};
492
493TIMER_DEVICE_CALLBACK_MEMBER( s4_state::irq)
494{
495   if (m_t_c > 0x70)
496      m_maincpu->set_input_line(M6800_IRQ_LINE, ASSERT_LINE);
497   else
498      m_t_c++;
499}
500
51501static MACHINE_CONFIG_START( s4, s4_state )
52502   /* basic machine hardware */
53   MCFG_CPU_ADD("maincpu", M6800, 1000000)
503   MCFG_CPU_ADD("maincpu", M6802, 3580000)
54504   MCFG_CPU_PROGRAM_MAP(s4_main_map)
505   MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s4_state, irq, attotime::from_hz(1000))
506   MCFG_MACHINE_RESET_OVERRIDE(s4_state, s4)
507
508   /* Video */
509   MCFG_DEFAULT_LAYOUT(layout_s4)
510
511   /* Sound */
512   MCFG_FRAGMENT_ADD( genpin_audio )
513
514   /* Devices */
515   MCFG_PIA6821_ADD("pia0", pia0_intf)
516   MCFG_PIA6821_ADD("pia1", pia1_intf)
517   MCFG_PIA6821_ADD("pia2", pia2_intf)
518   MCFG_PIA6821_ADD("pia3", pia3_intf)
519   MCFG_NVRAM_ADD_1FILL("nvram")
55520MACHINE_CONFIG_END
56521
522static MACHINE_CONFIG_DERIVED( s4a, s4 )
523   /* Add the soundcard */
524   MCFG_CPU_ADD("audiocpu", M6808, 3580000)
525   MCFG_CPU_PROGRAM_MAP(s4_audio_map)
526   MCFG_MACHINE_RESET_OVERRIDE(s4_state, s4a)
527   MCFG_SPEAKER_STANDARD_MONO("mono")
528   MCFG_SOUND_ADD("dac", DAC, 0)
529   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
530   MCFG_PIA6821_ADD("pia4", pia4_intf)
531MACHINE_CONFIG_END
532
533
57534/*--------------------------------
58535/ Flash - Sys.4 (Game #486)
59536/-------------------------------*/
60537ROM_START(flash_l1)
61538   ROM_REGION(0x10000, "maincpu", 0)
62539   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(287f12d6) SHA1(ede0c5b0ea2586d8bdf71ecadbd9cc8552bd6934))
63   ROM_RELOAD( 0xe000, 0x0800)
540   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
64541   ROM_LOAD("green2.716", 0x7800, 0x0800, CRC(1c978a4a) SHA1(1959184764643d58f1740c54bb74c2aad7d667d2))
65   ROM_RELOAD( 0xf800, 0x0800)
66   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
67   ROM_RELOAD( 0xf000, 0x0800)
68542
69543   ROM_REGION(0x10000, "audiocpu", 0)
70544   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
71   ROM_RELOAD( 0xf800, 0x0800)
72545ROM_END
73546
74547ROM_START(flash_t1)
75548   ROM_REGION(0x10000, "maincpu", 0)
76549   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(287f12d6) SHA1(ede0c5b0ea2586d8bdf71ecadbd9cc8552bd6934))
77   ROM_RELOAD( 0xe000, 0x0800)
550   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
78551   ROM_LOAD("green2a.716", 0x7800, 0x0800, CRC(16621eec) SHA1(14e1cf5f7227860a3219b2b79fa66dcf252dce98))
79   ROM_RELOAD( 0xf800, 0x0800)
80   ROM_LOAD("green1.716", 0x7000, 0x0800, CRC(2145f8ab) SHA1(ddf63208559a3a08d4e88327c55426b0eed27654))
81   ROM_RELOAD( 0xf000, 0x0800)
82552
83553   ROM_REGION(0x10000, "audiocpu", 0)
84554   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
85   ROM_RELOAD( 0xf800, 0x0800)
86555ROM_END
87556
88557/*--------------------------------
r18710r18711
91560ROM_START(stlwr_l2)
92561   ROM_REGION(0x10000, "maincpu", 0)
93562   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(874e7ef7) SHA1(271aeac2a0e61cb195811ae2e8d908cb1ab45874))
94   ROM_RELOAD( 0xe000, 0x0800)
563   ROM_LOAD("yellow1.716", 0x7000, 0x0800, CRC(d251738c) SHA1(65ddbf5c36e429243331a4c5d2339df87a8a7f64))
95564   ROM_LOAD("yellow2.716", 0x7800, 0x0800, CRC(5049326d) SHA1(3b2f4ea054962bf4ba41d46663b7d3d9a77590ef))
96   ROM_RELOAD( 0xf800, 0x0800)
97   ROM_LOAD("yellow1.716", 0x7000, 0x0800, CRC(d251738c) SHA1(65ddbf5c36e429243331a4c5d2339df87a8a7f64))
98   ROM_RELOAD( 0xf000, 0x0800)
99565
100566   ROM_REGION(0x10000, "audiocpu", 0)
101567   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
102   ROM_RELOAD( 0xf800, 0x0800)
103568ROM_END
104569
570/* From here, are NOT pinball machines */
571
105572/*----------------------------
106573/ Pompeii (Shuffle)
107574/----------------------------*/
108575ROM_START(pomp_l1)
109576   ROM_REGION(0x10000, "maincpu", 0)
110577   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(0f069ac2) SHA1(d651d49cdb50cf444e420241a1f9ed48c878feee))
111   ROM_RELOAD( 0xe000, 0x0800)
578   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
112579   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
113   ROM_RELOAD( 0xf800, 0x0800)
114   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
115   ROM_RELOAD( 0xf000, 0x0800)
116580
117581   ROM_REGION(0x10000, "audiocpu", 0)
118582   ROM_LOAD("soundx.716", 0x7800, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
119   ROM_RELOAD( 0xf800, 0x0800)
120583ROM_END
121584
122585/*----------------------------
123/ Aristocrat (Shuffle)
586/ Aristocrat (Shuffle) same roms as Pompeii
124587/----------------------------*/
125588ROM_START(arist_l1)
126589   ROM_REGION(0x10000, "maincpu", 0)
127590   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(0f069ac2) SHA1(d651d49cdb50cf444e420241a1f9ed48c878feee))
128   ROM_RELOAD( 0xe000, 0x0800)
591   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
129592   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
130   ROM_RELOAD( 0xf800, 0x0800)
131   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
132   ROM_RELOAD( 0xf000, 0x0800)
133593
134594   ROM_REGION(0x10000, "audiocpu", 0)
135595   ROM_LOAD("soundx.716", 0x7800, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
136   ROM_RELOAD( 0xf800, 0x0800)
137596ROM_END
138597
139598/*----------------------------
r18710r18711
142601ROM_START(topaz_l1)
143602   ROM_REGION(0x10000, "maincpu", 0)
144603   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(cb287b10) SHA1(7fb6b6a26237cf85d5e02cf35271231267f90fc1))
145   ROM_RELOAD( 0xe000, 0x0800)
604   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
146605   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
147   ROM_RELOAD( 0xf800, 0x0800)
148   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
149   ROM_RELOAD( 0xf000, 0x0800)
150606
151607   ROM_REGION(0x10000, "audiocpu", 0)
152608   ROM_LOAD("sound1.716", 0x7800, 0x0800, CRC(f4190ca3) SHA1(ee234fb5c894fca5876ee6dc7ea8e89e7e0aec9c))
153   ROM_RELOAD( 0xf800, 0x0800)
154609ROM_END
155610
156611/*----------------------------
r18710r18711
159614ROM_START(taurs_l1)
160615   ROM_REGION(0x10000, "maincpu", 0)
161616   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(3246e285) SHA1(4f76784ecb5063a49c24795ae61db043a51e2c89))
162   ROM_RELOAD( 0xe000, 0x0800)
617   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
163618   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
164   ROM_RELOAD( 0xf800, 0x0800)
165   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
166   ROM_RELOAD( 0xf000, 0x0800)
167619
168620   ROM_REGION(0x10000, "audiocpu", 0)
169621   ROM_LOAD("soundx.716", 0x7800, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
170   ROM_RELOAD( 0xf800, 0x0800)
171622ROM_END
172623
173624/*----------------------------
r18710r18711
176627ROM_START(kingt_l1)
177628   ROM_REGION(0x10000, "maincpu", 0)
178629   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(54d3280a) SHA1(ca74636e35d2c3e0b3133f89b1ff1233d5d72a5c))
179   ROM_RELOAD( 0xe000, 0x0800)
630   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
180631   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
181   ROM_RELOAD( 0xf800, 0x0800)
182   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
183   ROM_RELOAD( 0xf000, 0x0800)
184632
185633   ROM_REGION(0x10000, "audiocpu", 0)
186634   ROM_LOAD("soundx.716", 0x7800, 0x0800, CRC(539d64fb) SHA1(ff0d09c8d7c65e1072691b5b9e4fcaa3f38d67e8))
187   ROM_RELOAD( 0xf800, 0x0800)
188635ROM_END
189636
190637/*----------------------------
r18710r18711
193640ROM_START(omni_l1)
194641   ROM_REGION(0x10000, "maincpu", 0)
195642   ROM_LOAD("omni-1a.u21", 0x6000, 0x0800, CRC(443bd170) SHA1(cc1ebd72d77ec2014cbd84534380e5ea1f12c022))
196   ROM_RELOAD( 0xe000, 0x0800)
643   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
197644   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
198   ROM_RELOAD( 0xf800, 0x0800)
199   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
200   ROM_RELOAD( 0xf000, 0x0800)
201645
202646   ROM_REGION(0x10000, "audiocpu", 0)
203647   ROM_LOAD("sound.716", 0x7800, 0x0800, CRC(db085cbb) SHA1(9a57abbad183ba16b3dba16d16923c3bfc46a0c3))
204   ROM_RELOAD( 0xf800, 0x0800)
205648ROM_END
206649
207650/*----------------------------
r18710r18711
210653ROM_START(bstrk_l1)
211654   ROM_REGION(0x10000, "maincpu", 0)
212655   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(323dbcde) SHA1(a75cbb5de97cb9afc1d36e9b6ff593bb482fcf8b))
213   ROM_RELOAD( 0xe000, 0x0800)
656   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
214657   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
215   ROM_RELOAD( 0xf800, 0x0800)
216   ROM_LOAD("b_ic20.716", 0x7000, 0x0800, CRC(c6f8e3b1) SHA1(cb78d42e1265162132a1ab2320148b6857106b0e))
217   ROM_RELOAD( 0xf000, 0x0800)
218
219   ROM_REGION(0x10000, "audiocpu", ROMREGION_ERASEFF)
220658ROM_END
221659
222660/*----------------------------
r18710r18711
225663ROM_START(tstrk_l1)
226664   ROM_REGION(0x10000, "maincpu", 0)
227665   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(b034c059) SHA1(76b3926b87b3c137fcaf33021a586827e3c030af))
228   ROM_RELOAD( 0xe000, 0x0800)
666   ROM_LOAD("ic20.716", 0x7000, 0x0800, CRC(f163fc88) SHA1(988b60626f3d4dc8f4a1dbd0c99282418bc53aae))
229667   ROM_LOAD("b_ic17.716", 0x7800, 0x0800, CRC(cfc2518a) SHA1(5e99e40dcb7e178137db8d7d7d6da82ba87130fa))
230   ROM_RELOAD( 0xf800, 0x0800)
231   ROM_LOAD("ic20.716", 0x7000, 0x0800, CRC(f163fc88) SHA1(988b60626f3d4dc8f4a1dbd0c99282418bc53aae))
232   ROM_RELOAD( 0xf000, 0x0800)
233
234   ROM_REGION(0x10000, "audiocpu", ROMREGION_ERASEFF)
235668ROM_END
236669
237670
238GAME(1979,flash_l1, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "Flash (L-1)", GAME_IS_SKELETON_MECHANICAL)
239GAME(1979,flash_t1, flash_l1, s4, s4, driver_device, 0, ROT0, "Williams", "Flash (T-1) Ted Estes", GAME_IS_SKELETON_MECHANICAL)
240GAME(1979,stlwr_l2, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "Stellar Wars (L-2)", GAME_IS_SKELETON_MECHANICAL)
241GAME(1978,pomp_l1,  0,        s4, s4, driver_device, 0, ROT0, "Williams", "Pompeii (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
242GAME(1978,arist_l1, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "Aristocrat (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
243GAME(1978,topaz_l1, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "Topaz (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
244GAME(1979,taurs_l1, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "Taurus (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
245GAME(1979,kingt_l1, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "King Tut (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
246GAME(1980,omni_l1,  0,        s4, s4, driver_device, 0, ROT0, "Williams", "Omni (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
247GAME(1983,bstrk_l1, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "Big Strike (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
248GAME(1983,tstrk_l1, 0,        s4, s4, driver_device, 0, ROT0, "Williams", "Triple Strike (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
671GAME(1979,flash_l1, 0,        s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (L-1)", GAME_IS_SKELETON_MECHANICAL)
672GAME(1979,flash_t1, flash_l1, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (T-1) Ted Estes", GAME_IS_SKELETON_MECHANICAL)
673GAME(1979,stlwr_l2, 0,        s4a, s4, driver_device, 0, ROT0, "Williams", "Stellar Wars (L-2)", GAME_MECHANICAL | GAME_NO_SOUND)
674GAME(1978,pomp_l1,  0,        s4a, s4, driver_device, 0, ROT0, "Williams", "Pompeii (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
675GAME(1978,arist_l1, 0,        s4a, s4, driver_device, 0, ROT0, "Williams", "Aristocrat (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
676GAME(1978,topaz_l1, 0,        s4a, s4, driver_device, 0, ROT0, "Williams", "Topaz (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
677GAME(1979,taurs_l1, 0,        s4a, s4, driver_device, 0, ROT0, "Williams", "Taurus (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
678GAME(1979,kingt_l1, 0,        s4a, s4, driver_device, 0, ROT0, "Williams", "King Tut (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
679GAME(1980,omni_l1,  0,        s4a, s4, driver_device, 0, ROT0, "Williams", "Omni (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
680GAME(1983,bstrk_l1, 0,        s4,  s4, driver_device, 0, ROT0, "Williams", "Big Strike (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
681GAME(1983,tstrk_l1, 0,        s4,  s4, driver_device, 0, ROT0, "Williams", "Triple Strike (Shuffle) (L-1)", GAME_IS_SKELETON_MECHANICAL)
trunk/src/mame/mame.mak
r18710r18711
22242224
22252225$(DRIVERS)/s3.o:   $(LAYOUT)/s3.lh
22262226
2227$(DRIVERS)/s4.o:   $(LAYOUT)/s4.lh
2228
2229$(DRIVERS)/s6.o:   $(LAYOUT)/s6.lh
2230
2231$(DRIVERS)/s6a.o:   $(LAYOUT)/s6a.lh
2232
22272233$(DRIVERS)/sbrkout.o:   $(LAYOUT)/sbrkout.lh
22282234
22292235$(DRIVERS)/sderby.o:   $(LAYOUT)/sderby.lh \

Previous 199869 Revisions Next


© 1997-2024 The MAME Team