Re: Jet Set Radio HD Level Model File
Posted: Thu Jun 02, 2022 2:25 am
Totally forgot all about this thread as I'm rarely active on Xentax.
I'll write up a how-to once I get some spare time. In the meantime, here's some info about the format.
JSR uses a variant of the SEGA Ninja model format. By variant, I mean that the structure is aligned in reverse with the binary file heavily reliant on pointer values to locate all the model parts. Headers are stored at the end of the model data with the hierarchy of sibling/child models going from end to beginning. Players are stored in player.afs and enemies in enemy.afs in complementing pairs of _dat.bin and _txr.bin. In order to get textures working, you'll have to create a NJTL chunk to reference the extracted pvr textures from _txr.bin.
Stages are a bit more complicated and tougher to piece together as all the buildings are in separate pieces and a lot of the data relating to texture references and position/rotation info is stored separately in the 1st_read.bin file. While I've already successfully extracted several maps, it's far too complicated for me to explain so I won't be covering that.
With that being said, once you understand the basic structure of the ninja format then everything else will make sense once I complete the write up. If you're already familiar with the ninja model format then this should be a piece of cake.
I'll write up a how-to once I get some spare time. In the meantime, here's some info about the format.
JSR uses a variant of the SEGA Ninja model format. By variant, I mean that the structure is aligned in reverse with the binary file heavily reliant on pointer values to locate all the model parts. Headers are stored at the end of the model data with the hierarchy of sibling/child models going from end to beginning. Players are stored in player.afs and enemies in enemy.afs in complementing pairs of _dat.bin and _txr.bin. In order to get textures working, you'll have to create a NJTL chunk to reference the extracted pvr textures from _txr.bin.
Stages are a bit more complicated and tougher to piece together as all the buildings are in separate pieces and a lot of the data relating to texture references and position/rotation info is stored separately in the 1st_read.bin file. While I've already successfully extracted several maps, it's far too complicated for me to explain so I won't be covering that.
With that being said, once you understand the basic structure of the ninja format then everything else will make sense once I complete the write up. If you're already familiar with the ninja model format then this should be a piece of cake.