Black And White: Difference between revisions
Jump to navigation
Jump to search
imported>WATTO No edit summary |
imported>Ikskoks No edit summary |
||
| (7 intermediate revisions by 3 users not shown) | |||
| Line 39: | Line 39: | ||
=== MultiEx BMS Script === | === MultiEx BMS Script === | ||
<pre>IDString 0 LiOnHeAd ; | |||
SavePos FILESTART 0 ; | |||
Math FILESTART += 32 ; | |||
GoTo FILESTART 0 ; | |||
Get FILESTART Long 0 ; | |||
SavePos DUMMYL 0 ; | |||
Math FILESTART += DUMMYL ; | |||
Math FILESTART += 32 ; | |||
GoTo FILESTART 0 ; | |||
Get FILESTART Long 0 ; | |||
SavePos TAILOFF 0 ; | |||
Math FILESTART += TAILOFF ; | |||
Math FILESTART += 32 ; | |||
GoTo FILESTART 0 ; | |||
Get DUMMYL Long 0 ; | |||
Get FILECNTL Long 0 ; | |||
Set DUMMYL Long DUMMYL ; | |||
Math DUMMYL /= FILECNTL ; | |||
SavePos FILESTART 0 ; | |||
Do ; | |||
GoTo FILESTART 0 ; | |||
SavePos FILEJMP 0 ; | |||
Math FILESTART += 2 ; | |||
GoTo FILESTART 0 ; | |||
GetDString FILENAME 254 0 ; | |||
SavePos FILESTART 0 ; | |||
Math FILESTART += 12 ; | |||
GoTo FILESTART 0 ; | |||
Get FILESIZE Long 0 ; | |||
Set FILESTART Long FILEJMP ; | |||
Get FILEJMP Long 0 ; | |||
Set FILEOFF Long TAILOFF ; | |||
Math FILEOFF += FILEJMP ; | |||
Math FILESTART += DUMMYL ; | |||
Log FILENAME FILEOFF FILESIZE 0 0 ; | |||
Math EXTRCNT += 1 ; | |||
While EXTRCNT <> FILECNTL ; | |||
</pre> | |||
=== Compatible Programs === | === Compatible Programs === | ||
* [[Game Extractor|Game Extractor]]<br> | * [[MultiEx_Commander|MultiEx Commander]] | ||
* [[Game Extractor|Game Extractor]] | |||
* [[Dragon_Unpacker|Dragon UnPACKer]]<br/> | |||
<br/> | |||
[[Category:File Format]] | |||
Latest revision as of 13:51, 3 January 2021
Choose archive extension:
SAD
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {8} - Header (LiOnHeAd)
char {21} - Description (LHFileSegmentBankInfo)
byte {11} - null
uint32 {4} - First File Start [+72]
// go to firstFileStart
- uint32 {4} - Second File Start [+32+CurrentOffset]
- byte {X} - File Data
- // go to secondFileStart
- uint32 {4} - Offset Value
- uint32 {4} - Number Of Files
- uint32 {4} - Offset Value
- if (offsetVal > 0){
- offsetVal = OffsetVal / NumFiles
- }
- offsetVal = OffsetVal / NumFiles
- if (offsetVal > 0){
- // for each file
- char {256} - Filename (null) (including c:\)
- byte {12} - Unknown
- uint32 {4} - File Length
- uint32 {4} - Unknown
- char {256} - Filename (null) (including c:\)
- // for each file
MultiEx BMS Script
IDString 0 LiOnHeAd ; SavePos FILESTART 0 ; Math FILESTART += 32 ; GoTo FILESTART 0 ; Get FILESTART Long 0 ; SavePos DUMMYL 0 ; Math FILESTART += DUMMYL ; Math FILESTART += 32 ; GoTo FILESTART 0 ; Get FILESTART Long 0 ; SavePos TAILOFF 0 ; Math FILESTART += TAILOFF ; Math FILESTART += 32 ; GoTo FILESTART 0 ; Get DUMMYL Long 0 ; Get FILECNTL Long 0 ; Set DUMMYL Long DUMMYL ; Math DUMMYL /= FILECNTL ; SavePos FILESTART 0 ; Do ; GoTo FILESTART 0 ; SavePos FILEJMP 0 ; Math FILESTART += 2 ; GoTo FILESTART 0 ; GetDString FILENAME 254 0 ; SavePos FILESTART 0 ; Math FILESTART += 12 ; GoTo FILESTART 0 ; Get FILESIZE Long 0 ; Set FILESTART Long FILEJMP ; Get FILEJMP Long 0 ; Set FILEOFF Long TAILOFF ; Math FILEOFF += FILEJMP ; Math FILESTART += DUMMYL ; Log FILENAME FILEOFF FILESIZE 0 0 ; Math EXTRCNT += 1 ; While EXTRCNT <> FILECNTL ;
Compatible Programs