Jump to content

Recommended Posts

Posted

Hello,

I'm currently in the process of documenting the 3DF format of Moto Racer for Windows, using 3D Model Researcher.

Frist step, all Moto Racer files are packed in BFK files, and can be extracted using QuickBMS and the corresponding script.

Second step, all 3DF files are the 3D models, and are organized the following way:

typedef struct vec3_t vec3_t;
struct vec3_t {
  float x;
  float y;
  float z;
};

 

uint16_t unknown1
uint16_t number_of_vertices
vec3_t vertices[number_of_vertices];
??? unknown2[???]; // list of faces?

 

For now I'm unable to properly render the faces, despite all of my tweaks. If anyone more experienced than me want to continue from where I left, and report its progress here, please do so.

A demo of Moto Racer for Windows is available on the Internet Archive.

Best regards.

2023-11-19-174704_1920x1200_scrot.png

2023-11-19-174728_1920x1200_scrot.png

  • 1 year later...
Posted (edited)

hi

i have reversed most of the game files, including 3d models files.

image.png.ddae448aa4f75d6193b37d413d298d40.png

these are my findings on 3df and map files:

3DF file

field size in bytes note
header    
magic 2 must be = 1
vertex list    
vertex_count 2 number of vertices
vertex 12*vertex_count 3 floats
face   repeated until face_vertices = 0
face_vertices 2 number of vertices per face (3 or 4)
unknown 2  
vertices_index 2*face_vertices indices on the vertex list

 

MAP file

field size in bytes note
MAGIC 2 0x8001 (01 80)
unknown 510 all zeroes
face block 128*faces in 3DF see face block format 
     
face block format    
UV per face 2 number of UV coords per face
     
when < 3   no UV, color is provided
color 2 RGB555
unknown 124  
     
when 3    
unknown 32  
U1 4 integers 0..255 
U2 4  
U3 4  
dummy 4  
V1 4  
V2 4  
V3 4  
dummy 4  
unknown 62  
     
when 4    
unknown 32  
U1 4 integers 0..255 
U2 4  
U3 4  
U4 4  
V1 4  
V2 4  
V3 4  
V4 4  
unknown 62  

I've also dumped SKL and ROT files entirely, presumably skeleton and poses, but I don't have enough experience to know what to do with these.

I am attaching some dumper tools you can use on the game demo in the first post; i might have misnamed or misinterpreted some values; if anyone wants to give some hints it would be appreciated.

 

 

rot_dumper.py skldumper.py

Edited by theone_32
  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...