diff options
Diffstat (limited to 'src/mame/drivers/nbmj9195.cpp')
-rw-r--r-- | src/mame/drivers/nbmj9195.cpp | 817 |
1 files changed, 426 insertions, 391 deletions
diff --git a/src/mame/drivers/nbmj9195.cpp b/src/mame/drivers/nbmj9195.cpp index e006a39c325..c8c256eb1cf 100644 --- a/src/mame/drivers/nbmj9195.cpp +++ b/src/mame/drivers/nbmj9195.cpp @@ -232,411 +232,444 @@ DRIVER_INIT_MEMBER(nbmj9195_state,nbmj9195) } -ADDRESS_MAP_START(nbmj9195_state::sailorws_map) - AM_RANGE(0x0000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(palette_w) AM_SHARE("paletteram") - AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mjuraden_map) - AM_RANGE(0x0000, 0xefff) AM_ROM - AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(palette_w) AM_SHARE("paletteram") - AM_RANGE(0xf800, 0xffff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::koinomp_map) - AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(palette_w) AM_SHARE("paletteram") - AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("nvram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::ngpgal_map) - AM_RANGE(0x0000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xd1ff) AM_RAM_WRITE(palette_w) AM_SHARE("paletteram") - AM_RANGE(0xd800, 0xdfff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mscoutm_map) - AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe5ff) AM_RAM - AM_RANGE(0xe600, 0xebff) AM_RAM_WRITE(nb22090_palette_w) AM_SHARE("paletteram") - AM_RANGE(0xec00, 0xf1ff) AM_RAM - AM_RANGE(0xf200, 0xffff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mjegolf_map) - AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe5ff) AM_RAM_WRITE(nb22090_palette_w) AM_SHARE("paletteram") - AM_RANGE(0xe600, 0xebff) AM_RAM - AM_RANGE(0xec00, 0xf1ff) AM_RAM - AM_RANGE(0xf200, 0xffff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mjuraden_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xb2, 0xb2) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb4, 0xb4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb6, 0xb6) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::koinomp_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xa0, 0xaf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xb0, 0xbf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xc0, 0xc0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xc2, 0xc2) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xc4, 0xc4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xc6, 0xc6) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - AM_RANGE(0xcf, 0xcf) AM_MIRROR(0xff00) AM_WRITENOP -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::patimono_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa4, 0xa4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb8) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mmehyou_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa4, 0xa4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::gal10ren_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xa0, 0xaf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xb0, 0xbf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xc0, 0xc0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xc8, 0xc8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xd0, 0xd0) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xd8, 0xd8) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::renaiclb_io_map) - AM_RANGE(0x20, 0x20) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0x24, 0x24) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0x28, 0x28) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0x2c, 0x2c) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xe0, 0xef) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0xf0, 0xff) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mjlaman_io_map) - AM_RANGE(0x20, 0x20) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0x22, 0x22) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0x24, 0x24) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0x26, 0x26) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xe0, 0xef) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xf0, 0xff) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mkeibaou_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xa0, 0xaf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xb0, 0xbf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xd8, 0xd8) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xda, 0xda) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xdc, 0xdc) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xde, 0xde) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::pachiten_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xa0, 0xaf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xb0, 0xbf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xe0, 0xe0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xe2, 0xe2) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xe4, 0xe4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xe6, 0xe6) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::sailorws_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xf0, 0xf0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xf2, 0xf2) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xf4, 0xf4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xf6, 0xf6) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::sailorwr_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xf8, 0xf8) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xfa, 0xfa) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xfc, 0xfc) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xfe, 0xfe) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::psailor1_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xf0, 0xf0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xf2, 0xf2) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xf4, 0xf4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xf6, 0xf6) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::psailor2_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xa0, 0xaf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xb0, 0xbf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xe0, 0xe0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xe2, 0xe2) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xe4, 0xe4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xf6, 0xf6) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::otatidai_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb8, 0xb8) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::yosimoto_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0x90, 0x90) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0x94, 0x94) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0x98, 0x98) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0x9c, 0x9c) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::yosimotm_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xf0, 0xf0) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - AM_RANGE(0xfc, 0xfc) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xf4, 0xf4) AM_MIRROR(0xff00) AM_NOP - AM_RANGE(0xf8, 0xf8) AM_MIRROR(0xff00) AM_NOP -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::jituroku_io_map) - AM_RANGE(0x60, 0x61) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x60, 0x6f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x70, 0x7f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) - - AM_RANGE(0xe0, 0xe0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xe8, 0xe8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xf0, 0xf0) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xf8, 0xf8) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::ngpgal_io_map) - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa4, 0xa4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mjgottsu_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa4, 0xa4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::cmehyou_io_map) - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - AM_RANGE(0xb4, 0xb4) AM_MIRROR(0xff00) AM_WRITENOP - - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(nbmj9195_state::mjkoiura_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0x90, 0x9f) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa4, 0xa4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) -ADDRESS_MAP_END +void nbmj9195_state::sailorws_map(address_map &map) +{ + map(0x0000, 0xefff).rom(); + map(0xf000, 0xf1ff).ram().w(this, FUNC(nbmj9195_state::palette_w)).share("paletteram"); + map(0xf800, 0xffff).ram().share("nvram"); +} + +void nbmj9195_state::mjuraden_map(address_map &map) +{ + map(0x0000, 0xefff).rom(); + map(0xf200, 0xf3ff).ram().w(this, FUNC(nbmj9195_state::palette_w)).share("paletteram"); + map(0xf800, 0xffff).ram(); +} + +void nbmj9195_state::koinomp_map(address_map &map) +{ + map(0x0000, 0xdfff).rom(); + map(0xe000, 0xe1ff).ram().w(this, FUNC(nbmj9195_state::palette_w)).share("paletteram"); + map(0xe800, 0xefff).ram().share("nvram"); +} + +void nbmj9195_state::ngpgal_map(address_map &map) +{ + map(0x0000, 0xcfff).rom(); + map(0xd000, 0xd1ff).ram().w(this, FUNC(nbmj9195_state::palette_w)).share("paletteram"); + map(0xd800, 0xdfff).ram(); +} + +void nbmj9195_state::mscoutm_map(address_map &map) +{ + map(0x0000, 0xdfff).rom(); + map(0xe000, 0xe5ff).ram(); + map(0xe600, 0xebff).ram().w(this, FUNC(nbmj9195_state::nb22090_palette_w)).share("paletteram"); + map(0xec00, 0xf1ff).ram(); + map(0xf200, 0xffff).ram(); +} + +void nbmj9195_state::mjegolf_map(address_map &map) +{ + map(0x0000, 0xdfff).rom(); + map(0xe000, 0xe5ff).ram().w(this, FUNC(nbmj9195_state::nb22090_palette_w)).share("paletteram"); + map(0xe600, 0xebff).ram(); + map(0xec00, 0xf1ff).ram(); + map(0xf200, 0xffff).ram(); +} + +void nbmj9195_state::mjuraden_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xb0, 0xb0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xb2, 0xb2).mirror(0xff00).nopw(); + map(0xb4, 0xb4).mirror(0xff00).nopw(); + map(0xb6, 0xb6).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::koinomp_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xa0, 0xaf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xb0, 0xbf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xc0, 0xc0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xc2, 0xc2).mirror(0xff00).nopw(); + map(0xc4, 0xc4).mirror(0xff00).nopw(); + map(0xc6, 0xc6).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + map(0xcf, 0xcf).mirror(0xff00).nopw(); +} + +void nbmj9195_state::patimono_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa4, 0xa4).mirror(0xff00).nopw(); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb8).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); +} + +void nbmj9195_state::mmehyou_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa4, 0xa4).mirror(0xff00).nopw(); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb0).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::gal10ren_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xa0, 0xaf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xb0, 0xbf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xc0, 0xc0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xc8, 0xc8).mirror(0xff00).nopw(); + map(0xd0, 0xd0).mirror(0xff00).nopw(); + map(0xd8, 0xd8).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::renaiclb_io_map(address_map &map) +{ + map(0x20, 0x20).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0x24, 0x24).mirror(0xff00).nopw(); + map(0x28, 0x28).mirror(0xff00).nopw(); + map(0x2c, 0x2c).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xe0, 0xe1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xe0, 0xef).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0xf0, 0xff).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); +} + +void nbmj9195_state::mjlaman_io_map(address_map &map) +{ + map(0x20, 0x20).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0x22, 0x22).mirror(0xff00).nopw(); + map(0x24, 0x24).mirror(0xff00).nopw(); + map(0x26, 0x26).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xe0, 0xe1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xe0, 0xef).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xf0, 0xff).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); +} + +void nbmj9195_state::mkeibaou_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xa0, 0xaf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xb0, 0xbf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xd8, 0xd8).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xda, 0xda).mirror(0xff00).nopw(); + map(0xdc, 0xdc).mirror(0xff00).nopw(); + map(0xde, 0xde).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::pachiten_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xa0, 0xaf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xb0, 0xbf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xe0, 0xe0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xe2, 0xe2).mirror(0xff00).nopw(); + map(0xe4, 0xe4).mirror(0xff00).nopw(); + map(0xe6, 0xe6).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::sailorws_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xf0, 0xf0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xf2, 0xf2).mirror(0xff00).nopw(); + map(0xf4, 0xf4).mirror(0xff00).nopw(); + map(0xf6, 0xf6).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::sailorwr_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xf8, 0xf8).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xfa, 0xfa).mirror(0xff00).nopw(); + map(0xfc, 0xfc).mirror(0xff00).nopw(); + map(0xfe, 0xfe).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::psailor1_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xf0, 0xf0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xf2, 0xf2).mirror(0xff00).nopw(); + map(0xf4, 0xf4).mirror(0xff00).nopw(); + map(0xf6, 0xf6).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::psailor2_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xa0, 0xaf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xb0, 0xbf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xe0, 0xe0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xe2, 0xe2).mirror(0xff00).nopw(); + map(0xe4, 0xe4).mirror(0xff00).nopw(); + map(0xf6, 0xf6).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::otatidai_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb0).mirror(0xff00).nopw(); + map(0xb8, 0xb8).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::yosimoto_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0x90, 0x90).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0x94, 0x94).mirror(0xff00).nopw(); + map(0x98, 0x98).mirror(0xff00).nopw(); + map(0x9c, 0x9c).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); +} + +void nbmj9195_state::yosimotm_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xf0, 0xf0).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + map(0xfc, 0xfc).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xf4, 0xf4).mirror(0xff00).noprw(); + map(0xf8, 0xf8).mirror(0xff00).noprw(); +} + +void nbmj9195_state::jituroku_io_map(address_map &map) +{ + map(0x60, 0x61).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x60, 0x6f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x70, 0x7f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); + + map(0xe0, 0xe0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xe8, 0xe8).mirror(0xff00).nopw(); + map(0xf0, 0xf0).mirror(0xff00).nopw(); + map(0xf8, 0xf8).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::ngpgal_io_map(address_map &map) +{ + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa4, 0xa4).mirror(0xff00).nopw(); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb0).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); +} + +void nbmj9195_state::mjgottsu_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa4, 0xa4).mirror(0xff00).nopw(); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb0).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} + +void nbmj9195_state::cmehyou_io_map(address_map &map) +{ + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb0).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + map(0xb4, 0xb4).mirror(0xff00).nopw(); + + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); +} + +void nbmj9195_state::mjkoiura_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0x80, 0x8f).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0x90, 0x9f).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa4, 0xa4).mirror(0xff00).nopw(); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb0).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); +} -ADDRESS_MAP_START(nbmj9195_state::mkoiuraa_io_map) - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xa4, 0xa4) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xa8, 0xa8) AM_MIRROR(0xff00) AM_WRITENOP - AM_RANGE(0xb0, 0xb0) AM_MIRROR(0xff00) AM_WRITE(inputportsel_w) - - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) -ADDRESS_MAP_END +void nbmj9195_state::mkoiuraa_io_map(address_map &map) +{ + map(0xa0, 0xa0).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xa4, 0xa4).mirror(0xff00).nopw(); + map(0xa8, 0xa8).mirror(0xff00).nopw(); + map(0xb0, 0xb0).mirror(0xff00).w(this, FUNC(nbmj9195_state::inputportsel_w)); + + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); +} -ADDRESS_MAP_START(nbmj9195_state::mscoutm_io_map) - AM_RANGE(0x80, 0x80) AM_MIRROR(0xff00) AM_READ(mscoutm_dipsw_1_r) - AM_RANGE(0x82, 0x82) AM_MIRROR(0xff00) AM_READ(mscoutm_dipsw_0_r) - AM_RANGE(0x84, 0x84) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) +void nbmj9195_state::mscoutm_io_map(address_map &map) +{ + map(0x80, 0x80).mirror(0xff00).r(this, FUNC(nbmj9195_state::mscoutm_dipsw_1_r)); + map(0x82, 0x82).mirror(0xff00).r(this, FUNC(nbmj9195_state::mscoutm_dipsw_0_r)); + map(0x84, 0x84).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); - AM_RANGE(0xa0, 0xa6) AM_MIRROR(0xff00) AM_WRITENOP // nb22090 param ? + map(0xa0, 0xa6).mirror(0xff00).nopw(); // nb22090 param ? - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) - AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xe0, 0xef) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); + map(0xe0, 0xe1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xe0, 0xef).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); - AM_RANGE(0xf0, 0xff) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) -ADDRESS_MAP_END + map(0xf0, 0xff).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); +} -ADDRESS_MAP_START(nbmj9195_state::imekura_io_map) - AM_RANGE(0x80, 0x80) AM_MIRROR(0xff00) AM_READ(mscoutm_dipsw_1_r) - AM_RANGE(0x82, 0x82) AM_MIRROR(0xff00) AM_READ(mscoutm_dipsw_0_r) - AM_RANGE(0x84, 0x84) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) +void nbmj9195_state::imekura_io_map(address_map &map) +{ + map(0x80, 0x80).mirror(0xff00).r(this, FUNC(nbmj9195_state::mscoutm_dipsw_1_r)); + map(0x82, 0x82).mirror(0xff00).r(this, FUNC(nbmj9195_state::mscoutm_dipsw_0_r)); + map(0x84, 0x84).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); - AM_RANGE(0xb0, 0xb6) AM_MIRROR(0xff00) AM_WRITENOP // nb22090 param ? + map(0xb0, 0xb6).mirror(0xff00).nopw(); // nb22090 param ? - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); - AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xe0, 0xef) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) - AM_RANGE(0xf0, 0xff) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) -ADDRESS_MAP_END + map(0xe0, 0xe1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xe0, 0xef).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); + map(0xf0, 0xff).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); +} -ADDRESS_MAP_START(nbmj9195_state::mjegolf_io_map) - AM_RANGE(0x80, 0x86) AM_MIRROR(0xff00) AM_WRITENOP // nb22090 param ? +void nbmj9195_state::mjegolf_io_map(address_map &map) +{ + map(0x80, 0x86).mirror(0xff00).nopw(); // nb22090 param ? - AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_READ(blitter_0_r) - AM_RANGE(0xa0, 0xaf) AM_MIRROR(0xff00) AM_WRITE(blitter_0_w) - AM_RANGE(0xb0, 0xbf) AM_MIRROR(0xff00) AM_WRITE(clut_0_w) + map(0xa0, 0xa1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_0_r)); + map(0xa0, 0xaf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_0_w)); + map(0xb0, 0xbf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_0_w)); - AM_RANGE(0xc0, 0xc1) AM_MIRROR(0xff00) AM_READ(blitter_1_r) - AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_WRITE(blitter_1_w) + map(0xc0, 0xc1).mirror(0xff00).r(this, FUNC(nbmj9195_state::blitter_1_r)); + map(0xc0, 0xcf).mirror(0xff00).w(this, FUNC(nbmj9195_state::blitter_1_w)); - AM_RANGE(0xd0, 0xdf) AM_MIRROR(0xff00) AM_WRITE(clut_1_w) + map(0xd0, 0xdf).mirror(0xff00).w(this, FUNC(nbmj9195_state::clut_1_w)); - AM_RANGE(0xe0, 0xe0) AM_MIRROR(0xff00) AM_READ(mscoutm_dipsw_1_r) - AM_RANGE(0xe2, 0xe2) AM_MIRROR(0xff00) AM_READ(mscoutm_dipsw_0_r) - AM_RANGE(0xe4, 0xe4) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) -ADDRESS_MAP_END + map(0xe0, 0xe0).mirror(0xff00).r(this, FUNC(nbmj9195_state::mscoutm_dipsw_1_r)); + map(0xe2, 0xe2).mirror(0xff00).r(this, FUNC(nbmj9195_state::mscoutm_dipsw_0_r)); + map(0xe4, 0xe4).mirror(0xff00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); +} -ADDRESS_MAP_START(nbmj9195_state::sailorws_sound_map) - AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("soundbank") -ADDRESS_MAP_END +void nbmj9195_state::sailorws_sound_map(address_map &map) +{ + map(0x0000, 0x77ff).rom(); + map(0x7800, 0x7fff).ram(); + map(0x8000, 0xffff).bankr("soundbank"); +} -ADDRESS_MAP_START(nbmj9195_state::sailorws_sound_io_map) - AM_RANGE(0x80, 0x81) AM_MIRROR(0xff00) AM_DEVWRITE("ymsnd", ym3812_device, write) -ADDRESS_MAP_END +void nbmj9195_state::sailorws_sound_io_map(address_map &map) +{ + map(0x80, 0x81).mirror(0xff00).w("ymsnd", FUNC(ym3812_device::write)); +} @@ -645,19 +678,21 @@ ADDRESS_MAP_END TODO: it probably doesn't belong in here. Both CPUs are certainly tmpz84c011 tho ... */ -ADDRESS_MAP_START(nbmj9195_state::shabdama_map) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_RAM +void nbmj9195_state::shabdama_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0xe000, 0xe7ff).ram(); // AM_RANGE(0xd000, 0xd1ff) AM_RAM_WRITE(palette_w) AM_SHARE("paletteram") // AM_RANGE(0xd800, 0xdfff) AM_RAM -ADDRESS_MAP_END +} -ADDRESS_MAP_START(nbmj9195_state::shabdama_io_map) +void nbmj9195_state::shabdama_io_map(address_map &map) +{ // ADDRESS_MAP_UNMAP_HIGH // AM_RANGE(0x60, 0x61) AM_READ(blitter_0_r) // AM_RANGE(0x60, 0x6f) AM_WRITE(blitter_0_w) // AM_RANGE(0x70, 0x7f) AM_WRITE(clut_0_w) -ADDRESS_MAP_END +} /******************************************************************************** These Nichibutsu Mahjong games use two different but very similar control ports: |