Beetle PSX HW texture replacement testing & feedback

Thanks for the hint, couldnt get this running though. AntiVir doesnt like it.
I tried the anti alising model instead but I still have the issue that upscaling changes the value of my alpha channel and transparency turns black ingame. I spent the whole night with reading about splitting and merging rgba and so on but still couldnt fix it. I also did some replacements in another game:

Upscaled

Here I used textures of the HD Remaster

Tested some new font. Not sure if I like it. If someone knows some good monospaced font, tell me

Here I upscaled the characters sprites and shrinked it to 75% so they dont look stretched in widescreen mode

And now lets take a look on another problem with transparency:

f1
Source


HD Remaster (I had to puzzle the single components to make it in the right order)

However ingame it only displays those icons which have no transparency while the ones with alpha channel in their background didnt get replaced at all:

I spent a lot time to figure out what the problem is but still couldnt find the solution. I really hope someone can help me out there

I have done some testing of this feature with following games:

  • Resident Evil Director’s Cut
  • Driver
  • Dino Crisis
  • MediEvil
  • Syphon Filter

So far I noticed the differences between how each game loads their data and what the feature can actually dump from the games.

For example, in Resident Evil, the game dumps alpha layers from the backround graphics, but not the actual backrounds. It also dumps static 2D layers, such as item menu, icons etc. It also fails to dump the main menu backround image, but will dump the text layers.

In Dino Crisis, it also fails to dump the backround images, such as the opening warning screen and main menu backround, but will dump pretty much everything else. However, it dumps massive amount of small images that can contain small pieces of multiple different object graphics. Looks like the game loads the stuff in small chunks in multiple different files, and when this feature dumps those from the data stream, it’s a mess to work with. Same thing happened with all of those true 3D games (Driver was the worst of this, MediEvil was easy as is Syphon Filter).

Here’s example from the MediEvil, I just used Topaz Gigapixel AI to batch convert multiple files at once. Had mild settings for it, and 2x enlargement.

Original:

Upscaled:

Ye I made similar experiences. In Harvest Moon I played like for 10 minutes and had 35k dumps. However only 300 of them were usable, The rest of them had just 1 px width.

In Grandia I had only maybe 3k dumps so far but could use almost all of them. I already upscaled 2k of them.

In Grandia I miss the facesets and in Harvest Moon the only things which got dumped were charsets of the main character, his dog and some tools. Its confusing that the other villagers/NPCs dont get dumped even if they should have the same kind of charsets like the main character.

And ye in some rare cases I have the issue that it ignores my replaced textures. For the issue with the black backgrounds I found a tool to fix it

That tool to fix the black backrounds would be really useful, care to share ? :grin: We’re doing some experiments with RE-games especially, where the alpha layers introduce those black backrounds that are visible on the edges, makes them look cel-shaded.

Sure this is the tool that I use: https://github.com/Krischan74/RTCWHQ
As the name it says he obviously made this tool for a certain game but it also works for textures from other games. For me it produces very good results since you can also adjust params like blur, contrast, brightness and sharpen.
And its the only tool which I found that can handle alpha channels correctly (sometimes ImageEnhanyingUtility also works, but not always).
The only disadvantage of this tool is that it doesnt have gui. So if you want to change params or even just the model you have to change it in the script file or the batch file.
However he has a really detailed documentation on github so also users who don’t understand python can easily use this.
BUT it has no output folder, it just overwrites the files in the input folder. So make a backup from your textures for the case that you dont like the output files.

Thank you so much! Will look into this.

I was finally able to replace the icons in the main menu what didnt work before:

The reason why it didnt show my replacements before is that I apparently didnt have all color parts of this texture. When I tried it in the beginning I had this texture in 3 colors. After finding and replacing another color of this texture it finally worked (and after this I found another 2 colors, but those didnt change anything).

It was better if the emulator could merge all colors so we can avoid this issue of missing colors. Furthermore in some cases I wouldn’t know how I should upscale those single color textures.

However its interesting that even after the third run through a certain scene it still always dumps new textures which it didn’t dump before.

This transparency topic is still an issue for me. I now can upscale textures with transparency and I dont have these black outlines anymore but many outlines look a bit edgy. I think PSX cant handle transitions into transparency that good.

And another comparison screenshot, here I tried to upscale the boot screen:

Couldn’t find the text as logo so I created it myself. Font doesn’t fit to 100% but I’m still happy with it.

2 Likes

This transparency topic is still an issue for me. I now can upscale textures with transparency and I dont have these black outlines anymore but many outlines look a bit edgy. I think PSX cant handle transitions into transparency that good.

Here is a good example what I mean. In this image I replaced the font of the game with the font from the hd remaster:

The font is looking thicker than it should be. Now we take a closer look on the original font that I used and the result ingame.

There are no soft edges anymore. Depending on the level of transparency its either shown as pure white or isnt shown at all. That brings us to the next problem. Some letters tend to have more transparent or less transparent outlines so in the end some letters look thicker in the result than others. And this looks really ugly. In fact blur in psx textures make textures look even worse. I’m afraid the lack of soft transitions limits the potential of texture quality on the psx.

Nevertheless I didn’t want these thick letters, so what did I do. I splitted the textures in rgba using IEU. Then I opened the alpha layer and increased the color level of black (or decreased the level of white, not sure anymore) so the white letters got thinner:

Better than before but now the outlines look more edgy. So I resized the letters to 200% with cubic interpolation. Playing with the level of contrast and brightness to have only black and white in the end and to avoid blur. In the end I got a sharper and over all better font

1 Like

What I noticed about Gigapixel, if you enhance 4x texture, you need 4x internal gpu texture, otherwise it will use 1x(original texture). Also games started to lag a bit from time to time (using ssd, or better rig in general might solve the issue). Also if you have Gigapixel 5.0. making man made algorithm might be worth it, instead of natural. I might try to play around with waifu2x later on for more cartoonish effect…

Could these high-resolution textures be incorporated into PS1 games via hack? Just curious…

Using waifu2x, I read that - it carefully smothes edges of pictures, and it seems to be working. I don’t see squared tiles that much, because edges don’t get enhanced, there is still minor problem with fences, and huge problem with text - so I had to remove them manually (only text fonts, fences I left them for now). Only exception that opening screen looks good with enchanced text. Waifu2k seems less effortless approach to get better results for now… Also I noticed, if you use waifu2x, you will get less performance hit, compared to gigapixel.

Waifu2x ingame

I will add gigapixel results later for comparison, but squared tiles have edge problems, but then again it has also some pluses and minuses…

Waifu2x ingame

After some Googling I went down an odd path of removing the alpha channel with ImageMagick, resizing the plain RGB texture with Gigapixel, then adding the alpha channel back in.

As others have noted, the black outlines are still an issue with Gigapixel, but I did see a small improvement from removing the alpha channel prior to resizing. I tested with Castlevania: Symphony of Night, which was probably a poor choice as the character textures are extremely low res to begin with.

Regardless, thought I would share the process in case it’s of use to anyone.

Download and install ImageMagick, then create 6 subdirectories in its root folder, called A, B, C, D, E, and F.

In folder A put your dumped textures.

Create a batch file in the ImageMagick root called “Alpharemove.bat” and edit it with the following:

for /r %%i in (.\A*) do magick convert -quiet A%%~nxi -alpha off B%%~nxi pause

Run “Alpharemove.bat.” This will populate the B directory with textures without alpha channels.

Create another batch file in the ImageMagick root called “Alphaextract.bat” and edit it with the following:

for /r %%i in (.\A*) do magick convert -quiet A%%~nxi -alpha extract C%%~nxi pause

Run “Alphaextract.bat.” This will populate the C directory with the alpha channel textures.

Upscale the alpha removed textures in the B directory (using Gigapixel or other preferred method) and place them in the D directory, maintaining exact same filenames.

Create another batch file in the ImageMagick root called “Alpharesize.bat” and edit it with the following:

for /r %%i in (.\C*) do magick convert -quiet C%%~nxi -resize 200%% E%%~nxi pause

Run “Alpharesize.bat.” This will populate the E directory with the resized alpha channel textures. Make sure to change the -resize % value to the same percentage that you upscaled your RGB textures to.

Finally, create a batch file in the ImageMagick root called “Alphamerge.bat” and edit it with the following:

for /r %%i in (.\D*) do magick convert -quiet D%%~nxi E%%~nxi -compose copyopacity -composite F%%~nxi pause

Run “Alphamerge.bat.” This will merge your resized RGB and alpha textures and put them in the F directory.

Finally copy the textures from the F directory to your texture-replacements directory.

I’m aware that if I was better at scripting this could probably be piped into a single script, but at least this way the process is spelled out clearly for everyone. Below are some before and after images. The difference is small, but in some areas, like the torch lights, these is a clear improvement. I’m hoping that the results might be better in 3D games with higher quality textures.

As I’m a new user I can only post one image, so can’t show comparison.

Gigapixel upscale x 2 with prior alpha channel removal

Thanks for sharing this man, very helpful, I was testing other night Parasite Eve 2 as well, and had the same issue, I was thinking that maybe wasn’t setup properly something, but I guess some games are more problematic than others. Hope we will find solution soon, because Parasite Eve 2 is one of those games that would greatly benefit from upscaling textures, especially bgs.

With further testing I’ve found that upscaling the alpha images seperately seems to work better than simply resizing them. Like Cybertiron I’ve also moved onto to Waifu as well as Gigapixel. I’ve gotten very close to no black lines around the main character, but there’s still a bit of noise.

I spent some time trying to create a workflow to address the problems with upscaling textures with alpha channels.

Here is a copy of my workflow with instructions included. It should all be pretty straight forward.

Hopefully some people can try this and see if it helps.

https://drive.google.com/file/d/1QtPK8dnc4yu60lF7USqqfYy968m6UIXo/view?usp=sharing

After further testing I’ve found that my workflow is only good in some situations. It provides some nice results with certain games, but is pretty dreadful with a lot of others :frowning: Primarily I was testing with Guilty Gear. More work needed :frowning:

What does your tool exactly do and what is the issue? Maybe I can help

Basically I was trying to create my own alpha channels. The idea was to ignore the upscaled alpha channels and create new ones that better mask the upscaled RGB textures. However this turned out not to be as simple as I thought, due to the fact that RGB textures have legitimate blacks in them, and the process of creating new alpha channels remove black pixels.

Instead now I’m redoing it to simply refine the upscaled alpha channels, similar I think to how the RTCWHQ tool does. I am testing this now and think it will work better.

In the end I want a tool that will fix the alpha channel issues but still allow using whatever upscaling method you want, and will do it in batch.