Advertisement
Guest User

paf_splitter.py

a guest
Feb 22nd, 2020
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.79 KB | None | 0 0
  1.  
  2. #!/usr/bin/python
  3.  
  4. import os.path
  5. import struct
  6. import sys
  7.  
  8. MAGIC = 'Packed Animation File V1.0\n(c) 1992-96 Amazing Studio\n'
  9. MAGIC_LEN = len(MAGIC)
  10.  
  11. COUNT = 50
  12.  
  13. offsets = []
  14. f = file(sys.argv[1])
  15. for i in range(0, COUNT):
  16.     offs = struct.unpack('<I', f.read(4))[0]
  17.     offsets.append(offs)
  18.  
  19. assert offsets[0] == COUNT * 4
  20.  
  21. sizes = [ 0 ] * COUNT
  22. offset = os.path.getsize(sys.argv[1])
  23. for i in range(COUNT - 1, -1, -1):
  24.     if offsets[i] != 0:
  25.         sizes[i] = offset - offsets[i]
  26.         offset = offsets[i]
  27.  
  28. for i in range(0, COUNT):
  29.     if offsets[i] != 0:
  30.         print 'paf %d offset 0x%x size 0x%x' % (i, offsets[i], sizes[i])
  31.  
  32.         f.seek(offsets[i])
  33.         assert f.read(MAGIC_LEN) == MAGIC
  34.         f.seek(offsets[i])
  35.  
  36.         name = '%02d.paf' % i
  37.         o = file(name, 'wb')
  38.         o.write(f.read(sizes[i]))
  39.         o.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement