Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # EA .MUS (SNR+SNS) extract
- endian big
- idstring "\x3D\xFC\xC4\x2C"
- get FILENAME basename
- set OFFSET long 0x0c
- set I long 0
- goto OFFSET
- get MAX long
- do
- goto OFFSET
- get SNR_OFFSET long
- get SNS_OFFSET long
- get NUMBER short
- get DUMMY short
- # no more files
- if SNS_OFFSET == 0
- exit
- endif
- callfunction DUMP_SNR_SNS 1
- math I += 1
- math OFFSET += 0x0c
- while OFFSET < MAX
- ##############
- startfunction DUMP_SNR_SNS
- string SNR_NAME p= "%s__%03i.snr" FILENAME I
- string SNS_NAME p= "%s__%03i.sns" FILENAME I
- set SNR_SIZE long 0x10
- set SNS_SIZE long 0
- # get SNS SIZE
- get SNS_MAX asize
- math SNS_CURRENT = SNS_OFFSET
- do
- goto SNS_CURRENT
- get BLOCK_FLAG byte
- get BLOCK_SIZE threebyte
- math SNS_CURRENT += BLOCK_SIZE
- math SNS_SIZE += BLOCK_SIZE
- if BLOCK_FLAG == 0x80
- break #sns done
- endif
- while SNS_CURRENT < SNS_MAX
- log SNR_NAME SNR_OFFSET SNR_SIZE
- log SNS_NAME SNS_OFFSET SNS_SIZE
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement