~ubuntu-branches/debian/wheezy/mame/wheezy

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Jordi Mallach, Emmanuel Kasper, Félix Arreola Rodríguez, Jordi Mallach
  • Date: 2011-05-11 21:06:50 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20110511210650-jizvh8a6x117y9hr
Tags: 0.142-1
[ Emmanuel Kasper ]
* New upstream release
* Set NOWERROR=1 to allow compiling with gcc-4.6
* Remove fix_powerpc_build.patch, as upstream has taken it in this release
* Add gnome-video-arcade front end as a suggested package

[ Félix Arreola Rodríguez ]
* Add kfreebsd-build.patch to quilt series, to fix build on kfreebsd

[ Jordi Mallach ]
* Remove unneeded and bogus addition of --with-quilt to the dh invocation.
* Add Cesare Falco (long time Ubuntu maintainer) to Uploaders, and wrap
  them into multiple lines.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
static WRITE8_HANDLER( video_interrupt_w )
25
25
{
26
 
        kingofb_state *state = space->machine->driver_data<kingofb_state>();
27
 
        cpu_set_input_line_and_vector(state->video_cpu, 0, HOLD_LINE, 0xff);
 
26
        kingofb_state *state = space->machine().driver_data<kingofb_state>();
 
27
        device_set_input_line_and_vector(state->m_video_cpu, 0, HOLD_LINE, 0xff);
28
28
}
29
29
 
30
30
static WRITE8_HANDLER( sprite_interrupt_w )
31
31
{
32
 
        kingofb_state *state = space->machine->driver_data<kingofb_state>();
33
 
        cpu_set_input_line_and_vector(state->sprite_cpu, 0, HOLD_LINE, 0xff);
 
32
        kingofb_state *state = space->machine().driver_data<kingofb_state>();
 
33
        device_set_input_line_and_vector(state->m_sprite_cpu, 0, HOLD_LINE, 0xff);
34
34
}
35
35
 
36
36
static WRITE8_HANDLER( scroll_interrupt_w )
37
37
{
38
 
        kingofb_state *state = space->machine->driver_data<kingofb_state>();
 
38
        kingofb_state *state = space->machine().driver_data<kingofb_state>();
39
39
        sprite_interrupt_w(space, offset, data);
40
 
        *state->scroll_y = data;
 
40
        *state->m_scroll_y = data;
41
41
}
42
42
 
43
43
static WRITE8_HANDLER( sound_command_w )
44
44
{
45
 
        kingofb_state *state = space->machine->driver_data<kingofb_state>();
 
45
        kingofb_state *state = space->machine().driver_data<kingofb_state>();
46
46
        soundlatch_w(space, 0, data);
47
 
        cpu_set_input_line_and_vector(state->audio_cpu, 0, HOLD_LINE, 0xff);
 
47
        device_set_input_line_and_vector(state->m_audio_cpu, 0, HOLD_LINE, 0xff);
48
48
}
49
49
 
50
50
 
51
 
static ADDRESS_MAP_START( kingobox_map, ADDRESS_SPACE_PROGRAM, 8 )
 
51
static ADDRESS_MAP_START( kingobox_map, AS_PROGRAM, 8 )
52
52
        AM_RANGE(0x0000, 0xbfff) AM_ROM
53
53
        AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
54
54
        AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */
56
56
        AM_RANGE(0xf000, 0xf7ff) AM_RAM /* ???? */
57
57
        AM_RANGE(0xf800, 0xf800) AM_WRITE(kingofb_f800_w)       /* NMI enable, palette bank */
58
58
        AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* ???? */
59
 
        AM_RANGE(0xf802, 0xf802) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, scroll_y)
 
59
        AM_RANGE(0xf802, 0xf802) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, m_scroll_y)
60
60
        AM_RANGE(0xf803, 0xf803) AM_WRITE(scroll_interrupt_w)
61
61
        AM_RANGE(0xf804, 0xf804) AM_WRITE(video_interrupt_w)
62
62
        AM_RANGE(0xf807, 0xf807) AM_WRITE(sound_command_w) /* sound latch */
68
68
        AM_RANGE(0xfc05, 0xfc05) AM_READ_PORT("EXTRA")
69
69
ADDRESS_MAP_END
70
70
 
71
 
static ADDRESS_MAP_START( kingobox_video_map, ADDRESS_SPACE_PROGRAM, 8 )
 
71
static ADDRESS_MAP_START( kingobox_video_map, AS_PROGRAM, 8 )
72
72
        AM_RANGE(0x0000, 0x3fff) AM_ROM
73
73
        AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
74
74
        AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1") /* shared with main */
75
 
        AM_RANGE(0xc000, 0xc0ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, videoram) /* background vram */
76
 
        AM_RANGE(0xc400, 0xc4ff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, colorram) /* background colorram */
77
 
        AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, videoram2) /* foreground vram */
78
 
        AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, colorram2) /* foreground colorram */
 
75
        AM_RANGE(0xc000, 0xc0ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, m_videoram) /* background vram */
 
76
        AM_RANGE(0xc400, 0xc4ff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, m_colorram) /* background colorram */
 
77
        AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, m_videoram2) /* foreground vram */
 
78
        AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, m_colorram2) /* foreground colorram */
79
79
ADDRESS_MAP_END
80
80
 
81
 
static ADDRESS_MAP_START( kingobox_sprite_map, ADDRESS_SPACE_PROGRAM, 8 )
 
81
static ADDRESS_MAP_START( kingobox_sprite_map, AS_PROGRAM, 8 )
82
82
        AM_RANGE(0x0000, 0x1fff) AM_ROM
83
83
        AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
84
84
        AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share2") /* shared with main */
85
 
        AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, spriteram, spriteram_size) /* sprite ram */
 
85
        AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, m_spriteram, m_spriteram_size) /* sprite ram */
86
86
        AM_RANGE(0xc400, 0xc43f) AM_RAM  /* something related to scroll? */
87
87
ADDRESS_MAP_END
88
88
 
89
 
static ADDRESS_MAP_START( kingobox_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
 
89
static ADDRESS_MAP_START( kingobox_sound_map, AS_PROGRAM, 8 )
90
90
        AM_RANGE(0x0000, 0xbfff) AM_ROM
91
91
        AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* ??? */
92
92
        AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
93
93
ADDRESS_MAP_END
94
94
 
95
 
static ADDRESS_MAP_START( kingobox_sound_io_map, ADDRESS_SPACE_IO, 8 )
 
95
static ADDRESS_MAP_START( kingobox_sound_io_map, AS_IO, 8 )
96
96
        ADDRESS_MAP_GLOBAL_MASK(0xff)
97
97
        AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_w)
98
98
        AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_data_w)
100
100
ADDRESS_MAP_END
101
101
 
102
102
/* Ring King */
103
 
static ADDRESS_MAP_START( ringking_map, ADDRESS_SPACE_PROGRAM, 8 )
 
103
static ADDRESS_MAP_START( ringking_map, AS_PROGRAM, 8 )
104
104
        AM_RANGE(0x0000, 0xbfff) AM_ROM
105
105
        AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */
106
106
        AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */
115
115
        AM_RANGE(0xe003, 0xe003) AM_READ_PORT("P2")
116
116
        AM_RANGE(0xe004, 0xe004) AM_READ_PORT("SYSTEM")
117
117
        AM_RANGE(0xe005, 0xe005) AM_READ_PORT("EXTRA")
118
 
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, scroll_y)
 
118
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(kingofb_state, m_scroll_y)
119
119
        AM_RANGE(0xf000, 0xf7ff) AM_RAM /* ???? */
120
120
ADDRESS_MAP_END
121
121
 
122
 
static ADDRESS_MAP_START( ringking_video_map, ADDRESS_SPACE_PROGRAM, 8 )
 
122
static ADDRESS_MAP_START( ringking_video_map, AS_PROGRAM, 8 )
123
123
        AM_RANGE(0x0000, 0x3fff) AM_ROM
124
124
        AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
125
125
        AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1") /* shared with main */
126
 
        AM_RANGE(0xa800, 0xa8ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, videoram) /* background vram */
127
 
        AM_RANGE(0xac00, 0xacff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, colorram) /* background colorram */
128
 
        AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, videoram2) /* foreground vram */
129
 
        AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, colorram2) /* foreground colorram */
 
126
        AM_RANGE(0xa800, 0xa8ff) AM_RAM_WRITE(kingofb_videoram_w) AM_BASE_MEMBER(kingofb_state, m_videoram) /* background vram */
 
127
        AM_RANGE(0xac00, 0xacff) AM_RAM_WRITE(kingofb_colorram_w) AM_BASE_MEMBER(kingofb_state, m_colorram) /* background colorram */
 
128
        AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(kingofb_videoram2_w) AM_BASE_MEMBER(kingofb_state, m_videoram2) /* foreground vram */
 
129
        AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(kingofb_colorram2_w) AM_BASE_MEMBER(kingofb_state, m_colorram2) /* foreground colorram */
130
130
ADDRESS_MAP_END
131
131
 
132
 
static ADDRESS_MAP_START( ringking_sprite_map, ADDRESS_SPACE_PROGRAM, 8 )
 
132
static ADDRESS_MAP_START( ringking_sprite_map, AS_PROGRAM, 8 )
133
133
        AM_RANGE(0x0000, 0x1fff) AM_ROM
134
134
        AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */
135
135
        AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with main */
136
 
        AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, spriteram, spriteram_size) /* sprite ram */
 
136
        AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_BASE_SIZE_MEMBER(kingofb_state, m_spriteram, m_spriteram_size) /* sprite ram */
137
137
        AM_RANGE(0xa400, 0xa43f) AM_RAM /* something related to scroll? */
138
138
ADDRESS_MAP_END
139
139
 
140
 
static ADDRESS_MAP_START( ringking_sound_io_map, ADDRESS_SPACE_IO, 8 )
 
140
static ADDRESS_MAP_START( ringking_sound_io_map, AS_IO, 8 )
141
141
        ADDRESS_MAP_GLOBAL_MASK(0xff)
142
142
        AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_w)
143
143
        AM_RANGE(0x02, 0x02) AM_DEVREAD("aysnd", ay8910_r)
448
448
 
449
449
static INTERRUPT_GEN( kingofb_interrupt )
450
450
{
451
 
        kingofb_state *state = device->machine->driver_data<kingofb_state>();
 
451
        kingofb_state *state = device->machine().driver_data<kingofb_state>();
452
452
 
453
 
        if (state->nmi_enable)
454
 
                cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
 
453
        if (state->m_nmi_enable)
 
454
                device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
455
455
}
456
456
 
457
457
static MACHINE_START( kingofb )
458
458
{
459
 
        kingofb_state *state = machine->driver_data<kingofb_state>();
460
 
 
461
 
        state->video_cpu = machine->device("video");
462
 
        state->sprite_cpu = machine->device("sprite");
463
 
        state->audio_cpu = machine->device("audiocpu");
464
 
 
465
 
        state_save_register_global(machine, state->nmi_enable);
466
 
        state_save_register_global(machine, state->palette_bank);
 
459
        kingofb_state *state = machine.driver_data<kingofb_state>();
 
460
 
 
461
        state->m_video_cpu = machine.device("video");
 
462
        state->m_sprite_cpu = machine.device("sprite");
 
463
        state->m_audio_cpu = machine.device("audiocpu");
 
464
 
 
465
        state->save_item(NAME(state->m_nmi_enable));
 
466
        state->save_item(NAME(state->m_palette_bank));
467
467
}
468
468
 
469
469
static MACHINE_RESET( kingofb )
470
470
{
471
 
        kingofb_state *state = machine->driver_data<kingofb_state>();
 
471
        kingofb_state *state = machine.driver_data<kingofb_state>();
472
472
 
473
 
        state->nmi_enable = 0;
474
 
        state->palette_bank = 0;
 
473
        state->m_nmi_enable = 0;
 
474
        state->m_palette_bank = 0;
475
475
}
476
476
 
477
477
static MACHINE_CONFIG_START( kingofb, kingofb_state )
494
494
        MCFG_CPU_IO_MAP(kingobox_sound_io_map)
495
495
        MCFG_CPU_PERIODIC_INT(nmi_line_pulse, 6000)     /* Hz */
496
496
 
497
 
        MCFG_QUANTUM_TIME(HZ(6000)) /* We really need heavy synching among the processors */
 
497
        MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* We really need heavy synching among the processors */
498
498
 
499
499
        MCFG_MACHINE_START(kingofb)
500
500
        MCFG_MACHINE_RESET(kingofb)
506
506
        MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
507
507
        MCFG_SCREEN_SIZE(32*8, 32*8)
508
508
        MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
 
509
        MCFG_SCREEN_UPDATE(kingofb)
509
510
 
510
511
        MCFG_GFXDECODE(kingobox)
511
512
        MCFG_PALETTE_LENGTH(256+8*2)
512
513
 
513
514
        MCFG_PALETTE_INIT(kingofb)
514
515
        MCFG_VIDEO_START(kingofb)
515
 
        MCFG_VIDEO_UPDATE(kingofb)
516
516
 
517
517
        /* sound hardware */
518
518
        MCFG_SPEAKER_STANDARD_MONO("mono")
547
547
        MCFG_CPU_IO_MAP(ringking_sound_io_map)
548
548
        MCFG_CPU_PERIODIC_INT(nmi_line_pulse, 6000)     /* Hz */
549
549
 
550
 
        MCFG_QUANTUM_TIME(HZ(6000)) /* We really need heavy synching among the processors */
 
550
        MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* We really need heavy synching among the processors */
551
551
 
552
552
        MCFG_MACHINE_START(kingofb)
553
553
        MCFG_MACHINE_RESET(kingofb)
559
559
        MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
560
560
        MCFG_SCREEN_SIZE(32*8, 32*8)
561
561
        MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
 
562
        MCFG_SCREEN_UPDATE(ringking)
562
563
 
563
564
        MCFG_GFXDECODE(rk)
564
565
        MCFG_PALETTE_LENGTH(256+8*2)
565
566
 
566
567
        MCFG_PALETTE_INIT(ringking)
567
568
        MCFG_VIDEO_START(ringking)
568
 
        MCFG_VIDEO_UPDATE(ringking)
569
569
 
570
570
        /* sound hardware */
571
571
        MCFG_SPEAKER_STANDARD_MONO("mono")
794
794
static DRIVER_INIT( ringking3 )
795
795
{
796
796
        int i;
797
 
        UINT8 *RAM = machine->region("proms")->base();
 
797
        UINT8 *RAM = machine.region("proms")->base();
798
798
 
799
799
        /* expand the first color PROM to look like the kingofb ones... */
800
800
        for (i = 0; i < 0x100; i++)
804
804
static DRIVER_INIT( ringkingw )
805
805
{
806
806
        int i,j,k;
807
 
        UINT8 *PROMS = machine->region("proms")->base();
808
 
        UINT8 *USER1 = machine->region("user1")->base();
 
807
        UINT8 *PROMS = machine.region("proms")->base();
 
808
        UINT8 *USER1 = machine.region("user1")->base();
809
809
 
810
810
        /* change the PROMs encode in a simple format to use kingofb decode */
811
811
        for(i = 0, j = 0; j < 0x40; i++, j++)