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

« back to all changes in this revision

Viewing changes to src/mame/drivers/m63.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:
125
125
{
126
126
public:
127
127
        m63_state(const machine_config &mconfig, device_type type, const char *tag)
128
 
                : driver_device(mconfig, type, tag) { }
 
128
                : driver_device(mconfig, type, tag) ,
 
129
                m_spriteram(*this, "spriteram"),
 
130
                m_scrollram(*this, "scrollram"),
 
131
                m_videoram2(*this, "videoram2"),
 
132
                m_videoram(*this, "videoram"),
 
133
                m_colorram(*this, "colorram"){ }
129
134
 
130
 
        UINT8 *  m_videoram;
131
 
        UINT8 *  m_colorram;
132
 
        UINT8 *  m_spriteram;
133
 
        UINT8 *  m_videoram2;
134
 
        UINT8 *  m_scrollram;
135
 
        size_t   m_spriteram_size;
 
135
        required_shared_ptr<UINT8> m_spriteram;
 
136
        required_shared_ptr<UINT8> m_scrollram;
 
137
        required_shared_ptr<UINT8> m_videoram2;
 
138
        required_shared_ptr<UINT8> m_videoram;
 
139
        required_shared_ptr<UINT8> m_colorram;
136
140
 
137
141
        UINT8    m_nmi_mask;
138
142
 
154
158
        device_t *m_soundcpu;
155
159
        device_t *m_ay1;
156
160
        device_t *m_ay2;
157
 
        device_t *m_samples;
 
161
        samples_device *m_samples;
 
162
        DECLARE_WRITE8_MEMBER(m63_videoram_w);
 
163
        DECLARE_WRITE8_MEMBER(m63_colorram_w);
 
164
        DECLARE_WRITE8_MEMBER(m63_videoram2_w);
 
165
        DECLARE_WRITE8_MEMBER(m63_palbank_w);
 
166
        DECLARE_WRITE8_MEMBER(m63_flipscreen_w);
 
167
        DECLARE_WRITE8_MEMBER(fghtbskt_flipscreen_w);
 
168
        DECLARE_WRITE8_MEMBER(coin_w);
 
169
        DECLARE_WRITE8_MEMBER(snd_irq_w);
 
170
        DECLARE_WRITE8_MEMBER(snddata_w);
 
171
        DECLARE_WRITE8_MEMBER(p1_w);
 
172
        DECLARE_WRITE8_MEMBER(p2_w);
 
173
        DECLARE_READ8_MEMBER(snd_status_r);
 
174
        DECLARE_READ8_MEMBER(irq_r);
 
175
        DECLARE_READ8_MEMBER(snddata_r);
 
176
        DECLARE_WRITE8_MEMBER(fghtbskt_samples_w);
 
177
        DECLARE_WRITE8_MEMBER(nmi_mask_w);
158
178
};
159
179
 
160
180
 
161
181
static PALETTE_INIT( m63 )
162
182
{
 
183
        const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
163
184
        int i;
164
185
 
165
186
        for (i = 0; i < 256; i++)
213
234
        }
214
235
}
215
236
 
216
 
static WRITE8_HANDLER( m63_videoram_w )
217
 
{
218
 
        m63_state *state = space->machine().driver_data<m63_state>();
219
 
 
220
 
        state->m_videoram[offset] = data;
221
 
        state->m_bg_tilemap->mark_tile_dirty(offset);
222
 
}
223
 
 
224
 
static WRITE8_HANDLER( m63_colorram_w )
225
 
{
226
 
        m63_state *state = space->machine().driver_data<m63_state>();
227
 
 
228
 
        state->m_colorram[offset] = data;
229
 
        state->m_bg_tilemap->mark_tile_dirty(offset);
230
 
}
231
 
 
232
 
static WRITE8_HANDLER( m63_videoram2_w )
233
 
{
234
 
        m63_state *state = space->machine().driver_data<m63_state>();
235
 
 
236
 
        state->m_videoram2[offset] = data;
237
 
        state->m_fg_tilemap->mark_tile_dirty(offset);
238
 
}
239
 
 
240
 
static WRITE8_HANDLER( m63_palbank_w )
241
 
{
242
 
        m63_state *state = space->machine().driver_data<m63_state>();
243
 
 
244
 
        if (state->m_pal_bank != (data & 0x01))
245
 
        {
246
 
                state->m_pal_bank = data & 0x01;
247
 
                state->m_bg_tilemap->mark_all_dirty();
248
 
        }
249
 
}
250
 
 
251
 
static WRITE8_HANDLER( m63_flipscreen_w )
252
 
{
253
 
        if (flip_screen_get(space->machine()) != (~data & 0x01))
254
 
        {
255
 
                flip_screen_set(space->machine(), ~data & 0x01);
256
 
                space->machine().tilemap().mark_all_dirty();
257
 
        }
258
 
}
259
 
 
260
 
static WRITE8_HANDLER( fghtbskt_flipscreen_w )
261
 
{
262
 
        m63_state *state = space->machine().driver_data<m63_state>();
263
 
 
264
 
        flip_screen_set(space->machine(), data);
265
 
        state->m_fg_flag = flip_screen_get(space->machine()) ? TILE_FLIPX : 0;
 
237
WRITE8_MEMBER(m63_state::m63_videoram_w)
 
238
{
 
239
 
 
240
        m_videoram[offset] = data;
 
241
        m_bg_tilemap->mark_tile_dirty(offset);
 
242
}
 
243
 
 
244
WRITE8_MEMBER(m63_state::m63_colorram_w)
 
245
{
 
246
 
 
247
        m_colorram[offset] = data;
 
248
        m_bg_tilemap->mark_tile_dirty(offset);
 
249
}
 
250
 
 
251
WRITE8_MEMBER(m63_state::m63_videoram2_w)
 
252
{
 
253
 
 
254
        m_videoram2[offset] = data;
 
255
        m_fg_tilemap->mark_tile_dirty(offset);
 
256
}
 
257
 
 
258
WRITE8_MEMBER(m63_state::m63_palbank_w)
 
259
{
 
260
 
 
261
        if (m_pal_bank != (data & 0x01))
 
262
        {
 
263
                m_pal_bank = data & 0x01;
 
264
                m_bg_tilemap->mark_all_dirty();
 
265
        }
 
266
}
 
267
 
 
268
WRITE8_MEMBER(m63_state::m63_flipscreen_w)
 
269
{
 
270
        if (flip_screen() != (~data & 0x01))
 
271
        {
 
272
                flip_screen_set(~data & 0x01);
 
273
                machine().tilemap().mark_all_dirty();
 
274
        }
 
275
}
 
276
 
 
277
WRITE8_MEMBER(m63_state::fghtbskt_flipscreen_w)
 
278
{
 
279
 
 
280
        flip_screen_set(data);
 
281
        m_fg_flag = flip_screen() ? TILE_FLIPX : 0;
266
282
}
267
283
 
268
284
 
302
318
        m63_state *state = machine.driver_data<m63_state>();
303
319
        int offs;
304
320
 
305
 
        for (offs = 0; offs < state->m_spriteram_size; offs += 4)
 
321
        for (offs = 0; offs < state->m_spriteram.bytes(); offs += 4)
306
322
        {
307
323
                int code = state->m_spriteram[offs + 1] | ((state->m_spriteram[offs + 2] & 0x10) << 4);
308
324
                int color = (state->m_spriteram[offs + 2] & 0x0f) + (state->m_pal_bank << 4);
311
327
                int sx = state->m_spriteram[offs + 3];
312
328
                int sy = state->m_sy_offset - state->m_spriteram[offs];
313
329
 
314
 
                if (flip_screen_get(machine))
 
330
                if (state->flip_screen())
315
331
                {
316
332
                        sx = 240 - sx;
317
333
                        sy = state->m_sy_offset - sy;
354
370
}
355
371
 
356
372
 
357
 
static WRITE8_HANDLER( coin_w )
358
 
{
359
 
        coin_counter_w(space->machine(), offset, data & 0x01);
360
 
}
361
 
 
362
 
static WRITE8_HANDLER( snd_irq_w )
363
 
{
364
 
        m63_state *state = space->machine().driver_data<m63_state>();
365
 
        device_set_input_line(state->m_soundcpu, 0, ASSERT_LINE);
366
 
        space->machine().scheduler().synchronize();
367
 
}
368
 
 
369
 
static WRITE8_HANDLER( snddata_w )
370
 
{
371
 
        m63_state *state = space->machine().driver_data<m63_state>();
372
 
 
373
 
        if ((state->m_p2 & 0xf0) == 0xe0)
374
 
                ay8910_address_w(state->m_ay1, 0, offset);
375
 
        else if ((state->m_p2 & 0xf0) == 0xa0)
376
 
                ay8910_data_w(state->m_ay1, 0, offset);
377
 
        else if (state->m_ay2 != NULL && (state->m_p1 & 0xe0) == 0x60)
378
 
                ay8910_address_w(state->m_ay2, 0, offset);
379
 
        else if (state->m_ay2 != NULL && (state->m_p1 & 0xe0) == 0x40)
380
 
                 ay8910_data_w(state->m_ay2, 0, offset);
381
 
        else if ((state->m_p2 & 0xf0) == 0x70 )
382
 
                state->m_sound_status = offset;
383
 
}
384
 
 
385
 
static WRITE8_HANDLER( p1_w )
386
 
{
387
 
        m63_state *state = space->machine().driver_data<m63_state>();
388
 
        state->m_p1 = data;
389
 
}
390
 
 
391
 
static WRITE8_HANDLER( p2_w )
392
 
{
393
 
        m63_state *state = space->machine().driver_data<m63_state>();
394
 
 
395
 
        state->m_p2 = data;
396
 
        if((state->m_p2 & 0xf0) == 0x50)
 
373
WRITE8_MEMBER(m63_state::coin_w)
 
374
{
 
375
        coin_counter_w(machine(), offset, data & 0x01);
 
376
}
 
377
 
 
378
WRITE8_MEMBER(m63_state::snd_irq_w)
 
379
{
 
380
        device_set_input_line(m_soundcpu, 0, ASSERT_LINE);
 
381
        machine().scheduler().synchronize();
 
382
}
 
383
 
 
384
WRITE8_MEMBER(m63_state::snddata_w)
 
385
{
 
386
 
 
387
        if ((m_p2 & 0xf0) == 0xe0)
 
388
                ay8910_address_w(m_ay1, 0, offset);
 
389
        else if ((m_p2 & 0xf0) == 0xa0)
 
390
                ay8910_data_w(m_ay1, 0, offset);
 
391
        else if (m_ay2 != NULL && (m_p1 & 0xe0) == 0x60)
 
392
                ay8910_address_w(m_ay2, 0, offset);
 
393
        else if (m_ay2 != NULL && (m_p1 & 0xe0) == 0x40)
 
394
                 ay8910_data_w(m_ay2, 0, offset);
 
395
        else if ((m_p2 & 0xf0) == 0x70 )
 
396
                m_sound_status = offset;
 
397
}
 
398
 
 
399
WRITE8_MEMBER(m63_state::p1_w)
 
400
{
 
401
        m_p1 = data;
 
402
}
 
403
 
 
404
WRITE8_MEMBER(m63_state::p2_w)
 
405
{
 
406
 
 
407
        m_p2 = data;
 
408
        if((m_p2 & 0xf0) == 0x50)
397
409
        {
398
 
                device_set_input_line(state->m_soundcpu, 0, CLEAR_LINE);
 
410
                device_set_input_line(m_soundcpu, 0, CLEAR_LINE);
399
411
        }
400
412
}
401
413
 
402
 
static READ8_HANDLER( snd_status_r )
 
414
READ8_MEMBER(m63_state::snd_status_r)
403
415
{
404
 
        m63_state *state = space->machine().driver_data<m63_state>();
405
 
        return state->m_sound_status;
 
416
        return m_sound_status;
406
417
}
407
418
 
408
 
static READ8_HANDLER( irq_r )
 
419
READ8_MEMBER(m63_state::irq_r)
409
420
{
410
 
        m63_state *state = space->machine().driver_data<m63_state>();
411
421
 
412
 
        if (state->m_sound_irq)
 
422
        if (m_sound_irq)
413
423
        {
414
 
                state->m_sound_irq = 0;
 
424
                m_sound_irq = 0;
415
425
                return 1;
416
426
        }
417
427
        return 0;
418
428
}
419
429
 
420
 
static READ8_HANDLER( snddata_r )
 
430
READ8_MEMBER(m63_state::snddata_r)
421
431
{
422
 
        m63_state *state = space->machine().driver_data<m63_state>();
423
 
        switch (state->m_p2 & 0xf0)
 
432
        switch (m_p2 & 0xf0)
424
433
        {
425
 
                case 0x60:      return soundlatch_r(space, 0); ;
426
 
                case 0x70:      return space->machine().region("user1")->base()[((state->m_p1 & 0x1f) << 8) | offset];
 
434
                case 0x60:      return soundlatch_byte_r(space, 0); ;
 
435
                case 0x70:      return memregion("user1")->base()[((m_p1 & 0x1f) << 8) | offset];
427
436
        }
428
437
        return 0xff;
429
438
}
430
439
 
431
 
static WRITE8_HANDLER( fghtbskt_samples_w )
 
440
WRITE8_MEMBER(m63_state::fghtbskt_samples_w)
432
441
{
433
 
        m63_state *state = space->machine().driver_data<m63_state>();
434
442
 
435
443
        if (data & 1)
436
 
                sample_start_raw(state->m_samples, 0, state->m_samplebuf + ((data & 0xf0) << 8), 0x2000, 8000, 0);
 
444
                m_samples->start_raw(0, m_samplebuf + ((data & 0xf0) << 8), 0x2000, 8000);
437
445
}
438
446
 
439
 
static WRITE8_HANDLER( nmi_mask_w )
 
447
WRITE8_MEMBER(m63_state::nmi_mask_w)
440
448
{
441
 
        m63_state *state = space->machine().driver_data<m63_state>();
442
449
 
443
 
        state->m_nmi_mask = data & 1;
 
450
        m_nmi_mask = data & 1;
444
451
}
445
452
 
446
453
 
447
 
static ADDRESS_MAP_START( m63_map, AS_PROGRAM, 8 )
 
454
static ADDRESS_MAP_START( m63_map, AS_PROGRAM, 8, m63_state )
448
455
        AM_RANGE(0x0000, 0xbfff) AM_ROM
449
456
        AM_RANGE(0xd000, 0xdfff) AM_RAM
450
457
        AM_RANGE(0xe000, 0xe1ff) AM_RAM
451
 
        AM_RANGE(0xe200, 0xe2ff) AM_RAM AM_BASE_SIZE_MEMBER(m63_state, m_spriteram, m_spriteram_size)
452
 
        AM_RANGE(0xe300, 0xe3ff) AM_RAM AM_BASE_MEMBER(m63_state, m_scrollram)
453
 
        AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE(m63_videoram2_w) AM_BASE_MEMBER(m63_state, m_videoram2)
454
 
        AM_RANGE(0xe800, 0xebff) AM_RAM_WRITE(m63_videoram_w) AM_BASE_MEMBER(m63_state, m_videoram)
455
 
        AM_RANGE(0xec00, 0xefff) AM_RAM_WRITE(m63_colorram_w) AM_BASE_MEMBER(m63_state, m_colorram)
 
458
        AM_RANGE(0xe200, 0xe2ff) AM_RAM AM_SHARE("spriteram")
 
459
        AM_RANGE(0xe300, 0xe3ff) AM_RAM AM_SHARE("scrollram")
 
460
        AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE(m63_videoram2_w) AM_SHARE("videoram2")
 
461
        AM_RANGE(0xe800, 0xebff) AM_RAM_WRITE(m63_videoram_w) AM_SHARE("videoram")
 
462
        AM_RANGE(0xec00, 0xefff) AM_RAM_WRITE(m63_colorram_w) AM_SHARE("colorram")
456
463
        AM_RANGE(0xf000, 0xf000) AM_WRITE(nmi_mask_w)
457
464
        AM_RANGE(0xf002, 0xf002) AM_WRITE(m63_flipscreen_w)
458
465
        AM_RANGE(0xf003, 0xf003) AM_WRITE(m63_palbank_w)
459
466
        AM_RANGE(0xf006, 0xf007) AM_WRITE(coin_w)
460
 
        AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") AM_WRITE(soundlatch_w)
 
467
        AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") AM_WRITE(soundlatch_byte_w)
461
468
        AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITENOP /* continues game when in stop mode (cleared by NMI handler) */
462
469
        AM_RANGE(0xf802, 0xf802) AM_READ_PORT("DSW1")
463
470
        AM_RANGE(0xf803, 0xf803) AM_WRITE(snd_irq_w)
464
471
        AM_RANGE(0xf806, 0xf806) AM_READ_PORT("DSW2")
465
472
ADDRESS_MAP_END
466
473
 
467
 
static ADDRESS_MAP_START( fghtbskt_map, AS_PROGRAM, 8 )
 
474
static ADDRESS_MAP_START( fghtbskt_map, AS_PROGRAM, 8, m63_state )
468
475
        AM_RANGE(0x0000, 0x5fff) AM_ROM
469
476
        AM_RANGE(0x8000, 0xbfff) AM_ROM
470
477
        AM_RANGE(0xc000, 0xc7ff) AM_RAM
471
478
        AM_RANGE(0xd000, 0xd1ff) AM_RAM
472
 
        AM_RANGE(0xd200, 0xd2ff) AM_RAM AM_BASE_SIZE_MEMBER(m63_state, m_spriteram, m_spriteram_size)
473
 
        AM_RANGE(0xd300, 0xd3ff) AM_RAM AM_BASE_MEMBER(m63_state, m_scrollram)
474
 
        AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(m63_videoram2_w) AM_BASE_MEMBER(m63_state, m_videoram2)
475
 
        AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(m63_videoram_w) AM_BASE_MEMBER(m63_state, m_videoram)
476
 
        AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(m63_colorram_w) AM_BASE_MEMBER(m63_state, m_colorram)
 
479
        AM_RANGE(0xd200, 0xd2ff) AM_RAM AM_SHARE("spriteram")
 
480
        AM_RANGE(0xd300, 0xd3ff) AM_RAM AM_SHARE("scrollram")
 
481
        AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(m63_videoram2_w) AM_SHARE("videoram2")
 
482
        AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(m63_videoram_w) AM_SHARE("videoram")
 
483
        AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(m63_colorram_w) AM_SHARE("colorram")
477
484
        AM_RANGE(0xf000, 0xf000) AM_READ(snd_status_r)
478
485
        AM_RANGE(0xf001, 0xf001) AM_READ_PORT("P1")
479
486
        AM_RANGE(0xf002, 0xf002) AM_READ_PORT("P2")
480
487
        AM_RANGE(0xf003, 0xf003) AM_READ_PORT("DSW")
481
488
        AM_RANGE(0xf000, 0xf000) AM_WRITE(snd_irq_w)
482
489
        AM_RANGE(0xf001, 0xf001) AM_WRITENOP
483
 
        AM_RANGE(0xf002, 0xf002) AM_WRITE(soundlatch_w)
 
490
        AM_RANGE(0xf002, 0xf002) AM_WRITE(soundlatch_byte_w)
484
491
        AM_RANGE(0xf800, 0xf800) AM_WRITENOP
485
492
        AM_RANGE(0xf801, 0xf801) AM_WRITE(nmi_mask_w)
486
493
        AM_RANGE(0xf802, 0xf802) AM_WRITE(fghtbskt_flipscreen_w)
491
498
        AM_RANGE(0xf807, 0xf807) AM_WRITE(fghtbskt_samples_w)
492
499
ADDRESS_MAP_END
493
500
 
494
 
static ADDRESS_MAP_START( i8039_map, AS_PROGRAM, 8 )
 
501
static ADDRESS_MAP_START( i8039_map, AS_PROGRAM, 8, m63_state )
495
502
        AM_RANGE(0x0000, 0x0fff) AM_ROM
496
503
ADDRESS_MAP_END
497
504
 
498
505
 
499
 
static ADDRESS_MAP_START( i8039_port_map, AS_IO, 8 )
 
506
static ADDRESS_MAP_START( i8039_port_map, AS_IO, 8, m63_state )
500
507
        AM_RANGE(0x00, 0xff) AM_READWRITE(snddata_r, snddata_w)
501
508
        AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(p1_w)
502
509
        AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(p2_w)
537
544
        PORT_DIPSETTING(    0x04, "x1.2" )
538
545
        PORT_DIPSETTING(    0x08, "x1.4" )
539
546
        PORT_DIPSETTING(    0x0c, "x1.6" )
540
 
        PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )           PORT_DIPLOCATION("SW1:!5,!6") PORT_CONDITION("DSW1",0x04,PORTCOND_EQUALS,0x04) /* coin mode 2 */
 
547
        PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_A ) )           PORT_DIPLOCATION("SW1:!5,!6") PORT_CONDITION("DSW1",0x04,EQUALS,0x04) /* coin mode 2 */
541
548
        PORT_DIPSETTING(    0x20, DEF_STR( 3C_1C ) )
542
549
        PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
543
550
        PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
544
551
        PORT_DIPSETTING(    0x30, DEF_STR( Free_Play ) )        /* Not documented */
545
 
        PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )           PORT_DIPLOCATION("SW1:!7,!8") PORT_CONDITION("DSW1",0x04,PORTCOND_EQUALS,0x04) /* coin mode 2 */
 
552
        PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) )           PORT_DIPLOCATION("SW1:!7,!8") PORT_CONDITION("DSW1",0x04,EQUALS,0x04) /* coin mode 2 */
546
553
        PORT_DIPSETTING(    0x00, DEF_STR( 1C_2C ) )
547
554
        PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
548
555
        PORT_DIPSETTING(    0x80, DEF_STR( 1C_5C ) )
549
556
        PORT_DIPSETTING(    0xc0, DEF_STR( 1C_6C ) )
550
 
        PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coinage ) )          PORT_DIPLOCATION("SW1:!5,!6,!7,!8") PORT_CONDITION("DSW1",0x04,PORTCOND_EQUALS,0x00) /* coin mode 1 */
 
557
        PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coinage ) )          PORT_DIPLOCATION("SW1:!5,!6,!7,!8") PORT_CONDITION("DSW1",0x04,EQUALS,0x00) /* coin mode 1 */
551
558
        PORT_DIPSETTING(    0x60, DEF_STR( 7C_1C ) )
552
559
        PORT_DIPSETTING(    0x50, DEF_STR( 6C_1C ) )
553
560
        PORT_DIPSETTING(    0x40, DEF_STR( 5C_1C ) )
687
694
 
688
695
static SAMPLES_START( fghtbskt_sh_start )
689
696
{
690
 
        running_machine &machine = device->machine();
 
697
        running_machine &machine = device.machine();
691
698
        m63_state *state = machine.driver_data<m63_state>();
692
 
        int i, len = machine.region("samples")->bytes();
693
 
        UINT8 *ROM = machine.region("samples")->base();
 
699
        int i, len = state->memregion("samples")->bytes();
 
700
        UINT8 *ROM = state->memregion("samples")->base();
694
701
 
695
702
        state->m_samplebuf = auto_alloc_array(machine, INT16, len);
696
703
        state->save_pointer(NAME(state->m_samplebuf), len);
719
726
        state->m_soundcpu = machine.device("soundcpu");
720
727
        state->m_ay1 = machine.device("ay1");
721
728
        state->m_ay2 = machine.device("ay2");
722
 
        state->m_samples = machine.device("samples");
 
729
        state->m_samples = machine.device<samples_device>("samples");
723
730
 
724
731
        state->save_item(NAME(state->m_pal_bank));
725
732
        state->save_item(NAME(state->m_fg_flag));
832
839
        MCFG_SOUND_ADD("ay1", AY8910, XTAL_12MHz/8)
833
840
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
834
841
 
835
 
        MCFG_SOUND_ADD("samples", SAMPLES, 0)
836
 
        MCFG_SOUND_CONFIG(fghtbskt_samples_interface)
 
842
        MCFG_SAMPLES_ADD("samples", fghtbskt_samples_interface)
837
843
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
838
844
MACHINE_CONFIG_END
839
845