Difference between revisions of "FF8/FileFormat JSM"
< FF8
Jump to navigation
Jump to search
my_wiki>Myst6re |
my_wiki>Myst6re |
||
Line 8: | Line 8: | ||
| 0 | | 0 | ||
| 1 byte | | 1 byte | ||
− | | | + | | Count of door entity |
|- | |- | ||
| 1 | | 1 | ||
| 1 byte | | 1 byte | ||
− | | | + | | Count of walkmesh line entity |
|- | |- | ||
| 2 | | 2 | ||
| 1 byte | | 1 byte | ||
− | | | + | | Count of background entity |
|- | |- | ||
| 3 | | 3 | ||
| 1 byte | | 1 byte | ||
− | | | + | | Count of other entity |
|- | |- | ||
| 4 | | 4 | ||
Line 51: | Line 51: | ||
</pre> | </pre> | ||
− | The | + | The entry points are sorted in order of execution (I guess), not in the order in which entities appear in the file. |
+ | |||
+ | When sorting entities, it will be always in that order: | ||
+ | <ol> | ||
+ | <li>Lines</li> | ||
+ | <li>Doors</li> | ||
+ | <li>Backgrounds</li> | ||
+ | <li>Other</li> | ||
+ | </ol> | ||
+ | |||
+ | To know what type of an entity, so we were just use their count. | ||
=== Entry point of each script === | === Entry point of each script === | ||
Line 61: | Line 71: | ||
</pre> | </pre> | ||
− | The position is relative to offsetScriptData. The meaning of the flag is unknown, it appear only with door, location and background entities. | + | The position is relative to ''offsetScriptData''. The meaning of the flag is unknown, it appear always and only with door, location and background entities. |
=== Script Data === | === Script Data === |
Revision as of 19:02, 27 July 2012
Contents
Fields Scripts
Offset | Size | Data |
---|---|---|
0 | 1 byte | Count of door entity |
1 | 1 byte | Count of walkmesh line entity |
2 | 1 byte | Count of background entity |
3 | 1 byte | Count of other entity |
4 | 2 bytes | Offset section 1 |
6 | 2 bytes | Offset script data |
8 | offsetSection1 - 8 = nbEntity * 2 | Entry point of each entity |
offsetSection1 | offsetScriptData - offsetSection1 | Entry point of each script |
offsetScriptData | varies | Script Data |
Entry point of each entity
Each entry is 2 bytes with:
scriptCount = entryPointEntity & 0x7F; label = entryPointEntity >> 7;
The entry points are sorted in order of execution (I guess), not in the order in which entities appear in the file.
When sorting entities, it will be always in that order:
- Lines
- Doors
- Backgrounds
- Other
To know what type of an entity, so we were just use their count.
Entry point of each script
Each entry is 2 bytes with:
position = (entryPointScript & 0x7FFF)*4; flag = entryPointScript >> 15;
The position is relative to offsetScriptData. The meaning of the flag is unknown, it appear always and only with door, location and background entities.
Script Data
Each opcode is 4 bytes.