Spoiler tag

Thursday, February 3, 2022

JSRF ModTool 2.7 - model importing: fixed material groups corruption when adding/removing materials

Download the JSRF ModTool 2.7 here

Hey there, I have still been working on the JSRF tool, mostly reverse engineering and experimenting recompiling levels(aka 'Stage') data, such features are not accessible in the tool's interface yet, if you're a developer and want to try it, it's all in the code.

While we're close to being able to create custom levels, we're stuck on figuring out part of the level collision 3D mesh data.

I have managed to recompile a custom visual mesh for the level, as well as part of the collision mesh data, but since part of the collision mesh is still unknown/not understood and has to be calculated, right now we just fall/go through the collision mesh.

In the following video, it's a new compiled visual mesh, while maintaining the original Garage's collision meshes:

This post is also about the JSRF Tool 2.7, where I have fixed MDLB model importing, before, adding or removing material groups in the model(MDLB) importing interface, would corrupt the materials groups, giving wrong materials to the model.

It's finally fixed, if you're a developer and have been using/modifying the source yourself, I recommend checking out the GitHub repository where I might update the code, while I don't make blog posts about it: https://github.com/neodoso/JSRF_ModTool, otherwise here's the tool with the fixes:

Download the JSRF ModTool 2.7 here


  1. I'm so happy I come back to this blog every now and then! Fantastic update, mate! I guess the tricky bit with the collision is whether they used some tricky spatial partitioning like BSP trees or Octrees - a subject that always fascinated me. It's amazing seeing what techniques they used to pull some things off like those shadow volumes you mentioned in another post.

    Keep up the top job mate!

    1. Thanks for your kind comments :D it's always nice to know people are still checking out and enjoying the blog/content.

      I reached out to other people to help on figuring out the level collision data(by reversing the game executable) and... we're now one step closer to custom levels, BUT, I don't want to get ahead of myself, as while we made progress there could be another new brick wall ahead as last time, so we'll see.

      I reached out to Gurten(same person who made the fantastic Blender character model/animation importer) and he reversed the collision data through ASM reversing.

      Turns out the bit of collision data that we couldn't understand before is in fact a bounding box for each triangle of the collision mesh, if properly calculated and properly compiled, we might finally get working collision, but again, let's not get ahead of ourselves, we'll see in the next few days as I re-code the level compiler and test/debug.


  2. This comment has been removed by the author.

  3. Please as well ped selector. We have a lot of streets are unable to go in, because sega block it and we want new cities.