Modernized/converted nb1413m3 to a device. [Osso]

This commit is contained in:
Scott Stone 2013-07-16 18:31:35 +00:00
parent 9148af4550
commit 5fcc8719c4
20 changed files with 659 additions and 567 deletions

View File

@ -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

View File

@ -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 */

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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 */

View File

@ -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<UINT8> m_clut;
required_device<cpu_device> m_maincpu;
required_device<nb1413m3_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<cpu_device> m_maincpu;
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);

View File

@ -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)

View File

@ -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<cpu_device> m_maincpu;
required_device<nb1413m3_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<cpu_device> m_maincpu;
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};

View File

@ -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<cpu_device> m_maincpu;
required_device<nb1413m3_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<cpu_device> m_maincpu;
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);

View File

@ -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<cpu_device> m_maincpu;
required_device<nb1413m3_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<cpu_device> m_maincpu;
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};

View File

@ -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<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
required_device<nb1413m3_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<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
};

View File

@ -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<cpu_device> m_maincpu;
required_device<nb1413m3_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<cpu_device> m_maincpu;
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};

View File

@ -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::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)
{

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
/******************************************************************************

View File

@ -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);
}
/******************************************************************************

View File

@ -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;

View File

@ -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);
}
/******************************************************************************