(03-30-2015, 10:30 AM)gregory Wrote: Upscaling generates a lots of accuracy issue (so far, input texture too small / input primitive too small / wrong window offset). My hack increases the size of the sprite without increase the mapped texture size. Texture will be a little stretched. I'm afraid it will be horrible for small spirit.
Anyway, if you can generate me a gs dump of Ar tonelico, I will give it a look.
good fix. i don't see the math tho. how's that working? upscale "projection". no doubt... it's not stretched. or horrible. it's might the corrected behaviour. still... rewriting you could just add upscale_multi-1 to the rightmost edges to fill the gaps. or correct the coordinate space. that's for 2d plain upscaled integer math tho for the target resolution. it's not running thru that projection.
The fact is that in the patch gregory sent me the other day it was called in the other way
Of course if I had to recompile the plugins today I would use that code with those names
(03-30-2015, 10:30 AM)gregory Wrote: Upscaling generates a lots of accuracy issue (so far, input texture too small / input primitive too small / wrong window offset). My hack increases the size of the sprite without increase the mapped texture size. Texture will be a little stretched. I'm afraid it will be horrible for small spirit.
Anyway, if you can generate me a gs dump of Ar tonelico, I will give it a look.
Okay. I will make a GS dump here in a few.
Two of the hacks in GSdx HW hacks CLAIM to help, but they really don't, especially not for AT2.
Thing is, AT and AT2 upscales so poorly anyway I always just run it at native. Still, it's worth a look, I think some other Gust game might benefit too.
You can see on the faces on the portraits that the inner part(which changes to animate the face) is completely unaligned. Nothing helps. Not TC offset, not Sprite, and not Wild Arms Hack(both the HW hacks say they WILL help). Neither does completely turning off texture filtering. Only going to native resolution helps. Also parts of the background and stuff have lines as well. Also in AT1, the sprites in battle have small black lines, but the HW hacks DO fix those.
Screenshot:
m_userhacks_RemoveHoleBetweenSprite was a previous workaround that target only ace combat.
The new version is more general, less safe but it seems to work on various issues.
Potentially texture streching can be improved but
1/ it will cost on CPU perf
2/ It will restore black line on FMV
Scaling bug in short:
1/ colin have a wrong offset of the context so it draw from [-0.5 ; 63.5[ (the correct behavior will be [0 ; 64[ (so it miss a couple of pixels)
2/ mana khemia FMV: super sampling of n times a 16 texels texture requires at least a textures of 17 texels (maybe force clamping the texture could help but hard to says because they use atlas of texture)
3/ ace combat has hole between primitives [0 ; 63.5 [ + [64 ; 127.5[ <= it miss [63.5 ; 64 [ (hence a couple of pixels)
Honestly I don't know. But try the openGL renderer. It handles better DATE (destination alpha testing) often use for shadowing.
So I look a bit at AT1, only the face. I found at least 1 issue with upscaling but I suspect more.
Upscaling is an anti-aliasing effect so it "blurs" the rendering that means it breaks pixel accurate rendering.
Please look at the iput texture of the game. As you can the hairs are rendered without the face. The game uses special alpha value to avoid overlapping of future rendering.
So let's consider alpha values on a X-axis
input textures: 1 1 1 1 0 0 0 0 0 1 1 1 1
native render: 1 1 1 1 0 0 0 0 0 1 1 1 1 (sharp rendering)
scale render: 1 1 1 1 0.5 0 0 0 0.5 1 1 1 1 (egde is blurred)
Next draw will only replace the 0 alpha pixels. So edges between face and hairs will sucks.