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

« back to all changes in this revision

Viewing changes to src/mame/drivers/meadows.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:
135
135
 *
136
136
 *************************************/
137
137
 
138
 
static READ8_HANDLER( hsync_chain_r )
 
138
READ8_MEMBER(meadows_state::hsync_chain_r)
139
139
{
140
 
        UINT8 val = space->machine().primary_screen->hpos();
 
140
        UINT8 val = machine().primary_screen->hpos();
141
141
        return BITSWAP8(val,0,1,2,3,4,5,6,7);
142
142
}
143
143
 
144
144
 
145
 
static READ8_HANDLER( vsync_chain_hi_r )
 
145
READ8_MEMBER(meadows_state::vsync_chain_hi_r)
146
146
{
147
 
        UINT8 val = space->machine().primary_screen->vpos();
 
147
        UINT8 val = machine().primary_screen->vpos();
148
148
        return ((val >> 1) & 0x08) | ((val >> 3) & 0x04) | ((val >> 5) & 0x02) | (val >> 7);
149
149
}
150
150
 
151
151
 
152
 
static READ8_HANDLER( vsync_chain_lo_r )
 
152
READ8_MEMBER(meadows_state::vsync_chain_lo_r)
153
153
{
154
 
        UINT8 val = space->machine().primary_screen->vpos();
 
154
        UINT8 val = machine().primary_screen->vpos();
155
155
        return val & 0x0f;
156
156
}
157
157
 
163
163
 *
164
164
 *************************************/
165
165
 
166
 
static WRITE8_HANDLER( meadows_audio_w )
 
166
WRITE8_MEMBER(meadows_state::meadows_audio_w)
167
167
{
168
 
        meadows_state *state = space->machine().driver_data<meadows_state>();
169
168
        switch (offset)
170
169
        {
171
170
                case 0:
172
 
                        if (state->m_0c00 == data)
 
171
                        if (m_0c00 == data)
173
172
                                break;
174
173
                        logerror("meadows_audio_w %d $%02x\n", offset, data);
175
 
                        state->m_0c00 = data;
 
174
                        m_0c00 = data;
176
175
            break;
177
176
 
178
177
                case 1:
197
196
 *
198
197
 *************************************/
199
198
 
200
 
static INPUT_CHANGED( coin_inserted )
 
199
INPUT_CHANGED_MEMBER(meadows_state::coin_inserted)
201
200
{
202
 
        cputag_set_input_line_and_vector(field.machine(), "maincpu", 0, (newval ? ASSERT_LINE : CLEAR_LINE), 0x82);
 
201
        cputag_set_input_line_and_vector(machine(), "maincpu", 0, (newval ? ASSERT_LINE : CLEAR_LINE), 0x82);
203
202
}
204
203
 
205
204
 
241
240
 *
242
241
 *************************************/
243
242
 
244
 
static WRITE8_HANDLER( audio_hardware_w )
 
243
WRITE8_MEMBER(meadows_state::audio_hardware_w)
245
244
{
246
 
        meadows_state *state = space->machine().driver_data<meadows_state>();
247
245
        switch (offset & 3)
248
246
        {
249
247
                case 0: /* DAC */
250
 
                        meadows_sh_dac_w(space->machine(), data ^ 0xff);
 
248
                        meadows_sh_dac_w(machine(), data ^ 0xff);
251
249
            break;
252
250
 
253
251
                case 1: /* counter clk 5 MHz / 256 */
254
 
                        if (data == state->m_0c01)
 
252
                        if (data == m_0c01)
255
253
                                break;
256
254
                        logerror("audio_w ctr1 preset $%x amp %d\n", data & 15, data >> 4);
257
 
                        state->m_0c01 = data;
258
 
                        meadows_sh_update(space->machine());
 
255
                        m_0c01 = data;
 
256
                        meadows_sh_update(machine());
259
257
                        break;
260
258
 
261
259
                case 2: /* counter clk 5 MHz / 32 (/ 2 or / 4) */
262
 
                        if (data == state->m_0c02)
 
260
                        if (data == m_0c02)
263
261
                break;
264
262
                        logerror("audio_w ctr2 preset $%02x\n", data);
265
 
                        state->m_0c02 = data;
266
 
                        meadows_sh_update(space->machine());
 
263
                        m_0c02 = data;
 
264
                        meadows_sh_update(machine());
267
265
            break;
268
266
 
269
267
                case 3: /* audio enable */
270
 
                        if (data == state->m_0c03)
 
268
                        if (data == m_0c03)
271
269
                break;
272
270
                        logerror("audio_w enable ctr2/2:%d ctr2:%d dac:%d ctr1:%d\n", data&1, (data>>1)&1, (data>>2)&1, (data>>3)&1);
273
 
                        state->m_0c03 = data;
274
 
                        meadows_sh_update(space->machine());
 
271
                        m_0c03 = data;
 
272
                        meadows_sh_update(machine());
275
273
            break;
276
274
        }
277
275
}
284
282
 *
285
283
 *************************************/
286
284
 
287
 
static READ8_HANDLER( audio_hardware_r )
 
285
READ8_MEMBER(meadows_state::audio_hardware_r)
288
286
{
289
 
        meadows_state *state = space->machine().driver_data<meadows_state>();
290
287
        int data = 0;
291
288
 
292
289
        switch (offset)
293
290
        {
294
291
                case 0:
295
 
                        data = state->m_0c00;
 
292
                        data = m_0c00;
296
293
            break;
297
294
 
298
295
                case 1: break;
339
336
 *
340
337
 *************************************/
341
338
 
342
 
static ADDRESS_MAP_START( meadows_main_map, AS_PROGRAM, 8 )
 
339
static ADDRESS_MAP_START( meadows_main_map, AS_PROGRAM, 8, meadows_state )
343
340
        AM_RANGE(0x0000, 0x0bff) AM_ROM
344
341
        AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("INPUTS")
345
342
        AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("STICK")
346
343
        AM_RANGE(0x0c02, 0x0c02) AM_READ(hsync_chain_r)
347
344
        AM_RANGE(0x0c03, 0x0c03) AM_READ_PORT("DSW")
348
345
        AM_RANGE(0x0c00, 0x0c03) AM_WRITE(meadows_audio_w)
349
 
        AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_MEMBER(meadows_state, m_spriteram)
 
346
        AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_SHARE("spriteram")
350
347
        AM_RANGE(0x0e00, 0x0eff) AM_RAM
351
348
        AM_RANGE(0x1000, 0x1bff) AM_ROM
352
 
        AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, m_videoram)
 
349
        AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_SHARE("videoram")
353
350
ADDRESS_MAP_END
354
351
 
355
 
static ADDRESS_MAP_START( bowl3d_main_map, AS_PROGRAM, 8 )
 
352
static ADDRESS_MAP_START( bowl3d_main_map, AS_PROGRAM, 8, meadows_state )
356
353
        AM_RANGE(0x0000, 0x0bff) AM_ROM
357
354
        AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("INPUTS1")
358
355
        AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("INPUTS2")
359
356
        AM_RANGE(0x0c02, 0x0c02) AM_READ(hsync_chain_r)
360
357
        AM_RANGE(0x0c03, 0x0c03) AM_READ_PORT("DSW")
361
358
        AM_RANGE(0x0c00, 0x0c03) AM_WRITE(meadows_audio_w)
362
 
        AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_MEMBER(meadows_state, m_spriteram)
 
359
        AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_SHARE("spriteram")
363
360
        AM_RANGE(0x0e00, 0x0eff) AM_RAM
364
361
        AM_RANGE(0x1000, 0x1bff) AM_ROM
365
 
        AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, m_videoram)
 
362
        AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_SHARE("videoram")
366
363
ADDRESS_MAP_END
367
364
 
368
 
static ADDRESS_MAP_START( minferno_main_map, AS_PROGRAM, 8 )
 
365
static ADDRESS_MAP_START( minferno_main_map, AS_PROGRAM, 8, meadows_state )
369
366
        AM_RANGE(0x0000, 0x0bff) AM_ROM
370
 
        AM_RANGE(0x1c00, 0x1eff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, m_videoram)
 
367
        AM_RANGE(0x1c00, 0x1eff) AM_RAM_WRITE(meadows_videoram_w) AM_SHARE("videoram")
371
368
        AM_RANGE(0x1f00, 0x1f00) AM_READ_PORT("JOY1")
372
369
        AM_RANGE(0x1f01, 0x1f01) AM_READ_PORT("JOY2")
373
370
        AM_RANGE(0x1f02, 0x1f02) AM_READ_PORT("BUTTONS")
378
375
ADDRESS_MAP_END
379
376
 
380
377
 
381
 
static ADDRESS_MAP_START( minferno_io_map, AS_IO, 8 )
 
378
static ADDRESS_MAP_START( minferno_io_map, AS_IO, 8, meadows_state )
382
379
        AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ_PORT("DSW2")
383
380
ADDRESS_MAP_END
384
381
 
390
387
 *
391
388
 *************************************/
392
389
 
393
 
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8 )
 
390
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, meadows_state )
394
391
        AM_RANGE(0x0000, 0x0bff) AM_ROM
395
392
        AM_RANGE(0x0c00, 0x0c03) AM_READWRITE(audio_hardware_r, audio_hardware_w)
396
393
        AM_RANGE(0x0e00, 0x0eff) AM_RAM
444
441
        PORT_DIPSETTING(    0x00, DEF_STR( None ))
445
442
 
446
443
        PORT_START("FAKE")
447
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED(coin_inserted, 0)
 
444
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, meadows_state,coin_inserted, 0)
448
445
        PORT_BIT( 0x8e, IP_ACTIVE_LOW, IPT_UNUSED )
449
446
INPUT_PORTS_END
450
447
 
496
493
        PORT_DIPSETTING(    0x80, DEF_STR( On ) )
497
494
 
498
495
        PORT_START("FAKE")
499
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED(coin_inserted, 0)
 
496
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, meadows_state,coin_inserted, 0)
500
497
        PORT_BIT( 0x8e, IP_ACTIVE_LOW, IPT_UNUSED )
501
498
INPUT_PORTS_END
502
499
 
675
672
        MCFG_SOUND_ADD("dac", DAC, 0)
676
673
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
677
674
 
678
 
        MCFG_SOUND_ADD("samples", SAMPLES, 0)
679
 
        MCFG_SOUND_CONFIG(meadows_samples_interface)
 
675
        MCFG_SAMPLES_ADD("samples", meadows_samples_interface)
680
676
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
681
677
MACHINE_CONFIG_END
682
678
 
737
733
        MCFG_SOUND_ADD("dac", DAC, 0)
738
734
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
739
735
 
740
 
        MCFG_SOUND_ADD("samples", SAMPLES, 0)
741
 
        MCFG_SOUND_CONFIG(meadows_samples_interface)
 
736
        MCFG_SAMPLES_ADD("samples", meadows_samples_interface)
742
737
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
743
738
 
744
739
        /* audio hardware */
745
 
        MCFG_SOUND_ADD("samples2", SAMPLES, 0)
746
 
        MCFG_SOUND_CONFIG(bowl3d_samples_interface)
 
740
        MCFG_SAMPLES_ADD("samples2", bowl3d_samples_interface)
747
741
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
748
742
MACHINE_CONFIG_END
749
743
 
878
872
                0x01,0x80, 0x03,0xc0, 0x03,0xc0, 0x01,0x80
879
873
        };
880
874
        int i;
881
 
        UINT8 *gfx2 = machine.region("gfx2")->base();
882
 
        UINT8 *gfx3 = machine.region("gfx3")->base();
883
 
        UINT8 *gfx4 = machine.region("gfx4")->base();
884
 
        UINT8 *gfx5 = machine.region("gfx5")->base();
885
 
        int len3 = machine.region("gfx3")->bytes();
886
 
        int len4 = machine.region("gfx4")->bytes();
 
875
        UINT8 *gfx2 = machine.root_device().memregion("gfx2")->base();
 
876
        UINT8 *gfx3 = machine.root_device().memregion("gfx3")->base();
 
877
        UINT8 *gfx4 = machine.root_device().memregion("gfx4")->base();
 
878
        UINT8 *gfx5 = machine.root_device().memregion("gfx5")->base();
 
879
        int len3 = machine.root_device().memregion("gfx3")->bytes();
 
880
        int len4 = machine.root_device().memregion("gfx4")->bytes();
887
881
 
888
882
        memcpy(gfx3,gfx2,len3);
889
883
 
902
896
        UINT8 *mem;
903
897
 
904
898
        /* create an inverted copy of the graphics data */
905
 
        mem = machine.region("gfx1")->base();
906
 
        length = machine.region("gfx1")->bytes();
 
899
        mem = machine.root_device().memregion("gfx1")->base();
 
900
        length = machine.root_device().memregion("gfx1")->bytes();
907
901
        for (i = 0; i < length/2; i++)
908
902
                mem[i] = ~mem[i + length/2];
909
903
}