AI Neural Networks being used to generate HQ textures for older games (You can do it yourself!)

Is this going to change game dev?

  • Yeah

    Votes: 1,218 70.8%
  • Naw

    Votes: 503 29.2%

  • Total voters
    1,721

Alo81

Member
Oct 27, 2017
191
Has anyone tried kirby's Epic Yarn? That game has a ton of high detail textures, at low res, and almost seems like a perfect use case for this.
 

Neoweee

Member
Oct 25, 2017
2,286
Has anyone tried kirby's Epic Yarn? That game has a ton of high detail textures, at low res, and almost seems like a perfect use case for this.
I can't imagine it looking "right" given that it is going for a very specific style of composition that none of the graphics sets used for training the NN likely used. It would be fascinating to see how it turns out, though.
 
Oct 25, 2017
1,653
New York City
Finally got around to playing with this. I just finished going through my 12+ year old hard drive files and upscaled a bunch of old to incredibly old images.

It is really bad with JPEG compressed images, because the upscaling of the JPEG artifacts can make the output image go really crazy. It's also not great for anything pixelated, including things like the edges of the ball texture in the Mario 64 example posted above. But for clean images (e.g. all the video game textures here), it works really well.

Too bad my old pictures are all JPEG compressed to heck, though lol. I wonder how we dealt with that back in the day...
 

SephusJo

Member
Oct 28, 2017
1,077
Finally got around to playing with this. I just finished going through my 12+ year old hard drive files and upscaled a bunch of old to incredibly old images.

It is really bad with JPEG compressed images, because the upscaling of the JPEG artifacts can make the output image go really crazy. It's also not great for anything pixelated, including things like the edges of the ball texture in the Mario 64 example posted above. But for clean images (e.g. all the video game textures here), it works really well.

Too bad my old pictures are all JPEG compressed to heck, though lol. I wonder how we dealt with that back in the day...
Give waifu2x-caffe a try for smoothing over JPEG artifacts. Been using the Photo model at Level 2 mostly (Level 3 for video frames).
 
Oct 25, 2017
1,653
New York City
Has anyone tried kirby's Epic Yarn? That game has a ton of high detail textures, at low res, and almost seems like a perfect use case for this.
Decided to try it because I have Dolphin readily available.

Two issues I encountered while doing this:

1) ESRGAN doesn't support textures with transparency. I wrote a quick Java program to delete all textures in a folder with any transparency so some textures, e.g. text and the single strand of yarn that Kirby and enemies are made of couldn't be upscaled by that algorithm.

2) My GPU (GTX 1070) doesn't have enough memory to process 1012x1012 textures. There were only three of them and they were not important to any scenes at all, so it was no big deal, though.

So with that said, here are the results, in 2560x1440...


Original image:
https://i.imgur.com/SxRKWbp.png

New image:
https://i.imgur.com/Oz3r598.jpg


It's not drastic, but it's noticeable. To be honest I thought some of the textures looked ugly but it all works very well together here.

One more...


Original image:
https://i.imgur.com/42QmnY9.png

New image:
https://i.imgur.com/a0HxS4T.jpg


Here's the quick Java program if anyone wants it.
Java:
package pngTransparencyDetector;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

import javax.imageio.ImageIO;

public class TransparencyDetector {
    public static void main(String[] args) {
        System.out.println("This program checks all .png files in this directory");
        System.out.println("and deletes any files that have any transparent pixels.");
       
        //If you want to use this program on the command line
        // File workingDirectory = new File(System.getProperty("user.dir"));
       
        //if you just want to hardcode the directory...
        File workingDirectory = new File("D:\\dev\\machinelearning\\ESRGAN\\LR");
       
        System.out.println("Working Directory = " +workingDirectory);
       
        //filter files
        File[] files = workingDirectory.listFiles(new FileFilter() {
            public boolean accept(File file) {
                return (!file.isDirectory() && file.getName().toLowerCase().endsWith(".png"));
            }});
       
       
        mainLoop:
        for (int i = 0; i < files.length; i++) {
           
            System.out.println("Processing " + (i+1) + " of "+ files.length+" "+ files[i].getName());
           
            BufferedImage pngImage = null;
           
            try {
                pngImage = ImageIO.read(files[i]);
            } catch (IOException e) {
                System.out.println("Failed to open file.");
                e.printStackTrace();
                continue;
            }
           
            for (int height = 0; height < pngImage.getHeight(); height++) {
                for (int width = 0; width < pngImage.getWidth(); width++) {
                    int pixel = pngImage.getRGB(width,  height);
                   
                    int a = (pixel & 0xFF000000) >>> 24;
                    int r = (pixel & 0xFF0000) >>> 16;
                    int g = (pixel & 0xFF00) >>> 8;
                    int b = (pixel & 0xFF);
                   
                    if (a != 255) {
                        System.out.println("Deleting file...");
                        files[i].delete();
                        continue mainLoop;
                    }
                }
            }
        }
        System.out.println("Finished!");
    }
}
Off the top of my head, I think the best way to work around the transparency problem and upscale those textures is this:
1) copy the transparency data into a new image of the same dimensions, but put the transparency in the R/G/B channel instead of A.
2) upscale the new image with an upscaler, maybe ESRGAN but I would probably choose something more predictable or better for simple graphics like bilinear or even maybe Waifu2x
3) Copy the new upscaled image's R/G/B values into the upscaled texture's A channel.

This will allow for upscaling of textures with transparency. I will probably try this out a little later.

Give waifu2x-caffe a try for smoothing over JPEG artifacts. Been using the Photo model at Level 2 mostly (Level 3 for video frames).
Thanks for the idea. I love waifu2x, I used it a long time ago to upscale some pictures for my phone, and it always did an excellent job. I should put it on my system, too.
 
Last edited:

Woylie

Member
May 9, 2018
725
Wow, these all look amazing. Could this program finally make Yoshi Story look as beautiful as it was meant to??
 

Ze_PilOt

Member
Jan 16, 2019
14
Holy moly. Nice work, Ze_PilOt! Wish SE had done something like this for the PS4 (and upcoming Switch/XBox One) ports of FF VII and IX. Do that and patch the music bugs, and we don't even need remakes. I'll pay full price again, just like 20 years ago.
Some people are also doing the same kind of work for FF VII, but as the background are mainly early-3d stuff (and not mainly hand-draw or 3d-hand-redraw like FF IX), the DNN won't do any miracle on it (ie. creating patterns that don't exists in the low res images). I think it might be possible to add some details to the images through another DNN generator (like the kind of DNN that create cars or human faces from thin air), but it's a different kind of work, and more difficult to achieve. Also, It would be more in the realm of a remaster than a HD version.
I hope these guys will get me wrong, but I think FF VII fans should embrace the pixellated art and play the PSX version with a scanline filter.
 
Oct 25, 2017
1,653
New York City
Okay, I did what I said above at the end of my post above to also upscale the transparent textures. Now every texture in these scenes should be upscaled.

Here's the results:


Orginal image:

https://i.imgur.com/fDTMlEx.png

New image:




Original image:

https://i.imgur.com/42QmnY9.png

New image:




And a third image that I didn't get a comparison shot for:


I think it looks pretty good. I actually upscaled the transparent textures and the transparencies themselves all with ESRGAN, and I'm a little surprised it turned out well. I'm gonna look into trying out some other games now.
 

Ze_PilOt

Member
Jan 16, 2019
14
Finally got around to playing with this. I just finished going through my 12+ year old hard drive files and upscaled a bunch of old to incredibly old images.

It is really bad with JPEG compressed images, because the upscaling of the JPEG artifacts can make the output image go really crazy. It's also not great for anything pixelated, including things like the edges of the ball texture in the Mario 64 example posted above. But for clean images (e.g. all the video game textures here), it works really well.

Too bad my old pictures are all JPEG compressed to heck, though lol. I wonder how we dealt with that back in the day...
A DNN will try to find patterns in a low resolution image that match patterns it learn during its training phase. "Out of the box" trained models are trained with artefact-free images, so these jpg artefacts are interpreted as other patterns (most of the time as "hard lines" like wires) by the DNN. You could try to train a GAN with artefact-ed images, or try to find a good way to remove these artefact to begin with.
 

Ze_PilOt

Member
Jan 16, 2019
14
At work so sorry if obvious, but is this for the PC version? Any incompatabilities with different regions? e.g. Japanese version
It's the steam version (I don't think there is any other version ?), and it should work with the japanese language (I can confirm that japanese texts embedded in the images were processed).
 

regawdless

Member
Oct 28, 2017
3,882
EU
Okay, I did what I said above at the end of my post above to also upscale the transparent textures. Now every texture in these scenes should be upscaled.

Here's the results:


Orginal image:

https://i.imgur.com/fDTMlEx.png

New image:




Original image:

https://i.imgur.com/42QmnY9.png

New image:




And a third image that I didn't get a comparison shot for:


I think it looks pretty good. I actually upscaled the transparent textures and the transparencies themselves all with ESRGAN, and I'm a little surprised it turned out well. I'm gonna look into trying out some other games now.
That is beautiful! I'm just wowed by some of the results in this thread.
 

Ninjatogo

Member
Oct 28, 2017
90
Okay, I did what I said above at the end of my post above to also upscale the transparent textures. Now every texture in these scenes should be upscaled.

Here's the results:


Orginal image:

https://i.imgur.com/fDTMlEx.png

New image:




Original image:

https://i.imgur.com/42QmnY9.png

New image:




And a third image that I didn't get a comparison shot for:


I think it looks pretty good. I actually upscaled the transparent textures and the transparencies themselves all with ESRGAN, and I'm a little surprised it turned out well. I'm gonna look into trying out some other games now.
Waifu2x-caffe can handle transparencies if you want to avoid the manual process of doing it yourself with ESRGAN.
 

wwm0nkey

User Requested Ban
Banned
Oct 25, 2017
5,554
Off the top of my head, I think the best way to work around the transparency problem and upscale those textures is this:
1) copy the transparency data into a new image of the same dimensions, but put the transparency in the R/G/B channel instead of A.
2) upscale the new image with an upscaler, maybe ESRGAN but I would probably choose something more predictable or better for simple graphics like bilinear or even maybe Waifu2x
3) Copy the new upscaled image's R/G/B values into the upscaled texture's A channel.

This will allow for upscaling of textures with transparency. I will probably try this out a little later.

.
Thanks for the JS code, modified it to shoot the transparent images off somewhere else so that hopefully someone makes an auto process for transparency soon
 

Greebman

Member
Oct 26, 2017
1,831
Can someone mod chromatic aberration and film grain out of Cuphead and try upscaling some clean screen caps? You'll probably have to downscale it first. The game always looked pretty soft at 1080p and with how faithful this upscaling is I think you can use it to make it a little sharper.

I'd try it myself but I don't want to rebuy it on PC after getting it on Xbox.
 

collige

Member
Oct 31, 2017
4,678
Thanks for the JS code, modified it to shoot the transparent images off somewhere else so that hopefully someone makes an auto process for transparency soon
I have a Node script I'm working on that does the same thing plus some additional work to filter out single color textures and ones dumped from FMVs. The only thing preventing me from releasing it right now is the fact that some of the textures in Metroid Prime still don't appear to play nice even after only processing textures with no alpha channel. If waifu2x-caffe does support transparency like Ninjatogo said, that should be good enough for most cases.
 
Oct 25, 2017
1,653
New York City
Thanks for the JS code, modified it to shoot the transparent images off somewhere else so that hopefully someone makes an auto process for transparency soon
I actually did that for my previous post but forgot to include the code!

The first step is to copy the transparency from each image to a new image, but copy to the RGB channel. Here's the code for that:
Java:
package pngTransparencyDetector;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

import javax.imageio.ImageIO;

public class TransparencyDetector {
    
    public static void main(String[] args) {
        //If you want to use this program on the command line
        //File workingDirectory = new File(System.getProperty("user.dir"));
        
        //if you just want to hardcode the directory...
        File workingDirectory = new File("D:\\dev\\machinelearning\\ESRGAN\\LR");
        
        System.out.println("Working Directory: " +workingDirectory);
        
        copyAlphaToImages(workingDirectory);
    }
    
    /**
     * Copies the alpha channel from images and saves the channel as RGB in new "alpha images".
     */
    public static void copyAlphaToImages(File workingDirectory) {
        
        //filter files
        File[] files = workingDirectory.listFiles(new FileFilter() {
            public boolean accept(File file) {
                return (!file.isDirectory() && file.getName().toLowerCase().endsWith(".png"));
            }});
        
        for (int i = 0; i < files.length; i++) {
            
            System.out.println("Processing " + (i+1) + " of "+ files.length+" "+ files[i].getName());
            
            String alphaFile = files[i].getAbsolutePath();
            alphaFile = alphaFile.substring(0, alphaFile.length()-4) + ".a.png";
            
            File outFile = new File(alphaFile);
            
            BufferedImage pngIn = null;
            BufferedImage pngOut = null;
            
            try {
                pngIn = ImageIO.read(files[i]);
                pngOut = new BufferedImage(pngIn.getWidth(), pngIn.getHeight(), pngIn.getType());
            } catch (IOException e) {
                System.out.println("Failed to open file.");
                e.printStackTrace();
                continue;
            }
            
            int alphaPixelCount = 0;
            for (int y = 0; y < pngIn.getHeight(); y++) {
                for (int x = 0; x < pngIn.getWidth(); x++) {
                    int pixel = pngIn.getRGB(x, y);
                    
                    int a = (pixel & 0xFF000000) >>> 24;
                    int r = (pixel & 0xFF0000) >>> 16;
                    int g = (pixel & 0xFF00) >>> 8;
                    int b = (pixel & 0xFF);
                    
                    pngOut.setRGB(x, y, (0xFF000000) | (a << 16) | (a << 8) | a);
                    
                    if (a != 255) {
                        alphaPixelCount ++;
                    }
                }
            }
            
            if (alphaPixelCount > 0) {
                System.out.println("Writing transparent pixels to "+outFile.getName());
                try {
                    ImageIO.write(pngOut, "png", outFile);
                } catch (IOException e) {
                    System.out.println("Failed to create png file.");
                    e.printStackTrace();
                }
            }
            else {
                System.out.println("Image has no transparent pixels.");
            }
        }
        System.out.println("Finished!");
    }
}
The next step is up upscale using your favorite upscaler. It may be a better idea to upscale the alpha images separately with a different algorithm (probably nearest neighbor, bilinear, or waifu2x), even though I didn't end up doing that myself.

The final step is to restore the transparency to each image by using the upscaled alpha images. Here is the code for that:
Java:
package pngTransparencyDetector;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

import javax.imageio.ImageIO;

public class TransparencyDetector {
    
    public static void main(String[] args) {
        //If you want to use this program on the command line
        //File workingDirectory = new File(System.getProperty("user.dir"));
        
        //if you just want to hardcode the directory...
        File workingDirectory = new File("D:\\dev\\machinelearning\\ESRGAN\\LR");
        
        System.out.println("Working Directory: " +workingDirectory);
        
        restoreAlphaFromImages(workingDirectory, false);
    }
    
    /**
     * Restores image's alpha channel from an alpha image, optionally deleting the alpha image when complete.
     */
    public static void restoreAlphaFromImages(File workingDirectory, boolean deleteAlphaFiles) {
        
        //filter files
        File[] files = workingDirectory.listFiles(new FileFilter() {
            public boolean accept(File file) {
                return (!file.isDirectory() && file.getName().toLowerCase().endsWith(".png") && !file.getName().toLowerCase().endsWith(".a.png"));
            }});
        
        //the results will be dumped into a subfolder
        File outputDirectory = new File(workingDirectory.getAbsolutePath() + File.separator + "restored-alpha");
        
        //a weird case I ran into
        if (outputDirectory.exists() && !outputDirectory.isDirectory()) {
            System.err.println("Delete the file called "+outputDirectory+" and try again.");
            return;
        }
        
        outputDirectory.mkdirs();
        
        for (int i = 0; i < files.length; i++) {

            System.out.println("Processing " + (i+1) + " of "+ files.length+" "+ files[i].getName());

            String alphaFilename = files[i].getAbsolutePath();
            alphaFilename = alphaFilename.substring(0, alphaFilename.length()-4) + ".a.png";
            
            File alphaFile = new File(alphaFilename);
            
            if (!alphaFile.exists()) {
                System.out.println("No alpha file exists for this .png");
                continue;
            }
            
            File outFile = new File(outputDirectory + File.separator + files[i].getName());
            
            BufferedImage pngIn = null;
            BufferedImage pngAlpha = null;
            BufferedImage pngOut = null;
            
            try {
                pngIn = ImageIO.read(files[i]);
                pngAlpha = ImageIO.read(alphaFile);
                pngOut = new BufferedImage(pngIn.getWidth(), pngIn.getHeight(), BufferedImage.TYPE_INT_ARGB);
            } catch (IOException e) {
                System.out.println("Failed to open file.");
                e.printStackTrace();
                continue;
            }
            
            for (int y = 0; y < pngIn.getHeight(); y++) {
                for (int x = 0; x < pngIn.getWidth(); x++) {
                    
                    int pixel = pngIn.getRGB(x, y);
                    
                    int a = (pixel & 0xFF000000) >>> 24;
                    int r = (pixel & 0xFF0000) >>> 16;
                    int g = (pixel & 0xFF00) >>> 8;
                    int b = (pixel & 0xFF);
                    
                    int alphaPixel = pngAlpha.getRGB(x, y);
                    
                    int aa = (alphaPixel & 0xFF000000) >>> 24;
                    int ar = (alphaPixel & 0xFF0000) >>> 16;
                    int ag = (alphaPixel & 0xFF00) >>> 8;
                    int ab = (alphaPixel & 0xFF);
                    
                    //I average the value from all channels, but you can do whatever technique you want
                    int finalAlpha = (ar + ag + ab) / 3;
                    if (finalAlpha > 250) finalAlpha = 255;
                    if (finalAlpha < 5) finalAlpha = 0;
                    
                    pngOut.setRGB(x, y, (finalAlpha << 24) | (r << 16) | (g << 8) | b);
                }
            }
            
            System.out.println("Writing restored image to "+outFile.getName());
            try {
                ImageIO.write(pngOut, "png", outFile);
            } catch (IOException e) {
                System.out.println("Failed to create png file.");
                e.printStackTrace();
                continue;
            }
            
            if (deleteAlphaFiles) {
                alphaFile.delete();
            }
        }
        System.out.println("Finished!");
    }
}
I have a Node script I'm working on that does the same thing plus some additional work to filter out single color textures and ones dumped from FMVs. The only thing preventing me from releasing it right now is the fact that some of the textures in Metroid Prime still don't appear to play nice even after only processing textures with no alpha channel. If waifu2x-caffe does support transparency like Ninjatogo said, that should be good enough for most cases.
Hmm I wonder why it's not working with Metroid Prime... Which textures aren't playing nice?

Detecting single color textures is a great idea. Especially textures like text, certain HUD elements and whatnot should not be upscaled with this algorithm. They probably have at most 8 unique colors.
 

Alo81

Member
Oct 27, 2017
191
Okay, I did what I said above at the end of my post above to also upscale the transparent textures. Now every texture in these scenes should be upscaled.

Here's the results:


Orginal image:

https://i.imgur.com/fDTMlEx.png

New image:




Original image:

https://i.imgur.com/42QmnY9.png

New image:




And a third image that I didn't get a comparison shot for:


I think it looks pretty good. I actually upscaled the transparent textures and the transparencies themselves all with ESRGAN, and I'm a little surprised it turned out well. I'm gonna look into trying out some other games now.
The high detail jean-texture like textures was what I originally was envisioning scaling well, and in all those instances it looks like it did in fact scale up really, really well. Nice work dude.
 

collige

Member
Oct 31, 2017
4,678
I actually did that for my previous post but forgot to include the code!

The first step is to copy the transparency from each image to a new image, but copy to the RGB channel. Here's the code for that:


The next step is up upscale using your favorite upscaler. It may be a better idea to upscale the alpha images separately with a different algorithm (probably nearest neighbor, bilinear, or waifu2x), even though I didn't end up doing that myself.

The final step is to restore the transparency to each image by using the upscaled alpha images. Here is the code for that:




Hmm I wonder why it's not working with Metroid Prime... Which textures aren't playing nice?

Detecting single color textures is a great idea. Especially textures like text, certain HUD elements and whatnot should not be upscaled with this algorithm. They probably have at most 8 unique colors.
I need to do another test run because it's possible i just fucked it up my first go around, but the main offenders are "particle" effects and some UI elements. You can spot the differences in the screenshot comparisons I posted earlier in the thread.


Edit: I had just fucked up, everything is fine.
 
Last edited:

Greebman

Member
Oct 26, 2017
1,831
Tried Dead Rising which has fairly low-res textures. Pretty good results but there some of the main mall textures get replaced with low-res versions and there is flickering on reflections. I prob need to filter through some of the textures some more and see if there are textures of different resolutions with the same name.

The movie area works though:



The file structure is a nightmare in this game btw.
 

Foffy

Member
Oct 25, 2017
5,322
Pardon me for asking here, but like...are we only able to run this program to play with still images, or is it like an emulator filter where it can be applied to a game running in real-time with you able to play with it running?
 

collige

Member
Oct 31, 2017
4,678
Without further ado, I present to you: The Metroid Prime 1 Full Game HD Texture Pack for Dolphin! Installation instructions can be found here.

Download link: (1.80GB)
https://mega.nz/#!GUEhAaDC!knvXl6CAG14rwCqZ94A2XEEFBq12ih-nIinkQqzrhos

This is for the Gamecube version (GameID GM8E01), not Metroid Prime Trilogy. This retextures virtually the entire game. There's about 7000 textures upscaled with ESRGAN (manga109 model) and an additional 2000 upscaled with waifu2x-caffe (UpRGB model).

I'll try to record and upload a gameplay vid later today. In the meantime, I don't have a reddit account, so if someone could repost it to r/gameUpscale or whatever other subreddit is appropriate, I would appreciate. I'll also be upload my script to github along with instructions for how to do this with other games. I'm planning on trying Melee, Soul Calibur 2, and THPS3+4 next.
 

collige

Member
Oct 31, 2017
4,678
Pardon me for asking here, but like...are we only able to run this program to play with still images, or is it like an emulator filter where it can be applied to a game running in real-time with you able to play with it running?
It only runs on still images. However, emulators with support for dumping and loading custom textures (as well as native PC games that have their textures in the correct format) can load the upscaled textures for gameplay (see my above post).
 

JahIthBer

Member
Jan 27, 2018
3,413
Without further ado, I present to you: The Metroid Prime 1 Full Game HD Texture Pack for Dolphin! Installation instructions can be found here.

Download link: (1.80GB)
https://mega.nz/#!GUEhAaDC!knvXl6CAG14rwCqZ94A2XEEFBq12ih-nIinkQqzrhos

This is for the Gamecube version (GameID GM8E01), not Metroid Prime Trilogy. This retextures virtually the entire game. There's about 7000 textures upscaled with ESRGAN (manga109 model) and an additional 2000 upscaled with waifu2x-caffe (UpRGB model).

I'll try to record and upload a gameplay vid later today. In the meantime, I don't have a reddit account, so if someone could repost it to r/gameUpscale or whatever other subreddit is appropriate, I would appreciate. I'll also be upload my script to github along with instructions for how to do this with other games. I'm planning on trying Melee, Soul Calibur 2, and THPS3+4 next.
Nice! using this with Ishiiruka & SSAO, etc will be the closest thing to a remaster.
 

Taco_Human

Member
Jan 6, 2018
859
MA
Anyone try this for something cel shaded? First thing that came to mind after seeing a Wii game was No More Heroes, though I can't imagine if it would benefit much.
 

wwm0nkey

User Requested Ban
Banned
Oct 25, 2017
5,554
Without further ado, I present to you: The Metroid Prime 1 Full Game HD Texture Pack for Dolphin! Installation instructions can be found here.

Download link: (1.80GB)
https://mega.nz/#!GUEhAaDC!knvXl6CAG14rwCqZ94A2XEEFBq12ih-nIinkQqzrhos

This is for the Gamecube version (GameID GM8E01), not Metroid Prime Trilogy. This retextures virtually the entire game. There's about 7000 textures upscaled with ESRGAN (manga109 model) and an additional 2000 upscaled with waifu2x-caffe (UpRGB model).

I'll try to record and upload a gameplay vid later today. In the meantime, I don't have a reddit account, so if someone could repost it to r/gameUpscale or whatever other subreddit is appropriate, I would appreciate. I'll also be upload my script to github along with instructions for how to do this with other games. I'm planning on trying Melee, Soul Calibur 2, and THPS3+4 next.
I'll link it around once that vid goes live :)
 

elyetis

Member
Oct 26, 2017
1,622
The only way to get all the texture from a game un Dolphin is to play it yourself with dump texture enabled ?

I could see myself doing Baten Kaitos texture since I liked my first results, but if it mean doing all the game first... that's quite time consuming..
 

collige

Member
Oct 31, 2017
4,678
The only way to get all the texture from a game un Dolphin is to play it yourself with dump texture enabled ?

I could see myself doing Baten Kaitos texture since I liked my first results, but if it mean doing all the game first... that's quite time consuming..
Yes, sadly. If you're only going for backgrounds in BK, you could download a 100% save file and just visit every screen. I think there might be some one off areas you can't go back to, but you could probably get most of them that way.
 

Oldmario

Member
Oct 25, 2017
1,582
does PPSSPP allow you to rip textures any differently now? i remember it being that you had to pretty much play the entire game and any textures that would load in that area would get ripped into a folder
 

dexae

Member
Oct 27, 2017
18
Without further ado, I present to you: The Metroid Prime 1 Full Game HD Texture Pack for Dolphin! Installation instructions can be found here.

Download link: (1.80GB)
https://mega.nz/#!GUEhAaDC!knvXl6CAG14rwCqZ94A2XEEFBq12ih-nIinkQqzrhos

This is for the Gamecube version (GameID GM8E01), not Metroid Prime Trilogy. This retextures virtually the entire game. There's about 7000 textures upscaled with ESRGAN (manga109 model) and an additional 2000 upscaled with waifu2x-caffe (UpRGB model).

I'll try to record and upload a gameplay vid later today. In the meantime, I don't have a reddit account, so if someone could repost it to r/gameUpscale or whatever other subreddit is appropriate, I would appreciate. I'll also be upload my script to github along with instructions for how to do this with other games. I'm planning on trying Melee, Soul Calibur 2, and THPS3+4 next.
Could this pack work with the European version "GM8P01" of the game?
 

elyetis

Member
Oct 26, 2017
1,622
Yes, sadly. If you're only going for backgrounds in BK, you could download a 100% save file and just visit every screen. I think there might be some one off areas you can't go back to, but you could probably get most of them that way.
I guess I could start with that then maybe later take the oppotunity to play the game again. I mean I love the game but I have like 10 jrpg in my backlog who should take priority ^^"
 

th1nk

Member
Nov 6, 2017
239
Man I hope the developers doing the Metroid Prime Trilogy conversion at Nintendo are aware of this technology... it could very well be that this fan conversion will look miles better than the real thing! What about Silent Hill 2? That could work amazingly!
 

ZServ

Member
Oct 29, 2017
119
Considering how low quality the textures in Dishonored and Dishonored 2 are, I wonder if it would be worth looking into converting them using this..
 

Oldmario

Member
Oct 25, 2017
1,582
Man I hope the developers doing the Metroid Prime Trilogy conversion at Nintendo are aware of this technology... it could very well be that this fan conversion will look miles better than the real thing! What about Silent Hill 2? That could work amazingly!
these are only gamecube/wii textures tho, i'd imagine the developers would have access to uncompressed original textures