READ THE RULES: Click here

Follow us on Facebook: https://www.facebook.com/xentax/ :)

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: 45
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 5 times
Been thanked: 8 times

Help needed with Xbox 360 texture format.

Post by GHFear » Fri Jan 25, 2019 7:24 am

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.

Beedy
beginner
Posts: 33
Joined: Mon Dec 05, 2016 11:12 am
Has thanked: 4 times
Been thanked: 8 times

Re: Help needed with Xbox 360 texture format.

Post by Beedy » Fri Jan 25, 2019 10:26 pm

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.

User avatar
Acewell
VIP member
VIP member
Posts: 1263
Joined: Wed Nov 05, 2008 12:16 pm
Has thanked: 2392 times
Been thanked: 730 times

Re: Help needed with Xbox 360 texture format.

Post by Acewell » Fri Jan 25, 2019 10:58 pm

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: 45
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 5 times
Been thanked: 8 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear » Sat Jan 26, 2019 12:14 am

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!

Beedy
beginner
Posts: 33
Joined: Mon Dec 05, 2016 11:12 am
Has thanked: 4 times
Been thanked: 8 times

Re: Help needed with Xbox 360 texture format.

Post by Beedy » Sat Jan 26, 2019 10:49 am

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

User avatar
Acewell
VIP member
VIP member
Posts: 1263
Joined: Wed Nov 05, 2008 12:16 pm
Has thanked: 2392 times
Been thanked: 730 times

Re: Help needed with Xbox 360 texture format.

Post by Acewell » Sat Jan 26, 2019 12:25 pm

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: 45
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 5 times
Been thanked: 8 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear » Sat Jan 26, 2019 8:03 pm

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.

GHFear
advanced
Posts: 45
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 5 times
Been thanked: 8 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear » Sat Jan 26, 2019 10:11 pm

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? :(

GHFear
advanced
Posts: 45
Joined: Tue Dec 04, 2018 9:29 am
Has thanked: 5 times
Been thanked: 8 times

Re: Help needed with Xbox 360 texture format.

Post by GHFear » Sat Jan 26, 2019 10:18 pm

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 :)

Post Reply