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.
Zero Tolerance for Disrespect

Sébastien Loeb Rally EVO .BIN files

Featured Replies

Hi, I tried import the .bin files from this game with a script but always got an error, exist another script to convert to a useful format?

 

Captura.PNG

CAR553.rar

  • 1 month later...
  • Author

I searched in xentax archive, but i can´t find any script or something for extract models or textures.

 

  • Supporter

At least I found it mentioned:

Quote

hi is Chipi here ? wondering if we can have a updated milestone importer for Sebastien Loeb Evo Rally?

So if you found nothing there's two options at least:

use hex2obj as shown in my previous post

or, the harder way:

try to convert the mcr script from your opening post to something that works outside of 3dsmax.

  • 4 months later...
  • Author

There´s a tutorial for Hex2obj for easy understanding? (I´m not familiarized with binary stuff).

  • Supporter

There's a tut button in the app but it's a long go if you start from scratch.

(Btw, this .bin format is not the best to start with as a beginner.)

  • 11 months later...
  • Localization

Phew, first of all, i'm still impressed how Chipicao managed this Format back then, shoutout to him

i've went through all games i could find that are using the "GEM Graphics Engine Milestone" and tried to restructure some of the skips and guesses in Chipicao's max script \ tried to write a newer version - failsave for each game

the reason why the script does crash on sebastien loeb rally is because they rebuilt these bin files roughly 3 times, sadly there is no real identifier to tell which game the bin file belongs to

gen 1 (SBK09, SBK10, Superstars V8, Superstars Next Challenge, WRC1) - which had their vertex buffer stored one by one (vert - normals - uvs - index - etc)

gen 2 (SBK11, SBK Generations, MUD, MXGP 1, MotoGP13, WRC2, WRC3, WRC4, WRC Powerslide) - started to combine the vertexbuffers on stride with multiple fvfcode / types

these games also came with a seperate *.RES file which sometimes stored either just strings, or packed (uncompressed) DDS textures, Chipicaos script was able to extract them so i've moved that chunk over

gen 3 (MotoGP14, MotoGP15, MotoGP16(ValentinoRossi), MotoGP17, Ducati 90th Anniversary, MXGP 2, RIDE 1, RIDE 2, Sebastien Loeb Rally EVO) - dropped the .RES files, but included the stringlist to the .BIN file packed under a new header hash 9241a9d5 CLSID_DIRECTSTREAMINGOBJECT

 

these GEM files are split into a ton of chunks, starting usually with 5b2a 5b42 5b30 - then another 2byte type - then the Hash which kind it is - i've found one MotoGP13.PDB file which named some of these hashes (yet i cant tell which algo it is using) - each game also varies between having a hash bc258a42 CLSID_NAMEDOBJECT in between blocks, it really is chaotic (yet structurized...)

i havent looked much into the track files yet, if someone else wants to continue attempting this, feel free to go through this chunky and messy code 😅

 

there is a lot of offset jumping required - so it first starts with texture count, material count, meshcount and node/bone count - the meshchunk jumps back and reads the material block at offset x etc. - the bones offset jumps are just mental

i've ignored the texture and material setup for now and focused on getting at least the meshes and bones

however, this thing is so chaotic, i got lost at jumping down to the indexbuffer which then skips the unneeded vertices, thats why it will load the entire vertexbuffer per object, so as for now, use the removeunusedvertices.ms script in there 😓

the bone orientation is different to the meshes - which could be fixed in the script - or just rotate the rootbone to fit the mesh orientation - since boneweights are yet not applied aswell (loading time on these vertexbuffer is long enough already) - some of these bones or dummies are required to place the meshes in the correct position / orientation

 

long story short, these are 24 standalone max scripts to import these files, a script to get rid of dead vertices and a color map for hexworkshop to spot these pointers

 

have fun

Screenshot 2026-02-20 150437.png

Milestone_Gem.7z

Edited by Guki

Create an account or sign in to comment

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.