Homebrew TgaVerifiy - A Tga Verifier

mike087

Well-Known Member
Member
Joined
Jan 6, 2017
Messages
214
Trophies
0
Age
39
XP
1,238
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,664
Trophies
1
Age
36
XP
5,639
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
  • SylverReZ @ SylverReZ:
    They probably said "Hey, why not we combine the two together and make a 'new' DS to sell".
  • Veho @ Veho:
    It's a DS Lite in a slightly bigger DS Lite shell.
    +1
  • Veho @ Veho:
    It's not a Nintendo / iQue official product, it's a 3rd party custom.
    +1
  • Veho @ Veho:
    Nothing special about it other than it's more comfortable than the Lite
    for people with beefy hands.
    +1
  • Jayro @ Jayro:
    I have yaoi anime hands, very lorge but slender.
  • Jayro @ Jayro:
    I'm Slenderman.
  • Veho @ Veho:
    I have hands.
  • BakerMan @ BakerMan:
    imagine not having hands, cringe
    +1
  • AncientBoi @ AncientBoi:
    ESPECIALLY for things I do to myself :sad:.. :tpi::rofl2: Or others :shy::blush::evil:
    +1
  • The Real Jdbye @ The Real Jdbye:
    @SylverReZ if you could find a v5 DS ML you would have the best of both worlds since the v5 units had the same backlight brightness levels as the DS Lite unlockable with flashme
  • The Real Jdbye @ The Real Jdbye:
    but that's a long shot
  • The Real Jdbye @ The Real Jdbye:
    i think only the red mario kart edition phat was v5
  • BigOnYa @ BigOnYa:
    A woman with no arms and no legs was sitting on a beach. A man comes along and the woman says, "I've never been hugged before." So the man feels bad and hugs her. She says "Well i've also never been kissed before." So he gives her a kiss on the cheek. She says "Well I've also never been fucked before." So the man picks her up, and throws her in the ocean and says "Now you're fucked."
    +2
  • BakerMan @ BakerMan:
    lmao
  • BakerMan @ BakerMan:
    anyways, we need to re-normalize physical media

    if i didn't want my games to be permanent, then i'd rent them
    +1
  • BigOnYa @ BigOnYa:
    Agreed, that why I try to buy all my games on disc, Xbox anyways. Switch games (which I pirate tbh) don't matter much, I stay offline 24/7 anyways.
  • AncientBoi @ AncientBoi:
    I don't pirate them, I Use Them :mellow:. Like I do @BigOnYa 's couch :tpi::evil::rofl2:
    +1
  • cearp @ cearp:
    @BakerMan - you can still "own" digital media, arguably easier and better than physical since you can make copies and backups, as much as you like.

    The issue is DRM
  • cearp @ cearp:
    You can buy drm free games / music / ebooks, and if you keep backups of your data (like documents and family photos etc), then you shouldn't lose the game. but with a disk, your toddler could put it in the toaster and there goes your $60

    :rofl2:
  • cearp @ cearp:
    still, I agree physical media is nice to have. just pointing out the issue is drm
  • rqkaiju2 @ rqkaiju2:
    i like physical media because it actually feels like you own it. thats why i plan on burning music to cds
  • cearp @ cearp:
    It's nice to not have to have a lot of physical things though, saves space
    +1
  • AncientBoi @ AncientBoi:
    Nor clothes 🤮 . Saves on time, soap, water and money having to wash them. :D
    AncientBoi @ AncientBoi: Nor clothes 🤮 . Saves on time, soap, water and money having to wash them. :D