diff options
Diffstat (limited to 'src/devices/video/imagetek_i4100.cpp')
-rw-r--r-- | src/devices/video/imagetek_i4100.cpp | 186 |
1 files changed, 93 insertions, 93 deletions
diff --git a/src/devices/video/imagetek_i4100.cpp b/src/devices/video/imagetek_i4100.cpp index 91a05b41a99..5de099ef28a 100644 --- a/src/devices/video/imagetek_i4100.cpp +++ b/src/devices/video/imagetek_i4100.cpp @@ -79,120 +79,120 @@ DEFINE_DEVICE_TYPE(I4300, imagetek_i4300_device, "i4300", "Imagetek I4300 095 VD void imagetek_i4100_device::map(address_map &map) { - map(0x00000, 0x1ffff).rw(this, FUNC(imagetek_i4100_device::vram_0_r), FUNC(imagetek_i4100_device::vram_0_w)).share("vram_0"); - map(0x20000, 0x3ffff).rw(this, FUNC(imagetek_i4100_device::vram_1_r), FUNC(imagetek_i4100_device::vram_1_w)).share("vram_1"); - map(0x40000, 0x5ffff).rw(this, FUNC(imagetek_i4100_device::vram_2_r), FUNC(imagetek_i4100_device::vram_2_w)).share("vram_2"); - map(0x60000, 0x6ffff).r(this, FUNC(imagetek_i4100_device::gfxrom_r)); - map(0x70000, 0x71fff).rw(this, FUNC(imagetek_i4100_device::scratchram_r), FUNC(imagetek_i4100_device::scratchram_w)).share("scratchram"); // unknown, maybe palette + map(0x00000, 0x1ffff).rw(FUNC(imagetek_i4100_device::vram_0_r), FUNC(imagetek_i4100_device::vram_0_w)).share("vram_0"); + map(0x20000, 0x3ffff).rw(FUNC(imagetek_i4100_device::vram_1_r), FUNC(imagetek_i4100_device::vram_1_w)).share("vram_1"); + map(0x40000, 0x5ffff).rw(FUNC(imagetek_i4100_device::vram_2_r), FUNC(imagetek_i4100_device::vram_2_w)).share("vram_2"); + map(0x60000, 0x6ffff).r(FUNC(imagetek_i4100_device::gfxrom_r)); + map(0x70000, 0x71fff).rw(FUNC(imagetek_i4100_device::scratchram_r), FUNC(imagetek_i4100_device::scratchram_w)).share("scratchram"); // unknown, maybe palette map(0x72000, 0x73fff).rw("palette", FUNC(palette_device::read16), FUNC(palette_device::write16)).share("palette"); - map(0x74000, 0x74fff).rw(this, FUNC(imagetek_i4100_device::spriteram_r), FUNC(imagetek_i4100_device::spriteram_w)).share("spriteram"); - map(0x75000, 0x75fff).rw(this, FUNC(imagetek_i4100_device::rmw_vram_0_r), FUNC(imagetek_i4100_device::rmw_vram_0_w)); - map(0x76000, 0x76fff).rw(this, FUNC(imagetek_i4100_device::rmw_vram_1_r), FUNC(imagetek_i4100_device::rmw_vram_1_w)); - map(0x77000, 0x77fff).rw(this, FUNC(imagetek_i4100_device::rmw_vram_2_r), FUNC(imagetek_i4100_device::rmw_vram_2_w)); - map(0x78000, 0x787ff).rw(this, FUNC(imagetek_i4100_device::tiletable_r), FUNC(imagetek_i4100_device::tiletable_w)).share("tiletable"); + map(0x74000, 0x74fff).rw(FUNC(imagetek_i4100_device::spriteram_r), FUNC(imagetek_i4100_device::spriteram_w)).share("spriteram"); + map(0x75000, 0x75fff).rw(FUNC(imagetek_i4100_device::rmw_vram_0_r), FUNC(imagetek_i4100_device::rmw_vram_0_w)); + map(0x76000, 0x76fff).rw(FUNC(imagetek_i4100_device::rmw_vram_1_r), FUNC(imagetek_i4100_device::rmw_vram_1_w)); + map(0x77000, 0x77fff).rw(FUNC(imagetek_i4100_device::rmw_vram_2_r), FUNC(imagetek_i4100_device::rmw_vram_2_w)); + map(0x78000, 0x787ff).rw(FUNC(imagetek_i4100_device::tiletable_r), FUNC(imagetek_i4100_device::tiletable_w)).share("tiletable"); // video registers - map(0x78800, 0x78801).rw(this, FUNC(imagetek_i4100_device::sprite_count_r), FUNC(imagetek_i4100_device::sprite_count_w)); - map(0x78802, 0x78803).rw(this, FUNC(imagetek_i4100_device::sprite_priority_r), FUNC(imagetek_i4100_device::sprite_priority_w)); - map(0x78804, 0x78805).rw(this, FUNC(imagetek_i4100_device::sprite_yoffset_r), FUNC(imagetek_i4100_device::sprite_yoffset_w)); - map(0x78806, 0x78807).rw(this, FUNC(imagetek_i4100_device::sprite_xoffset_r), FUNC(imagetek_i4100_device::sprite_xoffset_w)); - map(0x78808, 0x78809).rw(this, FUNC(imagetek_i4100_device::sprite_color_code_r), FUNC(imagetek_i4100_device::sprite_color_code_w)); - map(0x78810, 0x78811).rw(this, FUNC(imagetek_i4100_device::layer_priority_r), FUNC(imagetek_i4100_device::layer_priority_w)); - map(0x78812, 0x78813).rw(this, FUNC(imagetek_i4100_device::background_color_r), FUNC(imagetek_i4100_device::background_color_w)); - - map(0x78840, 0x7884d).w(this, FUNC(imagetek_i4100_device::blitter_w)).share("blitter_regs"); - map(0x78850, 0x78851).rw(this, FUNC(imagetek_i4100_device::screen_yoffset_r), FUNC(imagetek_i4100_device::screen_yoffset_w)); - map(0x78852, 0x78853).rw(this, FUNC(imagetek_i4100_device::screen_xoffset_r), FUNC(imagetek_i4100_device::screen_xoffset_w)); - map(0x78860, 0x7886b).rw(this, FUNC(imagetek_i4100_device::window_r), FUNC(imagetek_i4100_device::window_w)).share("windowregs"); - map(0x78870, 0x7887b).rw(this, FUNC(imagetek_i4100_device::scroll_r), FUNC(imagetek_i4100_device::scroll_w)).share("scrollregs"); - - map(0x78880, 0x78881).w(this, FUNC(imagetek_i4100_device::crtc_vert_w)); - map(0x78890, 0x78891).w(this, FUNC(imagetek_i4100_device::crtc_horz_w)); - map(0x788a0, 0x788a1).w(this, FUNC(imagetek_i4100_device::crtc_unlock_w)); - map(0x788aa, 0x788ab).w(this, FUNC(imagetek_i4100_device::rombank_w)); - map(0x788ac, 0x788ad).w(this, FUNC(imagetek_i4100_device::screen_ctrl_w)); + map(0x78800, 0x78801).rw(FUNC(imagetek_i4100_device::sprite_count_r), FUNC(imagetek_i4100_device::sprite_count_w)); + map(0x78802, 0x78803).rw(FUNC(imagetek_i4100_device::sprite_priority_r), FUNC(imagetek_i4100_device::sprite_priority_w)); + map(0x78804, 0x78805).rw(FUNC(imagetek_i4100_device::sprite_yoffset_r), FUNC(imagetek_i4100_device::sprite_yoffset_w)); + map(0x78806, 0x78807).rw(FUNC(imagetek_i4100_device::sprite_xoffset_r), FUNC(imagetek_i4100_device::sprite_xoffset_w)); + map(0x78808, 0x78809).rw(FUNC(imagetek_i4100_device::sprite_color_code_r), FUNC(imagetek_i4100_device::sprite_color_code_w)); + map(0x78810, 0x78811).rw(FUNC(imagetek_i4100_device::layer_priority_r), FUNC(imagetek_i4100_device::layer_priority_w)); + map(0x78812, 0x78813).rw(FUNC(imagetek_i4100_device::background_color_r), FUNC(imagetek_i4100_device::background_color_w)); + + map(0x78840, 0x7884d).w(FUNC(imagetek_i4100_device::blitter_w)).share("blitter_regs"); + map(0x78850, 0x78851).rw(FUNC(imagetek_i4100_device::screen_yoffset_r), FUNC(imagetek_i4100_device::screen_yoffset_w)); + map(0x78852, 0x78853).rw(FUNC(imagetek_i4100_device::screen_xoffset_r), FUNC(imagetek_i4100_device::screen_xoffset_w)); + map(0x78860, 0x7886b).rw(FUNC(imagetek_i4100_device::window_r), FUNC(imagetek_i4100_device::window_w)).share("windowregs"); + map(0x78870, 0x7887b).rw(FUNC(imagetek_i4100_device::scroll_r), FUNC(imagetek_i4100_device::scroll_w)).share("scrollregs"); + + map(0x78880, 0x78881).w(FUNC(imagetek_i4100_device::crtc_vert_w)); + map(0x78890, 0x78891).w(FUNC(imagetek_i4100_device::crtc_horz_w)); + map(0x788a0, 0x788a1).w(FUNC(imagetek_i4100_device::crtc_unlock_w)); + map(0x788aa, 0x788ab).w(FUNC(imagetek_i4100_device::rombank_w)); + map(0x788ac, 0x788ad).w(FUNC(imagetek_i4100_device::screen_ctrl_w)); } // same as above but with moved video registers (now at 0x797**) void imagetek_i4220_device::v2_map(address_map &map) { - map(0x00000, 0x1ffff).rw(this, FUNC(imagetek_i4220_device::vram_0_r), FUNC(imagetek_i4220_device::vram_0_w)).share("vram_0"); - map(0x20000, 0x3ffff).rw(this, FUNC(imagetek_i4220_device::vram_1_r), FUNC(imagetek_i4220_device::vram_1_w)).share("vram_1"); - map(0x40000, 0x5ffff).rw(this, FUNC(imagetek_i4220_device::vram_2_r), FUNC(imagetek_i4220_device::vram_2_w)).share("vram_2"); - map(0x60000, 0x6ffff).r(this, FUNC(imagetek_i4220_device::gfxrom_r)); - map(0x70000, 0x71fff).rw(this, FUNC(imagetek_i4220_device::scratchram_r), FUNC(imagetek_i4220_device::scratchram_w)).share("scratchram"); // unknown, maybe palette + map(0x00000, 0x1ffff).rw(FUNC(imagetek_i4220_device::vram_0_r), FUNC(imagetek_i4220_device::vram_0_w)).share("vram_0"); + map(0x20000, 0x3ffff).rw(FUNC(imagetek_i4220_device::vram_1_r), FUNC(imagetek_i4220_device::vram_1_w)).share("vram_1"); + map(0x40000, 0x5ffff).rw(FUNC(imagetek_i4220_device::vram_2_r), FUNC(imagetek_i4220_device::vram_2_w)).share("vram_2"); + map(0x60000, 0x6ffff).r(FUNC(imagetek_i4220_device::gfxrom_r)); + map(0x70000, 0x71fff).rw(FUNC(imagetek_i4220_device::scratchram_r), FUNC(imagetek_i4220_device::scratchram_w)).share("scratchram"); // unknown, maybe palette map(0x72000, 0x73fff).rw("palette", FUNC(palette_device::read16), FUNC(palette_device::write16)).share("palette"); - map(0x74000, 0x74fff).rw(this, FUNC(imagetek_i4220_device::spriteram_r), FUNC(imagetek_i4220_device::spriteram_w)).share("spriteram"); - map(0x75000, 0x75fff).rw(this, FUNC(imagetek_i4220_device::rmw_vram_0_r), FUNC(imagetek_i4220_device::rmw_vram_0_w)); - map(0x76000, 0x76fff).rw(this, FUNC(imagetek_i4220_device::rmw_vram_1_r), FUNC(imagetek_i4220_device::rmw_vram_1_w)); - map(0x77000, 0x77fff).rw(this, FUNC(imagetek_i4220_device::rmw_vram_2_r), FUNC(imagetek_i4220_device::rmw_vram_2_w)); - map(0x78000, 0x787ff).rw(this, FUNC(imagetek_i4220_device::tiletable_r), FUNC(imagetek_i4220_device::tiletable_w)).share("tiletable"); - - map(0x78840, 0x7884d).w(this, FUNC(imagetek_i4220_device::blitter_w)).share("blitter_regs"); - map(0x78850, 0x78851).rw(this, FUNC(imagetek_i4220_device::screen_yoffset_r), FUNC(imagetek_i4220_device::screen_yoffset_w)); - map(0x78852, 0x78853).rw(this, FUNC(imagetek_i4220_device::screen_xoffset_r), FUNC(imagetek_i4220_device::screen_xoffset_w)); - map(0x78860, 0x7886b).rw(this, FUNC(imagetek_i4220_device::window_r), FUNC(imagetek_i4220_device::window_w)).share("windowregs"); - map(0x78870, 0x7887b).rw(this, FUNC(imagetek_i4220_device::scroll_r), FUNC(imagetek_i4220_device::scroll_w)).share("scrollregs"); - - map(0x78880, 0x78881).w(this, FUNC(imagetek_i4220_device::crtc_vert_w)); - map(0x78890, 0x78891).w(this, FUNC(imagetek_i4220_device::crtc_horz_w)); - map(0x788a0, 0x788a1).w(this, FUNC(imagetek_i4220_device::crtc_unlock_w)); - map(0x788aa, 0x788ab).w(this, FUNC(imagetek_i4220_device::rombank_w)); - map(0x788ac, 0x788ad).w(this, FUNC(imagetek_i4220_device::screen_ctrl_w)); + map(0x74000, 0x74fff).rw(FUNC(imagetek_i4220_device::spriteram_r), FUNC(imagetek_i4220_device::spriteram_w)).share("spriteram"); + map(0x75000, 0x75fff).rw(FUNC(imagetek_i4220_device::rmw_vram_0_r), FUNC(imagetek_i4220_device::rmw_vram_0_w)); + map(0x76000, 0x76fff).rw(FUNC(imagetek_i4220_device::rmw_vram_1_r), FUNC(imagetek_i4220_device::rmw_vram_1_w)); + map(0x77000, 0x77fff).rw(FUNC(imagetek_i4220_device::rmw_vram_2_r), FUNC(imagetek_i4220_device::rmw_vram_2_w)); + map(0x78000, 0x787ff).rw(FUNC(imagetek_i4220_device::tiletable_r), FUNC(imagetek_i4220_device::tiletable_w)).share("tiletable"); + + map(0x78840, 0x7884d).w(FUNC(imagetek_i4220_device::blitter_w)).share("blitter_regs"); + map(0x78850, 0x78851).rw(FUNC(imagetek_i4220_device::screen_yoffset_r), FUNC(imagetek_i4220_device::screen_yoffset_w)); + map(0x78852, 0x78853).rw(FUNC(imagetek_i4220_device::screen_xoffset_r), FUNC(imagetek_i4220_device::screen_xoffset_w)); + map(0x78860, 0x7886b).rw(FUNC(imagetek_i4220_device::window_r), FUNC(imagetek_i4220_device::window_w)).share("windowregs"); + map(0x78870, 0x7887b).rw(FUNC(imagetek_i4220_device::scroll_r), FUNC(imagetek_i4220_device::scroll_w)).share("scrollregs"); + + map(0x78880, 0x78881).w(FUNC(imagetek_i4220_device::crtc_vert_w)); + map(0x78890, 0x78891).w(FUNC(imagetek_i4220_device::crtc_horz_w)); + map(0x788a0, 0x788a1).w(FUNC(imagetek_i4220_device::crtc_unlock_w)); + map(0x788aa, 0x788ab).w(FUNC(imagetek_i4220_device::rombank_w)); + map(0x788ac, 0x788ad).w(FUNC(imagetek_i4220_device::screen_ctrl_w)); // video registers - map(0x79700, 0x79701).rw(this, FUNC(imagetek_i4220_device::sprite_count_r), FUNC(imagetek_i4220_device::sprite_count_w)); - map(0x79702, 0x79703).rw(this, FUNC(imagetek_i4220_device::sprite_priority_r), FUNC(imagetek_i4220_device::sprite_priority_w)); - map(0x79704, 0x79705).rw(this, FUNC(imagetek_i4220_device::sprite_yoffset_r), FUNC(imagetek_i4220_device::sprite_yoffset_w)); - map(0x79706, 0x79707).rw(this, FUNC(imagetek_i4220_device::sprite_xoffset_r), FUNC(imagetek_i4220_device::sprite_xoffset_w)); - map(0x79708, 0x79709).rw(this, FUNC(imagetek_i4220_device::sprite_color_code_r), FUNC(imagetek_i4220_device::sprite_color_code_w)); - map(0x79710, 0x79711).rw(this, FUNC(imagetek_i4220_device::layer_priority_r), FUNC(imagetek_i4220_device::layer_priority_w)); - map(0x79712, 0x79713).rw(this, FUNC(imagetek_i4220_device::background_color_r), FUNC(imagetek_i4220_device::background_color_w)); + map(0x79700, 0x79701).rw(FUNC(imagetek_i4220_device::sprite_count_r), FUNC(imagetek_i4220_device::sprite_count_w)); + map(0x79702, 0x79703).rw(FUNC(imagetek_i4220_device::sprite_priority_r), FUNC(imagetek_i4220_device::sprite_priority_w)); + map(0x79704, 0x79705).rw(FUNC(imagetek_i4220_device::sprite_yoffset_r), FUNC(imagetek_i4220_device::sprite_yoffset_w)); + map(0x79706, 0x79707).rw(FUNC(imagetek_i4220_device::sprite_xoffset_r), FUNC(imagetek_i4220_device::sprite_xoffset_w)); + map(0x79708, 0x79709).rw(FUNC(imagetek_i4220_device::sprite_color_code_r), FUNC(imagetek_i4220_device::sprite_color_code_w)); + map(0x79710, 0x79711).rw(FUNC(imagetek_i4220_device::layer_priority_r), FUNC(imagetek_i4220_device::layer_priority_w)); + map(0x79712, 0x79713).rw(FUNC(imagetek_i4220_device::background_color_r), FUNC(imagetek_i4220_device::background_color_w)); // repeated here in Puzzlet compatibility mode - map(0x78800, 0x78801).rw(this, FUNC(imagetek_i4220_device::sprite_count_r), FUNC(imagetek_i4220_device::sprite_count_w)); + map(0x78800, 0x78801).rw(FUNC(imagetek_i4220_device::sprite_count_r), FUNC(imagetek_i4220_device::sprite_count_w)); // ... this one breaks Blazing Tornado tho // AM_RANGE(0x78802, 0x78803) AM_READWRITE(sprite_priority_r, sprite_priority_w) - map(0x78804, 0x78805).rw(this, FUNC(imagetek_i4220_device::sprite_yoffset_r), FUNC(imagetek_i4220_device::sprite_yoffset_w)); - map(0x78806, 0x78807).rw(this, FUNC(imagetek_i4220_device::sprite_xoffset_r), FUNC(imagetek_i4220_device::sprite_xoffset_w)); - map(0x78808, 0x78809).rw(this, FUNC(imagetek_i4220_device::sprite_color_code_r), FUNC(imagetek_i4220_device::sprite_color_code_w)); - map(0x78810, 0x78811).rw(this, FUNC(imagetek_i4220_device::layer_priority_r), FUNC(imagetek_i4220_device::layer_priority_w)); - map(0x78812, 0x78813).rw(this, FUNC(imagetek_i4220_device::background_color_r), FUNC(imagetek_i4220_device::background_color_w)); + map(0x78804, 0x78805).rw(FUNC(imagetek_i4220_device::sprite_yoffset_r), FUNC(imagetek_i4220_device::sprite_yoffset_w)); + map(0x78806, 0x78807).rw(FUNC(imagetek_i4220_device::sprite_xoffset_r), FUNC(imagetek_i4220_device::sprite_xoffset_w)); + map(0x78808, 0x78809).rw(FUNC(imagetek_i4220_device::sprite_color_code_r), FUNC(imagetek_i4220_device::sprite_color_code_w)); + map(0x78810, 0x78811).rw(FUNC(imagetek_i4220_device::layer_priority_r), FUNC(imagetek_i4220_device::layer_priority_w)); + map(0x78812, 0x78813).rw(FUNC(imagetek_i4220_device::background_color_r), FUNC(imagetek_i4220_device::background_color_w)); } // more changes around, namely the screen offsets being reversed here void imagetek_i4300_device::v3_map(address_map &map) { - map(0x00000, 0x1ffff).rw(this, FUNC(imagetek_i4300_device::vram_0_r), FUNC(imagetek_i4300_device::vram_0_w)).share("vram_0"); - map(0x20000, 0x3ffff).rw(this, FUNC(imagetek_i4300_device::vram_1_r), FUNC(imagetek_i4300_device::vram_1_w)).share("vram_1"); - map(0x40000, 0x5ffff).rw(this, FUNC(imagetek_i4300_device::vram_2_r), FUNC(imagetek_i4300_device::vram_2_w)).share("vram_2"); - map(0x60000, 0x6ffff).r(this, FUNC(imagetek_i4300_device::gfxrom_r)); - map(0x70000, 0x71fff).rw(this, FUNC(imagetek_i4300_device::scratchram_r), FUNC(imagetek_i4300_device::scratchram_w)).share("scratchram"); // unknown, maybe palette + map(0x00000, 0x1ffff).rw(FUNC(imagetek_i4300_device::vram_0_r), FUNC(imagetek_i4300_device::vram_0_w)).share("vram_0"); + map(0x20000, 0x3ffff).rw(FUNC(imagetek_i4300_device::vram_1_r), FUNC(imagetek_i4300_device::vram_1_w)).share("vram_1"); + map(0x40000, 0x5ffff).rw(FUNC(imagetek_i4300_device::vram_2_r), FUNC(imagetek_i4300_device::vram_2_w)).share("vram_2"); + map(0x60000, 0x6ffff).r(FUNC(imagetek_i4300_device::gfxrom_r)); + map(0x70000, 0x71fff).rw(FUNC(imagetek_i4300_device::scratchram_r), FUNC(imagetek_i4300_device::scratchram_w)).share("scratchram"); // unknown, maybe palette map(0x72000, 0x73fff).rw("palette", FUNC(palette_device::read16), FUNC(palette_device::write16)).share("palette"); - map(0x74000, 0x74fff).rw(this, FUNC(imagetek_i4300_device::spriteram_r), FUNC(imagetek_i4300_device::spriteram_w)).share("spriteram"); - map(0x75000, 0x75fff).rw(this, FUNC(imagetek_i4300_device::rmw_vram_0_r), FUNC(imagetek_i4300_device::rmw_vram_0_w)); - map(0x76000, 0x76fff).rw(this, FUNC(imagetek_i4300_device::rmw_vram_1_r), FUNC(imagetek_i4300_device::rmw_vram_1_w)); - map(0x77000, 0x77fff).rw(this, FUNC(imagetek_i4300_device::rmw_vram_2_r), FUNC(imagetek_i4300_device::rmw_vram_2_w)); - map(0x78000, 0x787ff).rw(this, FUNC(imagetek_i4300_device::tiletable_r), FUNC(imagetek_i4300_device::tiletable_w)).share("tiletable"); - map(0x78808, 0x78809).rw(this, FUNC(imagetek_i4300_device::screen_xoffset_r), FUNC(imagetek_i4300_device::screen_xoffset_w)); - map(0x7880a, 0x7880b).rw(this, FUNC(imagetek_i4300_device::screen_yoffset_r), FUNC(imagetek_i4300_device::screen_yoffset_w)); - map(0x7880e, 0x7880f).w(this, FUNC(imagetek_i4300_device::screen_ctrl_w)); // TODO: can be read back here (gakusai) - - map(0x78800, 0x78801).w(this, FUNC(imagetek_i4300_device::crtc_unlock_w)); - map(0x78802, 0x78803).w(this, FUNC(imagetek_i4300_device::crtc_horz_w)); - map(0x78804, 0x78805).w(this, FUNC(imagetek_i4300_device::crtc_vert_w)); - - map(0x78840, 0x7884d).w(this, FUNC(imagetek_i4300_device::blitter_w)).share("blitter_regs"); - map(0x78850, 0x7885b).rw(this, FUNC(imagetek_i4300_device::scroll_r), FUNC(imagetek_i4300_device::scroll_w)).share("scrollregs"); - map(0x78860, 0x7886b).rw(this, FUNC(imagetek_i4300_device::window_r), FUNC(imagetek_i4300_device::window_w)).share("windowregs"); - map(0x78870, 0x78871).w(this, FUNC(imagetek_i4300_device::rombank_w)); + map(0x74000, 0x74fff).rw(FUNC(imagetek_i4300_device::spriteram_r), FUNC(imagetek_i4300_device::spriteram_w)).share("spriteram"); + map(0x75000, 0x75fff).rw(FUNC(imagetek_i4300_device::rmw_vram_0_r), FUNC(imagetek_i4300_device::rmw_vram_0_w)); + map(0x76000, 0x76fff).rw(FUNC(imagetek_i4300_device::rmw_vram_1_r), FUNC(imagetek_i4300_device::rmw_vram_1_w)); + map(0x77000, 0x77fff).rw(FUNC(imagetek_i4300_device::rmw_vram_2_r), FUNC(imagetek_i4300_device::rmw_vram_2_w)); + map(0x78000, 0x787ff).rw(FUNC(imagetek_i4300_device::tiletable_r), FUNC(imagetek_i4300_device::tiletable_w)).share("tiletable"); + map(0x78808, 0x78809).rw(FUNC(imagetek_i4300_device::screen_xoffset_r), FUNC(imagetek_i4300_device::screen_xoffset_w)); + map(0x7880a, 0x7880b).rw(FUNC(imagetek_i4300_device::screen_yoffset_r), FUNC(imagetek_i4300_device::screen_yoffset_w)); + map(0x7880e, 0x7880f).w(FUNC(imagetek_i4300_device::screen_ctrl_w)); // TODO: can be read back here (gakusai) + + map(0x78800, 0x78801).w(FUNC(imagetek_i4300_device::crtc_unlock_w)); + map(0x78802, 0x78803).w(FUNC(imagetek_i4300_device::crtc_horz_w)); + map(0x78804, 0x78805).w(FUNC(imagetek_i4300_device::crtc_vert_w)); + + map(0x78840, 0x7884d).w(FUNC(imagetek_i4300_device::blitter_w)).share("blitter_regs"); + map(0x78850, 0x7885b).rw(FUNC(imagetek_i4300_device::scroll_r), FUNC(imagetek_i4300_device::scroll_w)).share("scrollregs"); + map(0x78860, 0x7886b).rw(FUNC(imagetek_i4300_device::window_r), FUNC(imagetek_i4300_device::window_w)).share("windowregs"); + map(0x78870, 0x78871).w(FUNC(imagetek_i4300_device::rombank_w)); // video registers - map(0x79700, 0x79701).rw(this, FUNC(imagetek_i4300_device::sprite_count_r), FUNC(imagetek_i4300_device::sprite_count_w)); - map(0x79702, 0x79703).rw(this, FUNC(imagetek_i4300_device::sprite_priority_r), FUNC(imagetek_i4300_device::sprite_priority_w)); - map(0x79704, 0x79705).rw(this, FUNC(imagetek_i4300_device::sprite_yoffset_r), FUNC(imagetek_i4300_device::sprite_yoffset_w)); - map(0x79706, 0x79707).rw(this, FUNC(imagetek_i4300_device::sprite_xoffset_r), FUNC(imagetek_i4300_device::sprite_xoffset_w)); - map(0x79708, 0x79709).rw(this, FUNC(imagetek_i4300_device::sprite_color_code_r), FUNC(imagetek_i4300_device::sprite_color_code_w)); - map(0x79710, 0x79711).rw(this, FUNC(imagetek_i4300_device::layer_priority_r), FUNC(imagetek_i4300_device::layer_priority_w)); - map(0x79712, 0x79713).rw(this, FUNC(imagetek_i4300_device::background_color_r), FUNC(imagetek_i4300_device::background_color_w)); + map(0x79700, 0x79701).rw(FUNC(imagetek_i4300_device::sprite_count_r), FUNC(imagetek_i4300_device::sprite_count_w)); + map(0x79702, 0x79703).rw(FUNC(imagetek_i4300_device::sprite_priority_r), FUNC(imagetek_i4300_device::sprite_priority_w)); + map(0x79704, 0x79705).rw(FUNC(imagetek_i4300_device::sprite_yoffset_r), FUNC(imagetek_i4300_device::sprite_yoffset_w)); + map(0x79706, 0x79707).rw(FUNC(imagetek_i4300_device::sprite_xoffset_r), FUNC(imagetek_i4300_device::sprite_xoffset_w)); + map(0x79708, 0x79709).rw(FUNC(imagetek_i4300_device::sprite_color_code_r), FUNC(imagetek_i4300_device::sprite_color_code_w)); + map(0x79710, 0x79711).rw(FUNC(imagetek_i4300_device::layer_priority_r), FUNC(imagetek_i4300_device::layer_priority_w)); + map(0x79712, 0x79713).rw(FUNC(imagetek_i4300_device::background_color_r), FUNC(imagetek_i4300_device::background_color_w)); } |