Author Topic: (PSX FF7) FIELD\*.BCX files - sample breakdown  (Read 11934 times)

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
(PSX FF7) FIELD\*.BCX files - sample breakdown
« on: 2012-08-13 15:38:12 »
Using Akari's notes from Q-Gears, nudges in the right direction by Akari, the source from Micky's BSX/BCX viewer, and my own logical deduction, I've broken down CLOUD.BCX (Cloud's BCX file) as an example of BCX structure. Since there's nothing in the wiki concerning BCX files (BSX files are covered, but are not entirely analogous), perhaps this information would be a useful addition...


'BCX Header Section' [at offset 0x00000000]

Code: [Select]
CC 2D 00 00 40 2B 00 00


Breakdown:

CC 2D 00 00 - size of the (decompressed) file in bytes (little-endian, so 0x00002DCC; 11724 bytes)

40 2B 00 00 - offset to 'Models Section' (little-endian, so 0x00002B40)



Note: 'BCX Header Section' runs until 'Skeleton Data Section'.



___________________________________


'Skeleton Data Section' [at offset 0x00000008]:

Note: Offset to 'Skeleton Data Section' contained in 'Models Section', Parts.

Note2: Number of parts contained in 'Models Section', Header.


1st part [at offset 0x00000008]:

Code: [Select]
00 00 00 00 48 00 CF FF CA FF 00 00 B8 FF CF FF CA FF 00 00 00 00 C7 FF 1F 00 00 00 5B 00 C8 FF F6 FF 00 00

2D 00 3E 00 CA FF 00 00 00 00 3E 00 1F 00 00 00 D3 FF 3E 00 CA FF 00 00 41 00 3E 00 F9 FF 00 00 B8 FF 25 00

CA FF 00 00 48 00 25 00 CA FF 00 00 BF FF 3E 00 F9 FF 00 00 A5 FF 25 00 F6 FF 00 00 A5 FF C7 FF F6 FF 00 00

5B 00 25 00 F6 FF 00 00 02 0A 05 00 61 49 77 72 61 49 77 BB 61 49 77 76 0A 02 0C 00 61 49 77 BB 61 49 77 72

61 49 77 C9 02 01 0C 00 61 49 77 72 61 49 77 9D 61 49 77 C9 02 07 03 00 61 49 77 72 61 49 77 35 61 49 77 26

02 05 07 00 61 49 77 72 61 49 77 76 61 49 77 35 0A 0C 0B 00 61 49 77 BB 61 49 77 C9 61 49 77 E2 06 05 0A 00

61 49 77 99 61 49 77 76 61 49 77 BB 03 07 0D 00 61 49 77 26 61 49 77 35 61 49 77 0C 05 04 07 00 61 49 77 76

61 49 77 56 61 49 77 35 05 06 04 00 61 49 77 76 61 49 77 99 61 49 77 56 00 02 03 00 61 49 77 53 61 49 77 72

61 49 77 26 01 02 00 00 61 49 77 9D 61 49 77 72 61 49 77 53 0A 0B 06 08 61 49 77 BB 61 49 77 E2 61 49 77 99

61 49 77 C7 0C 01 0B 08 61 49 77 C9 61 49 77 9D 61 49 77 E2 61 49 77 C7 03 0D 00 09 61 49 77 26 61 49 77 0C

61 49 77 53 61 49 77 2A 04 09 07 0D 61 49 77 56 61 49 77 2A 61 49 77 35 61 49 77 0C 09 08 00 01 61 49 77 2A

61 49 77 C7 61 49 77 53 61 49 77 9D 09 04 08 06 61 49 77 2A 61 49 77 56 61 49 77 C7 61 49 77 99


2nd part [at offset 0x000001B4]:

Code: [Select]
00 00 00 00 92 FF B0 FF A2 FF 00 00 BA FF DD FF CE FF 00 00 D5 FF 45 00 DB FF 00 00 BB FF 2B 00 DE FF 00 00

90 FF 38 00 B6 FF 00 00 B5 FF 55 00 B7 FF 00 00 BC FF D9 FF FA FF 00 00 D6 FF 3D 00 09 00 00 00 BD FF 24 00

05 00 00 00 A4 FF D2 FF 49 FF 00 00 A4 FF 21 00 55 FF 00 00 C1 FF 38 00 57 FF 00 00 CE FF 55 00 B7 FF 00 00

D6 FF 38 00 57 FF 00 00 19 00 38 00 57 FF 00 00 21 00 55 00 B7 FF 00 00 3F 00 38 00 57 FF 00 00 5C 00 21 00

55 FF 00 00 5C 00 D2 FF 49 FF 00 00 43 00 24 00 05 00 00 00 2A 00 3D 00 09 00 00 00 44 00 D9 FF FA FF 00 00

4C 00 55 00 B7 FF 00 00 70 00 38 00 B6 FF 00 00 45 00 2B 00 DE FF 00 00 2B 00 45 00 DB FF 00 00 46 00 DD FF

CE FF 00 00 6F 00 B0 FF A2 FF 00 00 D6 FF D2 FF 49 FF 00 00 19 00 D2 FF 49 FF 00 00 33 00 55 00 B7 FF 00 00

C1 FF D2 FF 49 FF 00 00 0C 02 05 00 5A 1A 00 79 5A 1A 00 89 5A 1A 00 9A 19 1E 16 00 5A 1A 00 66 5A 1A 00 79

5A 1A 00 55 0E 1E 0F 00 35 0F 00 70 35 0F 00 79 35 0F 00 79 10 12 11 00 35 0F 00 70 35 0F 00 3D 35 0F 00 2A

1D 1B 12 00 35 0F 00 8C 35 0F 00 1C 35 0F 00 3D 19 0F 1E 00 61 49 77 66 61 49 77 79 61 49 77 79 19 14 02 07

5A 1A 00 66 5A 1A 00 52 5A 1A 00 89 5A 1A 00 9C 01 06 1A 15 5A 1A 00 AC 5A 1A 00 AC 5A 1A 00 42 5A 1A 00 42

01 03 06 08 5A 1A 00 AC 5A 1A 00 E2 5A 1A 00 AC 5A 1A 00 D3 02 07 03 08 5A 1A 00 89 5A 1A 00 9C 5A 1A 00 E2

5A 1A 00 D3 05 0B 0C 0D 5A 1A 00 9A 5A 1A 00 7F 5A 1A 00 79 5A 1A 00 70 19 18 14 13 5A 1A 00 66 5A 1A 00 0C

5A 1A 00 52 5A 1A 00 1D 1A 15 18 13 5A 1A 00 42 5A 1A 00 42 5A 1A 00 0C 5A 1A 00 1D 1C 0D 1F 0B 5A 1A 00 63

5A 1A 00 70 5A 1A 00 8C 5A 1A 00 7F 10 16 0E 1E 35 0F 00 70 35 0F 00 55 35 0F 00 70 35 0F 00 79 17 16 11 10

35 0F 00 07 35 0F 00 55 35 0F 00 2A 35 0F 00 70 12 10 1D 0E 35 0F 00 3D 35 0F 00 70 35 0F 00 8C 35 0F 00 70

00 1C 09 1F 61 49 77 D0 61 49 77 63 61 49 77 B3 61 49 77 8C 00 1B 1C 1D 61 49 77 D0 61 49 77 1C 61 49 77 63

61 49 77 8C 0D 1C 0E 1D 61 49 77 70 61 49 77 63 61 49 77 70 61 49 77 8C 17 11 1B 12 61 49 77 07 61 49 77 2A

61 49 77 1C 61 49 77 3D 17 1B 18 1A 61 49 77 07 61 49 77 1C 61 49 77 0C 61 49 77 42 17 18 16 19 61 49 77 07

61 49 77 0C 61 49 77 55 61 49 77 66 02 0C 19 0F 61 49 77 89 61 49 77 79 61 49 77 66 61 49 77 79 0B 0A 1F 09

61 49 77 7F 61 49 77 C7 61 49 77 8C 61 49 77 B3 04 0A 05 0B 61 49 77 E8 61 49 77 C7 61 49 77 9A 61 49 77 7F

04 05 03 02 61 49 77 E8 61 49 77 9A 61 49 77 E2 61 49 77 89 04 03 00 01 61 49 77 E8 61 49 77 E2 61 49 77 D0

61 49 77 AC 04 00 0A 09 61 49 77 E8 61 49 77 D0 61 49 77 C7 61 49 77 B3 1B 00 1A 01 61 49 77 1C 61 49 77 D0

61 49 77 42 61 49 77 AC 15 06 13 08 61 49 77 42 61 49 77 AC 61 49 77 1D 61 49 77 D3 0F 0C 0E 0D 61 49 77 79

61 49 77 79 61 49 77 70 61 49 77 70 08 07 13 14 61 49 77 D3 61 49 77 9C 61 49 77 1D 61 49 77 52



3rd part [at offset 0x00000534]:

Code: [Select]
00 00 00 00 3E 00 2F 00 AA FF 00 00 00 00 51 00 A6 FF 00 00 1A 00 51 00 4F FF 00 00 44 00 3C 00 43 FF 00 00

C2 FF 2F 00 AA FF 00 00 E5 FF 50 00 4E FF 00 00 B8 FF 37 00 53 FF 00 00 45 00 D5 FF 02 FF 00 00 2E 00 16 00

03 FF 00 00 02 00 D5 FF FE FE 00 00 BA FF 26 00 11 FF 00 00 C5 FF D5 FF 04 FF 00 00 01 00 1E 00 FC FE 00 00

ED FF 13 00 00 00 00 00 ED FF ED FF 00 00 00 00 ED FF ED FF C8 FF 00 00 ED FF 13 00 C8 FF 00 00 13 00 ED FF

00 00 00 00 13 00 13 00 00 00 00 00 13 00 13 00 C8 FF 00 00 13 00 ED FF C8 FF 00 00 23 00 80 00 2F FF 00 00

16 00 4A 00 34 FF 00 00 44 00 63 00 38 FF 00 00 24 00 3D 00 1C FF 00 00 2F FF D3 FF 6C FF 00 00 99 FF 13 00

2E FF 00 00 A3 FF 7E 00 08 FF 00 00 A8 FF 6B 00 26 FF 00 00 23 00 48 00 3F FF 00 00 7F 00 1E 00 C7 FF 00 00

00 00 83 FF 43 FF 00 00 55 00 BB FF 24 FF 00 00 51 00 A4 FF 55 FF 00 00 01 00 8E FF 97 FF 00 00 B0 FF A4 FF

55 FF 00 00 A3 FF D0 FF 20 FF 00 00 00 00 5D 00 56 FF 00 00 F3 FF 4B 00 2E FF 00 00 FD FF 66 00 3D FF 00 00

BB FF 33 00 77 FF 00 00 B2 00 BB FF 7E FF 00 00 5C 00 16 00 54 FF 00 00 62 00 01 00 81 FF 00 00 49 00 2D 00

77 FF 00 00 6D 00 FF FF 64 FF 00 00 B6 00 D9 FF 2D FF 00 00 7C FF C9 00 7A FE 00 00 73 FF 38 00 BF FF 00 00

E1 FF 63 00 50 FF 00 00 D7 FF DA FF CE FF 00 00 D7 FF 06 00 D5 FF 00 00 2B 00 06 00 D5 FF 00 00 2B 00 CE FF

CE FF 00 00 0B 00 94 00 27 FF 00 00 EA FF 77 00 31 FF 00 00 AD FF 72 00 C7 FF 00 00 59 00 0D 00 1D FF 00 00

03 00 3A 00 AE FE 00 00 C0 FF A7 FF 8C FF 00 00 52 00 E5 FF B1 FF 00 00 42 00 A7 FF 8C FF 00 00 AE FF E5 FF

B1 FF 00 00 C3 FF 21 00 F2 FF 00 00 A8 FF 02 00 89 FF 00 00 90 FF 18 00 6C FF 00 00 CE FF 2E 00 C4 FF 00 00

A0 FF E2 FF AE FF 00 00 8F FF D4 FF 9A FF 00 00 BE FF 0B 00 B7 FF 00 00 96 FF D3 FF 49 FF 00 00 A7 FF E4 FF

80 FF 00 00 00 00 36 00 E2 FF 00 00 94 FF ED FF 79 FF 00 00 69 00 03 00 43 FF 00 00 6C 00 D3 FF 49 FF 00 00

59 00 E4 FF 80 FF 00 00 52 00 02 00 89 FF 00 00 6C 00 ED FF 79 FF 00 00 42 00 0B 00 B7 FF 00 00 71 00 D4 FF

9A FF 00 00 60 00 E2 FF AE FF 00 00 34 00 2E 00 C4 FF 00 00 00 00 53 00 B8 FF 00 00 0A 00 4B 00 A7 FF 00 00

42 00 38 00 62 FF 00 00 0A 00 56 00 62 FF 00 00 F6 FF 4B 00 A7 FF 00 00 BE FF 38 00 62 FF 00 00 F6 FF 56 00

62 FF 00 00 58 59 04 57 FF FF FF 9A FF FF FF 9A FF FF FF D6 FF FF FF B0 04 05 06 07 55 00 56 54 FF FF FF 2D

FF FF FF 18 FF FF FF 55 FF FF FF 3E 08 09 0A 0B 52 48 53 00 FF FF FF 2C FF FF FF 84 FF FF FF 79 00 01 02 20

42 53 48 00 FF FF FF C0 FF FF FF 79 FF FF FF 84 03 02 01 20 01 56 54 00 FF FF FF 79 FF FF FF 55 FF FF FF 3E

0C 0A 0B 32 57 59 01 00 FF FF FF B0 FF FF FF 9A FF FF FF 79 07 05 0D 30 20 4A 39 00 FC A8 34 2F FC A8 34 0B

FC A8 34 15 39 18 08 00 FC A8 34 15 FC A8 34 3B FC A8 34 44 3D 4B 21 00 FC A8 34 26 FC A8 34 05 FC A8 34 30

3D 4C 4B 00 FC A8 34 26 FC A8 34 1A FC A8 34 05 4C 3D 3C 00 FC A8 34 1A FC A8 34 26 FC A8 34 40 4B 4A 20 00

FC A8 34 05 FC A8 34 0B FC A8 34 2F 08 07 39 00 FC A8 34 44 FC A8 34 3D FC A8 34 15 4A 03 39 00 FC A8 34 0B

FC A8 34 27 FC A8 34 15 21 22 3D 00 FC A8 34 30 FC A8 34 81 FC A8 34 26 1F 21 20 00 FC A8 34 7B FC A8 34 30

FC A8 34 2F 20 21 4B 00 FC A8 34 2F FC A8 34 30 FC A8 34 05 4B 4C 2D 00 FC A8 34 05 FC A8 34 1A FC A8 34 07

2C 2B 4D 00 FC A8 34 18 FC A8 34 39 FC A8 34 19 2B 4C 4D 00 FC A8 34 39 FC A8 34 1A FC A8 34 19 4C 2B 2D 00

FC A8 34 1A FC A8 34 39 FC A8 34 07 03 4A 2A 00 FC A8 34 27 FC A8 34 0B FC A8 34 06 2D 2A 4A 00 FC A8 34 07

FC A8 34 06 FC A8 34 0B 4B 2D 4A 00 FC A8 34 05 FC A8 34 07 FC A8 34 0B 02 1D 03 00 FC A8 34 4E FC A8 34 34

FC A8 34 27 41 46 1A 00 FC A8 34 E8 FC A8 34 EB FC A8 34 BE 41 1A 06 00 FC A8 34 E8 FC A8 34 BE FC A8 34 D5

28 41 06 00 FC A8 34 BF FC A8 34 E8 FC A8 34 D5 47 41 40 00 FC A8 34 E1 FC A8 34 E8 FC A8 34 E7 47 46 41 00

FC A8 34 E1 FC A8 34 EB FC A8 34 E8 22 23 3B 00 FC A8 34 81 FC A8 34 BD FC A8 34 C9 1F 24 23 00 FC A8 34 7B

FC A8 34 C1 FC A8 34 BD 23 24 46 00 FC A8 34 BD FC A8 34 C1 FC A8 34 EB 1A 46 24 00 FC A8 34 BE FC A8 34 EB

FC A8 34 C1 3B 47 3E 00 FC A8 34 C9 FC A8 34 E1 FC A8 34 AE 47 3B 46 00 FC A8 34 E1 FC A8 34 C9 FC A8 34 EB

46 3B 23 00 FC A8 34 EB FC A8 34 C9 FC A8 34 BD 41 28 3F 00 FC A8 34 E8 FC A8 34 BF FC A8 34 5E 28 40 3F 00

FC A8 34 BF FC A8 34 E7 FC A8 34 5E 40 41 3F 00 FC A8 34 E7 FC A8 34 E8 FC A8 34 5E 1A 1B 19 00 FC A8 34 BE

FC A8 34 80 FC A8 34 C9 07 20 39 00 FC A8 34 3D FC A8 34 2F FC A8 34 15 32 3B 3E 00 FC A8 34 9E FC A8 34 C9

FC A8 34 AE 35 22 32 00 FC A8 34 51 FC A8 34 81 FC A8 34 9E 3D 35 3C 00 FC A8 34 26 FC A8 34 51 FC A8 34 40

22 35 3D 00 FC A8 34 81 FC A8 34 51 FC A8 34 26 3B 32 22 00 FC A8 34 C9 FC A8 34 9E FC A8 34 81 26 1B 0A 00

FC A8 34 9A FC A8 34 80 FC A8 34 B7 0A 1B 1A 00 FC A8 34 B7 FC A8 34 80 FC A8 34 BE 27 26 37 00 FC A8 34 AA

FC A8 34 9A FC A8 34 D8 18 2F 0C 00 FC A8 34 3B FC A8 34 AD FC A8 34 91 09 08 0C 00 FC A8 34 87 FC A8 34 44

FC A8 34 91 0C 08 3A 00 FC A8 34 91 FC A8 34 44 FC A8 34 97 08 18 3A 00 FC A8 34 44 FC A8 34 3B FC A8 34 97

18 0C 3A 00 FC A8 34 3B FC A8 34 91 FC A8 34 97 0B 0A 24 00 FC A8 34 B3 FC A8 34 B7 FC A8 34 C1 0A 1A 24 00

FC A8 34 B7 FC A8 34 BE FC A8 34 C1 39 03 18 00 FC A8 34 15 FC A8 34 27 FC A8 34 3B 16 03 17 00 FC A8 34 23

FC A8 34 27 FC A8 34 2A 15 17 1E 00 FC A8 34 A5 FC A8 34 2A FC A8 34 40 18 26 2F 00 FC A8 34 3B FC A8 34 9A

FC A8 34 AD 15 02 16 00 FC A8 34 A5 FC A8 34 4E FC A8 34 23 15 1D 02 00 FC A8 34 A5 FC A8 34 34 FC A8 34 4E

36 18 16 00 FC A8 34 4B FC A8 34 3B FC A8 34 23 02 27 36 00 FC A8 34 4E FC A8 34 AA FC A8 34 4B 02 36 16 00

FC A8 34 4E FC A8 34 4B FC A8 34 23 37 36 38 00 FC A8 34 D8 FC A8 34 4B FC A8 34 B6 36 27 38 00 FC A8 34 4B

FC A8 34 AA FC A8 34 B6 37 38 27 00 FC A8 34 D8 FC A8 34 B6 FC A8 34 AA 25 05 26 00 FC A8 34 69 FC A8 34 85

FC A8 34 9A 06 30 05 00 FC A8 34 D5 FC A8 34 AE FC A8 34 85 30 31 05 00 FC A8 34 AE FC A8 34 31 FC A8 34 85

05 06 26 00 FC A8 34 85 FC A8 34 D5 FC A8 34 9A 1C 05 31 00 FC A8 34 9F FC A8 34 85 FC A8 34 31 2F 0A 0C 00

FC A8 34 AD FC A8 34 B7 FC A8 34 91 30 06 1C 00 FC A8 34 AE FC A8 34 D5 FC A8 34 9F 0C 0B 09 00 FC A8 34 91

FC A8 34 B3 FC A8 34 87 1C 31 30 00 FC A8 34 9F FC A8 34 31 FC A8 34 AE 26 0A 2F 00 FC A8 34 9A FC A8 34 B7

FC A8 34 AD 26 06 1B 00 FC A8 34 9A FC A8 34 D5 FC A8 34 80 2C 03 2E 00 FC A8 34 18 FC A8 34 27 FC A8 34 1A

03 2A 2E 00 FC A8 34 27 FC A8 34 06 FC A8 34 1A 2A 2C 2E 00 FC A8 34 06 FC A8 34 18 FC A8 34 1A 2B 2A 2D 00

FC A8 34 39 FC A8 34 06 FC A8 34 07 2B 2C 29 00 FC A8 34 39 FC A8 34 18 FC A8 34 1C 2C 2A 29 00 FC A8 34 18

FC A8 34 06 FC A8 34 1C 2A 2B 29 00 FC A8 34 06 FC A8 34 39 FC A8 34 1C 26 27 02 00 FC A8 34 9A FC A8 34 AA

FC A8 34 4E 26 02 25 00 FC A8 34 9A FC A8 34 4E FC A8 34 69 07 1F 20 00 FC A8 34 3D FC A8 34 7B FC A8 34 2F

1F 07 09 00 FC A8 34 7B FC A8 34 3D FC A8 34 87 0B 1F 09 00 FC A8 34 B3 FC A8 34 7B FC A8 34 87 24 1F 0B 00

FC A8 34 C1 FC A8 34 7B FC A8 34 B3 1F 22 21 00 FC A8 34 7B FC A8 34 81 FC A8 34 30 22 1F 23 00 FC A8 34 81

FC A8 34 7B FC A8 34 BD 03 1E 17 00 FC A8 34 27 FC A8 34 40 FC A8 34 2A 03 15 1E 00 FC A8 34 27 FC A8 34 A5

FC A8 34 40 15 03 1D 00 FC A8 34 A5 FC A8 34 27 FC A8 34 34 05 1C 06 00 FC A8 34 85 FC A8 34 9F FC A8 34 D5

06 19 1B 00 FC A8 34 D5 FC A8 34 C9 FC A8 34 80 06 1A 19 00 FC A8 34 D5 FC A8 34 BE FC A8 34 C9 03 16 18 00

FC A8 34 27 FC A8 34 23 FC A8 34 3B 16 17 15 00 FC A8 34 23 FC A8 34 2A FC A8 34 A5 0B 0C 0A 00 FC A8 34 B3

FC A8 34 91 FC A8 34 B7 08 09 07 00 FC A8 34 44 FC A8 34 87 FC A8 34 3D 01 54 53 00 F8 A7 87 79 F8 A7 87 3E

F8 A7 87 79 50 3C 51 00 F8 A7 87 1C F8 A7 87 40 F8 A7 87 40 4F 00 4D 00 F8 A7 87 10 F8 A7 87 18 F8 A7 87 19

52 34 48 00 F8 A7 87 2C F8 A7 87 39 F8 A7 87 84 34 52 4F 00 F8 A7 87 39 F8 A7 87 2C F8 A7 87 10 4F 52 00 00

F8 A7 87 10 F8 A7 87 2C F8 A7 87 18 34 4F 3C 00 F8 A7 87 39 F8 A7 87 10 F8 A7 87 40 34 3C 35 00 F8 A7 87 39

F8 A7 87 40 F8 A7 87 51 51 3C 4F 00 F8 A7 87 40 F8 A7 87 40 F8 A7 87 10 4E 4D 4C 00 F8 A7 87 2A F8 A7 87 19

F8 A7 87 1A 51 4F 4E 00 F8 A7 87 40 F8 A7 87 10 F8 A7 87 2A 4C 50 4E 00 F8 A7 87 1A F8 A7 87 1C F8 A7 87 2A

3C 50 4C 00 F8 A7 87 40 F8 A7 87 1C F8 A7 87 1A 51 4E 50 00 F8 A7 87 40 F8 A7 87 2A F8 A7 87 1C 4E 4F 4D 00

F8 A7 87 2A F8 A7 87 10 F8 A7 87 19 48 34 33 00 F8 A7 87 84 F8 A7 87 39 F8 A7 87 B6 28 04 40 00 F8 A7 87 BF

F8 A7 87 D6 F8 A7 87 E7 45 49 40 00 F8 A7 87 DC F8 A7 87 C7 F8 A7 87 E7 49 43 44 00 F8 A7 87 C7 F8 A7 87 AE

F8 A7 87 D0 44 3E 47 00 F8 A7 87 D0 F8 A7 87 AE F8 A7 87 E1 44 47 49 00 F8 A7 87 D0 F8 A7 87 E1 F8 A7 87 C7

45 43 49 00 F8 A7 87 DC F8 A7 87 AE F8 A7 87 C7 40 49 47 00 F8 A7 87 E7 F8 A7 87 C7 F8 A7 87 E1 3E 43 45 00

F8 A7 87 AE F8 A7 87 AE F8 A7 87 DC 3E 33 32 00 F8 A7 87 AE F8 A7 87 B6 F8 A7 87 9E 45 33 3E 00 F8 A7 87 DC

F8 A7 87 B6 F8 A7 87 AE 42 45 04 00 F8 A7 87 C0 F8 A7 87 DC F8 A7 87 D6 42 33 45 00 F8 A7 87 C0 F8 A7 87 B6

F8 A7 87 DC 33 42 48 00 F8 A7 87 B6 F8 A7 87 C0 F8 A7 87 84 04 45 40 00 F8 A7 87 D6 F8 A7 87 DC F8 A7 87 E7

3E 44 43 00 F8 A7 87 AE F8 A7 87 D0 F8 A7 87 AE 57 53 04 00 F8 A7 87 B0 F8 A7 87 79 F8 A7 87 D6 00 2C 4D 00

F8 A7 87 18 F8 A7 87 18 F8 A7 87 19 2C 00 55 00 F8 A7 87 18 F8 A7 87 18 F8 A7 87 2D 52 53 00 00 F8 A7 87 2C

F8 A7 87 79 F8 A7 87 18 53 42 04 00 F8 A7 87 79 F8 A7 87 C0 F8 A7 87 D6 55 56 02 00 F8 A7 87 2D F8 A7 87 55

F8 A7 87 4E 02 56 25 00 F8 A7 87 4E F8 A7 87 55 F8 A7 87 69 55 02 03 00 F8 A7 87 2D F8 A7 87 4E F8 A7 87 27

2C 55 03 00 F8 A7 87 18 F8 A7 87 2D F8 A7 87 27 53 54 00 00 F8 A7 87 79 F8 A7 87 3E F8 A7 87 18 53 57 01 00

F8 A7 87 79 F8 A7 87 B0 F8 A7 87 79 25 59 05 00 F8 A7 87 69 F8 A7 87 9A F8 A7 87 85 01 59 25 00 F8 A7 87 79

F8 A7 87 9A F8 A7 87 69 56 01 25 00 F8 A7 87 55 F8 A7 87 79 F8 A7 87 69 01 56 54 00 F8 A7 87 79 F8 A7 87 55

F8 A7 87 3E 57 59 01 00 F8 A7 87 B0 F8 A7 87 9A F8 A7 87 79 52 48 53 00 F8 A7 87 2C F8 A7 87 84 F8 A7 87 79

42 53 48 00 F8 A7 87 C0 F8 A7 87 79 F8 A7 87 84 18 36 26 37 FC A8 34 3B FC A8 34 4B FC A8 34 9A FC A8 34 D8

34 35 33 32 F8 A7 87 39 F8 A7 87 51 F8 A7 87 B6 F8 A7 87 9E 58 04 06 28 F8 A7 87 9A F8 A7 87 D6 F8 A7 87 D5

F8 A7 87 BF 0F 10 0E 0D F8 A7 87 C1 F8 A7 87 C5 F8 A7 87 C6 F8 A7 87 C0 13 14 12 11 F8 A7 87 2B F8 A7 87 2F

F8 A7 87 2C F8 A7 87 28 12 11 0D 0E F8 A7 87 2C F8 A7 87 28 F8 A7 87 C0 F8 A7 87 C6 0F 14 10 13 F8 A7 87 C1

F8 A7 87 2F F8 A7 87 C5 F8 A7 87 2B 0F 0E 14 11 F8 A7 87 C1 F8 A7 87 C6 F8 A7 87 2F F8 A7 87 28 13 12 10 0D

F8 A7 87 2B F8 A7 87 2C F8 A7 87 C5 F8 A7 87 C0 59 58 05 06 F8 A7 87 9A F8 A7 87 9A F8 A7 87 85 F8 A7 87 D5

55 00 56 54 F8 A7 87 2D F8 A7 87 18 F8 A7 87 55 F8 A7 87 3E 58 59 04 57 F8 A7 87 9A F8 A7 87 9A F8 A7 87 D6

F8 A7 87 B0 00 1C 14 78 00 1C 14 78 01 1C 14 78 1F A7 0F BE 0F A0 00 A7 00 02 1A 01 01 1E 1A 1D 20 02 21 1E

3B 01 3B 1D 3F 1D 1F 1D 01 00 02 02 00 01 00 00



4th part [at offset 0x000012E8]:

Code: [Select]
00 00 00 00 DC FF CB FF 08 00 00 00 DD FF 00 00 37 00 00 00 19 00 CF FF 08 00 00 00 DC FF 35 00 08 00 00 00

19 00 31 00 08 00 00 00 15 00 00 00 37 00 00 00 42 00 00 00 03 00 00 00 BA FF 00 00 F9 FF 00 00 0F 00 10 00

CE FF 00 00 0F 00 F1 FF CE FF 00 00 F1 FF F1 FF CE FF 00 00 F1 FF 10 00 CE FF 00 00 0F 00 10 00 AD FF 00 00

0F 00 F1 FF AD FF 00 00 F1 FF 10 00 AD FF 00 00 F1 FF F1 FF AD FF 00 00 07 0B 03 00 F8 A7 87 EF F8 A7 87 B5

F8 A7 87 9A 08 09 06 00 F8 A7 87 27 F8 A7 87 37 F8 A7 87 00 0A 07 00 00 F8 A7 87 B9 F8 A7 87 EF F8 A7 87 B1

0B 07 0A 00 F8 A7 87 B5 F8 A7 87 EF F8 A7 87 B9 06 09 02 00 F8 A7 87 00 F8 A7 87 37 F8 A7 87 3F 08 06 04 00

F8 A7 87 27 F8 A7 87 00 F8 A7 87 55 07 03 01 00 33 33 33 EF 33 33 33 9A 33 33 33 B6 00 07 01 00 33 33 33 B1

33 33 33 EF 33 33 33 B6 05 06 02 00 33 33 33 39 33 33 33 00 33 33 33 3F 04 06 05 00 33 33 33 55 33 33 33 00

33 33 33 39 0C 0E 0D 0F F8 A7 87 2B F8 A7 87 C5 F8 A7 87 2F F8 A7 87 C1 0D 0F 09 0A F8 A7 87 2F F8 A7 87 C1

F8 A7 87 37 F8 A7 87 B9 0B 0A 0E 0F F8 A7 87 B5 F8 A7 87 B9 F8 A7 87 C5 F8 A7 87 C1 0B 0E 08 0C F8 A7 87 B5

F8 A7 87 C5 F8 A7 87 27 F8 A7 87 2B 0D 09 0C 08 F8 A7 87 2F F8 A7 87 37 F8 A7 87 2B F8 A7 87 27 00 02 0A 09

F8 A7 87 B1 F8 A7 87 3F F8 A7 87 B9 F8 A7 87 37 03 0B 04 08 F8 A7 87 9A F8 A7 87 B5 F8 A7 87 55 F8 A7 87 27

03 04 01 05 33 33 33 9A 33 33 33 55 33 33 33 B6 33 33 33 39 00 01 02 05 33 33 33 B1 33 33 33 B6 33 33 33 3F

33 33 33 39



5th part [at offset 0x000014C0]:

Code: [Select]
00 00 00 00 0F 00 10 00 00 00 00 00 0F 00 10 00 E2 FF 00 00 0F 00 F1 FF E2 FF 00 00 0F 00 F1 FF 00 00 00 00

F1 FF 10 00 00 00 00 00 F1 FF 10 00 E2 FF 00 00 F1 FF F1 FF 00 00 00 00 F1 FF F1 FF E2 FF 00 00 31 00 31 00

BA FF 00 00 30 00 D0 FF BA FF 00 00 CF FF 31 00 BA FF 00 00 D0 FF D0 FF BA FF 00 00 D0 FF D0 FF 74 FF 00 00

CF FF 31 00 74 FF 00 00 31 00 31 00 74 FF 00 00 30 00 D0 FF 74 FF 00 00 02 07 03 06 F8 A7 87 28 F8 A7 87 C6

F8 A7 87 28 F8 A7 87 C6 0B 07 09 02 F8 A7 87 C9 F8 A7 87 C6 F8 A7 87 26 F8 A7 87 28 04 06 05 07 F8 A7 87 C0

F8 A7 87 C6 F8 A7 87 C0 F8 A7 87 C6 0B 0A 07 05 F8 A7 87 C9 F8 A7 87 D6 F8 A7 87 C6 F8 A7 87 C0 05 01 04 00

F8 A7 87 C0 F8 A7 87 2C F8 A7 87 C0 F8 A7 87 2C 08 01 0A 05 F8 A7 87 18 F8 A7 87 2C F8 A7 87 D6 F8 A7 87 C0

01 02 00 03 F8 A7 87 2C F8 A7 87 28 F8 A7 87 2C F8 A7 87 28 08 09 01 02 F8 A7 87 18 F8 A7 87 26 F8 A7 87 2C

F8 A7 87 28 04 00 06 03 F8 A7 87 C0 F8 A7 87 2C F8 A7 87 C6 F8 A7 87 28 09 0F 0B 0C 89 89 89 26 89 89 89 2F

89 89 89 C9 89 89 89 C1 0A 0D 08 0E 89 89 89 D6 89 89 89 C5 89 89 89 18 89 89 89 2B 0E 0D 0F 0C 89 89 89 2B

89 89 89 C5 89 89 89 2F 89 89 89 C1 0F 09 0E 08 89 89 89 2F 89 89 89 26 89 89 89 2B 89 89 89 18 0D 0A 0C 0B

89 89 89 C5 89 89 89 D6 89 89 89 C1 89 89 89 C9




6th part [at offset 0x0000165C]:

Code: [Select]
00 00 00 29 00 D8 FF BB FF 00 00 30 00 D0 FF 00 00 00 00 31 00 31 00 00 00 00 00 29 00 29 00 BB FF 00 00 D7

FF D8 FF BB FF 00 00 D0 FF D0 FF 00 00 00 00 D7 FF 29 00 BB FF 00 00 CF FF 31 00 00 00 00 00 02 03 01 00 33

33 33 2C 33 33 33 43 33 33 33 28 33 33 33 2F 01 00 05 04 33 33 33 28 33 33 33 2F 33 33 33 C6 33 33 33 C1 07

05 06 04 33 33 33 C0 33 33 33 C6 33 33 33 AD 33 33 33 C1 02 07 03 06 33 33 33 2C 33 33 33 C0 33 33 33 43 33

33 33 AD 03 06 00 04 33 33 33 43 33 33 33 AD 33 33 33 2F 33 33 33 C1 07 02 05 01 33 33 33 C0 33 33 33 2C 33

33 33 C6 33 33 33 28




7th part [at offset 0x00001718]:

Code: [Select]
00 00 00 00 24 00 CB FF 08 00 00 00 E7 FF CF FF 08 00 00 00 23 00 00 00 37 00 00 00 24 00 35 00 08 00 00 00

E7 FF 31 00 08 00 00 00 EB FF 00 00 37 00 00 00 BE FF 00 00 03 00 00 00 46 00 00 00 F9 FF 00 00 F1 FF 10 00

CE FF 00 00 F1 FF F1 FF CE FF 00 00 0F 00 F1 FF CE FF 00 00 0F 00 10 00 CE FF 00 00 F1 FF F1 FF AD FF 00 00

F1 FF 10 00 AD FF 00 00 0F 00 10 00 AD FF 00 00 0F 00 F1 FF AD FF 00 00 06 04 05 00 F8 A7 87 EC F8 A7 87 9A

F8 A7 87 B6 03 07 02 00 F8 A7 87 55 F8 A7 87 03 F8 A7 87 39 07 00 02 00 F8 A7 87 03 F8 A7 87 3F F8 A7 87 39

06 08 04 00 F8 A7 87 EC F8 A7 87 CA F8 A7 87 9A 09 06 01 00 F8 A7 87 B9 F8 A7 87 EC F8 A7 87 B1 07 0B 0A 00

F8 A7 87 03 F8 A7 87 3B F8 A7 87 37 07 0A 00 00 F8 A7 87 03 F8 A7 87 37 F8 A7 87 3F 09 08 06 00 F8 A7 87 B9

F8 A7 87 CA F8 A7 87 EC 0B 07 03 00 F8 A7 87 3B F8 A7 87 03 F8 A7 87 55 06 05 01 00 F8 A7 87 EC F8 A7 87 B6

F8 A7 87 B1 03 04 0B 08 F8 A7 87 55 F8 A7 87 9A F8 A7 87 3B F8 A7 87 CA 00 0A 01 09 F8 A7 87 3F F8 A7 87 37

F8 A7 87 B1 F8 A7 87 B9 0C 0D 09 08 F8 A7 87 C1 F8 A7 87 C5 F8 A7 87 B9 F8 A7 87 CA 0B 08 0E 0D F8 A7 87 3B

F8 A7 87 CA F8 A7 87 2B F8 A7 87 C5 0B 0E 0A 0F F8 A7 87 3B F8 A7 87 2B F8 A7 87 37 F8 A7 87 2F 0C 09 0F 0A

F8 A7 87 C1 F8 A7 87 B9 F8 A7 87 2F F8 A7 87 37 0D 0C 0E 0F F8 A7 87 C5 F8 A7 87 C1 F8 A7 87 2B F8 A7 87 2F

03 02 04 05 F8 A7 87 55 F8 A7 87 39 F8 A7 87 9A F8 A7 87 B6 00 01 02 05 F8 A7 87 3F F8 A7 87 B1 F8 A7 87 39

F8 A7 87 B6





8th part [at offset 0x000018F0]:

Code: [Select]
00 00 00 00 F1 FF F1 FF 00 00 00 00 F1 FF F1 FF E2 FF 00 00 F1 FF 10 00 E2 FF 00 00 F1 FF 10 00 00 00 00 00

0F 00 10 00 E2 FF 00 00 0F 00 10 00 00 00 00 00 0F 00 F1 FF E2 FF 00 00 0F 00 F1 FF 00 00 00 00 D0 FF D0 FF

BA FF 00 00 CF FF 31 00 BA FF 00 00 31 00 31 00 BA FF 00 00 30 00 D0 FF BA FF 00 00 31 00 31 00 74 FF 00 00

30 00 D0 FF 74 FF 00 00 D0 FF D0 FF 74 FF 00 00 CF FF 31 00 74 FF 00 00 03 00 02 01 F8 A7 87 C0 F8 A7 87 C6

F8 A7 87 C0 F8 A7 87 C6 03 02 05 04 F8 A7 87 C0 F8 A7 87 C0 F8 A7 87 2C F8 A7 87 2C 07 05 06 04 F8 A7 87 28

F8 A7 87 2C F8 A7 87 28 F8 A7 87 2C 06 01 07 00 F8 A7 87 28 F8 A7 87 C6 F8 A7 87 28 F8 A7 87 C6 09 02 08 01

F8 A7 87 D6 F8 A7 87 C0 F8 A7 87 C9 F8 A7 87 C6 0A 04 09 02 F8 A7 87 18 F8 A7 87 2C F8 A7 87 D6 F8 A7 87 C0

0B 06 0A 04 F8 A7 87 26 F8 A7 87 28 F8 A7 87 18 F8 A7 87 2C 08 01 0B 06 F8 A7 87 C9 F8 A7 87 C6 F8 A7 87 26

F8 A7 87 28 0C 0D 0A 0B F8 A7 87 2B F8 A7 87 2F F8 A7 87 18 F8 A7 87 26 08 0E 09 0F F8 A7 87 C9 F8 A7 87 C1

F8 A7 87 D6 F8 A7 87 C5 0C 0F 0D 0E F8 A7 87 2B F8 A7 87 C5 F8 A7 87 2F F8 A7 87 C1 05 07 03 00 F8 A7 87 2C

F8 A7 87 28 F8 A7 87 C0 F8 A7 87 C6 09 0F 0A 0C F8 A7 87 D6 F8 A7 87 C5 F8 A7 87 18 F8 A7 87 2B 08 0B 0E 0D

F8 A7 87 C9 F8 A7 87 26 F8 A7 87 C1 F8 A7 87 2F





9th part [at offset 0x00001A8C]:

Code: [Select]
00 00 00 00 D7 FF 29 00 BB FF 00 00 CF FF 31 00 00 00 00 00 D0 FF D0 FF 00 00 00 00 D7 FF D8 FF BB FF 00 00

30 00 D0 FF 00 00 00 00 29 00 D8 FF BB FF 00 00 31 00 31 00 00 00 00 00 29 00 29 00 BB FF 00 00 01 02 00 03

33 33 33 C0 33 33 33 C6 33 33 33 AD 33 33 33 C1 02 04 03 05 33 33 33 C6 33 33 33 28 33 33 33 C1 33 33 33 2F

06 07 04 05 33 33 33 2C 33 33 33 43 33 33 33 28 33 33 33 2F 01 00 06 07 33 33 33 C0 33 33 33 AD 33 33 33 2C

33 33 33 43 00 03 07 05 33 33 33 AD 33 33 33 C1 33 33 33 43 33 33 33 2F 06 04 01 02 33 33 33 2C 33 33 33 28

33 33 33 C0 33 33 33 C6





10th part [at offset 0x00001B48]:

Code: [Select]
00 00 00 00 00 00 E9 FF 0B FF 00 00 00 00 56 00 65 FF 00 00 AA FF FF FF 66 FF 00 00 56 00 FF FF 66 FF 00 00

00 00 AA FF 66 FF 00 00 00 00 BA FF 00 00 00 00 30 00 EA FF 00 00 00 00 00 00 1A 00 00 00 00 00 D0 FF EA FF

00 00 00 00 00 00 EA FF 19 00 00 00 01 02 00 00 61 49 77 85 61 49 77 EF 61 49 77 6B 03 01 00 00 61 49 77 03

61 49 77 85 61 49 77 6B 04 03 00 00 61 49 77 7A 61 49 77 03 61 49 77 6B 02 04 00 00 61 49 77 EF 61 49 77 7A

61 49 77 6B 05 08 09 00 61 49 77 6F 61 49 77 DA 61 49 77 6D 08 07 09 00 61 49 77 DA 61 49 77 77 61 49 77 6D

07 06 09 00 61 49 77 77 61 49 77 16 61 49 77 6D 06 05 09 00 61 49 77 16 61 49 77 6F 61 49 77 6D 03 04 06 05

61 49 77 03 61 49 77 7A 61 49 77 16 61 49 77 6F 01 03 07 06 61 49 77 85 61 49 77 03 61 49 77 77 61 49 77 16

02 08 04 05 61 49 77 EF 61 49 77 DA 61 49 77 7A 61 49 77 6F 01 07 02 08 61 49 77 85 61 49 77 77 61 49 77 EF

61 49 77 DA





11th part [at offset 0x00001C6C]:

Code: [Select]
00 00 00 00 00 00 E9 FF 3B 00 00 00 00 00 55 00 FF FF 00 00 55 00 FF FF FF FF 00 00 AB FF FF FF FF FF 00 00

00 00 AB FF 00 00 00 00 3A 00 00 00 72 FF 00 00 00 00 C6 FF 72 FF 00 00 C6 FF 00 00 72 FF 00 00 00 00 3A 00

72 FF 00 00 C6 FF 00 00 0C FF 00 00 00 00 C6 FF 0C FF 00 00 3A 00 00 00 0C FF 00 00 00 00 3A 00 0C FF 00 00

00 00 1F 00 72 FF 00 00 E1 FF 00 00 72 FF 00 00 00 00 E1 FF 72 FF 00 00 1F 00 00 00 72 FF 00 00 E1 FF 00 00

AA FF 00 00 00 00 E1 FF AA FF 00 00 1F 00 00 00 AA FF 00 00 00 00 1F 00 AA FF 00 00 01 02 00 00 61 49 77 79

61 49 77 00 61 49 77 6D 03 01 00 00 61 49 77 EC 61 49 77 79 61 49 77 6D 04 03 00 00 61 49 77 68 61 49 77 EC

61 49 77 6D 02 04 00 00 61 49 77 00 61 49 77 68 61 49 77 6D 0B 0A 05 06 50 3B 10 08 50 3B 10 65 50 3B 10 0A

50 3B 10 6F 07 08 06 05 50 3B 10 E7 50 3B 10 77 50 3B 10 6F 50 3B 10 0A 07 06 09 0A 50 3B 10 E7 50 3B 10 6F

50 3B 10 E6 50 3B 10 65 0C 0B 08 05 50 3B 10 80 50 3B 10 08 50 3B 10 77 50 3B 10 0A 0A 0B 09 0C 50 3B 10 65

50 3B 10 08 50 3B 10 E6 50 3B 10 80 08 07 0C 09 50 3B 10 77 50 3B 10 E7 50 3B 10 80 50 3B 10 E6 04 12 03 11

61 49 77 68 61 49 77 7B 61 49 77 EC 61 49 77 E6 04 02 12 13 61 49 77 68 61 49 77 00 61 49 77 7B 61 49 77 08

03 11 01 14 61 49 77 EC 61 49 77 E6 61 49 77 79 61 49 77 80 02 01 13 14 61 49 77 00 61 49 77 79 61 49 77 08

61 49 77 80 12 0F 11 0E 61 49 77 7B 61 49 77 65 61 49 77 E6 61 49 77 E6 10 0F 13 12 61 49 77 08 61 49 77 65

61 49 77 08 61 49 77 7B 14 11 0D 0E 61 49 77 80 61 49 77 E6 61 49 77 80 61 49 77 E6 0D 10 14 13 61 49 77 80

61 49 77 08 61 49 77 80 61 49 77 08





12th part [at offset 0x00001E70]:

Code: [Select]
00 00 00 00 3D 00 23 00 FC FF 00 00 C3 FF 23 00 FC FF 00 00 1E 00 04 00 44 FF 00 00 00 00 2D 00 38 00 00 00

00 00 05 00 3F 00 00 00 3D 00 E7 FF 06 00 00 00 C3 FF E7 FF 06 00 00 00 1E 00 E4 FF 49 FF 00 00 E2 FF 04 00

44 FF 00 00 E2 FF E4 FF 49 FF 00 00 05 06 04 00 50 3B 10 26 50 3B 10 C9 50 3B 10 73 01 00 03 00 50 3B 10 D6

50 3B 10 18 50 3B 10 77 07 02 09 08 50 3B 10 37 50 3B 10 43 50 3B 10 B9 50 3B 10 AD 06 01 04 03 50 3B 10 C9

50 3B 10 D6 50 3B 10 73 50 3B 10 77 00 05 03 04 50 3B 10 18 50 3B 10 26 50 3B 10 77 50 3B 10 73 00 02 05 07

50 3B 10 18 50 3B 10 43 50 3B 10 26 50 3B 10 37 01 06 08 09 50 3B 10 D6 50 3B 10 C9 50 3B 10 AD 50 3B 10 B9

06 05 09 07 50 3B 10 C9 50 3B 10 26 50 3B 10 B9 50 3B 10 37 01 08 00 02 50 3B 10 D6 50 3B 10 AD 50 3B 10 18

50 3B 10 43





13th part [at offset 0x00001F70]:

Code: [Select]
00 00 00 00 00 00 E9 FF 0B FF 00 00 00 00 56 00 65 FF 00 00 56 00 FF FF 66 FF 00 00 AA FF FF FF 66 FF 00 00

00 00 AA FF 66 FF 00 00 00 00 BA FF 00 00 00 00 D0 FF EA FF 00 00 00 00 00 00 1A 00 00 00 00 00 30 00 EA FF

00 00 00 00 00 00 EA FF 19 00 00 00 02 01 00 00 61 49 77 03 61 49 77 85 61 49 77 6B 01 03 00 00 61 49 77 85

61 49 77 EF 61 49 77 6B 03 04 00 00 61 49 77 EF 61 49 77 7A 61 49 77 6B 04 02 00 00 61 49 77 7A 61 49 77 03

61 49 77 6B 08 05 09 00 61 49 77 16 61 49 77 6F 61 49 77 82 07 08 09 00 61 49 77 77 61 49 77 16 61 49 77 82

06 07 09 00 61 49 77 DA 61 49 77 77 61 49 77 82 05 06 09 00 61 49 77 6F 61 49 77 DA 61 49 77 82 03 06 04 05

61 49 77 EF 61 49 77 DA 61 49 77 7A 61 49 77 6F 01 07 03 06 61 49 77 85 61 49 77 77 61 49 77 EF 61 49 77 DA

02 04 08 05 61 49 77 03 61 49 77 7A 61 49 77 16 61 49 77 6F 01 02 07 08 61 49 77 85 61 49 77 03 61 49 77 77

61 49 77 16





14th part [at offset 0x00002094]:

Code: [Select]
00 00 00 00 00 00 E9 FF 3B 00 00 00 00 00 55 00 FF FF 00 00 AB FF FF FF FF FF 00 00 55 00 FF FF FF FF 00 00

00 00 AB FF 00 00 00 00 C6 FF 00 00 72 FF 00 00 00 00 C6 FF 72 FF 00 00 3A 00 00 00 72 FF 00 00 00 00 3A 00

72 FF 00 00 3A 00 00 00 0C FF 00 00 00 00 C6 FF 0C FF 00 00 C6 FF 00 00 0C FF 00 00 00 00 3A 00 0C FF 00 00

00 00 1F 00 72 FF 00 00 1F 00 00 00 72 FF 00 00 00 00 E1 FF 72 FF 00 00 E1 FF 00 00 72 FF 00 00 1F 00 00 00

AA FF 00 00 00 00 E1 FF AA FF 00 00 E1 FF 00 00 AA FF 00 00 00 00 1F 00 AA FF 00 00 02 01 00 00 61 49 77 EC

61 49 77 79 61 49 77 82 01 03 00 00 61 49 77 79 61 49 77 00 61 49 77 82 03 04 00 00 61 49 77 00 61 49 77 68

61 49 77 82 04 02 00 00 61 49 77 68 61 49 77 EC 61 49 77 82 0B 05 0A 06 50 3B 10 E6 50 3B 10 E7 50 3B 10 65

50 3B 10 6F 07 06 08 05 50 3B 10 0A 50 3B 10 6F 50 3B 10 77 50 3B 10 E7 09 0A 07 06 50 3B 10 08 50 3B 10 65

50 3B 10 0A 50 3B 10 6F 0B 0C 05 08 50 3B 10 E6 50 3B 10 80 50 3B 10 E7 50 3B 10 77 09 0C 0A 0B 50 3B 10 08

50 3B 10 80 50 3B 10 65 50 3B 10 E6 09 07 0C 08 50 3B 10 08 50 3B 10 0A 50 3B 10 80 50 3B 10 77 04 03 12 11

61 49 77 68 61 49 77 00 61 49 77 7B 61 49 77 08 04 12 02 13 61 49 77 68 61 49 77 7B 61 49 77 EC 61 49 77 E6

03 01 11 14 61 49 77 00 61 49 77 79 61 49 77 08 61 49 77 80 02 13 01 14 61 49 77 EC 61 49 77 E6 61 49 77 79

61 49 77 80 11 0E 12 0F 61 49 77 08 61 49 77 08 61 49 77 7B 61 49 77 65 13 12 10 0F 61 49 77 E6 61 49 77 7B

61 49 77 E6 61 49 77 65 14 0D 11 0E 61 49 77 80 61 49 77 80 61 49 77 08 61 49 77 08 13 10 14 0D 61 49 77 E6

61 49 77 E6 61 49 77 80 61 49 77 80





15th part [at offset 0x00002298]:

Code: [Select]
00 00 00 00 C3 FF 23 00 FC FF 00 00 3D 00 23 00 FC FF 00 00 E2 FF 04 00 44 FF 00 00 00 00 2D 00 38 00 00 00

00 00 05 00 3F 00 00 00 C3 FF E7 FF 06 00 00 00 3D 00 E7 FF 06 00 00 00 E2 FF E4 FF 49 FF 00 00 1E 00 04 00

44 FF 00 00 1E 00 E4 FF 49 FF 00 00 06 05 04 00 50 3B 10 26 50 3B 10 C9 50 3B 10 7C 00 01 03 00 50 3B 10 D6

50 3B 10 18 50 3B 10 77 02 07 08 09 50 3B 10 AD 50 3B 10 B9 50 3B 10 43 50 3B 10 37 01 06 03 04 50 3B 10 18

50 3B 10 26 50 3B 10 77 50 3B 10 7C 00 03 05 04 50 3B 10 D6 50 3B 10 77 50 3B 10 C9 50 3B 10 7C 00 05 02 07

50 3B 10 D6 50 3B 10 C9 50 3B 10 AD 50 3B 10 B9 01 08 06 09 50 3B 10 18 50 3B 10 43 50 3B 10 26 50 3B 10 37

06 09 05 07 50 3B 10 26 50 3B 10 37 50 3B 10 C9 50 3B 10 B9 00 02 01 08 50 3B 10 D6 50 3B 10 AD 50 3B 10 18

50 3B 10 43



Note: 'Skeleton Data Section' runs until 'Animation Data Section'.

______________________________________




'Animation Data Section' [at offset 0x00002398]

Note: Offset to 'Animation Data Section' contained in 'Models Section', Animation.

Note2: Number of animations contained in 'Models Section', Header.


1st animation [at offset 0x00002398]:

Code: [Select]
00 00 00 00 00 00 00 00 FF 00 01 00 00 C0 00 00 FF FF FF 00 00 FA 00 00 FF FF FF 00 00 06 00 00 FF FF FF 00

00 FA E7 37 FF FF FF 00 00 DC EE 16 FF FF FF 00 00 D4 0E 30 FF FF FF 00 00 00 00 00 FF FF FF 00 00 00 00 00

FF FF FF 00 00 F9 19 C9 FF FF FF 00 00 DC 12 EA FF FF FF 00 00 D0 ED D4 FF FF FF 00 00 00 00 00 FF FF FF 00

00 00 00 00 FF FF FF 00 00 00 B3 80 FF FF FF 00 00 C6 F3 40 FF FF FF 00 00 00 00 00 FF FF FF 00 00 DD CF 39

FF FF FF 00 00 00 4D 80 FF FF FF 00 00 C6 0E C0 FF FF FF 00 00 00 00 00 FF FF FF 00 00 E2 31 C7 FF FF FF 00

64 FE 02 00





2nd animation [at offset 0x00002450]:

Code: [Select]
00 00 00 00 20 00 00 00 FF 00 00 00 00 C0 00 00 FF FF FF 00 00 FA 00 00 FF FF FF 00 00 06 00 00 FF FF FF 00

00 FA E7 37 FF FF FF 00 07 00 01 02 FF FF FF 00 07 03 04 05 FF FF FF 00 01 06 00 00 FF FF FF 00 00 00 00 00

FF FF FF 00 00 F9 19 C9 FF FF FF 00 07 07 08 09 FF FF FF 00 07 0A 0B 0C FF FF FF 00 01 0D 00 00 FF FF FF 00

00 00 00 00 FF FF FF 00 00 00 B3 80 FF FF FF 00 07 0E 0F 10 FF FF FF 00 01 11 00 00 FF FF FF 00 07 12 13 14

FF FF FF 00 00 00 4D 80 FF FF FF 00 07 15 16 17 FF FF FF 00 01 18 00 00 FF FF FF 00 07 19 1A 1B FF FF FF 00

77 FE 71 FE 6C FE 68 FE 64 FE 61 FE 60 FE 61 FE 64 FE 68 FE 6C FE 71 FE 76 FE 7B FE 7D FE 7A FE 73 FE 6D FE

68 FE 64 FE 61 FE 60 FE 61 FE 64 FE 68 FE 6C FE 70 FE 74 FE 79 FE 7D FE 02 00 D7 D7 D7 D8 D8 D7 D7 D7 D8 D8

D9 D9 D9 D9 D9 D8 D8 D8 D8 D8 D8 D9 D9 DA DA DA D9 D8 D7 D6 E8 E9 E9 E9 E9 E9 E9 E9 E9 EA EA EB EB EB EA EA

EA E9 E9 E9 EA EB EB EC EC EC EB EA E9 E7 1B 1A 1A 19 1A 1A 1A 1A 19 19 18 18 18 18 18 19 19 1A 1A 19 19 18

18 18 17 17 18 19 1A 1B E6 E5 E4 E3 E0 DE DB D9 D7 D6 D4 D3 D3 D3 D4 D5 D4 D4 D3 D3 D5 D7 DA DD E0 E3 E4 E5

E6 E7 29 28 27 26 24 22 1F 1C 18 13 0E 06 FB F2 ED ED F0 F5 FB 05 0F 17 1D 21 24 26 27 28 29 29 0F 10 11 13

15 18 1C 20 25 2A 31 39 45 50 55 56 52 4D 45 3B 2F 25 1F 1A 16 13 11 10 0F 0E F7 F5 F3 F0 ED EA E7 E6 E6 E6

E7 E9 ED F0 F2 F3 F2 F1 EF ED EA E7 E6 E5 E6 E7 EA EF F4 F9 D8 D8 D8 D9 D9 D8 D8 D9 D9 D9 D9 D9 D9 D9 D8 D9

D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D8 D8 16 16 16 16 16 16 16 16 15 15 15 15 15 15 16 16 15 15 15 15 15 16

15 15 15 15 15 16 16 16 E7 E7 E7 E7 E7 E7 E7 E7 E8 E8 E8 E8 E8 E8 E7 E7 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8

E7 E7 D2 CF CE CE CF D0 D1 D3 D6 DA DD E0 E2 E3 E4 E5 E4 E3 E1 DE D9 D5 D3 D2 D2 D1 CF CE D1 D5 1B 12 07 FC

F4 ED E8 E2 DC D8 D6 D4 D3 D2 D2 D2 D2 D2 D3 D5 D9 DE E2 E3 E5 E9 F3 05 17 22 A3 AD B9 C4 CD D4 DA E1 E7 EC

EF F1 F3 F4 F4 F4 F4 F4 F2 EF EB E5 E1 DF DD D9 CD BA A8 9B F3 EF EC EA E9 EA EB EB EB EA EB ED F0 F4 F6 F5

F3 F0 EE ED EC EC EB E9 E8 E7 E9 ED F2 F6 D4 D2 CF CD C9 C6 C3 C2 C4 C6 C8 CB CF D3 D5 D4 D1 CD C9 C3 C4 CA

CF D2 D4 D5 D6 D7 D7 D7 B6 B7 B7 B8 BB C0 D1 06 1E 25 29 2C 2E 2F 2F 2F 2E 2D 2A 1B C3 BA B8 B7 B6 B6 B6 B6

B6 B6 7D 7C 7C 7A 78 73 62 2D 15 0D 09 06 04 03 03 03 04 05 08 18 6F 79 7B 7C 7D 7D 7D 7D 7D 7D 09 09 09 08

06 03 01 00 02 05 07 08 07 06 08 10 1A 25 2C 31 33 34 33 2F 29 23 1D 16 0F 08 C4 C7 CA CC CC CB C9 C6 C3 C3

C7 C9 CA CB CB CB CB CB CB CD CE CF CD CA C6 C3 C2 C1 C1 C1 F2 FA FD FD FD FD FC F9 E9 97 8B 89 88 88 88 87

88 88 87 87 86 86 87 88 8D 9B B5 BF BD C0 10 08 06 05 05 06 07 0A 1A 6B 77 79 7A 7A 7A 7B 7B 7A 7B 7B 7C 7C

7B 7A 75 67 4E 43 45 43 D3 D0 CD C9 C3 C4 CB CF D2 D4 D5 D6 D7 D7 D7 D5 D3 D0 CE CA C6 C3 C0 C3 C5 C7 CB CE

D2 D6 CE CE CE CE D0 4C 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4C 4B E2 D0 CF CF CE CE CE CE 00 00 FF FF

FD 82 81 80 80 80 80 80 80 80 80 80 80 80 81 81 81 83 EC FD FF FF FF 00 00 00 11 1C 25 2B 30 34 35 34 2F 29

22 1C 14 0C 08 07 09 0C 0C 09 05 02 02 03 06 07 08 08 08 08 CB CB CA CB CC CE CE CD CA C6 C2 C1 C1 C0 C0 C3

C5 C8 C9 CA C9 C8 C6 C2 C2 C6 C8 C9 CA CB 7E 7E 7E 7E 7F 7F 7F 7F 7E 7E 7D 79 75 72 0C 01 00 00 FF FF FF 00

00 01 7C 7E 7E 7E 7E 7E 80 80 81 80 80 80 80 80 81 81 82 86 8A 8D F3 FE FF FF FF FF FF FF FF FE 83 81 81 81

81 80 00 00






3rd animation [at offset 0x0000288C]: (assuming it goes until the beginning of the Model section, below)

Code: [Select]
00 00 00 00 20 00 00 00 FF 00 00 00 00 C0 00 00 FF FF FF 00 01 00 00 00 FF FF FF 00 01 01 00 00 FF FF FF 00

07 02 03 04 FF FF FF 00 00 D6 E6 1C FF FF FF 00 07 05 06 07 FF FF FF 00 00 C9 00 00 FF FF FF 00 00 00 00 00

FF FF FF 00 07 08 09 0A FF FF FF 00 00 D8 16 E7 FF FF FF 00 07 0B 0C 0D FF FF FF 00 00 CD 00 00 FF FF FF 00

00 00 00 00 FF FF FF 00 00 00 B3 80 FF FF FF 00 07 0E 0F 10 FF FF FF 00 07 11 12 13 FF FF FF 00 07 14 15 16

FF FF FF 00 00 00 4D 80 FF FF FF 00 07 17 18 19 FF FF FF 00 07 1A 1B 1C FF FF FF 00 07 1D 1E 1F FF FF FF 00

6F FE 91 FE 91 FE 6F FE 52 FE 4A FE 4C FE 5D FE 82 FE 97 FE 82 FE 5D FE 4C FE 4A FE 52 FE 02 00 21 22 22 23

23 23 23 23 22 22 23 23 23 22 21 E0 DF DF DF E0 E0 E0 E0 E0 DF DF DF E0 E0 E0 19 19 1A 1A 1A 1A 1A 1A 1A 19

1A 1A 1A 19 19 E1 E1 E0 E0 E0 E0 E0 E0 E0 E1 E0 E0 E0 E1 E1 1E 1E 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1E 1E DF

DC E0 E7 EF FA 02 02 FA EF E7 E1 DC DF E3 E6 04 1A 26 2E 37 3E 3E 37 2E 26 1C 07 E7 DA 50 39 2A 22 1E 1D 1B

1B 1D 1E 21 29 37 4F 5A 18 19 19 19 1A 1A 1A 19 19 19 19 1A 19 19 18 1F 20 20 20 20 20 20 20 20 20 20 20 20

1F 1F E2 E3 E3 E3 E4 E4 E4 E3 E3 E3 E3 E4 E3 E3 E2 FE F0 E4 DD D7 DC EA EA DC D7 DC E5 F0 FE 04 C5 CD D4 DB

EE 1C 34 35 1C F0 DB D4 CD C5 C1 E9 E7 E6 E1 D2 B0 9B 9A AF D1 E1 E6 E8 E9 EB D0 C3 CA D7 E0 E1 DD D8 D3 CB

C2 CE D6 DA D8 2E 19 BA B6 B5 B5 B5 B6 B7 B9 08 2D 2F 30 2F 04 1A 79 7D 7E 7E 7E 7D 7C 7A 2B 05 03 02 03 3F

39 30 24 24 3C 13 08 19 27 20 15 17 26 35 FE 80 80 80 80 00 00 00 00 00 00 00 00 00 00 FE 80 80 80 80 00 00

00 00 00 00 00 00 00 00 CF CE C9 C2 C6 C4 C2 C2 CD D5 D2 CA C3 C7 CD FF FE FC C9 8C 93 E3 A0 87 85 85 88 9B

FA FE 04 04 06 39 76 70 1F 63 7B 7D 7D 7A 67 09 05 D5 CF C6 C7 D1 D8 DB D6 CA C3 D0 DC E0 DE DA 4D 4D 4C CF

CE CE CE CE CE 4B 4D 4D 4D 4D 4D 80 80 81 FF 00 00 00 00 FF 83 80 80 80 80 80 0E 23 27 1B 13 1D 2D 39 3E 36

2A 22 32 25 07 00 00 00 00 00 00 00 00 81 80 80 80 80 00 00 00 00 00 00 00 00 00 00 81 80 80 80 80 00 00 C8

D4 D5 CD C4 C4 CB CE CD CB C5 C2 C4 C0 C1 7F 7F 7F 7F 7E 00 FF FF FF FF 00 7D 7E 6E 03 80 80 80 80 81 FF 00

00 00 00 FF 81 81 91 FC



Note: 'Animation Data Section' runs until 'Models Section'.



_________________________________________



'Models Section' [at offset 0x00002B40]


Note: Offset to 'Models Section' contained in 'BCX Header Section'.



'Models Section', Header

Code: [Select]
01 FF 16 0F 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 58 00 38 02 64 2B 00 80 00 00 00 00



Breakdown:

01 FF - Unknown

16 - Number of bones

0F - Number of parts

03 - Number of animations

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 58 00 38 02 - Unknown

64 2B 00 80 - Offset to 'Model Section', Bones (little-endian, so 0x80002B64)

00 00 00 00 - Unknown



Note: 'Models Section', Header runs until 'Models Section', Bones.


_____________________________________________


'Models Section', Bones [at offset 0x00002B64]



Note: Offset to 'Models Section', Bones contained in 'Models Section', Header.

Note2: Number of bones contained in 'Models Section', Header.



Code: [Select]
00 00 FF 00
00 00 00 01
CB FF 01 01
62 FF 02 01
CB FF 01 00
68 FF 04 00
BA FF 05 01
AD FF 06 01
74 FF 07 01
CB FF 01 00
68 FF 09 00
BA FF 0A 01
AD FF 0B 01
74 FF 0C 01
00 00 00 00
C4 FF 0E 01
5F FF 0F 01
15 FF 10 01
00 00 00 00
C4 FF 12 01
5F FF 13 01
15 FF 14 01



Note: 'Models Section', Bones runs until 'Models Section', Parts.



________________________________



'Models Section', Parts [at offset 0x00002BBC]


Note: Offset to 'Models Section', Parts not contained in any known value; determined based on the end of 'Models

Section', Bones.



Code: [Select]
01 01 0E 00 00 00 00 00 00 00 0C 06 00 00 74 00 AC 01 AC 01 AC 01 28 02 08 00 00 80 00 00 00 00
01 02 20 00 00 00 00 00 00 00 06 1B 00 00 04 01 80 03 80 03 80 03 74 04 B4 01 00 80 00 00 00 00
01 03 5A 0E 02 04 00 00 00 00 94 0C 03 06 D4 02 90 0D 84 0D AC 0D E8 12 34 05 00 80 00 00 00 00
01 06 10 00 00 00 00 00 00 00 0A 09 00 00 84 00 D8 01 D8 01 D8 01 5C 02 E8 12 00 80 00 00 00 00
01 07 10 00 00 00 00 00 00 00 00 0E 00 00 84 00 9C 01 9C 01 9C 01 F8 01 C0 14 00 80 00 00 00 00
01 08 08 00 00 00 00 00 00 00 00 06 00 00 44 00 BC 00 BC 00 BC 00 D8 00 5C 16 00 80 00 00 00 00
01 0B 10 00 00 00 00 00 00 00 0A 09 00 00 84 00 D8 01 D8 01 D8 01 5C 02 18 17 00 80 00 00 00 00
01 0C 10 00 00 00 00 00 00 00 00 0E 00 00 84 00 9C 01 9C 01 9C 01 F8 01 F0 18 00 80 00 00 00 00
01 0D 08 00 00 00 00 00 00 00 00 06 00 00 44 00 BC 00 BC 00 BC 00 D8 00 8C 1A 00 80 00 00 00 00
01 0F 0A 00 00 00 00 00 00 00 08 04 00 00 54 00 24 01 24 01 24 01 70 01 48 1B 00 80 00 00 00 00
01 10 15 00 00 00 00 00 00 00 04 0E 00 00 AC 00 04 02 04 02 04 02 68 02 6C 1C 00 80 00 00 00 00
01 11 0A 00 00 00 00 00 00 00 02 07 00 00 54 00 00 01 00 01 00 01 34 01 70 1E 00 80 00 00 00 00
01 13 0A 00 00 00 00 00 00 00 08 04 00 00 54 00 24 01 24 01 24 01 70 01 70 1F 00 80 00 00 00 00
01 14 15 00 00 00 00 00 00 00 04 0E 00 00 AC 00 04 02 04 02 04 02 68 02 94 20 00 80 00 00 00 00
01 15 0A 00 00 00 00 00 00 00 02 07 00 00 54 00 00 01 00 01 00 01 34 01 98 22 00 80 00 00 00 00





Breakdown of first line of 'Models Section', Parts above:

01 - Unknown; "0 - not calculate stage lighting and color. 1 - calculate."

01 - Bone to which this part is attached to

0E - Number of vertices

00 - Number of Texture coord

00 - number of textured quads (Gourad Shading)

00 - number of textured triangles (Gourad Shading)

00 - number of textured quads (Flat Shading)

00 - number of textured triangles (Flat Shading)

00 - number of monochrome triangles

00 - number of monochrome quads

0C - number of gradated triangles

06 - number of gradated quads

00 00 - number of data in block 4 (flags)

74 00 - Relative offset to ?

AC 01 - Relative offset to ?

AC 01 - Relative offset to texture settings. Indexed by 5th block data (control)

AC 01 - Relative offset to one byte stream for every packet with texture

28 02 - Relative offset to ?

08 00 00 80 - Offset to skeleton data section (little-endian, so 0x80000008)

00 00 00 00 - Offset to ?




Note: 'Models Section', Parts runs until 'Models Section', Animations.


__________________________________


'Models Section', Animations [at offset 0x00002D9C]


Note: Offset to 'Models Section', Animations not contained in any known value; determined based on the end of 'Models

Section', Parts.


Code: [Select]
01 00 16 00 02 00 B4 00 B4 00 B8 00 98 23 00 80
1E 00 16 01 01 1C B4 00 F0 00 F2 00 50 24 00 80
0F 00 16 01 01 20 B4 00 D2 00 D4 00 8C 28 00 80



Breakdown of first line of 'Models Section', Animations above:

01 00 - Number of frames (little-endian, so 0x0001)

16 - Number of bones

00 - Number of translation frames

02 - Number of static translation frames

00 - Number of rotation frames

B4 00 - Relative offset to translation frames (little-endian, so 0x00B4)

B4 00 - Relative offset to static translation frames (little-endian, so 0x00B4)

B8 00 - Relative offset to rotation frames (little-endian, so 0x00B8)

98 23 00 80 - Offset to animation data section (little-endian, so 0x80002398)





Note: 'Models Section', Animations runs until the end of the file.



« Last Edit: 2012-08-14 20:34:48 by Lazy Bastard »

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #1 on: 2012-08-13 15:48:24 »
Also, a big thanks to Akari for nudging me in the right direction when my math was off...and a big "Gee, thanks" to Microsoft for making the Windows 7 calculator in Programmer's mode assume all hex numbers are signed!  >:(

Cyberman

  • *
  • Posts: 1572
    • View Profile
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #2 on: 2012-08-13 20:47:46 »
Also, a big thanks to Akari for nudging me in the right direction when my math was off...and a big "Gee, thanks" to Microsoft for making the Windows 7 calculator in Programmer's mode assume all hex numbers are signed!  >:(
I think that is because the programmer was lazy.
It is ironic that signed and unsigned values are very important in C/C++ (strongly typed) versus C# (weakly typed). This leads to issues like you noticed.

It doesn't mean the person was a bad programmer just lazy. The difference being is a bad programmer would not have bothered making sure everything worked correctly. The lazy programmer neglected the detail of signed versus unsigned arithmetic. Multiplication and division are different depending on this. Negation isn't possible (unless you are using biased arithmetic which gets nasty).

I think the most "fun" I've had is converting single precision float into half precision float and getting each of the +-0 +-INF and +-NaN values correct (mutter).

Cyb

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #3 on: 2012-08-13 21:29:14 »
I think that is because the programmer was lazy.

That explanation might make sense, if it wasn't for the fact that the calculator in Windows XP and Vista always assumed numbers were unsigned in hex, and only in Windows 7 was this suddenly changed, with no warning or explanation, to always assume numbers were signed in hex. It's strange that there's no option to change this. However, I ended up using a 3rd-party app called Microsoft Calculator Plus, which essentially provides the same functionality I had before in XP.

On the contrary, I think the developer was suddenly un-lazy enough to implement a new 'feature', namely signed integers in hex math, but didn't realize people might actually want to perform math with unsigned numbers. This is even more comical when you consider that this is supposed to be the calculator's 'Programmer Mode'.
« Last Edit: 2012-08-13 21:31:24 by Lazy Bastard »

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #4 on: 2012-08-14 20:34:27 »
Created a new 'BCX File' wiki page, and added this example.

myst6re

  • *
  • Posts: 640
  • Light King of the Savegame - Field Master - FF8.fr
    • View Profile
    • FF8.fr
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #5 on: 2012-08-14 20:54:56 »
It's Chinese to me :?
« Last Edit: 2012-08-14 21:03:50 by myst6re »

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #6 on: 2012-08-14 21:38:21 »
Heh. It should prove useful when anyone wants to dissect a BCX file. Now to see how much of a Dr Frankenstein I can be with BCX and BSX files :)

Cyberman

  • *
  • Posts: 1572
    • View Profile
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #7 on: 2012-08-14 23:18:23 »
Heh. It should prove useful when anyone wants to dissect a BCX file. Now to see how much of a Dr Frankenstein I can be with BCX and BSX files :)
Something I learned when deciphering the battle models is most often the data is double word aligned.
Square recycled structures similar to the developers library that Sony distributed for the playstation (PsyQ I believe?)

The playstation that was for users to monkey with used Gnu's libraries with stubs to the bios functions (start with a Y .. can't remember the rest of it's name).

Some of the structures they used were a bit strange. The bone structures are likely similiar (but paired down) versions of the HRC data that is used for the battle models.

Sometimes when you see a bunch of NUL/0 bytes in the file that could be the root bone. (I remember this was the case in the battle models which was inspired by Mickey's constant beating on it.) The BCX models are highly unlikely too be all that much different. Just like the weapon models in the Playstation were included with the battle models of the characters and were substituted as a bone in the HRC. I don't remember if I ever got it to display correctly myself (shrug).

The root bone is a zero length bone if I remember correctly (go figure) that everything hangs off of. It is basically thought of as an origin that all the other bones rotate relative too.
The models will likely have topples of 3d data to make up the vertices of the polygons (I believe these were 16 bit signed values in the battle models). The edges of the polygons are then made up of a series of triangles and quads. The quads are the weird ones because they do not follow in an order that one would expect. The reason is the playstation draws a quad by drawing 2 triangles with a change to the texture orientation so the ordering of the vertices does not follow that of a triangle (right handed I believe in a circular pattern) but of 2 triangles with second rotated. You should look at the BM documentation. It's been eons since I've worked on it. I think they ordering ended up being ACBD or something like that.

The animation data et al should be floating in Qgears source (say thanks to Akari for making the converter, let us not forgot the other person who cracked the animation format too (halkun do you remember their name?)) It is unlikely to be different namely that would be a pain to reinvent the wheel. Also another reason that the data is not likely too be all that different in the field models as well.

There is some other things you might have been puzzling over, like "they aren't using some data", this is no surprise as FF7 was under time constraints and they changed what they were doing a few times. So at one time they may have planned to use that data but time constraints made them do things differently.  So why is it stlll there?

Game data is often complied if you look at it they had to have tools to take the game data and package it into files (just like you make help files or CHML files etc). To this end the tools likely were already a done deal even if they weren't using some of the data. Too edit out data they just changed there make files (seriously that is what they would do as make doesn't necessarily have to make executable code it just follows a set of rules to make something) or removed files from the directory being 'made' with make. This is why you find some 'bits' of data floating around in the game that are a little strange. However it is more work sometimes to eliminate this data.

I write compact programs all the time, this is just how things often end up.

Cyb

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #8 on: 2012-08-14 23:55:41 »
Quote
Something I learned when deciphering the battle models is most often the data is double word aligned.
Square recycled structures similar to the developers library that Sony distributed for the playstation (PsyQ I believe?)

Yep, Psy-Q.

Quote
The playstation that was for users to monkey with used Gnu's libraries with stubs to the bios functions (start with a Y .. can't remember the rest of it's name).

Yaroze.


Quote
Some of the structures they used were a bit strange. The bone structures are likely similiar (but paired down) versions of the HRC data that is used for the battle models.

I suspect that as well. I'll find out soon enough; when I'm finished with field models, battle models are the next step :)


Quote
Sometimes when you see a bunch of NUL/0 bytes in the file that could be the root bone. (I remember this was the case in the battle models which was inspired by Mickey's constant beating on it.) The BCX models are highly unlikely too be all that much different. Just like the weapon models in the Playstation were included with the battle models of the characters and were substituted as a bone in the HRC. I don't remember if I ever got it to display correctly myself (shrug).

The root bone is a zero length bone if I remember correctly (go figure) that everything hangs off of. It is basically thought of as an origin that all the other bones rotate relative too.
The models will likely have topples of 3d data to make up the vertices of the polygons (I believe these were 16 bit signed values in the battle models). The edges of the polygons are then made up of a series of triangles and quads. The quads are the weird ones because they do not follow in an order that one would expect. The reason is the playstation draws a quad by drawing 2 triangles with a change to the texture orientation so the ordering of the vertices does not follow that of a triangle (right handed I believe in a circular pattern) but of 2 triangles with second rotated. You should look at the BM documentation. It's been eons since I've worked on it. I think they ordering ended up being ACBD or something like that.

Thanks; that may come in handy.


Quote
The animation data et al should be floating in Qgears source (say thanks to Akari for making the converter, let us not forgot the other person who cracked the animation format too (halkun do you remember their name?))

Yes; as mentioned earlier in each of my BCX/BSX threads, I've used Akari's Q-Gears documentation and source extensively. Micky's python script was also helpful.


Quote
There is some other things you might have been puzzling over, like "they aren't using some data", this is no surprise as FF7 was under time constraints and they changed what they were doing a few times. So at one time they may have planned to use that data but time constraints made them do things differently.  So why is it stlll there?

Game data is often complied if you look at it they had to have tools to take the game data and package it into files (just like you make help files or CHML files etc). To this end the tools likely were already a done deal even if they weren't using some of the data. Too edit out data they just changed there make files (seriously that is what they would do as make doesn't necessarily have to make executable code it just follows a set of rules to make something) or removed files from the directory being 'made' with make. This is why you find some 'bits' of data floating around in the game that are a little strange. However it is more work sometimes to eliminate this data.

I write compact programs all the time, this is just how things often end up.

Oh, I'm quite familiar with the development cycle, rush to release, etc. I've been hacking games for quite a while (though in the past, I've focused on RAM hacking), and have discovered a good many things that the developers never got around to removing (see my work at GameHacking.org, previously known as GSHI.org, which I founded in 1999 for just such a purpose).

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #9 on: 2012-08-15 00:01:30 »
I was one of the first ones to find the bone animation frames in the FF7 field models and theorized that the battle skeletons were based off of a static pose and then deltas, but I didn't have the binary chops to decipher the floating points.

Like Cyb said, a lot of these formats are binary versions of PsyQ's text-based file formats.  (And the PC version of FF7 uses some of them).  Also the PSX was really goofy about byte alignment when it came to DMA, so you will find padding bytes all the time between data sections. It makes finding the data borders easier.

Sometimes an FF is just an FF.

==== EDIT ====

Oh and by the way,  The FFs that are used as padding are often that the *end* of a section, not used as a header for the next.
« Last Edit: 2012-08-15 00:06:07 by halkun »

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #10 on: 2012-08-15 02:18:00 »
Quote
Also the PSX was really goofy about byte alignment when it came to DMA, so you will find padding bytes all the time between data sections. It makes finding the data borders easier.

I've noticed that.

Woot, my FrankenCloud model was a success (although it was partially broken due to a lack of foresight on my part). I'll create a working one and post something tomorrow.

Cyberman

  • *
  • Posts: 1572
    • View Profile
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #11 on: 2012-08-15 02:23:10 »
Yep, Psy-Q.
For some reason I always called it psyc (LOL)
Yaroze.
That is what it was ... job what's left of my memory geesh ... I feel old suddenly
Oh, I'm quite familiar with the development cycle, rush to release, etc. I've been hacking games for quite a while (though in the past, I've focused on RAM hacking), and have discovered a good many things that the developers never got around to removing (see my work at GameHacking.org, previously known as GSHI.org, which I founded in 1999 for just such a purpose).
That explains a bit, you seemed familiar just couldn't quite place you. (heh) I've been busy doing things like motor controllers, I guess my tastes have changed or ... something <hmmm>

Hopefully I didn't seem patronizing. Erstwhile I'm glad someone is filling in the spots that are kind of ignored. I am slowly crawling through FF8's magic img file. I've found FF9 doesn't always use 320x240 movies which I had assumed it did (it doesn't). So many things and so little (zzzzz....). anyhow.

halkun you live (contrary to what I feel like I'm doing). Hmm I just can't remember the persona's name. Oh well remembering my own name is good enough for now.

Cyb

Lazy Bastard

  • *
  • Posts: 290
  • I may be lazy, but I can...zzzZZZzzzZZZzzz...
    • View Profile
    • GameHacking.org
Re: (PSX FF7) FIELD\*.BCX files - sample breakdown
« Reply #12 on: 2012-08-15 14:19:49 »
Quote
Hopefully I didn't seem patronizing.

Not at all. It's good to explain things in detail, and assume minimum knowledge to ensure everyone understands.