Previous 199869 Revisions Next

r22899 Saturday 18th May, 2013 at 15:14:34 UTC by David Haywood
stuntair - feeble attempt to hook up sound, probably going to need references / irq frequency measurements.
[src/mame/drivers]stuntair.c

trunk/src/mame/drivers/stuntair.c
r22898r22899
11/*
22
3
4
35Stunt Air - is this a bootleg of something? (it's not Star Jacker / Star Force)
46
57Stunt Air by Nuova Videotron 1983
r22898r22899
7375
7476#include "emu.h"
7577#include "cpu/z80/z80.h"
78#include "sound/ay8910.h"
7679
7780class stuntair_state : public driver_device
7881{
r22898r22899
106109   UINT8 m_nmienable;
107110   UINT8 m_spritebank0;
108111   UINT8 m_spritebank1;
112   UINT8 m_soundlatch;
109113
110114   DECLARE_WRITE8_MEMBER(stuntair_fgram_w);
111115   TILE_GET_INFO_MEMBER(get_stuntair_fg_tile_info);
r22898r22899
147151      // lower 2 bits are coin counters
148152      if (data&~0x3) printf("stuntair_coin_w %02x\n", data);
149153   }
154
155   DECLARE_WRITE8_MEMBER(stuntair_sound_w)
156   {
157      m_soundlatch = data;
158      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
159
160   }
150161   
151162
152163   INTERRUPT_GEN_MEMBER(stuntair_irq);
153164
165   INTERRUPT_GEN_MEMBER(stuntair_sound_irq)
166   {
167      m_audiocpu->set_input_line(0, HOLD_LINE);
168   }
154169
170   DECLARE_READ8_MEMBER(ay8910_in0_r)
171   {
172      return m_soundlatch;
173   }
174   
175   DECLARE_READ8_MEMBER(ay8910_in1_r)
176   {
177      printf("ay8910_in1_r\n");
178      return 0x00;//m_soundlatch;
179
180   }
181
155182   virtual void machine_start();
156183   virtual void machine_reset();
157184   virtual void video_start();
r22898r22899
182209   AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(stuntair_fgram_w) AM_SHARE("fgram")
183210
184211
185   AM_RANGE(0xfc03, 0xfc03) AM_WRITENOP //? register or overrun?
212   AM_RANGE(0xfc03, 0xfc03) AM_WRITE(stuntair_sound_w)
186213
187214ADDRESS_MAP_END
188215
r22898r22899
193220
194221static ADDRESS_MAP_START( stuntair_sound_portmap, AS_IO, 8, stuntair_state )
195222   ADDRESS_MAP_GLOBAL_MASK(0xff)
196   AM_RANGE(0x03, 0x03) AM_WRITENOP
197   AM_RANGE(0x07, 0x07) AM_WRITENOP
198   AM_RANGE(0x0c, 0x0c) AM_WRITENOP
199   AM_RANGE(0x0d, 0x0d) AM_WRITENOP
223   AM_RANGE(0x03, 0x03) AM_DEVWRITE("ay2", ay8910_device, address_w)
224   AM_RANGE(0x07, 0x07) AM_DEVWRITE("ay2", ay8910_device, data_w)
225
226   AM_RANGE(0x0c, 0x0d) AM_DEVREADWRITE("ay1", ay8910_device, data_r, address_data_w)
200227ADDRESS_MAP_END
201228
202229
r22898r22899
455482      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
456483}
457484
485
486
487
488
489static const ay8910_interface ay8910_config =
490{
491   AY8910_LEGACY_OUTPUT,
492   AY8910_DEFAULT_LOADS,
493   DEVCB_DRIVER_MEMBER(stuntair_state,ay8910_in0_r),
494   DEVCB_DRIVER_MEMBER(stuntair_state,ay8910_in1_r),
495   DEVCB_NULL,
496   DEVCB_NULL
497};
498
499
500static const ay8910_interface ay8910_2_config =
501{
502   AY8910_LEGACY_OUTPUT,
503   AY8910_DEFAULT_LOADS,
504   DEVCB_NULL,
505   DEVCB_NULL,
506   DEVCB_NULL,
507   DEVCB_NULL
508};
509
510
458511static MACHINE_CONFIG_START( stuntair, stuntair_state )
459512
460513   /* basic machine hardware */
461   MCFG_CPU_ADD("maincpu", Z80,  18432000/4)         /* ? MHz */
514   MCFG_CPU_ADD("maincpu", Z80,  XTAL_18_432MHz/4)         /* ? MHz */
462515   MCFG_CPU_PROGRAM_MAP(stuntair_map)
463516   MCFG_CPU_VBLANK_INT_DRIVER("screen", stuntair_state,  stuntair_irq)
464517
465   MCFG_CPU_ADD("audiocpu", Z80,  18432000/4)         /* ? MHz */
518   MCFG_CPU_ADD("audiocpu", Z80,  XTAL_18_432MHz/4)         /* ? MHz */
466519   MCFG_CPU_PROGRAM_MAP(stuntair_sound_map)
467520   MCFG_CPU_IO_MAP(stuntair_sound_portmap)
521   MCFG_CPU_PERIODIC_INT_DRIVER(stuntair_state, stuntair_sound_irq, 60*8) // guessed, probably wrong ?? drives music tempo..
468522
469523   /* video hardware */
470524   MCFG_SCREEN_ADD("screen", RASTER)
r22898r22899
476530
477531   MCFG_GFXDECODE(stuntair)
478532   MCFG_PALETTE_LENGTH(0x100)
533
534
535   /* sound hardware */
536   MCFG_SPEAKER_STANDARD_MONO("mono") // stereo?
537
538   MCFG_SOUND_ADD("ay1", AY8910, XTAL_18_432MHz/12)
539   MCFG_SOUND_CONFIG(ay8910_config)
540   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
541
542   MCFG_SOUND_ADD("ay2", AY8910, XTAL_18_432MHz/12)
543   MCFG_SOUND_CONFIG(ay8910_2_config)
544   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
479545MACHINE_CONFIG_END
480546
481547

Previous 199869 Revisions Next


© 1997-2024 The MAME Team