Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Jet Set Radio HD Level Model File

Post questions about game models here, or help out others!
egregiousguy
beginner
Posts: 26
Joined: Mon Oct 29, 2018 6:15 am
Been thanked: 17 times

Re: Jet Set Radio HD Level Model File

Post by egregiousguy »

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.
Last edited by egregiousguy on Thu Jun 02, 2022 5:43 pm, edited 1 time in total.
Current projects:
The House of the Dead 1-4 (Model/Map extraction)
Rent-A-Hero No. 1 (Translation/Model updates)
Jet Set Radio (Model/Map extraction)
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: Jet Set Radio HD Level Model File

Post by shakotay2 »

egregiousguy wrote: Thu Jun 02, 2022 2:25 am Totally forgot all about this thread as I'm rarely active on Xentax.
Thanks for your answer!
What about the Noesis script you used here:
egregiousguy wrote: Mon Mar 22, 2021 9:34 pm
?

btw: I just realized that Noesis loads .nj files ("NJCM" signature inside) from Grandia 2. Hah, great! And I'm 10 years too late, haha...
MrAdults wrote: Tue Mar 13, 2012 7:28 pm
.............................................
Another 4 years earlier:
nj chunks.png
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
egregiousguy
beginner
Posts: 26
Joined: Mon Oct 29, 2018 6:15 am
Been thanked: 17 times

Re: Jet Set Radio HD Level Model File

Post by egregiousguy »

Right, Noesis supports .nj/.pvr files. The issue is that JSR combines all the data into a single .bin file without any NJCM/NJTL/NMDM... header ID's, therefore as a part of the restructuring process, I had to add those header IDs (with the proper info) to be able to feed it into Noesis.
Current projects:
The House of the Dead 1-4 (Model/Map extraction)
Rent-A-Hero No. 1 (Translation/Model updates)
Jet Set Radio (Model/Map extraction)
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: Jet Set Radio HD Level Model File

Post by shakotay2 »

Still fiddling around with face indices (while uvs and vertices are no problem).

For EREKIDAT.bin I got this:

#3
f 208 209 203
#4
f 190 191 175 176
#3
f 177 178 189
# new group 5 at 1de
f 189 192 178 193 194
#3
f 195 196 197
#3
f 208 207 209
#4
f 191 190 193 192
#4
f 203 199 190 192
# new group 6 at 25a
f 205 189 204 177 210 175
#3
f 189 201 205
#3
f 198 204 205
#19
f 208 210 211 200 208 204 207 198 209 205 203 201 206 189 203 202 199 189 192
#3
f 210 204 200
#4
f 178 176 194 191
# new group 5 at 34a
f 210 175 208 190 203
#8
f 193 197 191 196 194 195 193 197

Not sure whether they really use those long polygons, #19 etc.
Also tried FI = 255 - FI at no avail.

edit: getting closer; tried an nj file:
.
nj_got_FIs.jpg
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
egregiousguy
beginner
Posts: 26
Joined: Mon Oct 29, 2018 6:15 am
Been thanked: 17 times

Re: Jet Set Radio HD Level Model File

Post by egregiousguy »

Here's how face indices work for ninja. On my snippet from erekidat.bin, you can see I've highlighted a few flags. I won't go into too much detail but the blue is material, yellow is tiny chunk (which contains info for the external texture number for that mesh), and green is strip chunk. The thing to look out for in strip chunk is the first byte. Here we have two types, 0x40 (64) and 0x41 (65). 0x40 uses triangles for the faces while 0x41 uses tri strips.

I've highlighted a few more things on the right side (as well as separated the groups). The dark orange (2 bytes) is the number of groups and the light orange gives the number of indices in that group. A negative number of groups means that the group is back faced. As you can see, everything is sequential and really hard to follow until you split up the groups correctly, then it will all make sense.

Hope that helps.
You do not have the required permissions to view the files attached to this post.
Current projects:
The House of the Dead 1-4 (Model/Map extraction)
Rent-A-Hero No. 1 (Translation/Model updates)
Jet Set Radio (Model/Map extraction)
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: Jet Set Radio HD Level Model File

Post by shakotay2 »

egregiousguy wrote: Mon Jun 06, 2022 7:11 pm[...]As you can see, everything is sequential and really hard to follow until you split up the groups correctly, then it will all make sense.

Hope that helps.
Thank you very much! :) (Yeah, I'm a hard follower. :D )

First index of a 3 DWords group each: CF, D0, CA
BD, BE, AE, AF

So the resulting first 7 face indices are (+1 for wavefront obj indices)
#3
f 208 209 203
#4
f 190 191 175 176

as in my previous post? Which I created using the infos from JSS442 (Dec 15, 2020):
JSS442 wrote: Tue Dec 15, 2020 3:02 pm
My main problem still unsolved:
the first vertex block of EREKIDAT.bin is like so:
# 1. offset 0x446, count (Word) 46 (46 vertices), FVFsize= 24
v 0.076473 -1.186337 0.590292
v -0.379762 -1.024303 0.715383
v -0.711994 -0.823996 0.767796
v -0.218620 -0.985356 0.698208
v -0.358527 -0.842449 0.923282
v -0.519337 -0.540833 1.019215
v -0.659721 -1.221985 1.069119
[...]

so I'd need face indices in the range of 0..45 for the first sub mesh which I can't seem to find.

(Next sub meshes have 34, 14, 46, 24, 32, 14 vertices and so on.)

edit: well, I've 53 vertex blocks and 77 face index blocks??
Need to check this.
----------------------------------

For the last bigger vertexblock, 69 vertices:
last_bigger_vertexblock.jpg
I get these face indices; don't seem to fit, too.

EREKIDAT.BIN
#7, 0x1f10c
f 45 44 48 52 47 54 56
# new group 5 at 1f138
f 49 45 46 44 43
#7, 0x1f158
f 58 51 50 57 49 43 46
#3, 0x1f184
f 54 53 51
# new group 5 at 1f198
f 51 55 53 57 52
#3, 0x1f1b8
f 51 55 57
#3, 0x1f1cc
f 52 53 54
#6, 0x1f1e0
f 58 50 47 49 48 45
#3, 0x1f206
f 47 56 58
#9, 0x1f21a
f 63 65 66 68 64 60 62 59 61
# new group 5 at 1f252
f 65 68 67 60 59
# new group 5 at 1f272
f 66 63 64 61 62

Strange thing is that there's many more to follow:

#7, 0x1f292
f 73 69 74 78 76 79 70
# new group 18 at 1f2be
f 71 84 83 80 77 84 72 71 70 82 79 81 78 72 69 70 73 75
#6, 0x1f32c
f 71 82 83 81 77 72
#3, 0x1f352
f 34 85 33
#4, 0x1f366
f 31 41 87 33
#4, 0x1f380
f 86 85 32 34
#4, 0x1f39a
f 57 52 43 44
#4, 0x1f3b4
f 70 75 76 74
# new group 6 at 1f3ce
f 92 93 91 89 90 88
# new group 6 at 1f3f4
f 98 99 97 95 96 94
#3, 0x1f41a
f 98 96 97
#3, 0x1f42e
f 92 90 91
#12, 0x1f442
f 89 95 93 94 92 96 90 98 88 99 89 95
# new group 6 at 1f48c
f 104 105 103 101 102 100
# new group 6 at 1f4b2
f 110 111 109 107 108 106
#3, 0x1f4d8
f 110 108 109
#3, 0x1f4ec
f 104 102 103
#12, 0x1f500
f 101 107 105 106 104 108 102 110 100 111 101 107
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
SNRB
ultra-n00b
Posts: 1
Joined: Thu Dec 17, 2020 5:56 pm

Re: Jet Set Radio HD Level Model File

Post by SNRB »

Any news on the complete character ripping tutorial (or release of the models)?

Please, this is literally the only topic in the whole internet where someone managed to rip JSR models
Post Reply