conv_rle.py 604 B

123456789101112131415161718192021222324252627282930313233343536
  1. import binascii
  2. data = open("rom.smc","r").read()
  3. data = binascii.rlecode_hqx(data)
  4. cfile = open("loader.c","w")
  5. hfile = open("loader.h","w")
  6. hfile.write('''
  7. #ifndef __FIFO_H__
  8. #define __FIFO_H__
  9. #define ROM_SIZE %i
  10. #endif
  11. ''' % len(data))
  12. cfile.write('''
  13. #include <avr/pgmspace.h>
  14. #include <loader.h>
  15. const char _rom[ROM_SIZE] PROGMEM = {
  16. ''')
  17. for idx,c in enumerate(data):
  18. c = ord(c)
  19. if idx<len(data)-1:
  20. cfile.write("0x%02x," % c)
  21. else:
  22. cfile.write("0x%02x" % c)
  23. if idx and idx%16==0:
  24. cfile.write("\n")
  25. cfile.write('''
  26. };
  27. ''')
  28. cfile.close()