Author
Topic: [FF7PC] Post bug reports here (Read 11244 times)

I've enhanced the gamma and levels and saturation using shader, but that's not what's making the biggest difference. It's probably just how the PC and PSX are being rendered. PC isn't applying any sort of filtering to the background - you're getting sharp pixellation. The PSX doesn't have the pixellation as much so you get blurring instead.

This is also why I refuse to add any of the background packs around here... because when you lose pixellation, you lose clarity. The human brain is good at imagining/adding detail when it sees a pixellated image... it can't do that if you've blended all the pixels together and made it either blurred or plastic.

/*===============================================================================*\|####################### [FINAL FANTASY 7 SHADER FX] ########################||######################### By Sunwalker 21/Jan/2017 ##########################||| Version 1.05 |||| |||| This program is free software; you can redistribute it and/or |||| modify it under the terms of the GNU General Public License |||| as published by the Free Software Foundation; either version 2 |||| of the License, or (at your option) any later version. |||| |||| This program is distributed in the hope that it will be useful, |||| but WITHOUT ANY WARRANTY; without even the implied warranty of |||| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |||| GNU General Public License for more details. (c)2016 |||| |||#################################################################################|\*===============================================================================*/#version 120

//##[BLENDED_BLOOM]#define BloomType BlendScreen //[BlendGlow, BlendAddGlow, BlendAddLight, BlendScreen, BlendLuma, BlendOverlay] The type of blended bloom. Light<->Dark.#define BloomStrength 0.200 //[0.000 to 1.000] Overall strength of the bloom. You may want to readjust for each blend type.#define BlendStrength 1.000 //[0.000 to 1.000] Strength of the blending. This is a modifier based on bloom. 1.0 equates to 100% strength.#define BloomDefocus 2.000 //[1.000 to 4.000] The initial bloom defocus value. Increases the softness of light, bright objects, etc.#define BloomWidth 3.200 //[1.000 to 8.000] Width of the bloom. Adjusts the width of the spread and soft glow. Scales with BloomStrength.#define BloomReds 0.040 //[0.000 to 1.000] Red channel correction of the bloom. Raising will increase the bloom of reds.#define BloomGreens 0.030 //[0.000 to 1.000] Green channel correction of the bloom. Raising will increase the bloom of greens.#define BloomBlues 0.020 //[0.000 to 1.000] Blue channel correction of the bloom. Raising will increase the bloom of blues.

// -- Which value to put through the contrast formula? --// I name it x because makes it easier to copy-paste to Graphtoy or Wolfram Alpha or another graphing program#if Curves_mode == 2vec3 x = color.rgb; //if the curve should be applied to both Luma and Chroma#elif Curves_mode == 1vec3 x = chroma; //if the curve should be applied to Chromax = x * 0.5 + 0.5; //adjust range of Chroma from -1 -> 1 to 0 -> 1#else // Curves_mode == 0float x = luma; //if the curve should be applied to Luma#endif

colour issues are listed there in the database. Gldgate has now been added to the list (field 24). Thanks

In meantime, I've been tweaking that shader to conform as closely to PSX but with superior colour and so on. I had to calibrate my monitor, which also led to me getting aura migraine. But it was worth it. I don't think it's going to get much better than this on PC:

[Add as psx.post into 'shaders' folder in 1998 game root (when using Aali's driver), then edit ff7_opengl.cfg so that it uses it with post processing option.]

/*===============================================================================*\|####################### [FINAL FANTASY 7 SHADER FX] ########################||######################### By Sunwalker 21/Jan/2017 ##########################||| Version 1.05 |||| |||| This program is free software; you can redistribute it and/or |||| modify it under the terms of the GNU General Public License |||| as published by the Free Software Foundation; either version 2 |||| of the License, or (at your option) any later version. |||| |||| This program is distributed in the hope that it will be useful, |||| but WITHOUT ANY WARRANTY; without even the implied warranty of |||| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |||| GNU General Public License for more details. (c)2016 |||| |||#################################################################################|\*===============================================================================*/#version 120

bloom. Light<->Dark.#define BloomStrength 0.200 //[0.000 to 1.000] Overall strength of the bloom. You may want to readjust for each blend type.#define BlendStrength 1.000 //[0.000 to 1.000] Strength of the blending. This is a modifier based on bloom. 1.0 equates to 100% strength.#define BloomDefocus 2.000 //[1.000 to 4.000] The initial bloom defocus value. Increases the softness of light, bright objects, etc.#define BloomWidth 3.200 //[1.000 to 8.000] Width of the bloom. Adjusts the width of the spread and soft glow. Scales with BloomStrength.#define BloomReds 0.040 //[0.000 to 1.000] Red channel correction of the bloom. Raising will increase the bloom of reds.#define BloomGreens 0.030 //[0.000 to 1.000] Green channel correction of the bloom. Raising will increase the bloom of greens.#define BloomBlues 0.020 //[0.000 to 1.000] Blue channel correction of the bloom. Raising will increase the bloom of blues.

results with each.#define RedShift 0.65 //[0.10 to 1.00] Red color component shift of the filmic processing. Alters the red balance of the shift.#define GreenShift 0.50 //[0.10 to 1.00] Green color component shift of the filmic processing. Alters the green balance of the shift.#define BlueShift 0.50 //[0.10 to 1.00] Blue color component shift of the filmic processing. Alters the blue balance of the shift.#define ShiftRatio 0.50 //[0.10 to 2.00] The blending ratio for the base color and the color shift. Higher for a stronger effect.

// -- Which value to put through the contrast formula? --// I name it x because makes it easier to copy-paste to Graphtoy or Wolfram Alpha or another graphing program#if Curves_mode == 2vec3 x = color.rgb; //if the curve should be applied to both Luma and Chroma#elif Curves_mode == 1vec3 x = chroma; //if the curve should be applied to Chromax = x * 0.5 + 0.5; //adjust range of Chroma from -1 -> 1 to 0 -> 1#else // Curves_mode == 0float x = luma; //if the curve should be applied to Luma#endif

As Luksy has posted the PSX calculates and renders the colors differently.

I think it's more basic than that. I think it's the limitation of the composite video connection. Since it can't do better than 240i and most CRTs do their own blending (though not necessarily on purpose) it takes more color variation to make an obvious contrast. As such, the backgrounds were designed to be oddly blocky with random flecks of color sprinkled in to make a smooth appearance despite the source's jaggy appearance. The designers of the PSX's GPU knew this and probably force each pixels' color to slightly influence the ones next to it. So to compensate, set designers have to be creative to cause realistic gradients. The source would look dirty, but the interpretation looks smooth because it can't show each pixel in its true color.

I noticed this a few years back when I got a video adapter for the PS2 that was both composite and component in the same cord. The composite looked smoother because the resolution was lower and made my set do some interpolation. When I switched to component (which maxes at 480p) I immediately regretted my decision as all the color artifacts came shining through and less interpolation was done on the image.

Now we play games at 1080p and up so lots more time is spent on making 32-bit colored textures at 4K resolutions so more accurate gradients can be achieved.

Finally, if you really want the PSX experience, a Gaussian blur needs adding to the above shader. I like 0.5, but 1.0 pixels in Adobe makes it look very close at the expense of less detail (like the PSX)

Looks a bit like the ps4 images I've seen. BTW. there is a problem with try the new light setting. As it looks now only the body and the head gets the light from above, but arms and legs get the light from below.

Finally, if you really want the PSX experience, a Gaussian blur needs adding to the above shader.

I mean, if you really want to be authentic to how the art looked in the '90s, you'd need a CRT shader and/or a NTSC (or PAL) signal shader. The emulation community loves that stuff. I'm not sure it's really worth the effort, though.

Tbh the blurriness in that last image is just butt-ugly. I just booted up my PS2 and did a comparison, and the PS2 has a much sharper image. It is, of course, slightly blurred when compared against a completely unfiltered image, but only very slightly. It is so slight, in fact, that I'd say it's more or less perfect, as it doesn't smoothen out any details, but it smoothens out a little of the pixellation. If you're curious, I used a Component cable and a modern display, so it's not a CRT or composite signal thing either.

I did take a couple of screenshots for you to compare as well, but I don't think they'll be much useful since I don't have a capture card, and had to take them with my phone camera. So ignore the stupid blue tint, that doesn't belong there.

Either way, a postprocessing effect that destroys any and all detail is certainly not the way to go. If anything, that would be a major downgrade.

That is more or less exactly what mednafen gives out. You have to compare it like for like. A PC is never going to give you the PSX look, as Covarr said. And we can't really emulate it. But Mednafen is about as close as you're likely to get for a PSX game output onto a screen (minus the scan lines you can artificially add). Output from a real PS with cables has already done things that no shader is probably capable of.

The gaussian + shader looks almost identical for me when compared to Mednafen (I prefer 0.5 pixel Gaussian or no Gaussian at all - but that's because I think the PSX is inferior to the PC when it comes to the blurriness and all the dithering).

To me your screen shot looks just as bad in other ways (dithering / scan line / jagged). Can you get me one in Kalm in the same place I took the Mednafen shot? I can put them all along side then too.

To me your screen shot looks just as bad in other ways (dithering / scan line / jagged). Can you get me one in Kalm in the same place I took the Mednafen shot? I can put them all along side then too.

Yeah the jaggedness and lines going here and there was definitely my bad, the display was configured like bollocks so it stretched the image one way and shrunk it the other way. Dithering, however, is unavoidable, simply because it is a PS1 game. Still, the fact that the dithering is visible through even a shitty screenshot, is a testament to how much more accurate the Component signal is next to that old PAL/NTSC crap.

I can get a Kalm screenshot too, but it'll probably take a couple hours because I need to fiddle around with save files and get them on the Memcard.

Update: Well, here it is. This time around, I decided to use the screen (HDTV) I always use for pretty much everything since the other one turned out to be a big hunk of $#!!.

Now, this picture will only tell you so much, but it confirmed my gut feeling. The pixellation is very much there, but then again so is that dithering, because, well, HDTV. Also, using an external camera to make screencaps for this sort of purpose is bad since each screen has adjustable sharpness and brightness and all that (although mine are set to default.) It also adds that blue tint and the picture is much brighter than the image itself was.

So, just for reference, I wanted to see what another emulator produces. With a color depth of 32 bits, there is obviously no dithering involved, and no external camera involved. Which results in this.

I may have been wrong the first time. Neither PS2 nor ePSXe look like they make an effort to blur the image in any way, unless instructed otherwise. The blurring is not part of the game, it's part of the displays of that era. Mednafen might be simply trying to replicate that, because it's often considered part of the nostalgic experience. I know the GPU plugin I use with ePSXe has an option for fullscreen smoothing, which produces an almost identical result, but if it's disabled, it doesn't blur anything.

You may be right. Mednafen may be adding something... but I am not sure why it would when it's supposed to be direct. Perhaps it does (it could be the bilinear filtering). Either way, we can safely say that gaussian as an option would be ok. Personally, I'd never use it. I much prefer the output from the tweaked shader I posted on its own. I think that beats the lot, tbh.

Do you think that needs any more work? Any thoughts on it?

Edit.

Yeah, it's bilinear filtering with mednafen. I thought I'd disabled it. It looks awful without it, though. I think we have a winner then.... it's the shader alone. No blur.

Gaussian could work wonders if it's applied in a very, very small dose, but any more and it's just going to make the details vanish. Also, it should be configured to avoid blurring 3D geometry, because it does slightly negate what you gain from using a high internal resolution. It would make battles especially look as if you'd been drinking for 14 hours straight.

I haven't even tried out the shader yet, but if it breathes life into the colors, then why the hell not.

I think everyone is about ready to sign off on this problem. The Diamond Weapon shadow that traverses the screen in the PSX version seems to have been deliberately disabled in the PC version. Placing it back, even by altering tiles, has failed (Ilducci and Spy__Dragon tried). It could well be that this particular effect cannot be made to work due to some sort of limitation with the PC field files. Importing a working field from PSX doesn't work either, because Makou Reactor cannot properly import field backgrounds. Even if it could, it again may be that PC field format doesn't allow for this layer to work properly.

So, I've started thinking about other ways to add the effect back into the game. For me, the only good way would seem to be adding the shadow shape to a file and using that in-game (a hrc / p file, like the Great Glacier map). Transparency could be added using the field model function. Of course, I'd need someone else to make this. Do you think you could do it, Kaldarasha?

At the time I read it I got the idea to use a model object to solve the problem.I have an already textured plane from my drop shadow tests. I could use that and add a texture with the shape of Dimond to it.