Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. # Simple ATRAC3 GENH creator
  2. # for PS2 games with raw ATRAC3 data (Dirge of Cerberus, Digital Devil Saga)
  3.  
  4. set CODEC 18 #atrac3
  5. set SAMPLE_RATE 44100
  6. set START_OFFSET 0x0
  7. set CHANNELS 1
  8. set BLOCK_ALIGN 0x60 # 0x60, 0x98, 0xc0
  9. math BLOCK_ALIGN *= CHANNELS
  10.  
  11. get DATA_SIZE asize
  12.  
  13. # atrac3: (bytes / block_size) * 1024
  14. set SAMPLES DATA_SIZE
  15. math SAMPLES /= BLOCK_ALIGN
  16. math SAMPLES *= 1024
  17.  
  18.  
  19. callfunction GENH 1
  20.  
  21.  
  22. startfunction GENH
  23. endian little
  24.  
  25. #prepare buffer
  26. get GENH_SIZE asize
  27. math GENH_SIZE += 0x1000
  28. putVarChr MEMORY_FILE GENH_SIZE 0
  29. log MEMORY_FILE 0 0
  30.  
  31. putVarChr MEMORY_FILE 0 0x484e4547 long #"GENH" LE
  32. putVarChr MEMORY_FILE 0x4 CHANNELS long
  33. putVarChr MEMORY_FILE 0x8 BLOCK_ALIGN long
  34. putVarChr MEMORY_FILE 0xc SAMPLE_RATE long
  35. putVarChr MEMORY_FILE 0x10 0xffffffff long #no loop
  36. putVarChr MEMORY_FILE 0x14 SAMPLES long
  37. putVarChr MEMORY_FILE 0x18 CODEC long
  38.  
  39. set GENH_OFFSET START_OFFSET
  40. math GENH_OFFSET += 0x1000
  41. putVarChr MEMORY_FILE 0x1c GENH_OFFSET long
  42.  
  43. putVarChr MEMORY_FILE 0x20 0x1000 long
  44. putVarChr MEMORY_FILE 0x40 SAMPLES long
  45.  
  46. # force extend size to 0x1000
  47. putVarChr MEMORY_FILE 0xfff 0 byte
  48.  
  49. get FILE_SIZE asize
  50. append
  51. log MEMORY_FILE 0 FILE_SIZE
  52. append
  53.  
  54. get NAME filename
  55. string NAME += ".genh"
  56. get SIZE asize MEMORY_FILE
  57. log NAME 0 SIZE MEMORY_FILE
  58. endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement