Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- math ADPCM_FORMAT = 0 # 1 is for Gamecube, 2 is for PlayStation 2, 3 is for Xbox and PC
- math XBOX360_FORMAT = 0 # the mul block byte varies between 0x20 and 0x10(and sometimes more than that), which can get confusing very fast
- math BITS = 16
- get FREQUENCY long
- get LOOP_INDICATOR long
- get TOTAL_SAMPLES long
- get CHANNELS long
- get FSIZE asize
- putvarchr MEMORY_FILE FSIZE 0
- log MEMORY_FILE 0 0
- for l = 0 < CHANNELS
- putvarchr MEMORY_FILE FSIZE 0
- log MEMORY_FILE 0 0
- putvarchr MEMORY_FILE2 FSIZE 0
- log MEMORY_FILE2 0 0
- putvarchr MEMORY_FILE3 FSIZE 0
- log MEMORY_FILE3 0 0
- set OFFSET 0x800
- set EXTRA 0x10
- do
- goto OFFSET
- getdstring DUMMY EXTRA
- set EXTRA 0
- get SIZE long
- if SIZE > FSIZE
- break
- endif
- get LAYER long
- get DUMMY2 longlong
- savepos OFFSET
- while OFFSET < FSIZE
- next l
- /*
- getdstring ZERO 0x18
- set OFFSET 0x800 # was originally get OFFSET long
- get ZERO longlong
- get DUMMY long # I can't figure out what that thing does
- getdstring CHANNEL_BLOCKSIZES 0x90
- if ADPCM_FORMAT == 1
- getdstring COEFF_LEFT 0x2E
- getdstring COEFF_RIGHT 0x2E
- else
- break
- endif
- if ADPCM_FORMAT == 1
- getdstring MUL_BLOCK 0x40
- elif ADPCM_FORMAT == 2
- getdstring MUL_BLOCK 0x20
- else
- break
- endif
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement