home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 13250 / bms.7z / sounds_2_2.bms next >
Encoding:
Text File  |  2017-08-23  |  2.2 KB  |  88 lines

  1. endian big
  2. getdstring IDENT 8
  3. get UNKNOWN long
  4. get UNKNOWN long
  5. get FILESIZE long
  6. get UNKNOWN long
  7. get UNKNOWN long
  8. get UNKNOWN long
  9. get INFO1OFF long
  10. get INFO2OFF long # unknown informatin
  11.  
  12. goto INFO1OFF
  13. get UOFF long # unknown information
  14. get CODEOFF long
  15. get MSF long # MSFBANK
  16.  
  17. goto INFO2OFF
  18. get UNKNOWNOFF long
  19. get UNKNOWNOFF long
  20. get DATASIZE long # size from MSFBANK till end
  21.  
  22. set OFF MSF
  23. math OFF += 0x14
  24. goto OFF
  25.  
  26. get FILES long
  27. math OFF += 0x1c
  28. set OFFPOS OFF
  29. set SIZEPOS FILES
  30. math SIZEPOS *= 4
  31. math SIZEPOS += OFFPOS
  32. math SIZEPOS += 0xc
  33. get BNAME basename
  34. string BNAME += "_"
  35.  
  36. for i = 1 <= FILES
  37.     endian big
  38.     goto OFFPOS
  39.     get OFFSET long
  40.     math OFFSET += MSF
  41.    
  42.     savepos OFFPOS
  43.     goto SIZEPOS
  44.     get SIZE long
  45.     savepos SIZEPOS
  46.     set NAME BNAME
  47.     string NAME += i
  48.     goto OFFSET
  49.     callfunction writeAT3 1
  50. next i
  51.  
  52. startfunction writeAT3
  53.    
  54.     # read info from header and adjust size
  55.     goto OFFSET
  56.     getDstring MSIG 4 # "MSF0" or "MSFC"
  57.     get BITSIGN long
  58.     get UNK long
  59.     get SIZE long
  60.     get FREQ long
  61.     math OFFSET += 0x40
  62.    
  63.     endian little
  64.     set MEMORY_FILE binary "\x52\x49\x46\x46\x88\xb3\x6d\x0\x57\x41\x56\x45\x66\x6d\x74\x20\x20\x0\x0\x0\x70\x2\x2\x0\x80\xbb\x0\x0\x9a\x40\x0\x0\x80\x1\x0\x0\xe\x0\x1\x0\x0\x10\x0\x0\x0\x0\x0\x0\x1\x0\x0\x0\x66\x61\x63\x74\x8\x0\x0\x0\x91\x81\x24\x1\x1b\x4\x0\x0\x64\x61\x74\x61\x88\xb3\x6d\x0"
  65.     string NAME += ".at3"
  66.     set RIFFSIZE SIZE
  67.     math RIFFSIZE += 0x44
  68.     if BITSIGN == 4 # 66kbps
  69.         putVarChr MEMORY_FILE 0x1c 0x204d long
  70.         putVarChr MEMORY_FILE 0x20 0xc0 long
  71.     elif BITSIGN == 5 # 105 kbps
  72.         putVarChr MEMORY_FILE 0x1c 0x3324 long
  73.         putVarChr MEMORY_FILE 0x20 0x130 long
  74.     elif BITSIGN == 6 # 132 kbps
  75.         putVarChr MEMORY_FILE 0x1c 0x409a long
  76.         putVarChr MEMORY_FILE 0x20 0x180 long
  77.     endif
  78.     putVarChr MEMORY_FILE 0x04 RIFFSIZE long
  79.     putVarChr MEMORY_FILE 0x16 0x2 byte
  80.     putVarChr MEMORY_FILE 0x18 FREQ long
  81.     putVarChr MEMORY_FILE 0x48 SIZE long
  82.     append
  83.     log MEMORY_FILE OFFSET SIZE
  84.     append
  85.     math SIZE += 0x4c
  86.     log NAME 0 SIZE MEMORY_FILE
  87.     endian big
  88. endfunction