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

« back to all changes in this revision

Viewing changes to src/mame/drivers/slapfght.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:
269
269
#include "includes/slapfght.h"
270
270
 
271
271
 
272
 
static ADDRESS_MAP_START( perfrman_map, AS_PROGRAM, 8 )
 
272
static ADDRESS_MAP_START( perfrman_map, AS_PROGRAM, 8, slapfght_state )
273
273
        AM_RANGE(0x0000, 0x7fff) AM_ROM
274
274
        AM_RANGE(0x8000, 0x87ff) AM_RAM
275
275
        AM_RANGE(0x8800, 0x880f) AM_RAM AM_SHARE("share1")
276
276
        AM_RANGE(0x8810, 0x8fff) AM_RAMBANK("bank1") /* Shared RAM with sound CPU */
277
 
        AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
278
 
        AM_RANGE(0x9800, 0x9fff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
279
 
        AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
 
277
        AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(slapfight_videoram_w) AM_SHARE("videoram")
 
278
        AM_RANGE(0x9800, 0x9fff) AM_RAM_WRITE(slapfight_colorram_w) AM_SHARE("colorram")
 
279
        AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("spriteram")
280
280
ADDRESS_MAP_END
281
281
 
282
 
static ADDRESS_MAP_START( tigerh_map, AS_PROGRAM, 8 )
 
282
static ADDRESS_MAP_START( tigerh_map, AS_PROGRAM, 8, slapfght_state )
283
283
        AM_RANGE(0x0000, 0xbfff) AM_ROM
284
284
        AM_RANGE(0xc000, 0xc7ff) AM_RAM
285
285
        AM_RANGE(0xc800, 0xc80f) AM_RAM AM_SHARE("share1")
286
286
        AM_RANGE(0xc810, 0xcfff) AM_RAM
287
 
        AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
288
 
        AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
289
 
        AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
290
 
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_lo)
291
 
        AM_RANGE(0xe801, 0xe801) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_hi)
292
 
        AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrolly)
293
 
        AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixvideoram)
294
 
        AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixcolorram)
 
287
        AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_SHARE("videoram")
 
288
        AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_SHARE("colorram")
 
289
        AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
 
290
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_SHARE("scrollx_lo")
 
291
        AM_RANGE(0xe801, 0xe801) AM_WRITEONLY AM_SHARE("scrollx_hi")
 
292
        AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_SHARE("scrolly")
 
293
        AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_SHARE("fixvideoram")
 
294
        AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_SHARE("fixcolorram")
295
295
ADDRESS_MAP_END
296
296
 
297
 
static ADDRESS_MAP_START( slapfght_map, AS_PROGRAM, 8 )
 
297
static ADDRESS_MAP_START( slapfght_map, AS_PROGRAM, 8, slapfght_state )
298
298
        AM_RANGE(0x0000, 0x7fff) AM_ROM
299
299
        AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
300
300
        AM_RANGE(0xc000, 0xc7ff) AM_RAM
301
301
        AM_RANGE(0xc800, 0xc80f) AM_RAM AM_SHARE("share1")
302
302
        AM_RANGE(0xc810, 0xcfff) AM_RAM
303
 
        AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
304
 
        AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
305
 
        AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
306
 
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_lo)
307
 
        AM_RANGE(0xe801, 0xe801) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_hi)
308
 
        AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrolly)
 
303
        AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_SHARE("videoram")
 
304
        AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_SHARE("colorram")
 
305
        AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
 
306
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_SHARE("scrollx_lo")
 
307
        AM_RANGE(0xe801, 0xe801) AM_WRITEONLY AM_SHARE("scrollx_hi")
 
308
        AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_SHARE("scrolly")
309
309
//  AM_RANGE(0xe803, 0xe803) AM_READWRITE(slapfight_mcu_r, slapfight_mcu_w)
310
 
        AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixvideoram)
311
 
        AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixcolorram)
 
310
        AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_SHARE("fixvideoram")
 
311
        AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_SHARE("fixcolorram")
312
312
ADDRESS_MAP_END
313
313
 
314
 
static ADDRESS_MAP_START( slapfighb2_map, AS_PROGRAM, 8 )
 
314
static ADDRESS_MAP_START( slapfighb2_map, AS_PROGRAM, 8, slapfght_state )
315
315
        AM_RANGE(0x0000, 0x7fff) AM_ROM
316
316
        AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
317
317
        AM_RANGE(0xc000, 0xc7ff) AM_RAM
318
318
        AM_RANGE(0xc800, 0xc80f) AM_RAM AM_SHARE("share1")
319
319
        AM_RANGE(0xc810, 0xcfff) AM_RAM
320
 
        AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_videoram)
321
 
        AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_colorram)
322
 
        AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
323
 
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_hi)
324
 
        AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrolly)
325
 
        AM_RANGE(0xe803, 0xe803) AM_WRITEONLY AM_BASE_MEMBER(slapfght_state, m_slapfight_scrollx_lo)
 
320
        AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(slapfight_videoram_w) AM_SHARE("videoram")
 
321
        AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(slapfight_colorram_w) AM_SHARE("colorram")
 
322
        AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram")
 
323
        AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_SHARE("scrollx_hi")
 
324
        AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_SHARE("scrolly")
 
325
        AM_RANGE(0xe803, 0xe803) AM_WRITEONLY AM_SHARE("scrollx_lo")
326
326
        AM_RANGE(0xec00, 0xefff) AM_ROM // it reads a copy of the logo from here!
327
 
        AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixvideoram)
328
 
        AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE_MEMBER(slapfght_state, m_slapfight_fixcolorram)
 
327
        AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_SHARE("fixvideoram")
 
328
        AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_SHARE("fixcolorram")
329
329
ADDRESS_MAP_END
330
330
 
331
 
static ADDRESS_MAP_START( slapfght_io_map, AS_IO, 8 )
 
331
static ADDRESS_MAP_START( slapfght_io_map, AS_IO, 8, slapfght_state )
332
332
        ADDRESS_MAP_GLOBAL_MASK(0xff)
333
333
        AM_RANGE(0x00, 0x00) AM_WRITE(slapfight_port_00_w)
334
334
        AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
341
341
        AM_RANGE(0x0c, 0x0d) AM_WRITE(slapfight_palette_bank_w)
342
342
ADDRESS_MAP_END
343
343
 
344
 
static ADDRESS_MAP_START( slapfight_m68705_map, AS_PROGRAM, 8 )
 
344
static ADDRESS_MAP_START( slapfight_m68705_map, AS_PROGRAM, 8, slapfght_state )
345
345
        ADDRESS_MAP_GLOBAL_MASK(0x7ff)
346
346
        AM_RANGE(0x0000, 0x0000) AM_READWRITE(slapfight_68705_portA_r, slapfight_68705_portA_w)
347
347
        AM_RANGE(0x0001, 0x0001) AM_READWRITE(slapfight_68705_portB_r, slapfight_68705_portB_w)
353
353
        AM_RANGE(0x0080, 0x07ff) AM_ROM
354
354
ADDRESS_MAP_END
355
355
 
356
 
static READ8_HANDLER(tigerh_status_r)
 
356
READ8_MEMBER(slapfght_state::tigerh_status_r)
357
357
{
358
358
        return (slapfight_port_00_r(space, 0) & 0xf9)| ((tigerh_mcu_status_r(space, 0)));
359
359
}
360
360
 
361
 
static ADDRESS_MAP_START( tigerh_io_map, AS_IO, 8 )
 
361
static ADDRESS_MAP_START( tigerh_io_map, AS_IO, 8, slapfght_state )
362
362
        ADDRESS_MAP_GLOBAL_MASK(0xff)
363
 
        AM_RANGE(0x00, 0x00) AM_READWRITE(tigerh_status_r, slapfight_port_00_w) /* status register */
 
363
        AM_RANGE(0x00, 0x00) AM_READ(tigerh_status_r) AM_WRITE(slapfight_port_00_w)     /* status register */
364
364
        AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
365
365
        AM_RANGE(0x02, 0x03) AM_WRITE(slapfight_flipscreen_w)
366
366
        AM_RANGE(0x06, 0x06) AM_WRITE(slapfight_port_06_w)
367
367
        AM_RANGE(0x07, 0x07) AM_WRITE(slapfight_port_07_w)
368
368
ADDRESS_MAP_END
369
369
 
370
 
static ADDRESS_MAP_START( tigerhb_io_map, AS_IO, 8 )
 
370
static ADDRESS_MAP_START( tigerhb_io_map, AS_IO, 8, slapfght_state )
371
371
        ADDRESS_MAP_GLOBAL_MASK(0xff)
372
372
        AM_RANGE(0x00, 0x00) AM_READWRITE(slapfight_port_00_r, slapfight_port_00_w)     /* status register */
373
373
        AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
376
376
        AM_RANGE(0x07, 0x07) AM_WRITE(slapfight_port_07_w)
377
377
ADDRESS_MAP_END
378
378
 
379
 
static ADDRESS_MAP_START( tigerh_m68705_map, AS_PROGRAM, 8 )
 
379
static ADDRESS_MAP_START( tigerh_m68705_map, AS_PROGRAM, 8, slapfght_state )
380
380
        ADDRESS_MAP_GLOBAL_MASK(0x7ff)
381
381
        AM_RANGE(0x0000, 0x0000) AM_READWRITE(tigerh_68705_portA_r,tigerh_68705_portA_w)
382
382
        AM_RANGE(0x0001, 0x0001) AM_READWRITE(tigerh_68705_portB_r,tigerh_68705_portB_w)
388
388
        AM_RANGE(0x0080, 0x07ff) AM_ROM
389
389
ADDRESS_MAP_END
390
390
 
391
 
static ADDRESS_MAP_START( perfrman_sound_map, AS_PROGRAM, 8 )
 
391
static ADDRESS_MAP_START( perfrman_sound_map, AS_PROGRAM, 8, slapfght_state )
392
392
        AM_RANGE(0x0000, 0x1fff) AM_ROM
393
393
        AM_RANGE(0x8800, 0x880f) AM_RAM AM_SHARE("share1")
394
394
        AM_RANGE(0x8810, 0x8fff) AM_RAMBANK("bank1") /* Shared RAM with main CPU */
395
 
        AM_RANGE(0xa080, 0xa080) AM_DEVWRITE("ay1", ay8910_address_w)
396
 
        AM_RANGE(0xa081, 0xa081) AM_DEVREAD("ay1", ay8910_r)
397
 
        AM_RANGE(0xa082, 0xa082) AM_DEVWRITE("ay1", ay8910_data_w)
398
 
        AM_RANGE(0xa090, 0xa090) AM_DEVWRITE("ay2", ay8910_address_w)
399
 
        AM_RANGE(0xa091, 0xa091) AM_DEVREAD("ay2", ay8910_r)
400
 
        AM_RANGE(0xa092, 0xa092) AM_DEVWRITE("ay2", ay8910_data_w)
 
395
        AM_RANGE(0xa080, 0xa080) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
 
396
        AM_RANGE(0xa081, 0xa081) AM_DEVREAD_LEGACY("ay1", ay8910_r)
 
397
        AM_RANGE(0xa082, 0xa082) AM_DEVWRITE_LEGACY("ay1", ay8910_data_w)
 
398
        AM_RANGE(0xa090, 0xa090) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
 
399
        AM_RANGE(0xa091, 0xa091) AM_DEVREAD_LEGACY("ay2", ay8910_r)
 
400
        AM_RANGE(0xa092, 0xa092) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
401
401
        AM_RANGE(0xa0e0, 0xa0e0) AM_WRITE(getstar_sh_intenable_w) /* maybe a0f0 also -LE */
402
402
//  AM_RANGE(0xa0f0, 0xa0f0) AM_WRITENOP
403
403
ADDRESS_MAP_END
404
404
 
405
 
static ADDRESS_MAP_START( slapfght_sound_map, AS_PROGRAM, 8 )
 
405
static ADDRESS_MAP_START( slapfght_sound_map, AS_PROGRAM, 8, slapfght_state )
406
406
        AM_RANGE(0x0000, 0x1fff) AM_ROM
407
 
        AM_RANGE(0xa080, 0xa080) AM_DEVWRITE("ay1", ay8910_address_w)
408
 
        AM_RANGE(0xa081, 0xa081) AM_DEVREAD("ay1", ay8910_r)
409
 
        AM_RANGE(0xa082, 0xa082) AM_DEVWRITE("ay1", ay8910_data_w)
410
 
        AM_RANGE(0xa090, 0xa090) AM_DEVWRITE("ay2", ay8910_address_w)
411
 
        AM_RANGE(0xa091, 0xa091) AM_DEVREAD("ay2", ay8910_r)
412
 
        AM_RANGE(0xa092, 0xa092) AM_DEVWRITE("ay2", ay8910_data_w)
 
407
        AM_RANGE(0xa080, 0xa080) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
 
408
        AM_RANGE(0xa081, 0xa081) AM_DEVREAD_LEGACY("ay1", ay8910_r)
 
409
        AM_RANGE(0xa082, 0xa082) AM_DEVWRITE_LEGACY("ay1", ay8910_data_w)
 
410
        AM_RANGE(0xa090, 0xa090) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
 
411
        AM_RANGE(0xa091, 0xa091) AM_DEVREAD_LEGACY("ay2", ay8910_r)
 
412
        AM_RANGE(0xa092, 0xa092) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
413
413
        AM_RANGE(0xa0e0, 0xa0e0) AM_WRITE(getstar_sh_intenable_w) /* maybe a0f0 also -LE */
414
414
//  AM_RANGE(0xa0f0, 0xa0f0) AM_WRITENOP
415
415
        AM_RANGE(0xc800, 0xc80f) AM_RAM AM_SHARE("share1")
734
734
        DEVCB_NULL
735
735
};
736
736
 
737
 
static SCREEN_VBLANK( perfrman )
738
 
{
739
 
        // rising edge
740
 
        if (vblank_on)
741
 
        {
742
 
                address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
743
 
                buffer_spriteram_w(space, 0, 0);
744
 
        }
745
 
}
746
 
 
747
737
static INTERRUPT_GEN( vblank_irq )
748
738
{
749
739
        slapfght_state *state = device->machine().driver_data<slapfght_state>();
770
760
        MCFG_MACHINE_RESET(slapfight)
771
761
 
772
762
        /* video hardware */
773
 
        MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
 
763
        MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
774
764
 
775
765
        MCFG_SCREEN_ADD("screen", RASTER)
776
766
        MCFG_SCREEN_REFRESH_RATE(60)
778
768
        MCFG_SCREEN_SIZE(64*8, 32*8)
779
769
        MCFG_SCREEN_VISIBLE_AREA(1*8, 34*8-1, 2*8, 32*8-1)
780
770
        MCFG_SCREEN_UPDATE_STATIC(perfrman)
781
 
        MCFG_SCREEN_VBLANK_STATIC(perfrman)
 
771
        MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
782
772
 
783
773
        MCFG_GFXDECODE(perfrman)
784
774
        MCFG_PALETTE_LENGTH(256)
816
806
        MCFG_MACHINE_RESET(slapfight)
817
807
 
818
808
        /* video hardware */
819
 
        MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
 
809
        MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
820
810
 
821
811
        MCFG_SCREEN_ADD("screen", RASTER)
822
812
        MCFG_SCREEN_REFRESH_RATE(60)
824
814
        MCFG_SCREEN_SIZE(64*8, 32*8)
825
815
        MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
826
816
        MCFG_SCREEN_UPDATE_STATIC(slapfight)
827
 
        MCFG_SCREEN_VBLANK_STATIC(perfrman)
 
817
        MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
828
818
 
829
819
        MCFG_GFXDECODE(slapfght)
830
820
        MCFG_PALETTE_LENGTH(256)
864
854
        MCFG_MACHINE_RESET(slapfight)
865
855
 
866
856
        /* video hardware */
867
 
        MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
 
857
        MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
868
858
 
869
859
        MCFG_SCREEN_ADD("screen", RASTER)
870
860
        MCFG_SCREEN_REFRESH_RATE(60)
872
862
        MCFG_SCREEN_SIZE(64*8, 32*8)
873
863
        MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
874
864
        MCFG_SCREEN_UPDATE_STATIC(slapfight)
875
 
        MCFG_SCREEN_VBLANK_STATIC(perfrman)
 
865
        MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
876
866
 
877
867
        MCFG_GFXDECODE(slapfght)
878
868
        MCFG_PALETTE_LENGTH(256)
913
903
        MCFG_MACHINE_RESET(slapfight)
914
904
 
915
905
        /* video hardware */
916
 
        MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
 
906
        MCFG_BUFFERED_SPRITERAM8_ADD("spriteram")
917
907
 
918
908
        MCFG_SCREEN_ADD("screen", RASTER)
919
909
        MCFG_SCREEN_REFRESH_RATE(60)
921
911
        MCFG_SCREEN_SIZE(64*8, 32*8)
922
912
        MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
923
913
        MCFG_SCREEN_UPDATE_STATIC(slapfight)
924
 
        MCFG_SCREEN_VBLANK_STATIC(perfrman)
 
914
        MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
925
915
 
926
916
        MCFG_GFXDECODE(slapfght)
927
917
        MCFG_PALETTE_LENGTH(256)
1750
1740
 
1751
1741
static DRIVER_INIT( tigerh )
1752
1742
{
1753
 
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xe803, 0xe803, FUNC(tigerh_mcu_r), FUNC(tigerh_mcu_w)  );
 
1743
        slapfght_state *state = machine.driver_data<slapfght_state>();
 
1744
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xe803, 0xe803, read8_delegate(FUNC(slapfght_state::tigerh_mcu_r),state), write8_delegate(FUNC(slapfght_state::tigerh_mcu_w),state));
1754
1745
}
1755
1746
 
1756
1747
static DRIVER_INIT( tigerhb )
1757
1748
{
1758
 
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xe803, 0xe803, FUNC(tigerhb_e803_r), FUNC(tigerhb_e803_w)  );
 
1749
        slapfght_state *state = machine.driver_data<slapfght_state>();
 
1750
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xe803, 0xe803, read8_delegate(FUNC(slapfght_state::tigerhb_e803_r),state), write8_delegate(FUNC(slapfght_state::tigerhb_e803_w),state));
1759
1751
}
1760
1752
 
1761
1753
 
1762
 
static READ8_HANDLER( gtstarb1_port_0_read )
 
1754
READ8_MEMBER(slapfght_state::gtstarb1_port_0_read)
1763
1755
{
1764
1756
        /* The bootleg has it's own 'protection' on startup ?
1765
1757
        6D1A: 06 04         ld   b,$04
1780
1772
        6D38: 20 F8         jr   nz,$6D32
1781
1773
        6D3A: 10 E0         djnz $6D1C
1782
1774
    */
1783
 
        if (cpu_get_pc(&space->device()) == 0x6d1e) return 0;
1784
 
        if (cpu_get_pc(&space->device()) == 0x6d24) return 6;
1785
 
        if (cpu_get_pc(&space->device()) == 0x6d2c) return 2;
1786
 
        if (cpu_get_pc(&space->device()) == 0x6d34) return 4;
 
1775
        if (cpu_get_pc(&space.device()) == 0x6d1e) return 0;
 
1776
        if (cpu_get_pc(&space.device()) == 0x6d24) return 6;
 
1777
        if (cpu_get_pc(&space.device()) == 0x6d2c) return 2;
 
1778
        if (cpu_get_pc(&space.device()) == 0x6d34) return 4;
1787
1779
 
1788
1780
        /* The bootleg hangs in the "test mode" before diplaying (wrong) lives settings :
1789
1781
        6AD4: DB 00         in   a,($00)
1804
1796
        6AF7: 20 FA         jr   nz,$6AF3
1805
1797
       This seems to be what used to be the MCU status.
1806
1798
    */
1807
 
        if (cpu_get_pc(&space->device()) == 0x6ad6) return 2; /* bit 1 must be ON */
1808
 
        if (cpu_get_pc(&space->device()) == 0x6ae4) return 2; /* bit 1 must be ON */
1809
 
        if (cpu_get_pc(&space->device()) == 0x6af5) return 0; /* bit 2 must be OFF */
 
1799
        if (cpu_get_pc(&space.device()) == 0x6ad6) return 2; /* bit 1 must be ON */
 
1800
        if (cpu_get_pc(&space.device()) == 0x6ae4) return 2; /* bit 1 must be ON */
 
1801
        if (cpu_get_pc(&space.device()) == 0x6af5) return 0; /* bit 2 must be OFF */
1810
1802
 
1811
 
        logerror("Port Read PC=%04x\n",cpu_get_pc(&space->device()));
 
1803
        logerror("Port Read PC=%04x\n",cpu_get_pc(&space.device()));
1812
1804
 
1813
1805
        return 0;
1814
1806
}
1815
1807
 
1816
1808
static void getstar_init( running_machine &machine )
1817
1809
{
1818
 
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xe803, 0xe803, FUNC(getstar_e803_r), FUNC(getstar_e803_w) );
1819
 
        machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x00, FUNC(slapfight_port_00_r) );
 
1810
        slapfght_state *state = machine.driver_data<slapfght_state>();
 
1811
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xe803, 0xe803, read8_delegate(FUNC(slapfght_state::getstar_e803_r),state), write8_delegate(FUNC(slapfght_state::getstar_e803_w),state));
 
1812
        machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x00, 0x00, read8_delegate(FUNC(slapfght_state::slapfight_port_00_r),state));
1820
1813
}
1821
1814
 
1822
1815
static DRIVER_INIT( getstar )
1836
1829
static DRIVER_INIT( gtstarb1 )
1837
1830
{
1838
1831
        slapfght_state *state = machine.driver_data<slapfght_state>();
1839
 
        UINT8 *ROM = machine.region("maincpu")->base();
 
1832
        UINT8 *ROM = state->memregion("maincpu")->base();
1840
1833
 
1841
1834
        state->m_getstar_id = GTSTARB1;
1842
1835
        getstar_init(machine);
1843
1836
 
1844
1837
        /* specific handlers for this bootleg */
1845
 
        machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x0, 0x0, FUNC(gtstarb1_port_0_read) );
 
1838
        machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x0, 0x0, read8_delegate(FUNC(slapfght_state::gtstarb1_port_0_read),state));
1846
1839
        /* requires this or it gets stuck with 'rom test' on screen */
1847
1840
        /* it is possible the program roms are slighly corrupt like the gfx roms, or
1848
1841
       that the bootleg simply shouldn't execute the code due to the modified roms */
1859
1852
 
1860
1853
static DRIVER_INIT( slapfigh )
1861
1854
{
1862
 
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xe803, 0xe803, FUNC(slapfight_mcu_r), FUNC(slapfight_mcu_w) );
1863
 
        machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x00, FUNC(slapfight_mcu_status_r) );
 
1855
        slapfght_state *state = machine.driver_data<slapfght_state>();
 
1856
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xe803, 0xe803, read8_delegate(FUNC(slapfght_state::slapfight_mcu_r),state), write8_delegate(FUNC(slapfght_state::slapfight_mcu_w),state));
 
1857
        machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x00, 0x00, read8_delegate(FUNC(slapfght_state::slapfight_mcu_status_r),state));
1864
1858
}
1865
1859
 
1866
1860
static DRIVER_INIT( perfrman )
1867
1861
{
1868
 
        machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x00, FUNC(perfrman_port_00_r) );
 
1862
        slapfght_state *state = machine.driver_data<slapfght_state>();
 
1863
        machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x00, 0x00, read8_delegate(FUNC(slapfght_state::perfrman_port_00_r),state));
1869
1864
}
1870
1865
 
1871
1866
/*  ( YEAR  NAME        PARENT    MACHINE     INPUT     INIT      MONITOR  COMPANY    FULLNAME     FLAGS ) */