Difference between revisions of "Preferences.dat file"

From AMule Project FAQ
Jump to: navigation, search
Line 44: Line 44:
 
== Example ==
 
== Example ==
  
The following is a hex dump of an hypothetic ''preferences-dat'' file:
+
The following is a hex dump of an hypothetic ''preferences.dat'' file:
  
 
''a3143e6f12dd445b12a0c3c6f7ca5b2d00230000000000000000000000000000000000000000000000000000''
 
''a3143e6f12dd445b12a0c3c6f7ca5b2d00230000000000000000000000000000000000000000000000000000''

Revision as of 04:50, 28 August 2005

File

Name: preferences.dat

Location: ~/.aMule/

Description

This file stores the userhash and the configuration file version for your client in the ed2k network. In old times, this file used to store eMule's configuration.

Data

The current configuration file version is 20 (in hex: 0x14).

Format

The file format is as follows:

VersionUserhashLengthFlagsShowcmdMaxpositionxMaxpositionyMinpositionxMinpositionyNormalpositionleftNormalpositiontopNormalpositionrightNormalpositionbottom

As you can see, all the fields are stored without any separator character. This is done like this because all the fields have a specific size:

  • Version: 1 byte
  • Userhash: 2 bytes
  • Length: 4 bytes
  • Flags: 4 bytes
  • Showcmd: 4 bytes
  • Maxpositionx: 4 bytes
  • Maxpositiony: 4 bytes
  • Minpositionx: 4 bytes
  • Minpositiony: 4 bytes
  • Normalpositionleft: 4 bytes
  • Normalpositiontop: 4 bytes
  • Normalpositionright: 4 bytes
  • Normalpositionbottom: 4 bytes

The relevant fields are the following:

  • Version: Specifies the configuration file version (the format defined in this articles corresponds to version 20).
  • Userhash: The userhash.
  • Length: Length in bytes of the file not counting th Version and Userhash fields (should be 38 bytes).

Once this data is put together, it is stored in little-endian.

Example

The following is a hex dump of an hypothetic preferences.dat file:

a3143e6f12dd445b12a0c3c6f7ca5b2d00230000000000000000000000000000000000000000000000000000

In the above example, the following data can be seen:

  • Configuration file version: 20 (In hex: 0x14)
  • Userhash: A36F3EDD125B44A012C6C3CAF72D5B23
  • Other fields: Set to zero (0)

Extra

aMule ignores the main window position, main window size, length, flags and showcmd fields in this file. That's the reason why this fields aren't explained in this article.

All this ignored fields are set to zero by aMule. Even if they were set to some other value, aMule will never read those values. Instead, it uses the preferences set in ~/.eMule