Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Simple ATRAC3 GENH creator
- # for PS2 games with raw ATRAC3 data (Dirge of Cerberus, Digital Devil Saga)
- set CODEC 18 #atrac3
- set SAMPLE_RATE 44100
- set START_OFFSET 0x0
- set CHANNELS 1
- set BLOCK_ALIGN 0x60 # 0x60, 0x98, 0xc0
- math BLOCK_ALIGN *= CHANNELS
- get DATA_SIZE asize
- # atrac3: (bytes / block_size) * 1024
- set SAMPLES DATA_SIZE
- math SAMPLES /= BLOCK_ALIGN
- math SAMPLES *= 1024
- callfunction GENH 1
- startfunction GENH
- endian little
- #prepare buffer
- get GENH_SIZE asize
- math GENH_SIZE += 0x1000
- putVarChr MEMORY_FILE GENH_SIZE 0
- log MEMORY_FILE 0 0
- putVarChr MEMORY_FILE 0 0x484e4547 long #"GENH" LE
- putVarChr MEMORY_FILE 0x4 CHANNELS long
- putVarChr MEMORY_FILE 0x8 BLOCK_ALIGN long
- putVarChr MEMORY_FILE 0xc SAMPLE_RATE long
- putVarChr MEMORY_FILE 0x10 0xffffffff long #no loop
- putVarChr MEMORY_FILE 0x14 SAMPLES long
- putVarChr MEMORY_FILE 0x18 CODEC long
- set GENH_OFFSET START_OFFSET
- math GENH_OFFSET += 0x1000
- putVarChr MEMORY_FILE 0x1c GENH_OFFSET long
- putVarChr MEMORY_FILE 0x20 0x1000 long
- putVarChr MEMORY_FILE 0x40 SAMPLES long
- # force extend size to 0x1000
- putVarChr MEMORY_FILE 0xfff 0 byte
- get FILE_SIZE asize
- append
- log MEMORY_FILE 0 FILE_SIZE
- append
- get NAME filename
- string NAME += ".genh"
- get SIZE asize MEMORY_FILE
- log NAME 0 SIZE MEMORY_FILE
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement