Lemmings 2 VOC: Difference between revisions
Jump to navigation
Jump to search
imported>Mr.Mouse mNo edit summary |
imported>Ikskoks No edit summary |
||
| Line 117: | Line 117: | ||
* [[MultiEx Commander|MultiEx Commander]] | * [[MultiEx Commander|MultiEx Commander]] | ||
[[Category:File Format]] | |||
Revision as of 15:43, 10 January 2021
Choose archive extension:
VOC
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
// MexCom - Recreation of formats\Lemmings 2 (VOC)\VOC.bms
// THIS IS AN AUTOMATED SPECIFICATION
// READ WITH CARE
// ----------------------------
// LEGEND
// ----------------------------
// ==> (Jump to offset)
// #DECLARE (Set variable to value)
// $$ CALCULATE (Calculate a new value)
// ** (Section that repeats itself on condition)
// // (Comment)
// uint32{4} (Unsigned 32-bit value, 4 bytes)
// uint16{2} (Unsigned 16-bit value, 2 bytes)
// ubyte{1} (Unsigned 8-bit value, 1 byte)
// char{n} (String value, n bytes in length
// ----------------------------
// Format Specification
uint32{4} D
#DECLARE FST = CURRENT OFFSET
uint32{4} FS
#DECLARE FO = 512
// Resources have no name, are located at FO and have a size of FS
#DECLARE FN = 512
$$ CALCULATE FN / 4
$$ CALCULATE FN - 1
** Start Repeated entry (T) {FN}
==>FST
uint32{4} Offset of resource (FO)
$$ CALCULATE FO + 512
#DECLARE FST = CURRENT OFFSET
uint32{4} FS
** IF FS = 0
#DECLARE FS = CURRENT OFFSET
$$ CALCULATE FS + 1
$$ CALCULATE FS - FO
// Resources have no name, are located at FO and have a size of FS
** ELSE
$$ CALCULATE FS - FO
// Resources have no name, are located at FO and have a size of FS
** END IF
** End Repeated entry (T)
// ----------------------------
// MexCom - Recreation complete
MultiEx BMS
Get D Long 0 ; SavePos FST 0 ; Get FS Long 0 ; Set FO Long 512 ; Log "" FO FS 0 0 ; Set FN Long 512 ; Math FN /= 4 ; Math FN -= 1 ; For T = 1 To FN ; GoTo FST 0 ; Get FO Long 0 ; Math FO += 512 ; SavePos FST 0 ; Get FS Long 0 ; If FS = 0 ; GoTo EOF 0 ; SavePos FS 0 ; Math FS += 1 ; Math FS -= FO ; Log "" FO FS 0 0 ; Set T Long FN ; Else ; Math FS -= FO ; Log "" FO FS 0 0 ; EndIf ; Next T ;
Notes and Comments
None