Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Nascar 08/09 3D models

Featured Replies

  • Author
  • Localization

ajspeed19, posted Fri Jun 21, 2019 11:52 am (48948)


Hey I was hoping someone can help.

I'm trying to get the cars and maybe tracks out of these games.
I've made some good progress using quick bms.
I used the nbajamfire.bms file to extract ast files.
I then came across XPR and RSF files. after some searching i found a plugin for noesis to open the xpr texture files.

for the rsf i extracted it with quick bms which then created several folders. one of which is 'geom' inside a file with the header 'moeg' i put this in to hxd and came across two common items XDNI 61DI (29 to be precise). I found that directly after the 61DI shows face indices in H20.

My issue is trying to find work out how to get the start address for uv and vertices.

What should i be looking for? any help would be much appreciated
  • Author
  • Localization

Scar7752, posted Fri Jun 11, 2021 9:18 pm (64628)


Gonna give this a big ol bump as I'm currently working on the same thing.
  • Author
  • Localization

DJ Normality, posted Tue Oct 12, 2021 2:20 pm (66982)


Image
Seems the model is at the beginning not sure what the rest is. Cut file at 4D4F4547. Im sure this isnt right but its a start to your investigation of the files :D
  • Author
  • Localization

lorak, posted Tue Jan 10, 2023 1:20 am (74947)


Any progress with this?
  • Author
  • Localization

h3x3r, posted Sun Mar 19, 2023 12:09 pm (75982)


Image
Send more samples if you have any... Also textures if it's possible...

EDiT: So i checked NASCAR 08 PS3/X360 files but can't find any *.moe file inside. From which version of the game the file is?

NASCAR 08 files have reference to the materials and textures. The file you provided has only reference to materials. Or did you cut the file somehow?
  • Author
  • Localization

lorak, posted Tue Mar 21, 2023 5:41 pm (76010)


h3x3r wrote:
Send more samples if you have any... Also textures if it's possible...

I do not have 3D models from this game, however, I do have 3D models from another game. The 3D models are kind of similar rsf files than in NASCAR 08/09.
If you want, I can share a few samples of those rsf files with its textures.
  • Author
  • Localization

h3x3r, posted Wed Mar 22, 2023 12:13 pm (76023)


lorak wrote:
I do have 3D models form another game.

Hmm OK say name of the game and platform. PC/XBOX360/PS3?
  • Author
  • Localization

lorak, posted Fri Mar 31, 2023 6:24 pm (76139)


h3x3r wrote:
Hmm OK say name of the game and platform. PC/XBOX360/PS3?

Ahh sorry. I have extracted a lot of 3D models from Madden 13 PS Vita. The 3D models are in .rsf files, maybe similar to these Nascar 08/09 models. I attach the old Dolphins stadium as a sample file with all its textures.

I also attach another file from MLB 14 The Show (MLB14TS) also for PS Vita. It contains the 3D model from the Orioles stadium. I did not include the textures. In this game, the 3D models do not have a .rsf extension. Maybe you could also check it.

Many thanks!!
  • Author
  • Localization

h3x3r, posted Sun Apr 02, 2023 11:42 am (76177)


Here's 010 HEX Editor template to parse file "DOLPHINS.RSF" you provided. It's not a full format research. Just some things.
Not sure why there is a 287 vertex blocks and only 120 face blocks. There must be some logic how to pair them. So far no luck. You can try it on your own...

Code:
//------------------------------------------------
//--- 010 Editor v12.0.1 Binary Template
//
//      File:
//   Authors:
//   Version:
//   Purpose:
//  Category:
// File Mask:
//  ID Bytes:
//   History:
//------------------------------------------------
struct FSR_HDR {
    char Magic[4];
    uint32 Null[3];
};

struct INFO_HDR {
    char Magic[4];
    uint32 Null,InfoSize,InfoHeaderSize;
};

struct INFO {
    uint32 StrLen;
    char MdlBaseName[StrLen];
    byte Pad[13];
    float BBoxX,BBoxY,BBoxZ;
};

struct JOBN_HDR {
    char Magic[4];
    uint32 Null,JobnSize,JobnHeaderSize;
};

struct JOBN {
    uint32 JobnCount;
    char Magic[4];
    uint32 StrLen;
    char Name[StrLen];
};

struct GEOM_HDR {
    char Magic[4];
    uint32 Flag,TexHeaderOffset,GeomHeaderSize;
};

struct TMFV {
    uint32 TMFVCount;
    struct VFMT {
        char Magic[4];uint32 StringSize;string Name;
    }VFMTData[TMFVCount];
};

struct MRTS {
    uint32 MRTSCount;
    struct STRM {
        char Magic[9];uint32 VTXCount,Stride,Num;
        struct VTX {
        if (Stride == 12) {
            hfloat Vtx,Vty,Vtz,Val0,Uvx,Uvy;}
        else if (Stride == 16) {
            hfloat Vtx,Vty,Vtz,Val0,Uvx,Uvy,Val1,Val2;}
        else if (Stride == 20 && Num == 2) {
            hfloat Vtx,Vty,Vtz,Val0,Val1,Val2,Uvx,Uvy,Val3,Val4;}
        else if (Stride == 20 && Num == 3) {
            hfloat Vtx,Vty,Vtz,Val0,Uvx,Uvy,Val1,Val2,Val3,Val4;}
        else if (Stride == 20 && Num == 10) {
            hfloat Vtx,Vty,Vtz,Val0,Uvx,Uvy,Val1,Val2,Val3,Val4;}
        else if (Stride == 24) {
            hfloat Vtx,Vty,Vtz,Val0,Uvx,Uvy,Val1,Val2,Val3,Val4,Val5,Val6;}
        else if (Stride == 28) {
            hfloat Vtx,Vty,Vtz,Val0,Uvx,Uvy,Val1,Val2,Val3,Val4,Val5,Val6,Val7,Val8;}
        else if (Stride == 72) {
            float Vtx,Vty,Vtz,Val0,Val1,Val2,Val3,Val4,Val5,Val6,Uvx,Uvy,Val7,Val8,Val9,Val10,Val11,Val12;}
        }Vertices[VTXCount];
    }STRMData[MRTSCount];
};

struct INDX {
    uint32 INDXCount;
    struct XDNI {
        char Magic[9];uint32 FICount;char INDMagic[4];
        struct FACEI {
            short Fx,Fy,Fz;
        }Faces[FICount/3];
    }XDNIData[INDXCount];
};

struct MESH {
    uint32 HSEMCount;
    struct HSEM {
        char Magic[8],SecMagic[8];
        uint32 Val0,Val1,Val2,Val3,Val4,Val5,Val6;
        local uint32 Val7_tmp=ReadUInt(FTell());
        if (Val7_tmp != 1296388936)
            uint32 Val7;
            //local string s;
            //SPrintf(s,"%u",(uint32)MatId);
    }HSEMData[HSEMCount];
};

struct GEOM {
    uint32 GEOMCount;
    struct MOEG {
        char Magic[4];
        uint32 Flag,MeshStrLen;
        string MeshName;
        string FFFF;
        float Posx,Posy,Posz;
        byte Null[6];
        uint32 Val0,Val1,Val2;
    }MOEGData[GEOMCount];
};

struct TEXT_HDR {
    char Magic[4];
    uint32 Flag,TextSize,TexHeaderSize;
};

struct TEXT {
    uint32 TEXTCount;
    struct TXET {
        char Magic[4];
        uint32 ShaderStrLen;
        string ShaderName;
        uint32 TexNameStrLen;
        string ExportedTextureName;
    }TXETData[TEXTCount];
};

struct SHDR_HDR {
    char Magic[4];
    uint32 Flag,ShdrSize,ShdrHeaderSize;
};

struct SHDR {
    uint32 SHDRCount;
    struct RDHS {
        char Magic[4];
        uint32 RdhsStrLen;
        string RdhsName;
    }RDHSData[SHDRCount];
};

struct MATL_HDR {
    char Magic[4];
    uint32 Flag,MatlSize,MatlHeaderSize;
};

struct MATL {
    byte MATL_Data[MATLHeader.MatlSize-MATLHeader.MatlHeaderSize];
};

struct SGRF_HDR {
    char Magic[4];
    uint32 Flag,SgrfSize,SgrfHeaderSize;
};

struct SGRF {
    byte SGRF_Data[SGRFHeader.SgrfSize-SGRFHeader.SgrfHeaderSize];
};

struct CRWD_HDR {
    char Magic[4];
    uint32 Flag,CrwdSize,CrwdHeaderSize;
};

struct CRWD {
    byte CRWD_Data[CRWDHeader.CrwdSize-CRWDHeader.CrwdHeaderSize];
};

struct SBVH_HDR {
    char Magic[4];
    uint32 Flag,SbvhSize,SbvhHeaderSize;
};

struct SBVH {
    byte SBVH_Data[SBVHHeader.SbvhSize-SBVHHeader.SbvhHeaderSize];
};

FSR_HDR FSRHeader;

INFO_HDR INFOHeader;
INFO INFOData;

FSeek(startof(INFOHeader) INFOHeader.InfoSize);
JOBN_HDR JOBNHeader;
JOBN JOBNData;

FSeek(startof(JOBNHeader) JOBNHeader.JobnSize);
GEOM_HDR GEOMHeader;

TMFV TMFVData;

MRTS MRTSData;

INDX INDXData;

MESH MESHData;

GEOM GEOMData;

FSeek(startof(GEOMHeader) GEOMHeader.TexHeaderOffset);
TEXT_HDR TEXTHeader;
TEXT TEXTData;

FSeek(startof(TEXTHeader) TEXTHeader.TextSize);
SHDR_HDR SHDRHeader;
SHDR SHDRData;

FSeek(startof(SHDRHeader) SHDRHeader.ShdrSize);
MATL_HDR MATLHeader;
MATL MATLData;

FSeek(startof(MATLHeader) MATLHeader.MatlSize);
SGRF_HDR SGRFHeader;
SGRF SGRFData;

FSeek(startof(SGRFHeader) SGRFHeader.SgrfSize);
CRWD_HDR CRWDHeader;
CRWD CRWDData;

FSeek(startof(CRWDHeader) CRWDHeader.CrwdSize);
SBVH_HDR SBVHHeader;
SBVH SBVHData;
  • Author
  • Localization

lorak, posted Sun Apr 02, 2023 2:58 pm (76184)


Thanks for dissecting the structure of this file!!
Did you load the DOLPHINS.RSF model in your computer as in your previous post with the other file?
I would be very happy to see that, if possible. :D
  • Author
  • Localization

lorak, posted Mon Apr 03, 2023 3:02 am (76197)


I also have another stadium .rsf file model from Madden, this time for PS3. The file contains also its textures. For me, the structure of both rsf files -PS3 and PS Vita- look very similar. Just the actual data seems to be reversed. Maybe you can render it.
  • Author
  • Localization

h3x3r, posted Mon Apr 03, 2023 7:50 am (76200)


Yep this PS3 file is BigEndian with some minor changes in struct. VITA uses LittleEndian.
BTW do you want only export em? Because i have no intention to import them back... Too much complicated to be fun.

Also as i said before there is no equal count of vertex blocks / face blocks. So they must to be paired in some way which i undiscovered yet.
Here are some values which maybe indicates pairing and other things.
Image
  • Author
  • Localization

lorak, posted Mon Apr 03, 2023 2:46 pm (76204)


What do you mean by "do you want only to export them?", and importing it back?
Maybe export and import from PS3 to PS Vita and the other way around.
In any case, only export them is ok, I guess, :) .

Actually, I am starting with 3d models learning the basics.
  • Author
  • Localization

lorak, posted Tue Apr 04, 2023 4:26 am (76211)


By the way, did you look at the Orioles stadium model?
  • Author
  • Localization

beedy, posted Tue Apr 04, 2023 7:31 am (76212)


lorak wrote:
h3x3r wrote:
Hmm OK say name of the game and platform. PC/XBOX360/PS3?

Ahh sorry. I have extracted a lot of 3D models from Madden 13 PS Vita. The 3D models are in .rsf files, maybe similar to these Nascar 08/09 models. I attach the old Dolphins stadium as a sample file with all its textures.

I also attach another file from MLB 14 The Show (MLB14TS) also for PS Vita. It contains the 3D model from the Orioles stadium. I did not include the textures. In this game, the 3D models do not have a .rsf extension. Maybe you could also check it.

Many thanks!!


I have researched NHL 21 .mcd models which are similar to Madden 13 PS Vita (dolphin.rsf). I attached the Noesis script to view both (rsf, mcd). The script is not complete and I don't have time to develop this further but hopefully this helps. Quite a complex format :)

Image

fmt_nhl21_mcd.py.zip

fmt_madden_rsf.py.zip

  • Author
  • Localization

lorak, posted Tue Apr 04, 2023 2:49 pm (76218)


beedy wrote:
I have researched NHL 21 .mcd models which are similar to Madden 13 PS Vita (dolphin.rsf). I attached the Noesis script to view both (rsf, mcd). The script is not complete and I don't have time to develop this further but hopefully this helps. Quite a complex format :)

You did an amazing progress anyway. :o
Thank you!
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.