diff --git a/src/mame/tvgames/xavix.cpp b/src/mame/tvgames/xavix.cpp index 399503c44b71c..0e13f109534f2 100644 --- a/src/mame/tvgames/xavix.cpp +++ b/src/mame/tvgames/xavix.cpp @@ -465,7 +465,7 @@ void superxavix_state::superxavix_lowbus_map(address_map &map) map(0x6f80, 0x6f99).rw(FUNC(superxavix_state::superxavix_crtc_1_r), FUNC(superxavix_state::superxavix_crtc_1_w)).share("sx_crtc_1"); // Super XaviX CRTC? map(0x6fa0, 0x6fa7).rw(FUNC(superxavix_state::superxavix_crtc_2_r), FUNC(superxavix_state::superxavix_crtc_2_w)).share("sx_crtc_2"); // maybe more CRTC regs? - map(0x6fb0, 0x6fc7).ram().share("bmp_base"); + map(0x6fb0, 0x6fc7).rw(FUNC(superxavix_state::bitmap_params_r), FUNC(superxavix_state::bitmap_params_w)).share("bmp_base"); // extended external bus stuff (possible banking control?) map(0x7909, 0x7909).w(FUNC(superxavix_state::extended_extbus_reg0_w)); diff --git a/src/mame/tvgames/xavix.h b/src/mame/tvgames/xavix.h index 13b2886b3d85b..691fffa6edde1 100644 --- a/src/mame/tvgames/xavix.h +++ b/src/mame/tvgames/xavix.h @@ -690,6 +690,9 @@ class superxavix_state : public xavix_state void superxavix_pal_saturation_w(uint8_t data, bool bitmap); void superxavix_pal_lightness_w(uint8_t data, bool bitmap); + uint8_t bitmap_params_r(offs_t offset); + void bitmap_params_w(offs_t offset, uint8_t data); + void superxavix_crtc_1_w(offs_t offset, uint8_t data); uint8_t superxavix_crtc_1_r(offs_t offset); void superxavix_crtc_2_w(offs_t offset, uint8_t data); diff --git a/src/mame/tvgames/xavix_v.cpp b/src/mame/tvgames/xavix_v.cpp index e37cc458e5c12..a8f3e0bed4273 100644 --- a/src/mame/tvgames/xavix_v.cpp +++ b/src/mame/tvgames/xavix_v.cpp @@ -144,6 +144,18 @@ uint8_t superxavix_state::superxavix_crtc_1_r(offs_t offset) return m_sx_crtc_1[offset]; } +void superxavix_state::bitmap_params_w(offs_t offset, uint8_t data) +{ + logerror("%s bitmap_params_w %02x %02x\n", machine().describe_context(), offset, data); + m_bmp_base[offset] = data; + // if anything changes these mid-screen we may need to trigger a partial update here +} + +uint8_t superxavix_state::bitmap_params_r(offs_t offset) +{ + return m_bmp_base[offset]; +} + void superxavix_state::superxavix_crtc_2_w(offs_t offset, uint8_t data) { logerror("%s superxavix_crtc_2_w %02x %02x\n", machine().describe_context(), offset, data);