Endianness
Endianness is the order or sequence of bytes. It is primarily expressed as big-endian (BE) or little-endian (LE). As an example, let's look at the 32-bit integer 0x75BCD15
:
graph LR input[0x075BCD15] input -- most significant --> A1[0x07] --> output input --> B1[0x5B] --> output input --> C1[0xCD] --> output input -- least significant --> D1[0x15] --> output output[123456789]
The 32-bit integer 0x075BCD15
has the value 123456789
on a big-endian system.
graph LR input[0x075BCD15] input -- least significant --> A1[0x15] --> output input --> B1[0xCD] --> output input --> C1[0x5B] --> output input -- most significant --> D1[0x07] --> output output[365779719]
The 32-bit integer 0x075BCD15
has the value 365779719
on a little-endian system.
Game Version Differences
- Skyrim Legendary Edition: big-endian
- Skyrim Special Edition: big-endian
- Fallout 4: little-endian
The differences between the versions can be explained by looking at the target platforms:
- PlayStation 3: big-endian
- Xbox 360: big-endian
- PlayStation 4: (AMD64 x86-64) little-endian
- Xbox One: (AMD64 x86-64) little-endian
- PlayStation 5: (AMD64 x86_64) little-endian
- Xbox Series X/S: (AMD64 x86_64) little-endian
Aside from the PS3 and Xbox 360, all current platforms use the x86-64 architecture and little-endian. They likely didn't change the endianness of Skyrim Special Edition scripts to keep compatibility with Skyrim Legendary Edition scripts.