Ok, it's time for a little tuto:
How to get Forza textures.
You'll need some tools:
Hex Editor
DDS Converter or
Noesis
Double Commander (free analog of Total Commander)
Step 1. Making of texture data chunk from swatchbin file:
Open swatchbin in hex editor and read important data in header before cutting it out:
You'll need to know widht, height and compression type for making new DX10 DDS header, remember them, then select and delete header bytes up to "data start" position:
Table of compression types:
00h = BC1_UNORM (
47h in DX10 DDS header)
03h = BC4_UNORM (
50h in DX10 DDS header)
04h = BC4_SNORM (
51h in DX10 DDS header)
05h = BC5_UNORM (
53h in DX10 DDS header)
06h = BC5_SNORM (
54h in DX10 DDS header)
07h = BC6H_UF16 (
5Fh in DX10 DDS header)
09h = BC7_UNORM (
62h in DX10 DDS header)
0Dh = R8G8B8A8_UNORM (
1Ch in DX10 DDS header)
13h = A8_UNORM (
41h in DX10 DDS header)
After you deleted header part, you need to "save as" edited file, I put memorized values as file extension for chunk, leaving name as is:
Some tips for newbies:
You can see decimal numbers for widht/height right inside hex editor, just select two bytes and look in status bar:
"Data start" position reads backward, by bytes, so 04 01 00 00 reads as 00 00 01 04 - this is first byte position adress, displayed as Pos: 104h (260) in status bar if you put marker on them:
Zeroes is skipped and (260) is decimal number of byte.
Step 2. Making of DX10 DDS texture with correct parameters:
So, we need a donor texture with 1024x512 dimensions and BC7 compression, let's make one
Take any pic and resize it to 1024x512 in your favourite editor, save as 1024x512.png, then open in DDS Converter and set desired compression type:
Click "Convert" button, wait a little then click "Save as" button (it's becomes active after conversion is complete).
Name saving file as 1024x512xBC7.dds
Note: Some formats is missing in compression settings, BC4 for example, for this case I put those codes for DDS Headers in table of compression types above.
To make BC4 header out of BC7 one, you need to change one byte at Pos:
80h (128) from 62h to 50h and save result with new name:
Step 3. Detaching header from generated DX10 DDS:
Open 1024x512xBC7.dds in hex editor, put marker in 94h position, press Ctrl+Shift+End to select all bytes to the end of file from selected position, delete:
Save result as 1024x512xBC7_header_only.dds:
Note: You can cut headers from already converted textures, or use the ones I have created so far (attached).
Step 4. Merging DX10 DDS header with swatchbin chunk:
Easiest way to do it is use of Total or Double Commander.
You need to copy header and chunk to same place and with same name, for example "1.dds", then select "
Append" instead of default "Overwrite":
Checking result:
Works
Of course it's better to use original names instead of "1.dds" in example, also you can make copies of header for all swatchbins with same dimensions, easiest way to find them is sorting by size:
So, we have 27 files in sum with same size and, probably, same dimensions, time to make chunks (and check dimensions for sureness), this time saving with only "s" in extension for speed up process.
And our winner is!..
for_gauges_001_glos_7947570d-f283-4420-97b5-99398bf36ff4.swatchbin because it have a sligtly smaller size and it's a reason to tune file sizes appearance in Commander:
Have skipped one file for now and the result is:
Lots of "s" chunk files
Now we need a copies of DDS header, select one we have, press Ctrl+C, then Ctrl+V 25 times
Next step is renaming copies of DDS headers by copying swatchbin (or chunk) names and pasting to DDS header names:
(lots of moving selector to file, F2, Ctrl+Insert, move to another file, F2, Shift+Insert and repeat
)
Now we append chunk files to dds files, we only need to delete file extension in copy dialogue window and .dds will pop up as suggested name:
I'll upload those gauges textures after conversion is finished, stay tuned
You do not have the required permissions to view the files attached to this post.