online casino malaysia online casino singapore[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/vendor/autoload.php:3)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/vendor/autoload.php:3)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/vendor/autoload.php:3)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5312: Cannot modify header information - headers already sent by (output started at [ROOT]/vendor/autoload.php:3)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5312: Cannot modify header information - headers already sent by (output started at [ROOT]/vendor/autoload.php:3)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5312: Cannot modify header information - headers already sent by (output started at [ROOT]/vendor/autoload.php:3)
Nascar 08/09 3D models - ZenHAX

ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax
It is currently Tue Jun 06, 2023 6:04 am

All times are UTC




Post new topic  Reply to topic  [ 17 posts ] 
Author Message
 Post subject: Nascar 08/09 3D models
PostPosted: Fri Jun 21, 2019 11:52 am 

Joined: Tue Jun 18, 2019 6:00 pm
Posts: 1
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


Attachments:
moeg.rar [103.74 KiB]
Downloaded 354 times
screen.png [379.9 KiB]
Not downloaded yet
Top
   
PostPosted: Fri Jun 11, 2021 9:18 pm 

Joined: Tue Jan 30, 2018 5:43 am
Posts: 3
Gonna give this a big ol bump as I'm currently working on the same thing.


Top
   
PostPosted: Tue Oct 12, 2021 12:35 pm 

Joined: Tue Oct 12, 2021 12:33 pm
Posts: 1
Bumping this, but also wanted to mention that there is a thread about this on xentax: https://forum.xentax.com/viewtopic.php?t=6430


Top
   
PostPosted: Tue Oct 12, 2021 2:20 pm 
User avatar

Joined: Tue Jul 24, 2018 8:52 am
Posts: 659
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


Top
   
PostPosted: Tue Jan 10, 2023 1:20 am 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
Any progress with this?


Top
   
PostPosted: Sun Mar 19, 2023 12:09 pm 

Joined: Wed Jun 01, 2016 5:53 pm
Posts: 182
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?


Top
   
PostPosted: Tue Mar 21, 2023 5:41 pm 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
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.


Last edited by lorak on Sun Apr 09, 2023 7:51 pm, edited 1 time in total.

Top
   
PostPosted: Wed Mar 22, 2023 12:13 pm 

Joined: Wed Jun 01, 2016 5:53 pm
Posts: 182
lorak wrote:
I do have 3D models form another game.

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


Top
   
PostPosted: Fri Mar 31, 2023 6:24 pm 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
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!!


Attachments:
Orioles Stadium.zip [80.4 KiB]
Downloaded 89 times
Dolphins Stadium.zip [1.68 MiB]
Downloaded 75 times
Top
   
PostPosted: Sun Apr 02, 2023 11:42 am 

Joined: Wed Jun 01, 2016 5:53 pm
Posts: 182
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]<optimize=false>;
};

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]<optimize=false>;
    }STRMData[MRTSCount]<optimize=false>;
};

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]<optimize=false>;
};

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]<optimize=false>;
};

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]<optimize=false>;
};

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]<optimize=false>;
};

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]<optimize=false>;
};

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;


Top
   
PostPosted: Sun Apr 02, 2023 2:58 pm 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
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


Top
   
PostPosted: Mon Apr 03, 2023 3:02 am 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
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.


Attachments:
DOLPHINS-PS3.zip [4.96 MiB]
Downloaded 66 times


Last edited by lorak on Mon Apr 03, 2023 2:16 pm, edited 1 time in total.
Top
   
PostPosted: Mon Apr 03, 2023 7:50 am 

Joined: Wed Jun 01, 2016 5:53 pm
Posts: 182
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


Top
   
PostPosted: Mon Apr 03, 2023 2:46 pm 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
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.


Top
   
PostPosted: Tue Apr 04, 2023 4:26 am 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
By the way, did you look at the Orioles stadium model?


Top
   
PostPosted: Tue Apr 04, 2023 7:31 am 

Joined: Sat Aug 26, 2017 8:09 am
Posts: 82
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


Attachments:
fmt_nhl21_mcd.py.zip [2.5 KiB]
Downloaded 50 times
fmt_madden_rsf.py.zip [2.59 KiB]
Downloaded 50 times
Top
   
PostPosted: Tue Apr 04, 2023 2:49 pm 

Joined: Wed Aug 31, 2016 6:12 pm
Posts: 46
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!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 17 posts ] 

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited