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

« back to all changes in this revision

Viewing changes to src/mame/drivers/segahang.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:
180
180
                case 0x1000/2: /* Input ports and DIP switches */
181
181
                {
182
182
                        static const char *const sysports[] = { "SERVICE", "COINAGE", "DSW", "UNKNOWN" };
183
 
                        return input_port_read(space->machine(), sysports[offset & 3]);
 
183
                        return space->machine().root_device().ioport(sysports[offset & 3])->read();
184
184
                }
185
185
 
186
186
                case 0x3000/2: /* PPI @ 4C */
189
189
                case 0x3020/2: /* ADC0804 data output */
190
190
                {
191
191
                        static const char *const adcports[] = { "ADC0", "ADC1", "ADC2", "ADC3" };
192
 
                        return input_port_read_safe(space->machine(), adcports[state->m_adc_select], 0);
 
192
                        return state->ioport(adcports[state->m_adc_select])->read_safe(0);
193
193
                }
194
194
        }
195
195
 
235
235
                case 0x0010/2: /* Input ports and DIP switches */
236
236
                {
237
237
                        static const char *const sysports[] = { "SERVICE", "UNKNOWN", "COINAGE", "DSW" };
238
 
                        return input_port_read(space->machine(), sysports[offset & 3]);
 
238
                        return space->machine().root_device().ioport(sysports[offset & 3])->read();
239
239
                }
240
240
 
241
241
                case 0x0020/2: /* PPI @ 4C */
245
245
                case 0x0030/2: /* ADC0804 data output */
246
246
                {
247
247
                        static const char *const adcports[] = { "ADC0", "ADC1", "ADC2", "ADC3" };
248
 
                        return input_port_read_safe(space->machine(), adcports[state->m_adc_select], 0);
 
248
                        return state->ioport(adcports[state->m_adc_select])->read_safe(0);
249
249
                }
250
250
        }
251
251
 
290
290
{
291
291
        segas1x_state *state = device->machine().driver_data<segas1x_state>();
292
292
        address_space *space = state->m_maincpu->memory().space(AS_PROGRAM);
293
 
        soundlatch_w(space, offset, data);
 
293
        state->soundlatch_byte_w(*space, offset, data);
294
294
}
295
295
 
296
296
 
393
393
 
394
394
static void sharrier_i8751_sim(running_machine &machine)
395
395
{
396
 
        workram[0x492/2] = (input_port_read(machine, "ADC0") << 8) | input_port_read(machine, "ADC1");
 
396
        workram[0x492/2] = (machine.root_device().ioport("ADC0")->read() << 8) | machine.root_device().ioport("ADC1")->read();
397
397
}
398
398
 
399
399
 
417
417
 
418
418
        /* assert ACK */
419
419
        ppi8255_set_port_c(state->m_ppi8255_1, 0x00);
420
 
        return soundlatch_r(space, offset);
 
420
        return state->soundlatch_byte_r(*space, offset);
421
421
}
422
422
 
423
423
 
428
428
 *
429
429
 *************************************/
430
430
 
431
 
static ADDRESS_MAP_START( hangon_map, AS_PROGRAM, 16 )
 
431
static ADDRESS_MAP_START( hangon_map, AS_PROGRAM, 16, segas1x_state )
432
432
        ADDRESS_MAP_UNMAP_HIGH
433
433
        AM_RANGE(0x000000, 0x03ffff) AM_ROM
434
434
        AM_RANGE(0x20c000, 0x20ffff) AM_RAM
435
 
        AM_RANGE(0x400000, 0x403fff) AM_RAM_WRITE(segaic16_tileram_0_w) AM_BASE(&segaic16_tileram_0)
436
 
        AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(segaic16_textram_0_w) AM_BASE(&segaic16_textram_0)
437
 
        AM_RANGE(0x600000, 0x6007ff) AM_RAM AM_BASE(&segaic16_spriteram_0)
438
 
        AM_RANGE(0xa00000, 0xa00fff) AM_RAM_WRITE(segaic16_paletteram_w) AM_BASE(&segaic16_paletteram)
 
435
        AM_RANGE(0x400000, 0x403fff) AM_RAM_WRITE_LEGACY(segaic16_tileram_0_w) AM_BASE_LEGACY(&segaic16_tileram_0)
 
436
        AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(segaic16_textram_0_w) AM_BASE_LEGACY(&segaic16_textram_0)
 
437
        AM_RANGE(0x600000, 0x6007ff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
 
438
        AM_RANGE(0xa00000, 0xa00fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
439
439
        AM_RANGE(0xc00000, 0xc3ffff) AM_ROM AM_REGION("sub", 0)
440
 
        AM_RANGE(0xc68000, 0xc68fff) AM_RAM AM_SHARE("share1") AM_BASE(&segaic16_roadram_0)
 
440
        AM_RANGE(0xc68000, 0xc68fff) AM_RAM AM_SHARE("share1") AM_BASE_LEGACY(&segaic16_roadram_0)
441
441
        AM_RANGE(0xc7c000, 0xc7ffff) AM_RAM AM_SHARE("share2")
442
 
        AM_RANGE(0xe00000, 0xffffff) AM_READWRITE(hangon_io_r, hangon_io_w)
 
442
        AM_RANGE(0xe00000, 0xffffff) AM_READWRITE_LEGACY(hangon_io_r, hangon_io_w)
443
443
ADDRESS_MAP_END
444
444
 
445
 
static ADDRESS_MAP_START( sharrier_map, AS_PROGRAM, 16 )
 
445
static ADDRESS_MAP_START( sharrier_map, AS_PROGRAM, 16, segas1x_state )
446
446
        ADDRESS_MAP_UNMAP_HIGH
447
447
        AM_RANGE(0x000000, 0x03ffff) AM_ROM
448
 
        AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE(&workram)
449
 
        AM_RANGE(0x100000, 0x107fff) AM_RAM_WRITE(segaic16_tileram_0_w) AM_BASE(&segaic16_tileram_0)
450
 
        AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(segaic16_textram_0_w) AM_BASE(&segaic16_textram_0)
451
 
        AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(segaic16_paletteram_w) AM_BASE(&segaic16_paletteram)
 
448
        AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE_LEGACY(&workram)
 
449
        AM_RANGE(0x100000, 0x107fff) AM_RAM_WRITE_LEGACY(segaic16_tileram_0_w) AM_BASE_LEGACY(&segaic16_tileram_0)
 
450
        AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE_LEGACY(segaic16_textram_0_w) AM_BASE_LEGACY(&segaic16_textram_0)
 
451
        AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
452
452
        AM_RANGE(0x124000, 0x127fff) AM_RAM AM_SHARE("share2")
453
 
        AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE(&segaic16_spriteram_0)
454
 
        AM_RANGE(0x140000, 0x14ffff) AM_READWRITE(sharrier_io_r, sharrier_io_w)
455
 
        AM_RANGE(0xc68000, 0xc68fff) AM_RAM AM_SHARE("share1") AM_BASE(&segaic16_roadram_0)
 
453
        AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
 
454
        AM_RANGE(0x140000, 0x14ffff) AM_READWRITE_LEGACY(sharrier_io_r, sharrier_io_w)
 
455
        AM_RANGE(0xc68000, 0xc68fff) AM_RAM AM_SHARE("share1") AM_BASE_LEGACY(&segaic16_roadram_0)
456
456
ADDRESS_MAP_END
457
457
 
458
458
 
464
464
 *************************************/
465
465
 
466
466
 /* On Super Hang On there is a memory mapper, like the System16 one, todo: emulate it! */
467
 
static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16 )
 
467
static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, segas1x_state )
468
468
        ADDRESS_MAP_UNMAP_HIGH
469
469
        ADDRESS_MAP_GLOBAL_MASK(0x7ffff)
470
470
        AM_RANGE(0x000000, 0x03ffff) AM_ROM
480
480
 *
481
481
 *************************************/
482
482
 
483
 
static ADDRESS_MAP_START( sound_map_2203, AS_PROGRAM, 8 )
 
483
static ADDRESS_MAP_START( sound_map_2203, AS_PROGRAM, 8, segas1x_state )
484
484
        ADDRESS_MAP_UNMAP_HIGH
485
485
        AM_RANGE(0x0000, 0x7fff) AM_ROM
486
486
        AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x0800) AM_RAM
487
 
        AM_RANGE(0xd000, 0xd001) AM_MIRROR(0x0ffe) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
488
 
        AM_RANGE(0xe000, 0xe0ff) AM_MIRROR(0x0f00) AM_DEVREADWRITE("pcm", sega_pcm_r, sega_pcm_w)
 
487
        AM_RANGE(0xd000, 0xd001) AM_MIRROR(0x0ffe) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
 
488
        AM_RANGE(0xe000, 0xe0ff) AM_MIRROR(0x0f00) AM_DEVREADWRITE_LEGACY("pcm", sega_pcm_r, sega_pcm_w)
489
489
ADDRESS_MAP_END
490
490
 
491
 
static ADDRESS_MAP_START( sound_portmap_2203, AS_IO, 8 )
 
491
static ADDRESS_MAP_START( sound_portmap_2203, AS_IO, 8, segas1x_state )
492
492
        ADDRESS_MAP_UNMAP_HIGH
493
493
        ADDRESS_MAP_GLOBAL_MASK(0xff)
494
 
        AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
 
494
        AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ_LEGACY(sound_data_r)
495
495
ADDRESS_MAP_END
496
496
 
497
497
 
498
 
static ADDRESS_MAP_START( sound_map_2151, AS_PROGRAM, 8 )
 
498
static ADDRESS_MAP_START( sound_map_2151, AS_PROGRAM, 8, segas1x_state )
499
499
        ADDRESS_MAP_UNMAP_HIGH
500
500
        AM_RANGE(0x0000, 0x7fff) AM_ROM
501
 
        AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x700) AM_DEVREADWRITE("pcm", sega_pcm_r, sega_pcm_w)
 
501
        AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x700) AM_DEVREADWRITE_LEGACY("pcm", sega_pcm_r, sega_pcm_w)
502
502
        AM_RANGE(0xf800, 0xffff) AM_RAM
503
503
ADDRESS_MAP_END
504
504
 
505
 
static ADDRESS_MAP_START( sound_portmap_2151, AS_IO, 8 )
 
505
static ADDRESS_MAP_START( sound_portmap_2151, AS_IO, 8, segas1x_state )
506
506
        ADDRESS_MAP_UNMAP_HIGH
507
507
        ADDRESS_MAP_GLOBAL_MASK(0xff)
508
 
        AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
509
 
        AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
 
508
        AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
 
509
        AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ_LEGACY(sound_data_r)
510
510
ADDRESS_MAP_END
511
511
 
512
 
static ADDRESS_MAP_START( sound_portmap_2203x2, AS_IO, 8 )
 
512
static ADDRESS_MAP_START( sound_portmap_2203x2, AS_IO, 8, segas1x_state )
513
513
        ADDRESS_MAP_UNMAP_HIGH
514
514
        ADDRESS_MAP_GLOBAL_MASK(0xff)
515
 
        AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
516
 
        AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
517
 
        AM_RANGE(0xc0, 0xc1) AM_MIRROR(0x3e) AM_DEVREADWRITE("ym2", ym2203_r, ym2203_w)
 
515
        AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
 
516
        AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ_LEGACY(sound_data_r)
 
517
        AM_RANGE(0xc0, 0xc1) AM_MIRROR(0x3e) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r, ym2203_w)
518
518
ADDRESS_MAP_END
519
519
 
520
520
 
525
525
 *
526
526
 *************************************/
527
527
 
528
 
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8 )
 
528
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, segas1x_state )
529
529
ADDRESS_MAP_END
530
530
 
531
531
 
778
778
 
779
779
static const ym2151_interface ym2151_config =
780
780
{
781
 
        sound_irq
 
781
        DEVCB_LINE(sound_irq)
782
782
};
783
783
 
784
784
 
1762
1762
static DRIVER_INIT( endurobl )
1763
1763
{
1764
1764
        address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
1765
 
        UINT16 *rom = (UINT16 *)machine.region("maincpu")->base();
 
1765
        UINT16 *rom = (UINT16 *)machine.root_device().memregion("maincpu")->base();
1766
1766
        UINT16 *decrypt = auto_alloc_array(machine, UINT16, 0x40000/2);
1767
1767
 
1768
1768
        hangon_generic_init(machine);
1776
1776
static DRIVER_INIT( endurob2 )
1777
1777
{
1778
1778
        address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
1779
 
        UINT16 *rom = (UINT16 *)machine.region("maincpu")->base();
 
1779
        UINT16 *rom = (UINT16 *)machine.root_device().memregion("maincpu")->base();
1780
1780
        UINT16 *decrypt = auto_alloc_array(machine, UINT16, 0x40000/2);
1781
1781
 
1782
1782
        hangon_generic_init(machine);