summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commitb2e3faace62651a944ccf0e4c29873257af003e2 (patch)
tree1249a005819ee7b98f3938f1aa52d0523ae4aa37
parent7b0b90f607effe2b3bac41dda4fb47b9ca6d7466 (diff)
tubep: no sprites on left edge (nw)
-rw-r--r--src/mame/video/bosco.cpp9
-rw-r--r--src/mame/video/tubep.cpp11
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;