Previous 199869 Revisions Next

r32490 Thursday 2nd October, 2014 at 06:33:08 UTC by Robbbert
Still Crazy: fixed layout and coins, marked as working.
[src/mame/drivers]s6.c s6a.c s7.c s8.c s8a.c
[src/mame/layout]s8a.lay

trunk/src/mame/layout/s8a.lay
r32489r32490
2020         <color red="0.0" green="0.0" blue="0.0" />
2121      </rect>
2222   </element>
23   <element name="P0"><text string="Diag"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P1"><text string="Innings"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P3"><text string="Visitors"><color red="1.0" green="1.0" blue="1.0" /></text></element>
26   <element name="P4"><text string="Home"><color red="1.0" green="1.0" blue="1.0" /></text></element>
27   <element name="P5"><text string="Strikes"><color red="1.0" green="1.0" blue="1.0" /></text></element>
28   <element name="P6"><text string="Outs"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P3"><text string="Score"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P4"><text string="Batch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2925
3026   <view name="Default Layout">
3127
3228      <!-- Background -->
3329      <backdrop element="background">
34         <bounds left="0" top="20" right="318" bottom="154" />
30         <bounds left="0" top="20" right="318" bottom="94" />
3531      </backdrop>
3632
3733      <!-- LEDs -->
r32489r32490
5854         <bounds left="274" top="45" right="308" bottom="84" />
5955      </bezel>
6056
61      <!-- Player 4 Score -->
62      <bezel name="digit9" element="digit">
63         <bounds left="10" top="105" right="44" bottom="144" />
64      </bezel>
65      <bezel name="digit10" element="digit">
66         <bounds left="54" top="105" right="88" bottom="144" />
67      </bezel>
68      <bezel name="digit11" element="digit">
69         <bounds left="98" top="105" right="132" bottom="144" />
70      </bezel>
71      <bezel name="digit12" element="digit">
72         <bounds left="142" top="105" right="176" bottom="144" />
73      </bezel>
74      <bezel name="digit13" element="digit">
75         <bounds left="186" top="105" right="220" bottom="144" />
76      </bezel>
77      <bezel name="digit60" element="diag">
78         <bounds left="230" top="105" right="264" bottom="144" />
79      </bezel>
80      <bezel name="digit15" element="digit">
81         <bounds left="274" top="105" right="308" bottom="144" />
82      </bezel>
83
84      <bezel element="P0"><bounds left="230" right="258" top="90" bottom="102" /></bezel>
85      <bezel element="P1"><bounds left="30" right="88" top="90" bottom="102" /></bezel>
86      <bezel element="P3"><bounds left="45" right="95" top="30" bottom="42" /></bezel>
87      <bezel element="P4"><bounds left="220" right="274" top="30" bottom="42" /></bezel>
88      <bezel element="P5"><bounds left="170" right="230" top="90" bottom="102" /></bezel>
89      <bezel element="P6"><bounds left="270" right="310" top="90" bottom="102" /></bezel>
57      <bezel element="P3"><bounds left="90" right="150" top="20" bottom="42" /></bezel>
58      <bezel element="P4"><bounds left="270" right="312" top="20" bottom="42" /></bezel>
9059   </view>
9160</mamelayout>
trunk/src/mame/drivers/s6.c
r32489r32490
444444   MCFG_CPU_PROGRAM_MAP(s6_audio_map)
445445   MCFG_SPEAKER_STANDARD_MONO("mono")
446446   MCFG_SOUND_ADD("dac", DAC, 0)
447   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
447   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
448448   MCFG_SPEAKER_STANDARD_MONO("speech")
449449   MCFG_SOUND_ADD("hc55516", HC55516, 0)
450   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 0.50)
450   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 1.00)
451451
452452   MCFG_DEVICE_ADD("pias", PIA6821, 0)
453453   MCFG_PIA_READPB_HANDLER(READ8(s6_state, dac_r))
trunk/src/mame/drivers/s6a.c
r32489r32490
434434   MCFG_CPU_PROGRAM_MAP(s6a_audio_map)
435435   MCFG_SPEAKER_STANDARD_MONO("mono")
436436   MCFG_SOUND_ADD("dac", DAC, 0)
437   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
437   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
438438   MCFG_SPEAKER_STANDARD_MONO("speech")
439439   MCFG_SOUND_ADD("hc55516", HC55516, 0)
440   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 0.50)
440   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 1.00)
441441
442442   MCFG_DEVICE_ADD("pias", PIA6821, 0)
443443   MCFG_PIA_READPB_HANDLER(READ8(s6a_state, dac_r))
trunk/src/mame/drivers/s8.c
r32489r32490
22// copyright-holders:Robbbert
33/***********************************************************************************
44
5    PINBALL
6    Williams System 8
5  PINBALL
6  Williams System 8
7  These are not true pinballs in the normal sense, but are unusual novelty
8  machines. Unfortunately they were mostly cancelled before production could
9  begin.
710
8    Only 2 games used this system.
9    The very first time run, the display will show the model number (526 or 543).
10    Press F3 to clear this, then follow instructions below.
11  Games:
12  - Pennant Fever (#526)
13  - Gridiron (#538)
14  - Still Crazy (#543)
15  - Break Street
1116
12    - Pennant Fever, which isn't a true pinball, it is a baseball game where you aim
13      for targets at the top of the playfield, and the players advance towards a
14      home run. There are no bumpers or other 'usual' pinball items. 1 or 2 players.
15      How to play:
16      - Insert coin (credits shows in innings)
17      - Start game
18      - Player 1 is 'Visitors'; optional Player 2 is 'Home'
19      - Press one of L,B,C,V to hit the ball; or comma,period,slash for a home run;
20        or (F then A) for a Strike; or N,Z for Out.
21      - Wait for score to start flashing
22      - Press another key, etc
23      - When you have 3 strikes, you are Out
24      - When you have 3 Outs, your Innings ends (other player gets a turn)
25      - After 3 Innings, it's game over.
26      - Match digit appears in Outs digit.
17The first time run, the display will show the model number. Press F3 to clear this.
2718
28    - Still Crazy, a novelty game where the playfield is completely vertical. It has
29      4 flippers and the idea is to get the ball up to the alcohol 'still' before
30      the 'revenuers' do. The idea didn't catch on, and the game was not officially
31      released. 1 player. The display shows Score and Batch. There is no credit
32      display.
19Pennant Fever is a baseball game where you aim for targets at the top of the
20  playfield, and the players advance towards a home run. There are no bumpers
21  or other 'usual' pinball items. 1 or 2 players.
22  How to play:
23  - Insert coin (credits shows in innings)
24  - Start game
25  - Player 1 is 'Visitors'; optional Player 2 is 'Home'
26  - Press one of L,B,C,V to hit the ball; or comma,period,slash for a home run;
27    or (F then A) for a Strike; or N,Z for Out.
28  - Wait for score to start flashing
29  - Press another key, etc
30  - When you have 3 strikes, you are Out
31  - When you have 3 Outs, your Innings ends (other player gets a turn)
32  - After 3 Innings, it's game over.
33  - Match digit appears in Outs digit.
3334
35Gridiron, a conversion kit for Pennant Fever. Didn't get past the prototype stage.
36
37Still Crazy, also only a prototype. See s8a.c for more.
38
39Break Street, another failed novelty, not much is known about it. Seems it
40  features a break-dancing toy and a spinning disk.
41
3442ToDo:
35- Make Still Crazy layout.
36- Get Still Crazy coin-in to register.
37  Workaround:
38  - Start in debug mode, g to run the game, go to memory view and enter credits
39    into location 0x738. (example: 90 gives 90 credits). Quit.
40  - Start in non-debug mode. Press 1 to start, it works fine, apart from the
41    knocker making a lot of noise. Keys to use: A then any key on that row.
43- Diagnostic buttons not working
4244
45
4346************************************************************************************/
4447
4548
r32489r32490
5457{
5558public:
5659   s8_state(const machine_config &mconfig, device_type type, const char *tag)
57      : genpin_class(mconfig, type, tag),
58   m_maincpu(*this, "maincpu"),
59   m_audiocpu(*this, "audiocpu"),
60   m_dac(*this, "dac"),
61   m_pias(*this, "pias"),
62   m_pia21(*this, "pia21"),
63   m_pia24(*this, "pia24"),
64   m_pia28(*this, "pia28"),
65   m_pia30(*this, "pia30")
60      : genpin_class(mconfig, type, tag)
61      , m_maincpu(*this, "maincpu")
62      , m_audiocpu(*this, "audiocpu")
63      , m_dac(*this, "dac")
64      , m_pias(*this, "pias")
65      , m_pia21(*this, "pia21")
66      , m_pia24(*this, "pia24")
67      , m_pia28(*this, "pia28")
68      , m_pia30(*this, "pia30")
6669   { }
6770
6871   DECLARE_READ8_MEMBER(dac_r);
69   DECLARE_WRITE8_MEMBER(dac_w);
7072   DECLARE_WRITE8_MEMBER(dig0_w);
7173   DECLARE_WRITE8_MEMBER(dig1_w);
7274   DECLARE_WRITE8_MEMBER(lamp0_w);
r32489r32490
8082   DECLARE_READ_LINE_MEMBER(pia21_ca1_r);
8183   DECLARE_READ_LINE_MEMBER(pia28_ca1_r);
8284   DECLARE_READ_LINE_MEMBER(pia28_cb1_r);
83   DECLARE_WRITE_LINE_MEMBER(pias_ca2_w);
84   DECLARE_WRITE_LINE_MEMBER(pias_cb2_w);
8585   DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
8686   DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { }; // enable solenoids
8787   DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { }; // dummy to stop error log filling up
r32489r32490
9191   DECLARE_INPUT_CHANGED_MEMBER(main_nmi);
9292   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
9393   DECLARE_MACHINE_RESET(s8);
94protected:
95
96   // devices
94private:
95   UINT8 m_t_c;
96   UINT8 m_sound_data;
97   UINT8 m_strobe;
98   UINT8 m_kbdrow;
99   bool m_data_ok;
97100   required_device<cpu_device> m_maincpu;
98101   required_device<cpu_device> m_audiocpu;
99102   required_device<dac_device> m_dac;
r32489r32490
102105   required_device<pia6821_device> m_pia24;
103106   required_device<pia6821_device> m_pia28;
104107   required_device<pia6821_device> m_pia30;
105private:
106   UINT8 m_t_c;
107   UINT8 m_sound_data;
108   UINT8 m_strobe;
109   UINT8 m_kbdrow;
110   bool m_data_ok;
111108};
112109
113110static ADDRESS_MAP_START( s8_main_map, AS_PROGRAM, 8, s8_state )
r32489r32490
118115   AM_RANGE(0x2400, 0x2403) AM_DEVREADWRITE("pia24", pia6821_device, read, write) // lamps
119116   AM_RANGE(0x2800, 0x2803) AM_DEVREADWRITE("pia28", pia6821_device, read, write) // display
120117   AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pia30", pia6821_device, read, write) // inputs
121   AM_RANGE(0x5000, 0x7fff) AM_ROM
118   AM_RANGE(0x5000, 0x7fff) AM_ROM AM_REGION("roms", 0)
122119ADDRESS_MAP_END
123120
124121static ADDRESS_MAP_START( s8_audio_map, AS_PROGRAM, 8, s8_state )
125122   AM_RANGE(0x0000, 0x00ff) AM_RAM
126   AM_RANGE(0x2000, 0x2003) AM_DEVREADWRITE("pias", pia6821_device, read, write) // scrzy_l1 sounds
127   AM_RANGE(0x4000, 0x4003) AM_DEVREADWRITE("pias", pia6821_device, read, write) // pfevr sounds
128   AM_RANGE(0x8000, 0xffff) AM_ROM
123   AM_RANGE(0x4000, 0x4003) AM_DEVREADWRITE("pias", pia6821_device, read, write)
124   AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("audioroms", 0)
129125ADDRESS_MAP_END
130126
131127static INPUT_PORTS_START( s8 )
r32489r32490
144140
145141   PORT_START("X2")
146142   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
147   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
148   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
149   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F)
150   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
151   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H)
152   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
153   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
143   PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN )
154144
155145   PORT_START("X4")
156146   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
r32489r32490
165155   PORT_START("X8")
166156   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
167157   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
168   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
169   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
170   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X)
171   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
172   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
173   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
158   PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
174159
175160   PORT_START("X10")
176   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
177   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
178   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
179   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
180   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
181   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
182   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
183   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
161   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
184162
185163   PORT_START("X20")
186   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
187   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
188   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
189   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
190   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
191   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
192   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
193   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
164   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
194165
195166   PORT_START("X40")
196167   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
r32489r32490
273244
274245WRITE8_MEMBER( s8_state::dig1_w )
275246{
276   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
247   static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
277248   if (m_data_ok)
278249   {
279250      output_set_digit_value(m_strobe+16, patterns[data&15]);
r32489r32490
286257{
287258   char kbdrow[8];
288259   sprintf(kbdrow,"X%X",m_kbdrow);
289   return ~ioport(kbdrow)->read();
260   return ioport(kbdrow)->read() ^ 0xff;
290261}
291262
292263WRITE8_MEMBER( s8_state::switch_w )
r32489r32490
294265   m_kbdrow = data;
295266}
296267
297WRITE_LINE_MEMBER( s8_state::pias_ca2_w )
298{
299// speech clock
300}
301
302WRITE_LINE_MEMBER( s8_state::pias_cb2_w )
303{
304// speech data
305}
306
307268READ8_MEMBER( s8_state::dac_r )
308269{
309270   return m_sound_data;
310271}
311272
312WRITE8_MEMBER( s8_state::dac_w )
273TIMER_DEVICE_CALLBACK_MEMBER( s8_state::irq )
313274{
314   m_dac->write_unsigned8(data);
315}
316
317TIMER_DEVICE_CALLBACK_MEMBER( s8_state::irq)
318{
319275   if (m_t_c > 0x70)
320276      m_maincpu->set_input_line(M6800_IRQ_LINE, ASSERT_LINE);
321277   else
r32489r32490
324280
325281static MACHINE_CONFIG_START( s8, s8_state )
326282   /* basic machine hardware */
327   MCFG_CPU_ADD("maincpu", M6802, 4000000)
283   MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz)
328284   MCFG_CPU_PROGRAM_MAP(s8_main_map)
329285   MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s8_state, irq, attotime::from_hz(250))
330286   MCFG_MACHINE_RESET_OVERRIDE(s8_state, s8)
r32489r32490
372328   MCFG_NVRAM_ADD_1FILL("nvram")
373329
374330   /* Add the soundcard */
375   MCFG_CPU_ADD("audiocpu", M6808, 4000000)
331   MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz)
376332   MCFG_CPU_PROGRAM_MAP(s8_audio_map)
377333   MCFG_SPEAKER_STANDARD_MONO("mono")
378334   MCFG_SOUND_ADD("dac", DAC, 0)
379   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
335   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
380336
381337   MCFG_DEVICE_ADD("pias", PIA6821, 0)
382338   MCFG_PIA_READPA_HANDLER(READ8(s8_state, dac_r))
383   MCFG_PIA_WRITEPA_HANDLER(WRITE8(s8_state, sound_w))
384   MCFG_PIA_WRITEPB_HANDLER(WRITE8(s8_state, dac_w))
385   MCFG_PIA_CA2_HANDLER(WRITELINE(s8_state, pias_ca2_w))
386   MCFG_PIA_CB2_HANDLER(WRITELINE(s8_state, pias_cb2_w))
339   MCFG_PIA_WRITEPB_HANDLER(DEVWRITE8("dac", dac_device, write_unsigned8))
387340   MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("audiocpu", m6808_cpu_device, irq_line))
388341   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("audiocpu", m6808_cpu_device, irq_line))
389342MACHINE_CONFIG_END
r32489r32490
392345/ Pennant Fever (#526) 05/1984
393346/-------------------------------*/
394347ROM_START(pfevr_l2)
395   ROM_REGION(0x10000, "maincpu", 0)
396   ROM_LOAD("pf-rom1.u19", 0x5000, 0x1000, CRC(00be42bd) SHA1(72ca21c96e3ffa3c43499165f3339b669c8e94a5))
397   ROM_LOAD("pf-rom2.u20", 0x6000, 0x2000, CRC(7b101534) SHA1(21e886d5872104d71bb528b9affb12230268597a))
348   ROM_REGION(0x3000, "roms", 0)
349   ROM_LOAD("pf-rom1.u19", 0x0000, 0x1000, CRC(00be42bd) SHA1(72ca21c96e3ffa3c43499165f3339b669c8e94a5))
350   ROM_LOAD("pf-rom2.u20", 0x1000, 0x2000, CRC(7b101534) SHA1(21e886d5872104d71bb528b9affb12230268597a))
398351
399   ROM_REGION(0x10000, "audiocpu", 0)
400   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(b0161712) SHA1(5850f1f1f11e3ac9b9629cff2b26c4ad32436b55))
352   ROM_REGION(0x4000, "audioroms", 0)
353   ROM_LOAD("cpu_u49.128", 0x0000, 0x4000, CRC(b0161712) SHA1(5850f1f1f11e3ac9b9629cff2b26c4ad32436b55))
401354ROM_END
402355
403356ROM_START(pfevr_p3)
404   ROM_REGION(0x10000, "maincpu", 0)
405   ROM_LOAD("cpu_u19.732", 0x5000, 0x1000, CRC(03796c6d) SHA1(38c95fcce9d0f357a74f041f0df006b9c6f6efc7))
406   ROM_LOAD("cpu_u20.764", 0x6000, 0x2000, CRC(3a3acb39) SHA1(7844cc30a9486f718a556850fc9cef3be82f26b7))
357   ROM_REGION(0x3000, "roms", 0)
358   ROM_LOAD("cpu_u19.732", 0x0000, 0x1000, CRC(03796c6d) SHA1(38c95fcce9d0f357a74f041f0df006b9c6f6efc7))
359   ROM_LOAD("cpu_u20.764", 0x1000, 0x2000, CRC(3a3acb39) SHA1(7844cc30a9486f718a556850fc9cef3be82f26b7))
407360
408   ROM_REGION(0x10000, "audiocpu", 0)
409   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(b0161712) SHA1(5850f1f1f11e3ac9b9629cff2b26c4ad32436b55))
361   ROM_REGION(0x4000, "audioroms", 0)
362   ROM_LOAD("cpu_u49.128", 0x0000, 0x4000, CRC(b0161712) SHA1(5850f1f1f11e3ac9b9629cff2b26c4ad32436b55))
410363ROM_END
411364
412365
trunk/src/mame/drivers/s8a.c
r32489r32490
55  PINBALL
66  Williams System 8: Still Crazy
77
8  The very first time run, the display will show the model number (526 or 543).
9  Press F3 to clear this, then follow instructions below.
8The first time run, the display will show the model number (543).
9Press F3 to clear this.
1010
11  A novelty game where the playfield is completely vertical. It has
12  4 flippers and the idea is to get the ball up to the alcohol 'still' before
13  the 'revenuers' do. The idea didn't catch on, and the game was not officially
14  released. 1 player. The display shows Score and Batch. There is no credit
15  display.
11A novelty game where the playfield is completely vertical. It has 4 flippers and the
12  idea is to get the ball up to the alcohol 'still' before the 'revenuers' do. The
13  idea didn't catch on, and the game was not officially released. 1 player.
14  The display shows Score and Batch. There is no credit display.
15  If the number of batches exceeds 9, the 'hidden digit' will show the tens.
16  You cannot get more than 99 batches.
17  The score only has 5 digits, but the game stores the 100,000 digit internally.
1618
1719ToDo:
18- Make Still Crazy layout.
19- Get Still Crazy coin-in to register.
20  Workaround:
21  - Start in debug mode, g to run the game, go to memory view and enter credits
22    into location 0x738. (example: 90 gives 90 credits). Quit.
23  - Start in non-debug mode. Press 1 to start, it works fine, apart from the
24    knocker making a lot of noise. Keys to use: A then any key on that row.
20- Diagnostic buttons not working
2521
2622************************************************************************************/
2723
r32489r32490
4945   { }
5046
5147   DECLARE_READ8_MEMBER(dac_r);
52   DECLARE_WRITE8_MEMBER(dac_w);
5348   DECLARE_WRITE8_MEMBER(dig0_w);
5449   DECLARE_WRITE8_MEMBER(dig1_w);
5550   DECLARE_WRITE8_MEMBER(lamp0_w);
r32489r32490
6358   DECLARE_READ_LINE_MEMBER(pia21_ca1_r);
6459   DECLARE_READ_LINE_MEMBER(pia28_ca1_r);
6560   DECLARE_READ_LINE_MEMBER(pia28_cb1_r);
66   DECLARE_WRITE_LINE_MEMBER(pias_ca2_w);
67   DECLARE_WRITE_LINE_MEMBER(pias_cb2_w);
6861   DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
6962   DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { }; // enable solenoids
7063   DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { }; // dummy to stop error log filling up
r32489r32490
7366   TIMER_DEVICE_CALLBACK_MEMBER(irq);
7467   DECLARE_INPUT_CHANGED_MEMBER(main_nmi);
7568   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
76   DECLARE_MACHINE_RESET(s8);
69   DECLARE_MACHINE_RESET(s8a);
7770private:
7871   UINT8 m_t_c;
7972   UINT8 m_sound_data;
r32489r32490
9891   AM_RANGE(0x2400, 0x2403) AM_DEVREADWRITE("pia24", pia6821_device, read, write) // lamps
9992   AM_RANGE(0x2800, 0x2803) AM_DEVREADWRITE("pia28", pia6821_device, read, write) // display
10093   AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pia30", pia6821_device, read, write) // inputs
101   AM_RANGE(0x5000, 0x7fff) AM_ROM
94   AM_RANGE(0x6000, 0x7fff) AM_ROM AM_REGION("roms", 0)
10295ADDRESS_MAP_END
10396
10497static ADDRESS_MAP_START( s8_audio_map, AS_PROGRAM, 8, s8a_state )
10598   AM_RANGE(0x0000, 0x00ff) AM_RAM
10699   AM_RANGE(0x2000, 0x2003) AM_DEVREADWRITE("pias", pia6821_device, read, write)
107   AM_RANGE(0x8000, 0xffff) AM_ROM
100   AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("audioroms", 0)
108101ADDRESS_MAP_END
109102
110103static INPUT_PORTS_START( s8 )
r32489r32490
113106
114107   PORT_START("X1")
115108   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
116   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
109   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
117110   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
118   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
119   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
120   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
121   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER )
122   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )
111   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
112   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
113   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
114   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
115   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
123116
124117   PORT_START("X2")
125118   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
r32489r32490
132125   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
133126
134127   PORT_START("X4")
135   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
136   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
137   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
138   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
139   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
140   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
141   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
142   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
128   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
143129
144130   PORT_START("X8")
145   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
146   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
147   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
148   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
149   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X)
150   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
151   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
152   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
131   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
153132
154133   PORT_START("X10")
155   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
156   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
157   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
158   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
159   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
160   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
161   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
162   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
134   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
163135
164136   PORT_START("X20")
165   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
166   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
167   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
168   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
169   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
170   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
171   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
172   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
137   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
173138
174139   PORT_START("X40")
175140   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
r32489r32490
184149   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_9)
185150INPUT_PORTS_END
186151
187MACHINE_RESET_MEMBER( s8a_state, s8 )
152MACHINE_RESET_MEMBER( s8a_state, s8a )
188153{
189154   m_t_c = 0;
190155}
r32489r32490
205170
206171WRITE8_MEMBER( s8a_state::sol3_w )
207172{
208   if (BIT(data, 1))
209      m_samples->start(0, 6); // knocker
173   if (data==0x0a)
174      m_samples->start(0, 7); // mechanical drum when you have 2 or more batches
210175}
211176
212177WRITE8_MEMBER( s8a_state::sound_w )
r32489r32490
252217
253218WRITE8_MEMBER( s8a_state::dig1_w )
254219{
255   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
220   static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
256221   if (m_data_ok)
257222   {
258223      output_set_digit_value(m_strobe+16, patterns[data&15]);
r32489r32490
265230{
266231   char kbdrow[8];
267232   sprintf(kbdrow,"X%X",m_kbdrow);
268   return ~ioport(kbdrow)->read();
233   return ioport(kbdrow)->read() ^ 0xff;
269234}
270235
271236WRITE8_MEMBER( s8a_state::switch_w )
r32489r32490
278243   return m_sound_data;
279244}
280245
281WRITE8_MEMBER( s8a_state::dac_w )
246TIMER_DEVICE_CALLBACK_MEMBER( s8a_state::irq )
282247{
283   m_dac->write_unsigned8(data);
284}
285
286TIMER_DEVICE_CALLBACK_MEMBER( s8a_state::irq)
287{
288248   if (m_t_c > 0x70)
289249      m_maincpu->set_input_line(M6800_IRQ_LINE, ASSERT_LINE);
290250   else
r32489r32490
293253
294254static MACHINE_CONFIG_START( s8, s8a_state )
295255   /* basic machine hardware */
296   MCFG_CPU_ADD("maincpu", M6802, 4000000)
256   MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz)
297257   MCFG_CPU_PROGRAM_MAP(s8_main_map)
298258   MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s8a_state, irq, attotime::from_hz(250))
299   MCFG_MACHINE_RESET_OVERRIDE(s8a_state, s8)
259   MCFG_MACHINE_RESET_OVERRIDE(s8a_state, s8a)
300260
301261   /* Video */
302262   MCFG_DEFAULT_LAYOUT(layout_s8a)
r32489r32490
341301   MCFG_NVRAM_ADD_1FILL("nvram")
342302
343303   /* Add the soundcard */
344   MCFG_CPU_ADD("audiocpu", M6808, 4000000)
304   MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz)
345305   MCFG_CPU_PROGRAM_MAP(s8_audio_map)
346306   MCFG_SPEAKER_STANDARD_MONO("mono")
347307   MCFG_SOUND_ADD("dac", DAC, 0)
348   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
308   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
349309
350310   MCFG_DEVICE_ADD("pias", PIA6821, 0)
351311   MCFG_PIA_READPA_HANDLER(READ8(s8a_state, dac_r))
352   MCFG_PIA_WRITEPA_HANDLER(WRITE8(s8a_state, sound_w))
353   MCFG_PIA_WRITEPB_HANDLER(WRITE8(s8a_state, dac_w))
354   MCFG_PIA_CA2_HANDLER(NULL)
355   MCFG_PIA_CB2_HANDLER(NULL)
312   MCFG_PIA_WRITEPB_HANDLER(DEVWRITE8("dac", dac_device, write_unsigned8))
356313   MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("audiocpu", m6808_cpu_device, irq_line))
357314   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("audiocpu", m6808_cpu_device, irq_line))
358315MACHINE_CONFIG_END
r32489r32490
362319/ Still Crazy (#543) 06/1984
363320/-----------------------------*/
364321ROM_START(scrzy_l1)
365   ROM_REGION(0x10000, "maincpu", 0)
366   ROM_LOAD("ic20.bin", 0x6000, 0x2000, CRC(b0df42e6) SHA1(bb10268d7b820d1de0c20e1b79aba558badd072b) )
322   ROM_REGION(0x2000, "roms", 0)
323   ROM_LOAD("ic20.bin", 0x0000, 0x2000, CRC(b0df42e6) SHA1(bb10268d7b820d1de0c20e1b79aba558badd072b) )
367324
368   ROM_REGION(0x10000, "audiocpu", 0)
369   ROM_LOAD("ic49.bin", 0xc000, 0x4000, CRC(bcc8ccc4) SHA1(2312f9cc4f5a2dadfbfa61d13c31bb5838adf152) )
325   ROM_REGION(0x4000, "audioroms", 0)
326   // 1st and 2nd halves are identical
327   ROM_LOAD("ic49.bin", 0x0000, 0x4000, CRC(bcc8ccc4) SHA1(2312f9cc4f5a2dadfbfa61d13c31bb5838adf152) )
370328ROM_END
371329
372GAME(1984,scrzy_l1, 0,        s8, s8, driver_device, 0, ROT0, "Williams", "Still Crazy", GAME_MECHANICAL | GAME_NOT_WORKING)
330GAME(1984,scrzy_l1, 0, s8, s8, driver_device, 0, ROT0, "Williams", "Still Crazy", GAME_MECHANICAL )
trunk/src/mame/drivers/s7.c
r32489r32490
502502   MCFG_CPU_PROGRAM_MAP(s7_audio_map)
503503   MCFG_SPEAKER_STANDARD_MONO("mono")
504504   MCFG_SOUND_ADD("dac", DAC, 0)
505   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
505   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
506506   MCFG_SPEAKER_STANDARD_MONO("speech")
507507   MCFG_SOUND_ADD("hc55516", HC55516, 0)
508   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 0.50)
508   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 1.00)
509509
510510   MCFG_DEVICE_ADD("pias", PIA6821, 0)
511511   MCFG_PIA_READPB_HANDLER(READ8(s7_state, dac_r))

Previous 199869 Revisions Next


© 1997-2024 The MAME Team