tubep: no sprites on left edge (nw)

This commit is contained in:
hap 2020-06-12 14:42:20 +02:00
parent 7b0b90f607
commit b2e3faace6
2 changed files with 12 additions and 8 deletions

View File

@ -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"

View File

@ -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;