Jump to content

Mindlock The Apartment (Visionaire Studio 5) - unpack/repack help


Go to solution Solved by Ghylard,

Recommended Posts

Posted

I've had a look at it.  There is a hash table (unknown algorithm) and a file table, both are encrypted, although it is reasonably straightforward xor.  The file table seems to be in ascending order of hash value, but not sure if your file list is in the same order.  It should be possible to extract, but not sure about reimport.  Also, the .ogg files in the archive seem to be correct, but the .png files seem corrupted or encrypted somehow.

 

Posted (edited)

I realize most of the things you wrote. I came to this while looking for tools. Something that rubs against the new version of the engine I found here: https://oezmen.eu/gameresources/ (included source code), but the tool has support only up to version 5.1.6. Engine version March 2021.

And something for version 3: http://www.nullsecurity.org/article/predicting_numbers_vis3_xor_encryption; http://www.nullsecurity.org/article/a_new_beginning-png_fixing

Edited by Pikor
  • Like 1
  • Solution
Posted (edited)

So far, I haven't figured out how to translate a game made with Visionaire Studio 5, but here's what I've discovered.

1 ) Data extraction from the vis file with Ravioli - Scanner (https://www.scampers.org/steve/sms/other.htm)

2) Image decryption:
This little Python program decrypts images one by one: png_vis.py (https://github.com/AngelDevIndie/Visionaire_translation/blob/main/png_vis.py)

3) Image encryption:
This little program can be used to encrypt images.

RECOVER widths and heights .PNG textures.7z

Put original pngs in unpakke_old_png
Put modified pngs in new_png
Click on RECOVER WH PNG

4) Creating a veb file (compressed vbin):
Find the dat file containing the word vbin.
Using a hexadecimal editor, copy the part from vbin (included) to the end of the file, then use the hexadecimal editor to create a xxxx.veb file.

5) Subtitle extraction (Visionaire Studio software required):
Open the xxxx.veb file with Visionaire Studio 5.
You'll see a message saying that some plugins are missing.
Go to the top menu and click on the icon with 3 horizontal stripes
Go to Extras - Export texts...
Choose extraction file type (po or csv), extraction directory and other options

6) Subtitle translation

7) Reinserting subtitles with Visionaire Studio:
Open the xxxx.veb file in Visionaire Studio 5.
Go to the top menu and click on the icon with 3 horizontal stripes
Go to Extras - import texts...

The file can be saved as a ved file (uncompressed xml) if the translation is not finished.
The file can also be saved as a veb file (compressed).

😎 What next?
a) If you try to recompile with Ravioli -Scanner, your veb file will have to be reinserted into the original dat file with a hex editor, but if its size is greater than the original version, recompilation will be impossible with Ravioli Scanner.

The resulting new vis file won't work in the game anyway.

b) Someone has translated 3 games similar to Mindlock - The Apartment.
The 3 translated games are Nelson and the Magic Cauldron, Nelson and the Magic Cauldron: The Journey and Lucy Dreaming.
These 3 translation patches can be found at https://scummbr.org/forum/index.php?board=2.20.

c) Having examined and compared these 3 translated games with the original versions, I realized that the translator had recompiled the game with Visionaire Studio, adding modified files (veb and/or png) to the original vis file.


For the moment, I haven't investigated this further, so I don't know if it works.🙂

png_vis.py Mindlock_Subtitles.zip

Edited by Ghylard
  • Like 2
  • ikskoks changed the title to Mindlock The Apartment (Visionaire Studio 5) - unpack/repack help
Posted (edited)

Now that I've edited the subtitle file you provided, how can I insert it back into the original file?

Where can I find the font?

Edited by samfisher
Posted (edited)
On 1/8/2025 at 2:54 PM, Ghylard said:

a) If you try to recompile with Ravioli -Scanner, your veb file will have to be reinserted into the original dat file with a hex editor, but if its size is greater than the original version, recompilation will be impossible with Ravioli Scanner.

When I prepared veb file, and load in VS5 I see two language (English and German). So, what if I wipe DE texts and translate EN? It should be enough bits for longer language. This should (in theory) work. EDIT: Yep, that's work. The game displays the new texts. I don't check images. But if something doesn't work, I'll let you know.

On 1/10/2025 at 5:41 PM, samfisher said:

Now that I've edited the subtitle file you provided, how can I insert it back into the original file?

Where can I find the font?

Prepare project veb file just cutting from vis file. Open in Visionaire Studio 5. Export text file via CSV. Translate. Import to the Visionaire Studio 5. Save project as. Inject HEX from new veb file to the vis file (remove old HEX part VBIN > end file, and paste new one).

I saw some fonts in VS5 after checking what is in the project. I don't know (for now) if I change the font it will work. (EDIT: with my luck, fonts already contains my language chars, and engine using UTF8 encoding ☺️)

obraz.png.c2557a7ca493003cb6299b56e7e4f67c.png

On 1/8/2025 at 8:25 PM, ikskoks said:
On 1/8/2025 at 8:25 PM, ikskoks said:

I can't download your file for some reason. Can you reupload to google drive or mega.nz?


Weird, you are from Poland then you should be able to download from my NAS. But I see already someone helped with the file. 😉

Edited by Pikor
  • Like 1
Posted
On 1/8/2025 at 2:54 PM, Ghylard said:

c) Having examined and compared these 3 translated games with the original versions, I realized that the translator had recompiled the game with Visionaire Studio, adding modified files (veb and/or png) to the original vis file.

Out of curiosity, I checked if this way also works with an older game (BornPunk). While cutting out the VBIN gives you the ability to open it in VS5, saving in the latest version of the program (not changing anything) and injecting it into the vis file crashes the game. Most likely you need the same or similar version of VS5 on which the game was made. Unfortunately they don't keep version archives like Unity for example ;(

Posted
2 hours ago, Pikor said:

Unfortunately they don't keep version archives like Unity for example ;(

You can download some older versions of Visionaire Studio from https://www.visionaire-studio.net/shop/ if you have a licence.

 

NXmL4ocsAn.png.7b499cc10b5d30d7f83bf1dcd65be689.png

 

23 hours ago, Pikor said:

I make some changes in pyton png script. Now no need open file one by one. You can select a few files and wait until script finish the loop.

Thanks, that saves time!

Posted

I found 5 files with the dat format, and one of them contained a vbin file. I copied it from the specified location and then placed it in a text file, changing its format to veb. However, when I import it into the software, it gives an error.

Posted
6 hours ago, samfisher said:

I found 5 files with the dat format, and one of them contained a vbin file. I copied it from the specified location and then placed it in a text file, changing its format to veb. However, when I import it into the software, it gives an error.

You didn't do the right thing!

You shouldn't have pasted it into a text file, you're working on a binary file.

When you're in your hex editor, you need to create a new file into which you'll paste the part you copied from the dat file.

You then save this new file as *.veb.

If you've done everything correctly, the file should be able to be opened in Visionaire Studio 5.

Posted (edited)
On 1/13/2025 at 4:52 PM, Ghylard said:

You can download some older versions of Visionaire Studio from https://www.visionaire-studio.net/shop/ if you have a licence.


All iterations of the engine are not there. Doesn't work ;F

 

11 hours ago, samfisher said:

I found 5 files with the dat format, and one of them contained a vbin file. I copied it from the specified location and then placed it in a text file, changing its format to veb. However, when I import it into the software, it gives an error.


Do as Ghylard said. Use a HEX editor, not a text editor.


Everything what I wrote below you do after translate and save new VEB and PNG files.

obraz.thumb.png.da49ddd61f102642ffcf2584a9dbaf15.png

To be 100% sure that everything would work I added empty bits in the translated VIB file from the end of the file to the offset that was in the original. I copy all that bits. Later, placing the cursor in front of V (the beginning of the copy section from the original VIS file), I pasted the NEW bits by overwriting the OLD ones.

Remember: new VIB file must have the same (before inject to VIS file) or less bits (before add empty bits and inject to VIS file).

With PNGs I do the same and add empty bits, to keep the data the same size). Without that, when I replace images using Ravioli game crash.

obraz.thumb.png.53bb8124ee7eabd0de17a763a6c7f8b0.png

 

You see? New text and flag image. Everything work 😉 

Edited by Pikor
Posted
On 1/16/2025 at 6:46 PM, Ghylard said:

You didn't do the right thing!

You shouldn't have pasted it into a text file, you're working on a binary file.

When you're in your hex editor, you need to create a new file into which you'll paste the part you copied from the dat file.

You then save this new file as *.veb.

If you've done everything correctly, the file should be able to be opened in Visionaire Studio 5.

Thank you so much for responding. Your help worked perfectly. Thanks, bro!

On 1/16/2025 at 11:23 PM, Pikor said:


All iterations of the engine are not there. Doesn't work ;F

 


Do as Ghylard said. Use a HEX editor, not a text editor.


Everything what I wrote below you do after translate and save new VEB and PNG files.

obraz.thumb.png.da49ddd61f102642ffcf2584a9dbaf15.png

To be 100% sure that everything would work I added empty bits in the translated VIB file from the end of the file to the offset that was in the original. I copy all that bits. Later, placing the cursor in front of V (the beginning of the copy section from the original VIS file), I pasted the NEW bits by overwriting the OLD ones.

Remember: new VIB file must have the same (before inject to VIS file) or less bits (before add empty bits and inject to VIS file).

With PNGs I do the same and add empty bits, to keep the data the same size). Without that, when I replace images using Ravioli game crash.

obraz.thumb.png.53bb8124ee7eabd0de17a763a6c7f8b0.png

 

You see? New text and flag image. Everything work 😉 

Thank you so much! It finally worked, and the mistake was on my part. I really appreciate how clearly and thoroughly you explained everything, my friend.

Posted

Now that I’ve managed to extract the text with the help of my friends, I’d like to change the in-game font as well. Could you tell me where I can find the fonts?

Posted (edited)

To change fonts, click on the icon “A”.

The game uses the BarlowCondensed-Light.ttf, AmaticSC-Bold.ttf and SairaCondensed-Light.ttf fonts.

You can either change this font to one containing the characters specific to your language, or add the characters you want to this ttf font.

viseditor_dXqle94qd8.png.79291ed77e5fc109c3e2da4b9014208c.png

Once you've chosen or modified your font, you can add it to the ved file by clicking on “...” in “True Type font file”.

Edited by Ghylard
Posted
4 hours ago, Ghylard said:

To change fonts, click on the icon “A”.

The game uses the BarlowCondensed-Light.ttf, AmaticSC-Bold.ttf and SairaCondensed-Light.ttf fonts.

You can either change this font to one containing the characters specific to your language, or add the characters you want to this ttf font.

viseditor_dXqle94qd8.png.79291ed77e5fc109c3e2da4b9014208c.png

Once you've chosen or modified your font, you can add it to the ved file by clicking on “...” in “True Type font file”.

Where should I get the file that contains the font?

Posted

There are no font files in the game.

You need to get the 3 fonts I've mentioned off the internet, then modify them so that they have the characters you want.

Once you've made these changes to the 3 fonts, you can then update the ved file by following the instructions I've given you.

Posted (edited)

There are 4 TTF/OTF fonts in play.vis.

Names, offsets and sizes:

Barlow Condensed Light: 0x6a88bd12 (80.388 bytes)

Amatic SC Bold: 0x6a89f716 (146.348 bytes)

Amatic SC Regular: 0x6a8c32c2 (142.164 bytes)

Saira Condensed Light: 0x6a8e5e16 (77.880 bytes)

Maybe you could edit or replace them.

Edited by Zeeh
Posted

 

27 minutes ago, Zeeh said:

There are 4 TTF/OTF fonts in play.vis.

Names, offsets and sizes:

Barlow Condensed Light: 0x6a88bd12 (80.388 bytes)

Amatic SC Bold: 0x6a89f716 (146.348 bytes)

Amatic SC Regular: 0x6a8c32c2 (142.164 bytes)

Saira Condensed Light: 0x6a8e5e16 (77.880 bytes)

Maybe you could edit or replace them.

samfisher has, I believe, Visionaire Studio software.

Visionaire Studio makes it possible to download new ttf fonts.

Either the same font, but modified to incorporate new characters, or a new font altogether.

I haven't tested this, as the current fonts already incorporate the characters specific to my language, but I'm sure it will work.

Zeeh, if you're the one who worked with guitutilo on Scummbr, I'm interested in the method you used to translate Nelson and the Magic Cauldron, as well as Nelson and the Magic Cauldron: The Journey and Lucy dreaming.🙂

For the record, the method found for translating Mindlock - The Appartment only works with the version of Visionaire Studio used to design the game.
As Visionaire Studio doesn't make older versions available to licensed users, it's impossible to translate older games using this method.

Posted (edited)

I just got lucky while trying available vis3 xor keys. Some time ago a dude posted a xor key for ASA: Remastered Edition in ZenHAX forum and It worked (485f13a285b3f109).

The decrypted vis5 header is somewhat similar to the vis3 one. As DKDave noticed, there is a file table with the offsets and file sizes, BE order (16 bytes for each file). First dword is always 1, and next are: file offset, file size, and finally 0 (not encrypted) or 8 (encrypted).

I got a XML file extracted from Nelson and the Magic Cauldron, also posted in ZenHAX, to find a way to extract the dialog strings from the uncompressed ved file, which is a binary XML.

Edited by Zeeh
Posted
On 1/27/2025 at 4:41 PM, Ghylard said:

 

samfisher has, I believe, Visionaire Studio software.

Visionaire Studio makes it possible to download new ttf fonts.

Either the same font, but modified to incorporate new characters, or a new font altogether.

I haven't tested this, as the current fonts already incorporate the characters specific to my language, but I'm sure it will work.

Zeeh, if you're the one who worked with guitutilo on Scummbr, I'm interested in the method you used to translate Nelson and the Magic Cauldron, as well as Nelson and the Magic Cauldron: The Journey and Lucy dreaming.🙂

For the record, the method found for translating Mindlock - The Appartment only works with the version of Visionaire Studio used to design the game.
As Visionaire Studio doesn't make older versions available to licensed users, it's impossible to translate older games using this method.

Thanks to all my friends who have helped and guided me so far, especially Ghylard.

But no matter what I did, I couldn't apply the font to the game—it seems like nothing changes. I don't know what I'm doing wrong.

Is there a way to extract the entire contents of this VIS file?

Posted

I really love translating and editing various games, but I don’t know the main process for doing this, which is extracting the contents of compressed game files.

I’ve come across different tutorials online, including QuickBMS and Hex editing, but I haven’t been able to get any results.

Is there anyone here who can guide me thoroughly and comprehensively?

 

Posted (edited)
On 1/30/2025 at 2:16 PM, samfisher said:

Is there a way to extract the entire contents of this VIS file?

No, unfortunately, there is no way to extract all the files from a vis file made with Visionaire Studio 5.
The method used to translate Mindlock is just a roundabout and imperfect way of doing this.
The tools that made this possible for files created with Visionaire 4 no longer work with those in Visionaire 5.
For your problem with the fonts, they need to be in the same directory as the ved.
They also need to have EXACTLY the same name as those already in the ved.

 

Edited by Ghylard

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...