trunk/src/emu/sound/3812intf.c
r22803 | r22804 | |
22 | 22 | #include "sound/fmopl.h" |
23 | 23 | |
24 | 24 | |
25 | | struct ym3812_state |
| 25 | static void IRQHandler(void *param,int irq) |
26 | 26 | { |
27 | | sound_stream * stream; |
28 | | emu_timer * timer[2]; |
29 | | void * chip; |
30 | | const ym3812_interface *intf; |
31 | | device_t *device; |
32 | | devcb_resolved_write_line irqhandler; |
33 | | }; |
| 27 | ym3812_device *ym3812 = (ym3812_device *) param; |
| 28 | ym3812->_IRQHandler(irq); |
| 29 | } |
34 | 30 | |
35 | | |
36 | | INLINE ym3812_state *get_safe_token(device_t *device) |
| 31 | void ym3812_device::_IRQHandler(int irq) |
37 | 32 | { |
38 | | assert(device != NULL); |
39 | | assert(device->type() == YM3812); |
40 | | return (ym3812_state *)downcast<ym3812_device *>(device)->token(); |
| 33 | if (!m_irq_handler.isnull()) |
| 34 | m_irq_handler(irq); |
41 | 35 | } |
42 | 36 | |
43 | | |
44 | | |
45 | | static void IRQHandler(void *param,int irq) |
| 37 | /* Timer overflow callback from timer.c */ |
| 38 | void ym3812_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) |
46 | 39 | { |
47 | | ym3812_state *info = (ym3812_state *)param; |
48 | | if (!info->irqhandler.isnull()) |
49 | | info->irqhandler(irq ? ASSERT_LINE : CLEAR_LINE); |
| 40 | switch(id) |
| 41 | { |
| 42 | case 0: |
| 43 | ym3812_timer_over(m_chip,0); |
| 44 | break; |
| 45 | |
| 46 | case 1: |
| 47 | ym3812_timer_over(m_chip,1); |
| 48 | break; |
| 49 | } |
50 | 50 | } |
51 | | static TIMER_CALLBACK( timer_callback_0 ) |
52 | | { |
53 | | ym3812_state *info = (ym3812_state *)ptr; |
54 | | ym3812_timer_over(info->chip,0); |
55 | | } |
56 | 51 | |
57 | | static TIMER_CALLBACK( timer_callback_1 ) |
| 52 | static void timer_handler(void *param,int c,attotime period) |
58 | 53 | { |
59 | | ym3812_state *info = (ym3812_state *)ptr; |
60 | | ym3812_timer_over(info->chip,1); |
| 54 | ym3812_device *ym3812 = (ym3812_device *) param; |
| 55 | ym3812->_timer_handler(c, period); |
61 | 56 | } |
62 | 57 | |
63 | | static void TimerHandler(void *param,int c,attotime period) |
| 58 | void ym3812_device::_timer_handler(int c, attotime period) |
64 | 59 | { |
65 | | ym3812_state *info = (ym3812_state *)param; |
66 | 60 | if( period == attotime::zero ) |
67 | 61 | { /* Reset FM Timer */ |
68 | | info->timer[c]->enable(false); |
| 62 | m_timer[c]->enable(false); |
69 | 63 | } |
70 | 64 | else |
71 | 65 | { /* Start FM Timer */ |
72 | | info->timer[c]->adjust(period); |
| 66 | m_timer[c]->adjust(period); |
73 | 67 | } |
74 | 68 | } |
75 | 69 | |
76 | 70 | |
77 | | static STREAM_UPDATE( ym3812_stream_update ) |
| 71 | static void ym3812_update_request(void * param, int interval) |
78 | 72 | { |
79 | | ym3812_state *info = (ym3812_state *)param; |
80 | | ym3812_update_one(info->chip, outputs[0], samples); |
| 73 | ym3812_device *ym3812 = (ym3812_device *) param; |
| 74 | ym3812->_ym3812_update_request(); |
81 | 75 | } |
82 | 76 | |
83 | | static void _stream_update(void * param, int interval) |
| 77 | void ym3812_device::_ym3812_update_request() |
84 | 78 | { |
85 | | ym3812_state *info = (ym3812_state *)param; |
86 | | info->stream->update(); |
| 79 | m_stream->update(); |
87 | 80 | } |
88 | 81 | |
89 | 82 | |
90 | | static DEVICE_START( ym3812 ) |
| 83 | //------------------------------------------------- |
| 84 | // sound_stream_update - handle a stream update |
| 85 | //------------------------------------------------- |
| 86 | |
| 87 | void ym3812_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) |
91 | 88 | { |
92 | | static const ym3812_interface dummy = { DEVCB_NULL }; |
93 | | ym3812_state *info = get_safe_token(device); |
94 | | int rate = device->clock()/72; |
| 89 | ym3812_update_one(m_chip, outputs[0], samples); |
| 90 | } |
95 | 91 | |
96 | | info->intf = device->static_config() ? (const ym3812_interface *)device->static_config() : &dummy; |
97 | | info->device = device; |
98 | | info->irqhandler.resolve(info->intf->irqhandler, *device); |
| 92 | //------------------------------------------------- |
| 93 | // device_start - device-specific startup |
| 94 | //------------------------------------------------- |
99 | 95 | |
| 96 | void ym3812_device::device_start() |
| 97 | { |
| 98 | int rate = clock()/72; |
| 99 | |
| 100 | m_irq_handler.resolve(); |
| 101 | |
100 | 102 | /* stream system initialize */ |
101 | | info->chip = ym3812_init(device,device->clock(),rate); |
102 | | assert_always(info->chip != NULL, "Error creating YM3812 chip"); |
| 103 | m_chip = ym3812_init(this,clock(),rate); |
| 104 | assert_always(m_chip != NULL, "Error creating YM3812 chip"); |
103 | 105 | |
104 | | info->stream = device->machine().sound().stream_alloc(*device,0,1,rate,info,ym3812_stream_update); |
| 106 | m_stream = machine().sound().stream_alloc(*this,0,1,rate); |
105 | 107 | |
106 | 108 | /* YM3812 setup */ |
107 | | ym3812_set_timer_handler (info->chip, TimerHandler, info); |
108 | | ym3812_set_irq_handler (info->chip, IRQHandler, info); |
109 | | ym3812_set_update_handler(info->chip, _stream_update, info); |
| 109 | ym3812_set_timer_handler (m_chip, timer_handler, this); |
| 110 | ym3812_set_irq_handler (m_chip, IRQHandler, this); |
| 111 | ym3812_set_update_handler(m_chip, ym3812_update_request, this); |
110 | 112 | |
111 | | info->timer[0] = device->machine().scheduler().timer_alloc(FUNC(timer_callback_0), info); |
112 | | info->timer[1] = device->machine().scheduler().timer_alloc(FUNC(timer_callback_1), info); |
| 113 | m_timer[0] = timer_alloc(0); |
| 114 | m_timer[1] = timer_alloc(1); |
113 | 115 | } |
114 | 116 | |
115 | | static DEVICE_STOP( ym3812 ) |
| 117 | //------------------------------------------------- |
| 118 | // device_stop - device-specific stop |
| 119 | //------------------------------------------------- |
| 120 | |
| 121 | void ym3812_device::device_stop() |
116 | 122 | { |
117 | | ym3812_state *info = get_safe_token(device); |
118 | | ym3812_shutdown(info->chip); |
| 123 | ym3812_shutdown(m_chip); |
119 | 124 | } |
120 | 125 | |
121 | | static DEVICE_RESET( ym3812 ) |
| 126 | //------------------------------------------------- |
| 127 | // device_reset - device-specific reset |
| 128 | //------------------------------------------------- |
| 129 | |
| 130 | void ym3812_device::device_reset() |
122 | 131 | { |
123 | | ym3812_state *info = get_safe_token(device); |
124 | | ym3812_reset_chip(info->chip); |
| 132 | ym3812_reset_chip(m_chip); |
125 | 133 | } |
126 | 134 | |
127 | 135 | |
128 | | READ8_DEVICE_HANDLER( ym3812_r ) |
| 136 | READ8_MEMBER( ym3812_device::read ) |
129 | 137 | { |
130 | | ym3812_state *info = get_safe_token(device); |
131 | | return ym3812_read(info->chip, offset & 1); |
| 138 | return ym3812_read(m_chip, offset & 1); |
132 | 139 | } |
133 | 140 | |
134 | | WRITE8_DEVICE_HANDLER( ym3812_w ) |
| 141 | WRITE8_MEMBER( ym3812_device::write ) |
135 | 142 | { |
136 | | ym3812_state *info = get_safe_token(device); |
137 | | ym3812_write(info->chip, offset & 1, data); |
| 143 | ym3812_write(m_chip, offset & 1, data); |
138 | 144 | } |
139 | 145 | |
140 | | READ8_DEVICE_HANDLER( ym3812_status_port_r ) { return ym3812_r(device, space, 0); } |
141 | | READ8_DEVICE_HANDLER( ym3812_read_port_r ) { return ym3812_r(device, space, 1); } |
142 | | WRITE8_DEVICE_HANDLER( ym3812_control_port_w ) { ym3812_w(device, space, 0, data); } |
143 | | WRITE8_DEVICE_HANDLER( ym3812_write_port_w ) { ym3812_w(device, space, 1, data); } |
| 146 | READ8_MEMBER( ym3812_device::status_port_r ) { return read(space, 0); } |
| 147 | READ8_MEMBER( ym3812_device::read_port_r ) { return read(space, 1); } |
| 148 | WRITE8_MEMBER( ym3812_device::control_port_w ) { write(space, 0, data); } |
| 149 | WRITE8_MEMBER( ym3812_device::write_port_w ) { write( space, 1, data); } |
144 | 150 | |
145 | 151 | |
146 | 152 | const device_type YM3812 = &device_creator<ym3812_device>; |
147 | 153 | |
148 | 154 | ym3812_device::ym3812_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
149 | 155 | : device_t(mconfig, YM3812, "YM3812", tag, owner, clock), |
150 | | device_sound_interface(mconfig, *this) |
| 156 | device_sound_interface(mconfig, *this), |
| 157 | m_irq_handler(*this) |
151 | 158 | { |
152 | | m_token = global_alloc_clear(ym3812_state); |
153 | 159 | } |
154 | 160 | |
155 | 161 | //------------------------------------------------- |
r22803 | r22804 | |
161 | 167 | void ym3812_device::device_config_complete() |
162 | 168 | { |
163 | 169 | } |
164 | | |
165 | | //------------------------------------------------- |
166 | | // device_start - device-specific startup |
167 | | //------------------------------------------------- |
168 | | |
169 | | void ym3812_device::device_start() |
170 | | { |
171 | | DEVICE_START_NAME( ym3812 )(this); |
172 | | } |
173 | | |
174 | | //------------------------------------------------- |
175 | | // device_reset - device-specific reset |
176 | | //------------------------------------------------- |
177 | | |
178 | | void ym3812_device::device_reset() |
179 | | { |
180 | | DEVICE_RESET_NAME( ym3812 )(this); |
181 | | } |
182 | | |
183 | | //------------------------------------------------- |
184 | | // device_stop - device-specific stop |
185 | | //------------------------------------------------- |
186 | | |
187 | | void ym3812_device::device_stop() |
188 | | { |
189 | | DEVICE_STOP_NAME( ym3812 )(this); |
190 | | } |
191 | | |
192 | | //------------------------------------------------- |
193 | | // sound_stream_update - handle a stream update |
194 | | //------------------------------------------------- |
195 | | |
196 | | void ym3812_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) |
197 | | { |
198 | | // should never get here |
199 | | fatalerror("sound_stream_update called; not applicable to legacy sound devices\n"); |
200 | | } |
trunk/src/emu/sound/3812intf.h
r22803 | r22804 | |
3 | 3 | #ifndef __3812INTF_H__ |
4 | 4 | #define __3812INTF_H__ |
5 | 5 | |
6 | | #include "devlegcy.h" |
| 6 | #include "emu.h" |
7 | 7 | |
8 | | struct ym3812_interface |
9 | | { |
10 | | devcb_write_line irqhandler; |
11 | | }; |
| 8 | #define MCFG_YM3812_IRQ_HANDLER(_devcb) \ |
| 9 | devcb = &ym3812_device::set_irq_handler(*device, DEVCB2_##_devcb); |
12 | 10 | |
13 | | DECLARE_READ8_DEVICE_HANDLER( ym3812_r ); |
14 | | DECLARE_WRITE8_DEVICE_HANDLER( ym3812_w ); |
15 | | |
16 | | DECLARE_READ8_DEVICE_HANDLER( ym3812_status_port_r ); |
17 | | DECLARE_READ8_DEVICE_HANDLER( ym3812_read_port_r ); |
18 | | DECLARE_WRITE8_DEVICE_HANDLER( ym3812_control_port_w ); |
19 | | DECLARE_WRITE8_DEVICE_HANDLER( ym3812_write_port_w ); |
20 | | |
21 | 11 | class ym3812_device : public device_t, |
22 | 12 | public device_sound_interface |
23 | 13 | { |
24 | 14 | public: |
25 | 15 | ym3812_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
26 | | ~ym3812_device() { global_free(m_token); } |
27 | 16 | |
28 | | // access to legacy token |
29 | | void *token() const { assert(m_token != NULL); return m_token; } |
| 17 | // static configuration helpers |
| 18 | template<class _Object> static devcb2_base &set_irq_handler(device_t &device, _Object object) { return downcast<ym3812_device &>(device).m_irq_handler.set_callback(object); } |
| 19 | |
| 20 | DECLARE_READ8_MEMBER( read ); |
| 21 | DECLARE_WRITE8_MEMBER( write ); |
| 22 | |
| 23 | DECLARE_READ8_MEMBER( status_port_r ); |
| 24 | DECLARE_READ8_MEMBER( read_port_r ); |
| 25 | DECLARE_WRITE8_MEMBER( control_port_w ); |
| 26 | DECLARE_WRITE8_MEMBER( write_port_w ); |
| 27 | |
| 28 | void _IRQHandler(int irq); |
| 29 | void _timer_handler(int c, attotime period); |
| 30 | void _ym3812_update_request(); |
| 31 | |
30 | 32 | protected: |
31 | 33 | // device-level overrides |
32 | 34 | virtual void device_config_complete(); |
r22803 | r22804 | |
34 | 36 | virtual void device_stop(); |
35 | 37 | virtual void device_reset(); |
36 | 38 | |
| 39 | virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); |
| 40 | |
37 | 41 | // sound stream update overrides |
38 | 42 | virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); |
| 43 | |
39 | 44 | private: |
40 | | // internal state |
41 | | void *m_token; |
| 45 | sound_stream * m_stream; |
| 46 | emu_timer * m_timer[2]; |
| 47 | void * m_chip; |
| 48 | devcb2_write_line m_irq_handler; |
42 | 49 | }; |
43 | 50 | |
44 | 51 | extern const device_type YM3812; |
trunk/src/mess/machine/isa_stereo_fx.c
r22803 | r22804 | |
6 | 6 | |
7 | 7 | const device_type ISA8_STEREO_FX = &device_creator<stereo_fx_device>; |
8 | 8 | |
9 | | static const ym3812_interface pc_ym3812_interface = |
10 | | { |
11 | | DEVCB_NULL |
12 | | }; |
13 | | |
14 | 9 | READ8_MEMBER( stereo_fx_device::dev_dsp_data_r ) |
15 | 10 | { |
16 | 11 | m_data_in = false; |
r22803 | r22804 | |
113 | 108 | |
114 | 109 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
115 | 110 | MCFG_SOUND_ADD("ym3812", YM3812, XTAL_3_579545MHz) |
116 | | MCFG_SOUND_CONFIG(pc_ym3812_interface) |
117 | 111 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) |
118 | 112 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) |
119 | 113 | /* no CM/S support (empty sockets) */ |
r22803 | r22804 | |
203 | 197 | |
204 | 198 | void stereo_fx_device::device_start() |
205 | 199 | { |
206 | | set_isa_device(); |
| 200 | ym3812_device *ym3812 = subdevice<ym3812_device>("ym3812"); |
| 201 | |
207 | 202 | m_isa->install_device(0x0200, 0x0207, 0, 0, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy"))); |
208 | 203 | m_isa->install_device(0x0226, 0x0227, 0, 0, read8_delegate(FUNC(stereo_fx_device::invalid_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_reset_w), this)); |
209 | 204 | m_isa->install_device(0x022a, 0x022b, 0, 0, read8_delegate(FUNC(stereo_fx_device::dsp_data_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) ); |
210 | 205 | m_isa->install_device(0x022c, 0x022d, 0, 0, read8_delegate(FUNC(stereo_fx_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_cmd_w), this) ); |
211 | 206 | m_isa->install_device(0x022e, 0x022f, 0, 0, read8_delegate(FUNC(stereo_fx_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) ); |
212 | | m_isa->install_device(subdevice("ym3812"), 0x0388, 0x0389, 0, 0, FUNC(ym3812_r), FUNC(ym3812_w) ); |
213 | | m_isa->install_device(subdevice("ym3812"), 0x0228, 0x0229, 0, 0, FUNC(ym3812_r), FUNC(ym3812_w) ); |
| 207 | m_isa->install_device(0x0388, 0x0389, 0, 0, read8_delegate(FUNC(ym3812_device::read), ym3812), write8_delegate(FUNC(ym3812_device::write), ym3812)); |
| 208 | m_isa->install_device(0x0228, 0x0229, 0, 0, read8_delegate(FUNC(ym3812_device::read), ym3812), write8_delegate(FUNC(ym3812_device::write), ym3812)); |
214 | 209 | m_timer = timer_alloc(); |
215 | 210 | m_timer->adjust(attotime::from_hz(2000000), 0, attotime::from_hz(2000000)); |
216 | 211 | m_isa->set_dma_channel(1, this, FALSE); |
trunk/src/mess/machine/isa_sblaster.c
r22803 | r22804 | |
61 | 61 | |
62 | 62 | static const int protection_magic[4] = { 0x96, 0xa5, 0x69, 0x5a }; |
63 | 63 | |
64 | | static const ym3812_interface pc_ym3812_interface = |
65 | | { |
66 | | DEVCB_NULL |
67 | | }; |
68 | | |
69 | 64 | static SLOT_INTERFACE_START(midiin_slot) |
70 | 65 | SLOT_INTERFACE("midiin", MIDIIN_PORT) |
71 | 66 | SLOT_INTERFACE_END |
r22803 | r22804 | |
87 | 82 | static MACHINE_CONFIG_FRAGMENT( sblaster1_0_config ) |
88 | 83 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
89 | 84 | MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) |
90 | | MCFG_SOUND_CONFIG(pc_ym3812_interface) |
91 | 85 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 3.00) |
92 | 86 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 3.00) |
93 | 87 | MCFG_SAA1099_ADD("saa1099.1", 4772720) |
r22803 | r22804 | |
110 | 104 | static MACHINE_CONFIG_FRAGMENT( sblaster1_5_config ) |
111 | 105 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
112 | 106 | MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) |
113 | | MCFG_SOUND_CONFIG(pc_ym3812_interface) |
114 | 107 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) |
115 | 108 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) |
116 | 109 | /* no CM/S support (empty sockets) */ |
r22803 | r22804 | |
144 | 137 | |
145 | 138 | static READ8_DEVICE_HANDLER( ym3812_16_r ) |
146 | 139 | { |
| 140 | ym3812_device *ym3812 = (ym3812_device *) device; |
| 141 | |
147 | 142 | UINT8 retVal = 0xff; |
148 | 143 | switch(offset) |
149 | 144 | { |
150 | | case 0 : retVal = ym3812_status_port_r( device, space, offset ); break; |
| 145 | case 0 : retVal = ym3812->status_port_r( space, offset ); break; |
151 | 146 | } |
152 | 147 | return retVal; |
153 | 148 | } |
154 | 149 | |
155 | 150 | static WRITE8_DEVICE_HANDLER( ym3812_16_w ) |
156 | 151 | { |
| 152 | ym3812_device *ym3812 = (ym3812_device *) device; |
| 153 | |
157 | 154 | switch(offset) |
158 | 155 | { |
159 | | case 0 : ym3812_control_port_w( device, space, offset, data ); break; |
160 | | case 1 : ym3812_write_port_w( device, space, offset, data ); break; |
| 156 | case 0 : ym3812->control_port_w( space, offset, data ); break; |
| 157 | case 1 : ym3812->write_port_w( space, offset, data ); break; |
161 | 158 | } |
162 | 159 | } |
163 | 160 | |
trunk/src/mame/drivers/tecmo.c
r22803 | r22804 | |
229 | 229 | static ADDRESS_MAP_START( rygar_sound_map, AS_PROGRAM, 8, tecmo_state ) |
230 | 230 | AM_RANGE(0x0000, 0x3fff) AM_ROM |
231 | 231 | AM_RANGE(0x4000, 0x47ff) AM_RAM |
232 | | AM_RANGE(0x8000, 0x8001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) |
| 232 | AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ymsnd", ym3812_device, write) |
233 | 233 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_WRITE(tecmo_adpcm_start_w) |
234 | 234 | AM_RANGE(0xd000, 0xd000) AM_WRITE(tecmo_adpcm_end_w) |
235 | 235 | AM_RANGE(0xe000, 0xe000) AM_WRITE(tecmo_adpcm_vol_w) |
r22803 | r22804 | |
241 | 241 | /* writes code to this area */ |
242 | 242 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
243 | 243 | AM_RANGE(0x8000, 0x87ff) AM_RAM |
244 | | AM_RANGE(0xa000, 0xa001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) |
| 244 | AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ymsnd", ym3812_device, write) |
245 | 245 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_WRITE(tecmo_adpcm_start_w) |
246 | 246 | AM_RANGE(0xc400, 0xc400) AM_WRITE(tecmo_adpcm_end_w) |
247 | 247 | AM_RANGE(0xc800, 0xc800) AM_WRITE(tecmo_adpcm_vol_w) |
r22803 | r22804 | |
606 | 606 | m_soundcpu->set_input_line(0, state); |
607 | 607 | } |
608 | 608 | |
609 | | static const ym3812_interface ym3812_config = |
610 | | { |
611 | | DEVCB_DRIVER_LINE_MEMBER(tecmo_state,irqhandler) |
612 | | }; |
613 | | |
614 | 609 | static const msm5205_interface msm5205_config = |
615 | 610 | { |
616 | 611 | DEVCB_DRIVER_LINE_MEMBER(tecmo_state,tecmo_adpcm_int), /* interrupt function */ |
r22803 | r22804 | |
654 | 649 | MCFG_SPEAKER_STANDARD_MONO("mono") |
655 | 650 | |
656 | 651 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* verified on pcb */ |
657 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 652 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(tecmo_state, irqhandler)) |
658 | 653 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
659 | 654 | |
660 | 655 | MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb, even if schematics shows a 384khz resonator */ |
r22803 | r22804 | |
713 | 708 | MCFG_SPEAKER_STANDARD_MONO("mono") |
714 | 709 | |
715 | 710 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* verified on pcb */ |
716 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 711 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(tecmo_state, irqhandler)) |
717 | 712 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
718 | 713 | |
719 | 714 | /* no MSM on this PCB */ |
trunk/src/mame/drivers/nemesis.c
r22803 | r22804 | |
561 | 561 | AM_RANGE(0x988a, 0x988e) AM_DEVWRITE("k051649", k051649_device, k051649_volume_w) |
562 | 562 | AM_RANGE(0x988f, 0x988f) AM_DEVWRITE("k051649", k051649_device, k051649_keyonoff_w) |
563 | 563 | AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE("k051649", k051649_device, k051649_test_r, k051649_test_w) |
564 | | AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 564 | AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
565 | 565 | AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) |
566 | 566 | AM_RANGE(0xc000, 0xc000) AM_WRITE(city_sound_bank_w) /* 7232 bankswitch */ |
567 | 567 | AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) |
r22803 | r22804 | |
1486 | 1486 | // driver_state->audiocpu->set_input_line(0, HOLD_LINE); |
1487 | 1487 | } |
1488 | 1488 | |
1489 | | static const ym3812_interface ym3812_config = |
1490 | | { |
1491 | | DEVCB_DRIVER_LINE_MEMBER(nemesis_state,sound_irq) |
1492 | | }; |
1493 | | |
1494 | 1489 | WRITE8_MEMBER(nemesis_state::volume_callback) |
1495 | 1490 | { |
1496 | 1491 | k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); |
r22803 | r22804 | |
1828 | 1823 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.30) |
1829 | 1824 | |
1830 | 1825 | MCFG_SOUND_ADD("ymsnd", YM3812, 3579545) |
1831 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1826 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(nemesis_state, sound_irq)) |
1832 | 1827 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) |
1833 | 1828 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) |
1834 | 1829 | |
r22803 | r22804 | |
1874 | 1869 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.30) |
1875 | 1870 | |
1876 | 1871 | MCFG_SOUND_ADD("ymsnd", YM3812, 3579545) |
1877 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1872 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(nemesis_state, sound_irq)) |
1878 | 1873 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) |
1879 | 1874 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) |
1880 | 1875 | |
trunk/src/mame/drivers/actfancr.c
r22803 | r22804 | |
116 | 116 | static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, actfancr_state ) |
117 | 117 | AM_RANGE(0x0000, 0x07ff) AM_RAM |
118 | 118 | AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_device, write) |
119 | | AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w) |
| 119 | AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_device, write) |
120 | 120 | AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r) |
121 | 121 | AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
122 | 122 | AM_RANGE(0x4000, 0xffff) AM_ROM |
r22803 | r22804 | |
280 | 280 | m_audiocpu->set_input_line(0, state); /* IRQ */ |
281 | 281 | } |
282 | 282 | |
283 | | static const ym3812_interface ym3812_config = |
284 | | { |
285 | | DEVCB_DRIVER_LINE_MEMBER(actfancr_state,sound_irq) |
286 | | }; |
287 | | |
288 | 283 | /******************************************************************************/ |
289 | 284 | |
290 | 285 | MACHINE_START_MEMBER(actfancr_state,actfancr) |
r22803 | r22804 | |
354 | 349 | MCFG_SOUND_ROUTE(3, "mono", 0.50) |
355 | 350 | |
356 | 351 | MCFG_SOUND_ADD("ym2", YM3812, 3000000) |
357 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 352 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(actfancr_state, sound_irq)) |
358 | 353 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) |
359 | 354 | |
360 | 355 | MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified |
r22803 | r22804 | |
404 | 399 | MCFG_SOUND_ROUTE(3, "mono", 0.50) |
405 | 400 | |
406 | 401 | MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz/4) /* verified on pcb */ |
407 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 402 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(actfancr_state, sound_irq)) |
408 | 403 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) |
409 | 404 | |
410 | 405 | MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) /* verified on pcb */ |
trunk/src/mame/drivers/toaplan1.c
r22803 | r22804 | |
579 | 579 | AM_RANGE(0x30, 0x30) AM_WRITE(rallybik_coin_w) /* Coin counter/lockout */ |
580 | 580 | AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWA") |
581 | 581 | AM_RANGE(0x50, 0x50) AM_READ_PORT("DSWB") |
582 | | AM_RANGE(0x60, 0x61) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 582 | AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
583 | 583 | ADDRESS_MAP_END |
584 | 584 | |
585 | 585 | static ADDRESS_MAP_START( truxton_sound_io_map, AS_IO, 8, toaplan1_state ) |
r22803 | r22804 | |
590 | 590 | AM_RANGE(0x30, 0x30) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */ |
591 | 591 | AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWA") |
592 | 592 | AM_RANGE(0x50, 0x50) AM_READ_PORT("DSWB") |
593 | | AM_RANGE(0x60, 0x61) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 593 | AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
594 | 594 | AM_RANGE(0x70, 0x70) AM_READ_PORT("TJUMP") |
595 | 595 | ADDRESS_MAP_END |
596 | 596 | |
r22803 | r22804 | |
603 | 603 | AM_RANGE(0x40, 0x40) AM_READ_PORT("P1") |
604 | 604 | AM_RANGE(0x50, 0x50) AM_READ_PORT("P2") |
605 | 605 | AM_RANGE(0x60, 0x60) AM_READ_PORT("SYSTEM") |
606 | | AM_RANGE(0x70, 0x71) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 606 | AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
607 | 607 | ADDRESS_MAP_END |
608 | 608 | |
609 | 609 | static ADDRESS_MAP_START( zerowing_sound_io_map, AS_IO, 8, toaplan1_state ) |
r22803 | r22804 | |
615 | 615 | AM_RANGE(0x80, 0x80) AM_READ_PORT("SYSTEM") |
616 | 616 | AM_RANGE(0x88, 0x88) AM_READ_PORT("TJUMP") |
617 | 617 | AM_RANGE(0xa0, 0xa0) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */ |
618 | | AM_RANGE(0xa8, 0xa9) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 618 | AM_RANGE(0xa8, 0xa9) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
619 | 619 | ADDRESS_MAP_END |
620 | 620 | |
621 | 621 | static ADDRESS_MAP_START( demonwld_sound_io_map, AS_IO, 8, toaplan1_state ) |
622 | 622 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
623 | | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 623 | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
624 | 624 | AM_RANGE(0x20, 0x20) AM_READ_PORT("TJUMP") |
625 | 625 | AM_RANGE(0x40, 0x40) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */ |
626 | 626 | AM_RANGE(0x60, 0x60) AM_READ_PORT("SYSTEM") |
r22803 | r22804 | |
632 | 632 | |
633 | 633 | static ADDRESS_MAP_START( outzone_sound_io_map, AS_IO, 8, toaplan1_state ) |
634 | 634 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
635 | | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 635 | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
636 | 636 | AM_RANGE(0x04, 0x04) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */ |
637 | 637 | AM_RANGE(0x08, 0x08) AM_READ_PORT("DSWA") |
638 | 638 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSWB") |
r22803 | r22804 | |
1520 | 1520 | m_audiocpu->set_input_line(0, state); |
1521 | 1521 | } |
1522 | 1522 | |
1523 | | static const ym3812_interface ym3812_config = |
1524 | | { |
1525 | | DEVCB_DRIVER_LINE_MEMBER(toaplan1_state,irqhandler) |
1526 | | }; |
1527 | 1523 | |
1528 | 1524 | |
1529 | | |
1530 | 1525 | static MACHINE_CONFIG_START( rallybik, toaplan1_state ) |
1531 | 1526 | |
1532 | 1527 | /* basic machine hardware */ |
r22803 | r22804 | |
1559 | 1554 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1560 | 1555 | |
1561 | 1556 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) |
1562 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1557 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1563 | 1558 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1564 | 1559 | MACHINE_CONFIG_END |
1565 | 1560 | |
r22803 | r22804 | |
1596 | 1591 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1597 | 1592 | |
1598 | 1593 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) |
1599 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1594 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1600 | 1595 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1601 | 1596 | MACHINE_CONFIG_END |
1602 | 1597 | |
r22803 | r22804 | |
1633 | 1628 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1634 | 1629 | |
1635 | 1630 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) |
1636 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1631 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1637 | 1632 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1638 | 1633 | MACHINE_CONFIG_END |
1639 | 1634 | |
r22803 | r22804 | |
1670 | 1665 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1671 | 1666 | |
1672 | 1667 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) |
1673 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1668 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1674 | 1669 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1675 | 1670 | MACHINE_CONFIG_END |
1676 | 1671 | |
r22803 | r22804 | |
1711 | 1706 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1712 | 1707 | |
1713 | 1708 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) |
1714 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1709 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1715 | 1710 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1716 | 1711 | MACHINE_CONFIG_END |
1717 | 1712 | |
r22803 | r22804 | |
1746 | 1741 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1747 | 1742 | |
1748 | 1743 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) |
1749 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1744 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1750 | 1745 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1751 | 1746 | MACHINE_CONFIG_END |
1752 | 1747 | |
r22803 | r22804 | |
1783 | 1778 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1784 | 1779 | |
1785 | 1780 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) |
1786 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1781 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1787 | 1782 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1788 | 1783 | MACHINE_CONFIG_END |
1789 | 1784 | |
r22803 | r22804 | |
1818 | 1813 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1819 | 1814 | |
1820 | 1815 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) /* verified on pcb */ |
1821 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1816 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler)) |
1822 | 1817 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1823 | 1818 | MACHINE_CONFIG_END |
1824 | 1819 | |
trunk/src/mame/drivers/alpha68k.c
r22803 | r22804 | |
774 | 774 | static ADDRESS_MAP_START( alpha68k_I_s_map, AS_PROGRAM, 8, alpha68k_state ) |
775 | 775 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
776 | 776 | AM_RANGE(0xe000, 0xe000) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w) |
777 | | AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w) |
778 | | AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w) |
| 777 | AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE("ymsnd", ym3812_device, status_port_r, control_port_w) |
| 778 | AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("ymsnd", ym3812_device, write_port_w) |
779 | 779 | AM_RANGE(0xf000, 0xf7ff) AM_RAM |
780 | 780 | AM_RANGE(0xfc00, 0xfc00) AM_RAM // unknown port |
781 | 781 | ADDRESS_MAP_END |
r22803 | r22804 | |
815 | 815 | |
816 | 816 | static ADDRESS_MAP_START( tnextspc_sound_portmap, AS_IO, 8, alpha68k_state ) |
817 | 817 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
818 | | AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w) |
819 | | AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w) |
| 818 | AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_device, status_port_r, control_port_w) |
| 819 | AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_device, write_port_w) |
820 | 820 | AM_RANGE(0x3b, 0x3b) AM_READNOP // unknown read port |
821 | 821 | AM_RANGE(0x3d, 0x3d) AM_READNOP // unknown read port |
822 | 822 | AM_RANGE(0x7b, 0x7b) AM_READNOP // unknown read port |
r22803 | r22804 | |
1848 | 1848 | m_audiocpu->set_input_line(0, (state) ? HOLD_LINE : CLEAR_LINE); |
1849 | 1849 | } |
1850 | 1850 | |
1851 | | static const ym3812_interface ym3812_config = |
1852 | | { |
1853 | | DEVCB_DRIVER_LINE_MEMBER(alpha68k_state,ym3812_irq) |
1854 | | }; |
1855 | 1851 | |
1856 | | |
1857 | 1852 | /******************************************************************************/ |
1858 | 1853 | |
1859 | 1854 | |
r22803 | r22804 | |
2101 | 2096 | MCFG_SPEAKER_STANDARD_MONO("mono") |
2102 | 2097 | |
2103 | 2098 | MCFG_SOUND_ADD("ymsnd", YM3812, 4000000) |
2104 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 2099 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(alpha68k_state, ym3812_irq)) |
2105 | 2100 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
2106 | 2101 | MACHINE_CONFIG_END |
2107 | 2102 | |
r22803 | r22804 | |
2318 | 2313 | MCFG_SPEAKER_STANDARD_MONO("mono") |
2319 | 2314 | |
2320 | 2315 | MCFG_SOUND_ADD("ymsnd", YM3812, 4000000) |
2321 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 2316 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(alpha68k_state, ym3812_irq)) |
2322 | 2317 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
2323 | 2318 | MACHINE_CONFIG_END |
2324 | 2319 | |
trunk/src/mame/drivers/unico.c
r22803 | r22804 | |
67 | 67 | AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0 |
68 | 68 | AM_RANGE(0x80010c, 0x800121) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
69 | 69 | AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
70 | | AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_write_port_w, 0xff00 ) // |
71 | | AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) // |
| 70 | AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00) |
| 71 | AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00) |
72 | 72 | AM_RANGE(0x80018e, 0x80018f) AM_WRITE(burglarx_sound_bank_w) // |
73 | 73 | AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP // IRQ Ack |
74 | 74 | AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram_w) AM_SHARE("vram") // Layers 1, 2, 0 |
r22803 | r22804 | |
155 | 155 | AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r ) // |
156 | 156 | AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r ) // |
157 | 157 | AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff ) // Sound |
158 | | AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_write_port_w, 0xff00 ) // |
159 | | AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) // |
| 158 | AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00) |
| 159 | AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00) |
160 | 160 | AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w ) // |
161 | 161 | AM_RANGE(0x8001e0, 0x8001e1) AM_WRITEONLY // ? IRQ Ack |
162 | 162 | AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram_w) AM_SHARE("vram") // Layers 1, 2, 0 |
trunk/src/mame/drivers/itech8.c
r22803 | r22804 | |
946 | 946 | static ADDRESS_MAP_START( sound3812_map, AS_PROGRAM, 8, itech8_state ) |
947 | 947 | AM_RANGE(0x0000, 0x0000) AM_WRITENOP |
948 | 948 | AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r) |
949 | | AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 949 | AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
950 | 950 | AM_RANGE(0x3000, 0x37ff) AM_RAM |
951 | 951 | AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
952 | 952 | AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("pia", pia6821_device, read, write) |
r22803 | r22804 | |
958 | 958 | static ADDRESS_MAP_START( sound3812_external_map, AS_PROGRAM, 8, itech8_state ) |
959 | 959 | AM_RANGE(0x0000, 0x0000) AM_WRITENOP |
960 | 960 | AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r) |
961 | | AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 961 | AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
962 | 962 | AM_RANGE(0x3000, 0x37ff) AM_RAM |
963 | 963 | AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
964 | 964 | AM_RANGE(0x5000, 0x500f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) |
r22803 | r22804 | |
1646 | 1646 | }; |
1647 | 1647 | |
1648 | 1648 | |
1649 | | static const ym3812_interface ym3812_config = |
1650 | | { |
1651 | | DEVCB_DRIVER_LINE_MEMBER(itech8_state,generate_sound_irq) |
1652 | | }; |
1653 | 1649 | |
1654 | | |
1655 | | |
1656 | 1650 | /************************************* |
1657 | 1651 | * |
1658 | 1652 | * Machine driver |
r22803 | r22804 | |
1741 | 1735 | |
1742 | 1736 | /* sound hardware */ |
1743 | 1737 | MCFG_SOUND_ADD("ymsnd", YM3812, CLOCK_8MHz/2) |
1744 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1738 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(itech8_state, generate_sound_irq)) |
1745 | 1739 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) |
1746 | 1740 | |
1747 | 1741 | MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, OKIM6295_PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified |
r22803 | r22804 | |
1757 | 1751 | |
1758 | 1752 | /* sound hardware */ |
1759 | 1753 | MCFG_SOUND_ADD("ymsnd", YM3812, CLOCK_8MHz/2) |
1760 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1754 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(itech8_state, generate_sound_irq)) |
1761 | 1755 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) |
1762 | 1756 | |
1763 | 1757 | MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, OKIM6295_PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified |
trunk/src/mame/drivers/snowbros.c
r22803 | r22804 | |
215 | 215 | |
216 | 216 | static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, snowbros_state ) |
217 | 217 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
218 | | AM_RANGE(0x02, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 218 | AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
219 | 219 | AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_byte_r, soundlatch_byte_w) /* goes back to the main CPU, checked during boot */ |
220 | 220 | ADDRESS_MAP_END |
221 | 221 | |
r22803 | r22804 | |
316 | 316 | |
317 | 317 | static ADDRESS_MAP_START( honeydol_sound_io_map, AS_IO, 8, snowbros_state ) |
318 | 318 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
319 | | AM_RANGE(0x02, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) // not connected? |
| 319 | AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) // not connected? |
320 | 320 | AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_byte_r, soundlatch_byte_w) /* goes back to the main CPU, checked during boot */ |
321 | 321 | ADDRESS_MAP_END |
322 | 322 | |
r22803 | r22804 | |
1492 | 1492 | m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); |
1493 | 1493 | } |
1494 | 1494 | |
1495 | | /* SnowBros Sound */ |
1496 | | |
1497 | | static const ym3812_interface ym3812_config = |
1498 | | { |
1499 | | DEVCB_DRIVER_LINE_MEMBER(snowbros_state,irqhandler) |
1500 | | }; |
1501 | | |
1502 | | |
1503 | 1495 | MACHINE_RESET_MEMBER(snowbros_state,semiprot) |
1504 | 1496 | { |
1505 | 1497 | UINT16 *PROTDATA = (UINT16*)memregion("user1")->base(); |
r22803 | r22804 | |
1554 | 1546 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1555 | 1547 | |
1556 | 1548 | MCFG_SOUND_ADD("ymsnd", YM3812, 3000000) |
1557 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1549 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(snowbros_state, irqhandler)) |
1558 | 1550 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1559 | 1551 | MACHINE_CONFIG_END |
1560 | 1552 | |
r22803 | r22804 | |
1663 | 1655 | /* sound hardware */ |
1664 | 1656 | |
1665 | 1657 | MCFG_SOUND_ADD("ymsnd", YM3812, 3000000) |
1666 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1658 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(snowbros_state, irqhandler)) |
1667 | 1659 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1668 | 1660 | |
1669 | 1661 | |
trunk/src/mame/drivers/dec0.c
r22803 | r22804 | |
547 | 547 | static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, dec0_state ) |
548 | 548 | AM_RANGE(0x0000, 0x05ff) AM_RAM |
549 | 549 | AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_device, write) |
550 | | AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w) |
| 550 | AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_device, write) |
551 | 551 | AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r) |
552 | 552 | AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
553 | 553 | AM_RANGE(0x8000, 0xffff) AM_ROM |
r22803 | r22804 | |
556 | 556 | /* Physical memory map (21 bits) */ |
557 | 557 | static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8, dec0_state ) |
558 | 558 | AM_RANGE(0x000000, 0x00ffff) AM_ROM |
559 | | AM_RANGE(0x090000, 0x090001) AM_DEVWRITE_LEGACY("ym2", ym3812_w) |
| 559 | AM_RANGE(0x090000, 0x090001) AM_DEVWRITE("ym2", ym3812_device, write) |
560 | 560 | AM_RANGE(0x0a0000, 0x0a0001) AM_READNOP /* Protection counter */ |
561 | 561 | AM_RANGE(0x0b0000, 0x0b0001) AM_DEVWRITE("ym1", ym2203_device, write) |
562 | 562 | AM_RANGE(0x0e0000, 0x0e0001) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
r22803 | r22804 | |
567 | 567 | |
568 | 568 | static ADDRESS_MAP_START( midres_s_map, AS_PROGRAM, 8, dec0_state ) |
569 | 569 | AM_RANGE(0x000000, 0x00ffff) AM_ROM |
570 | | AM_RANGE(0x108000, 0x108001) AM_DEVWRITE_LEGACY("ym2", ym3812_w) |
| 570 | AM_RANGE(0x108000, 0x108001) AM_DEVWRITE("ym2", ym3812_device, write) |
571 | 571 | AM_RANGE(0x118000, 0x118001) AM_DEVWRITE("ym1", ym2203_device, write) |
572 | 572 | AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
573 | 573 | AM_RANGE(0x138000, 0x138001) AM_READ(soundlatch_byte_r) |
r22803 | r22804 | |
1304 | 1304 | m_audiocpu->set_input_line(1, state); /* IRQ2 */ |
1305 | 1305 | } |
1306 | 1306 | |
1307 | | static const ym3812_interface ym3812_config = |
1308 | | { |
1309 | | DEVCB_DRIVER_LINE_MEMBER(dec0_state,sound_irq) |
1310 | | }; |
1311 | | |
1312 | | static const ym3812_interface ym3812b_interface = |
1313 | | { |
1314 | | DEVCB_DRIVER_LINE_MEMBER(dec0_state,sound_irq2) |
1315 | | }; |
1316 | | |
1317 | 1307 | /******************************************************************************/ |
1318 | 1308 | |
1319 | 1309 | |
r22803 | r22804 | |
1347 | 1337 | MCFG_SOUND_ROUTE(3, "mono", 0.35) |
1348 | 1338 | |
1349 | 1339 | MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz / 4) |
1350 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1340 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec0_state, sound_irq)) |
1351 | 1341 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
1352 | 1342 | |
1353 | 1343 | MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 2 / 10, OKIM6295_PIN7_HIGH) |
r22803 | r22804 | |
1365 | 1355 | MCFG_SOUND_ROUTE(3, "mono", 0.35) |
1366 | 1356 | |
1367 | 1357 | MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz/4) /* verified on pcb */ |
1368 | | MCFG_SOUND_CONFIG(ym3812b_interface) |
| 1358 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec0_state, sound_irq2)) |
1369 | 1359 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
1370 | 1360 | |
1371 | 1361 | MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) /* verified on pcb */ |
r22803 | r22804 | |
1733 | 1723 | MCFG_CPU_PROGRAM_MAP(dec0_s_map) |
1734 | 1724 | |
1735 | 1725 | MCFG_SOUND_MODIFY("ym2") |
1736 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 1726 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec0_state, sound_irq)) |
1737 | 1727 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
1738 | 1728 | MACHINE_CONFIG_END |
1739 | 1729 | |
trunk/src/mame/drivers/suna8.c
r22803 | r22804 | |
1176 | 1176 | |
1177 | 1177 | static ADDRESS_MAP_START( hardhead_sound_map, AS_PROGRAM, 8, suna8_state ) |
1178 | 1178 | AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM |
1179 | | AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 1179 | AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
1180 | 1180 | AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
1181 | 1181 | AM_RANGE(0xc000, 0xc7ff) AM_RAM // RAM |
1182 | | AM_RANGE(0xc800, 0xc800) AM_DEVREAD_LEGACY("ymsnd", ym3812_status_port_r) // ? unsure |
| 1182 | AM_RANGE(0xc800, 0xc800) AM_DEVREAD("ymsnd", ym3812_device, status_port_r) // ? unsure |
1183 | 1183 | AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch2_byte_w ) // |
1184 | 1184 | AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_byte_r ) // From Main CPU |
1185 | 1185 | ADDRESS_MAP_END |
r22803 | r22804 | |
1211 | 1211 | |
1212 | 1212 | static ADDRESS_MAP_START( brickzn_sound_map, AS_PROGRAM, 8, suna8_state ) |
1213 | 1213 | AM_RANGE(0x0000, 0xbfff) AM_ROM // ROM |
1214 | | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w ) |
| 1214 | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ymsnd", ym3812_device, write) |
1215 | 1215 | AM_RANGE(0xc002, 0xc003) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
1216 | 1216 | AM_RANGE(0xe000, 0xe7ff) AM_RAM // RAM |
1217 | 1217 | AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch2_byte_w ) // To PCM CPU |
r22803 | r22804 | |
1905 | 1905 | |
1906 | 1906 | /* 1 x 24 MHz crystal */ |
1907 | 1907 | |
1908 | | static const ym3812_interface brickzn_ym3812_interface = |
1909 | | { |
1910 | | DEVCB_DRIVER_LINE_MEMBER(suna8_state,soundirq) /* IRQ Line */ |
1911 | | }; |
1912 | | |
1913 | 1908 | MACHINE_RESET_MEMBER(suna8_state,brickzn) |
1914 | 1909 | { |
1915 | 1910 | m_protection_val = m_prot2 = m_prot2_prev = 0xff; |
r22803 | r22804 | |
1950 | 1945 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
1951 | 1946 | |
1952 | 1947 | MCFG_SOUND_ADD("ymsnd", YM3812, SUNA8_MASTER_CLOCK / 6) |
1953 | | MCFG_SOUND_CONFIG(brickzn_ym3812_interface) |
| 1948 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(suna8_state, soundirq)) |
1954 | 1949 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) |
1955 | 1950 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) |
1956 | 1951 | |
trunk/src/mame/drivers/amaticmg.c
r22803 | r22804 | |
644 | 644 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
645 | 645 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) |
646 | 646 | AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) |
647 | | AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) |
| 647 | AM_RANGE(0x40, 0x41) AM_DEVWRITE("ymsnd", ym3812_device, write) |
648 | 648 | AM_RANGE(0x60, 0x60) AM_DEVWRITE("crtc", mc6845_device, address_w) |
649 | 649 | AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) |
650 | 650 | AM_RANGE(0x80, 0x80) AM_WRITE(unk80_w) |
r22803 | r22804 | |
660 | 660 | // ADDRESS_MAP_UNMAP_HIGH |
661 | 661 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) |
662 | 662 | AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) |
663 | | AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) |
| 663 | AM_RANGE(0x40, 0x41) AM_DEVWRITE("ymsnd", ym3812_device, write) |
664 | 664 | AM_RANGE(0x60, 0x60) AM_DEVWRITE("crtc", mc6845_device, address_w) // 0e for mg_iii_vger_3.64_v_8309 |
665 | 665 | AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) // 0f for mg_iii_vger_3.64_v_8309 |
666 | 666 | AM_RANGE(0xc0, 0xc0) AM_WRITE(rombank_w) |
r22803 | r22804 | |
788 | 788 | GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout_6bpp, 0, 0x10000/0x40 ) |
789 | 789 | GFXDECODE_END |
790 | 790 | |
791 | | /************************************ |
792 | | * Sound Interface * |
793 | | ************************************/ |
794 | 791 | |
795 | | static const ym3812_interface ym3812_config = |
796 | | { |
797 | | DEVCB_NULL |
798 | | }; |
799 | | |
800 | | |
801 | 792 | /************************************ |
802 | 793 | * CRTC Interface * |
803 | 794 | ************************************/ |
r22803 | r22804 | |
898 | 889 | MCFG_SPEAKER_STANDARD_MONO("mono") |
899 | 890 | |
900 | 891 | MCFG_SOUND_ADD("ymsnd", YM3812, SND_CLOCK) |
901 | | MCFG_SOUND_CONFIG(ym3812_config) |
902 | 892 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
903 | 893 | |
904 | 894 | // MCFG_DAC_ADD("dac") /* Y3014B */ |
trunk/src/mame/drivers/toaplan2.c
r22803 | r22804 | |
1367 | 1367 | static ADDRESS_MAP_START( pipibibs_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state ) |
1368 | 1368 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
1369 | 1369 | AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("shared_ram") |
1370 | | AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) |
| 1370 | AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) |
1371 | 1371 | ADDRESS_MAP_END |
1372 | 1372 | |
1373 | 1373 | |
r22803 | r22804 | |
2972 | 2972 | m_audiocpu->set_input_line(0, state); |
2973 | 2973 | } |
2974 | 2974 | |
2975 | | static const ym3812_interface ym3812_config = |
2976 | | { |
2977 | | DEVCB_DRIVER_LINE_MEMBER(toaplan2_state,irqhandler) |
2978 | | }; |
2979 | | |
2980 | | |
2981 | 2975 | WRITE_LINE_MEMBER(toaplan2_state::bbakraid_irqhandler) |
2982 | 2976 | { |
2983 | 2977 | // Not used ??? Connected to a test pin (TP082) |
r22803 | r22804 | |
3021 | 3015 | MCFG_SPEAKER_STANDARD_MONO("mono") |
3022 | 3016 | |
3023 | 3017 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_27MHz/8) |
3024 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 3018 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan2_state, irqhandler)) |
3025 | 3019 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
3026 | 3020 | MACHINE_CONFIG_END |
3027 | 3021 | |
r22803 | r22804 | |
3325 | 3319 | MCFG_SPEAKER_STANDARD_MONO("mono") |
3326 | 3320 | |
3327 | 3321 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_27MHz/8) /* verified on pcb */ |
3328 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 3322 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan2_state, irqhandler)) |
3329 | 3323 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
3330 | 3324 | MACHINE_CONFIG_END |
3331 | 3325 | |
r22803 | r22804 | |
3366 | 3360 | MCFG_SPEAKER_STANDARD_MONO("mono") |
3367 | 3361 | |
3368 | 3362 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_27MHz/8) |
3369 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 3363 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan2_state, irqhandler)) |
3370 | 3364 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
3371 | 3365 | MACHINE_CONFIG_END |
3372 | 3366 | |
trunk/src/mame/drivers/nbmj8891.c
r22803 | r22804 | |
438 | 438 | AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) |
439 | 439 | AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) |
440 | 440 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
441 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 441 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
442 | 442 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
443 | 443 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
444 | 444 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
457 | 457 | AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) |
458 | 458 | AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) |
459 | 459 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
460 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 460 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
461 | 461 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
462 | 462 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
463 | 463 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
498 | 498 | AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) |
499 | 499 | AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) |
500 | 500 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
501 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 501 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
502 | 502 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
503 | 503 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
504 | 504 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
517 | 517 | AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w) |
518 | 518 | AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) |
519 | 519 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
520 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 520 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
521 | 521 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
522 | 522 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
523 | 523 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
536 | 536 | AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w) |
537 | 537 | AM_RANGE(0x20, 0x20) AM_WRITE(nbmj8891_clutsel_w) |
538 | 538 | AM_RANGE(0x50, 0x50) AM_WRITE(nbmj8891_scrolly_w) |
539 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 539 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
540 | 540 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
541 | 541 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
542 | 542 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
576 | 576 | AM_RANGE(0x30, 0x30) AM_WRITE(nbmj8891_vramsel_w) |
577 | 577 | AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w) |
578 | 578 | AM_RANGE(0x50, 0x50) AM_WRITE(nbmj8891_scrolly_w) |
579 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 579 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
580 | 580 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
581 | 581 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
582 | 582 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
595 | 595 | AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w) |
596 | 596 | AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) |
597 | 597 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
598 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 598 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
599 | 599 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) //AM_WRITENOP |
600 | 600 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
601 | 601 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
614 | 614 | AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w) |
615 | 615 | AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) |
616 | 616 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
617 | | AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w) |
| 617 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) |
618 | 618 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
619 | 619 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
620 | 620 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
trunk/src/mame/drivers/deniam.c
r22803 | r22804 | |
102 | 102 | static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, deniam_state ) |
103 | 103 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
104 | 104 | AM_RANGE(0x01, 0x01) AM_READ(soundlatch_byte_r) |
105 | | AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) |
| 105 | AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym3812_device, write) |
106 | 106 | AM_RANGE(0x05, 0x05) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
107 | 107 | AM_RANGE(0x07, 0x07) AM_WRITE(deniam16b_oki_rom_bank_w) |
108 | 108 | ADDRESS_MAP_END |
r22803 | r22804 | |
122 | 122 | AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1") |
123 | 123 | AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") |
124 | 124 | AM_RANGE(0xc44006, 0xc44007) AM_READNOP /* read unused? extra input port/dipswitches? */ |
125 | | AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_w, 0xff00) |
| 125 | AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8("ymsnd", ym3812_device, write, 0xff00) |
126 | 126 | AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */ |
127 | 127 | AM_RANGE(0xff0000, 0xffffff) AM_RAM |
128 | 128 | ADDRESS_MAP_END |
r22803 | r22804 | |
227 | 227 | if (m_audiocpu != NULL) |
228 | 228 | m_audiocpu->set_input_line(0, state); |
229 | 229 | } |
| 230 | |
230 | 231 | |
231 | | static const ym3812_interface ym3812_config = |
232 | | { |
233 | | DEVCB_DRIVER_LINE_MEMBER(deniam_state,irqhandler) |
234 | | }; |
235 | 232 | |
236 | | |
237 | | |
238 | 233 | void deniam_state::machine_start() |
239 | 234 | { |
240 | 235 | save_item(NAME(m_display_enable)); |
r22803 | r22804 | |
293 | 288 | MCFG_SPEAKER_STANDARD_MONO("mono") |
294 | 289 | |
295 | 290 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_25MHz/6) /* "SM64" ym3812 clone; 4.166470 measured, = 4.166666Mhz verified */ |
296 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 291 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(deniam_state, irqhandler)) |
297 | 292 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) |
298 | 293 | |
299 | 294 | MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, OKIM6295_PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */ |
r22803 | r22804 | |
325 | 320 | MCFG_SPEAKER_STANDARD_MONO("mono") |
326 | 321 | |
327 | 322 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_25MHz/6) /* "SM64" ym3812 clone; 4.166470 measured, = 4.166666Mhz verified) */ |
328 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 323 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(deniam_state, irqhandler)) |
329 | 324 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) |
330 | 325 | |
331 | 326 | MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, OKIM6295_PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */ |
trunk/src/mame/drivers/snk.c
r22803 | r22804 | |
468 | 468 | } |
469 | 469 | |
470 | 470 | |
471 | | static const ym3812_interface ym3812_config_1 = |
472 | | { |
473 | | DEVCB_DRIVER_LINE_MEMBER(snk_state,ymirq_callback_1) |
474 | | }; |
475 | 471 | |
476 | | |
477 | | |
478 | 472 | WRITE8_MEMBER(snk_state::snk_soundlatch_w) |
479 | 473 | { |
480 | 474 | soundlatch_byte_w(space, offset, data); |
r22803 | r22804 | |
1446 | 1440 | AM_RANGE(0x0000, 0xbfff) AM_ROM |
1447 | 1441 | AM_RANGE(0xc000, 0xcfff) AM_RAM |
1448 | 1442 | AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r) |
1449 | | AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ym1", ym3812_status_port_r, ym3812_control_port_w) |
1450 | | AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3812_write_port_w) |
| 1443 | AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE("ym1", ym3812_device, status_port_r, control_port_w) |
| 1444 | AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("ym1", ym3812_device, write_port_w) |
1451 | 1445 | AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w) |
1452 | 1446 | ADDRESS_MAP_END |
1453 | 1447 | |
r22803 | r22804 | |
1466 | 1460 | AM_RANGE(0x0000, 0xbfff) AM_ROM |
1467 | 1461 | AM_RANGE(0xc000, 0xcfff) AM_RAM |
1468 | 1462 | AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r) |
1469 | | AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ym1", ym3812_status_port_r, ym3812_control_port_w) |
1470 | | AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3812_write_port_w) |
| 1463 | AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE("ym1", ym3812_device, status_port_r, control_port_w) |
| 1464 | AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("ym1", ym3812_device, write_port_w) |
1471 | 1465 | AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE("ym2", y8950_device, status_port_r, control_port_w) |
1472 | 1466 | AM_RANGE(0xf400, 0xf400) AM_DEVWRITE("ym2", y8950_device, write_port_w) |
1473 | 1467 | AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w) |
r22803 | r22804 | |
3837 | 3831 | |
3838 | 3832 | /* sound hardware */ |
3839 | 3833 | MCFG_SOUND_REPLACE("ym1", YM3812, XTAL_4MHz) /* verified on pcb */ |
3840 | | MCFG_SOUND_CONFIG(ym3812_config_1) |
| 3834 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(snk_state, ymirq_callback_1)) |
3841 | 3835 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0) |
3842 | 3836 | MACHINE_CONFIG_END |
3843 | 3837 | |
r22803 | r22804 | |
3989 | 3983 | |
3990 | 3984 | /* sound hardware */ |
3991 | 3985 | MCFG_SOUND_REPLACE("ym1", YM3812, 4000000) |
3992 | | MCFG_SOUND_CONFIG(ym3812_config_1) |
| 3986 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(snk_state, ymirq_callback_1)) |
3993 | 3987 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
3994 | 3988 | MACHINE_CONFIG_END |
3995 | 3989 | |
trunk/src/mame/drivers/dec8.c
r22803 | r22804 | |
846 | 846 | static ADDRESS_MAP_START( dec8_s_map, AS_PROGRAM, 8, dec8_state ) |
847 | 847 | AM_RANGE(0x0000, 0x05ff) AM_RAM |
848 | 848 | AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym1", ym2203_device, write) |
849 | | AM_RANGE(0x4000, 0x4001) AM_DEVWRITE_LEGACY("ym2", ym3812_w) |
| 849 | AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ym2", ym3812_device, write) |
850 | 850 | AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r) |
851 | 851 | AM_RANGE(0x8000, 0xffff) AM_ROM |
852 | 852 | ADDRESS_MAP_END |
r22803 | r22804 | |
1908 | 1908 | m_audiocpu->set_input_line(0, state); /* M6502_IRQ_LINE */ |
1909 | 1909 | } |
1910 | 1910 | |
1911 | | static const ym3812_interface ym3812_config = |
1912 | | { |
1913 | | DEVCB_DRIVER_LINE_MEMBER(dec8_state,irqhandler) |
1914 | | }; |
1915 | | |
1916 | 1911 | static const msm5205_interface msm5205_config = |
1917 | 1912 | { |
1918 | 1913 | DEVCB_DRIVER_LINE_MEMBER(dec8_state,csilver_adpcm_int), /* interrupt function */ |
r22803 | r22804 | |
2240 | 2235 | MCFG_SOUND_ROUTE(3, "mono", 0.20) |
2241 | 2236 | |
2242 | 2237 | MCFG_SOUND_ADD("ym2", YM3812, 3000000) |
2243 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 2238 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec8_state, irqhandler)) |
2244 | 2239 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) |
2245 | 2240 | MACHINE_CONFIG_END |
2246 | 2241 | |
r22803 | r22804 | |
2387 | 2382 | MCFG_SOUND_ROUTE(3, "mono", 0.20) |
2388 | 2383 | |
2389 | 2384 | MCFG_SOUND_ADD("ym2", YM3812, 3000000) |
2390 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 2385 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec8_state, irqhandler)) |
2391 | 2386 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) |
2392 | 2387 | MACHINE_CONFIG_END |
2393 | 2388 | |
r22803 | r22804 | |
2438 | 2433 | MCFG_SOUND_ROUTE(3, "mono", 0.50) |
2439 | 2434 | |
2440 | 2435 | MCFG_SOUND_ADD("ym2", YM3812, 3000000) |
2441 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 2436 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec8_state, irqhandler)) |
2442 | 2437 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) |
2443 | 2438 | MACHINE_CONFIG_END |
2444 | 2439 | |
trunk/src/mame/drivers/nbmj8688.c
r22803 | r22804 | |
326 | 326 | // AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) |
327 | 327 | AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_sndrombank1_w) |
328 | 328 | AM_RANGE(0x70, 0x70) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) |
329 | | AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("psg", ym3812_r,ym3812_w) |
| 329 | AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write) |
330 | 330 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
331 | 331 | AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w) |
332 | 332 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
r22803 | r22804 | |
366 | 366 | AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) |
367 | 367 | AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w) |
368 | 368 | AM_RANGE(0x70, 0x77) AM_WRITE(nbmj8688_blitter_w) |
369 | | AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("psg", ym3812_r,ym3812_w) |
| 369 | AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write) |
370 | 370 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
371 | 371 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
372 | 372 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
r22803 | r22804 | |
495 | 495 | AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) |
496 | 496 | AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w) |
497 | 497 | AM_RANGE(0x60, 0x67) AM_WRITE(nbmj8688_blitter_w) |
498 | | AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("psg", ym3812_r, ym3812_w) |
| 498 | AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write) |
499 | 499 | AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) |
500 | 500 | AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) |
501 | 501 | AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) |
trunk/src/mame/drivers/spbactn.c
r22803 | r22804 | |
222 | 222 | AM_RANGE(0x0000, 0xefff) AM_ROM |
223 | 223 | AM_RANGE(0xf000, 0xf7ff) AM_RAM |
224 | 224 | AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
225 | | AM_RANGE(0xf810, 0xf811) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) |
| 225 | AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ymsnd", ym3812_device, write) |
226 | 226 | |
227 | 227 | AM_RANGE(0xfc00, 0xfc00) AM_READNOP AM_WRITENOP /* irq ack ?? */ |
228 | 228 | AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_byte_r) |
r22803 | r22804 | |
407 | 407 | m_audiocpu->set_input_line(0, state); |
408 | 408 | } |
409 | 409 | |
410 | | static const ym3812_interface ym3812_config = |
411 | | { |
412 | | DEVCB_DRIVER_LINE_MEMBER(spbactn_state,irqhandler) |
413 | | }; |
414 | | |
415 | 410 | static MACHINE_CONFIG_START( spbactn, spbactn_state ) |
416 | 411 | |
417 | 412 | /* basic machine hardware */ |
r22803 | r22804 | |
439 | 434 | MCFG_SPEAKER_STANDARD_MONO("mono") |
440 | 435 | |
441 | 436 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* Was 3.579545MHz, a common clock, but no way to generate via on PCB OSCs */ |
442 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 437 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(spbactn_state, irqhandler)) |
443 | 438 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
444 | 439 | |
445 | 440 | MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Was 1.056MHz, a common clock, but no way to generate via on PCB OSCs. clock frequency & pin 7 not verified */ |
r22803 | r22804 | |
481 | 476 | MCFG_SPEAKER_STANDARD_MONO("mono") |
482 | 477 | |
483 | 478 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) |
484 | | MCFG_SOUND_CONFIG(ym3812_config) |
| 479 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(spbactn_state, irqhandler)) |
485 | 480 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
486 | 481 | |
487 | 482 | MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) |
trunk/src/mame/drivers/subsino.c
r22803 | r22804 | |
841 | 841 | |
842 | 842 | AM_RANGE( 0x0d00c, 0x0d00c ) AM_READ_PORT( "INC" ) |
843 | 843 | |
844 | | AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w ) |
| 844 | AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write) |
845 | 845 | |
846 | 846 | AM_RANGE( 0x0d018, 0x0d018 ) AM_DEVWRITE("oki", okim6295_device, write) |
847 | 847 | |
r22803 | r22804 | |
868 | 868 | |
869 | 869 | AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" ) |
870 | 870 | |
871 | | AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w ) |
| 871 | AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE("ymsnd", ym3812_device, write) |
872 | 872 | |
873 | 873 | AM_RANGE( 0x09018, 0x09018 ) AM_DEVWRITE("oki", okim6295_device, write) |
874 | 874 | |
r22803 | r22804 | |
1047 | 1047 | |
1048 | 1048 | AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" ) |
1049 | 1049 | |
1050 | | AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w ) |
| 1050 | AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE("ymsnd", ym3812_device, write) |
1051 | 1051 | |
1052 | 1052 | // AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE("oki", okim6295_device, write) |
1053 | 1053 | |
r22803 | r22804 | |
1172 | 1172 | |
1173 | 1173 | AM_RANGE( 0x0d010, 0x0d013 ) AM_WRITE(colordac_w) |
1174 | 1174 | |
1175 | | AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w ) |
| 1175 | AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write) |
1176 | 1176 | |
1177 | 1177 | // AM_RANGE( 0x0d01b, 0x0d01b ) AM_WRITE(subsino_tiles_offset_w ) |
1178 | 1178 | |
r22803 | r22804 | |
1213 | 1213 | |
1214 | 1214 | // AM_RANGE( 0x0d012, 0x0d012 ) AM_WRITE |
1215 | 1215 | |
1216 | | AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w ) |
| 1216 | AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write) |
1217 | 1217 | |
1218 | 1218 | // AM_RANGE( 0x0d018, 0x0d018 ) AM_DEVREADWRITE("oki", okim6295_device, read, write) |
1219 | 1219 | |