Extracting .bimage / .iggy files

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Extracting .bimage / .iggy files

Post by CidQu »

Hi, I was translating Deathloop. Turkish Language has some different characters than the normal Latin Alphabet (ışöçüğ) and Deathloop Fonts don't support this. I want to change the font but couldn't manage to extract .bimage files. Can anyone help, please? I left an example.
Last edited by CidQu on Fri Oct 15, 2021 7:36 pm, edited 1 time in total.
clownbong
Posts: 1
Joined: Sun Oct 03, 2021 11:37 pm

Re: Extracting .bimage files

Post by clownbong »

Adding on my findings from trying to convert these files to DDS based on info from previous games

It seems like none of the previously given info/scripts from other games using this format work for Deathloop (tried Evil Within 2, Wolfenstein, DOOM)

I can provide more sample files if anyone needs
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage files

Post by CidQu »

clownbong wrote:Adding on my findings from trying to convert these files to DDS based on info from previous games

It seems like none of the previously given info/scripts from other games using this format work for Deathloop (tried Evil Within 2, Wolfenstein, DOOM)

I can provide more sample files if anyone needs


Seems Dishonored 2 is not working too.
We can extract .dds but it is not working. It is corrupted.

We tried with the Dishonored Bimage translator.
h3x3r
Posts: 165
Joined: Wed Jun 01, 2016 5:53 pm

Re: Extracting .bimage files

Post by h3x3r »

Code: Select all

//--------------------------------------
//--- 010 Editor v6.0.3 Binary Template
//
// File:
// Author:
// Revision:
// Purpose:
//--------------------------------------
local int i;

uint64 id;
uint compchar;
uint unk0;
uint unk1;
uint width;
uint heigth;
uint width_check;
uint heigth_check;
uint flag;
uint mipmapcount;
uint mipmapcount_check;
uint unk2;
uint unk3;
uint unk4;
byte Null[3];

for(i=0;i<mipmapcount;i++) {

struct {
    uint64 mipnum;
    uint width;
    uint heigth;
    uint mipmaplayersize;
    ubyte Mipmap[mipmaplayersize];
    } mipmap;
};


For fonts the compression is ATI1.
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage files

Post by CidQu »

h3x3r wrote:

Code: Select all

//--------------------------------------
//--- 010 Editor v6.0.3 Binary Template
//
// File:
// Author:
// Revision:
// Purpose:
//--------------------------------------
local int i;

uint64 id;
uint compchar;
uint unk0;
uint unk1;
uint width;
uint heigth;
uint width_check;
uint heigth_check;
uint flag;
uint mipmapcount;
uint mipmapcount_check;
uint unk2;
uint unk3;
uint unk4;
byte Null[3];

for(i=0;i<mipmapcount;i++) {

struct {
    uint64 mipnum;
    uint width;
    uint heigth;
    uint mipmaplayersize;
    ubyte Mipmap[mipmaplayersize];
    } mipmap;
};


For fonts the compression is ATI1.


Is there any way to extract it? I tried the 010 Script seems nothing happens.
h3x3r
Posts: 165
Joined: Wed Jun 01, 2016 5:53 pm

Re: Extracting .bimage files

Post by h3x3r »

Are you sure you executed template on it?
Image
It's not a script. Also don't forget set Little Endian reading in editor. You can switch between them with Ctrl + E.
BTW the selected area of data is main layer. Just click on Mipmap colum and press Ctrl + double tap C key and paste it into the new file and save as *.dat.
Now run Raw Texture Cooker viewtopic.php?t=7099 and drop that *.dat file onto it and set width/height + compression which is ATI1.
Tool will generate DDS header so you can open it GIMP. Photoshop don't have support for ATI1/ATI2.
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Extracting .bimage files

Post by spiritovod »

h3x3r wrote:Photoshop don't have support for ATI1/ATI2.

It has with Intel Texture Works plugin or NVIDIA Texture Tools plugin.
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage files

Post by CidQu »

h3x3r wrote:Are you sure you executed template on it?
Image
It's not a script. Also don't forget set Little Endian reading in editor. You can switch between them with Ctrl + E.
BTW the selected area of data is main layer. Just click on Mipmap colum and press Ctrl + double tap C key and paste it into the new file and save as *.dat.
Now run Raw Texture Cooker viewtopic.php?t=7099 and drop that *.dat file onto it and set width/height + compression which is ATI1.
Tool will generate DDS header so you can open it GIMP. Photoshop don't have support for ATI1/ATI2.


Okay thanks, we managed to do that. Now how can we repack again?

I think we need to convert .dds to .dat, then put that data in .bimage again, right? How can we do that?


And we are planning to make something different.
Official Deathloop fonts is this. https://fonts.adobe.com/fonts/futura-pt
What about we download this as .ttf then convert it to .dds then add the game? Would it work?

Edit: And this files is a bit off. Is this the right thing to change? Because this .dds is not in full quality. I can't even understand some letters.

.DDS
Image

In Game.
Image
h3x3r
Posts: 165
Joined: Wed Jun 01, 2016 5:53 pm

Re: Extracting .bimage files

Post by h3x3r »

I am able create whole new font from ttf with mapping which require some tweaking, but theirs fonts have some kind of glow on it. Anyway texture fonts are distance field "btw they end with _DF".
How to import? Almost the same way as export. Open *.bimage run template on it and select Mipmap colum. Now open edited *.dds and remove first 128 bytes. Rest data size must by equal to the mipmaplayersize. Now copy all data from *.dds and put it to the *.bimage file over the selected bytes.

And lastly you don't have solved *.iggy format. Game uses mostly them. I find out that russian fonts have some extra charatcers, but not at all.
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage files

Post by CidQu »

h3x3r wrote:I am able create whole new font from ttf with mapping which require some tweaking, but theirs fonts have some kind of glow on it. Anyway texture fonts are distance field "btw they end with _DF".
How to import? Almost the same way as export. Open *.bimage run template on it and select Mipmap colum. Now open edited *.dds and remove first 128 bytes. Rest data size must by equal to the mipmaplayersize. Now copy all data from *.dds and put it to the *.bimage file over the selected bytes.

And lastly you don't have solved *.iggy format. Game uses mostly them. I find out that russian fonts have some extra charatcers, but not at all.


We tried to solve .iggy but it seems the game does not use the same .iggy as before. Again I tried to use Dishonored 2 Tools but nothing works. Do we still need to change .iggy for implementing Turkish characters?

BTW, I tried with the way you said...

I exported .DDS from GIMP using ATI1, Then deleted the first bits. Then added to the .bimage.

Image
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage files

Post by CidQu »

We found something! .bimage files not working on the texts! .bimage files are only works with glowing weird text named "Handelson Two". The other files are not working with .bimage file, they are working through with .iggy
by-freon
Posts: 20
Joined: Sat Dec 22, 2018 2:56 pm

Re: Extracting .bimage files

Post by by-freon »

I tried to adjust the iggy to Turkish characters. Can you try it?
My cpu does not support the game.
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage files

Post by CidQu »

by-freon wrote:I tried to adjust the iggy to Turkish characters. Can you try it?
My cpu does not support the game.


It gaves this error, "arkIggyFilesManager_Loader, Access Violation"

I think you forget to remove .swf header, because I can't open the original files but I can open yours.

Image
by-freon
Posts: 20
Joined: Sat Dec 22, 2018 2:56 pm

Re: Extracting .bimage files

Post by by-freon »

Yes. I had to edit the swf header, but the new one doesn't work properly. I'll take another look at it
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage files

Post by CidQu »

by-freon wrote:Yes. I had to edit the swf header, but the new one doesn't work properly. I'll take another look at it


I tried to change headers, but seems Deathloop uses a different kind of iggy.

Dishonored 2 .iggy file has 96 headerlenght,

The .iggy file you gave has 96 headerlenght,

The Anime game .iggy file i found on the web has 96 headerlenght,

But original Deathloop .iggy file has 80.
h3x3r
Posts: 165
Joined: Wed Jun 01, 2016 5:53 pm

Re: Extracting .bimage / .iggy files

Post by h3x3r »

Funny things... IGGY Fonts from Dishonored 2 works with this game. But if you open them in jpexs and save them without changing anything the game refuse them.
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage / .iggy files

Post by CidQu »

h3x3r wrote:Funny things... IGGY Fonts from Dishonored 2 works with this game. But if you open them in jpexs and save them without changing anything the game refuse them.


I think there is a method, the person who did the Turkish Translation for Dishonored 2 was able to edit the .iggy file. It works like a charm! I'm sending the image.

EDITED(read the below text.)

Image
Last edited by CidQu on Thu Oct 21, 2021 11:16 pm, edited 1 time in total.
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage / .iggy files

Post by CidQu »

h3x3r and by-freon I have an important update.

We were able to update .iggy files from Dishonored 2 by changing font values, But we couldn't implement that on Deathloop's font file. I will leave Dishonored 2 English and Turkish .iggy files here. You can check the value different between them. Maybe you can find something else.

https://drive.google.com/file/d/1Hg87c6vst8_WizXDHlAtpOjDhnrBk_-J/view
cockafej
Posts: 29
Joined: Wed Jun 06, 2018 4:39 pm

Re: Extracting .bimage / .iggy files

Post by cockafej »

As I see it, the best solution at the moment is here:

https://forum.xentax.com/viewtopic.php?f=10&t=15474&hilit=iggy&start=15#p124494

I have successfully modified the fonts with this solution.
However, for the time being I could only do this manually with a HEX editor, by rewriting the coordinates of the points. Also, I did not change the coordinate numbers of each character.
Someone should write a normal tool for it.

Image
CidQu
Posts: 44
Joined: Tue Sep 14, 2021 12:25 am

Re: Extracting .bimage / .iggy files

Post by CidQu »

cockafej wrote:As I see it, the best solution at the moment is here:

https://forum.xentax.com/viewtopic.php?f=10&t=15474&hilit=iggy&start=15#p124494

I have successfully modified the fonts with this solution.
However, for the time being I could only do this manually with a HEX editor, by rewriting the coordinates of the points. Also, I did not change the coordinate numbers of each character.
Someone should write a normal tool for it.

Image


I didn't quite understand the method. Where can I find these coordinates in a hex editor? and do we need to rewrite or can't we just delete it? There is a French character -ï- there are two dots in this character, I want to delete both dots, this will make -ı- character in Turkish. If you can help me where can I find the character coordinates. I don't think this guy will write an Iggy Tool, Last answer he wrote is years ago.