Join also our Discord channel! Click here.

Forza Motorsport Resource Extraction (.carbin)

Post questions about game models here, or help out others!
User avatar
Andrakann
ultra-veteran
ultra-veteran
Posts: 384
Joined: Wed Jul 06, 2011 8:47 am
Location: Russia
Has thanked: 722 times
Been thanked: 186 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Andrakann » Fri Jan 27, 2017 8:44 am

shakotay2 wrote:
Andrakann wrote:LOD0 have 3 submeshes,
so taillightL_a, taillightL_a_000 and taillightL_a_001? How'd you know which groups build one LOD? (In the end it's trial 'n error to decide whether a _a_xxx group belongs to the previous or the next LOD, isn't it?)
Make_H2O doesn't read mesh names, so it's only way to detect LODS is visually. But version "gc" separated lods correctly for that part. Personally, I don't care about lower lods, because I not convert cars to other games, just collect models.
OMG, I don't think, that I'll have the time to get that far with proper groups, since as you may know the auto grouping is done by brute force more or less. :D
It's about badges, they paste them over main livery, I have no idea how it's done :)
well, applying the textures is even harder than expected (engineBay_a_AO for FOR_RangerT16-engine with forced grouping each 2500 face indices), Looks like it's the wrong uv map:
I think it's better to start from simplier ones, like bumperF_a_AO or fenders_a_AO.

About splitting inside lods, i think it's done by materials, and previous Forza extractors also adds material names to the end of mesh names:
Image

So, lets continue digging of modelbin format:
Patient is taillightL_a from AST_DB11_17, 69 objects inside Grub container.
Skel data section is identical to one from body_a part, same for Mrph - both is useless at this stage.
Then we have 6 MatI entries, names are:

Code: Select all

backfacingGeo
chrome
lights_smooth_CH1_custom_br
lights_smooth_CH1_custom_br_a
lights_smooth_CH1_custom_tailbr
lights_smooth_CH1_custom_tailbr_a
Materials looks pretty hard to convert, lots of small textures inside and links to shaders, which have additional textures, not so small, like mud and snow.

Code: Select all

MatI 01 backfacingGeo
	Media\cars\_library\materials\SpecificUse\backfacingGeo.materialbin
		Media\_library\shaders\simplediffuse\simplediffuse.shaderbin

MatI 02 chrome
	Media\cars\_library\materials\exterior_metal\chrome.materialbin
		Media\_library\shaders\ext_simplemetal\ext_simplemetal.shaderbin

MatI 03 lights_smooth_CH1_custom_br
	Media\cars\_library\materials\radiosity\rad_ch1_metal.materialbin
		Media\_library\shaders\rad_ch1_diffnorm\rad_ch1_diffnorm.shaderbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_diff_9fe16d5d-c41d-4be6-a49d-4b93d63527b9.swatchbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
	Media\cars\_library\textures\geometricpatterns\swatches\ridges_011_nrml_2dcf25cd-3b36-4d8c-bd68-d1d2b4179705.swatchbin

MatI 04 lights_smooth_CH1_custom_br_a
	Media\cars\_library\materials\exterior_lights\lights_ch1bump_ch1lmask.materialbin
		Media\_library\shaders\ext_simplemetal\ext_simplemetal.shaderbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_lite_562303fa-94b9-44d0-aa78-7cdd8845774c.swatchbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_glos_49f9fdc2-e399-4f2a-8ed0-9f2828075429.swatchbin
	Media\cars\_library\textures\lightglows\swatches\lgt_led_002_lite_312e78df-9e59-4a57-92f7-332071790112.swatchbin
	Media\cars\_library\textures\genericmaps\swatches\radial_gradation_001_mask_ef146ee6-6402-408c-b1a4-04fccad4ce2f.swatchbin

MatI 05 lights_smooth_CH1_custom_tailbr
	Media\cars\_library\materials\radiosity\rad_ch1_metal.materialbin
		Media\_library\shaders\rad_ch1_diffnorm\rad_ch1_diffnorm.shaderbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_diff_9fe16d5d-c41d-4be6-a49d-4b93d63527b9.swatchbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
	Media\cars\_library\textures\geometricpatterns\swatches\ridges_011_nrml_2dcf25cd-3b36-4d8c-bd68-d1d2b4179705.swatchbin

MatI 06 lights_smooth_CH1_custom_tailbr_a
	Media\cars\_library\materials\exterior_lights\lights_ch1bump_ch1lmask.materialbin
		Media\_library\shaders\ext_simplemetal\ext_simplemetal.shaderbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_nrml_34b98759-5371-46f7-8d59-db900a7ef1ad.swatchbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_lite_562303fa-94b9-44d0-aa78-7cdd8845774c.swatchbin
		Media\_library\textures\carpacktypes\swatches\ch1_normao_diffopac_glos_49f9fdc2-e399-4f2a-8ed0-9f2828075429.swatchbin
	Media\cars\_library\textures\lightglows\swatches\lgt_led_002_lite_312e78df-9e59-4a57-92f7-332071790112.swatchbin
	Media\cars\_library\textures\genericmaps\swatches\radial_gradation_001_mask_ef146ee6-6402-408c-b1a4-04fccad4ce2f.swatchbin
Not bad for just a light? :D

Then we have Mesh entries, 30 of them have data lenght of 217 bytes and 16 have 201 bytes in lenght.
Header data contains Name and Bounding Box, maybe for correct scale?
Names are:

Code: Select all

taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LODS0
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD1
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD2
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD3
taillightL_a_LOD4
taillightL_a_LOD4
taillightL_a_LOD4
taillightL_a_LOD4
taillightL_a_LOD5
taillightL_a_LOD5
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
Shadow
So, we have 6 lods and 6 submeshes for higher lods, note matching with number of materials, I think in older converters these submeshes would get names like:
taillightL_a_LODS0_backfacingGeo
taillightL_a_LODS0_chrome
taillightL_a_LODS0_lights_smooth_CH1_custom_br
taillightL_a_LODS0_lights_smooth_CH1_custom_br_a
taillightL_a_LODS0_lights_smooth_CH1_custom_tailbr
taillightL_a_LODS0_lights_smooth_CH1_custom_tailbr_a

Mesh data parts is most suspicious for separation to submeshes, but I have no experience in reading such data, I cut this data to chunks and compare by pairs, first 4 of Meshes with 217 bytes of data:
Image
And first 4 with 201 bytes of data (Shadow ones):
Image
These Shadow meshes seems to be missed in Make_H2O output, they skipped or makes unwanted garbage somewhere?..

Next block is IndB data, I have no idea about this, some part of 3D data, maybe named Index Boundary (or Block) - just familiar words, sorry :)

Then we have 4 another suspicious data block, named VLay. Suspicious because we have 6 materials, but there's only 4 unique materials in fact, so, this data can be UV-related.
I cut it to chunks and compare by pairs:
Image
Very good words inside, that's all I can say about :)

Then we have blocks VerB and MBuf, mixed in some order:
VerB
VerB
MBuf
VerB
VerB
MBuf
VerB
MBuf
VerB
Maybe this order is important...

And last data block is Modl, 16 bytes in lenght, I compare it with one from body_a part:
Image
50/50 result, can't say more :)

I uploaded archive with working folder for that light here: http://www.mediafire.com/file/y7kf8a8t6 ... Lights.zip
With all textures linked in materials, also converted to PNG.


Upd: It's very possible, than all data blocks must be cutted out from Grub archive, to make byte addressing inside them "local", for getting good matches with Mesh data etc.
Last edited by Andrakann on Fri Jan 27, 2017 9:38 am, edited 1 time in total.

User avatar
Tosyk
double-veteran
double-veteran
Posts: 936
Joined: Thu Oct 22, 2009 10:24 am
Location: Russia, Siberia
Has thanked: 225 times
Been thanked: 112 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Tosyk » Fri Jan 27, 2017 9:35 am

shakotay2 wrote:
Tosyk wrote:I supposed this uv used only red channel of that texture.
Why?
(The orange color is just the marker for selected uvs in blender.)
ah, well I see now, I'm wrong.
Thank you for all you do here
my blog | my forum

User avatar
Andrakann
ultra-veteran
ultra-veteran
Posts: 384
Joined: Wed Jul 06, 2011 8:47 am
Location: Russia
Has thanked: 722 times
Been thanked: 186 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Andrakann » Fri Jan 27, 2017 10:05 am

zwrtron wrote:NVidia DDS plugin for Photoshop does not support DX10 dds ? It shows blank (black) image, while DDS converter shows it correctly.
No, it's not. Use plugin from Intel: https://software.intel.com/en-us/articl ... rks-plugin
Friend of mine successfully installed it to CS3 x86 (if you don't have CS6 or higher).
For selecting which plugin is used, nVidia or Intel, use "Open as..." dialogue and select one from file types dropdown list.

TomWin
veteran
Posts: 137
Joined: Sun Apr 11, 2010 7:46 pm
Has thanked: 8 times
Been thanked: 6 times

Re: Forza Motorsport Resource Extraction (.carbin)

Post by TomWin » Fri Jan 27, 2017 12:01 pm

I have problem with latest version of converter. The last one worked fine was version f. In latest ones the tool stop responding then crash after working few minutes leaving me huge file that weights couple of Gb. Is that normal?

codex12
ultra-n00b
Posts: 4
Joined: Tue Jan 24, 2017 10:02 am
Been thanked: 3 times

Re: Forza Motorsport Resource Extraction (.carbin)

Post by codex12 » Fri Jan 27, 2017 12:52 pm

TomWin wrote:I have problem with latest version of converter. The last one worked fine was version f. In latest ones the tool stop responding then crash after working few minutes leaving me huge file that weights couple of Gb. Is that normal?

Just put the interior parts in first then convert it to obj the do the same with others




Am stuck on converting textures on this step here.
http://i89.fastpic.ru/big/2017/0124/b2/ ... 9d49b2.png

i don't no what i do to get this popup menu box any ideas?

User avatar
Andrakann
ultra-veteran
ultra-veteran
Posts: 384
Joined: Wed Jul 06, 2011 8:47 am
Location: Russia
Has thanked: 722 times
Been thanked: 186 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Andrakann » Fri Jan 27, 2017 1:00 pm

Andrakann wrote:
OMG, I don't think, that I'll have the time to get that far with proper groups, since as you may know the auto grouping is done by brute force more or less. :D
It's about badges, they paste them over main livery, I have no idea how it's done :)
Aha, now it's clear, I missed that mesh before:
Image
UVs is pretty wrong in this case.
codex12 wrote:Am stuck on converting textures on this step here.
http://i89.fastpic.ru/big/2017/0124/b2/ ... 9d49b2.png

i don't no what i do to get this popup menu box any ideas?
Just copy chunk part to filename of already existing file with "header_only", this dialog pop ups instead of standard windows "overwrite/cancel".
You can edit destination name after [F5] is pressed in first pop up window.
See more examples at the end of tutorial.

User avatar
zwrtron
beginner
Posts: 34
Joined: Sat Jun 13, 2015 11:27 pm
Location: Slovakia
Has thanked: 10 times
Been thanked: 83 times

Re: Forza Motorsport Resource Extraction (.carbin)

Post by zwrtron » Fri Jan 27, 2017 1:17 pm

Andrakann wrote:
zwrtron wrote:NVidia DDS plugin for Photoshop does not support DX10 dds ? It shows blank (black) image, while DDS converter shows it correctly.
No, it's not. Use plugin from Intel: https://software.intel.com/en-us/articl ... rks-plugin
Friend of mine successfully installed it to CS3 x86 (if you don't have CS6 or higher).
For selecting which plugin is used, nVidia or Intel, use "Open as..." dialogue and select one from file types dropdown list.
Thank you, the plugin works like a charm in PS CC 2017
According to your great texture tutorial, I am working on texture conversion tool, well.... in Java..... This is its output as of now: (just swatchbin read)
Image

User avatar
Andrakann
ultra-veteran
ultra-veteran
Posts: 384
Joined: Wed Jul 06, 2011 8:47 am
Location: Russia
Has thanked: 722 times
Been thanked: 186 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Andrakann » Fri Jan 27, 2017 1:45 pm

zwrtron wrote:I am working on texture conversion tool, well.... in Java.....
Great news! :)
Really bored to do that by hands :)

Upd: I think you will need a mipmaps counter byte, because images with only one mipmap require slightly different DX10 DDS header.
I found this byte at Pos: 5Ah in swatchbin header. Also, images with only one mipmap, seems to have Data start position as 8Ch.
Last edited by Andrakann on Fri Jan 27, 2017 2:16 pm, edited 1 time in total.

codex12
ultra-n00b
Posts: 4
Joined: Tue Jan 24, 2017 10:02 am
Been thanked: 3 times

Re: Forza Motorsport Resource Extraction (.carbin)

Post by codex12 » Fri Jan 27, 2017 2:14 pm

When i overwrite file it breaks

what should i do from here am new to this.
http://i.imgur.com/bcJNoxc.png

User avatar
Andrakann
ultra-veteran
ultra-veteran
Posts: 384
Joined: Wed Jul 06, 2011 8:47 am
Location: Russia
Has thanked: 722 times
Been thanked: 186 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Andrakann » Fri Jan 27, 2017 2:31 pm

codex12 wrote:When i overwrite file it breaks

what should i do from here am new to this.
http://i.imgur.com/bcJNoxc.png
You miss one step, you need to delete all data in yours 1024x512xBC7.dds and save remaining header data as 1024x512xBC7_header_only.dds (or use 1024x512xBC7_header_only.dds from attached archive).

Then you have two ways - type or copy/paste text "1024x512xBC7_header_only.dds", removing "for_crownvictoria_10_doortags_diff_(bla-bla-bla).1024x512xBC7" in your dialogue on the screenshot. But it's a "demo way" from tuto :)
Better way is making a copy of your 1024x512xBC7_header_only.dds file, then rename it to for_crownvictoria_10_doortags_diff_(bla-bla-bla).dds (by copypasting from chunk name), then, in dialogue from your screenshot, you just removes "1024x512xBC7" from the end of chunk name and type "dds" instead (in most cases it's automagically spawns as suggested name, because there's already a file in this folder with same name - yours renamed DX10 DDS header).

And do not use "Overwrite" in next dialogue window, use "Other>Append" option.

User avatar
zwrtron
beginner
Posts: 34
Joined: Sat Jun 13, 2015 11:27 pm
Location: Slovakia
Has thanked: 10 times
Been thanked: 83 times

Re: Forza Motorsport Resource Extraction (.carbin)

Post by zwrtron » Fri Jan 27, 2017 3:05 pm

Andrakann wrote: Upd: I think you will need a mipmaps counter byte, because images with only one mipmap require slightly different DX10 DDS header.
I found this byte at Pos: 5Ah in swatchbin header. Also, images with only one mipmap, seems to have Data start position as 8Ch.
Data start position of data to be collected is detected automatically from swatchbin header, while the data bytes (without swatchbin header) are collected from data-start-position-index to the end of swatchbin file.
As of now, I just have dx10 headers in external files sorted by dimension. (1024x1024, 1024x512, 2048x2048...) where the correct texture compression type will be written after data collection of these headers.
About mipmaps: Does the mipmap counter shares the same location in dx10 headers as well ?

User avatar
Andrakann
ultra-veteran
ultra-veteran
Posts: 384
Joined: Wed Jul 06, 2011 8:47 am
Location: Russia
Has thanked: 722 times
Been thanked: 186 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Andrakann » Fri Jan 27, 2017 4:44 pm

zwrtron wrote:About mipmaps: Does the mipmap counter shares the same location in dx10 headers as well ?
For DX10 it's position is 1Ch, but there's other changes always present:
Image
Bytes at positions 6Ch and 6Eh, plus unknown counter at pos. 15h.

Maybe here you can get some clues...

javadst
n00b
Posts: 11
Joined: Fri Jul 29, 2016 3:23 pm
Has thanked: 19 times
Been thanked: 1 time

Re: Forza Motorsport Resource Extraction (.carbin)

Post by javadst » Sat Jan 28, 2017 1:20 am

shakotay2 wrote:
javadst wrote:Hi.
I use this version "Make_H2O-ForzaHor-i1.zip".
I have an error message - what does it mean?
It means that the large array for faces isn't large enough. :D
In the MakeH2O_log.txt file search for # FIs, where the cnt is greater than 100000. Then send me the belonging modelbin(s), please:
# body_a.modelbin
# FIs' cnt: 125853

OK.i check this file"MakeH2O_log.txt" and "modelbins.txt"

In "MakeH2O" file : 597085 line with "vt 0.000000 0.000000" , i not found any " # FIs " , then i check "modelbins.txt" file :
If i delete this line: "BMW_i8_15_skeleton.modelbin" worked correctly.(doors , wipers position is not valid and some wrong lod parts attached to body_a and another models).
You do not have the required permissions to view the files attached to this post.

User avatar
Andrakann
ultra-veteran
ultra-veteran
Posts: 384
Joined: Wed Jul 06, 2011 8:47 am
Location: Russia
Has thanked: 722 times
Been thanked: 186 times
Contact:

Re: Forza Motorsport Resource Extraction (.carbin)

Post by Andrakann » Sat Jan 28, 2017 7:55 am

javadst wrote:(doors , wipers position is not valid and some wrong lod parts attached to body_a and another models).
I dont have this problem in version "i1".
My modelbins.txt contains only one link to body_a, and the result is:
Image
Nothing unwanted is attached to LODS0 parts, as far i can see, but some unwanted splitting occurs.

Upd: But, if i put some random materials to different parts, some errors becomes visible:
Image
Red and black meshes mixed and have errors in geometry.

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 2989
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 779 times
Been thanked: 1549 times

Re: Forza Motorsport Resource Extraction (.carbin)

Post by shakotay2 » Sat Jan 28, 2017 9:19 am

Andrakann wrote:These Shadow meshes seems to be missed in Make_H2O output, they skipped or makes unwanted garbage somewhere?..
There's some datasections with 16/24 bytes blocks (first block rectangled) where I don't get proper uvs or vertices from:
unknown_data.JPG
but some unwanted splitting occurs.
I've little control about that. You simply can join objects (or submeshes) in blender by selecting them and pressing ctrl+J.

(The problem I have is the missing "wanted splittings". :D )
You do not have the required permissions to view the files attached to this post.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

Post Reply