By the way could you please send me all the files you extracted from the dat file please? I also wrote the same thing as a private message so please help me.barti wrote:.mesh extraction is coming along nicely:
But I couldn't make anything out of the .psppck files. Maybe they're compressed - I tried aluigi's compression scanner and it didn't find anything interesting.
Join also our Discord channel! Click here.
Midnight Club 3 Dub Edition Research Thread
-
- ultra-n00b
- Posts: 3
- Joined: Sat Aug 05, 2017 5:57 am
- Been thanked: 1 time
Re: Midnight Club 3 Dub Edition Research Thread
Re: Midnight Club 3 Dub Edition Research Thread
Hi, signed up to this group because of this post. I was looking at trying to find the Vehicle codes rendering for Midnight Club 3 and a few other games. Reading this thread you all do some amazing work with the coding 0.0 real cool and awesome to see it can be done 

Re: Midnight Club 3 Dub Edition Research Thread
Nvm i got some news!
San Diego WIP!

And the Nissan Skyline too!

Here another one using solid materials as in none but a general view of the model

As for how i got these, is a Burnout 3 and revenge situation of ripping, what do i mean? Well, xbox og version, Model researcher and some Hex knowledge!, is quite hard to understand but it took me a while to figure out, also cuz a friend called Xenn helped me in this, without that guy i wouldn't be here with San Diego and other cars that i have in my list to do but not done yet
San Diego WIP!
And the Nissan Skyline too!
Here another one using solid materials as in none but a general view of the model
As for how i got these, is a Burnout 3 and revenge situation of ripping, what do i mean? Well, xbox og version, Model researcher and some Hex knowledge!, is quite hard to understand but it took me a while to figure out, also cuz a friend called Xenn helped me in this, without that guy i wouldn't be here with San Diego and other cars that i have in my list to do but not done yet
Always remember to hydrate!


Re: Midnight Club 3 Dub Edition Research Thread
I wanna add a note to this!, as for the maps, they use some weird type of mapping, is like GTA type of mapping, the coordinates of all the models are in the .xbck file (Xbox format i assume), but thing is idk how to like decode that or see what is the position alongside the rotation and general scaling, Another thing is about textures which.... using TextureFinder din't help cuz, thing is, the textures are up at the start but they have no actual names, so i needed to came up with some ideas in that or like names for em, also ofc, props are separated as in they are in another file
http://www.mediafire.com/file/255jb0r66 ... s.rar/file
Here a link of the files of san diego!
or well the .xbck files that is needed or what i think is enough to show, another thing to point out is that there is like multiple copys of san diego with ones having names like
sd_midnight_cloudy
sd_midnight_rainy
sd_midnight_clear
sd_dawn_clear
and more in the line
only tools would be texturefinder and Model researcher as the main prioritys
forgot to say this! this goes the same case with the cars!
http://www.mediafire.com/file/255jb0r66 ... s.rar/file
Here a link of the files of san diego!
or well the .xbck files that is needed or what i think is enough to show, another thing to point out is that there is like multiple copys of san diego with ones having names like
sd_midnight_cloudy
sd_midnight_rainy
sd_midnight_clear
sd_dawn_clear
and more in the line
only tools would be texturefinder and Model researcher as the main prioritys
forgot to say this! this goes the same case with the cars!
Always remember to hydrate!


-
- ultra-n00b
- Posts: 4
- Joined: Mon Dec 21, 2020 11:42 pm
- Has thanked: 1 time
- Been thanked: 3 times
Re: Midnight Club 3 Dub Edition Research Thread
Which file(s) and what parameters in modelResearcher did you use to get the model for the skyline? I want to extract some other cars, if it worked for the skyline then something similar may work for all the other vehicle models.Ness wrote: ↑Sat Dec 05, 2020 12:04 amNvm i got some news!
San Diego WIP!
And the Nissan Skyline too!
Here another one using solid materials as in none but a general view of the model
As for how i got these, is a Burnout 3 and revenge situation of ripping, what do i mean? Well, xbox og version, Model researcher and some Hex knowledge!, is quite hard to understand but it took me a while to figure out, also cuz a friend called Xenn helped me in this, without that guy i wouldn't be here with San Diego and other cars that i have in my list to do but not done yet
Re: Midnight Club 3 Dub Edition Research Thread
as for yer question, is kinda hard to say, but what the friend that told me about it that is called Xenn,showed me that is was like this, and there's a lot to cover!darkvaytor wrote: ↑Tue Dec 22, 2020 8:25 pmWhich file(s) and what parameters in modelResearcher did you use to get the model for the skyline? I want to extract some other cars, if it worked for the skyline then something similar may work for all the other vehicle models.Ness wrote: ↑Sat Dec 05, 2020 12:04 amNvm i got some news!
San Diego WIP!
And the Nissan Skyline too!
Here another one using solid materials as in none but a general view of the model
As for how i got these, is a Burnout 3 and revenge situation of ripping, what do i mean? Well, xbox og version, Model researcher and some Hex knowledge!, is quite hard to understand but it took me a while to figure out, also cuz a friend called Xenn helped me in this, without that guy i wouldn't be here with San Diego and other cars that i have in my list to do but not done yet
aside of Model Researcher you will want things like TextureFinder too for the textures in here, which, MC3 only uses like the Misc and some other extra materials around
and i will say, get a program like HxD or any hex viewer so you can search nodes and other things

every car will have this thing Called Shell as their base, if they have _h is cuz that means the highest LOD, and if you search that shell node again you will get the same thing some offsets later but with _m, that being the medium LOD, which you will go with the h LOD instead, note that those CD CD CD CD are important to remember cuz, after that row, the next offset down it? is where the vertices begin

See the last CD CD? after that last CD CD you get the vertices start, as for uvs you always add a +14, so the offset of vertices of 0x174210 becomes 0x174224
The Padding in UVs are 20, vertices is always 16, note that, to know when you reached the last vertex you will see and spot a dot in the middle of the viewer, which, that means ya reached the limit!, so if i put 2003 count in the vertices a dot will be shown in the center, and after that you gotta -1 that and make it 2002, same with uvs
as for faces?

Here, they are after some rows of code ahead, you might get MR just throwing errors but, is just a keep adding up a number till it shows up and works, in other words if you are at 0x181d10 then the last one alongside the 0 make it higher till it gets the correct start of the faces, this time being 0x181db0

First model being the base of the headlights!

here uvs!, note that for me is flipped so when it exports it will look like that in blender, autodesk, or any 3d program of yer choice

it should look like this, oh! also as for textures those are actually upside down too which, you can fix em with just flipping em vertically to make em look fine again, another thing being is... there is no clear way of how this game stops loading certain model to load other, what i mean is, next you will get is the headlights itself but, another part, in other words, they are separated in the set in materials so, every split you see? is a new set of the model being loaded in, so the headlights stopped at 280 count of faces, and if i make it up to 281

you will get a stretched uv, that means, a new set of polys are loading with their own material set there, and that means, next set that you get? is the new offset, so that will be 0x181fe0, remember, use this properly and take this as a type of how to do it
that's all i will say in this for now, if you want dm me and i tell you in somewhere like discord the whole process, imma leave some extra notes about the cars here now too which are, indentifying things like, bumpers, skirts, tailights, spoilers, hoods, etc
tk_tk_lod_tk_h = Trunk
tk_tk_lod_tk_h_h_decal_tk = Trunk badge (For things like the DUB logo you can buy in the game)
tk_splr_splr_stk_sky02_splr_stk_sky02 = Spoiler (depending of the car file you choose you will get a different name, like if it was idk the eclipse, instead of sky02 you would see something like splr_stk_eclipse)
Speaking of spoilers, after that, you will get a row of new spoilers, those being the custom spoilers you can buy in the game, and after you get the last spoiler ripped, you will get hoods, and so on
hd_hd_stk_sky02_hd = Hood
ss_ss_stk_sky02_ss_stk_sky02 = Skirts
bumf_bumf_stk_sky02_bumf_stk_sky02 = Front Bumper
bumr_bumr_stk_sky02_bumr = Rear Bumper
tl_tl_stk_sky02_tl_stk_sky02 = Tailights
lodgroup_hlod_hl_glass = Headlight Glass
lodgroup_hlod_windows = Windows
lodgroup_hlod_interior = The interior of the car
lodgroup_hlod_decals = Decals of the car
Note that, the sky02 is just the node and main name of what car is in the file, other cars will change that ofc
another note, things like, exhausts, rims, brakes, and more are in other files that do the same things to rip em, but they kinda use different paddings, again, possible to rip but it can be confusing
Always remember to hydrate!


-
- ultra-n00b
- Posts: 4
- Joined: Mon Dec 21, 2020 11:42 pm
- Has thanked: 1 time
- Been thanked: 3 times
Re: Midnight Club 3 Dub Edition Research Thread
Thanks to the info from Ness I was able to write a python script that can convert most of the .mesh.xbck files to obj files and does it without artifacts by figuring out what some parts of the headers mean. I'll get around to making a script for the base models of the cars eventually.
https://github.com/TahmidAlam-git/MC3_extraction_tools

Edit: Updated the git repo, there is now a .exe that will convert ALL models of a vehicle to obj files, meaning both the base model and customization parts.
Edit 2: now added support to extract models from the .xbck map files for San Diego
https://github.com/TahmidAlam-git/MC3_extraction_tools
Code: Select all
#!/usr/bin/python3
import os
import sys
import math
import struct
def convert(fname):
'''
example: vroot_bmpf_bone_bumpf_stk_350z_bumpf_stk_350z_geo.mesh.xbck
nissan 350z stock front bumper mesh, beginning header
header part 1
always useless starting 8 lines
00 9A 9E 82 16 00 00 00 01 00 00 00 B0 3F 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
header part 2
70 B6 5D 00 00 00 71 1C 09 00 00 00 20 9A 9E 82
^^ ^^ ^^ ^^
how many numbers there are at the end of this part of the header(before the multi CD padding)
This also means how many pieces the model is split up into (useful for faces)
44 9A 9E 82 00 00 00 00 1C 9B 9E 82 E0 D2 9E 82 <= always skip
17 00 05 00 05 00 14 00 18 00 01 00 13 00 05 00 <= 8 numbers here
19 00 CD CD CD CD CD CD CD CD CD CD CD CD CD CD <= 1 number here, 9 total
header part 3
09 00 00 00 <= value represents how many "sets" there are
sets are 24 bytes long, ends with CD CD
70 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
7C D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
88 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
94 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
A0 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
AC D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
B8 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
C4 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
D0 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00
00 00 00 00 01 00 CD CD
header part 4
last part of header always ends with 4 00, + CD padding if neeeded
01 00 00 00 30 9B 9E 02 00 00 00 00 CD CD CD CD CD CD CD CD
'''
hfile = open(fname, "rb")
l_len = 16
# header part 1
hfile.read(8 * l_len)
# header part 2
hfile.read(8)
pieces = int.from_bytes(hfile.read(4), byteorder='little')
hfile.read(4)
hfile.read(l_len + math.ceil(pieces / 8) * l_len)
# header part 3
sets_num = int.from_bytes(hfile.read(4), byteorder='little')
hfile.read(sets_num * 24)
# header part 4
hfile.read(12)
if hfile.tell() % 16 != 0:
hfile.read(16 - (hfile.tell() % 16))
vertices = []
faces = []
UVs = []
# TODO: find the amount of vertices from header
# get the vertices and UVs
while 1:
x = struct.unpack('f', hfile.read(4))[0]
y = struct.unpack('f', hfile.read(4))[0]
z = struct.unpack('f', hfile.read(4))[0]
if float(format(x, '.4f')) == float(format(y, '.4f')) == float(format(z, '.4f')) == 0.0000:
hfile.seek(-12, 1)
break
vertices.append((x, y, z))
hfile.read(8)
uva = struct.unpack('f', hfile.read(4))[0]
uvb = struct.unpack('f', hfile.read(4))[0]
UVs.append((uva, uvb))
'''
faces header example
the model is split up into multiple pieces
offset + amount
01 00 00 00 00 00 1E 00 00 00 00 00 : 000 + 030
01 00 00 00 1E 00 97 00 00 00 00 00 : 030 + 151
01 00 00 00 B5 00 68 00 00 00 00 00 : 181 + 104
01 00 00 00 1D 01 90 00 00 00 00 00 : 285 + 144
01 00 00 00 AD 01 13 00 00 00 00 00 : 429 + 019
01 00 00 00 C0 01 40 01 00 00 00 00 : 448 + 320
01 00 00 00 00 03 1B 00 00 00 00 00 : 768 + 027
01 00 00 00 1B 03 4E 01 00 00 00 00 : 795 + 334
01 00 00 00 69 04 91 00 00 00 00 00 : 1129 + 145
CD CD CD CD
'''
# Get the ranges for the pieces of the models
model_ranges = []
for x in range(pieces):
hfile.read(4)
model_ranges.append((int.from_bytes(hfile.read(2), byteorder='little'),
int.from_bytes(hfile.read(2), byteorder='little')))
hfile.read(4)
# Skip CDs
if hfile.tell() % 16 != 0:
hfile.read(16 - (hfile.tell() % 16))
# Get shorts of the faces
shorts = []
for x in range(model_ranges[-1][0] + model_ranges[-1][1]):
shorts.append(int.from_bytes(hfile.read(2), byteorder='little') + 1)
# Get the faces
for piece in model_ranges:
forward = True
for x in range(piece[0] + 2, piece[0] + piece[1]):
if forward:
faces.append((shorts[x - 2], shorts[x - 1], shorts[x - 0]))
forward = False
else:
faces.append((shorts[x], shorts[x - 1], shorts[x - 2]))
forward = True
hfile.close()
# Make obj file
if os.path.exists("./" + fname + '.obj'):
os.remove("./" + fname + '.obj')
obj = open(fname + '.obj', 'a')
for vert in vertices:
obj.write('v ' + str(vert[0]) + ' ' + str(vert[1]) + ' ' + str(vert[2]) + '\n')
obj.write('\n')
for uv in UVs:
obj.write('vt ' + str(uv[0]) + ' ' + str(uv[1]) + '\n')
obj.write('\n')
for f in faces:
obj.write('f ' + str(f[0]) + ' ' + str(f[1]) + ' ' + str(f[2]) + '\n')
obj.close()
if len(sys.argv) >= 2 and sys.argv[-1].endswith("mesh.xbck"):
convert(sys.argv[-1])
else:
print("invalid file")

Edit: Updated the git repo, there is now a .exe that will convert ALL models of a vehicle to obj files, meaning both the base model and customization parts.
Edit 2: now added support to extract models from the .xbck map files for San Diego
Re: Midnight Club 3 Dub Edition Research Thread
What a good day to be alive, note that same goes with others like Atlanta and Detroit too, just i din't check those yet myselfdarkvaytor wrote: ↑Sat Dec 26, 2020 12:28 amThanks to the info from Ness I was able to write a python script that can convert most of the .mesh.xbck files to obj files and does it without artifacts by figuring out what some parts of the headers mean. I'll get around to making a script for the base models of the cars eventually.
https://github.com/TahmidAlam-git/MC3_extraction_toolsCode: Select all
#!/usr/bin/python3 import os import sys import math import struct def convert(fname): ''' example: vroot_bmpf_bone_bumpf_stk_350z_bumpf_stk_350z_geo.mesh.xbck nissan 350z stock front bumper mesh, beginning header header part 1 always useless starting 8 lines 00 9A 9E 82 16 00 00 00 01 00 00 00 B0 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 header part 2 70 B6 5D 00 00 00 71 1C 09 00 00 00 20 9A 9E 82 ^^ ^^ ^^ ^^ how many numbers there are at the end of this part of the header(before the multi CD padding) This also means how many pieces the model is split up into (useful for faces) 44 9A 9E 82 00 00 00 00 1C 9B 9E 82 E0 D2 9E 82 <= always skip 17 00 05 00 05 00 14 00 18 00 01 00 13 00 05 00 <= 8 numbers here 19 00 CD CD CD CD CD CD CD CD CD CD CD CD CD CD <= 1 number here, 9 total header part 3 09 00 00 00 <= value represents how many "sets" there are sets are 24 bytes long, ends with CD CD 70 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD 7C D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD 88 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD 94 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD A0 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD AC D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD B8 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD C4 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD D0 D2 9E 82 C1 5E 80 00 59 00 1C 00 02 4A 04 00 00 00 00 00 01 00 CD CD header part 4 last part of header always ends with 4 00, + CD padding if neeeded 01 00 00 00 30 9B 9E 02 00 00 00 00 CD CD CD CD CD CD CD CD ''' hfile = open(fname, "rb") l_len = 16 # header part 1 hfile.read(8 * l_len) # header part 2 hfile.read(8) pieces = int.from_bytes(hfile.read(4), byteorder='little') hfile.read(4) hfile.read(l_len + math.ceil(pieces / 8) * l_len) # header part 3 sets_num = int.from_bytes(hfile.read(4), byteorder='little') hfile.read(sets_num * 24) # header part 4 hfile.read(12) if hfile.tell() % 16 != 0: hfile.read(16 - (hfile.tell() % 16)) vertices = [] faces = [] UVs = [] # TODO: find the amount of vertices from header # get the vertices and UVs while 1: x = struct.unpack('f', hfile.read(4))[0] y = struct.unpack('f', hfile.read(4))[0] z = struct.unpack('f', hfile.read(4))[0] if float(format(x, '.4f')) == float(format(y, '.4f')) == float(format(z, '.4f')) == 0.0000: hfile.seek(-12, 1) break vertices.append((x, y, z)) hfile.read(8) uva = struct.unpack('f', hfile.read(4))[0] uvb = struct.unpack('f', hfile.read(4))[0] UVs.append((uva, uvb)) ''' faces header example the model is split up into multiple pieces offset + amount 01 00 00 00 00 00 1E 00 00 00 00 00 : 000 + 030 01 00 00 00 1E 00 97 00 00 00 00 00 : 030 + 151 01 00 00 00 B5 00 68 00 00 00 00 00 : 181 + 104 01 00 00 00 1D 01 90 00 00 00 00 00 : 285 + 144 01 00 00 00 AD 01 13 00 00 00 00 00 : 429 + 019 01 00 00 00 C0 01 40 01 00 00 00 00 : 448 + 320 01 00 00 00 00 03 1B 00 00 00 00 00 : 768 + 027 01 00 00 00 1B 03 4E 01 00 00 00 00 : 795 + 334 01 00 00 00 69 04 91 00 00 00 00 00 : 1129 + 145 CD CD CD CD ''' # Get the ranges for the pieces of the models model_ranges = [] for x in range(pieces): hfile.read(4) model_ranges.append((int.from_bytes(hfile.read(2), byteorder='little'), int.from_bytes(hfile.read(2), byteorder='little'))) hfile.read(4) # Skip CDs if hfile.tell() % 16 != 0: hfile.read(16 - (hfile.tell() % 16)) # Get shorts of the faces shorts = [] for x in range(model_ranges[-1][0] + model_ranges[-1][1]): shorts.append(int.from_bytes(hfile.read(2), byteorder='little') + 1) # Get the faces for piece in model_ranges: forward = True for x in range(piece[0] + 2, piece[0] + piece[1]): if forward: faces.append((shorts[x - 2], shorts[x - 1], shorts[x - 0])) forward = False else: faces.append((shorts[x], shorts[x - 1], shorts[x - 2])) forward = True hfile.close() # Make obj file if os.path.exists("./" + fname + '.obj'): os.remove("./" + fname + '.obj') obj = open(fname + '.obj', 'a') for vert in vertices: obj.write('v ' + str(vert[0]) + ' ' + str(vert[1]) + ' ' + str(vert[2]) + '\n') obj.write('\n') for uv in UVs: obj.write('vt ' + str(uv[0]) + ' ' + str(uv[1]) + '\n') obj.write('\n') for f in faces: obj.write('f ' + str(f[0]) + ' ' + str(f[1]) + ' ' + str(f[2]) + '\n') obj.close() if len(sys.argv) >= 2 and sys.argv[-1].endswith("mesh.xbck"): convert(sys.argv[-1]) else: print("invalid file")
Edit: Updated the git repo, there is now a .exe that will convert ALL models of a vehicle to obj files, meaning both the base model and customization parts.
Edit 2: now added support to extract models from the .xbck map files for San Diego
as for the maps too doe, i do know or guess that, between the vertices and uvs with the faces there should be some positionating code between it, cuz, i noticed that some use like a long set of CD CD there, which that means like a duplicate is found and also as a type of way to say positionate it here and rotations and scaling and all of that, issue is, idk what is what
Always remember to hydrate!


-
- ultra-n00b
- Posts: 4
- Joined: Mon Dec 21, 2020 11:42 pm
- Has thanked: 1 time
- Been thanked: 3 times
Re: Midnight Club 3 Dub Edition Research Thread
Yeah I've noticed that as well, I'm not sure yet because I haven't tested it but this is what I think so farNess wrote: ↑Fri Jan 01, 2021 10:32 am
What a good day to be alive, note that same goes with others like Atlanta and Detroit too, just i din't check those yet myself
as for the maps too doe, i do know or guess that, between the vertices and uvs with the faces there should be some positionating code between it, cuz, i noticed that some use like a long set of CD CD there, which that means like a duplicate is found and also as a type of way to say positionate it here and rotations and scaling and all of that, issue is, idk what is what
Code: Select all
header
01 00 00 00 C8 D4 D6 81
^^^^^^^^^^^
not sure what is means yet
header
01 00 00 00 E0 D4 D6 01 00 00 00 00 CD CD CD CD CD CD CD CD CD CD CD CD
^^^^^ ^^^^^ ^^^^^
|z pos|x pos|y pos|
For the below, each ###FF is "rotation" for each vertex in the model for (x,y,z), I believe this is the case because the number of ###FF is the same as the number of vertices.
15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF
15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF
15 12 10 FF 15 12 10 FF E8 EB FF FF D9 F1 FF FF
A5 B7 C1 FF 2E 29 25 FF 5E 64 66 FF 37 39 39 FF
2E 29 25 FF DF E6 FF FF 63 70 75 FF D5 F1 FF FF
Re: Midnight Club 3 Dub Edition Research Thread
interesting, by far this might help in rebuilding the map or like, if i think about like fixing the positions, then this might come in handy, but tbh, i only need mostly the scaling in this situation cuz, i know in certain areas parts of the road change scaling or like are let's say 1.050 of scaling in the Y section, ya know what i mean, idk if GTA ever did that or like ever did change of scalings, considering that this game is just kinda like GTA in terms of how they make their maps, but they don't use an IDE and IPL thing, but seems like that is already built inside the xbck of the map, just that we gotta figure out how to decode this stuff, tbh if is possible, i will start ripping Or Tokyo Or detroit or atlanta and i will try that myself when ya get the Postionating, rotation and Scaling ripped, another thing i do wonder doe, if is possible to figure out the real names of the textures inside the xbck?, also cuz those begin first always, but, they don't have any names when i see HxD, maybe they do the same thing of the Postions rotations and scaling but in a different way, so far i just decided to call some things things like from burnout or like, if is a grass texture, i will call it SD_Grass1, as in SanDiego_Grass and the number being the different texture of the grass that i will getdarkvaytor wrote: ↑Fri Jan 01, 2021 9:43 pmYeah I've noticed that as well, I'm not sure yet because I haven't tested it but this is what I think so farNess wrote: ↑Fri Jan 01, 2021 10:32 am
What a good day to be alive, note that same goes with others like Atlanta and Detroit too, just i din't check those yet myself
as for the maps too doe, i do know or guess that, between the vertices and uvs with the faces there should be some positionating code between it, cuz, i noticed that some use like a long set of CD CD there, which that means like a duplicate is found and also as a type of way to say positionate it here and rotations and scaling and all of that, issue is, idk what is what
Code: Select all
header 01 00 00 00 C8 D4 D6 81 ^^^^^^^^^^^ not sure what is means yet header 01 00 00 00 E0 D4 D6 01 00 00 00 00 CD CD CD CD CD CD CD CD CD CD CD CD ^^^^^ ^^^^^ ^^^^^ |z pos|x pos|y pos| For the below, each ###FF is "rotation" for each vertex in the model for (x,y,z), I believe this is the case because the number of ###FF is the same as the number of vertices. 15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF 15 12 10 FF E8 EB FF FF D9 F1 FF FF A5 B7 C1 FF 2E 29 25 FF 5E 64 66 FF 37 39 39 FF 2E 29 25 FF DF E6 FF FF 63 70 75 FF D5 F1 FF FF
i still wish i knew how to decode all of that or like understand what things mean what, at least getting to model rip is one step closer to getting all of this decrypted and in our hands
Always remember to hydrate!


-
- ultra-n00b
- Posts: 3
- Joined: Sat Aug 05, 2017 5:57 am
- Been thanked: 1 time
Re: Midnight Club 3 Dub Edition Research Thread
Apparently, upon downloading the Executable, it says it's a Trojan Virus. Is it really a virus?
-
- ultra-n00b
- Posts: 4
- Joined: Mon Dec 21, 2020 11:42 pm
- Has thanked: 1 time
- Been thanked: 3 times
Re: Midnight Club 3 Dub Edition Research Thread
It probably says that because it's an unsigned executable, not a trojan virus. Also, download the latest version, the last version I had up actually ended up breaking the program.blenderbach wrote: ↑Sat Jan 02, 2021 5:19 pmApparently, upon downloading the Executable, it says it's a Trojan Virus. Is it really a virus?