Advertisement
Guest User

mul.bms

a guest
Oct 30th, 2016
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. math ADPCM_FORMAT = 0 # 1 is for Gamecube, 2 is for PlayStation 2, 3 is for Xbox and PC
  2. math XBOX360_FORMAT = 0 # the mul block byte varies between 0x20 and 0x10(and sometimes more than that), which can get confusing very fast
  3. math BITS = 16
  4.  
  5. get FREQUENCY long
  6. get LOOP_INDICATOR long
  7. get TOTAL_SAMPLES long
  8. get CHANNELS long
  9. get FSIZE asize
  10. putvarchr MEMORY_FILE FSIZE 0
  11. log MEMORY_FILE 0 0
  12.  
  13. for l = 0 < CHANNELS
  14. putvarchr MEMORY_FILE FSIZE 0
  15. log MEMORY_FILE 0 0
  16. putvarchr MEMORY_FILE2 FSIZE 0
  17. log MEMORY_FILE2 0 0
  18. putvarchr MEMORY_FILE3 FSIZE 0
  19. log MEMORY_FILE3 0 0
  20. set OFFSET 0x800
  21. set EXTRA 0x10
  22. do
  23. goto OFFSET
  24. getdstring DUMMY EXTRA
  25. set EXTRA 0
  26. get SIZE long
  27. if SIZE > FSIZE
  28. break
  29. endif
  30. get LAYER long
  31. get DUMMY2 longlong
  32. savepos OFFSET
  33. while OFFSET < FSIZE
  34. next l
  35.  
  36. /*
  37. getdstring ZERO 0x18
  38. set OFFSET 0x800 # was originally get OFFSET long
  39. get ZERO longlong
  40. get DUMMY long # I can't figure out what that thing does
  41. getdstring CHANNEL_BLOCKSIZES 0x90
  42. if ADPCM_FORMAT == 1
  43. getdstring COEFF_LEFT 0x2E
  44. getdstring COEFF_RIGHT 0x2E
  45. else
  46. break
  47. endif
  48.  
  49. if ADPCM_FORMAT == 1
  50. getdstring MUL_BLOCK 0x40
  51. elif ADPCM_FORMAT == 2
  52. getdstring MUL_BLOCK 0x20
  53. else
  54. break
  55. endif
  56. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement