import struct names = {} names['PATH'] = '/Maps/forest/pathdata.bin' names['SCN0'] = '/Maps/forest/mainscene.bin' names['3D00'] = '/Maps/forest/base.brres' header = struct.pack('>4sI', b'MSet', len(names)) entrydata = b'' stringtable = b'' currentoffset = 8 + (8 * len(names)) for key,path in names.items(): entrydata += struct.pack('>4sI', key.encode('Shift-JIS'), currentoffset) encpath = path.encode('Shift-JIS') stringtable += encpath stringtable += b'\0' currentoffset += len(encpath) + 1 open('SMGoldwood.fileset', 'wb').write(header + entrydata + stringtable)