Previous 199869 Revisions Next

r18640 Sunday 21st October, 2012 at 09:33:55 UTC by Robbbert
Hot Tip, Lucky Seven : added chimes, now marked as WORKING [Robbbert]
[src/mame/drivers]s3.c

trunk/src/mame/drivers/s3.c
r18639r18640
4848   DECLARE_WRITE8_MEMBER(switch_w);
4949   DECLARE_READ_LINE_MEMBER(cb1_r);
5050   TIMER_DEVICE_CALLBACK_MEMBER(irq);
51   DECLARE_MACHINE_RESET(s3);
52   DECLARE_MACHINE_RESET(s3a);
5153protected:
5254
5355   // devices
5456   required_device<cpu_device> m_maincpu;
55   required_device<dac_device> m_dac;
57   optional_device<dac_device> m_dac;
5658   required_device<pia6821_device> m_pia0;
5759   required_device<pia6821_device> m_pia1;
5860   required_device<pia6821_device> m_pia2;
5961   required_device<pia6821_device> m_pia3;
60   required_device<pia6821_device> m_pia4;
61
62   // driver_device overrides
63   virtual void machine_reset();
62   optional_device<pia6821_device> m_pia4;
6463private:
6564   UINT8 m_t_c;
6665   UINT8 m_sound_data;
r18639r18640
6867   UINT8 m_kbdrow;
6968   bool m_cb1;
7069   bool m_data_ok;
70   bool m_chimes;
7171};
7272
7373static ADDRESS_MAP_START( s3_main_map, AS_PROGRAM, 8, s3_state )
r18639r18640
164164   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Music") PORT_CODE(KEYCODE_9) PORT_TOGGLE
165165INPUT_PORTS_END
166166
167void s3_state::machine_reset()
167MACHINE_RESET_MEMBER( s3_state, s3 )
168168{
169169   m_t_c = 0;
170   m_chimes = 1;
170171}
171172
173MACHINE_RESET_MEMBER( s3_state, s3a )
174{
175   m_t_c = 0;
176   m_chimes = 0;
177}
178
172179WRITE8_MEMBER( s3_state::sol0_w )
173180{
174
175181}
176182
177183WRITE8_MEMBER( s3_state::sol1_w )
178184{
179   m_sound_data = ioport("SND")->read(); // 0xff or 0xbf
180   if (BIT(data, 0))
181      m_sound_data &= 0xfe;
182   else
183   if (BIT(data, 1))
184      m_sound_data &= 0xfd;
185   else
186   if (BIT(data, 2))
187      m_sound_data &= 0xfb;
188   else
189   if (BIT(data, 3))
190      m_sound_data &= 0xf7;
191   else
192   if (BIT(data, 4))
193      m_sound_data &= 0x7f;
194   else
195   if (BIT(data, 5))
196      m_samples->start(0, 6); // knocker
197
198   if ((m_sound_data & 0xbf) == 0xbf)
185   if (m_chimes)
199186   {
200      m_cb1 = 0;
201      m_pia4->cb1_w(0);
187      if (BIT(data, 0))
188         m_samples->start(1, 1); // 10 chime
189      else
190      if (BIT(data, 1))
191         m_samples->start(2, 2); // 100 chime
192      else
193      if (BIT(data, 2))
194         m_samples->start(3, 3); // 1000 chime
195      // we don't have a 10k chime in samples yet
196      //else
197      //if (BIT(data, 3))
198         //m_samples->start(1, x); // 10k chime
202199   }
203200   else
204201   {
205      m_cb1 = 1;
206      m_pia4->cb1_w(1);
202      m_sound_data = ioport("SND")->read(); // 0xff or 0xbf
203      if (BIT(data, 0))
204         m_sound_data &= 0xfe;
205      else
206      if (BIT(data, 1))
207         m_sound_data &= 0xfd;
208      else
209      if (BIT(data, 2))
210         m_sound_data &= 0xfb;
211      else
212      if (BIT(data, 3))
213         m_sound_data &= 0xf7;
214      else
215      if (BIT(data, 4))
216         m_sound_data &= 0x7f;
217
218      if ((m_sound_data & 0xbf) == 0xbf)
219      {
220         m_cb1 = 0;
221         m_pia4->cb1_w(0);
222      }
223      else
224      {
225         m_cb1 = 1;
226         m_pia4->cb1_w(1);
227      }
207228   }
229
230   if (BIT(data, 5))
231      m_samples->start(0, 6); // knocker
208232}
209233
210234static const pia6821_interface pia0_intf =
r18639r18640
230254
231255WRITE8_MEMBER( s3_state::lamp1_w )
232256{
233
234257}
235258
236259static const pia6821_interface pia1_intf =
r18639r18640
353376   /* basic machine hardware */
354377   MCFG_CPU_ADD("maincpu", M6800, 3580000)
355378   MCFG_CPU_PROGRAM_MAP(s3_main_map)
356   MCFG_CPU_ADD("audiocpu", M6802, 3580000)
357   MCFG_CPU_PROGRAM_MAP(s3_audio_map)
358379   MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s3_state, irq, attotime::from_hz(1000))
380   MCFG_MACHINE_RESET_OVERRIDE(s3_state, s3)
359381
360382   /* Video */
361383   MCFG_DEFAULT_LAYOUT(layout_s3)
362384
363385   /* Sound */
364386   MCFG_FRAGMENT_ADD( genpin_audio )
365   MCFG_SPEAKER_STANDARD_MONO("mono")
366   MCFG_SOUND_ADD("dac", DAC, 0)
367   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
368387
369388   /* Devices */
370389   MCFG_PIA6821_ADD("pia0", pia0_intf)
371390   MCFG_PIA6821_ADD("pia1", pia1_intf)
372391   MCFG_PIA6821_ADD("pia2", pia2_intf)
373392   MCFG_PIA6821_ADD("pia3", pia3_intf)
374   MCFG_PIA6821_ADD("pia4", pia4_intf)
375393   MCFG_NVRAM_ADD_1FILL("nvram")
376394MACHINE_CONFIG_END
377395
396static MACHINE_CONFIG_DERIVED( s3a, s3 )
397   /* Add the soundcard */
398   MCFG_CPU_ADD("audiocpu", M6802, 3580000)
399   MCFG_CPU_PROGRAM_MAP(s3_audio_map)
400   MCFG_MACHINE_RESET_OVERRIDE(s3_state, s3a)
401   MCFG_SPEAKER_STANDARD_MONO("mono")
402   MCFG_SOUND_ADD("dac", DAC, 0)
403   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
404   MCFG_PIA6821_ADD("pia4", pia4_intf)
405MACHINE_CONFIG_END
406
407
378408/*-------------------------------------
379409/ Contact - Sys.3 (Game #482)
380410/-------------------------------------*/
r18639r18640
409439   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(b1d4fd9b) SHA1(e55ecf1328a55979c4cf8f3fb4e6761747e0abc4))
410440   ROM_LOAD("white1.716", 0x7000, 0x0800, CRC(9bbbf14f) SHA1(b0542ffdd683fa0ea4a9819576f3789cd5a4b2eb))
411441   ROM_LOAD("white2.716", 0x7800, 0x0800, CRC(4d4010dd) SHA1(11221124fef3b7bf82d353d65ce851495f6946a7))
412
413   ROM_REGION(0x10000, "audiocpu", ROMREGION_ERASEFF)
414442ROM_END
415443
416444/*---------------------------------
r18639r18640
421449   ROM_LOAD("gamerom.716", 0x6000, 0x0800, CRC(7cfbd4c7) SHA1(825e2245fd1615e932973f5e2b5ed5f2da9309e7))
422450   ROM_LOAD("white1.716", 0x7000, 0x0800, CRC(9bbbf14f) SHA1(b0542ffdd683fa0ea4a9819576f3789cd5a4b2eb))
423451   ROM_LOAD("white2.716", 0x7800, 0x0800, CRC(4d4010dd) SHA1(11221124fef3b7bf82d353d65ce851495f6946a7))
424
425   ROM_REGION(0x10000, "audiocpu", ROMREGION_ERASEFF)
426452ROM_END
427453
428454/*-------------------------------------
r18639r18640
439465ROM_END
440466
441467
442GAME( 1977, httip_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Hot Tip (L-1)", GAME_MECHANICAL | GAME_NO_SOUND)
443GAME( 1977, lucky_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Lucky Seven (L-1)", GAME_MECHANICAL | GAME_NO_SOUND)
444GAME( 1978, wldcp_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "World Cup Soccer (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
445GAME( 1978, cntct_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Contact (L-1)", GAME_MECHANICAL)
446GAME( 1978, disco_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Disco Fever (L-1)", GAME_MECHANICAL)
468GAME( 1977, httip_l1, 0, s3,  s3, driver_device, 0, ROT0, "Williams", "Hot Tip (L-1)", GAME_MECHANICAL )
469GAME( 1977, lucky_l1, 0, s3,  s3, driver_device, 0, ROT0, "Williams", "Lucky Seven (L-1)", GAME_MECHANICAL )
470GAME( 1978, wldcp_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "World Cup Soccer (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
471GAME( 1978, cntct_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Contact (L-1)", GAME_MECHANICAL)
472GAME( 1978, disco_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Disco Fever (L-1)", GAME_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team