~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

Viewing changes to src/mame/drivers/konamigq.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Emmanuel Kasper, Jordi Mallach
  • Date: 2012-06-05 20:02:23 UTC
  • mfrom: (0.3.1) (0.1.4)
  • Revision ID: package-import@ubuntu.com-20120605200223-gnlpogjrg6oqe9md
Tags: 0.146-1
[ Emmanuel Kasper ]
* New upstream release
* Drop patch to fix man pages section and patches to link with flac 
  and jpeg system lib: all this has been pushed upstream by Cesare Falco
* Add DM-Upload-Allowed: yes field.

[ Jordi Mallach ]
* Create a "gnu" TARGETOS stanza that defines NO_AFFINITY_NP.
* Stop setting TARGETOS to "unix" in d/rules. It should be autodetected,
  and set to the appropriate value.
* mame_manpage_section.patch: Change mame's manpage section to 6 (games),
  in the TH declaration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
        UINT8 m_sndtor3k[ 16 ];
67
67
        UINT8 *m_p_n_pcmram;
68
68
        UINT8 m_sector_buffer[ 512 ];
 
69
        DECLARE_WRITE32_MEMBER(soundr3k_w);
 
70
        DECLARE_READ32_MEMBER(soundr3k_r);
 
71
        DECLARE_WRITE32_MEMBER(mb89371_w);
 
72
        DECLARE_READ32_MEMBER(mb89371_r);
 
73
        DECLARE_WRITE32_MEMBER(eeprom_w);
 
74
        DECLARE_WRITE32_MEMBER(pcmram_w);
 
75
        DECLARE_READ32_MEMBER(pcmram_r);
 
76
        DECLARE_READ16_MEMBER(sndcomm68k_r);
 
77
        DECLARE_WRITE16_MEMBER(sndcomm68k_w);
 
78
        DECLARE_READ16_MEMBER(tms57002_data_word_r);
 
79
        DECLARE_WRITE16_MEMBER(tms57002_data_word_w);
 
80
        DECLARE_READ16_MEMBER(tms57002_status_word_r);
 
81
        DECLARE_WRITE16_MEMBER(tms57002_control_word_w);
69
82
};
70
83
 
71
84
/* Sound */
72
85
 
73
 
static WRITE32_HANDLER( soundr3k_w )
 
86
WRITE32_MEMBER(konamigq_state::soundr3k_w)
74
87
{
75
 
        konamigq_state *state = space->machine().driver_data<konamigq_state>();
 
88
 
76
89
 
77
90
        if( ACCESSING_BITS_16_31 )
78
91
        {
79
 
                state->m_sndto000[ ( offset << 1 ) + 1 ] = data >> 16;
 
92
                m_sndto000[ ( offset << 1 ) + 1 ] = data >> 16;
80
93
                if( offset == 3 )
81
94
                {
82
 
                        cputag_set_input_line(space->machine(), "soundcpu", 1, HOLD_LINE );
 
95
                        cputag_set_input_line(machine(), "soundcpu", 1, HOLD_LINE );
83
96
                }
84
97
        }
85
98
        if( ACCESSING_BITS_0_15 )
86
99
        {
87
 
                state->m_sndto000[ offset << 1 ] = data;
 
100
                m_sndto000[ offset << 1 ] = data;
88
101
        }
89
102
}
90
103
 
91
 
static READ32_HANDLER( soundr3k_r )
 
104
READ32_MEMBER(konamigq_state::soundr3k_r)
92
105
{
93
 
        konamigq_state *state = space->machine().driver_data<konamigq_state>();
 
106
 
94
107
        UINT32 data;
95
108
 
96
 
        data = ( state->m_sndtor3k[ ( offset << 1 ) + 1 ] << 16 ) | state->m_sndtor3k[ offset << 1 ];
 
109
        data = ( m_sndtor3k[ ( offset << 1 ) + 1 ] << 16 ) | m_sndtor3k[ offset << 1 ];
97
110
 
98
111
        /* hack to help the main program start up */
99
112
        if( offset == 1 )
106
119
 
107
120
/* UART */
108
121
 
109
 
static WRITE32_HANDLER( mb89371_w )
 
122
WRITE32_MEMBER(konamigq_state::mb89371_w)
110
123
{
111
124
}
112
125
 
113
 
static READ32_HANDLER( mb89371_r )
 
126
READ32_MEMBER(konamigq_state::mb89371_r)
114
127
{
115
128
        return 0xffffffff;
116
129
}
129
142
        0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
130
143
};
131
144
 
132
 
static WRITE32_HANDLER( eeprom_w )
 
145
WRITE32_MEMBER(konamigq_state::eeprom_w)
133
146
{
134
 
        input_port_write(space->machine(), "EEPROMOUT", data & 0x07, 0xff);
135
 
        cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_RESET, ( data & 0x40 ) ? CLEAR_LINE : ASSERT_LINE );
 
147
        ioport("EEPROMOUT")->write(data & 0x07, 0xff);
 
148
        cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_RESET, ( data & 0x40 ) ? CLEAR_LINE : ASSERT_LINE );
136
149
}
137
150
 
138
151
 
139
152
/* PCM RAM */
140
153
 
141
 
static WRITE32_HANDLER( pcmram_w )
 
154
WRITE32_MEMBER(konamigq_state::pcmram_w)
142
155
{
143
 
        konamigq_state *state = space->machine().driver_data<konamigq_state>();
 
156
 
144
157
 
145
158
        if( ACCESSING_BITS_0_7 )
146
159
        {
147
 
                state->m_p_n_pcmram[ offset << 1 ] = data;
 
160
                m_p_n_pcmram[ offset << 1 ] = data;
148
161
        }
149
162
        if( ACCESSING_BITS_16_23 )
150
163
        {
151
 
                state->m_p_n_pcmram[ ( offset << 1 ) + 1 ] = data >> 16;
 
164
                m_p_n_pcmram[ ( offset << 1 ) + 1 ] = data >> 16;
152
165
        }
153
166
}
154
167
 
155
 
static READ32_HANDLER( pcmram_r )
 
168
READ32_MEMBER(konamigq_state::pcmram_r)
156
169
{
157
 
        konamigq_state *state = space->machine().driver_data<konamigq_state>();
158
 
 
159
 
        return ( state->m_p_n_pcmram[ ( offset << 1 ) + 1 ] << 16 ) | state->m_p_n_pcmram[ offset << 1 ];
 
170
 
 
171
 
 
172
        return ( m_p_n_pcmram[ ( offset << 1 ) + 1 ] << 16 ) | m_p_n_pcmram[ offset << 1 ];
160
173
}
161
174
 
162
175
/* Video */
163
176
 
164
 
static ADDRESS_MAP_START( konamigq_map, AS_PROGRAM, 32 )
 
177
static ADDRESS_MAP_START( konamigq_map, AS_PROGRAM, 32, konamigq_state )
165
178
        AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */
166
 
        AM_RANGE(0x1f000000, 0x1f00001f) AM_READWRITE(am53cf96_r, am53cf96_w)
 
179
        AM_RANGE(0x1f000000, 0x1f00001f) AM_READWRITE_LEGACY(am53cf96_r, am53cf96_w)
167
180
        AM_RANGE(0x1f100000, 0x1f10000f) AM_WRITE(soundr3k_w)
168
181
        AM_RANGE(0x1f100010, 0x1f10001f) AM_READ(soundr3k_r)
169
182
        AM_RANGE(0x1f180000, 0x1f180003) AM_WRITE(eeprom_w)
191
204
 
192
205
/* SOUND CPU */
193
206
 
194
 
static READ16_HANDLER( dual539_r )
195
 
{
196
 
        UINT16 data;
197
 
 
198
 
        data = 0;
199
 
        if( ACCESSING_BITS_0_7 )
200
 
        {
201
 
                data |= k054539_r( space->machine().device("konami2"), offset );
202
 
        }
203
 
        if( ACCESSING_BITS_8_15 )
204
 
        {
205
 
                data |= k054539_r( space->machine().device("konami1"), offset ) << 8;
206
 
        }
207
 
        return data;
208
 
}
209
 
 
210
 
static WRITE16_HANDLER( dual539_w )
211
 
{
212
 
        if( ACCESSING_BITS_0_7 )
213
 
        {
214
 
                k054539_w( space->machine().device("konami2"), offset, data );
215
 
        }
216
 
        if( ACCESSING_BITS_8_15 )
217
 
        {
218
 
                k054539_w( space->machine().device("konami1"), offset, data >> 8 );
219
 
        }
220
 
}
221
 
 
222
 
static READ16_HANDLER( sndcomm68k_r )
223
 
{
224
 
        konamigq_state *state = space->machine().driver_data<konamigq_state>();
225
 
 
226
 
        return state->m_sndto000[ offset ];
227
 
}
228
 
 
229
 
static WRITE16_HANDLER( sndcomm68k_w )
230
 
{
231
 
        konamigq_state *state = space->machine().driver_data<konamigq_state>();
232
 
 
233
 
        state->m_sndtor3k[ offset ] = data;
234
 
}
235
 
 
236
 
static READ16_HANDLER(tms57002_data_word_r)
237
 
{
238
 
        return 0;
239
 
}
240
 
 
241
 
static WRITE16_HANDLER(tms57002_data_word_w)
242
 
{
243
 
}
244
 
 
245
 
static READ16_HANDLER(tms57002_status_word_r)
246
 
{
247
 
        return 0;
248
 
}
249
 
 
250
 
static WRITE16_HANDLER(tms57002_control_word_w)
 
207
READ16_MEMBER(konamigq_state::sndcomm68k_r)
 
208
{
 
209
 
 
210
 
 
211
        return m_sndto000[ offset ];
 
212
}
 
213
 
 
214
WRITE16_MEMBER(konamigq_state::sndcomm68k_w)
 
215
{
 
216
 
 
217
 
 
218
        m_sndtor3k[ offset ] = data;
 
219
}
 
220
 
 
221
READ16_MEMBER(konamigq_state::tms57002_data_word_r)
 
222
{
 
223
        return 0;
 
224
}
 
225
 
 
226
WRITE16_MEMBER(konamigq_state::tms57002_data_word_w)
 
227
{
 
228
}
 
229
 
 
230
READ16_MEMBER(konamigq_state::tms57002_status_word_r)
 
231
{
 
232
        return 0;
 
233
}
 
234
 
 
235
WRITE16_MEMBER(konamigq_state::tms57002_control_word_w)
251
236
{
252
237
}
253
238
 
254
239
/* 68000 memory handling */
255
 
static ADDRESS_MAP_START( konamigq_sound_map, AS_PROGRAM, 16 )
 
240
static ADDRESS_MAP_START( konamigq_sound_map, AS_PROGRAM, 16, konamigq_state )
256
241
        AM_RANGE(0x000000, 0x07ffff) AM_ROM
257
242
        AM_RANGE(0x100000, 0x10ffff) AM_RAM
258
 
        AM_RANGE(0x200000, 0x2004ff) AM_READWRITE(dual539_r,dual539_w)
 
243
        AM_RANGE(0x200000, 0x2004ff) AM_DEVREADWRITE8("konami1", k054539_device, read, write, 0xff00)
 
244
        AM_RANGE(0x200000, 0x2004ff) AM_DEVREADWRITE8("konami2", k054539_device, read, write, 0x00ff)
259
245
        AM_RANGE(0x300000, 0x300001) AM_READWRITE(tms57002_data_word_r,tms57002_data_word_w)
260
246
        AM_RANGE(0x400000, 0x40000f) AM_WRITE(sndcomm68k_w)
261
247
        AM_RANGE(0x400010, 0x40001f) AM_READ(sndcomm68k_r)
335
321
 
336
322
        psx_driver_init(machine);
337
323
 
338
 
        state->m_p_n_pcmram = machine.region( "shared" )->base() + 0x80000;
 
324
        state->m_p_n_pcmram = state->memregion( "shared" )->base() + 0x80000;
339
325
}
340
326
 
341
327
static void konamigq_exit(running_machine &machine)
384
370
        /* sound hardware */
385
371
        MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
386
372
 
387
 
        MCFG_SOUND_ADD("konami1", K054539, 48000)
388
 
        MCFG_SOUND_CONFIG(k054539_config)
 
373
        MCFG_K054539_ADD("konami1", 48000, k054539_config)
389
374
        MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
390
375
        MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
391
376
 
392
 
        MCFG_SOUND_ADD("konami2", K054539, 48000)
393
 
        MCFG_SOUND_CONFIG(k054539_config)
 
377
        MCFG_K054539_ADD("konami2", 48000, k054539_config)
394
378
        MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
395
379
        MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
396
380
MACHINE_CONFIG_END