Ye Olde Hex Glossary
A short primer on common terms from Suryiel
HEXADECIMAL- Base 16 numbers. This means
values are counted in groups of 16, as opposed to groups of 10 as we are
accustomed to. An easy primer on counting in hex may be found at:
http://www.tcaep.co.uk/maths/numbers/basen/index.html
An advanced text on assembly language may be found at:
http://webster.cs.ucr.edu/Page_asm/ArtofAssembly/ArtofAsm.html
It is strongly advised that you read at least the first two chapters
at the above site. If it is too complex for you, hex editing will be difficult
to understand fully
Hex numbers should be expressed like this: "0x04A" or "4Ah" when discussing
them at the hex board
Express decimal numbers as "d10" or "d52"
BITMASK- Method of stretching the amount
of information a single byte can contain. This works because of the corellation
between binary and hex. Multiple fields can be switched "on" or "off" using
this. It works like this:
Binary: 10101010
Hex: AA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If the information was being stored in binary, it would take four bytes
to represent the same number represented by two in hex.
In the first example, data field eight is "on"- 1
field seven is "off"- 0
field six is "on"- 1
and so on....
Now, if we want to turn "on" field seven, the binary is now: 11101010
the hex is now: EA
One byte does the work of many this way to allow a single offset to
control different attributes- for example, item usability (note: this is
an example, and not how the true usability chart looks)
BIT | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
CLASS | mage | cleric | fighter | thief | ranger | paladin | bard | druid |
VALUE | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
USABLE | yes | no | yes | no | yes | no | yes | no |
OFFSET- the location of a specific byte,
usually given in hexadecimal- the 85th (decimal) byte is offset 0x055h
GLOBAL OFFSET- the offset's
location in the whole file
LOCAL OFFSET- the offset's
location within a section of the file, such as in a feature block
BYTE- unit of eight bits in binary, represented in hex as two digits or letters, such as "02", "5A", or "CB"
BIT- smallest unit of binary numbers- "0" (off) or "1" (on)
HEADER- in items, the first d114 bytes of the file, which establishes general properties of the item, such as usability, most icons, item avatar (image), or type. Contains counts of how many feature blocks affect the user of the item and how many extended headers are present in the file
EXTENDED HEADER- an additional section of d56 bytes following the header that establishes more specific properties, such as attack type, equipped icon, some ranged graphic effects, and a count of how many feature blocks are used by the extended header. Multiple extended headers may be used in an item to generate a wide range of abilities
FEATURE BLOCK- sections of the file d48 bytes in length that detail specific properties or effects that an item posesses. Also called "structs". See the Mailing List for details.
LITTLE-ENDIAN- a method of expressing numbers
with multiple place values, not as complex as it sounds:
If we were to say " one million, four
hundred twenty-five thousand, eight hundred
and sixty-two dollars", we would write this:
"$ 1, 425,
862".
That is big- endian. To express that amount of money in little- endian,
we would write "$ 862,
425,
1"
The amount of money is unchanged, but we express from left to right,
smallest value to highest value, instead of left to right, highest
to lowest as is done for common usage. So damage type "00 00 00 01" would
be written in little- endian as "01 00 00 00"
DATA TYPES- some common data types referred to, and what they mean-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|