• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Tibia 7.7 replaced with 7.4 sprites

yexos71065

New Member
Joined
Mar 26, 2023
Messages
23
Reaction score
1
Hi,

I've been trying to manually replace Tibia 7.7 sprites with the 7.4, but it always goes wrong because the newest version has more sprites than the previous. I'm using ObjectBuilder, and the maximum I can do is export the 7.4 sprites and import them into the 7.7, but at a certain point, something will be replaced wrong and the map will be buggy.

Does anyone have an SPR file of the 7.7 client with the older sprites, please?

Thank you.
 
Last edited:
Thank you, @bpm91, but simply moving the SPR and DAT files from the 7.4 protocol into the 7.7 doesn't work. Below is the screenshot of the error.

1680360988747.png

The server that I am running and connecting to is the leaked files from CipSoft of the version 7.7. I tried to manually replace the sprites using ObjectBuilder, but at certain point things go buggy, because I exported a bunch and imported afterward, and something must have gone wrong there, therefore I came here asking if anyone had done this task already, because I really wish to play a version as close to the 7.4 as possible, and I believe that the 7.7 with the sprites from that protocol is the closest I can get. I also wish to play it offline.

Also, I attempted to modify the HEX of the 7.4 client to connect to the server in the VM, but it will say that protocol 7.7 is required. Forcing it to 7.4 in a configuration file will also result in error.

I should've mentioned these details earlier, and I apologize.
 
@yexos71065

In short: there are two ways to achieve that. One is easy (in terms of technical knowledge needed), but tedious, and doesn't guarantee you will have all the sprites replaced correctly. The second is harder, but less tedious and cleaner.

So the first method would be to simply extract all the sprites from both versions of .spr files. Then manually replace pictures from 7.7 with their older equivalent from 7.4. Then compile it to a new .spr file. This involves a lot of manual works, because the sprites ids may not always match. But the only tool you need is some simple tibia sprite editor.

The other way is to convert 7.4 .dat file in order to work with 7.7 client, and then you can simply use the original untouched 7.4 .spr file within that client. Because sprites format is exactly the same, but .dat is slightly different. The differences are in flags, and also items ids. Cipsoft used to add new objects between the existing ones, which each time increased all further ids. So you would have to write a script/program to correct all the flags to those used by 7.7 client, and input empty slots/ids (with flags copied from 7.7, to prevent client crashing if by any chance you encounter 7.7-object on the map) here and there so that all the other ids will match those from 7.7. This way you will end up with 7.7-format .dat file that only includes items from 7.4 with all their original flags and sprites.

If you are not competent for the second, do the first, and you should be fine too. It's just a bit tedious, but you can manually replace all the sprites that differ between those versions. You only need to download some sprite editor that can extract and compile the sprites. There used to be plenty of those tools, but I won't link any specific one, because I can't vouch for its safeness.
 
Last edited:
@yexos71065

The other way is to convert 7.4 .dat file in order to work with 7.7 client, and then you can simply use the original untouched 7.4 .spr file within that client. Because sprites format is exactly the same, but .dat is slightly different. The differences are in flags, and also items ids. Cipsoft used to add new objects between the existing ones, which each time increased all further ids. So you would have to write a script/program to correct all the flags to those used by 7.7 client, and input empty slots/ids (with flags copied from 7.7, to prevent client crashing if by any chance you encounter 7.7-object on the map) here and there so that all the other ids will match those from 7.7. This way you will end up with 7.7-format .dat file that only includes items from 7.4 with all their original flags and sprites.

@kay

I have a few questions about modifying the dat files. If I am converting a 7.4 dat file to work with a 7.7 client, will I need to change the order and byte used for each flag? For example, in the 7.4 dat file, the "full ground" flag is represented by the byte 0x12, but in the 7.7 client, it's represented by the byte 0x1E. Additionally, will I need to fill up the rest of the dat file to match the sprites used (5089) in the 7.7 dat file, and change the first 12 bytes of the 7.4 dat file to match those of a 7.7 dat file?

Code:
ID: 100 ( 7.72 )
Unknown flag: 0x00
Unknown flag: 0x00
Unknown flag: 0x00
Unknown flag: 0x0C
Unknown flag: 0x0D
Unknown flag: 0x0E
Unknown flag: 0x1E
Unknown flag: 0xFF

ID: 100 ( 7.40 )
Unknown flag: 0x00
Unknown flag: 0x00
Unknown flag: 0x00
Unknown flag: 0x0B
Unknown flag: 0x0C
Unknown flag: 0x0D
Unknown flag: 0x12
Unknown flag: 0xFF

Kind regards,
EkkoLua
 
Last edited:
if you want to change version you just need to compile as major version

You mentioned compiling the .dat file as the major version, but as far as I know, the .dat file itself does not have a major version. Could you please clarify what you mean by compiling it as the major version?
 
For example, in the 7.4 dat file, the "full ground" flag is represented by the byte 0x12, but in the 7.7 client, it's represented by the byte 0x1E.
For each flag used in 7.4 you need to find its equivalent flag from 7.7. Then in your converted .dat you will have to replace them for each 7.4 object, so that it can work in 7.7 client flawlessly.

Additionally, will I need to fill up the rest of the dat file to match the sprites used (5089) in the 7.7 dat file
I'm not sure I understand this question right. Do you mean sprites or objects? I'll assume that you meant objects, since you mentioned number 5089 (which is the number of objects in 7.7 dat). So, technically, you don't have to do that. The client itself will work fine without that, if you only fix the flags. However, the ids of all objects have to match those on the server's side and on your map. Since you probably won't be making all of that from scratch, but you will use some ready 7.7 distro (either the cipsoft vanilla or some other) - yes, you have to "fill" the rest of the file. But not just by adding the remaining objects up to 5089 at the end of the file. You need to add them wherever there is any gap. For example, if certain item in 7.4 had id 123, and then another has 124 (obviously); in 7.7 dat it can be that they do both exist, but there have been more items added between them. So the first one is 123, then some new items, and the other one is 150, instead of 124. You need to fill that gap, so that all 7.4 objects will have their ids match those from 7.7. Filling each gap should be done by copying items from 7.7 dat. You could just make them empty, but it's better to copy them with their flags - to prevent client crashing in case you encounater any item that did not exist in 7.4. You don't need to copy their sprites info though, and you shouldn't, since later you'll be using the original 7.4 spr file anyway.

The easiest way to do that is not by converting 7.4 dat file, but by reading both versions item by item, and generating new dat file.

and change the first 12 bytes of the 7.4 dat file to match those of a 7.7 dat file?
Yes, use the header of 7.7 dat.
 
Last edited:
Back
Top