mirror of
https://github.com/holub/mame
synced 2025-07-05 09:57: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
|
// copyright-holders:Nicola Salmoria
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
video.c
|
|
||||||
|
|
||||||
Functions to emulate the video hardware of the machine.
|
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"
|
#include "emu.h"
|
||||||
|
@ -433,14 +433,14 @@ void tubep_state::draw_sprite()
|
|||||||
|
|
||||||
for (YDOT=0; (YDOT^m_YSize) != 0x00; YDOT++)
|
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 ls273_e12 = romD10[ m_romD_addr | YDOT ] & 0x7f;
|
||||||
uint32_t romEF_addr_now = m_romEF_addr | ls273_e12;
|
uint32_t romEF_addr_now = m_romEF_addr | ls273_e12;
|
||||||
uint32_t E16_add_a = romEF13[ romEF_addr_now ] |
|
uint32_t E16_add_a = romEF13[ romEF_addr_now ] |
|
||||||
((romEF13[0x1000 + romEF_addr_now ]&0x0f)<<8);
|
((romEF13[0x1000 + romEF_addr_now ]&0x0f)<<8);
|
||||||
uint32_t F16_add_b = E16_add_a + m_E16_add_b;
|
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 romHI_addr = (YDOT) | (m_romHI_addr_mid) | (((m_romHI_addr_msb + 0x800) )&0x1800);
|
||||||
uint32_t ls273_g4 = romHI2[ romHI_addr ];
|
uint32_t ls273_g4 = romHI2[ romHI_addr ];
|
||||||
uint32_t ls273_j4 = romHI2[0x2000+ 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++)
|
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 romD10_out = romD10[ m_romD_addr | XDOT ];
|
||||||
uint32_t F16_add_a = (romD10_out & 0x7e) >>1;
|
uint32_t F16_add_a = (romD10_out & 0x7e) >>1;
|
||||||
uint32_t romCxx_addr = (F16_add_a + F16_add_b ) & 0xffff;
|
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 */
|
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);
|
romHI_addr = (XDOT) | (m_romHI_addr_mid) | (m_romHI_addr_msb);
|
||||||
ls273_g4 = romHI2[ romHI_addr ];
|
ls273_g4 = romHI2[ romHI_addr ];
|
||||||
ls273_j4 = romHI2[0x2000+ romHI_addr ];
|
ls273_j4 = romHI2[0x2000+ romHI_addr ];
|
||||||
@ -494,7 +494,6 @@ WRITE8_MEMBER(tubep_state::tubep_sprite_control_w)
|
|||||||
{
|
{
|
||||||
if (offset < 10)
|
if (offset < 10)
|
||||||
{
|
{
|
||||||
/*graph_ctrl[offset] = data;*/
|
|
||||||
switch(offset)
|
switch(offset)
|
||||||
{
|
{
|
||||||
case 0: /*a*/
|
case 0: /*a*/
|
||||||
@ -647,7 +646,7 @@ uint32_t tubep_state::screen_update_tubep(screen_device &screen, bitmap_ind16 &b
|
|||||||
else
|
else
|
||||||
sp_data = sp_data1;
|
sp_data = sp_data1;
|
||||||
|
|
||||||
if (sp_data != 0x0f)
|
if (sp_data != 0x0f && h >= 4)
|
||||||
{
|
{
|
||||||
bg_data = m_prom2[sp_data | m_color_A4];
|
bg_data = m_prom2[sp_data | m_color_A4];
|
||||||
draw_text_or_sprite_pixel = true;
|
draw_text_or_sprite_pixel = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user