Homebrew TgaVerifiy - A Tga Verifier

mike087

Well-Known Member
Member
Joined
Jan 6, 2017
Messages
214
Trophies
0
Age
39
XP
1,236
Country
Ecuador
Hello, i have cbhc and haxchi installed, everything was working fine until i decided to make a different icon (iconTex.tga) for my haxhi, i made it and replaced through ftpiiu but i doesnt worked, i shows a ??? and a grey question mark icon. And the problem is that even placing the original iconTex.tga doesnt work. Help please.
 
D

Deleted User

Guest
I run the program and it closes it doesnt show anything
Are you running it from a command pompt? It should spit out "All TGAs Verified" on exit, regardless of whether or not there are errors in your images.
 

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
2,629
Trophies
1
Age
36
XP
5,470
Country
Germany
MetaVerifiy for Python 3.x
Made it Linux compatible:

Python:
#!//bin/env python
import struct
import os
try:
    import msvcrt as m
except:
    import getch as m

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]*int(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()
 
  • Like
Reactions: ber71

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    S @ salazarcosplay: How are you @AncientBoi :tpi: :tpi: :tpi: :tpi: :tpi: