The Forum is up for sale: XeNTaX Forum looking for new owner

Help needed with Xbox 360 texture format.

Get your graphics formats figures out here! Got details for others? Post here!
Post Reply
GHFear
advanced
Posts: 50
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 7 times
Been thanked: 9 times

Help needed with Xbox 360 texture format.

Post by GHFear »

I would like to know how I would go about adding compatibility for a new and unknown "to me" texture format, to my Noesis script.
Attached is a sample of the format.

Edit: I think it's R5G6B5, but I am not 100%.

Thanks,
GHFear
You do not have the required permissions to view the files attached to this post.
If you appreciate my work and want to donate:
Paypal: ghfear@hotmail.com
Beedy
advanced
Posts: 47
Joined: Mon Dec 05, 2016 11:12 am
Has thanked: 8 times
Been thanked: 14 times

Re: Help needed with Xbox 360 texture format.

Post by Beedy »

Yes, It's probably R5G6B5. I converted your file to xpr and make rdf file with unbundler and got the texture format. I think you did same :)

Code: Select all

<?xml version="1.0" encoding="utf-8" ?>

<RDF Version="XPR2">

<Texture
   Name   = "strName"
   Source = "strName.tga"
   Format = "D3DFMT_R5G6B5"
   Width  = "128"
   Height = "128"
   Levels = "8"
/>

</RDF>
However I have no idea how to open it with noesis, but hopefully someone will help you.
You do not have the required permissions to view the files attached to this post.
Acewell
VIP member
VIP member
Posts: 1330
Joined: Wed Nov 05, 2008 12:16 pm
Has thanked: 2710 times
Been thanked: 883 times

Re: Help needed with Xbox 360 texture format.

Post by Acewell »

this was the only way i could get a sensible image from the sample:

Code: Select all

    elif imgFmt == 0x44:
        data = rapi.imageUntile360Raw(data, imgWidth, imgHeight, 2)
        data = rapi.imageDecodeRaw(data, imgWidth, imgHeight, "a8p8")
        texFmt = noesis.NOESISTEX_RGBA32
looks like asphalt pavement or something. :D
GHFear
advanced
Posts: 50
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 7 times
Been thanked: 9 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear »

Acewell wrote:this was the only way i could get a sensible image from the sample:

Code: Select all

    elif imgFmt == 0x44:
        data = rapi.imageUntile360Raw(data, imgWidth, imgHeight, 2)
        data = rapi.imageDecodeRaw(data, imgWidth, imgHeight, "a8p8")
        texFmt = noesis.NOESISTEX_RGBA32
looks like asphalt pavement or something. :D

I love you dude. You are a true hero! :D That was the last format that the Skate games use ^^ Now every texture can be extracted.
Worked perfectly!
If you appreciate my work and want to donate:
Paypal: ghfear@hotmail.com
Beedy
advanced
Posts: 47
Joined: Mon Dec 05, 2016 11:12 am
Has thanked: 8 times
Been thanked: 14 times

Re: Help needed with Xbox 360 texture format.

Post by Beedy »

It's a slightly difference between noesis and unbundler extracted images. Noesis extracted is grayscale and transparent instead of unbundler image is colored. I don't think how about other images but that is what I noticed.

Image
Acewell
VIP member
VIP member
Posts: 1330
Joined: Wed Nov 05, 2008 12:16 pm
Has thanked: 2710 times
Been thanked: 883 times

Re: Help needed with Xbox 360 texture format.

Post by Acewell »

okay i can get that same image as your unbundler with this: :D

Code: Select all

    elif imgFmt == 0x44:
        data = rapi.imageUntile360Raw(rapi.swapEndianArray(data, 2), imgWidth, imgHeight, 2)
        data = rapi.imageDecodeRaw(data, imgWidth, imgHeight, "b5g6r5")
        texFmt = noesis.NOESISTEX_RGBA32
not sure why i didn't try swapping endianness before (:
GHFear
advanced
Posts: 50
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 7 times
Been thanked: 9 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear »

Acewell wrote:okay i can get that same image as your unbundler with this: :D

Code: Select all

    elif imgFmt == 0x44:
        data = rapi.imageUntile360Raw(rapi.swapEndianArray(data, 2), imgWidth, imgHeight, 2)
        data = rapi.imageDecodeRaw(data, imgWidth, imgHeight, "b5g6r5")
        texFmt = noesis.NOESISTEX_RGBA32
not sure why i didn't try swapping endianness before (:
Huh.. its funny. That texture and like 1 other were the only ones coming out grayscaled. Every other one game out right. But I Will update it. :)
Thanks so much.
If you appreciate my work and want to donate:
Paypal: ghfear@hotmail.com
GHFear
advanced
Posts: 50
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 7 times
Been thanked: 9 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear »

Acewell wrote:okay i can get that same image as your unbundler with this: :D

Code: Select all

    elif imgFmt == 0x44:
        data = rapi.imageUntile360Raw(rapi.swapEndianArray(data, 2), imgWidth, imgHeight, 2)
        data = rapi.imageDecodeRaw(data, imgWidth, imgHeight, "b5g6r5")
        texFmt = noesis.NOESISTEX_RGBA32
not sure why i didn't try swapping endianness before (:
Okay, so implementing that doesn't work for me. It gives me the error "An integer is required" when I try to use b5g6r5.
Any idea why that could be? :(
If you appreciate my work and want to donate:
Paypal: ghfear@hotmail.com
GHFear
advanced
Posts: 50
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 7 times
Been thanked: 9 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear »

GHFear wrote:
Acewell wrote:okay i can get that same image as your unbundler with this: :D

Code: Select all

    elif imgFmt == 0x44:
        data = rapi.imageUntile360Raw(rapi.swapEndianArray(data, 2), imgWidth, imgHeight, 2)
        data = rapi.imageDecodeRaw(data, imgWidth, imgHeight, "b5g6r5")
        texFmt = noesis.NOESISTEX_RGBA32
not sure why i didn't try swapping endianness before (:
Okay, so implementing that doesn't work for me. It gives me the error "An integer is required" when I try to use b5g6r5.
Any idea why that could be? :(
Oh wait... yeah it DOES work with that ONE texture and the other one that didn't work with the other a8p8 method...
So only those 2 seem to actually be b5g6r5, but both a8p8 and b5g6r5 seem to have the format ID 0x44... :/ So no idea how I would distinguish between the two.

Edit: So it seems I was a dumbass and forgot to remove an indentation.
It works perfectly fine now :)
If you appreciate my work and want to donate:
Paypal: ghfear@hotmail.com
Post Reply