Advertisement
joric

text_to_frames.py

Sep 13th, 2018
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. #!/bin/python3
  2.  
  3. # (C) joric 2018, public domain
  4. # converts data from ayumi text files (see psg_to_text.py)
  5.  
  6. import sys
  7. import struct
  8.  
  9. filename = sys.argv[1] if len(sys.argv)>1 else 'RAGE_2.txt'
  10.  
  11. f = open(filename).read().splitlines()
  12. f = f[f.index('frame_data') + 2:]
  13.  
  14. frames = []
  15. ints = []
  16.  
  17. for s in f:
  18.     r = [int(x) for x in s.split(' ')]
  19.     ints.append( [ struct.unpack( ">I", bytearray( r[i*4:i*4+4] ) ) for i in range(4) ] )
  20.     frames.append(r[:14])
  21.  
  22.  
  23. start = 64*2 * 4
  24. pat_len = 64 * 4
  25.  
  26. ints = ints[start:start+pat_len]
  27. frames = frames[start:start+pat_len]
  28.  
  29. print('#define FRAMES %d' % len(frames))
  30.  
  31. mode = 1
  32.  
  33. if mode==0:
  34.     print('const uvec4 regs[] = uvec4[] (')
  35.     print(',\n'.join( ['\tuvec4( %s )' % ', '.join( '0x%08x' % j for j in i ) for i in ints] ))
  36.     print(');')
  37.  
  38. if mode==1:
  39.     print('int frame_data[] = int[] (')
  40.     print(',\n'.join( ['\t%s' % ', '.join( '0x%08x' % j for j in i ) for i in ints] ))
  41.     print(');')
  42.  
  43. if mode==2:
  44.     print('const unsigned int frame_data[] = {')
  45.     print(',\n'.join( ['\t%s' % ', '.join( '0x%08x' % j for j in i ) for i in ints] ))
  46.     print('};')
  47.  
  48. if mode==3:
  49.     print('const unsigned char frame_data[][14] = {')
  50.     print(',\n'.join( ['\t%s' % ', '.join( '0x%02x' % j for j in i ) for i in frames] ))
  51.     print('};')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement