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

« back to all changes in this revision

Viewing changes to src/mame/drivers/rollerg.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:
22
22
/* prototypes */
23
23
static KONAMI_SETLINES_CALLBACK( rollerg_banking );
24
24
 
25
 
static WRITE8_HANDLER( rollerg_0010_w )
 
25
WRITE8_MEMBER(rollerg_state::rollerg_0010_w)
26
26
{
27
 
        rollerg_state *state = space->machine().driver_data<rollerg_state>();
28
 
        logerror("%04x: write %02x to 0010\n",cpu_get_pc(&space->device()), data);
 
27
        logerror("%04x: write %02x to 0010\n",cpu_get_pc(&space.device()), data);
29
28
 
30
29
        /* bits 0/1 are coin counters */
31
 
        coin_counter_w(space->machine(), 0, data & 0x01);
32
 
        coin_counter_w(space->machine(), 1, data & 0x02);
 
30
        coin_counter_w(machine(), 0, data & 0x01);
 
31
        coin_counter_w(machine(), 1, data & 0x02);
33
32
 
34
33
        /* bit 2 enables 051316 ROM reading */
35
 
        state->m_readzoomroms = data & 0x04;
 
34
        m_readzoomroms = data & 0x04;
36
35
 
37
36
        /* bit 5 enables 051316 wraparound */
38
 
        k051316_wraparound_enable(state->m_k051316, data & 0x20);
 
37
        k051316_wraparound_enable(m_k051316, data & 0x20);
39
38
 
40
39
        /* other bits unknown */
41
40
}
42
41
 
43
 
static READ8_HANDLER( rollerg_k051316_r )
 
42
READ8_MEMBER(rollerg_state::rollerg_k051316_r)
44
43
{
45
 
        rollerg_state *state = space->machine().driver_data<rollerg_state>();
46
44
 
47
 
        if (state->m_readzoomroms)
48
 
                return k051316_rom_r(state->m_k051316, offset);
 
45
        if (m_readzoomroms)
 
46
                return k051316_rom_r(m_k051316, offset);
49
47
        else
50
 
                return k051316_r(state->m_k051316, offset);
 
48
                return k051316_r(m_k051316, offset);
51
49
}
52
50
 
53
51
static READ8_DEVICE_HANDLER( rollerg_sound_r )
57
55
        return k053260_r(device, 2 + offset);
58
56
}
59
57
 
60
 
static WRITE8_HANDLER( soundirq_w )
 
58
WRITE8_MEMBER(rollerg_state::soundirq_w)
61
59
{
62
 
        rollerg_state *state = space->machine().driver_data<rollerg_state>();
63
 
        device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
 
60
        device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
64
61
}
65
62
 
66
63
static TIMER_CALLBACK( nmi_callback )
69
66
        device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
70
67
}
71
68
 
72
 
static WRITE8_HANDLER( sound_arm_nmi_w )
 
69
WRITE8_MEMBER(rollerg_state::sound_arm_nmi_w)
73
70
{
74
 
        rollerg_state *state = space->machine().driver_data<rollerg_state>();
75
 
        device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
76
 
        space->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback));    /* kludge until the K053260 is emulated correctly */
 
71
        device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
 
72
        machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback));   /* kludge until the K053260 is emulated correctly */
77
73
}
78
74
 
79
 
static READ8_HANDLER( pip_r )
 
75
READ8_MEMBER(rollerg_state::pip_r)
80
76
{
81
77
        return 0x7f;
82
78
}
83
79
 
84
 
static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8 )
 
80
static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8, rollerg_state )
85
81
        AM_RANGE(0x0010, 0x0010) AM_WRITE(rollerg_0010_w)
86
82
        AM_RANGE(0x0020, 0x0020) AM_READWRITE(watchdog_reset_r,watchdog_reset_w)
87
 
        AM_RANGE(0x0030, 0x0031) AM_DEVREADWRITE("k053260", rollerg_sound_r, k053260_w) /* K053260 */
 
83
        AM_RANGE(0x0030, 0x0031) AM_DEVREADWRITE_LEGACY("k053260", rollerg_sound_r, k053260_w)  /* K053260 */
88
84
        AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w)
89
85
        AM_RANGE(0x0050, 0x0050) AM_READ_PORT("P1")
90
86
        AM_RANGE(0x0051, 0x0051) AM_READ_PORT("P2")
92
88
        AM_RANGE(0x0053, 0x0053) AM_READ_PORT("DSW1")
93
89
        AM_RANGE(0x0060, 0x0060) AM_READ_PORT("DSW2")
94
90
        AM_RANGE(0x0061, 0x0061) AM_READ(pip_r)                         /* ????? */
95
 
        AM_RANGE(0x0100, 0x010f) AM_DEVREADWRITE("k053252",k053252_r,k053252_w)         /* 053252? */
96
 
        AM_RANGE(0x0200, 0x020f) AM_DEVWRITE("k051316", k051316_ctrl_w)
97
 
        AM_RANGE(0x0300, 0x030f) AM_DEVREADWRITE("k053244", k053244_r, k053244_w)
98
 
        AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_k051316_r) AM_DEVWRITE("k051316", k051316_w)
99
 
        AM_RANGE(0x1000, 0x17ff) AM_DEVREADWRITE("k053244", k053245_r, k053245_w)
100
 
        AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE_GENERIC(paletteram)
 
91
        AM_RANGE(0x0100, 0x010f) AM_DEVREADWRITE_LEGACY("k053252",k053252_r,k053252_w)          /* 053252? */
 
92
        AM_RANGE(0x0200, 0x020f) AM_DEVWRITE_LEGACY("k051316", k051316_ctrl_w)
 
93
        AM_RANGE(0x0300, 0x030f) AM_DEVREADWRITE_LEGACY("k053244", k053244_r, k053244_w)
 
94
        AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_k051316_r) AM_DEVWRITE_LEGACY("k051316", k051316_w)
 
95
        AM_RANGE(0x1000, 0x17ff) AM_DEVREADWRITE_LEGACY("k053244", k053245_r, k053245_w)
 
96
        AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")
101
97
        AM_RANGE(0x2000, 0x3aff) AM_RAM
102
98
        AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
103
99
        AM_RANGE(0x8000, 0xffff) AM_ROM
104
100
ADDRESS_MAP_END
105
101
 
106
 
static ADDRESS_MAP_START( rollerg_sound_map, AS_PROGRAM, 8 )
 
102
static ADDRESS_MAP_START( rollerg_sound_map, AS_PROGRAM, 8, rollerg_state )
107
103
        AM_RANGE(0x0000, 0x7fff) AM_ROM
108
104
        AM_RANGE(0x8000, 0x87ff) AM_RAM
109
 
        AM_RANGE(0xa000, 0xa02f) AM_DEVREADWRITE("k053260", k053260_r,k053260_w)
110
 
        AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym3812_r,ym3812_w)
 
105
        AM_RANGE(0xa000, 0xa02f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r,k053260_w)
 
106
        AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w)
111
107
        AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w)
112
108
ADDRESS_MAP_END
113
109
 
253
249
static MACHINE_START( rollerg )
254
250
{
255
251
        rollerg_state *state = machine.driver_data<rollerg_state>();
256
 
        UINT8 *ROM = machine.region("maincpu")->base();
 
252
        UINT8 *ROM = state->memregion("maincpu")->base();
257
253
 
258
 
        memory_configure_bank(machine, "bank1", 0, 6, &ROM[0x10000], 0x4000);
259
 
        memory_configure_bank(machine, "bank1", 6, 2, &ROM[0x10000], 0x4000);
260
 
        memory_set_bank(machine, "bank1", 0);
 
254
        state->membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
 
255
        state->membank("bank1")->configure_entries(6, 2, &ROM[0x10000], 0x4000);
 
256
        state->membank("bank1")->set_entry(0);
261
257
 
262
258
        state->m_maincpu = machine.device("maincpu");
263
259
        state->m_audiocpu = machine.device("audiocpu");
376
372
 
377
373
static KONAMI_SETLINES_CALLBACK( rollerg_banking )
378
374
{
379
 
        memory_set_bank(device->machine(), "bank1", lines & 0x07);
 
375
        device->machine().root_device().membank("bank1")->set_entry(lines & 0x07);
380
376
}
381
377
 
382
378