136
136
*************************************/
138
static READ8_HANDLER( hsync_chain_r )
138
READ8_MEMBER(meadows_state::hsync_chain_r)
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);
145
static READ8_HANDLER( vsync_chain_hi_r )
145
READ8_MEMBER(meadows_state::vsync_chain_hi_r)
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);
152
static READ8_HANDLER( vsync_chain_lo_r )
152
READ8_MEMBER(meadows_state::vsync_chain_lo_r)
154
UINT8 val = space->machine().primary_screen->vpos();
154
UINT8 val = machine().primary_screen->vpos();
155
155
return val & 0x0f;
198
197
*************************************/
200
static INPUT_CHANGED( coin_inserted )
199
INPUT_CHANGED_MEMBER(meadows_state::coin_inserted)
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);
242
241
*************************************/
244
static WRITE8_HANDLER( audio_hardware_w )
243
WRITE8_MEMBER(meadows_state::audio_hardware_w)
246
meadows_state *state = space->machine().driver_data<meadows_state>();
247
245
switch (offset & 3)
249
247
case 0: /* DAC */
250
meadows_sh_dac_w(space->machine(), data ^ 0xff);
248
meadows_sh_dac_w(machine(), data ^ 0xff);
253
251
case 1: /* counter clk 5 MHz / 256 */
254
if (data == state->m_0c01)
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());
256
meadows_sh_update(machine());
261
259
case 2: /* counter clk 5 MHz / 32 (/ 2 or / 4) */
262
if (data == state->m_0c02)
264
262
logerror("audio_w ctr2 preset $%02x\n", data);
265
state->m_0c02 = data;
266
meadows_sh_update(space->machine());
264
meadows_sh_update(machine());
269
267
case 3: /* audio enable */
270
if (data == state->m_0c03)
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());
272
meadows_sh_update(machine());
340
337
*************************************/
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")
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")
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")
391
388
*************************************/
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 ))
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 )
496
493
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
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 )
675
672
MCFG_SOUND_ADD("dac", DAC, 0)
676
673
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
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
737
733
MCFG_SOUND_ADD("dac", DAC, 0)
738
734
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
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)
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
878
872
0x01,0x80, 0x03,0xc0, 0x03,0xc0, 0x01,0x80
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();
888
882
memcpy(gfx3,gfx2,len3);