Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions res2img.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@


def get_rsrc_addr(idx):
ptr = (4 * idx + 0x14)
ptr = (4 * idx + 0x24)
buf = [ ord(elem) for elem in fileContent[ptr:ptr+4]]
addr = (buf[0] <<0) + (buf[1] <<8) + (buf[2] << 16) + (buf[3] <<24)
return addr
Expand Down Expand Up @@ -363,21 +363,21 @@ def raw2png(idx):
fileHeader = fileContent[0:5]
version = ord(fileContent[5:6])

if fileHeader != "HMRES":
if fileHeader != "NERES":
print "file isn't a resource file. Exiting"
os.exit(1)
print "file is a Haumi resource file"
print "version %d" % version

buf = [ ord(elem) for elem in fileContent[0x10:0x10+4]]
buf = [ ord(elem) for elem in fileContent[0x20:0x20+4]]
max_rsrc = (buf[0] <<0) + (buf[1] <<8) + (buf[2] << 16) + (buf[3] <<24)

print "number of resources: %d" % max_rsrc

#unpack
if args.unpack:

offs = 4 * max_rsrc + 0x14
offs = 4 * max_rsrc + 0x24

if args.translate:
#create only translate bitmap
Expand All @@ -399,18 +399,19 @@ def raw2png(idx):

#pack
if args.pack:
header_res = [ 0x48, 0x4D, 0x52, 0x45, 0x53, version , 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ]
header_res = [ 0x4E, 0x45, 0x52, 0x45, 0x53, version , 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ]
#extend the array to make space for number of element and resource's index
header_res.extend([0]*( 4 + 4 * max_rsrc))
for i in range(4):
header_res[0x10 + i] = (max_rsrc >> 8*i) & 0xFF
header_res[0x20 + i] = (max_rsrc >> 8*i) & 0xFF

offset = 0
warnings=''
for index in range(max_rsrc):
for i in range(4):
#print (0x14 + index *4 +i), (offset >> 8*i) & 0xFF
header_res[0x14 + index * 4+i] = (offset >> 8*i) & 0xFF
#print (0x24 + index *4 +i), (offset >> 8*i) & 0xFF
header_res[0x24 + index * 4+i] = (offset >> 8*i) & 0xFF
#print "resource %3d | addr: %x " % ( index, offset )
img,warn = png2raw(index)

Expand Down