Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. diff --git a/plugins/GSdx/GSRendererHW.cpp b/plugins/GSdx/GSRendererHW.cpp
  2. index fc4e5ef..c0175db 100644
  3. --- a/plugins/GSdx/GSRendererHW.cpp
  4. +++ b/plugins/GSdx/GSRendererHW.cpp
  5. @@ -32,6 +32,8 @@ GSRendererHW::GSRendererHW(GSTextureCache* tc)
  6. {
  7. m_upscale_multiplier = theApp.GetConfig("upscale_multiplier", 1);
  8. m_userhacks_skipdraw = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_SkipDraw", 0) : 0;
  9. + // Yet another hack to avoid black line issue
  10. + m_userhacks_RemoveHoleBetweenSprite = !!theApp.GetConfig("UserHacks_RemoveHoleBetweenSprite", 0);
  11.  
  12. if(!m_nativeres)
  13. {
  14. @@ -295,6 +297,44 @@ void GSRendererHW::Draw()
  15. context->FRAME.FBMSK = fm;
  16. context->ZBUF.ZMSK = zm != 0;
  17.  
  18. + // Hack to avoid black line in some games (ace combat). GS has a precision of 0.5 pixels that mean
  19. + // a small hole between primitive won't have any impact on native resolution.
  20. + // However if you try to upscale the rendering, you need a better accuracy.
  21. + //
  22. + // The idea of this hack is to detect SPRITE that have only a difference of 8 (0.5). Then you can extend/fuse
  23. + // primitive to avoid any hole. I think this hack is rather safe.
  24. + if (m_userhacks_RemoveHoleBetweenSprite) {
  25. + if (m_vt.m_primclass == GS_SPRITE_CLASS) {
  26. + size_t count = m_vertex.next;
  27. + GSVertex* v = &m_vertex.buff[0];
  28. + for(size_t i = 0; i < count; i += 2) {
  29. + int x = v[i+1].XYZ.X;
  30. + int ox = context->XYOFFSET.OFX;
  31. + v[i+1].XYZ.X = ((x-ox) | 0xF) + ox;
  32. + }
  33. + }
  34. + }
  35. +
  36. +
  37. +
  38. //
  39.  
  40. DrawPrims(rt->m_texture, ds->m_texture, tex);
  41. diff --git a/plugins/GSdx/GSRendererHW.h b/plugins/GSdx/GSRendererHW.h
  42. index 405257a..a0b2156 100644
  43. --- a/plugins/GSdx/GSRendererHW.h
  44. +++ b/plugins/GSdx/GSRendererHW.h
  45. @@ -35,6 +35,7 @@ private:
  46. bool m_reset;
  47. int m_upscale_multiplier;
  48. int m_userhacks_skipdraw;
  49. + bool m_userhacks_RemoveHoleBetweenSprite;
  50.  
  51. #pragma region hacks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement