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

« back to all changes in this revision

Viewing changes to src/mame/drivers/gberet.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:
108
108
 *
109
109
 *************************************/
110
110
 
111
 
static WRITE8_HANDLER( gberet_coin_counter_w )
 
111
WRITE8_MEMBER(gberet_state::gberet_coin_counter_w)
112
112
{
113
113
        /* bits 0/1 = coin counters */
114
 
        coin_counter_w(space->machine(), 0, data & 1);
115
 
        coin_counter_w(space->machine(), 1, data & 2);
 
114
        coin_counter_w(machine(), 0, data & 1);
 
115
        coin_counter_w(machine(), 1, data & 2);
116
116
}
117
117
 
118
 
static WRITE8_HANDLER( mrgoemon_coin_counter_w )
 
118
WRITE8_MEMBER(gberet_state::mrgoemon_coin_counter_w)
119
119
{
120
120
        /* bits 0/1 = coin counters */
121
 
        coin_counter_w(space->machine(), 0, data & 1);
122
 
        coin_counter_w(space->machine(), 1, data & 2);
 
121
        coin_counter_w(machine(), 0, data & 1);
 
122
        coin_counter_w(machine(), 1, data & 2);
123
123
 
124
124
        /* bits 5-7 = ROM bank select */
125
 
        memory_set_bank(space->machine(), "bank1", ((data & 0xe0) >> 5));
 
125
        membank("bank1")->set_entry(((data & 0xe0) >> 5));
126
126
}
127
127
 
128
 
static WRITE8_HANDLER( gberet_flipscreen_w )
 
128
WRITE8_MEMBER(gberet_state::gberet_flipscreen_w)
129
129
{
130
 
        gberet_state *state = space->machine().driver_data<gberet_state>();
131
130
 
132
131
        /* bits 0/1/2 = interrupt enable */
133
 
        UINT8 ack_mask = ~data & state->m_interrupt_mask; // 1->0
 
132
        UINT8 ack_mask = ~data & m_interrupt_mask; // 1->0
134
133
 
135
134
        if (ack_mask & 1)
136
 
                cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
 
135
                cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
137
136
 
138
137
        if (ack_mask & 6)
139
 
                cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
 
138
                cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
140
139
 
141
 
        state->m_interrupt_mask = data & 7;
 
140
        m_interrupt_mask = data & 7;
142
141
 
143
142
        /* bit 3 = flip screen */
144
 
        flip_screen_set(space->machine(), data & 8);
 
143
        flip_screen_set(data & 8);
145
144
}
146
145
 
147
 
static WRITE8_HANDLER( gberet_sound_w )
 
146
WRITE8_MEMBER(gberet_state::gberet_sound_w)
148
147
{
149
 
        gberet_state *state = space->machine().driver_data<gberet_state>();
150
 
        sn76496_w(space->machine().device("snsnd"), 0, *state->m_soundlatch);
 
148
        sn76496_w(machine().device("snsnd"), 0, *m_soundlatch);
151
149
}
152
150
 
153
 
static ADDRESS_MAP_START( gberet_map, AS_PROGRAM, 8 )
 
151
static ADDRESS_MAP_START( gberet_map, AS_PROGRAM, 8, gberet_state )
154
152
        AM_RANGE(0x0000, 0xbfff) AM_ROM
155
 
        AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_BASE_MEMBER(gberet_state, m_colorram)
156
 
        AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_BASE_MEMBER(gberet_state, m_videoram)
157
 
        AM_RANGE(0xd000, 0xd0ff) AM_RAM AM_BASE_MEMBER(gberet_state, m_spriteram2)
158
 
        AM_RANGE(0xd100, 0xd1ff) AM_RAM AM_BASE_MEMBER(gberet_state, m_spriteram)
 
153
        AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_SHARE("colorram")
 
154
        AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_SHARE("videoram")
 
155
        AM_RANGE(0xd000, 0xd0ff) AM_RAM AM_SHARE("spriteram2")
 
156
        AM_RANGE(0xd100, 0xd1ff) AM_RAM AM_SHARE("spriteram")
159
157
        AM_RANGE(0xd200, 0xdfff) AM_RAM
160
 
        AM_RANGE(0xe000, 0xe03f) AM_RAM_WRITE(gberet_scroll_w) AM_BASE_MEMBER(gberet_state, m_scrollram)
 
158
        AM_RANGE(0xe000, 0xe03f) AM_RAM_WRITE(gberet_scroll_w) AM_SHARE("scrollram")
161
159
        AM_RANGE(0xe040, 0xe042) AM_WRITENOP // ???
162
160
        AM_RANGE(0xe043, 0xe043) AM_WRITE(gberet_sprite_bank_w)
163
161
        AM_RANGE(0xe044, 0xe044) AM_WRITE(gberet_flipscreen_w)
164
162
        AM_RANGE(0xf000, 0xf000) AM_WRITE(gberet_coin_counter_w)
165
 
        AM_RANGE(0xf200, 0xf200) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE_MEMBER(gberet_state, m_soundlatch)
 
163
        AM_RANGE(0xf200, 0xf200) AM_READ_PORT("DSW2") AM_WRITEONLY AM_SHARE("soundlatch")
166
164
        AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW3") AM_WRITE(gberet_sound_w)
167
165
        AM_RANGE(0xf600, 0xf600) AM_READ_PORT("DSW1") AM_WRITE(watchdog_reset_w)
168
166
        AM_RANGE(0xf601, 0xf601) AM_READ_PORT("P2")
170
168
        AM_RANGE(0xf603, 0xf603) AM_READ_PORT("SYSTEM")
171
169
ADDRESS_MAP_END
172
170
 
173
 
static ADDRESS_MAP_START( mrgoemon_map, AS_PROGRAM, 8 )
 
171
static ADDRESS_MAP_START( mrgoemon_map, AS_PROGRAM, 8, gberet_state )
174
172
        AM_RANGE(0x0000, 0xbfff) AM_ROM
175
 
        AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_BASE_MEMBER(gberet_state, m_colorram)
176
 
        AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_BASE_MEMBER(gberet_state, m_videoram)
177
 
        AM_RANGE(0xd000, 0xd0ff) AM_RAM AM_BASE_MEMBER(gberet_state, m_spriteram2)
178
 
        AM_RANGE(0xd100, 0xd1ff) AM_RAM AM_BASE_MEMBER(gberet_state, m_spriteram)
 
173
        AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_SHARE("colorram")
 
174
        AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_SHARE("videoram")
 
175
        AM_RANGE(0xd000, 0xd0ff) AM_RAM AM_SHARE("spriteram2")
 
176
        AM_RANGE(0xd100, 0xd1ff) AM_RAM AM_SHARE("spriteram")
179
177
        AM_RANGE(0xd200, 0xdfff) AM_RAM
180
 
        AM_RANGE(0xe000, 0xe03f) AM_RAM_WRITE(gberet_scroll_w) AM_BASE_MEMBER(gberet_state, m_scrollram)
 
178
        AM_RANGE(0xe000, 0xe03f) AM_RAM_WRITE(gberet_scroll_w) AM_SHARE("scrollram")
181
179
        AM_RANGE(0xe040, 0xe042) AM_WRITENOP // ???
182
180
        AM_RANGE(0xe043, 0xe043) AM_WRITE(gberet_sprite_bank_w)
183
181
        AM_RANGE(0xe044, 0xe044) AM_WRITE(gberet_flipscreen_w)
184
182
        AM_RANGE(0xf000, 0xf000) AM_WRITE(mrgoemon_coin_counter_w)
185
 
        AM_RANGE(0xf200, 0xf200) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE_MEMBER(gberet_state, m_soundlatch)
 
183
        AM_RANGE(0xf200, 0xf200) AM_READ_PORT("DSW2") AM_WRITEONLY AM_SHARE("soundlatch")
186
184
        AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW3") AM_WRITE(gberet_sound_w)
187
185
        AM_RANGE(0xf600, 0xf600) AM_READ_PORT("DSW1") AM_WRITE(watchdog_reset_w)
188
186
        AM_RANGE(0xf601, 0xf601) AM_READ_PORT("P2")
192
190
ADDRESS_MAP_END
193
191
 
194
192
 
195
 
static WRITE8_HANDLER( gberetb_flipscreen_w )
 
193
WRITE8_MEMBER(gberet_state::gberetb_flipscreen_w)
196
194
{
197
 
        flip_screen_set(space->machine(), data & 8);
 
195
        flip_screen_set(data & 8);
198
196
}
199
197
 
200
 
static READ8_HANDLER( gberetb_irq_ack_r )
 
198
READ8_MEMBER(gberet_state::gberetb_irq_ack_r)
201
199
{
202
 
        cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
 
200
        cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
203
201
        return 0xff;
204
202
}
205
203
 
206
 
static WRITE8_HANDLER( gberetb_nmi_ack_w )
 
204
WRITE8_MEMBER(gberet_state::gberetb_nmi_ack_w)
207
205
{
208
 
        cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
 
206
        cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
209
207
}
210
208
 
211
 
static ADDRESS_MAP_START( gberetb_map, AS_PROGRAM, 8 )
 
209
static ADDRESS_MAP_START( gberetb_map, AS_PROGRAM, 8, gberet_state )
212
210
        AM_RANGE(0x0000, 0xbfff) AM_ROM
213
 
        AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_BASE_MEMBER(gberet_state, m_colorram)
214
 
        AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_BASE_MEMBER(gberet_state, m_videoram)
 
211
        AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gberet_colorram_w) AM_SHARE("colorram")
 
212
        AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gberet_videoram_w) AM_SHARE("videoram")
215
213
        AM_RANGE(0xd000, 0xdfff) AM_RAM
216
214
        AM_RANGE(0xe000, 0xe03f) AM_RAM
217
215
        AM_RANGE(0xe040, 0xe043) AM_WRITENOP // ???
218
216
        AM_RANGE(0xe044, 0xe044) AM_WRITE(gberetb_flipscreen_w) // did hw even support flipscreen?
219
217
        AM_RANGE(0xe800, 0xe8ff) AM_RAM
220
 
        AM_RANGE(0xe900, 0xe9ff) AM_RAM AM_BASE_SIZE_MEMBER(gberet_state, m_spriteram, m_spriteram_size)
 
218
        AM_RANGE(0xe900, 0xe9ff) AM_RAM AM_SHARE("spriteram")
221
219
        AM_RANGE(0xf000, 0xf000) AM_WRITENOP // coin counter not supported
222
220
        AM_RANGE(0xf200, 0xf200) AM_READ_PORT("DSW2")
223
 
        AM_RANGE(0xf400, 0xf400) AM_DEVWRITE("snsnd", sn76496_w)
 
221
        AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("snsnd", sn76496_w)
224
222
        AM_RANGE(0xf600, 0xf600) AM_READ_PORT("P2")
225
223
        AM_RANGE(0xf601, 0xf601) AM_READ_PORT("DSW1")
226
224
        AM_RANGE(0xf602, 0xf602) AM_READ_PORT("P1")
575
573
 
576
574
static DRIVER_INIT( mrgoemon )
577
575
{
578
 
        UINT8 *ROM = machine.region("maincpu")->base();
579
 
        memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x800);
 
576
        UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
 
577
        machine.root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x800);
580
578
}
581
579
 
582
580