diff options
author | hap <happppp@users.noreply.github.com> | 2020-06-12 14:42:20 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2020-06-12 14:42:51 +0200 |
commit | b2e3faace62651a944ccf0e4c29873257af003e2 (patch) | |
tree | 1249a005819ee7b98f3938f1aa52d0523ae4aa37 | |
parent | 7b0b90f607effe2b3bac41dda4fb47b9ca6d7466 (diff) |
tubep: no sprites on left edge (nw)
-rw-r--r-- | src/mame/video/bosco.cpp | 9 | ||||
-rw-r--r-- | src/mame/video/tubep.cpp | 11 |
2 files changed, 12 insertions, 8 deletions
diff --git a/src/mame/video/bosco.cpp b/src/mame/video/bosco.cpp index c86e76ed1a9..ce688fc48d9 100644 --- a/src/mame/video/bosco.cpp +++ b/src/mame/video/bosco.cpp @@ -2,10 +2,15 @@ // copyright-holders:Nicola Salmoria /*************************************************************************** - video.c - Functions to emulate the video hardware of the machine. + Bullet vs tilemap offsets are correct when compared with PCB videos + (both playfield area, and radar area). Bullet vs sprite offsets are also + correct. + + The radar area is offset by 3 pixels, also confirmed with PCB video when + it does the VRAM check. + ***************************************************************************/ #include "emu.h" diff --git a/src/mame/video/tubep.cpp b/src/mame/video/tubep.cpp index 643da54f777..1ff4b1e4506 100644 --- a/src/mame/video/tubep.cpp +++ b/src/mame/video/tubep.cpp @@ -433,14 +433,14 @@ void tubep_state::draw_sprite() for (YDOT=0; (YDOT^m_YSize) != 0x00; YDOT++) { - /* upper part of the schematic */ + /* upper part of the schematic */ uint32_t ls273_e12 = romD10[ m_romD_addr | YDOT ] & 0x7f; uint32_t romEF_addr_now = m_romEF_addr | ls273_e12; uint32_t E16_add_a = romEF13[ romEF_addr_now ] | ((romEF13[0x1000 + romEF_addr_now ]&0x0f)<<8); uint32_t F16_add_b = E16_add_a + m_E16_add_b; - /* lower part of the schematic */ + /* lower part of the schematic */ uint32_t romHI_addr = (YDOT) | (m_romHI_addr_mid) | (((m_romHI_addr_msb + 0x800) )&0x1800); uint32_t ls273_g4 = romHI2[ romHI_addr ]; uint32_t ls273_j4 = romHI2[0x2000+ romHI_addr ]; @@ -457,7 +457,7 @@ void tubep_state::draw_sprite() for (XDOT=0; (XDOT^m_XSize) != 0x00; XDOT++) { - /* upper part of the schematic */ + /* upper part of the schematic */ uint32_t romD10_out = romD10[ m_romD_addr | XDOT ]; uint32_t F16_add_a = (romD10_out & 0x7e) >>1; uint32_t romCxx_addr = (F16_add_a + F16_add_b ) & 0xffff; @@ -467,7 +467,7 @@ void tubep_state::draw_sprite() uint8_t sp_data = m_sprite_colorsharedram[ m_colorram_addr_hi | colorram_addr_lo ] & 0x0f; /* 2114 4-bit RAM */ - /* lower part of the schematic */ + /* lower part of the schematic */ romHI_addr = (XDOT) | (m_romHI_addr_mid) | (m_romHI_addr_msb); ls273_g4 = romHI2[ romHI_addr ]; ls273_j4 = romHI2[0x2000+ romHI_addr ]; @@ -494,7 +494,6 @@ WRITE8_MEMBER(tubep_state::tubep_sprite_control_w) { if (offset < 10) { - /*graph_ctrl[offset] = data;*/ switch(offset) { case 0: /*a*/ @@ -647,7 +646,7 @@ uint32_t tubep_state::screen_update_tubep(screen_device &screen, bitmap_ind16 &b else sp_data = sp_data1; - if (sp_data != 0x0f) + if (sp_data != 0x0f && h >= 4) { bg_data = m_prom2[sp_data | m_color_A4]; draw_text_or_sprite_pixel = true; |