From aeae501a76b7d694b18fc88dfe52c4353044e93b Mon Sep 17 00:00:00 2001 From: Ryan Holtz Date: Fri, 19 Oct 2018 07:50:37 +0200 Subject: spg2xx: Fixed tilemap wallpaper mode. Fixes V.Smile intro background. [Ryan Holtz] --- src/devices/machine/spg2xx.cpp | 2 +- src/devices/machine/spg2xx.h | 2 +- src/mame/drivers/vii.cpp | 35 +++++++++-------------------------- 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/src/devices/machine/spg2xx.cpp b/src/devices/machine/spg2xx.cpp index d50aaca694f..7be6477f5f9 100644 --- a/src/devices/machine/spg2xx.cpp +++ b/src/devices/machine/spg2xx.cpp @@ -349,7 +349,7 @@ void spg2xx_device::blit_page(const rectangle &cliprect, int depth, uint32_t bit { for (uint32_t x0 = 0; x0 < wn; x0++) { - uint16_t tile = (ctrl & PAGE_BLANK_MASK) ? 0 : space.read_word(tilemap + x0 + wn * y0); + uint16_t tile = (ctrl & PAGE_WALLPAPER_MASK) ? space.read_word(tilemap) : space.read_word(tilemap + x0 + wn * y0); uint16_t palette = 0; uint32_t xx, yy; diff --git a/src/devices/machine/spg2xx.h b/src/devices/machine/spg2xx.h index 3e85537dbef..7a993251ece 100644 --- a/src/devices/machine/spg2xx.h +++ b/src/devices/machine/spg2xx.h @@ -68,7 +68,7 @@ protected: enum { PAGE_ENABLE_MASK = 0x0008, - PAGE_BLANK_MASK = 0x0004, + PAGE_WALLPAPER_MASK = 0x0004, SPRITE_ENABLE_MASK = 0x0001, SPRITE_COORD_TL_MASK = 0x0002, diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index a1b5ea54f95..dcd25d3466f 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -393,7 +393,7 @@ READ16_MEMBER(vsmile_state::portb_r) //const uint8_t inputs = m_io_p2->read(); //const uint16_t input_bits = BIT(inputs, 0) ? VSMILE_PORTB_ON_SW : 0; const uint16_t data = VSMILE_PORTB_ON_SW | (m_cart && m_cart->exists() ? VSMILE_PORTB_CART : 0); - logerror("V.Smile Port B read %04x, mask %04x\n", data, mem_mask); + //logerror("V.Smile Port B read %04x, mask %04x\n", data, mem_mask); //printf("V.Smile Port B read %04x, mask %04x\n", data, mem_mask); return data; } @@ -401,47 +401,47 @@ READ16_MEMBER(vsmile_state::portb_r) READ16_MEMBER(vsmile_state::portc_r) { const uint16_t data = VSMILE_PORTC_LOGO | 0x0004; - logerror("V.Smile Port C read %04x, mask %04x\n", data, mem_mask); + //logerror("V.Smile Port C read %04x, mask %04x\n", data, mem_mask); return data; } WRITE16_MEMBER(vsmile_state::portb_w) { m_portb_data = data & mem_mask; - logerror("V.Smile Port B write %04x, mask %04x\n", m_portb_data, mem_mask); + //logerror("V.Smile Port B write %04x, mask %04x\n", m_portb_data, mem_mask); //printf("V.Smile Port B write %04x, mask %04x\n", m_portb_data, mem_mask); } WRITE16_MEMBER(vsmile_state::portc_w) { m_portc_data = data & mem_mask; - logerror("V.Smile Port C write %04x, mask %04x\n", m_portc_data, mem_mask); + //logerror("V.Smile Port C write %04x, mask %04x\n", m_portc_data, mem_mask); //printf("V.Smile Port C write %04x, mask %04x\n", m_portc_data, mem_mask); //printf("%02x ", data >> 8); } WRITE8_MEMBER(vsmile_state::uart_tx) { - logerror("UART Tx: %02x\n", data); + //logerror("UART Tx: %02x\n", data); } WRITE8_MEMBER(vsmile_state::chip_sel_w) { - logerror("Chip select mode: %d\n", data); + //logerror("Chip select mode: %d\n", data); const uint16_t cart_offset = m_cart && m_cart->exists() ? 4 : 0; switch (data) { case 0: - logerror("Setting bank %d\n", cart_offset); + //logerror("Setting bank %d\n", cart_offset); m_bankdev->set_bank(cart_offset); break; case 1: - logerror("Setting bank %d\n", 1 + cart_offset); + //logerror("Setting bank %d\n", 1 + cart_offset); m_bankdev->set_bank(1 + cart_offset); break; case 2: case 3: - logerror("Setting bank %d\n", 2 + cart_offset); + //logerror("Setting bank %d\n", 2 + cart_offset); m_bankdev->set_bank(2 + cart_offset); break; } @@ -449,28 +449,11 @@ WRITE8_MEMBER(vsmile_state::chip_sel_w) READ16_MEMBER(spg2xx_game_state::walle_portc_r) { - char mask_buf[17]; - mask_buf[16] = 0; - for (uint32_t i = 0; i < 16; i++) - { - mask_buf[i] = BIT(mem_mask, 15 - i) ? '1' : '0'; - } - logerror("Wall-E Port C read 0000, pull mask %s\n", mask_buf); return m_i2cmem->read_sda(); } WRITE16_MEMBER(spg2xx_game_state::walle_portc_w) { - char data_buf[17]; - char mask_buf[17]; - data_buf[16] = 0; - mask_buf[16] = 0; - for (uint32_t i = 0; i < 16; i++) - { - data_buf[i] = BIT(data, 15 - i) ? '1' : '0'; - mask_buf[i] = BIT(mem_mask, 15 - i) ? '1' : '0'; - } - logerror("Wall-E Port C write %s, push mask %s\n", data_buf, mask_buf); m_walle_portc_data = data & mem_mask; if (BIT(mem_mask, 1)) m_i2cmem->write_scl(BIT(data, 1)); -- cgit v1.2.3