From 5fcc8719c46ab90e03d2a3b9b9de047d292a954b Mon Sep 17 00:00:00 2001 From: Scott Stone Date: Tue, 16 Jul 2013 18:31:35 +0000 Subject: [PATCH] Modernized/converted nb1413m3 to a device. [Osso] --- src/mame/drivers/hyhoo.c | 33 ++-- src/mame/drivers/nbmj8688.c | 251 ++++++++++++++--------------- src/mame/drivers/nbmj8891.c | 250 +++++++++++++++-------------- src/mame/drivers/nbmj8900.c | 22 ++- src/mame/drivers/nbmj8991.c | 100 ++++++------ src/mame/drivers/pastelg.c | 20 +-- src/mame/includes/hyhoo.h | 9 +- src/mame/includes/nb1413m3.h | 104 +++++++----- src/mame/includes/nbmj8688.h | 12 +- src/mame/includes/nbmj8891.h | 11 +- src/mame/includes/nbmj8900.h | 11 +- src/mame/includes/nbmj8991.h | 12 +- src/mame/includes/pastelg.h | 12 +- src/mame/machine/nb1413m3.c | 295 ++++++++++++++++++----------------- src/mame/video/hyhoo.c | 19 ++- src/mame/video/nbmj8688.c | 13 +- src/mame/video/nbmj8891.c | 13 +- src/mame/video/nbmj8900.c | 13 +- src/mame/video/nbmj8991.c | 13 +- src/mame/video/pastelg.c | 13 +- 20 files changed, 659 insertions(+), 567 deletions(-) diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c index cb6ecf0802a..538490f04e2 100644 --- a/src/mame/drivers/hyhoo.c +++ b/src/mame/drivers/hyhoo.c @@ -23,7 +23,6 @@ Memo: #include "emu.h" #include "cpu/z80/z80.h" -#include "includes/nb1413m3.h" #include "sound/ay8910.h" #include "sound/dac.h" #include "includes/hyhoo.h" @@ -49,23 +48,28 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( hyhoo_io_map, AS_IO, 8, hyhoo_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) -// AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) +// AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_RANGE(0x81, 0x81) AM_DEVREAD("aysnd", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("aysnd", ay8910_device, data_address_w) AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM") AM_RANGE(0x90, 0x97) AM_WRITE(hyhoo_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r, nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r, nb1413m3_sndrombank1_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xc0, 0xcf) AM_WRITEONLY AM_SHARE("clut") AM_RANGE(0xd0, 0xd0) AM_READNOP AM_DEVWRITE("dac", dac_device, write_unsigned8) // unknown read AM_RANGE(0xe0, 0xe0) AM_WRITE(hyhoo_romsel_w) - AM_RANGE(0xe0, 0xe1) AM_READ_LEGACY(nb1413m3_gfxrom_r) - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) + AM_RANGE(0xe0, 0xe1) AM_DEVREAD("nb1413m3", nb1413m3_device, gfxrom_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) // AM_RANGE(0xf0, 0xf0) AM_WRITENOP - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END +CUSTOM_INPUT_MEMBER( hyhoo_state::nb1413m3_busyflag_r ) +{ + return m_nb1413m3->m_busyflag & 0x01; +} + static INPUT_PORTS_START( hyhoo ) PORT_START("DSWA") PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) @@ -112,7 +116,7 @@ static INPUT_PORTS_START( hyhoo ) PORT_DIPSETTING( 0x00, "95%" ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, hyhoo_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // NOT USED PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) // SERVICE PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Memory Reset") // MEMORY RESET @@ -187,7 +191,7 @@ static INPUT_PORTS_START( hyhoo2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, hyhoo_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // NOT USED PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) // SERVICE PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Memory Reset") // MEMORY RESET @@ -245,10 +249,8 @@ static MACHINE_CONFIG_START( hyhoo, hyhoo_state ) MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.00 MHz ?? */ MCFG_CPU_PROGRAM_MAP(hyhoo_map) MCFG_CPU_IO_MAP(hyhoo_io_map) - MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) - - MCFG_MACHINE_START(nb1413m3) - MCFG_MACHINE_RESET(nb1413m3) + MCFG_CPU_VBLANK_INT_DRIVER("screen", hyhoo_state, irq0_line_hold) + MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ @@ -258,6 +260,8 @@ static MACHINE_CONFIG_START( hyhoo, hyhoo_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(hyhoo_state, screen_update_hyhoo) + + MCFG_NB1413M3_ADD("nb1413m3") /* sound hardware */ @@ -266,7 +270,6 @@ static MACHINE_CONFIG_START( hyhoo, hyhoo_state ) MCFG_SOUND_ADD("aysnd", AY8910, 1250000) MCFG_SOUND_CONFIG(ay8910_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35) - MCFG_DAC_ADD("dac") MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_CONFIG_END diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c index 9d9161bd636..31b2ce68c90 100644 --- a/src/mame/drivers/nbmj8688.c +++ b/src/mame/drivers/nbmj8688.c @@ -32,7 +32,6 @@ TODO: #include "emu.h" #include "cpu/z80/z80.h" -#include "includes/nb1413m3.h" #include "sound/dac.h" #include "sound/ay8910.h" #include "sound/3812intf.h" @@ -299,20 +298,20 @@ READ8_MEMBER(nbmj8688_state::ff_r) static ADDRESS_MAP_START( secolove_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(secolove_romsel_w) -// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) -// AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) +// AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) +// AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w) ADDRESS_MAP_END @@ -324,148 +323,148 @@ WRITE8_MEMBER(nbmj8688_state::barline_output_w) static ADDRESS_MAP_START( barline_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) -// AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_sndrombank1_w) - AM_RANGE(0x70, 0x70) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) +// AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, sndrombank1_w) + AM_RANGE(0x70, 0x70) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READ_LEGACY(nb1413m3_inputport2_r) AM_WRITE(barline_output_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport2_r) AM_WRITE(barline_output_w) AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? // AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) //not used AM_RANGE(0xe0, 0xe0) AM_WRITE(secolove_romsel_w) - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) AM_WRITE(mjsikaku_scrolly_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(mjsikaku_scrolly_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( crystalg_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(crystalg_romsel_w) -// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) +// AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) // AM_RANGE(0xf0, 0xf0) AM_WRITENOP -// AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) +// AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w) AM_RANGE(0x70, 0x77) AM_WRITE(nbmj8688_blitter_w) AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w) - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) AM_WRITE(mjsikaku_scrolly_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(mjsikaku_scrolly_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( kaguya_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w) AM_RANGE(0x70, 0x77) AM_WRITE(nbmj8688_blitter_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w) - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) AM_WRITE(mjsikaku_scrolly_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(mjsikaku_scrolly_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( iemoto_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) - AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(nb1413m3_sndrombank2_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) + AM_RANGE(0x10, 0x10) AM_DEVWRITE("nb1413m3", nb1413m3_device, sndrombank2_w) AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0x40, 0x47) AM_WRITE(nbmj8688_blitter_w) AM_RANGE(0x50, 0x50) AM_WRITE(seiha_romsel_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w) -// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) -// AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) +// AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) +// AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w) ADDRESS_MAP_END static ADDRESS_MAP_START( seiha_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) - AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(nb1413m3_sndrombank2_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) + AM_RANGE(0x10, 0x10) AM_DEVWRITE("nb1413m3", nb1413m3_device, sndrombank2_w) AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0x50, 0x50) AM_WRITE(seiha_romsel_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w) -// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) -// AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) +// AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) +// AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w) ADDRESS_MAP_END static ADDRESS_MAP_START( mjgaiden_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w) -// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) -// AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) +// AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) +// AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w) ADDRESS_MAP_END static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x42, 0x42) AM_WRITE(nbmj8688_HD61830B_0_data_w) AM_RANGE(0x43, 0x43) AM_WRITE(nbmj8688_HD61830B_0_instr_w) AM_RANGE(0x44, 0x44) AM_WRITE(nbmj8688_HD61830B_1_data_w) @@ -474,62 +473,66 @@ static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8, nbmj8688_state ) AM_RANGE(0x47, 0x47) AM_WRITE(nbmj8688_HD61830B_both_instr_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(secolove_romsel_w) -// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) -// AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) +// AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) +// AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w) ADDRESS_MAP_END static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) - AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(nb1413m3_sndrombank2_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) + AM_RANGE(0x10, 0x10) AM_DEVWRITE("nb1413m3", nb1413m3_device, sndrombank2_w) AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w) AM_RANGE(0x60, 0x67) AM_WRITE(nbmj8688_blitter_w) AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w) - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w) ADDRESS_MAP_END static ADDRESS_MAP_START( mmsikaku_io_map, AS_IO, 8, nbmj8688_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) - AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(nb1413m3_sndrombank2_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) + AM_RANGE(0x10, 0x10) AM_DEVWRITE("nb1413m3", nb1413m3_device, sndrombank2_w) AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w) AM_RANGE(0x40, 0x47) AM_WRITE(nbmj8688_blitter_w) AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("psg", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("psg", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w) -// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) -// AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) +// AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) +// AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) AM_RANGE(0xf0, 0xf0) AM_WRITE(mjsikaku_scrolly_w) ADDRESS_MAP_END +CUSTOM_INPUT_MEMBER( nbmj8688_state::nb1413m3_busyflag_r ) +{ + return m_nb1413m3->m_busyflag & 0x01; +} static INPUT_PORTS_START( mjsikaku ) PORT_START("DSWA") @@ -585,7 +588,7 @@ static INPUT_PORTS_START( mjsikaku ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -690,7 +693,7 @@ static INPUT_PORTS_START( mmsikaku ) #endif PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -756,7 +759,7 @@ static INPUT_PORTS_START( otonano ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -822,7 +825,7 @@ static INPUT_PORTS_START( mjcamera ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -885,7 +888,7 @@ static INPUT_PORTS_START( kaguya ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET @@ -952,7 +955,7 @@ static INPUT_PORTS_START( kaguya2 ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET @@ -1019,7 +1022,7 @@ static INPUT_PORTS_START( kanatuen ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET @@ -1086,7 +1089,7 @@ static INPUT_PORTS_START( kyuhito ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET @@ -1153,7 +1156,7 @@ static INPUT_PORTS_START( idhimitu ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET @@ -1219,7 +1222,7 @@ static INPUT_PORTS_START( secolove ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1284,7 +1287,7 @@ static INPUT_PORTS_START( barline ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1394,7 +1397,7 @@ static INPUT_PORTS_START( citylove ) PORT_DIPSETTING( 0x00, "HAIPAI" ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1499,7 +1502,7 @@ static INPUT_PORTS_START( mcitylov ) #endif PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1565,7 +1568,7 @@ static INPUT_PORTS_START( seiha ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1629,7 +1632,7 @@ static INPUT_PORTS_START( seiham ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1695,7 +1698,7 @@ static INPUT_PORTS_START( iemoto ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1761,7 +1764,7 @@ static INPUT_PORTS_START( iemotom ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1827,7 +1830,7 @@ static INPUT_PORTS_START( ryuuha ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1892,7 +1895,7 @@ static INPUT_PORTS_START( bijokkoy ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1956,7 +1959,7 @@ static INPUT_PORTS_START( bijokkog ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2020,7 +2023,7 @@ static INPUT_PORTS_START( housemnq ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2083,7 +2086,7 @@ static INPUT_PORTS_START( housemn2 ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2149,7 +2152,7 @@ static INPUT_PORTS_START( orangec ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2215,7 +2218,7 @@ static INPUT_PORTS_START( orangeci ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2281,7 +2284,7 @@ static INPUT_PORTS_START( vipclub ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2347,7 +2350,7 @@ static INPUT_PORTS_START( livegal ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2425,7 +2428,7 @@ static INPUT_PORTS_START( ojousan ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2491,7 +2494,7 @@ static INPUT_PORTS_START( ojousanm ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2557,7 +2560,7 @@ static INPUT_PORTS_START( korinai ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2623,7 +2626,7 @@ static INPUT_PORTS_START( korinaim ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2689,7 +2692,7 @@ static INPUT_PORTS_START( crystalg ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2751,7 +2754,7 @@ static INPUT_PORTS_START( crystal2 ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2817,7 +2820,7 @@ static INPUT_PORTS_START( apparel ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2883,7 +2886,7 @@ static INPUT_PORTS_START( nightlov ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8688_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2898,12 +2901,12 @@ INPUT_PORTS_END READ8_MEMBER(nbmj8688_state::dipsw1_r) { - return nb1413m3_dipsw1_r(space,offset); + return m_nb1413m3->dipsw1_r(space,offset); } READ8_MEMBER(nbmj8688_state::dipsw2_r) { - return nb1413m3_dipsw2_r(space,offset); + return m_nb1413m3->dipsw2_r(space,offset); } static const ay8910_interface ay8910_config = @@ -2921,10 +2924,9 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.00 MHz */ - MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) + MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj8688_state, irq0_line_hold) - MCFG_MACHINE_START(nb1413m3) - MCFG_MACHINE_RESET(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ @@ -3031,13 +3033,12 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.00 MHz */ - MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) + MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj8688_state, irq0_line_hold) MCFG_CPU_PROGRAM_MAP(secolove_map) MCFG_CPU_IO_MAP(secolove_io_map) MCFG_CPU_IO_MAP(p16bit_LCD_io_map) - MCFG_MACHINE_START(nb1413m3) - MCFG_MACHINE_RESET(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c index 4a72814fecc..50ed286f490 100644 --- a/src/mame/drivers/nbmj8891.c +++ b/src/mame/drivers/nbmj8891.c @@ -43,7 +43,6 @@ TODO: #include "emu.h" #include "cpu/z80/z80.h" -#include "includes/nb1413m3.h" #include "sound/dac.h" #include "sound/ay8910.h" #include "sound/3812intf.h" @@ -433,124 +432,124 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gionbana_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x20, 0x27) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) //AM_WRITENOP + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) //AM_WRITENOP AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w) - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( mgion_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x30, 0x37) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) //AM_WRITENOP + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) //AM_WRITENOP AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w) - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( omotesnd_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x30, 0x30) AM_WRITE(nbmj8891_vramsel_w) AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x20, 0x20) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w) -// AM_RANGE(0x50, 0x50) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) +// AM_RANGE(0x50, 0x50) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("fmsnd", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("fmsnd", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) AM_WRITENOP - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) AM_WRITENOP + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) AM_WRITENOP + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) AM_WRITENOP AM_RANGE(0xd0, 0xdf) AM_READ(nbmj8891_clut_r) AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( hanamomo_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x30, 0x37) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) //AM_WRITENOP + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) //AM_WRITENOP AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) // AM_RANGE(0xe0, 0xe0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) //AM_WRITENOP - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) //AM_WRITENOP + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( msjiken_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) //AM_WRITENOP + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) //AM_WRITENOP AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) // AM_RANGE(0xe0, 0xe0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) //AM_WRITENOP - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) //AM_WRITENOP + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( scandal_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w) AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x20, 0x20) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x50, 0x50) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READWRITE_LEGACY(nb1413m3_inputport3_r,nb1413m3_nmi_clock_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport3_r, nmi_clock_w) AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) // AM_RANGE(0xe0, 0xe0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) //AM_WRITENOP - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) //AM_WRITENOP + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( scandalm_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x20, 0x20) AM_WRITE(nbmj8891_clutsel_w) @@ -558,19 +557,19 @@ static ADDRESS_MAP_START( scandalm_io_map, AS_IO, 8, nbmj8891_state ) AM_RANGE(0x50, 0x50) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("fmsnd", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("fmsnd", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READWRITE_LEGACY(nb1413m3_inputport3_r,nb1413m3_nmi_clock_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport3_r, nmi_clock_w) AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) // AM_RANGE(0xe0, 0xe0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( bananadr_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x20, 0x20) AM_WRITE(nbmj8891_clutsel_w) @@ -578,71 +577,85 @@ static ADDRESS_MAP_START( bananadr_io_map, AS_IO, 8, nbmj8891_state ) AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w) AM_RANGE(0x50, 0x50) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READWRITE_LEGACY(nb1413m3_inputport3_r,nb1413m3_nmi_clock_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport3_r, nmi_clock_w) AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) // AM_RANGE(0xe0, 0xe0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( lovehous_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) //AM_WRITENOP - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) //AM_WRITENOP + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xc0, 0xc0) AM_READ_PORT("PORT0-2") AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w) - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( maiko_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w) AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w) AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) AM_RANGE(0xc0, 0xc0) AM_READ_PORT("PORT0-2") //AM_WRITENOP AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w) - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( taiwanmb_io_map, AS_IO, 8, nbmj8891_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_RANGE(0x81, 0x81) AM_DEVREAD("fmsnd", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("fmsnd", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) //AM_WRITENOP // ? - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) //AM_WRITENOP // ? + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) // AM_RANGE(0xc0, 0xc0) AM_WRITENOP // ? // AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog? AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) - AM_RANGE(0xe0, 0xe0) AM_READ_LEGACY(nb1413m3_dipsw3_h_r) AM_WRITE(nbmj8891_taiwanmb_gfxdraw_w) // blitter draw start - AM_RANGE(0xe1, 0xe1) AM_READ_LEGACY(nb1413m3_dipsw3_l_r) - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw2_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw1_r) + AM_RANGE(0xe0, 0xe0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw3_h_r) AM_WRITE(nbmj8891_taiwanmb_gfxdraw_w) // blitter draw start + AM_RANGE(0xe1, 0xe1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw3_l_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw2_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) ADDRESS_MAP_END +CUSTOM_INPUT_MEMBER( nbmj8891_state::nb1413m3_busyflag_r ) +{ + return m_nb1413m3->m_busyflag & 0x01; +} + +/* 2008-08 FP: + * In ALL games (but pastelg, hyhoo & hyhoo2) nb1413m3_outcoin_flag is read at inputport0. + * However, a few games (lovehous, maiko, mmaiko, hanaoji and the ones using inputport3_r below) + * read nb1413m3_outcoin_flag also at inputport3! Is this the correct behaviour for these games + * or should they only check the flag at inputport3? */ +CUSTOM_INPUT_MEMBER( nbmj8891_state::nb1413m3_outcoin_flag_r ) +{ + return m_nb1413m3->m_outcoin_flag & 0x01; +} static INPUT_PORTS_START( hanamomo ) PORT_START("DSWA") @@ -698,7 +711,7 @@ static INPUT_PORTS_START( hanamomo ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -771,7 +784,7 @@ static INPUT_PORTS_START( mjcamerb ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -837,7 +850,7 @@ static INPUT_PORTS_START( mmcamera ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -903,7 +916,7 @@ static INPUT_PORTS_START( msjiken ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -989,7 +1002,7 @@ static INPUT_PORTS_START( telmahjn ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1074,7 +1087,7 @@ static INPUT_PORTS_START( gionbana ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1140,7 +1153,7 @@ static INPUT_PORTS_START( mgion ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1206,7 +1219,7 @@ static INPUT_PORTS_START( omotesnd ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1271,7 +1284,7 @@ static INPUT_PORTS_START( abunai ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1337,7 +1350,7 @@ static INPUT_PORTS_START( mgmen89 ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1406,7 +1419,7 @@ static INPUT_PORTS_START( mjfocus ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1470,7 +1483,7 @@ static INPUT_PORTS_START( mjfocusm ) PORT_DIPSETTING( 0x00, "B" ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1536,7 +1549,7 @@ static INPUT_PORTS_START( peepshow ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1602,7 +1615,7 @@ static INPUT_PORTS_START( scandal ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1666,7 +1679,7 @@ static INPUT_PORTS_START( scandalm ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1732,7 +1745,7 @@ static INPUT_PORTS_START( mjnanpas ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1798,7 +1811,7 @@ static INPUT_PORTS_START( mjnanpaa ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1867,7 +1880,7 @@ static INPUT_PORTS_START( bananadr ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1932,7 +1945,7 @@ static INPUT_PORTS_START( club90s ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1999,7 +2012,7 @@ static INPUT_PORTS_START( lovehous ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2012,7 +2025,7 @@ static INPUT_PORTS_START( lovehous ) PORT_START("PORT0-2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_outcoin_flag_r, NULL) // OUT COIN + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_outcoin_flag_r, NULL) // OUT COIN PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2074,7 +2087,7 @@ static INPUT_PORTS_START( mladyhtr ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2139,7 +2152,7 @@ static INPUT_PORTS_START( chinmoku ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2205,7 +2218,7 @@ static INPUT_PORTS_START( maiko ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) // @@ -2218,7 +2231,7 @@ static INPUT_PORTS_START( maiko ) PORT_START("PORT0-2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_outcoin_flag_r, NULL) // OUT COIN + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_outcoin_flag_r, NULL) // OUT COIN PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) // @@ -2281,7 +2294,7 @@ static INPUT_PORTS_START( mmaiko ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2294,7 +2307,7 @@ static INPUT_PORTS_START( mmaiko ) PORT_START("PORT0-2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_outcoin_flag_r, NULL) // OUT COIN + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_outcoin_flag_r, NULL) // OUT COIN PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2357,7 +2370,7 @@ static INPUT_PORTS_START( hanaoji ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) // @@ -2370,7 +2383,7 @@ static INPUT_PORTS_START( hanaoji ) PORT_START("PORT0-2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_outcoin_flag_r, NULL) // OUT COIN + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_outcoin_flag_r, NULL) // OUT COIN PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) // @@ -2432,7 +2445,7 @@ static INPUT_PORTS_START( pairsnb ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2535,7 +2548,7 @@ static INPUT_PORTS_START( taiwanmb ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8891_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // COIN OUT PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -2610,10 +2623,9 @@ static MACHINE_CONFIG_START( gionbana, nbmj8891_state ) MCFG_CPU_ADD("maincpu", Z80, 20000000/4) /* 5.00 MHz ? */ MCFG_CPU_PROGRAM_MAP(gionbana_map) MCFG_CPU_IO_MAP(gionbana_io_map) - MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) + MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj8891_state, irq0_line_hold) - MCFG_MACHINE_START(nb1413m3) - MCFG_MACHINE_RESET(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -2832,7 +2844,7 @@ static MACHINE_CONFIG_DERIVED( taiwanmb, gionbana ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(taiwanmb_map) MCFG_CPU_IO_MAP(taiwanmb_io_map) -// MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) +// MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj8891_state, irq0_line_hold) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c index 95bdb47fd38..215168813e9 100644 --- a/src/mame/drivers/nbmj8900.c +++ b/src/mame/drivers/nbmj8900.c @@ -24,7 +24,6 @@ TODO: ******************************************************************************/ #include "emu.h" -#include "includes/nb1413m3.h" #include "cpu/z80/z80.h" #include "sound/dac.h" #include "sound/ay8910.h" @@ -111,8 +110,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( ohpaipee_io_map, AS_IO, 8, nbmj8900_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) + AM_RANGE(0x00, 0x00) AM_DEVWRITE("nb1413m3", nb1413m3_device, nmi_clock_w) AM_RANGE(0x20, 0x27) AM_WRITE(nbmj8900_blitter_w) AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8900_clutsel_w) @@ -121,15 +120,15 @@ static ADDRESS_MAP_START( ohpaipee_io_map, AS_IO, 8, nbmj8900_state ) AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8900_vramsel_w) - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) - AM_RANGE(0xf1, 0xf1) AM_READWRITE_LEGACY(nb1413m3_dipsw2_r, nb1413m3_outcoin_w) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) + AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw2_r, outcoin_w) ADDRESS_MAP_END @@ -309,10 +308,9 @@ static MACHINE_CONFIG_START( ohpaipee, nbmj8900_state ) MCFG_CPU_ADD("maincpu", Z80, 20000000/4) /* 5.00 MHz ? */ MCFG_CPU_PROGRAM_MAP(ohpaipee_map) MCFG_CPU_IO_MAP(ohpaipee_io_map) - MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) + MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj8900_state, irq0_line_hold) - MCFG_MACHINE_START(nb1413m3) - MCFG_MACHINE_RESET(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c index 490fcd3586e..a7d120a15b0 100644 --- a/src/mame/drivers/nbmj8991.c +++ b/src/mame/drivers/nbmj8991.c @@ -30,7 +30,6 @@ Notes: #include "emu.h" #include "cpu/z80/z80.h" -#include "includes/nb1413m3.h" #include "sound/ay8910.h" #include "sound/3812intf.h" #include "sound/dac.h" @@ -66,7 +65,6 @@ void nbmj8991_state::machine_reset() membank("bank1")->configure_entries(0, 4, memregion("audiocpu")->base() + 0x8000, 0x8000); membank("bank1")->set_entry(0); } - MACHINE_RESET_CALL_LEGACY(nb1413m3); } DRIVER_INIT_MEMBER(nbmj8991_state,pstadium) @@ -248,58 +246,58 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( galkoku_io_map, AS_IO, 8, nbmj8991_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) AM_WRITE(nbmj8991_blitter_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_WRITE(nbmj8991_blitter_w) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READWRITE_LEGACY(nb1413m3_inputport3_r,nb1413m3_nmi_clock_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport3_r, nmi_clock_w) AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) // AM_RANGE(0xe0, 0xe0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( hyouban_io_map, AS_IO, 8, nbmj8991_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) AM_WRITE(nbmj8991_blitter_w) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_WRITE(nbmj8991_blitter_w) AM_RANGE(0x81, 0x81) AM_DEVREAD("fmsnd", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("fmsnd", ay8910_device, data_address_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w) - AM_RANGE(0xc0, 0xc0) AM_READWRITE_LEGACY(nb1413m3_inputport3_r,nb1413m3_nmi_clock_w) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, sndrombank1_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport3_r, nmi_clock_w) AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", dac_device, write_unsigned8) // AM_RANGE(0xe0, 0xe0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf1, 0xf1) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( pstadium_io_map, AS_IO, 8, nbmj8991_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w) AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READ_LEGACY(nb1413m3_inputport2_r) //AM_WRITENOP - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport2_r) //AM_WRITENOP + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) // AM_RANGE(0xd0, 0xd0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,nb1413m3_outcoin_w) - AM_RANGE(0xf8, 0xf8) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, dipsw1_r, outcoin_w) + AM_RANGE(0xf8, 0xf8) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END static ADDRESS_MAP_START( av2mj1bb_io_map, AS_IO, 8, nbmj8991_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w) AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w) - AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_vcrctrl_w) - AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(nb1413m3_inputport3_r) + AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport2_r, vcrctrl_w) + AM_RANGE(0xc0, 0xc0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport3_r) // AM_RANGE(0xd0, 0xd0) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) + AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) // AM_RANGE(0xf0, 0xf0) AM_WRITENOP - AM_RANGE(0xf8, 0xf8) AM_READ_LEGACY(nb1413m3_dipsw2_r) + AM_RANGE(0xf8, 0xf8) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r) ADDRESS_MAP_END @@ -318,6 +316,10 @@ static ADDRESS_MAP_START( nbmj8991_sound_io_map, AS_IO, 8, nbmj8991_state ) AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write) ADDRESS_MAP_END +CUSTOM_INPUT_MEMBER( nbmj8991_state::nb1413m3_busyflag_r ) +{ + return m_nb1413m3->m_busyflag & 0x01; +} static INPUT_PORTS_START( pstadium ) PORT_START("DSWA") @@ -372,7 +374,7 @@ static INPUT_PORTS_START( pstadium ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -437,7 +439,7 @@ static INPUT_PORTS_START( triplew1 ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -502,7 +504,7 @@ static INPUT_PORTS_START( ntopstar ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -567,7 +569,7 @@ static INPUT_PORTS_START( mjlstory ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -632,7 +634,7 @@ static INPUT_PORTS_START( vanilla ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -699,7 +701,7 @@ static INPUT_PORTS_START( finalbny ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -764,7 +766,7 @@ static INPUT_PORTS_START( qmhayaku ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -830,7 +832,7 @@ static INPUT_PORTS_START( galkoku ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -899,7 +901,7 @@ static INPUT_PORTS_START( hyouban ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -968,7 +970,7 @@ static INPUT_PORTS_START( galkaika ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1037,7 +1039,7 @@ static INPUT_PORTS_START( tokyogal ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1106,7 +1108,7 @@ static INPUT_PORTS_START( tokimbsj ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1175,7 +1177,7 @@ static INPUT_PORTS_START( mcontest ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1244,7 +1246,7 @@ static INPUT_PORTS_START( uchuuai ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1313,7 +1315,7 @@ static INPUT_PORTS_START( mjgottub ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1377,7 +1379,7 @@ static INPUT_PORTS_START( av2mj1bb ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1444,7 +1446,7 @@ static INPUT_PORTS_START( av2mj2rg ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, nbmj8991_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -1474,9 +1476,9 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku MCFG_CPU_ADD("maincpu", Z80, 25000000/5) /* 5.00 MHz ? */ MCFG_CPU_PROGRAM_MAP(galkoku_map) MCFG_CPU_IO_MAP(galkoku_io_map) - MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) + MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj8991_state, irq0_line_hold) - MCFG_MACHINE_START(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1504,9 +1506,9 @@ static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium MCFG_CPU_ADD("maincpu", Z80, 6000000/2) /* 3.00 MHz */ MCFG_CPU_PROGRAM_MAP(pstadium_map) MCFG_CPU_IO_MAP(pstadium_io_map) - MCFG_CPU_VBLANK_INT("screen", nb1413m3_interrupt) + MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj8991_state, irq0_line_hold) - MCFG_MACHINE_START(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4.00 MHz */ MCFG_CPU_PROGRAM_MAP(nbmj8991_sound_map) diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c index 5e9caf899b7..bd55750230b 100644 --- a/src/mame/drivers/pastelg.c +++ b/src/mame/drivers/pastelg.c @@ -22,7 +22,6 @@ Memo: #include "emu.h" #include "cpu/z80/z80.h" -#include "includes/nb1413m3.h" #include "sound/ay8910.h" #include "sound/dac.h" #include "includes/pastelg.h" @@ -65,13 +64,13 @@ READ8_MEMBER(pastelg_state::pastelg_irq_ack_r) static ADDRESS_MAP_START( pastelg_io_map, AS_IO, 8, pastelg_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) // AM_RANGE(0x00, 0x00) AM_WRITENOP - AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) + AM_RANGE(0x00, 0x7f) AM_DEVREAD("nb1413m3", nb1413m3_device, sndrom_r) AM_RANGE(0x81, 0x81) AM_DEVREAD("aysnd", ay8910_device, data_r) AM_RANGE(0x82, 0x83) AM_DEVWRITE("aysnd", ay8910_device, data_address_w) AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM") AM_RANGE(0x90, 0x96) AM_WRITE(pastelg_blitter_w) - AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r, nb1413m3_inputportsel_w) - AM_RANGE(0xb0, 0xb0) AM_READ_LEGACY(nb1413m3_inputport2_r) AM_WRITE(pastelg_romsel_w) + AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w) + AM_RANGE(0xb0, 0xb0) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport2_r) AM_WRITE(pastelg_romsel_w) AM_RANGE(0xc0, 0xc0) AM_READ(pastelg_sndrom_r) AM_RANGE(0xc0, 0xcf) AM_WRITE(pastelg_clut_w) AM_RANGE(0xd0, 0xd0) AM_READ(pastelg_irq_ack_r) AM_DEVWRITE("dac", dac_device, write_unsigned8) @@ -112,6 +111,11 @@ WRITE8_MEMBER(pastelg_state::threeds_inputportsel_w) m_mux_data = ~data; } +CUSTOM_INPUT_MEMBER( pastelg_state::nb1413m3_busyflag_r ) +{ + return m_nb1413m3->m_busyflag & 0x01; +} + static ADDRESS_MAP_START( threeds_io_map, AS_IO, 8, pastelg_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x81, 0x81) AM_DEVREAD("aysnd", ay8910_device, data_r) @@ -200,7 +204,7 @@ static INPUT_PORTS_START( pastelg ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("SYSTEM") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(nb1413m3_busyflag_r, NULL) // DRAW BUSY + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, pastelg_state, nb1413m3_busyflag_r, NULL) // DRAW BUSY PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE3 ) // MEMORY RESET PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // ANALYZER @@ -413,8 +417,7 @@ static MACHINE_CONFIG_START( pastelg, pastelg_state ) MCFG_CPU_IO_MAP(pastelg_io_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) // nmiclock not written, chip is 1411M1 instead of 1413M3 - MCFG_MACHINE_START(nb1413m3) - MCFG_MACHINE_RESET(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ @@ -470,8 +473,7 @@ static MACHINE_CONFIG_START( threeds, pastelg_state ) MCFG_CPU_IO_MAP(threeds_io_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) - MCFG_MACHINE_START(nb1413m3) - MCFG_MACHINE_RESET(nb1413m3) + MCFG_NB1413M3_ADD("nb1413m3") MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ diff --git a/src/mame/includes/hyhoo.h b/src/mame/includes/hyhoo.h index 9b42eafccb4..90de7aeee19 100644 --- a/src/mame/includes/hyhoo.h +++ b/src/mame/includes/hyhoo.h @@ -1,3 +1,5 @@ +#include "includes/nb1413m3.h" + class hyhoo_state : public driver_device { public: @@ -9,9 +11,12 @@ public: hyhoo_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_clut(*this, "clut"), - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_nb1413m3(*this, "nb1413m3") { } required_shared_ptr m_clut; + required_device m_maincpu; + required_device m_nb1413m3; int m_blitter_destx; int m_blitter_desty; int m_blitter_sizex; @@ -26,12 +31,12 @@ public: bitmap_rgb32 m_tmpbitmap; DECLARE_WRITE8_MEMBER(hyhoo_blitter_w); DECLARE_WRITE8_MEMBER(hyhoo_romsel_w); + DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_busyflag_r); DECLARE_DRIVER_INIT(hyhoo2); DECLARE_DRIVER_INIT(hyhoo); virtual void video_start(); UINT32 screen_update_hyhoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void hyhoo_gfxdraw(); - required_device m_maincpu; protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); diff --git a/src/mame/includes/nb1413m3.h b/src/mame/includes/nb1413m3.h index 8fee6c656ea..ea0231d171b 100644 --- a/src/mame/includes/nb1413m3.h +++ b/src/mame/includes/nb1413m3.h @@ -6,6 +6,14 @@ ******************************************************************************/ +#define NB1413M3_VCR_NOP 0x00 +#define NB1413M3_VCR_POWER 0x01 +#define NB1413M3_VCR_STOP 0x02 +#define NB1413M3_VCR_REWIND 0x04 +#define NB1413M3_VCR_PLAY 0x08 +#define NB1413M3_VCR_FFORWARD 0x10 +#define NB1413M3_VCR_PAUSE 0x20 + enum { NB1413M3_NONE = 0, // unknown @@ -110,41 +118,61 @@ enum { NB1413M3_PAIRSTEN }; -#define NB1413M3_VCR_NOP 0x00 -#define NB1413M3_VCR_POWER 0x01 -#define NB1413M3_VCR_STOP 0x02 -#define NB1413M3_VCR_REWIND 0x04 -#define NB1413M3_VCR_PLAY 0x08 -#define NB1413M3_VCR_FFORWARD 0x10 -#define NB1413M3_VCR_PAUSE 0x20 +class nb1413m3_device : public device_t +{ +public: + nb1413m3_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + ~nb1413m3_device() {} + + DECLARE_WRITE8_MEMBER( nmi_clock_w ); + DECLARE_READ8_MEMBER( sndrom_r ); + DECLARE_WRITE8_MEMBER( sndrombank1_w ); + DECLARE_WRITE8_MEMBER( sndrombank2_w ); + DECLARE_READ8_MEMBER( gfxrom_r ); + DECLARE_WRITE8_MEMBER( gfxrombank_w ); + DECLARE_WRITE8_MEMBER( gfxradr_l_w ); + DECLARE_WRITE8_MEMBER( gfxradr_h_w ); + DECLARE_WRITE8_MEMBER( inputportsel_w ); + DECLARE_READ8_MEMBER( inputport0_r ); + DECLARE_READ8_MEMBER( inputport1_r ); + DECLARE_READ8_MEMBER( inputport2_r ); + DECLARE_READ8_MEMBER( inputport3_r ); + DECLARE_READ8_MEMBER( dipsw1_r ); + DECLARE_READ8_MEMBER( dipsw2_r ); + DECLARE_READ8_MEMBER( dipsw3_l_r ); + DECLARE_READ8_MEMBER( dipsw3_h_r ); + DECLARE_WRITE8_MEMBER( outcoin_w ); + DECLARE_WRITE8_MEMBER( vcrctrl_w ); + + const char * m_sndromrgntag; + int m_sndrombank1; + int m_sndrombank2; + int m_busyctr; + int m_busyflag; + int m_outcoin_flag; + int m_inputport; + +protected: + // device-level overrides + virtual void device_config_complete(); + virtual void device_start(); + virtual void device_reset(); + +private: + int m_74ls193_counter; + int m_nmi_count; // for debug + int m_nmi_clock; + int m_nmi_enable; + int m_counter; + int m_gfxradr_l; + int m_gfxradr_h; + int m_gfxrombank; + int m_outcoin_enable; -/*----------- defined in machine/nb1413m3.c -----------*/ + TIMER_CALLBACK_MEMBER( timer_callback ); -MACHINE_START( nb1413m3 ); -MACHINE_RESET( nb1413m3 ); -DECLARE_WRITE8_HANDLER( nb1413m3_nmi_clock_w ); -INTERRUPT_GEN( nb1413m3_interrupt ); -DECLARE_READ8_HANDLER( nb1413m3_sndrom_r ); -DECLARE_WRITE8_HANDLER( nb1413m3_sndrombank1_w ); -DECLARE_WRITE8_HANDLER( nb1413m3_sndrombank2_w ); -DECLARE_READ8_HANDLER( nb1413m3_gfxrom_r ); -DECLARE_WRITE8_HANDLER( nb1413m3_gfxrombank_w ); -DECLARE_WRITE8_HANDLER( nb1413m3_gfxradr_l_w ); -DECLARE_WRITE8_HANDLER( nb1413m3_gfxradr_h_w ); -DECLARE_WRITE8_HANDLER( nb1413m3_inputportsel_w ); -DECLARE_READ8_HANDLER( nb1413m3_inputport0_r ); -DECLARE_READ8_HANDLER( nb1413m3_inputport1_r ); -DECLARE_READ8_HANDLER( nb1413m3_inputport2_r ); -DECLARE_READ8_HANDLER( nb1413m3_inputport3_r ); -DECLARE_READ8_HANDLER( nb1413m3_dipsw1_r ); -DECLARE_READ8_HANDLER( nb1413m3_dipsw2_r ); -DECLARE_READ8_HANDLER( nb1413m3_dipsw3_l_r ); -DECLARE_READ8_HANDLER( nb1413m3_dipsw3_h_r ); -DECLARE_WRITE8_HANDLER( nb1413m3_outcoin_w ); -DECLARE_WRITE8_HANDLER( nb1413m3_vcrctrl_w ); -CUSTOM_INPUT( nb1413m3_busyflag_r ); -CUSTOM_INPUT( nb1413m3_outcoin_flag_r ); +}; /* used in: hyhoo.c, niyanpai.c, pastelg.c, nbmj8688.c, nbmj8891.c, nbmj8991.c, nbmj9195.c*/ INPUT_PORTS_EXTERN( nbmjcontrols ); @@ -152,9 +180,9 @@ INPUT_PORTS_EXTERN( nbhf1_ctrl ); INPUT_PORTS_EXTERN( nbhf2_ctrl ); extern int nb1413m3_type; -extern const char * nb1413m3_sndromrgntag; -extern int nb1413m3_sndrombank1; -extern int nb1413m3_sndrombank2; -extern int nb1413m3_busyctr; -extern int nb1413m3_busyflag; -extern int nb1413m3_inputport; + +extern const device_type NB1413M3; + + +#define MCFG_NB1413M3_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, NB1413M3, 0) diff --git a/src/mame/includes/nbmj8688.h b/src/mame/includes/nbmj8688.h index 7d54130dee9..6e8fbb7c791 100644 --- a/src/mame/includes/nbmj8688.h +++ b/src/mame/includes/nbmj8688.h @@ -1,3 +1,5 @@ +#include "includes/nb1413m3.h" + class nbmj8688_state : public driver_device { public: @@ -8,8 +10,12 @@ public: nbmj8688_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_nb1413m3(*this, "nb1413m3") { } + required_device m_maincpu; + required_device m_nb1413m3; + int m_mjsikaku_scrolly; int m_blitter_destx; int m_blitter_desty; @@ -49,6 +55,7 @@ public: DECLARE_WRITE8_MEMBER(nbmj8688_HD61830B_0_data_w); DECLARE_WRITE8_MEMBER(nbmj8688_HD61830B_1_data_w); DECLARE_WRITE8_MEMBER(nbmj8688_HD61830B_both_data_w); + DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_busyflag_r); void mjsikaku_vramflip(); DECLARE_DRIVER_INIT(housemn2); DECLARE_DRIVER_INIT(bijokkoy); @@ -105,8 +112,7 @@ public: void common_video_start(); void nbmj8688_HD61830B_instr_w(address_space &space,int offset,int data,int chip); void nbmj8688_HD61830B_data_w(address_space &space,int offset,int data,int chip); - required_device m_maincpu; - + protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); }; diff --git a/src/mame/includes/nbmj8891.h b/src/mame/includes/nbmj8891.h index 5f93f42b1f1..2976bc32fac 100644 --- a/src/mame/includes/nbmj8891.h +++ b/src/mame/includes/nbmj8891.h @@ -1,3 +1,5 @@ +#include "includes/nb1413m3.h" + class nbmj8891_state : public driver_device { public: @@ -8,8 +10,12 @@ public: nbmj8891_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_nb1413m3(*this, "nb1413m3") { } + required_device m_maincpu; + required_device m_nb1413m3; + int m_scrolly; int m_blitter_destx; int m_blitter_desty; @@ -52,6 +58,8 @@ public: DECLARE_WRITE8_MEMBER(nbmj8891_scrolly_w); DECLARE_WRITE8_MEMBER(nbmj8891_vramsel_w); DECLARE_WRITE8_MEMBER(nbmj8891_romsel_w); + DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_busyflag_r); + DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_outcoin_flag_r); DECLARE_DRIVER_INIT(pairsten); DECLARE_DRIVER_INIT(scandalm); DECLARE_DRIVER_INIT(mmaiko); @@ -84,7 +92,6 @@ public: void update_pixel0(int x, int y); void update_pixel1(int x, int y); void nbmj8891_gfxdraw(); - required_device m_maincpu; protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); diff --git a/src/mame/includes/nbmj8900.h b/src/mame/includes/nbmj8900.h index 27121cd199f..f05b75f4273 100644 --- a/src/mame/includes/nbmj8900.h +++ b/src/mame/includes/nbmj8900.h @@ -1,3 +1,5 @@ +#include "includes/nb1413m3.h" + class nbmj8900_state : public driver_device { public: @@ -8,7 +10,11 @@ public: nbmj8900_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_nb1413m3(*this, "nb1413m3") { } + + required_device m_maincpu; + required_device m_nb1413m3; int m_scrolly; int m_blitter_destx; @@ -55,8 +61,7 @@ public: void update_pixel0(int x, int y); void update_pixel1(int x, int y); void nbmj8900_gfxdraw(); - required_device m_maincpu; - + protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); }; diff --git a/src/mame/includes/nbmj8991.h b/src/mame/includes/nbmj8991.h index 606d4015458..aca1d27b817 100644 --- a/src/mame/includes/nbmj8991.h +++ b/src/mame/includes/nbmj8991.h @@ -1,11 +1,18 @@ +#include "includes/nb1413m3.h" + class nbmj8991_state : public driver_device { public: nbmj8991_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu") { } + m_audiocpu(*this, "audiocpu"), + m_nb1413m3(*this, "nb1413m3") { } + required_device m_maincpu; + optional_device m_audiocpu; + required_device m_nb1413m3; + int m_scrollx; int m_scrolly; int m_blitter_destx; @@ -33,6 +40,7 @@ public: DECLARE_WRITE8_MEMBER(nbmj8991_blitter_w); DECLARE_READ8_MEMBER(nbmj8991_clut_r); DECLARE_WRITE8_MEMBER(nbmj8991_clut_w); + DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_busyflag_r); DECLARE_DRIVER_INIT(triplew1); DECLARE_DRIVER_INIT(mjlstory); DECLARE_DRIVER_INIT(mjgottub); @@ -59,6 +67,4 @@ public: void nbmj8991_vramflip(); void update_pixel(int x, int y); void nbmj8991_gfxdraw(); - required_device m_maincpu; - optional_device m_audiocpu; }; diff --git a/src/mame/includes/pastelg.h b/src/mame/includes/pastelg.h index ab98ff36bb7..d8757a75086 100644 --- a/src/mame/includes/pastelg.h +++ b/src/mame/includes/pastelg.h @@ -1,3 +1,5 @@ +#include "includes/nb1413m3.h" + class pastelg_state : public driver_device { public: @@ -8,8 +10,12 @@ public: pastelg_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_nb1413m3(*this, "nb1413m3") { } + required_device m_maincpu; + required_device m_nb1413m3; + UINT8 m_mux_data; int m_blitter_destx; int m_blitter_desty; @@ -36,6 +42,7 @@ public: DECLARE_WRITE8_MEMBER(threeds_output_w); DECLARE_READ8_MEMBER(threeds_rom_readback_r); DECLARE_WRITE8_MEMBER(pastelg_romsel_w); + DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_busyflag_r); DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_hackbusyflag_r); DECLARE_DRIVER_INIT(pastelg); virtual void video_start(); @@ -44,8 +51,7 @@ public: int pastelg_blitter_src_addr_r(address_space &space); void pastelg_vramflip(); void pastelg_gfxdraw(); - required_device m_maincpu; - + protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); }; diff --git a/src/mame/machine/nb1413m3.c b/src/mame/machine/nb1413m3.c index 414a9f1e0ef..f66b96498f8 100644 --- a/src/mame/machine/nb1413m3.c +++ b/src/mame/machine/nb1413m3.c @@ -17,92 +17,135 @@ Memo: #define NB1413M3_DEBUG 0 - -int nb1413m3_type; -const char * nb1413m3_sndromrgntag; -int nb1413m3_sndrombank1; -int nb1413m3_sndrombank2; -int nb1413m3_busyctr; -int nb1413m3_busyflag; -int nb1413m3_inputport; - -static int nb1413m3_74ls193_counter; -static int nb1413m3_nmi_count; // for debug -static int nb1413m3_nmi_clock; -static int nb1413m3_nmi_enable; -static int nb1413m3_counter; -static int nb1413m3_gfxradr_l; -static int nb1413m3_gfxradr_h; -static int nb1413m3_gfxrombank; -static int nb1413m3_outcoin_enable; -static int nb1413m3_outcoin_flag; - - #define NB1413M3_TIMER_BASE 20000000 -/* TODO: is all of this actually programmable? */ -static TIMER_CALLBACK( nb1413m3_timer_callback ) +const device_type NB1413M3 = &device_creator; + +nb1413m3_device::nb1413m3_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, NB1413M3, "Nichibutsu NB1413M3", tag, owner, clock, "nb1413m3", __FILE__), + m_sndromrgntag("voice"), + m_sndrombank1(0), + m_sndrombank2(0), + m_busyctr(0), + m_busyflag(1), + m_outcoin_flag(1), + m_inputport(0xff), + m_74ls193_counter(0), + m_nmi_count(0), + m_nmi_clock(0), + m_nmi_enable(0), + m_counter(0), + m_gfxradr_l(0), + m_gfxradr_h(0), + m_gfxrombank(0), + m_outcoin_enable(0) { - machine.scheduler().timer_set(attotime::from_hz(NB1413M3_TIMER_BASE) * 256, FUNC(nb1413m3_timer_callback)); +} - nb1413m3_74ls193_counter++; - nb1413m3_74ls193_counter &= 0x0f; +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- - if (nb1413m3_74ls193_counter == 0x0f) +void nb1413m3_device::device_config_complete() +{ +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void nb1413m3_device::device_start() +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(nb1413m3_device::timer_callback), this)); + + save_item(NAME(nb1413m3_type)); + save_item(NAME(m_sndrombank1)); + save_item(NAME(m_sndrombank2)); + save_item(NAME(m_busyctr)); + save_item(NAME(m_busyflag)); + save_item(NAME(m_inputport)); + save_item(NAME(m_74ls193_counter)); + save_item(NAME(m_nmi_count)); + save_item(NAME(m_nmi_clock)); + save_item(NAME(m_nmi_enable)); + save_item(NAME(m_counter)); + save_item(NAME(m_gfxradr_l)); + save_item(NAME(m_gfxradr_h)); + save_item(NAME(m_gfxrombank)); + save_item(NAME(m_outcoin_enable)); + save_item(NAME(m_outcoin_flag)); +} + +//------------------------------------------------- +// device_reset - device-specific startup +//------------------------------------------------- + +void nb1413m3_device::device_reset() +{ + m_nmi_clock = 0; + m_nmi_enable = 0; + m_nmi_count = 0; + m_74ls193_counter = 0; + m_counter = 0; + m_sndromrgntag = "voice"; + m_sndrombank1 = 0; + m_sndrombank2 = 0; + m_busyctr = 0; + m_busyflag = 1; + m_gfxradr_l = 0; + m_gfxradr_h = 0; + m_gfxrombank = 0; + m_inputport = 0xff; + m_outcoin_flag = 1; +} + +/***************************************************************************** + DEVICE HANDLERS +*****************************************************************************/ + +int nb1413m3_type; + +/* TODO: is all of this actually programmable? */ +TIMER_CALLBACK_MEMBER( nb1413m3_device::timer_callback ) +{ + machine().scheduler().timer_set(attotime::from_hz(NB1413M3_TIMER_BASE) * 256, timer_expired_delegate(FUNC(nb1413m3_device::timer_callback), this)); + + m_74ls193_counter++; + m_74ls193_counter &= 0x0f; + + if (m_74ls193_counter == 0x0f) { - if (nb1413m3_nmi_enable) + if (m_nmi_enable) { - machine.device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); - nb1413m3_nmi_count++; + machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_nmi_count++; } switch (nb1413m3_type) { case NB1413M3_TAIWANMB: - nb1413m3_74ls193_counter = 0x05; + m_74ls193_counter = 0x05; break; case NB1413M3_OMOTESND: - nb1413m3_74ls193_counter = 0x05; + m_74ls193_counter = 0x05; break; case NB1413M3_PASTELG: - nb1413m3_74ls193_counter = 0x02; + m_74ls193_counter = 0x02; break; case NB1413M3_HYHOO: case NB1413M3_HYHOO2: - nb1413m3_74ls193_counter = 0x05; + m_74ls193_counter = 0x05; break; } } } -MACHINE_START( nb1413m3 ) -{ - machine.scheduler().synchronize(FUNC(nb1413m3_timer_callback)); -} -MACHINE_RESET( nb1413m3 ) +WRITE8_MEMBER( nb1413m3_device::nmi_clock_w ) { - nb1413m3_nmi_clock = 0; - nb1413m3_nmi_enable = 0; - nb1413m3_nmi_count = 0; - nb1413m3_74ls193_counter = 0; - nb1413m3_counter = 0; - nb1413m3_sndromrgntag = "voice"; - nb1413m3_sndrombank1 = 0; - nb1413m3_sndrombank2 = 0; - nb1413m3_busyctr = 0; - nb1413m3_busyflag = 1; - nb1413m3_gfxradr_l = 0; - nb1413m3_gfxradr_h = 0; - nb1413m3_gfxrombank = 0; - nb1413m3_inputport = 0xff; - nb1413m3_outcoin_flag = 1; -} - - -WRITE8_HANDLER( nb1413m3_nmi_clock_w ) -{ - nb1413m3_nmi_clock = data; + m_nmi_clock = data; switch (nb1413m3_type) { @@ -130,34 +173,24 @@ WRITE8_HANDLER( nb1413m3_nmi_clock_w ) case NB1413M3_MMSIKAKU: case NB1413M3_KANATUEN: case NB1413M3_KYUHITO: - nb1413m3_nmi_clock -= 1; + m_nmi_clock -= 1; break; #if 1 case NB1413M3_NIGHTLOV: - nb1413m3_nmi_enable = ((data & 0x08) >> 3); - nb1413m3_nmi_enable |= ((data & 0x01) ^ 0x01); - nb1413m3_nmi_clock -= 1; + m_nmi_enable = ((data & 0x08) >> 3); + m_nmi_enable |= ((data & 0x01) ^ 0x01); + m_nmi_clock -= 1; - nb1413m3_sndrombank1 = 1; + m_sndrombank1 = 1; break; #endif } - nb1413m3_74ls193_counter = ((nb1413m3_nmi_clock & 0xf0) >> 4); + m_74ls193_counter = ((m_nmi_clock & 0xf0) >> 4); } -INTERRUPT_GEN( nb1413m3_interrupt ) -{ - device->execute().set_input_line(0, HOLD_LINE); - -#if NB1413M3_DEBUG - popmessage("NMI SW:%01X CLOCK:%02X COUNT:%02X", nb1413m3_nmi_enable, nb1413m3_nmi_clock, nb1413m3_nmi_count); - nb1413m3_nmi_count = 0; -#endif -} - -READ8_HANDLER( nb1413m3_sndrom_r ) +READ8_MEMBER( nb1413m3_device::sndrom_r ) { int rombank; @@ -177,11 +210,11 @@ READ8_HANDLER( nb1413m3_sndrom_r ) case NB1413M3_MMSIKAKU: case NB1413M3_KORINAI: case NB1413M3_KORINAIM: - rombank = (nb1413m3_sndrombank2 << 1) + (nb1413m3_sndrombank1 & 0x01); + rombank = (m_sndrombank2 << 1) + (m_sndrombank1 & 0x01); break; case NB1413M3_HYHOO: case NB1413M3_HYHOO2: - rombank = (nb1413m3_sndrombank1 & 0x01); + rombank = (m_sndrombank1 & 0x01); break; case NB1413M3_APPAREL: // no samples case NB1413M3_NIGHTLOV: // 0-1 @@ -202,7 +235,7 @@ READ8_HANDLER( nb1413m3_sndrom_r ) case NB1413M3_MJCAMERA: // 0 + 4-5 for protection case NB1413M3_IDHIMITU: // 0 + 4-5 for protection case NB1413M3_KANATUEN: // 0 + 6 for protection - rombank = nb1413m3_sndrombank1; + rombank = m_sndrombank1; break; case NB1413M3_TAIWANMB: case NB1413M3_OMOTESND: @@ -211,7 +244,7 @@ READ8_HANDLER( nb1413m3_sndrom_r ) case NB1413M3_MJFOCUSM: case NB1413M3_BANANADR: offset = (((offset & 0x7f00) >> 8) | ((offset & 0x0080) >> 0) | ((offset & 0x007f) << 8)); - rombank = (nb1413m3_sndrombank1 >> 1); + rombank = (m_sndrombank1 >> 1); break; case NB1413M3_MMCAMERA: case NB1413M3_MSJIKEN: @@ -241,18 +274,18 @@ READ8_HANDLER( nb1413m3_sndrom_r ) case NB1413M3_PAIRSNB: case NB1413M3_PAIRSTEN: default: - rombank = (nb1413m3_sndrombank1 >> 1); + rombank = (m_sndrombank1 >> 1); break; } offset += 0x08000 * rombank; #if NB1413M3_DEBUG - popmessage("Sound ROM %02X:%05X [B1:%02X B2:%02X]", rombank, offset, nb1413m3_sndrombank1, nb1413m3_sndrombank2); + popmessage("Sound ROM %02X:%05X [B1:%02X B2:%02X]", rombank, offset, m_sndrombank1, m_sndrombank2); #endif - if (offset < space.machine().root_device().memregion(nb1413m3_sndromrgntag)->bytes()) - return space.machine().root_device().memregion(nb1413m3_sndromrgntag)->base()[offset]; + if (offset < space.machine().root_device().memregion(m_sndromrgntag)->bytes()) + return space.machine().root_device().memregion(m_sndromrgntag)->base()[offset]; else { popmessage("read past sound ROM length (%05x[%02X])",offset, rombank); @@ -260,75 +293,59 @@ READ8_HANDLER( nb1413m3_sndrom_r ) } } -WRITE8_HANDLER( nb1413m3_sndrombank1_w ) +WRITE8_MEMBER( nb1413m3_device::sndrombank1_w ) { // if (data & 0x02) coin counter ? - nb1413m3_outcoin_w(space, 0, data); // (data & 0x04) >> 2; - nb1413m3_nmi_enable = ((data & 0x20) >> 5); - nb1413m3_sndrombank1 = (((data & 0xc0) >> 5) | ((data & 0x10) >> 4)); + outcoin_w(space, 0, data); // (data & 0x04) >> 2; + m_nmi_enable = ((data & 0x20) >> 5); + m_sndrombank1 = (((data & 0xc0) >> 5) | ((data & 0x10) >> 4)); } -WRITE8_HANDLER( nb1413m3_sndrombank2_w ) +WRITE8_MEMBER( nb1413m3_device::sndrombank2_w ) { - nb1413m3_sndrombank2 = (data & 0x03); + m_sndrombank2 = (data & 0x03); } -READ8_HANDLER( nb1413m3_gfxrom_r ) +READ8_MEMBER( nb1413m3_device::gfxrom_r ) { UINT8 *GFXROM = space.machine().root_device().memregion("gfx1")->base(); - return GFXROM[(0x20000 * (nb1413m3_gfxrombank | ((nb1413m3_sndrombank1 & 0x02) << 3))) + ((0x0200 * nb1413m3_gfxradr_h) + (0x0002 * nb1413m3_gfxradr_l)) + (offset & 0x01)]; + return GFXROM[(0x20000 * (m_gfxrombank | ((m_sndrombank1 & 0x02) << 3))) + ((0x0200 * m_gfxradr_h) + (0x0002 * m_gfxradr_l)) + (offset & 0x01)]; } -WRITE8_HANDLER( nb1413m3_gfxrombank_w ) +WRITE8_MEMBER( nb1413m3_device::gfxrombank_w ) { - nb1413m3_gfxrombank = (((data & 0xc0) >> 4) + (data & 0x03)); + m_gfxrombank = (((data & 0xc0) >> 4) + (data & 0x03)); } -WRITE8_HANDLER( nb1413m3_gfxradr_l_w ) +WRITE8_MEMBER( nb1413m3_device::gfxradr_l_w ) { - nb1413m3_gfxradr_l = data; + m_gfxradr_l = data; } -WRITE8_HANDLER( nb1413m3_gfxradr_h_w ) +WRITE8_MEMBER( nb1413m3_device::gfxradr_h_w ) { - nb1413m3_gfxradr_h = data; + m_gfxradr_h = data; } -WRITE8_HANDLER( nb1413m3_inputportsel_w ) +WRITE8_MEMBER( nb1413m3_device::inputportsel_w ) { - nb1413m3_inputport = data; + m_inputport = data; } -CUSTOM_INPUT( nb1413m3_busyflag_r ) +READ8_MEMBER( nb1413m3_device::inputport0_r ) { - return nb1413m3_busyflag & 0x01; + return ((space.machine().root_device().ioport("SYSTEM")->read() & 0xfd) | ((m_outcoin_flag & 0x01) << 1)); } - -/* 2008-08 FP: - * In ALL games (but pastelg, hyhoo & hyhoo2) nb1413m3_outcoin_flag is read at inputport0. - * However, a few games (lovehous, maiko, mmaiko, hanaoji and the ones using inputport3_r below) - * read nb1413m3_outcoin_flag also at inputport3! Is this the correct behaviour for these games - * or should they only check the flag at inputport3? */ -CUSTOM_INPUT( nb1413m3_outcoin_flag_r ) -{ - return nb1413m3_outcoin_flag & 0x01; -} - -READ8_HANDLER( nb1413m3_inputport0_r ) -{ - return ((space.machine().root_device().ioport("SYSTEM")->read() & 0xfd) | ((nb1413m3_outcoin_flag & 0x01) << 1)); -} - -READ8_HANDLER( nb1413m3_inputport1_r ) +READ8_MEMBER( nb1413m3_device::inputport1_r ) { device_t &root = space.machine().root_device(); switch (nb1413m3_type) { case NB1413M3_HYHOO: case NB1413M3_HYHOO2: - switch ((nb1413m3_inputport ^ 0xff) & 0x07) + switch ((m_inputport ^ 0xff) & 0x07) { case 0x01: return root.ioport("IN0")->read(); case 0x02: return root.ioport("IN1")->read(); @@ -340,7 +357,7 @@ READ8_HANDLER( nb1413m3_inputport1_r ) case NB1413M3_TELMAHJN: if (root.ioport("DSWA")->read() & 0x80) { - switch ((nb1413m3_inputport ^ 0xff) & 0x1f) + switch ((m_inputport ^ 0xff) & 0x1f) { case 0x01: return root.ioport("KEY0")->read(); case 0x02: return root.ioport("KEY1")->read(); @@ -359,7 +376,7 @@ READ8_HANDLER( nb1413m3_inputport1_r ) case NB1413M3_TOGENKYO: return root.ioport("P1")->read(); default: - switch ((nb1413m3_inputport ^ 0xff) & 0x1f) + switch ((m_inputport ^ 0xff) & 0x1f) { case 0x01: return root.ioport("KEY0")->read(); case 0x02: return root.ioport("KEY1")->read(); @@ -373,14 +390,14 @@ READ8_HANDLER( nb1413m3_inputport1_r ) } } -READ8_HANDLER( nb1413m3_inputport2_r ) +READ8_MEMBER( nb1413m3_device::inputport2_r ) { device_t &root = space.machine().root_device(); switch (nb1413m3_type) { case NB1413M3_HYHOO: case NB1413M3_HYHOO2: - switch ((nb1413m3_inputport ^ 0xff) & 0x07) + switch ((m_inputport ^ 0xff) & 0x07) { case 0x01: return 0xff; case 0x02: return 0xff; @@ -392,7 +409,7 @@ READ8_HANDLER( nb1413m3_inputport2_r ) case NB1413M3_TELMAHJN: if (root.ioport("DSWA")->read() & 0x80) { - switch ((nb1413m3_inputport ^ 0xff) & 0x1f) + switch ((m_inputport ^ 0xff) & 0x1f) { case 0x01: return root.ioport("KEY5")->read(); case 0x02: return root.ioport("KEY6")->read(); @@ -411,7 +428,7 @@ READ8_HANDLER( nb1413m3_inputport2_r ) case NB1413M3_TOGENKYO: return root.ioport("P2")->read(); default: - switch ((nb1413m3_inputport ^ 0xff) & 0x1f) + switch ((m_inputport ^ 0xff) & 0x1f) { case 0x01: return root.ioport("KEY5")->read(); case 0x02: return root.ioport("KEY6")->read(); @@ -425,7 +442,7 @@ READ8_HANDLER( nb1413m3_inputport2_r ) } } -READ8_HANDLER( nb1413m3_inputport3_r ) +READ8_MEMBER( nb1413m3_device::inputport3_r ) { switch (nb1413m3_type) { @@ -442,13 +459,13 @@ READ8_HANDLER( nb1413m3_inputport3_r ) case NB1413M3_BANANADR: case NB1413M3_FINALBNY: case NB1413M3_MMSIKAKU: - return ((nb1413m3_outcoin_flag & 0x01) << 1); + return ((m_outcoin_flag & 0x01) << 1); default: return 0xff; } } -READ8_HANDLER( nb1413m3_dipsw1_r ) +READ8_MEMBER( nb1413m3_device::dipsw1_r ) { device_t &root = space.machine().root_device(); switch (nb1413m3_type) @@ -492,7 +509,7 @@ READ8_HANDLER( nb1413m3_dipsw1_r ) } } -READ8_HANDLER( nb1413m3_dipsw2_r ) +READ8_MEMBER( nb1413m3_device::dipsw2_r ) { device_t &root = space.machine().root_device(); switch (nb1413m3_type) @@ -536,21 +553,21 @@ READ8_HANDLER( nb1413m3_dipsw2_r ) } } -READ8_HANDLER( nb1413m3_dipsw3_l_r ) +READ8_MEMBER( nb1413m3_device::dipsw3_l_r ) { return ((space.machine().root_device().ioport("DSWC")->read() & 0xf0) >> 4); } -READ8_HANDLER( nb1413m3_dipsw3_h_r ) +READ8_MEMBER( nb1413m3_device::dipsw3_h_r ) { return ((space.machine().root_device().ioport("DSWC")->read() & 0x0f) >> 0); } -WRITE8_HANDLER( nb1413m3_outcoin_w ) +WRITE8_MEMBER( nb1413m3_device::outcoin_w ) { static int counter = 0; - nb1413m3_outcoin_enable = (data & 0x04) >> 2; + m_outcoin_enable = (data & 0x04) >> 2; switch (nb1413m3_type) { @@ -571,11 +588,11 @@ WRITE8_HANDLER( nb1413m3_outcoin_w ) case NB1413M3_FINALBNY: case NB1413M3_LOVEHOUS: case NB1413M3_MMAIKO: - if (nb1413m3_outcoin_enable) + if (m_outcoin_enable) { if (counter++ == 2) { - nb1413m3_outcoin_flag ^= 1; + m_outcoin_flag ^= 1; counter = 0; } } @@ -584,10 +601,10 @@ WRITE8_HANDLER( nb1413m3_outcoin_w ) break; } - set_led_status(space.machine(), 2, nb1413m3_outcoin_flag); // out coin + set_led_status(space.machine(), 2, m_outcoin_flag); // out coin } -WRITE8_HANDLER( nb1413m3_vcrctrl_w ) +WRITE8_MEMBER( nb1413m3_device::vcrctrl_w ) { if (data & 0x08) { diff --git a/src/mame/video/hyhoo.c b/src/mame/video/hyhoo.c index 260d134375e..d98102c8a4e 100644 --- a/src/mame/video/hyhoo.c +++ b/src/mame/video/hyhoo.c @@ -7,7 +7,6 @@ ******************************************************************************/ #include "emu.h" -#include "includes/nb1413m3.h" #include "includes/hyhoo.h" @@ -16,9 +15,9 @@ WRITE8_MEMBER(hyhoo_state::hyhoo_blitter_w) switch (offset) { case 0x00: m_blitter_src_addr = (m_blitter_src_addr & 0xff00) | data; - nb1413m3_gfxradr_l_w(space, 0, data); break; + m_nb1413m3->gfxradr_l_w(space, 0, data); break; case 0x01: m_blitter_src_addr = (m_blitter_src_addr & 0x00ff) | (data << 8); - nb1413m3_gfxradr_h_w(space, 0, data); break; + m_nb1413m3->gfxradr_h_w(space, 0, data); break; case 0x02: m_blitter_destx = data; break; case 0x03: m_blitter_desty = data; break; case 0x04: m_blitter_sizex = data; break; @@ -41,7 +40,7 @@ WRITE8_MEMBER(hyhoo_state::hyhoo_romsel_w) int gfxlen = memregion("gfx1")->bytes(); m_gfxrom = (((data & 0xc0) >> 4) + (data & 0x03)); m_highcolorflag = data; - nb1413m3_gfxrombank_w(space, 0, data); + m_nb1413m3->gfxrombank_w(space, 0, data); if ((0x20000 * m_gfxrom) > (gfxlen - 1)) { @@ -57,7 +56,7 @@ void hyhoo_state::device_timer(emu_timer &timer, device_timer_id id, int param, switch (id) { case TIMER_BLITTER: - nb1413m3_busyflag = 1; + m_nb1413m3->m_busyflag = 1; break; default: assert_always(FALSE, "Unknown id in hyhoo_state::device_timer"); @@ -79,9 +78,9 @@ void hyhoo_state::hyhoo_gfxdraw() int r, g, b; pen_t pen; - nb1413m3_busyctr = 0; + m_nb1413m3->m_busyctr = 0; - m_gfxrom |= ((nb1413m3_sndrombank1 & 0x02) << 3); + m_gfxrom |= ((m_nb1413m3->m_sndrombank1 & 0x02) << 3); startx = m_blitter_destx + m_blitter_sizex; starty = m_blitter_desty + m_blitter_sizey; @@ -215,12 +214,12 @@ void hyhoo_state::hyhoo_gfxdraw() } } - nb1413m3_busyctr++; + m_nb1413m3->m_busyctr++; } } - nb1413m3_busyflag = 0; - timer_set(attotime::from_hz(400000) * nb1413m3_busyctr, TIMER_BLITTER); + m_nb1413m3->m_busyflag = 0; + timer_set(attotime::from_hz(400000) * m_nb1413m3->m_busyctr, TIMER_BLITTER); } diff --git a/src/mame/video/nbmj8688.c b/src/mame/video/nbmj8688.c index 4965776401c..c9bf81dfa94 100644 --- a/src/mame/video/nbmj8688.c +++ b/src/mame/video/nbmj8688.c @@ -7,7 +7,6 @@ ******************************************************************************/ #include "emu.h" -#include "includes/nb1413m3.h" #include "includes/nbmj8688.h" @@ -268,7 +267,7 @@ void nbmj8688_state::device_timer(emu_timer &timer, device_timer_id id, int para switch (id) { case TIMER_BLITTER: - nb1413m3_busyflag = 1; + m_nb1413m3->m_busyflag = 1; break; default: assert_always(FALSE, "Unknown id in nbmj8688_state::device_timer"); @@ -293,7 +292,7 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype) if (m_mjsikaku_gfxflag2 & 0x20) return; } - nb1413m3_busyctr = 0; + m_nb1413m3->m_busyctr = 0; startx = m_blitter_destx + m_blitter_sizex; starty = m_blitter_desty + m_blitter_sizey; @@ -523,16 +522,16 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype) } } - nb1413m3_busyctr++; + m_nb1413m3->m_busyctr++; } } - nb1413m3_busyflag = 0; + m_nb1413m3->m_busyflag = 0; if (gfxtype == GFXTYPE_8BIT) - timer_set(attotime::from_hz(400000) * nb1413m3_busyctr, TIMER_BLITTER); + timer_set(attotime::from_hz(400000) * m_nb1413m3->m_busyctr, TIMER_BLITTER); else - timer_set(attotime::from_hz(400000) * nb1413m3_busyctr, TIMER_BLITTER); + timer_set(attotime::from_hz(400000) * m_nb1413m3->m_busyctr, TIMER_BLITTER); } diff --git a/src/mame/video/nbmj8891.c b/src/mame/video/nbmj8891.c index 60cf574bf12..2f15e911a74 100644 --- a/src/mame/video/nbmj8891.c +++ b/src/mame/video/nbmj8891.c @@ -7,7 +7,6 @@ ******************************************************************************/ #include "emu.h" -#include "includes/nb1413m3.h" #include "includes/nbmj8891.h" @@ -240,7 +239,7 @@ WRITE8_MEMBER(nbmj8891_state::nbmj8891_scrolly_w) WRITE8_MEMBER(nbmj8891_state::nbmj8891_vramsel_w) { /* protection - not sure about this */ - nb1413m3_sndromrgntag = (data & 0x20) ? "protection" : "voice"; + m_nb1413m3->m_sndromrgntag = (data & 0x20) ? "protection" : "voice"; m_vram = data; } @@ -309,7 +308,7 @@ void nbmj8891_state::device_timer(emu_timer &timer, device_timer_id id, int para switch (id) { case TIMER_BLITTER: - nb1413m3_busyflag = 1; + m_nb1413m3->m_busyflag = 1; break; default: assert_always(FALSE, "Unknown id in nbmj8891_state::device_timer"); @@ -330,7 +329,7 @@ void nbmj8891_state::nbmj8891_gfxdraw() UINT8 color, color1, color2; int gfxaddr, gfxlen; - nb1413m3_busyctr = 0; + m_nb1413m3->m_busyctr = 0; startx = m_blitter_destx + m_blitter_sizex; starty = m_blitter_desty + m_blitter_sizey; @@ -467,12 +466,12 @@ void nbmj8891_state::nbmj8891_gfxdraw() } } - nb1413m3_busyctr++; + m_nb1413m3->m_busyctr++; } } - nb1413m3_busyflag = 0; - timer_set(attotime::from_hz(400000) * nb1413m3_busyctr, TIMER_BLITTER); + m_nb1413m3->m_busyflag = 0; + timer_set(attotime::from_hz(400000) * m_nb1413m3->m_busyctr, TIMER_BLITTER); } /****************************************************************************** diff --git a/src/mame/video/nbmj8900.c b/src/mame/video/nbmj8900.c index e0e6f38937f..800b45d8563 100644 --- a/src/mame/video/nbmj8900.c +++ b/src/mame/video/nbmj8900.c @@ -7,7 +7,6 @@ ******************************************************************************/ #include "emu.h" -#include "includes/nb1413m3.h" #include "includes/nbmj8900.h" @@ -134,7 +133,7 @@ WRITE8_MEMBER(nbmj8900_state::nbmj8900_scrolly_w) WRITE8_MEMBER(nbmj8900_state::nbmj8900_vramsel_w) { /* protection - not sure about this */ - nb1413m3_sndromrgntag = (data & 0x20) ? "protdata" : "voice"; + m_nb1413m3->m_sndromrgntag = (data & 0x20) ? "protdata" : "voice"; m_vram = data; } @@ -201,7 +200,7 @@ void nbmj8900_state::device_timer(emu_timer &timer, device_timer_id id, int para switch (id) { case TIMER_BLITTER: - nb1413m3_busyflag = 1; + m_nb1413m3->m_busyflag = 1; break; default: assert_always(FALSE, "Unknown id in nbmj8900_state::device_timer"); @@ -221,7 +220,7 @@ void nbmj8900_state::nbmj8900_gfxdraw() unsigned char color, color1, color2; int gfxaddr; - nb1413m3_busyctr = 0; + m_nb1413m3->m_busyctr = 0; startx = m_blitter_destx + m_blitter_sizex; starty = m_blitter_desty + m_blitter_sizey; @@ -351,12 +350,12 @@ void nbmj8900_state::nbmj8900_gfxdraw() } } - nb1413m3_busyctr++; + m_nb1413m3->m_busyctr++; } } - nb1413m3_busyflag = 0; - timer_set(attotime::from_nsec(2500) * nb1413m3_busyctr, TIMER_BLITTER); + m_nb1413m3->m_busyflag = 0; + timer_set(attotime::from_nsec(2500) * m_nb1413m3->m_busyctr, TIMER_BLITTER); } /****************************************************************************** diff --git a/src/mame/video/nbmj8991.c b/src/mame/video/nbmj8991.c index 699ed1e9b7a..ce7ea9c338a 100644 --- a/src/mame/video/nbmj8991.c +++ b/src/mame/video/nbmj8991.c @@ -7,7 +7,6 @@ ******************************************************************************/ #include "emu.h" -#include "includes/nb1413m3.h" #include "includes/nbmj8991.h" /****************************************************************************** @@ -166,7 +165,7 @@ void nbmj8991_state::update_pixel(int x, int y) TIMER_CALLBACK_MEMBER(nbmj8991_state::blitter_timer_callback) { - nb1413m3_busyflag = 1; + m_nb1413m3->m_busyflag = 1; } void nbmj8991_state::nbmj8991_gfxdraw() @@ -183,7 +182,7 @@ void nbmj8991_state::nbmj8991_gfxdraw() UINT8 color, color1, color2; int gfxaddr, gfxlen; - nb1413m3_busyctr = 0; + m_nb1413m3->m_busyctr = 0; if (m_blitter_direction_x) { @@ -266,12 +265,12 @@ void nbmj8991_state::nbmj8991_gfxdraw() update_pixel(dx2, dy); } - nb1413m3_busyctr++; + m_nb1413m3->m_busyctr++; } } - nb1413m3_busyflag = 0; - machine().scheduler().timer_set(attotime::from_nsec(1650) * nb1413m3_busyctr, timer_expired_delegate(FUNC(nbmj8991_state::blitter_timer_callback),this)); + m_nb1413m3->m_busyflag = 0; + machine().scheduler().timer_set(attotime::from_nsec(1650) * m_nb1413m3->m_busyctr, timer_expired_delegate(FUNC(nbmj8991_state::blitter_timer_callback),this)); } /****************************************************************************** @@ -344,7 +343,7 @@ UINT32 nbmj8991_state::screen_update_nbmj8991_type2(screen_device &screen, bitma update_pixel(x, y); } - if (nb1413m3_inputport & 0x20) + if (m_nb1413m3->m_inputport & 0x20) { int scrollx, scrolly; diff --git a/src/mame/video/pastelg.c b/src/mame/video/pastelg.c index 18d2654e6fa..157b1585451 100644 --- a/src/mame/video/pastelg.c +++ b/src/mame/video/pastelg.c @@ -7,7 +7,6 @@ ******************************************************************************/ #include "emu.h" -#include "includes/nb1413m3.h" #include "includes/pastelg.h" /****************************************************************************** @@ -105,7 +104,7 @@ WRITE8_MEMBER(pastelg_state::pastelg_romsel_w) int gfxlen = memregion("gfx1")->bytes(); m_gfxrom = ((data & 0xc0) >> 6); m_palbank = ((data & 0x10) >> 4); - nb1413m3_sndrombank1_w(space, 0, data); + m_nb1413m3->sndrombank1_w(space, 0, data); if ((m_gfxrom << 16) > (gfxlen - 1)) { @@ -148,7 +147,7 @@ void pastelg_state::device_timer(emu_timer &timer, device_timer_id id, int param switch (id) { case TIMER_BLITTER: - nb1413m3_busyflag = 1; + m_nb1413m3->m_busyflag = 1; break; default: assert_always(FALSE, "Unknown id in pastelg_state::device_timer"); @@ -172,7 +171,7 @@ void pastelg_state::pastelg_gfxdraw() int count; UINT8 color; - nb1413m3_busyctr = 0; + m_nb1413m3->m_busyctr = 0; startx = m_blitter_destx + m_blitter_sizex; starty = m_blitter_desty + m_blitter_sizey; @@ -268,15 +267,15 @@ void pastelg_state::pastelg_gfxdraw() } } - nb1413m3_busyctr++; + m_nb1413m3->m_busyctr++; x += incx; } y += incy; } - nb1413m3_busyflag = 0; - timer_set(attotime::from_hz(400000) * nb1413m3_busyctr, TIMER_BLITTER); + m_nb1413m3->m_busyflag = 0; + timer_set(attotime::from_hz(400000) * m_nb1413m3->m_busyctr, TIMER_BLITTER); } /******************************************************************************