Extracting (textures?) rsf files Madden NFL 13 Vita

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
lorak
Posts: 36
Joined: Wed Aug 31, 2016 6:12 pm

Extracting (textures?) rsf files Madden NFL 13 Vita

Post by lorak »

I would like to extract the contents of .rsf files from Madden NFL 13 PS Vita. Back in September 2016, I wanted to extract the contents from .ast files in the same game, I have asked here, Luigi's advice was to apply his offzip 0.4 tool and everything is working great.

Now, some of those extracted files are real textures (.dds files) and the rest are like the .rsf files referred above among others. My understanding is that inside those .rsf files there a more textures (.tex and .dds). I am not able to extract it with offzip by the way. Exploring some of the .rsf files in an hex-editor seem to support the idea that inside these .rsf files we have more textures, I am not and expert though.

You can find a sample file here. Those .rsf files are really small in size a few KB only and follow the little-endian format. Again, my guess is that they contain simple textures.

How can I extract the contents of the .rsf files?
Do you agree with me that inside those .rsf file we have textures (.dds files)?

Thanks, I am looking forward for an answer.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Extracting (textures?) rsf files Madden NFL 13 Vita

Post by aluigi »

It's a chunked format, if you want something that makes it more "readable" try this:

Code: Select all

idstring "RSF"
get RSF_SIZE asize
math CHUNK_OFF = 0x10
do
    goto CHUNK_OFF
    getdstring CHUNK_NAME 4
    get CHUNK_DUMMY long
    get CHUNK_SIZE long
    get CHUNK_DUMMY long
    string CHUNK_NAME r CHUNK_NAME
    savepos OFFSET
    xmath SIZE   "CHUNK_SIZE - (OFFSET - CHUNK_OFF)"
    xmath OFFSET "OFFSET     - (OFFSET - CHUNK_OFF)"
    string CHUNK_NAME + /
    log CHUNK_NAME OFFSET SIZE
    math CHUNK_OFF + CHUNK_SIZE
while CHUNK_OFF != RSF_SIZE
Acewell
Posts: 706
Joined: Fri Aug 08, 2014 1:06 am

Re: Extracting (textures?) rsf files Madden NFL 13 Vita

Post by Acewell »

lorak wrote:Do you agree with me that inside those .rsf file we have textures (.dds files)?

i see no texture data in your rsf sample, just info :)
lorak
Posts: 36
Joined: Wed Aug 31, 2016 6:12 pm

Re: Extracting (textures?) rsf files Madden NFL 13 Vita

Post by lorak »

Acewell wrote:
lorak wrote:Do you agree with me that inside those .rsf file we have textures (.dds files)?

i see no texture data in your rsf sample, just info :)

First, Luigi thanks for the above script.
Yes, indeed. I only see 6 folders: GEO, INFO MATL, SGRF, SHDR and TEXT.

The possible interesting files for my purposes (I would like to edit the facemask color as I already have access to helmets, jerseys and pants textures) are in MATL and TEXT folders I guess. There is only one file per folder. Although, I am not really sure we have textures or if we can edit the facemask color (directly in an Hex editor) there.

Any thoughts?
lorak
Posts: 36
Joined: Wed Aug 31, 2016 6:12 pm

Re: Extracting (textures?) rsf files Madden NFL 13 Vita

Post by lorak »

After some extra experiments I am able to edit the facemask color already!! :D
I have found the offset to edit directly in an hex editor inside the .rsf files. It is easy as it is only a small change.

Now, I need to focus in a different kind of problem, namely, to identify the color representation of certain elements of the game I found in those .rsf files

Thank you very much for your help.
Last edited by lorak on Sat Apr 25, 2020 1:26 am, edited 2 times in total.
lorak
Posts: 36
Joined: Wed Aug 31, 2016 6:12 pm

Re: Extracting (textures?) rsf files Madden NFL 13 Vita

Post by lorak »

Coming back to this thread and these files after quite some time!

Inside those rsf files we can set the color for different elements of the game. Facemasks color is set with 12 bytes, the first 4 correspond to the red channel, the next 4 to the green channel and last 4 to the blue channel. It looks more or less like an ARGB representation. As an example, I checked in the game that:

Code: Select all

A0 9F 1F 3F 00 00 00 00 00 00 00 00 --- corresponds to some kind of red, almost pure red
00 00 00 00 A0 9F 1F 3F 00 00 00 00 --- corresponds to some kind of green, almost pure green
00 00 00 00 00 00 00 00 A0 9F 1F 3F --- corresponds to some kind of blue, almost pure blue

We know that we can represent pure red in RGB as 0xFF0000. My problem is that in the above representation each channel uses 3 bytes -disregarding A0, the first byte in the case above that maybe is linked to an alpha channel- instead of 1. I do not see clearly how to link the above color representation with the one given by RGB. The final goal is color editing.

Any ideas?