Previous 199869 Revisions Next

r32653 Saturday 11th October, 2014 at 14:09:40 UTC by Robbbert
gts80.c: moved original sound board to audio/gottlieb as a device.
[src/mame/audio]gottlieb.c gottlieb.h
[src/mame/drivers]gts80.c
[src/mame/layout]gts80.lay

trunk/src/mame/layout/gts80.lay
r32652r32653
121121      </bezel>
122122
123123      <!-- Credits and Balls -->
124      <bezel name="digit56" element="digit7">
124      <bezel name="digit55" element="digit7">
125125         <bounds left="30" top="345" right="64" bottom="384" />
126126      </bezel>
127      <bezel name="digit55" element="digit7">
127      <bezel name="digit54" element="digit7">
128128         <bounds left="69" top="345" right="103" bottom="384" />
129129      </bezel>
130      <bezel name="digit54" element="digit7">
130      <bezel name="digit53" element="digit7">
131131         <bounds left="171" top="345" right="205" bottom="384" />
132132      </bezel>
133      <bezel name="digit53" element="digit7">
133      <bezel name="digit52" element="digit7">
134134         <bounds left="210" top="345" right="244" bottom="384" />
135135      </bezel>
136136      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
trunk/src/mame/drivers/gts80.c
r32652r32653
2323
2424
2525#include "machine/genpin.h"
26#include "cpu/m6502/m6502.h"
27#include "machine/6532riot.h"
28#include "machine/mos6530.h"
29#include "sound/dac.h"
26#include "audio/gottlieb.h"
3027#include "gts80.lh"
3128
3229class gts80_state : public genpin_class
r32652r32653
3532   gts80_state(const machine_config &mconfig, device_type type, const char *tag)
3633      : genpin_class(mconfig, type, tag)
3734      , m_maincpu(*this, "maincpu")
38      , m_audiocpu(*this, "audiocpu")
35      , m_r0_sound(*this, "r0sound")
36      , m_r1_sound(*this, "r1sound")
3937   { }
4038
4139   DECLARE_DRIVER_INIT(gts80);
4240   DECLARE_READ8_MEMBER(port1a_r);
4341   DECLARE_READ8_MEMBER(port2a_r);
44   DECLARE_READ8_MEMBER(r6530b_r);
4542   DECLARE_WRITE8_MEMBER(port1b_w);
4643   DECLARE_WRITE8_MEMBER(port2a_w);
4744   DECLARE_WRITE8_MEMBER(port2b_w);
4845   DECLARE_WRITE8_MEMBER(port3a_w);
4946   DECLARE_WRITE8_MEMBER(port3b_w);
50   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
5147private:
5248   UINT8 m_port2;
5349   UINT8 m_segment;
5450   UINT8 m_lamprow;
5551   UINT8 m_swrow;
56   UINT8 m_sndcmd;
5752   virtual void machine_reset();
5853   required_device<cpu_device> m_maincpu;
59   optional_device<cpu_device> m_audiocpu;
54   optional_device<gottlieb_sound_r0_device> m_r0_sound;
55   optional_device<gottlieb_sound_r1_device> m_r1_sound;
6056};
6157
6258static ADDRESS_MAP_START( gts80_map, AS_PROGRAM, 8, gts80_state )
r32652r32653
7167   AM_RANGE(0x3000, 0x3fff) AM_ROM
7268ADDRESS_MAP_END
7369
74static ADDRESS_MAP_START( gts80_r0_map, AS_PROGRAM, 8, gts80_state )
75   ADDRESS_MAP_GLOBAL_MASK(0x0fff)
76   AM_RANGE(0x0000, 0x003f) AM_RAM AM_MIRROR(0x1c0)
77   AM_RANGE(0x0200, 0x020f) AM_DEVREADWRITE("r6530", mos6530_device, read, write)
78   AM_RANGE(0x0400, 0x0fff) AM_ROM
79ADDRESS_MAP_END
80
81
8270static INPUT_PORTS_START( gts80 )
83   PORT_START("SND")
84   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_0) PORT_CHANGED_MEMBER(DEVICE_SELF, gts80_state, audio_nmi, 1)
85   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Attract") PORT_CODE(KEYCODE_F1) PORT_TOGGLE
86   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Music") PORT_CODE(KEYCODE_F2) PORT_TOGGLE
87
8871   PORT_START("DSW.0")
8972   PORT_DIPNAME( 0x80, 0x00, "SW 1")
9073   PORT_DIPSETTING(    0x00, DEF_STR(Off))
r32652r32653
273256   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
274257INPUT_PORTS_END
275258
276INPUT_CHANGED_MEMBER( gts80_state::audio_nmi )
277{
278   // Diagnostic button sends a pulse to NMI pin
279   if ((newval==CLEAR_LINE) && (m_audiocpu))
280      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
281}
282
283259READ8_MEMBER( gts80_state::port1a_r )
284260{
285261   char kbdrow[8];
r32652r32653
347323//pb0-3 = sound; pb4-7 = lamprow
348324WRITE8_MEMBER( gts80_state::port3b_w )
349325{
350   m_sndcmd = data & 15;
326   UINT8 sndcmd = data & 15;
351327   m_lamprow = data >> 4;
328   if (m_r0_sound)
329      m_r0_sound->write(space, offset, sndcmd);
330   if (m_r1_sound)
331      m_r1_sound->write(space, offset, sndcmd);
352332}
353333
354// d0-3 = sndcmd in; d4 = attract-mode dip; d6 = 'spare' input; d7 = sound/tone dip
355READ8_MEMBER( gts80_state::r6530b_r )
356{
357   UINT8 data = m_sndcmd ^ 15;
358   return data | 0x20 | (ioport("SND")->read() & 0x90);
359}
360
361334void gts80_state::machine_reset()
362335{
363336}
r32652r32653
367340}
368341
369342/* with Sound Board */
370static MACHINE_CONFIG_START( gts80_s, gts80_state )
343static MACHINE_CONFIG_START( gts80, gts80_state )
371344   /* basic machine hardware */
372345   MCFG_CPU_ADD("maincpu", M6502, XTAL_3_579545MHz/4)
373346   MCFG_CPU_PROGRAM_MAP(gts80_map)
r32652r32653
384357   //MCFG_RIOT6532_IN_PB_CB(READ8(gts80_state, port1b_r))
385358   MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port1b_w)) // sw_w
386359   MCFG_RIOT6532_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE))
387   MCFG_DEVICE_ADD("riot2", RIOT6532, 850000)
360   MCFG_DEVICE_ADD("riot2", RIOT6532, XTAL_3_579545MHz/4)
388361   MCFG_RIOT6532_IN_PA_CB(READ8(gts80_state, port2a_r)) // pa7 - slam tilt
389362   MCFG_RIOT6532_OUT_PA_CB(WRITE8(gts80_state, port2a_w)) // digit select
390363   //MCFG_RIOT6532_IN_PB_CB(READ8(gts80_state, port2b_r))
391364   MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port2b_w)) // seg
392365   MCFG_RIOT6532_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE))
393   MCFG_DEVICE_ADD("riot3", RIOT6532, 850000)
366   MCFG_DEVICE_ADD("riot3", RIOT6532, XTAL_3_579545MHz/4)
394367   //MCFG_RIOT6532_IN_PA_CB(READ8(gts80_state, port3a_r))
395368   MCFG_RIOT6532_OUT_PA_CB(WRITE8(gts80_state, port3a_w)) // sol, snd
396369   //MCFG_RIOT6532_IN_PB_CB(READ8(gts80_state, port3b_r))
r32652r32653
399372
400373   /* Sound */
401374   MCFG_FRAGMENT_ADD( genpin_audio )
402   MCFG_CPU_ADD("audiocpu", M6502, XTAL_3_579545MHz/4) // M6503 - clock is a gate, a resistor and a capacitor. Freq unknown.
403   MCFG_CPU_PROGRAM_MAP(gts80_r0_map)
404   MCFG_DEVICE_ADD("r6530", MOS6530, 3572549/4) // unknown - same as cpu
405   MCFG_MOS6530_OUT_PA_CB(DEVWRITE8("dac", dac_device, write_unsigned8))
406   MCFG_MOS6530_IN_PB_CB(READ8(gts80_state, r6530b_r))
407375   MCFG_SPEAKER_STANDARD_MONO("mono")
408   MCFG_SOUND_ADD("dac", DAC, 0)
409   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
376MACHINE_CONFIG_END
410377
411   /* related to src/mame/audio/gottlieb.c */
412//  MCFG_IMPORT_FROM(gts80s_s)
378static MACHINE_CONFIG_DERIVED( gts80_s, gts80 )
379   MCFG_GOTTLIEB_SOUND_R0_ADD("r0sound")
380   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
413381MACHINE_CONFIG_END
414382
415/* with Sound & Speech Board */
416/* Note: hh uses this but it does not have the Votrax chip (?) */
417//static MACHINE_CONFIG_START( gts80_ss, gts80_state )
418   /* basic machine hardware */
419//   MCFG_CPU_ADD("maincpu", M6502, 850000)
420//   MCFG_CPU_PROGRAM_MAP(gts80_map)
421static MACHINE_CONFIG_DERIVED( gts80_ss, gts80_s )
383static MACHINE_CONFIG_DERIVED( gts80_hh, gts80 )
384   MCFG_GOTTLIEB_SOUND_R1_ADD("r1sound")
385   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
386MACHINE_CONFIG_END
422387
423   /* related to src/mame/audio/gottlieb.c */
424//  MCFG_IMPORT_FROM(gts80s_ss)
388static MACHINE_CONFIG_DERIVED( gts80_ss, gts80 )
389   MCFG_GOTTLIEB_SOUND_R1_ADD("r1sound")
390   //MCFG_GOTTLIEB_SOUND_R1_ADD_VOTRAX("r1sound")  // votrax crashes
391   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
425392MACHINE_CONFIG_END
426393
427394/*-------------------------------------------------------------------
r32652r32653
433400   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
434401   ROM_LOAD("668-4.cpu", 0x1000, 0x0800, CRC(01b53045) SHA1(72d73bbb09358b331696cd1cc44fc4958feffbe2))
435402
436   ROM_REGION(0x10000, "audiocpu", 0)
403   ROM_REGION(0x10000, "r1sound:audiocpu", 0)
437404   ROM_LOAD("668-s1.snd", 0x7000, 0x0800, CRC(23d5045d) SHA1(a20bf02ece97e8238d1dbe8d35ca63d82b62431e))
438405   ROM_LOAD("668-s2.snd", 0x7800, 0x0800, CRC(d63da498) SHA1(84dd87783f47fbf64b1830284c168501f9b455e2))
439406ROM_END
r32652r32653
444411   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
445412   ROM_LOAD("668-2.cpu", 0x1000, 0x0800, CRC(df03ffea) SHA1(7ca8fc321f74b9193104c282c7b4b92af93694c9))
446413
447   ROM_REGION(0x10000, "audiocpu", 0)
414   ROM_REGION(0x10000, "r1sound:audiocpu", 0)
448415   ROM_LOAD("668-s1.snd", 0x7000, 0x0800, CRC(23d5045d) SHA1(a20bf02ece97e8238d1dbe8d35ca63d82b62431e))
449416   ROM_LOAD("668-s2.snd", 0x7800, 0x0800, CRC(d63da498) SHA1(84dd87783f47fbf64b1830284c168501f9b455e2))
450417ROM_END
r32652r32653
455422   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
456423   ROM_LOAD("668-a2.cpu", 0x1000, 0x0800, CRC(df56f896) SHA1(1ec945a7ed8d25064476791adab2b554371dadbe))
457424
458   ROM_REGION(0x1000, "audiocpu", 0)
425   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
459426   ROM_LOAD("668-a-s.snd", 0x0400, 0x0400, CRC(5175f307) SHA1(97be8f2bbc393cc45a07fa43daec4bbba2336af8))
460427   ROM_RELOAD( 0x0800, 0x0400)
461428   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
473440   ROM_LOAD("654-2.cpu", 0x1200, 0x0200, CRC(01e23569) SHA1(47088421254e487aa1d1e87ea911dc1634e7d9ad))
474441   ROM_RELOAD(0x1600, 0x0200)
475442
476   ROM_REGION(0x1000, "audiocpu", 0)
443   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
477444   ROM_LOAD("654.snd", 0x0400, 0x0400, CRC(75c3ad67) SHA1(4f59c451b8659d964d5242728814c2d97f68445b))
478445   ROM_RELOAD( 0x0800, 0x0400)
479446   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
491458   ROM_LOAD("656-2.cpu", 0x1200, 0x0200, CRC(0e185c30) SHA1(01d9fb5d335c24bed9f747d6e23f57adb6ef09a5))
492459   ROM_RELOAD(0x1600, 0x0200)
493460
494   ROM_REGION(0x1000, "audiocpu", 0)
461   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
495462   ROM_LOAD("656.snd", 0x0400, 0x0400, CRC(0be2cbe9) SHA1(306a3e7d93733562360285de35b331b5daae7250))
496463   ROM_RELOAD( 0x0800, 0x0400)
497464   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
510477   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
511478   ROM_LOAD("671-a.cpu", 0x1000, 0x0800, CRC(efad7312) SHA1(fcfd5e5c7924d65ac42561994797156a80018667))
512479
513   ROM_REGION(0x1000, "audiocpu", 0)
480   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
514481   ROM_LOAD("671-a-s.snd", 0x0400, 0x0400, CRC(5175f307) SHA1(97be8f2bbc393cc45a07fa43daec4bbba2336af8))
515482   ROM_RELOAD( 0x0800, 0x0400)
516483   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
525492   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
526493   ROM_LOAD("661-2.cpu", 0x1000, 0x0800, CRC(a4fa42a4) SHA1(c17af4f0da6d5630e43db44655bece0e26b0112a))
527494
528   ROM_REGION(0x1000, "audiocpu", 0)
495   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
529496   ROM_LOAD("661.snd", 0x0400, 0x0400, CRC(650158a7) SHA1(c7a9d521d1e7de1e00e7abc3a97aaaee04f8052e))
530497   ROM_RELOAD( 0x0800, 0x0400)
531498   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
540507   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
541508   ROM_LOAD("669-2.cpu", 0x1000, 0x0800, CRC(f3085f77) SHA1(ebd43588401a735d9c941d06d67ac90183139e90))
542509
543   ROM_REGION(0x10000, "audiocpu", 0)
510   ROM_REGION(0x10000, "r1sound:audiocpu", 0)
544511   ROM_LOAD("669-s1.snd", 0x7000, 0x0800, CRC(52ec7335) SHA1(2b08dd8a89057c9c8c184d5b723ecad01572129f))
545512   ROM_LOAD("669-s2.snd", 0x7800, 0x0800, CRC(a3317b4b) SHA1(c3b14aa58fd4588c8b8fa3540ea6331a9ee40f1f))
546513ROM_END
r32652r32653
551518   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
552519   ROM_LOAD("669-1.cpu", 0x1000, 0x0800, CRC(96e72b93) SHA1(3eb3d3e064ba2fe637bba2a93ffd07f00edfa0f2))
553520
554   ROM_REGION(0x10000, "audiocpu", 0)
521   ROM_REGION(0x10000, "r1sound:audiocpu", 0)
555522   ROM_LOAD("669-s1.snd", 0x7000, 0x0800, CRC(52ec7335) SHA1(2b08dd8a89057c9c8c184d5b723ecad01572129f))
556523   ROM_LOAD("669-s2.snd", 0x7800, 0x0800, CRC(a3317b4b) SHA1(c3b14aa58fd4588c8b8fa3540ea6331a9ee40f1f))
557524ROM_END
r32652r32653
565532   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
566533   ROM_LOAD("658-1.cpu", 0x1000, 0x0800, CRC(b841ad7a) SHA1(3396e82351c975781cac9112bfa341a3b799f296))
567534
568   ROM_REGION(0x1000, "audiocpu", 0)
535   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
569536   ROM_LOAD("658.snd", 0x0400, 0x0400, CRC(962c03df) SHA1(e8ff5d502a038531a921380b75c27ef79b6feac8))
570537   ROM_RELOAD( 0x0800, 0x0400)
571538   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
577544   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
578545   ROM_LOAD("658-x.cpu", 0x1000, 0x0800, CRC(e7e0febf) SHA1(2c101a88b61229f30ed15d38f395bc538999d766))
579546
580   ROM_REGION(0x1000, "audiocpu", 0)
547   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
581548   ROM_LOAD("658.snd", 0x0400, 0x0400, CRC(962c03df) SHA1(e8ff5d502a038531a921380b75c27ef79b6feac8))
582549   ROM_RELOAD( 0x0800, 0x0400)
583550   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
592559   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
593560   ROM_LOAD("666-1.cpu", 0x1000, 0x0800, CRC(bb7d476a) SHA1(22d5d7f0e52c5180f73a1ca0b3c6bd4b7d0843d6))
594561
595   ROM_REGION(0x10000, "audiocpu", 0)
562   ROM_REGION(0x10000, "r1sound:audiocpu", 0)
596563   ROM_LOAD("666-s1.snd", 0x7000, 0x0800, CRC(d33dc8a5) SHA1(8d071c392996a74c3cdc2cf5ea3be3c86553ce89))
597564   ROM_LOAD("666-s2.snd", 0x7800, 0x0800, CRC(e5616f3e) SHA1(a6b5ebd0b456a555db0889cd63ce79aafc64dbe5))
598565ROM_END
r32652r32653
606573   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
607574   ROM_LOAD("652.cpu", 0x1000, 0x0800, CRC(5386e5fb) SHA1(822f47951b702f9c6a1ce674baaab0a596f34413))
608575
609   ROM_REGION(0x1000, "audiocpu", 0)
576   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
610577   ROM_LOAD("652.snd", 0x0400, 0x0400, CRC(4d0cf2c0) SHA1(0da5d118ffd19b1e78dfaaee3e31c43750d45c8d))
611578   ROM_RELOAD( 0x0800, 0x0400)
612579   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
619586   ROM_LOAD("u3g807dc.bin", 0x3000, 0x1000, CRC(6e31242e) SHA1(14e371a0352a6068dec20af1f2b344e34a5b9011))
620587   ROM_LOAD("652.cpu", 0x1000, 0x0800, CRC(5386e5fb) SHA1(822f47951b702f9c6a1ce674baaab0a596f34413))
621588
622   ROM_REGION(0x1000, "audiocpu", 0)
589   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
623590   ROM_LOAD("652.snd", 0x0400, 0x0400, CRC(4d0cf2c0) SHA1(0da5d118ffd19b1e78dfaaee3e31c43750d45c8d))
624591   ROM_RELOAD( 0x0800, 0x0400)
625592   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
635602   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
636603   ROM_LOAD("664-1.cpu", 0x1000, 0x0800, CRC(a0d3e69a) SHA1(590e68dc28067e61832927cd4b3eefcc066f0a92))
637604
638   ROM_REGION(0x1000, "audiocpu", 0)
605   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
639606   ROM_LOAD("664.snd", 0x0400, 0x0400, CRC(18f4abfd) SHA1(9e85eb7e9b1e2fe71be828ff1b5752424ed42588))
640607   ROM_RELOAD( 0x0800, 0x0400)
641608   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
648615   ROM_LOAD("u3g807dc.bin", 0x3000, 0x1000, CRC(6e31242e) SHA1(14e371a0352a6068dec20af1f2b344e34a5b9011))
649616   ROM_LOAD("664-1.cpu", 0x1000, 0x0800, CRC(a0d3e69a) SHA1(590e68dc28067e61832927cd4b3eefcc066f0a92))
650617
651   ROM_REGION(0x1000, "audiocpu", 0)
618   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
652619   ROM_LOAD("664.snd", 0x0400, 0x0400, CRC(18f4abfd) SHA1(9e85eb7e9b1e2fe71be828ff1b5752424ed42588))
653620   ROM_RELOAD( 0x0800, 0x0400)
654621   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
667634   ROM_LOAD("657-2.cpu", 0x1200, 0x0200, CRC(c56e31c8) SHA1(1e129fb6309e015a16f2bdb1e389cbc85d1919a7))
668635   ROM_RELOAD(0x1600, 0x0200)
669636
670   ROM_REGION(0x1000, "audiocpu", 0)
637   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
671638   ROM_LOAD("657.snd", 0x0400, 0x0400, CRC(3a1d3995) SHA1(6f0bdb34c4fa11d5f8ecbb98ae55bafeb5d62c9e))
672639   ROM_RELOAD( 0x0800, 0x0400)
673640   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
683650   ROM_LOAD("657-2.cpu", 0x1200, 0x0200, CRC(c56e31c8) SHA1(1e129fb6309e015a16f2bdb1e389cbc85d1919a7))
684651   ROM_RELOAD(0x1600, 0x0200)
685652
686   ROM_REGION(0x1000, "audiocpu", 0)
653   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
687654   ROM_LOAD("657.snd", 0x0400, 0x0400, CRC(3a1d3995) SHA1(6f0bdb34c4fa11d5f8ecbb98ae55bafeb5d62c9e))
688655   ROM_RELOAD( 0x0800, 0x0400)
689656   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
702669   ROM_LOAD("653-2.cpu", 0x1200, 0x0200, CRC(ff1ddfd7) SHA1(dd7b98e491045916153b760f36432506277a4093))
703670   ROM_RELOAD(0x1600, 0x0200)
704671
705   ROM_REGION(0x1000, "audiocpu", 0)
672   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
706673   ROM_LOAD("653.snd", 0x0400, 0x0400, CRC(f5650c46) SHA1(2d0e50fa2f4b3d633daeaa7454630e3444453cb2))
707674   ROM_RELOAD( 0x0800, 0x0400)
708675   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
721688   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
722689   ROM_LOAD("659.cpu", 0x1000, 0x0800, CRC(d6950e3b) SHA1(939b45a9ee4bb122fbea534ad728ec6b85120416))
723690
724   ROM_REGION(0x1000, "audiocpu", 0)
691   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
725692   ROM_LOAD("659.snd", 0x0400, 0x0400, CRC(28185568) SHA1(2fd26e7e0a8f050d67159f17634df2b1fc47cbd3))
726693   ROM_RELOAD( 0x0800, 0x0400)
727694   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
736703   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
737704   ROM_LOAD("667-a-x.cpu", 0x1000, 0x0800, CRC(1f51c351) SHA1(8e1850808faab843ac324040ca665a83809cdc7b))
738705
739   ROM_REGION(0x10000, "audiocpu", 0)
706   ROM_REGION(0x10000, "r1sound:audiocpu", 0)
740707   ROM_LOAD("667-s1.snd", 0x7000, 0x0800, CRC(ba9d40b7) SHA1(3d6640b259cd8ae87b998cbf1ae2dc13a2913e4f))
741708   ROM_LOAD("667-s2.snd", 0x7800, 0x0800, CRC(b54bd123) SHA1(3522ccdcb28bfacff2287f5537d52f22879249ab))
742709ROM_END
r32652r32653
747714   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
748715   ROM_LOAD("667-1b.cpu", 0x1000, 0x0800, CRC(a422d862) SHA1(2785388eb43c08405774a9413ffa52c1591a84f2))
749716
750   ROM_REGION(0x1000, "audiocpu", 0)
717   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
751718   ROM_LOAD("667-a-s.snd", 0x0400, 0x0400, CRC(894b4e2e) SHA1(d888f8e00b2b50cef5cc916d46e4c5e6699914a1))
752719   ROM_RELOAD( 0x0800, 0x0400)
753720   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
759726   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
760727   ROM_LOAD("667-1a.cpu", 0x1000, 0x0800, CRC(5931c6f7) SHA1(e104a6c3ca2175bb49199e06963e26185dd563d2))
761728
762   ROM_REGION(0x1000, "audiocpu", 0)
729   ROM_REGION(0x1000, "r0sound:audiocpu", 0)
763730   ROM_LOAD("667-a-s.snd", 0x0400, 0x0400, CRC(894b4e2e) SHA1(d888f8e00b2b50cef5cc916d46e4c5e6699914a1))
764731   ROM_RELOAD( 0x0800, 0x0400)
765732   ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c))
r32652r32653
774741   ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
775742   ROM_LOAD("80tst.cpu", 0x1000, 0x0800, CRC(a0f9e56b) SHA1(5146745ab61fea4b3070c6cf4324a9e77a7cee36))
776743
777   ROM_REGION(0x10000, "audiocpu", 0)
744   ROM_REGION(0x10000, "r1sound:audiocpu", 0)
778745   ROM_LOAD("80tst-s1.snd", 0x7000, 0x0800, CRC(b9dbdd21) SHA1(dfe42c9e6e02f82ffd0cafe164df3211cdc2d966))
779746   ROM_LOAD("80tst-s2.snd", 0x7800, 0x0800, CRC(1a4b1e9d) SHA1(18e7ffbdbdaf83ab1c8daa5fa5201d9f54390758))
780747ROM_END
r32652r32653
798765/* disp2 */GAME(1981, blckhole,   0,        gts80_ss,   gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Black Hole (Rev. 4)",      GAME_IS_SKELETON_MECHANICAL)
799766/* disp2 */GAME(1981, blckhole2,  blckhole, gts80_ss,   gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Black Hole (Rev. 2)",      GAME_IS_SKELETON_MECHANICAL)
800767/* disp2 */GAME(1981, blckhols,   0,        gts80_s,    gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Black Hole (Sound Only)",  GAME_IS_SKELETON_MECHANICAL)
801/* disp2 */GAME(1982, hh,         0,        gts80_ss,   gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Haunted House (Rev. 2)",   GAME_IS_SKELETON_MECHANICAL)
802/* disp2 */GAME(1982, hh_1,       hh,       gts80_ss,   gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Haunted House (Rev. 1)",   GAME_IS_SKELETON_MECHANICAL)
768/* disp2 */GAME(1982, hh,         0,        gts80_hh,   gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Haunted House (Rev. 2)",   GAME_IS_SKELETON_MECHANICAL)
769/* disp2 */GAME(1982, hh_1,       hh,       gts80_hh,   gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Haunted House (Rev. 1)",   GAME_IS_SKELETON_MECHANICAL)
803770/* disp2 */GAME(1981, eclipse,    0,        gts80_s,    gts80, gts80_state, gts80,  ROT0, "Gottlieb", "Eclipse",              GAME_IS_SKELETON_MECHANICAL)
trunk/src/mame/audio/gottlieb.c
r32652r32653
2222//  GLOBAL VARIABLES
2323//**************************************************************************
2424
25extern const device_type GOTTLIEB_SOUND_REV0 = &device_creator<gottlieb_sound_r0_device>;
2526extern const device_type GOTTLIEB_SOUND_REV1 = &device_creator<gottlieb_sound_r1_device>;
2627extern const device_type GOTTLIEB_SOUND_REV1_WITH_VOTRAX = &device_creator<gottlieb_sound_r1_with_votrax_device>;
2728extern const device_type GOTTLIEB_SOUND_REV2 = &device_creator<gottlieb_sound_r2_device>;
r32652r32653
247248
248249
249250//**************************************************************************
251//  REV 0 SOUND BOARD: 6502 + 6530 + DAC
252//**************************************************************************
253
254//-------------------------------------------------
255//  gottlieb_sound_r0_device - constructors
256//-------------------------------------------------
257
258gottlieb_sound_r0_device::gottlieb_sound_r0_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
259   : device_t(mconfig, GOTTLIEB_SOUND_REV1, "Gottlieb Sound rev. 0", tag, owner, clock, "gotsndr0", __FILE__)
260   , device_mixer_interface(mconfig, *this)
261   , m_audiocpu(*this, "audiocpu")
262   , m_r6530(*this, "r6530")
263   , m_dac(*this, "dac")
264   , m_sndcmd(0)
265{
266}
267
268
269//-------------------------------------------------
270//  read port -
271//-------------------------------------------------
272
273READ8_MEMBER( gottlieb_sound_r0_device::r6530b_r )
274{
275   return m_sndcmd;
276}
277
278
279//-------------------------------------------------
280//  write - handle an external command write
281//-------------------------------------------------
282
283WRITE8_MEMBER( gottlieb_sound_r0_device::write )
284{
285   // write the command data to the low 4 bits
286   UINT8 pb0_3 = data ^ 15;
287   UINT8 pb4_7 = ioport("SB0")->read() & 0x90;
288   m_sndcmd = pb0_3 | pb4_7;
289   m_r6530->write(space, offset, m_sndcmd);
290}
291
292
293//-------------------------------------------------
294//  audio CPU map
295//-------------------------------------------------
296
297static ADDRESS_MAP_START( gottlieb_sound_r0_map, AS_PROGRAM, 8, gottlieb_sound_r0_device )
298   ADDRESS_MAP_GLOBAL_MASK(0x0fff)
299   AM_RANGE(0x0000, 0x003f) AM_RAM AM_MIRROR(0x1c0)
300   AM_RANGE(0x0200, 0x020f) AM_DEVREADWRITE("r6530", mos6530_device, read, write)
301   AM_RANGE(0x0400, 0x0fff) AM_ROM
302ADDRESS_MAP_END
303
304
305//-------------------------------------------------
306//  machine configuration
307//-------------------------------------------------
308
309MACHINE_CONFIG_FRAGMENT( gottlieb_sound_r0 )
310   // audio CPU
311   MCFG_CPU_ADD("audiocpu", M6502, SOUND1_CLOCK/4) // M6503 - clock is a gate, a resistor and a capacitor. Freq unknown.
312   MCFG_CPU_PROGRAM_MAP(gottlieb_sound_r0_map)
313
314   // I/O configuration
315   MCFG_DEVICE_ADD("r6530", MOS6530, XTAL_3_579545MHz/4) // unknown - same as cpu
316   MCFG_MOS6530_OUT_PA_CB(DEVWRITE8("dac", dac_device, write_unsigned8))
317   MCFG_MOS6530_IN_PB_CB(READ8(gottlieb_sound_r0_device, r6530b_r))
318
319   // sound devices
320   MCFG_DAC_ADD("dac")
321   MCFG_SOUND_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.00)
322MACHINE_CONFIG_END
323
324
325//-------------------------------------------------
326//  input ports
327//-------------------------------------------------
328
329INPUT_PORTS_START( gottlieb_sound_r0 )
330   PORT_START("SB0")
331   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_0) PORT_CHANGED_MEMBER(DEVICE_SELF, gottlieb_sound_r0_device, audio_nmi, 1)
332   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Attract") PORT_CODE(KEYCODE_F1) PORT_TOGGLE
333   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Music") PORT_CODE(KEYCODE_F2) PORT_TOGGLE
334INPUT_PORTS_END
335
336INPUT_CHANGED_MEMBER( gottlieb_sound_r0_device::audio_nmi )
337{
338   // Diagnostic button sends a pulse to NMI pin
339   if (newval==CLEAR_LINE)
340      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
341}
342
343
344//-------------------------------------------------
345//  device_mconfig_additions - return a pointer to
346//  the device's machine fragment
347//-------------------------------------------------
348
349machine_config_constructor gottlieb_sound_r0_device::device_mconfig_additions() const
350{
351   return MACHINE_CONFIG_NAME( gottlieb_sound_r0 );
352}
353
354
355//-------------------------------------------------
356//  device_input_ports - return a pointer to
357//  the device's I/O ports
358//-------------------------------------------------
359
360ioport_constructor gottlieb_sound_r0_device::device_input_ports() const
361{
362   return INPUT_PORTS_NAME( gottlieb_sound_r0 );
363}
364
365
366//-------------------------------------------------
367//  device_start - device-specific startup
368//-------------------------------------------------
369
370void gottlieb_sound_r0_device::device_start()
371{
372}
373
374
375//**************************************************************************
250376//  REV 1 SOUND BOARD: 6502 + DAC
251377//**************************************************************************
252378
trunk/src/mame/audio/gottlieb.h
r32652r32653
88
99#include "emu.h"
1010#include "cpu/m6502/m6502.h"
11#include "machine/mos6530.h"
1112#include "machine/6532riot.h"
1213#include "sound/dac.h"
1314#include "sound/ay8910.h"
r32652r32653
2425//  GLOBAL VARIABLES
2526//**************************************************************************
2627
28extern const device_type GOTTLIEB_SOUND_REV0;
2729extern const device_type GOTTLIEB_SOUND_REV1;
2830extern const device_type GOTTLIEB_SOUND_REV1_WITH_VOTRAX;
2931extern const device_type GOTTLIEB_SOUND_REV2;
r32652r32653
3436//  DEVICE CONFIGURATION MACROS
3537//**************************************************************************
3638
39#define MCFG_GOTTLIEB_SOUND_R0_ADD(_tag) \
40   MCFG_DEVICE_ADD(_tag, GOTTLIEB_SOUND_REV0, 0)
41
3742#define MCFG_GOTTLIEB_SOUND_R1_ADD(_tag) \
3843   MCFG_DEVICE_ADD(_tag, GOTTLIEB_SOUND_REV1, 0)
3944#define MCFG_GOTTLIEB_SOUND_R1_ADD_VOTRAX(_tag) \
r32652r32653
5055//  TYPE DEFINITIONS
5156//**************************************************************************
5257
58// ======================> gottlieb_sound_r0_device
59
60// rev 0 sound board
61class gottlieb_sound_r0_device : public device_t, public device_mixer_interface
62{
63public:
64   // construction/destruction
65   gottlieb_sound_r0_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
66
67   // read/write
68   DECLARE_WRITE8_MEMBER( write );
69
70   // internal communications
71   DECLARE_READ8_MEMBER( r6530b_r );
72   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
73
74protected:
75   // device-level overrides
76   virtual machine_config_constructor device_mconfig_additions() const;
77   virtual ioport_constructor device_input_ports() const;
78   virtual void device_start();
79
80private:
81   // devices
82   required_device<m6502_device>       m_audiocpu;
83   required_device<mos6530_device>     m_r6530;
84   required_device<dac_device>         m_dac;
85
86   UINT8 m_sndcmd;
87};
88
5389// ======================> gottlieb_sound_r1_device
5490
5591// rev 1 sound board, with unpopulated VOTRAX

Previous 199869 Revisions Next


© 1997-2024 The MAME Team