mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
tubep: no sprites on left edge (nw)
This commit is contained in:
parent
7b0b90f607
commit
b2e3faace6
@ -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"
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user