summaryrefslogtreecommitdiff
path: root/tools/dumprelocs.py
blob: d5773e3ac36019419963cb2481931aa214ae4294 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import struct
up = struct.Struct('>II').unpack
u32 = struct.Struct('>I').unpack

data = open('NewerASM/pal_dlrelocs.bin', 'rb').read()
addr_offset = struct.unpack('>xxxxxxxxI', data[0:0xC])[0] - 0xC
data = data[0xC:]

reloc_count = addr_offset / 8

for i in xrange(reloc_count):
	entry = up(data[i*8:i*8+8])
	reltype = entry[0] >> 24
	addr_id = entry[0] & 0xFFFFFF
	offset = entry[1]

	offs = addr_offset+(addr_id*4)
	print "%2d: %08x => %08x" % (reltype, offset, u32(data[offs:offs+4])[0])