mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
nbmj8688.c: added save state support (nw)
This commit is contained in:
parent
bfcec3ecc6
commit
a689baa76c
@ -147,16 +147,16 @@ static ADDRESS_MAP_START( secolove_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(blitter_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(0xc0, 0xcf) AM_WRITE(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_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)
|
||||
AM_RANGE(0xf0, 0xf0) AM_WRITE(scrolly_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::barline_output_w)
|
||||
@ -172,14 +172,14 @@ static ADDRESS_MAP_START( barline_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(blitter_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(0xc0, 0xcf) AM_WRITE(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_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(mjsikaku_scrolly_w)
|
||||
AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(scrolly_w)
|
||||
AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -190,10 +190,10 @@ static ADDRESS_MAP_START( crystalg_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(blitter_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(0xc0, 0xcf) AM_WRITE(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)
|
||||
@ -207,9 +207,9 @@ static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8, nbmj8688_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
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(0x20, 0x3f) AM_WRITE(clut_w)
|
||||
AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w)
|
||||
AM_RANGE(0x70, 0x77) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x70, 0x77) AM_WRITE(blitter_w)
|
||||
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write)
|
||||
AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w)
|
||||
@ -217,7 +217,7 @@ static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(mjsikaku_scrolly_w)
|
||||
AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(scrolly_w)
|
||||
AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -226,9 +226,9 @@ static ADDRESS_MAP_START( kaguya_io_map, AS_IO, 8, nbmj8688_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
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(0x20, 0x3f) AM_WRITE(clut_w)
|
||||
AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w)
|
||||
AM_RANGE(0x70, 0x77) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x70, 0x77) AM_WRITE(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_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
@ -237,7 +237,7 @@ static ADDRESS_MAP_START( kaguya_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(mjsikaku_scrolly_w)
|
||||
AM_RANGE(0xf0, 0xf0) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw1_r) AM_WRITE(scrolly_w)
|
||||
AM_RANGE(0xf1, 0xf1) AM_DEVREAD("nb1413m3", nb1413m3_device, dipsw2_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -247,8 +247,8 @@ static ADDRESS_MAP_START( iemoto_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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(0x20, 0x3f) AM_WRITE(clut_w)
|
||||
AM_RANGE(0x40, 0x47) AM_WRITE(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)
|
||||
@ -260,7 +260,7 @@ static ADDRESS_MAP_START( iemoto_io_map, AS_IO, 8, nbmj8688_state )
|
||||
AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w)
|
||||
// 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)
|
||||
AM_RANGE(0xf0, 0xf0) AM_WRITE(scrolly_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -269,12 +269,12 @@ static ADDRESS_MAP_START( seiha_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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(0x20, 0x3f) AM_WRITE(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_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(blitter_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?
|
||||
@ -282,19 +282,19 @@ static ADDRESS_MAP_START( seiha_io_map, AS_IO, 8, nbmj8688_state )
|
||||
AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w)
|
||||
// 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)
|
||||
AM_RANGE(0xf0, 0xf0) AM_WRITE(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_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(0x20, 0x3f) AM_WRITE(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_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(blitter_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?
|
||||
@ -302,7 +302,7 @@ static ADDRESS_MAP_START( mjgaiden_io_map, AS_IO, 8, nbmj8688_state )
|
||||
AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w)
|
||||
// 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)
|
||||
AM_RANGE(0xf0, 0xf0) AM_WRITE(scrolly_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8, nbmj8688_state )
|
||||
@ -313,21 +313,21 @@ static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8, nbmj8688_state )
|
||||
AM_RANGE(0x43, 0x43) AM_DEVREADWRITE("lcdc0", hd61830_device, status_r, control_w)
|
||||
AM_RANGE(0x44, 0x44) AM_DEVREADWRITE("lcdc1", hd61830_device, data_r, data_w)
|
||||
AM_RANGE(0x45, 0x45) AM_DEVREADWRITE("lcdc1", hd61830_device, status_r, control_w)
|
||||
AM_RANGE(0x46, 0x46) AM_WRITE(nbmj8688_HD61830B_both_data_w)
|
||||
AM_RANGE(0x47, 0x47) AM_WRITE(nbmj8688_HD61830B_both_instr_w)
|
||||
AM_RANGE(0x46, 0x46) AM_WRITE(HD61830B_both_data_w)
|
||||
AM_RANGE(0x47, 0x47) AM_WRITE(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_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x90, 0x97) AM_WRITE(blitter_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(0xc0, 0xcf) AM_WRITE(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_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)
|
||||
AM_RANGE(0xf0, 0xf0) AM_WRITE(scrolly_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -336,9 +336,9 @@ static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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(0x20, 0x3f) AM_WRITE(clut_w)
|
||||
AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w)
|
||||
AM_RANGE(0x60, 0x67) AM_WRITE(nbmj8688_blitter_w)
|
||||
AM_RANGE(0x60, 0x67) AM_WRITE(blitter_w)
|
||||
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write)
|
||||
AM_RANGE(0x90, 0x90) AM_DEVREAD("nb1413m3", nb1413m3_device, inputport0_r)
|
||||
AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("nb1413m3", nb1413m3_device, inputport1_r, inputportsel_w)
|
||||
@ -348,7 +348,7 @@ static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8, nbmj8688_state )
|
||||
AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w)
|
||||
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)
|
||||
AM_RANGE(0xf0, 0xf0) AM_WRITE(scrolly_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -357,8 +357,8 @@ static ADDRESS_MAP_START( mmsikaku_io_map, AS_IO, 8, nbmj8688_state )
|
||||
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(0x20, 0x3f) AM_WRITE(clut_w)
|
||||
AM_RANGE(0x40, 0x47) AM_WRITE(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)
|
||||
@ -370,7 +370,7 @@ static ADDRESS_MAP_START( mmsikaku_io_map, AS_IO, 8, nbmj8688_state )
|
||||
AM_RANGE(0xe0, 0xe0) AM_WRITE(mjsikaku_gfxflag2_w)
|
||||
// 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)
|
||||
AM_RANGE(0xf0, 0xf0) AM_WRITE(scrolly_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
CUSTOM_INPUT_MEMBER( nbmj8688_state::nb1413m3_busyflag_r )
|
||||
@ -2768,7 +2768,7 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(512, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 4096)
|
||||
@ -2927,7 +2927,7 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(512, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette_lcd", 2)
|
||||
@ -4058,52 +4058,52 @@ ROM_END
|
||||
|
||||
|
||||
/* 8-bit palette */
|
||||
GAME( 1986, crystalg, 0, crystalg, crystalg, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal (Japan 860512)", 0 )
|
||||
GAME( 1986, crystal2, 0, crystal2, crystal2, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal 2 (Japan 860620)", 0 )
|
||||
GAME( 1986, nightlov, 0, nightlov, nightlov, driver_device, 0, ROT0, "Central Denshi", "Night Love (Japan 860705)", GAME_NOT_WORKING )
|
||||
GAME( 1986, apparel, 0, apparel, apparel, driver_device, 0, ROT0, "Central Denshi", "Apparel Night (Japan 860929)", 0 )
|
||||
GAME( 1986, crystalg, 0, crystalg, crystalg, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal (Japan 860512)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, crystal2, 0, crystal2, crystal2, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal 2 (Japan 860620)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, nightlov, 0, nightlov, nightlov, driver_device, 0, ROT0, "Central Denshi", "Night Love (Japan 860705)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, apparel, 0, apparel, apparel, driver_device, 0, ROT0, "Central Denshi", "Apparel Night (Japan 860929)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
/* hybrid 12-bit palette */
|
||||
GAME( 1986, citylove, 0, citylove, citylove, driver_device, 0, ROT0, "Nichibutsu", "City Love (Japan 860908)", 0 )
|
||||
GAME( 1986, mcitylov, citylove, mcitylov, mcitylov, driver_device, 0, ROT0, "Nichibutsu", "City Love [BET] (Japan 860904)", 0 )
|
||||
GAME( 1986, secolove, 0, secolove, secolove, driver_device, 0, ROT0, "Nichibutsu", "Second Love (Japan 861201)", 0 )
|
||||
GAME( 1988, barline, 0, barline, barline, driver_device, 0, ROT180, "Nichibutsu", "Barline (Japan?)", GAME_IMPERFECT_SOUND )
|
||||
GAME( 1986, citylove, 0, citylove, citylove, driver_device, 0, ROT0, "Nichibutsu", "City Love (Japan 860908)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, mcitylov, citylove, mcitylov, mcitylov, driver_device, 0, ROT0, "Nichibutsu", "City Love [BET] (Japan 860904)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, secolove, 0, secolove, secolove, driver_device, 0, ROT0, "Nichibutsu", "Second Love (Japan 861201)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, barline, 0, barline, barline, driver_device, 0, ROT180, "Nichibutsu", "Barline (Japan?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||
|
||||
/* hybrid 16-bit palette */
|
||||
GAME( 1987, seiha, 0, seiha, seiha, driver_device, 0, ROT0, "Nichibutsu", "Seiha (Japan 870725)", 0 )
|
||||
GAME( 1987, seiham, seiha, seiham, seiham, driver_device, 0, ROT0, "Nichibutsu", "Seiha [BET] (Japan 870723)", 0 )
|
||||
GAME( 1987, mjgaiden, 0, mjgaiden, ojousan, driver_device, 0, ROT0, "Central Denshi", "Mahjong Gaiden [BET] (Japan 870803)", 0 )
|
||||
GAME( 1987, iemoto, 0, iemoto, iemoto, driver_device, 0, ROT0, "Nichibutsu", "Iemoto (Japan 871020)", 0 )
|
||||
GAME( 1987, iemotom, iemoto, iemotom, iemotom, driver_device, 0, ROT0, "Nichibutsu", "Iemoto [BET] (Japan 871118)", 0 )
|
||||
GAME( 1987, ryuuha, iemoto, ryuuha, ryuuha, driver_device, 0, ROT0, "Central Denshi", "Ryuuha [BET] (Japan 871027)", 0 )
|
||||
GAME( 1987, ojousan, 0, ojousan, ojousan, driver_device, 0, ROT0, "Nichibutsu", "Ojousan (Japan 871204)", 0 )
|
||||
GAME( 1987, ojousanm, ojousan, ojousanm, ojousanm, driver_device, 0, ROT0, "Nichibutsu", "Ojousan [BET] (Japan 870108)", 0 )
|
||||
GAME( 1988, korinai, 0, korinai, korinai, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen (Japan 880425)", 0 )
|
||||
GAME( 1988, korinaim, korinai, korinaim, korinaim, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen [BET] (Japan 880920)", 0 )
|
||||
GAME( 1987, seiha, 0, seiha, seiha, driver_device, 0, ROT0, "Nichibutsu", "Seiha (Japan 870725)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, seiham, seiha, seiham, seiham, driver_device, 0, ROT0, "Nichibutsu", "Seiha [BET] (Japan 870723)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, mjgaiden, 0, mjgaiden, ojousan, driver_device, 0, ROT0, "Central Denshi", "Mahjong Gaiden [BET] (Japan 870803)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, iemoto, 0, iemoto, iemoto, driver_device, 0, ROT0, "Nichibutsu", "Iemoto (Japan 871020)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, iemotom, iemoto, iemotom, iemotom, driver_device, 0, ROT0, "Nichibutsu", "Iemoto [BET] (Japan 871118)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, ryuuha, iemoto, ryuuha, ryuuha, driver_device, 0, ROT0, "Central Denshi", "Ryuuha [BET] (Japan 871027)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, ojousan, 0, ojousan, ojousan, driver_device, 0, ROT0, "Nichibutsu", "Ojousan (Japan 871204)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, ojousanm, ojousan, ojousanm, ojousanm, driver_device, 0, ROT0, "Nichibutsu", "Ojousan [BET] (Japan 870108)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, korinai, 0, korinai, korinai, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen (Japan 880425)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, korinaim, korinai, korinaim, korinaim, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen [BET] (Japan 880920)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
/* pure 16-bit palette (+ LCD in some) */
|
||||
GAME( 1987, housemnq, 0, housemnq, housemnq, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin (Japan 870217)", 0 )
|
||||
GAME( 1987, housemn2, 0, housemn2, housemn2, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin Roppongi Live hen (Japan 870418)", 0 )
|
||||
GAME( 1987, livegal, 0, livegal, livegal, driver_device, 0, ROT0, "Central Denshi", "Live Gal (Japan 870530)", 0 )
|
||||
GAME( 1987, bijokkoy, 0, bijokkoy, bijokkoy, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Yume Monogatari (Japan 870925)", 0 )
|
||||
GAME( 1988, bijokkog, 0, bijokkog, bijokkog, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Gakuen (Japan 880116)", 0 )
|
||||
GAME( 1988, orangec, 0, orangec, orangec, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maruhi Kagai Jugyou (Japan 880213)", 0 )
|
||||
GAME( 1988, orangeci, orangec, orangeci, orangeci, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880221)", 0 )
|
||||
GAME( 1988, vipclub, orangec, vipclub, vipclub, driver_device, 0, ROT0, "Daiichi Denshi", "Vip Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880310)", 0 )
|
||||
GAME( 1987, housemnq, 0, housemnq, housemnq, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin (Japan 870217)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, housemn2, 0, housemn2, housemn2, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin Roppongi Live hen (Japan 870418)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, livegal, 0, livegal, livegal, driver_device, 0, ROT0, "Central Denshi", "Live Gal (Japan 870530)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1987, bijokkoy, 0, bijokkoy, bijokkoy, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Yume Monogatari (Japan 870925)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, bijokkog, 0, bijokkog, bijokkog, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Gakuen (Japan 880116)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, orangec, 0, orangec, orangec, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maruhi Kagai Jugyou (Japan 880213)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, orangeci, orangec, orangeci, orangeci, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880221)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, vipclub, orangec, vipclub, vipclub, driver_device, 0, ROT0, "Daiichi Denshi", "Vip Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880310)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
/* pure 12-bit palette */
|
||||
GAME( 1988, kaguya, 0, kaguya, kaguya, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Kaguyahime [BET] (Japan 880521)", 0 )
|
||||
GAME( 1989, kaguya2, 0, kaguya2, kaguya2, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 [BET] (Japan 890829)", 0 )
|
||||
GAME( 1989, kaguya2f, kaguya2, kaguya2, kaguya2, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808)", 0 )
|
||||
GAME( 1988, kanatuen, 0, kanatuen, kanatuen, nbmj8688_state, kanatuen, ROT0, "Panac", "Kanatsuen no Onna [BET] (Japan 880905)", 0 )
|
||||
GAME( 1988, kyuhito, kanatuen, kyuhito, kyuhito, nbmj8688_state, kyuhito, ROT0, "Roller Tron", "Kyukyoku no Hito [BET] (Japan 880824)", 0 )
|
||||
GAME( 1989, idhimitu, 0, idhimitu, idhimitu, nbmj8688_state, idhimitu, ROT0, "Digital Soft", "Idol no Himitsu [BET] (Japan 890304)", 0 )
|
||||
GAME( 1988, kaguya, 0, kaguya, kaguya, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Kaguyahime [BET] (Japan 880521)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1989, kaguya2, 0, kaguya2, kaguya2, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 [BET] (Japan 890829)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1989, kaguya2f, kaguya2, kaguya2, kaguya2, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, kanatuen, 0, kanatuen, kanatuen, nbmj8688_state, kanatuen, ROT0, "Panac", "Kanatsuen no Onna [BET] (Japan 880905)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, kyuhito, kanatuen, kyuhito, kyuhito, nbmj8688_state, kyuhito, ROT0, "Roller Tron", "Kyukyoku no Hito [BET] (Japan 880824)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1989, idhimitu, 0, idhimitu, idhimitu, nbmj8688_state, idhimitu, ROT0, "Digital Soft", "Idol no Himitsu [BET] (Japan 890304)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
/* pure 12-bit palette + YM3812 instead of AY-3-8910 */
|
||||
GAME( 1988, mjsikaku, 0, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880908)", 0 )
|
||||
GAME( 1988, mjsikakb, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880722)", 0 )
|
||||
GAME( 1988, mjsikakc, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880806)", 0 )
|
||||
GAME( 1988, mjsikakd, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880802)", 0 )
|
||||
GAME( 1988, mmsikaku, mjsikaku, mmsikaku, mmsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku [BET] (Japan 880929)", 0 )
|
||||
GAME( 1988, otonano, 0, otonano, otonano, driver_device, 0, ROT0, "Apple", "Otona no Mahjong (Japan 880628)", 0 )
|
||||
GAME( 1988, mjcamera, 0, mjcamera, mjcamera, nbmj8688_state, mjcamera, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 1) (Japan 881109)", 0 )
|
||||
GAME( 1988, mjsikaku, 0, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880908)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, mjsikakb, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880722)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, mjsikakc, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880806)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, mjsikakd, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880802)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, mmsikaku, mjsikaku, mmsikaku, mmsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku [BET] (Japan 880929)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, otonano, 0, otonano, otonano, driver_device, 0, ROT0, "Apple", "Otona no Mahjong (Japan 880628)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, mjcamera, 0, mjcamera, mjcamera, nbmj8688_state, mjcamera, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 1) (Japan 881109)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -22,7 +22,10 @@ public:
|
||||
optional_device<hd61830_device> m_lcdc0;
|
||||
optional_device<hd61830_device> m_lcdc1;
|
||||
|
||||
int m_mjsikaku_scrolly;
|
||||
// defined in video_start
|
||||
int m_gfxmode;
|
||||
|
||||
int m_scrolly;
|
||||
int m_blitter_destx;
|
||||
int m_blitter_desty;
|
||||
int m_blitter_sizex;
|
||||
@ -30,32 +33,39 @@ public:
|
||||
int m_blitter_direction_x;
|
||||
int m_blitter_direction_y;
|
||||
int m_blitter_src_addr;
|
||||
int m_mjsikaku_gfxrom;
|
||||
int m_mjsikaku_dispflag;
|
||||
int m_mjsikaku_gfxflag2;
|
||||
int m_mjsikaku_gfxflag3;
|
||||
int m_mjsikaku_flipscreen;
|
||||
int m_mjsikaku_screen_refresh;
|
||||
int m_mjsikaku_gfxmode;
|
||||
bitmap_ind16 *m_mjsikaku_tmpbitmap;
|
||||
UINT16 *m_mjsikaku_videoram;
|
||||
int m_gfxrom;
|
||||
int m_dispflag;
|
||||
int m_gfxflag2;
|
||||
int m_gfxflag3;
|
||||
int m_flipscreen;
|
||||
int m_screen_refresh;
|
||||
bitmap_ind16 *m_tmpbitmap;
|
||||
UINT16 *m_videoram;
|
||||
UINT8 *m_clut;
|
||||
int m_mjsikaku_flipscreen_old;
|
||||
int m_flipscreen_old;
|
||||
emu_timer *m_blitter_timer;
|
||||
|
||||
// common
|
||||
DECLARE_READ8_MEMBER(ff_r);
|
||||
DECLARE_WRITE8_MEMBER(barline_output_w);
|
||||
DECLARE_WRITE8_MEMBER(nbmj8688_clut_w);
|
||||
DECLARE_WRITE8_MEMBER(nbmj8688_blitter_w);
|
||||
DECLARE_WRITE8_MEMBER(clut_w);
|
||||
DECLARE_WRITE8_MEMBER(blitter_w);
|
||||
DECLARE_WRITE8_MEMBER(scrolly_w);
|
||||
|
||||
|
||||
DECLARE_WRITE8_MEMBER(mjsikaku_gfxflag2_w);
|
||||
DECLARE_WRITE8_MEMBER(mjsikaku_gfxflag3_w);
|
||||
DECLARE_WRITE8_MEMBER(mjsikaku_scrolly_w);
|
||||
DECLARE_WRITE8_MEMBER(mjsikaku_romsel_w);
|
||||
DECLARE_WRITE8_MEMBER(secolove_romsel_w);
|
||||
DECLARE_WRITE8_MEMBER(crystalg_romsel_w);
|
||||
DECLARE_WRITE8_MEMBER(seiha_romsel_w);
|
||||
DECLARE_WRITE8_MEMBER(nbmj8688_HD61830B_both_instr_w);
|
||||
DECLARE_WRITE8_MEMBER(nbmj8688_HD61830B_both_data_w);
|
||||
DECLARE_WRITE8_MEMBER(HD61830B_both_instr_w);
|
||||
DECLARE_WRITE8_MEMBER(HD61830B_both_data_w);
|
||||
DECLARE_READ8_MEMBER(dipsw1_r);
|
||||
DECLARE_READ8_MEMBER(dipsw2_r);
|
||||
DECLARE_WRITE8_MEMBER(barline_output_w);
|
||||
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(nb1413m3_busyflag_r);
|
||||
void mjsikaku_vramflip();
|
||||
|
||||
DECLARE_DRIVER_INIT(kyuhito);
|
||||
DECLARE_DRIVER_INIT(idhimitu);
|
||||
DECLARE_DRIVER_INIT(kaguya2);
|
||||
@ -71,14 +81,15 @@ public:
|
||||
DECLARE_VIDEO_START(mbmj8688_hybrid_16bit);
|
||||
DECLARE_VIDEO_START(mbmj8688_hybrid_12bit);
|
||||
DECLARE_VIDEO_START(mbmj8688_pure_16bit);
|
||||
DECLARE_READ8_MEMBER(dipsw1_r);
|
||||
DECLARE_READ8_MEMBER(dipsw2_r);
|
||||
UINT32 screen_update_mbmj8688(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void vramflip();
|
||||
void update_pixel(int x, int y);
|
||||
void writeram_low(int x, int y, int color);
|
||||
void writeram_high(int x, int y, int color);
|
||||
void mbmj8688_gfxdraw(int gfxtype);
|
||||
void gfxdraw(int gfxtype);
|
||||
void common_video_start();
|
||||
void postload();
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
@ -50,7 +50,7 @@ nb1413m3_device::nb1413m3_device(const machine_config &mconfig, const char *tag,
|
||||
void nb1413m3_device::device_start()
|
||||
{
|
||||
m_timer_cb = timer_alloc(TIMER_CB);
|
||||
synchronize(TIMER_CB);
|
||||
m_timer_cb->adjust(attotime::zero);
|
||||
|
||||
save_item(NAME(m_nb1413m3_type));
|
||||
save_item(NAME(m_sndrombank1));
|
||||
|
@ -102,7 +102,7 @@ PALETTE_INIT_MEMBER(nbmj8688_state,mbmj8688_lcd)
|
||||
palette.set_pen_color(1, rgb_t(0, 0, 0));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::nbmj8688_clut_w)
|
||||
WRITE8_MEMBER(nbmj8688_state::clut_w)
|
||||
{
|
||||
m_clut[offset] = (data ^ 0xff);
|
||||
}
|
||||
@ -112,7 +112,7 @@ WRITE8_MEMBER(nbmj8688_state::nbmj8688_clut_w)
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::nbmj8688_blitter_w)
|
||||
WRITE8_MEMBER(nbmj8688_state::blitter_w)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
@ -123,13 +123,13 @@ WRITE8_MEMBER(nbmj8688_state::nbmj8688_blitter_w)
|
||||
case 0x04: m_blitter_sizex = data; break;
|
||||
case 0x05: m_blitter_sizey = data;
|
||||
/* writing here also starts the blit */
|
||||
mbmj8688_gfxdraw(m_mjsikaku_gfxmode);
|
||||
gfxdraw(m_gfxmode);
|
||||
break;
|
||||
case 0x06: m_blitter_direction_x = (data & 0x01) ? 1 : 0;
|
||||
m_blitter_direction_y = (data & 0x02) ? 1 : 0;
|
||||
m_mjsikaku_flipscreen = (data & 0x04) ? 0 : 1;
|
||||
m_mjsikaku_dispflag = (data & 0x08) ? 0 : 1;
|
||||
mjsikaku_vramflip();
|
||||
m_flipscreen = (data & 0x04) ? 0 : 1;
|
||||
m_dispflag = (data & 0x08) ? 0 : 1;
|
||||
vramflip();
|
||||
break;
|
||||
case 0x07: break;
|
||||
}
|
||||
@ -137,85 +137,85 @@ WRITE8_MEMBER(nbmj8688_state::nbmj8688_blitter_w)
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::mjsikaku_gfxflag2_w)
|
||||
{
|
||||
m_mjsikaku_gfxflag2 = data;
|
||||
m_gfxflag2 = data;
|
||||
|
||||
if (m_nb1413m3->m_nb1413m3_type == NB1413M3_SEIHAM
|
||||
|| m_nb1413m3->m_nb1413m3_type == NB1413M3_KORINAI
|
||||
|| m_nb1413m3->m_nb1413m3_type == NB1413M3_KORINAIM
|
||||
|| m_nb1413m3->m_nb1413m3_type == NB1413M3_LIVEGAL)
|
||||
m_mjsikaku_gfxflag2 ^= 0x20;
|
||||
m_gfxflag2 ^= 0x20;
|
||||
|
||||
if (m_nb1413m3->m_nb1413m3_type == NB1413M3_OJOUSANM
|
||||
|| m_nb1413m3->m_nb1413m3_type == NB1413M3_RYUUHA)
|
||||
m_mjsikaku_gfxflag2 |= 0x20;
|
||||
m_gfxflag2 |= 0x20;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::mjsikaku_gfxflag3_w)
|
||||
{
|
||||
m_mjsikaku_gfxflag3 = (data & 0xe0);
|
||||
m_gfxflag3 = (data & 0xe0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::mjsikaku_scrolly_w)
|
||||
WRITE8_MEMBER(nbmj8688_state::scrolly_w)
|
||||
{
|
||||
m_mjsikaku_scrolly = data;
|
||||
m_scrolly = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::mjsikaku_romsel_w)
|
||||
{
|
||||
int gfxlen = memregion("gfx1")->bytes();
|
||||
m_mjsikaku_gfxrom = (data & 0x0f);
|
||||
m_gfxrom = (data & 0x0f);
|
||||
|
||||
if ((m_mjsikaku_gfxrom << 17) > (gfxlen - 1))
|
||||
if ((m_gfxrom << 17) > (gfxlen - 1))
|
||||
{
|
||||
#ifdef MAME_DEBUG
|
||||
popmessage("GFXROM BANK OVER!!");
|
||||
#endif
|
||||
m_mjsikaku_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
m_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::secolove_romsel_w)
|
||||
{
|
||||
int gfxlen = memregion("gfx1")->bytes();
|
||||
m_mjsikaku_gfxrom = ((data & 0xc0) >> 4) + (data & 0x03);
|
||||
m_gfxrom = ((data & 0xc0) >> 4) + (data & 0x03);
|
||||
mjsikaku_gfxflag2_w(space, 0, data);
|
||||
|
||||
if ((m_mjsikaku_gfxrom << 17) > (gfxlen - 1))
|
||||
if ((m_gfxrom << 17) > (gfxlen - 1))
|
||||
{
|
||||
#ifdef MAME_DEBUG
|
||||
popmessage("GFXROM BANK OVER!!");
|
||||
#endif
|
||||
m_mjsikaku_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
m_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::crystalg_romsel_w)
|
||||
{
|
||||
int gfxlen = memregion("gfx1")->bytes();
|
||||
m_mjsikaku_gfxrom = (data & 0x03);
|
||||
m_gfxrom = (data & 0x03);
|
||||
mjsikaku_gfxflag2_w(space, 0, data);
|
||||
|
||||
if ((m_mjsikaku_gfxrom << 17) > (gfxlen - 1))
|
||||
if ((m_gfxrom << 17) > (gfxlen - 1))
|
||||
{
|
||||
#ifdef MAME_DEBUG
|
||||
popmessage("GFXROM BANK OVER!!");
|
||||
#endif
|
||||
m_mjsikaku_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
m_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::seiha_romsel_w)
|
||||
{
|
||||
int gfxlen = memregion("gfx1")->bytes();
|
||||
m_mjsikaku_gfxrom = (data & 0x1f);
|
||||
m_gfxrom = (data & 0x1f);
|
||||
mjsikaku_gfxflag3_w(space, 0, data);
|
||||
|
||||
if ((m_mjsikaku_gfxrom << 17) > (gfxlen - 1))
|
||||
if ((m_gfxrom << 17) > (gfxlen - 1))
|
||||
{
|
||||
#ifdef MAME_DEBUG
|
||||
popmessage("GFXROM BANK OVER!!");
|
||||
#endif
|
||||
m_mjsikaku_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
m_gfxrom &= (gfxlen / 0x20000 - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -223,46 +223,46 @@ WRITE8_MEMBER(nbmj8688_state::seiha_romsel_w)
|
||||
|
||||
|
||||
******************************************************************************/
|
||||
void nbmj8688_state::mjsikaku_vramflip()
|
||||
void nbmj8688_state::vramflip()
|
||||
{
|
||||
int x, y;
|
||||
UINT16 color1, color2;
|
||||
|
||||
if (m_mjsikaku_flipscreen == m_mjsikaku_flipscreen_old) return;
|
||||
if (m_flipscreen == m_flipscreen_old) return;
|
||||
|
||||
for (y = 0; y < (256 / 2); y++)
|
||||
{
|
||||
for (x = 0; x < 512; x++)
|
||||
{
|
||||
color1 = m_mjsikaku_videoram[(y * 512) + x];
|
||||
color2 = m_mjsikaku_videoram[((y ^ 0xff) * 512) + (x ^ 0x1ff)];
|
||||
m_mjsikaku_videoram[(y * 512) + x] = color2;
|
||||
m_mjsikaku_videoram[((y ^ 0xff) * 512) + (x ^ 0x1ff)] = color1;
|
||||
color1 = m_videoram[(y * 512) + x];
|
||||
color2 = m_videoram[((y ^ 0xff) * 512) + (x ^ 0x1ff)];
|
||||
m_videoram[(y * 512) + x] = color2;
|
||||
m_videoram[((y ^ 0xff) * 512) + (x ^ 0x1ff)] = color1;
|
||||
}
|
||||
}
|
||||
|
||||
m_mjsikaku_flipscreen_old = m_mjsikaku_flipscreen;
|
||||
m_mjsikaku_screen_refresh = 1;
|
||||
m_flipscreen_old = m_flipscreen;
|
||||
m_screen_refresh = 1;
|
||||
}
|
||||
|
||||
|
||||
void nbmj8688_state::update_pixel(int x, int y)
|
||||
{
|
||||
int color = m_mjsikaku_videoram[(y * 512) + x];
|
||||
m_mjsikaku_tmpbitmap->pix16(y, x) = color;
|
||||
int color = m_videoram[(y * 512) + x];
|
||||
m_tmpbitmap->pix16(y, x) = color;
|
||||
}
|
||||
|
||||
void nbmj8688_state::writeram_low(int x, int y, int color)
|
||||
{
|
||||
m_mjsikaku_videoram[(y * 512) + x] &= 0xff00;
|
||||
m_mjsikaku_videoram[(y * 512) + x] |= color;
|
||||
m_videoram[(y * 512) + x] &= 0xff00;
|
||||
m_videoram[(y * 512) + x] |= color;
|
||||
update_pixel(x, y);
|
||||
}
|
||||
|
||||
void nbmj8688_state::writeram_high(int x, int y, int color)
|
||||
{
|
||||
m_mjsikaku_videoram[(y * 512) + x] &= 0x00ff;
|
||||
m_mjsikaku_videoram[(y * 512) + x] |= color << 8;
|
||||
m_videoram[(y * 512) + x] &= 0x00ff;
|
||||
m_videoram[(y * 512) + x] |= color << 8;
|
||||
update_pixel(x, y);
|
||||
}
|
||||
|
||||
@ -278,7 +278,7 @@ void nbmj8688_state::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
}
|
||||
}
|
||||
|
||||
void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
void nbmj8688_state::gfxdraw(int gfxtype)
|
||||
{
|
||||
UINT8 *GFX = memregion("gfx1")->base();
|
||||
|
||||
@ -293,7 +293,7 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
|
||||
if (gfxtype == GFXTYPE_PURE_12BIT)
|
||||
{
|
||||
if (m_mjsikaku_gfxflag2 & 0x20) return;
|
||||
if (m_gfxflag2 & 0x20) return;
|
||||
}
|
||||
|
||||
m_nb1413m3->m_busyctr = 0;
|
||||
@ -324,7 +324,7 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
}
|
||||
|
||||
gfxlen = memregion("gfx1")->bytes();
|
||||
gfxaddr = (m_mjsikaku_gfxrom << 17) + (m_blitter_src_addr << 1);
|
||||
gfxaddr = (m_gfxrom << 17) + (m_blitter_src_addr << 1);
|
||||
|
||||
//popmessage("ADDR:%08X DX:%03d DY:%03d SX:%03d SY:%03d", gfxaddr, startx, starty, sizex, sizey);
|
||||
//logerror("ADDR:%08X DX:%03d DY:%03d SX:%03d SY:%03d\n", gfxaddr, startx, starty, sizex, sizey);
|
||||
@ -346,9 +346,9 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
|
||||
dx1 = (2 * x + 0) & 0x1ff;
|
||||
dx2 = (2 * x + 1) & 0x1ff;
|
||||
dy = (y + m_mjsikaku_scrolly) & 0xff;
|
||||
dy = (y + m_scrolly) & 0xff;
|
||||
|
||||
if (m_mjsikaku_flipscreen)
|
||||
if (m_flipscreen)
|
||||
{
|
||||
dx1 ^= 0x1ff;
|
||||
dx2 ^= 0x1ff;
|
||||
@ -357,11 +357,11 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
|
||||
if (gfxtype == GFXTYPE_HYBRID_16BIT)
|
||||
{
|
||||
if (m_mjsikaku_gfxflag3 & 0x40)
|
||||
if (m_gfxflag3 & 0x40)
|
||||
{
|
||||
// direct mode
|
||||
|
||||
if (m_mjsikaku_gfxflag3 & 0x80)
|
||||
if (m_gfxflag3 & 0x80)
|
||||
{
|
||||
/* least significant bits */
|
||||
if (color != 0xff)
|
||||
@ -386,10 +386,10 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
// lookup table mode
|
||||
|
||||
// unknown flag (seiha, seiham)
|
||||
// if (m_mjsikaku_gfxflag3 & 0x80) return;
|
||||
// if (m_gfxflag3 & 0x80) return;
|
||||
|
||||
// unknown (seiha, seiham, iemoto, ojousan)
|
||||
if (!(m_mjsikaku_gfxflag2 & 0x20)) return;
|
||||
if (!(m_gfxflag2 & 0x20)) return;
|
||||
|
||||
if (m_blitter_direction_x)
|
||||
{
|
||||
@ -411,7 +411,7 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
{
|
||||
/* extend color from 12-bit to 16-bit */
|
||||
color1 = (color1 & 0xffc0) | ((color1 & 0x20) >> 1) | ((color1 & 0x10) >> 2);
|
||||
m_mjsikaku_videoram[(dy * 512) + dx1] = color1;
|
||||
m_videoram[(dy * 512) + dx1] = color1;
|
||||
update_pixel(dx1, dy);
|
||||
}
|
||||
|
||||
@ -419,7 +419,7 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
{
|
||||
/* extend color from 12-bit to 16-bit */
|
||||
color2 = (color2 & 0xffc0) | ((color2 & 0x20) >> 1) | ((color2 & 0x10) >> 2);
|
||||
m_mjsikaku_videoram[(dy * 512) + dx2] = color2;
|
||||
m_videoram[(dy * 512) + dx2] = color2;
|
||||
update_pixel(dx2, dy);
|
||||
}
|
||||
}
|
||||
@ -446,25 +446,25 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
|
||||
if (color1 != 0x0fff)
|
||||
{
|
||||
m_mjsikaku_videoram[(dy * 512) + dx1] = color1;
|
||||
m_videoram[(dy * 512) + dx1] = color1;
|
||||
update_pixel(dx1, dy);
|
||||
}
|
||||
if (color2 != 0x0fff)
|
||||
{
|
||||
m_mjsikaku_videoram[(dy * 512) + dx2] = color2;
|
||||
m_videoram[(dy * 512) + dx2] = color2;
|
||||
update_pixel(dx2, dy);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gfxtype == GFXTYPE_HYBRID_12BIT && (m_mjsikaku_gfxflag2 & 0x20))
|
||||
if (gfxtype == GFXTYPE_HYBRID_12BIT && (m_gfxflag2 & 0x20))
|
||||
{
|
||||
/* 4096 colors mode, wedged in on top of normal mode
|
||||
Here we affect only the 4 least significant bits, the others are
|
||||
changed as usual.
|
||||
*/
|
||||
|
||||
if (m_mjsikaku_gfxflag2 & 0x10)
|
||||
if (m_gfxflag2 & 0x10)
|
||||
{
|
||||
// 4096 colors low mode (2nd draw upper)
|
||||
color = m_clut[((color & 0xf0) >> 4)];
|
||||
@ -484,7 +484,7 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_mjsikaku_gfxflag2 & 0x04)
|
||||
if (m_gfxflag2 & 0x04)
|
||||
{
|
||||
// direct mode
|
||||
|
||||
@ -511,7 +511,7 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
color2 = m_clut[color2];
|
||||
}
|
||||
|
||||
if (gfxtype == GFXTYPE_PURE_16BIT && !(m_mjsikaku_gfxflag2 & 0x20))
|
||||
if (gfxtype == GFXTYPE_PURE_16BIT && !(m_gfxflag2 & 0x20))
|
||||
{
|
||||
/* 16-bit palette most significant bits */
|
||||
if (color1 != 0xff) writeram_high(dx1, dy, color1);
|
||||
@ -533,9 +533,9 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
m_nb1413m3->m_busyflag = 0;
|
||||
|
||||
if (gfxtype == GFXTYPE_8BIT)
|
||||
timer_set(attotime::from_hz(400000) * m_nb1413m3->m_busyctr, TIMER_BLITTER);
|
||||
m_blitter_timer->adjust(attotime::from_hz(400000) * m_nb1413m3->m_busyctr);
|
||||
else
|
||||
timer_set(attotime::from_hz(400000) * m_nb1413m3->m_busyctr, TIMER_BLITTER);
|
||||
m_blitter_timer->adjust(attotime::from_hz(400000) * m_nb1413m3->m_busyctr);
|
||||
}
|
||||
|
||||
|
||||
@ -546,56 +546,83 @@ void nbmj8688_state::mbmj8688_gfxdraw(int gfxtype)
|
||||
|
||||
void nbmj8688_state::common_video_start()
|
||||
{
|
||||
m_mjsikaku_tmpbitmap = auto_bitmap_ind16_alloc(machine(), 512, 256);
|
||||
m_mjsikaku_videoram = auto_alloc_array_clear(machine(), UINT16, 512 * 256);
|
||||
m_blitter_timer = timer_alloc(TIMER_BLITTER);
|
||||
|
||||
m_tmpbitmap = auto_bitmap_ind16_alloc(machine(), 512, 256);
|
||||
m_videoram = auto_alloc_array_clear(machine(), UINT16, 512 * 256);
|
||||
m_clut = auto_alloc_array(machine(), UINT8, 0x20);
|
||||
|
||||
m_mjsikaku_scrolly = 0; // reset because crystalg/crystal2 don't write to this register
|
||||
m_scrolly = 0; // reset because crystalg/crystal2 don't write to this register
|
||||
m_screen_refresh = 1;
|
||||
|
||||
save_pointer(NAME(m_videoram), 512 * 256);
|
||||
save_pointer(NAME(m_clut), 0x20);
|
||||
save_item(NAME(m_scrolly));
|
||||
save_item(NAME(m_blitter_destx));
|
||||
save_item(NAME(m_blitter_desty));
|
||||
save_item(NAME(m_blitter_sizex));
|
||||
save_item(NAME(m_blitter_sizey));
|
||||
save_item(NAME(m_blitter_direction_x));
|
||||
save_item(NAME(m_blitter_direction_y));
|
||||
save_item(NAME(m_blitter_src_addr));
|
||||
save_item(NAME(m_gfxrom));
|
||||
save_item(NAME(m_dispflag));
|
||||
save_item(NAME(m_gfxflag2));
|
||||
save_item(NAME(m_gfxflag3));
|
||||
save_item(NAME(m_flipscreen));
|
||||
save_item(NAME(m_flipscreen_old));
|
||||
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(nbmj8688_state::postload), this));
|
||||
}
|
||||
|
||||
void nbmj8688_state::postload()
|
||||
{
|
||||
m_screen_refresh = 1;
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(nbmj8688_state,mbmj8688_8bit)
|
||||
{
|
||||
m_mjsikaku_gfxmode = GFXTYPE_8BIT;
|
||||
m_gfxmode = GFXTYPE_8BIT;
|
||||
common_video_start();
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(nbmj8688_state,mbmj8688_hybrid_12bit)
|
||||
{
|
||||
m_mjsikaku_gfxmode = GFXTYPE_HYBRID_12BIT;
|
||||
m_gfxmode = GFXTYPE_HYBRID_12BIT;
|
||||
common_video_start();
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(nbmj8688_state,mbmj8688_pure_12bit)
|
||||
{
|
||||
m_mjsikaku_gfxmode = GFXTYPE_PURE_12BIT;
|
||||
m_gfxmode = GFXTYPE_PURE_12BIT;
|
||||
common_video_start();
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(nbmj8688_state,mbmj8688_hybrid_16bit)
|
||||
{
|
||||
m_mjsikaku_gfxmode = GFXTYPE_HYBRID_16BIT;
|
||||
m_gfxmode = GFXTYPE_HYBRID_16BIT;
|
||||
common_video_start();
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(nbmj8688_state,mbmj8688_pure_16bit)
|
||||
{
|
||||
m_mjsikaku_gfxmode = GFXTYPE_PURE_16BIT;
|
||||
m_gfxmode = GFXTYPE_PURE_16BIT;
|
||||
common_video_start();
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(nbmj8688_state,mbmj8688_pure_16bit_LCD)
|
||||
{
|
||||
m_mjsikaku_gfxmode = GFXTYPE_PURE_16BIT;
|
||||
m_gfxmode = GFXTYPE_PURE_16BIT;
|
||||
common_video_start();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::nbmj8688_HD61830B_both_instr_w)
|
||||
WRITE8_MEMBER(nbmj8688_state::HD61830B_both_instr_w)
|
||||
{
|
||||
m_lcdc0->control_w(space, offset, data);
|
||||
m_lcdc1->control_w(space, offset, data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(nbmj8688_state::nbmj8688_HD61830B_both_data_w)
|
||||
WRITE8_MEMBER(nbmj8688_state::HD61830B_both_data_w)
|
||||
{
|
||||
m_lcdc0->data_w(space, offset, data);
|
||||
m_lcdc1->data_w(space, offset, data);
|
||||
@ -609,7 +636,7 @@ WRITE8_MEMBER(nbmj8688_state::nbmj8688_HD61830B_both_data_w)
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
UINT32 nbmj8688_state::screen_update_mbmj8688(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
UINT32 nbmj8688_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int x, y;
|
||||
|
||||
@ -618,9 +645,9 @@ if(machine().input().code_pressed_once(KEYCODE_T))
|
||||
//
|
||||
}
|
||||
|
||||
if (m_mjsikaku_screen_refresh)
|
||||
if (m_screen_refresh)
|
||||
{
|
||||
m_mjsikaku_screen_refresh = 0;
|
||||
m_screen_refresh = 0;
|
||||
for (y = 0; y < 256; y++)
|
||||
{
|
||||
for (x = 0; x < 512; x++)
|
||||
@ -630,14 +657,14 @@ if(machine().input().code_pressed_once(KEYCODE_T))
|
||||
}
|
||||
}
|
||||
|
||||
// if (m_mjsikaku_dispflag)
|
||||
// if (m_dispflag)
|
||||
{
|
||||
int scrolly;
|
||||
if (m_mjsikaku_flipscreen) scrolly = m_mjsikaku_scrolly;
|
||||
else scrolly = (-m_mjsikaku_scrolly) & 0xff;
|
||||
if (m_flipscreen) scrolly = m_scrolly;
|
||||
else scrolly = (-m_scrolly) & 0xff;
|
||||
|
||||
copybitmap(bitmap, *m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly, cliprect);
|
||||
copybitmap(bitmap, *m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly - 256, cliprect);
|
||||
copybitmap(bitmap, *m_tmpbitmap, 0, 0, 0, scrolly, cliprect);
|
||||
copybitmap(bitmap, *m_tmpbitmap, 0, 0, 0, scrolly - 256, cliprect);
|
||||
}
|
||||
// else
|
||||
// bitmap.fill(0);
|
||||
|
Loading…
Reference in New Issue
Block a user