XP

XP Format is a file encoding format developed by MT Technologies XP and is most commonly used to store memory information in digital entities, although the format has been adapted to be used for other types of data, such as T2X extraction archives, XTT objects, LEVEL world data files, and ATLX databases.

## Software/Programs

1. XP Editor: The XP Editor is the official free HTML-based program for visually editing the contents of XP files.

## Trivia

* The XP format was originally used to define the values of combinations of different colored concrete blocks used in solid state redstone-based ROM readers in Minecraft, and has since been modified to suit the core data format requirements needed today.

## Format (XP 2) \*(DISCONTINUED)

NOTE: This encoding guide is copied from the \*original\* document used to define the functions of each byte.

Please note that a newer version of XP has replaced this version, and will be used for all files from now on.

```
0000: code: ablock {thin}

```

```
0001: code: bblock {thick}

```

```
0002: code: cblock {tlc}

```

```
0003: code: dblock {diamond}

```

```
0004: code: nullupdate

```

```
0005: code: nullupdate

```

```
0006: code: atlx_a

```

```
0007: code: atlx_b

```

```
0008: code: atlx_c

```

```
0009: code: atlx_d

```

```
000A: IC-A

```

```
000B: IC-B

```

```
000C: IC-C

```

```
000D: IC-D

```

```
000E: IC-E

```

```
000F: IC-F

```

```
0010: IP-0

```

```
0011: IP-1

```

```
0012: IP-2

```

```
0013: IP-3

```

```
0014: IP-4

```

```
0015: IP-5

```

```
0016: IP-6

```

```
0017: IP-7

```

```
0018: IP-8

```

```
0019: IP-9

```

```
001A: IP-A

```

```
001B: IP-B

```

```
001C: IP-C

```

```
001D: IP-D

```

```
001E: IP-E

```

```
001F: IP-F

```

```
0020: SPACE0

```

```
0021: !

```

```
0022: "

```

```
0023: #

```

```
0024: $

```

```
0025: %

```

```
0026: &

```

```
0027: '

```

```
0028: (

```

```
0029: )

```

```
002A: *

```

```
002B: +

```

```
002C: ,

```

```
002D: -

```

```
002E: .

```

```
002F: /

```

```
0030: 0

```

```
0031: 1

```

```
0032: 2

```

```
0033: 3

```

```
0034: 4

```

```
0035: 5

```

```
0036: 6

```

```
0037: 7

```

```
0038: 8

```

```
0039: 9

```

```
003A: :

```

```
003B: ;

```

```
003C: <

```

```
003D: =

```

```
003E: >

```

```
003F: ?

```

```
0040: @

```

```
0041: A

```

```
0042: B

```

```
0043: C

```

```
0044: D

```

```
0045: E

```

```
0046: F

```

```
0047: G

```

```
0048: H

```

```
0049: I

```

```
004A: J

```

```
004B: K

```

```
004C: L

```

```
004D: M

```

```
004E: N

```

```
004F: O

```

```
0050: P

```

```
0051: Q

```

```
0052: R

```

```
0053: S

```

```
0054: T

```

```
0055: U

```

```
0056: V

```

```
0057: W

```

```
0058: X

```

```
0059: Y

```

```
005A: Z

```

```
005B: [

```

```
005C: \

```

```
005D: ]

```

```
005E: ^

```

```
005F: _

```

```
0060: `

```

```
0061: a

```

```
0062: b

```

```
0063: c

```

```
0064: d

```

```
0065: e

```

```
0066: f

```

```
0067: g

```

```
0068: h

```

```
0069: i

```

```
006A: j

```

```
006B: k

```

```
006C: l

```

```
006D: m

```

```
006E: n

```

```
006F: o

```

```
0070: p

```

```
0071: q

```

```
0072: r

```

```
0073: s

```

```
0074: t

```

```
0075: u

```

```
0076: v

```

```
0077: w

```

```
0078: x

```

```
0079: y

```

```
007A: z

```

```
007B: {

```

```

```

```
007D: }

```

```
007E: ~

```

```
007F: cx+-

```

```
0080: atl00

```

```
0081: atl01

```

```
0082: atl02

```

```
0083: atl03

```

```
0084: atl04

```

```
0085: atl05

```

```
0086: atl06

```

```
0087: atl07

```

```
0088: atl08

```

```
0089: atl09

```

```
008A: atl0A

```

```
008B: atl0B

```

```
008C: atl0C

```

```
008D: atl0D

```

```
008E: atl0E

```

```
008F: atl0F

```

```
0090: section start

```

```
0091: section end

```

```
0092: section type: package

```

```
0093: section type: ATLX code controller

```

```
0094: section type: ATLX RUNDLER

```

```
0095: section type: ATLX IMAGEPLEX

```

```
0096: section type: ATLX AUDIOPLEX

```

```
0097: section type: ATLX INSTANCE

```

```
0098: section type: ATLX DATABASE

```

```
0099: section type: ATLX TEXTPLEX

```

```
009A: section type: ATLX EXPERIENCE

```

```
009B: section type: ATLX SENSEPLEX_SC

```

```
009C: section type: Anatlex Root Package

```

```
009D: section type: ATLX SENSEPLEX_TC

```

```
009E: tab

```

```
009F: divider

```

```
00A0: null byte

```

```
00A1: ¢

```

```
00A2: ®

```

```
00A3: ©

```

```
00A4: ™

```

```
00A5: ≡

```

```
00A6: ≈

```

```
00A7: ≠

```

```
00A8: ≤

```

```
00A9: ≥

```

```
00AA: §

```

```
00AB: «

```

```
00AC: »

```

```
00AD: ½

```

```
00AE: ¼

```

```
00AF: ¾

```

```
00B0: µ

```

```
00B1: Æ

```

```
00B2: Œ

```

```
00B3: RECTO

```

```
00B4: PICTO

```

```
00B5: MECTO

```

```
00B6: SICTO

```

```
00B7: DECTO

```

```
00B8: PECTO

```

```
00B9: HICTO

```

```
00BA: XECTO

```

```
00BB: °

```

```
00BC: ±

```

```
00BD: ¡

```

```
00BE: ¿

```

```
00BF: ·

```

```
00C0: MEDIACODE 0

```

```
00C1: MEDIACODE 1

```

```
00C2: MEDIACODE 2

```

```
00C3: MEDIACODE 3

```

```
00C4: MEDIACODE 4

```

```
00C5: MEDIACODE 5

```

```
00C6: MEDIACODE 6

```

```
00C7: MEDIACODE 7

```

```
00C8: MEDIACODE 8

```

```
00C9: MEDIACODE 9

```

```
00CA: MEDIACODE A

```

```
00CB: MEDIACODE B

```

```
00CC: MEDIACODE C

```

```
00CD: MEDIACODE D

```

```
00CE: MEDIACODE E

```

```
00CF: MEDIACODE F

```

```
00D0: ÷

```

```
00D1: ß

```

```
00D2: Γ

```

```
00D3: Δ

```

```
00D4: Θ

```

```
00D5: Λ

```

```
00D6: Ξ

```

```
00D7: Π

```

```
00D8: Σ

```

```
00D9: ▒

```

```
00DA: █

```

```
00DB: ♀

```

```
00DC: ♂

```

```
00DD: ◊

```

```
00DE: ♪

```

```
00DF: ♫

```

```
00E0: ♯

```

```
00E1: ✶

```

```
00E2: ■

```

```
00E3: □

```

```
00E4: ╱

```

```
00E5: ╲

```

```
00E6: ╳

```

```
00E7: PGREG

```

```
00E8: ‰

```

```
00E9: †

```

```
00EA: ‡

```

```
00EB: ‽

```

```
00EC: ⌂

```

```
00ED: music_b

```

```
00EE: 4_dots

```

```
00EF: CSRT

```

```
00F0: ifo_1

```

```
00F1: ifo_2

```

```
00F2: ♠

```

```
00F3: ♣

```

```
00F4: ♥

```

```
00F5: ♦

```

```
00F6: txt_custom1

```

```
00F7: txt_custom2

```

```
00F8: txt_custom3

```

```
00F9: txt_custom4

```

```
00FA: ˥

```

```
00FB: ˦

```

```
00FC: ˧

```

```
00FD: ˨

```

```
00FE: ˩

```

```
00FF: ÿ

```

## Encoding

Please note that all encoding information is based on XP 3, and that XP 2 is only shown for reference.

### Header

All XP files start with a header, which contains the name of the subformat/filetype, but is otherwise the same for all files.

```
00 00 58 50 33 30 30 FF 01 99 $$ $$ $$ $$ $$ 3E 00

```

$$ $$ $$ $$ $$ is replaced with the hexadecimal string for the subformat.

```
- XP // 58 50

```

```
- LEVEL // 4C 45 56 45 4C

```

```
- ATLX // 41 54 4C 58

```

```
- XTT / 58 54 54

```

### Package Layout

All XP formats and subformats use 3-Key Package Structure, where there are 3 bytes used to define each package.

Type Byte: Bytes 92-9F are used to define the package's type.

Start Byte: Byte 90 defines the start of the package's data.

End Byte: Byte 91 defines the end of the package's data.

The name (in text) of the package is placed between the Type Byte and the Start Byte.

The data (more packages, if folder [92], or data, if any other [93-9F]) is placed between the Start Byte and the End Byte.