Homebrew TgaVerifiy - A Tga Verifier

  • Thread starter Thread starter Zarklord
  • Start date Start date
  • Views Views 24,308
  • Replies Replies 49
  • Likes Likes 14
Code:
iconTex.tgais compressed. it cant be compressed!
All TGA's verified!
press any key to exit...

What should I do about this? I have some edited tga files in the folder. (edited via paint.net)
you need to when saving it not compress the file
 
Code:
iconTex.tgais compressed. it cant be compressed!
All TGA's verified!
press any key to exit...

What should I do about this? I have some edited tga files in the folder. (edited via paint.net)
Don't enable RLE compression.

If Paint.NET doesn't let you disable that, then IDK what to tell you.
 
You have to place it inside the meta folder, the same folder as the TGA files.
i did that and clicking on it just makes it close and using the comand line is the same thing, gives me the error abode, im guessing this doesnt work with python 3.4.3? only 2.7?
 
Capture d’écran (65).png
 
All my TGAs got verified... Is 16-bit color depth for bootDrcTex.tga and bootTvTex.tga a restriction by AppConfigTool and not by the Wii U itself?
 
All my TGAs got verified... Is 16-bit color depth for bootDrcTex.tga and bootTvTex.tga a restriction by AppConfigTool and not by the Wii U itself?
i guess? im not really sure why app config has you do invalid bit color depth but i assume it transforms them to the correct depth...
 
It looks that way. My bootscreen shows up just fine on the Wii U, thanks for your tool! I spent hours looking to find a solution to change the color depth to 16-bit and now I can just forget about that. :)
 
Any chance of seeing this for python 3.x? Sucks to need 3.x for gba_inject and then get 2.x for this.

Edit: I got this working for Python 3.x now. Is it okey if I share the code here?
 
Last edited by MajoraAKC,
  • Like
Reactions: JHoliness
MetaVerifiy for Python 3.x

Direct download
http://s000.tinyupload.com/index.php?file_id=88044331508145990052

Code:
import struct
import msvcrt as m
import os

def wait():
    m.getch()
   
def readByte(file):
    return struct.unpack("B", file.read(1))[0]
 
def readu16le(file):
    return struct.unpack("<H", file.read(2))[0]
 
def readu32le(file):
    return struct.unpack("<I", file.read(4))[0]


tgas = ["iconTex.tga","bootLogoTex.tga","bootDrcTex.tga","bootTvTex.tga"]
dimensions = [[128,128,32],[170,42,32],[854,480,24],[1280,720,24]]
for i in range(len(tgas)):
    tga = tgas[i]
    dimension = dimensions[i]
    if os.path.exists(tga):
        with open(tga,"rb+") as f:
            header = readu32le(f)
            if header != 0x00020000:
                print(tga + "is compressed. it cant be compressed!")
                break
            f.seek(12)
            actDimensions = [readu16le(f),readu16le(f),readByte(f)]
            hasHadBadDiment = False
            for j in range(len(actDimensions)):
                if j == 0:
                    type = "width"
                elif j == 1:
                    type = "height"
                else:
                    type = "depth"
                diment = dimension[j]
                actDiment = actDimensions[j]
                if diment != actDiment:
                    if not hasHadBadDiment:
                        hasHadBadDiment = True
                        print("dimensions are not valid for: " + tga)
                    print(type + " is: " + str(actDiment) + " should be: " + str(diment))
            if hasHadBadDiment:
                break
            f.seek(1,1)
            f.seek(actDimensions[0]*actDimensions[1]*(actDimensions[2]//8),1)
            f.write(b"\x00\x00\x00\x00\x00\x00\x00\x00TRUEVISION-XFILE\x2E\x00")
    else:
        print(tga + " could not be found!")
print("All TGA's verified!")
print("Press any key to exit...")
#todo verifiy bootovie.h264
wait()
 
Last edited by MajoraAKC,

Site & Scene News

Popular threads in this forum