diff --git a/src/devices/video/stvvdp1.cpp b/src/devices/video/stvvdp1.cpp index 63f6630c754..ccb005fefb3 100644 --- a/src/devices/video/stvvdp1.cpp +++ b/src/devices/video/stvvdp1.cpp @@ -947,6 +947,7 @@ void saturn_state::drawpixel_generic(int x, int y, int patterndata, int offsetcn ((((m_vdp1_vram[(((stv2_current_sprite.CMDCOLR&0xffff)*8)>>2)+((pix2&0xfffe)/2)])) & 0xffff0000) >> 16); //mode = 5; + // TODO: transparency code wrong for after burner 2 transmask = 0xffff; if ( !spd ) @@ -965,7 +966,8 @@ void saturn_state::drawpixel_generic(int x, int y, int patterndata, int offsetcn pix = m_vdp1.gfx_decode[(patterndata+offsetcnt) & 0xfffff]; //mode = 2; pix = pix+(stv2_current_sprite.CMDCOLR&0xffc0); - transmask = 0x3f; + // disable transmask since transparent pen is checked below (sasissu racing stage background clouds) + transmask = 0xffff; // Scud: the disposable assassin wants transparent pen on 0 if ( !spd ) @@ -993,15 +995,23 @@ void saturn_state::drawpixel_generic(int x, int y, int patterndata, int offsetcn //mode = 4; break; case 0x0028: // mode 5 32,768 colour RGB mode (16bits) - pix = m_vdp1.gfx_decode[(patterndata+offsetcnt*2+1) & 0xfffff] | (m_vdp1.gfx_decode[(patterndata+offsetcnt*2) & 0xfffff]<<8) ; + pix = m_vdp1.gfx_decode[(patterndata+offsetcnt*2+1) & 0xfffff] | (m_vdp1.gfx_decode[(patterndata+offsetcnt*2) & 0xfffff]<<8); //mode = 5; - transmask = -1; /* TODO: check me */ + // TODO: check transmask + transmask = -1; + break; + case 0x0038: // invalid + // game tengoku uses this on hi score screen (tate mode) + // according to Charles, reads from VRAM address 0 + pix = m_vdp1.gfx_decode[1] | (m_vdp1.gfx_decode[0]<<8) ; + // TODO: check transmask + transmask = -1; break; default: // other settings illegal pix = machine().rand(); //mode = 0; transmask = 0xff; - popmessage("Illegal Sprite Mode, contact MAMEdev"); + popmessage("Illegal Sprite Mode %02x, contact MAMEdev",stv2_current_sprite.CMDPMOD&0x0038); } diff --git a/src/devices/video/stvvdp2.cpp b/src/devices/video/stvvdp2.cpp index b4b22e9d39c..3fb2ac74940 100644 --- a/src/devices/video/stvvdp2.cpp +++ b/src/devices/video/stvvdp2.cpp @@ -4526,7 +4526,8 @@ void saturn_state::stv_vdp2_check_tilemap(bitmap_rgb32 &bitmap, const rectangle stv_vdp2_draw_basic_tilemap(bitmap, mycliprect); } - /* post-processing functions (TODO: needs layer bitmaps to be individual planes to work correctly) */ + /* post-processing functions */ + // (TODO: needs layer bitmaps to be individual planes to work correctly) if(stv2_current_tilemap.line_screen_enabled && TEST_FUNCTIONS) stv_vdp2_draw_line(bitmap,cliprect); @@ -6838,7 +6839,8 @@ void saturn_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, }; // Pretty Fighter X, Game Tengoku shadows - // TODO: former doesn't read what's behind, VDP1 bug? + // TODO: Pretty Fighter X doesn't read what's behind on title screen, VDP1 bug? + // TODO: seldomly Game Tengoku shadows aren't drawn properly if(pix & 0x8000 && STV_VDP2_SDCTL & 0x100) { rgb_t p = bitmap_line[x];