WIP: Quick and dirty python3 port

This commit is contained in:
Hector Martin
2021-03-17 23:53:31 +09:00
parent a8e5f6c0f7
commit cad274a7fb
41 changed files with 2399 additions and 2387 deletions

View File

@@ -14,14 +14,14 @@ export ALAMEDA := $(CURDIR)/../../pywii/Alameda
export PNG2TPL := $(CURDIR)/tools/png2tpl$(EXE)
export MKBNS := $(CURDIR)/tools/mkbns$(EXE)
export LZ77 := $(CURDIR)/tools/lz77$(EXE)
export ADDIMD5 := python2 $(CURDIR)/tools/addimd5.py
export ARCPACK := python2 $(PYWII)/arcpack.py
export ADDIMD5 := python3 $(CURDIR)/tools/addimd5.py
export ARCPACK := python3 $(PYWII)/arcpack.py
export SOX := sox
all: channel.imet
channel.imet: build/data.arc names.txt tools/join-imet.py
python2 tools/join-imet.py $@ build/data.arc build/icon.arc build/banner.arc build/sound.bns names.txt
python3 tools/join-imet.py $@ build/data.arc build/icon.arc build/banner.arc build/sound.bns names.txt
build/data.arc : build/data/meta/icon.bin build/data/meta/banner.bin build/data/meta/sound.bin
$(ARCPACK) $@ build/data
@@ -45,9 +45,9 @@ build/%.raw : sound/%.wav
$(SOX) $< -r 32000 -c 2 -e signed-integer -b 16 -t raw $@
testi : channel.imet
python2 $(ALAMEDA)/Alameda.py channel.imet icon
python3 $(ALAMEDA)/Alameda.py channel.imet icon
testb : channel.imet
python2 $(ALAMEDA)/Alameda.py channel.imet banner
python3 $(ALAMEDA)/Alameda.py channel.imet banner
$(PNG2TPL): tools/*.c
$(MAKE) -C tools png2tpl$(EXE)

View File

@@ -19,7 +19,7 @@ endif
../build/$(TYPE)/arc/blyt/$(TYPE).brlyt $(ANIMS) : mk$(TYPE).py
@[ ! -d ../build/$(TYPE)/arc/anim ] && mkdir -p ../build/$(TYPE)/arc/anim || true
@[ ! -d ../build/$(TYPE)/arc/blyt ] && mkdir -p ../build/$(TYPE)/arc/blyt || true
python2 mk$(TYPE).py ../build/$(TYPE)/arc/blyt/$(TYPE).brlyt $(ANIMS)
python3 mk$(TYPE).py ../build/$(TYPE)/arc/blyt/$(TYPE).brlyt $(ANIMS)
../build/$(TYPE).arc : $(TPLS) ../build/$(TYPE)/arc/blyt/$(TYPE).brlyt $(ANIMS)
$(ARCPACK) ../build/$(TYPE).arc ../build/$(TYPE)

View File

@@ -244,7 +244,7 @@ class BubbleInstance:
for i in tps:
if len(i.Triplets) > 0:
if i.Triplets[-1][0] >= self.Start:
print "WTF at %s: %f >= %f"%(self.Picture.Name,i.Triplets[-1][0],self.Start)
print("WTF at %s: %f >= %f"%(self.Picture.Name,i.Triplets[-1][0],self.Start))
raise RuntimeError("We Have A Problem")
brlan.Anim[self.Picture.Name][Brlan.A_COORD][Brlan.C_X].Triplets.append((self.Start, self.X, 0))
@@ -293,15 +293,15 @@ class BubbleCollection:
#print "Freeing instance: [%f-%f]"%(user.Start,user.End)
tis[i] = pic, None
def printinstances(self):
print "Type Instances:"
print("Type Instances:")
for tid, tis in enumerate(self.TypeInstances):
print " Type Instances for type %d (%s):"%(tid, self.BubbleTypes[tid][0].Name)
print(" Type Instances for type %d (%s):"%(tid, self.BubbleTypes[tid][0].Name))
for i, ti in enumerate(tis):
pic, user = ti
if user is None:
print " %d: Picture %s, free"%(i,pic.Name)
print(" %d: Picture %s, free"%(i,pic.Name))
else:
print " %d: Picture %s, user: %s [%f-%f]"%(i,pic.Name,repr(user),user.Start,user.End)
print(" %d: Picture %s, user: %s [%f-%f]"%(i,pic.Name,repr(user),user.Start,user.End))
def render(self):
for t,c in self.BubbleTypes:
t.makemat(self.Brlyt)
@@ -330,9 +330,9 @@ class BubbleCollection:
i.render(self.Brlan)
#self.printinstances()
print "Fake Start",fakeStart
print "Loop Start",loopStart
print "Loop End",loopEnd
print("Fake Start",fakeStart)
print("Loop Start",loopStart)
print("Loop End",loopEnd)
col = BubbleCollection(brlyt, brlan, bubblepane)
col.addtype(BubbleType("abubble1", 48, 48),1)
@@ -374,10 +374,10 @@ for i in col.Instances:
col.render()
brldata = brlyt.Pack()
open(sys.argv[1],"w").write(brldata)
open(sys.argv[1],"wb").write(brldata)
bradata = brlan.Pack(loopStart)
open(sys.argv[2],"w").write(bradata)
open(sys.argv[2],"wb").write(bradata)
bradata = brlan.Pack(loopStart, loopEnd)
open(sys.argv[3],"w").write(bradata)
open(sys.argv[3],"wb").write(bradata)

View File

@@ -111,7 +111,7 @@ brlyt.RootPane.Add(tit)
brldata = brlyt.Pack()
open(sys.argv[1],"w").write(brldata)
open(sys.argv[1],"wb").write(brldata)
brlan = Brlan()
@@ -177,6 +177,6 @@ brlan.Anim['shadow'][Brlan.A_COORD][Brlan.C_X].repsimple(0, 960, 2, -45, -0.1, 4
bradata = brlan.Pack(60*16)
for a,b,c in brlan.Anim['waveb'][Brlan.A_COORD][Brlan.C_X].Triplets:
print a,b,c
print(a,b,c)
open(sys.argv[2],"w").write(bradata)
open(sys.argv[2],"wb").write(bradata)

View File

@@ -1,12 +1,12 @@
import md5, sys, struct
import hashlib, sys, struct
data= open(sys.argv[1]).read()
data= open(sys.argv[1], "rb").read()
digest = md5.new(data).digest()
digest = hashlib.md5(data).digest()
hdr = struct.pack(">4sI8x","IMD5",len(data))
hdr = struct.pack(">4sI8x",b"IMD5",len(data))
f2 = open(sys.argv[2],"w")
f2 = open(sys.argv[2],"wb")
f2.write(hdr)
f2.write(digest)
f2.write(data)

View File

@@ -1,8 +1,8 @@
import os, sys, struct, md5
import os, sys, struct, hashlib
output, datafile, iconarc, bannerarc, soundbns, namesfile = sys.argv[1:]
data = open(datafile,"r").read()
data = open(datafile,"rb").read()
names={}
@@ -11,7 +11,7 @@ for i in open(namesfile,"r"):
while b[-1] == "\n":
b = b[:-1]
b = b.replace("\\n","\n")
names[a] = b.decode("utf-8")
names[a] = b
def getsize(x):
return os.stat(x).st_size
@@ -20,29 +20,29 @@ def pad(x,l):
if len(x) > l:
raise ValueError("%d > %d",len(x),l)
n = l-len(x)
return x + "\x00"*n
return x + b"\x00"*n
imet = "\x00"*0x40
imet += struct.pack(">4sIIIIII","IMET",0x600,3,getsize(iconarc),getsize(bannerarc),getsize(soundbns),1)
imet = b"\x00"*0x40
imet += struct.pack(">4sIIIIII",b"IMET",0x600,3,getsize(iconarc),getsize(bannerarc),getsize(soundbns),1)
for i in ["jp", "en", "de", "fr", "sp", "it", "nl", "cn", None, "ko"]:
try:
imet += pad(names[i].encode("UTF-16BE"),0x54)
except KeyError:
imet += "\x00"*0x54
imet += "\x00"*(0x600 - len(imet))
imet += b"\x00"*0x54
imet += b"\x00"*(0x600 - len(imet))
imet = imet[:-16] + md5.new(imet).digest()
imet = imet[:-16] + hashlib.md5(imet).digest()
open(output,"w").write(imet)
open(output,"wb").write(imet)
f = open(sys.argv[1],"w")
f = open(sys.argv[1],"wb")
f.write(imet)
f.write(data)
fsize = f.tell()
if (fsize % 20) != 0:
f.write("\x00"*(20-(fsize%20)))
f.write(b"\x00"*(20-(fsize%20)))
f.close()

View File

@@ -33,7 +33,7 @@ DIR_LIBS = \
$(DEVKITPRO)/libogc/lib/wii \
$(DEVKITPRO)/portlibs/ppc/lib
LIBS = mxml freetype png bz2 z db fat wiiuse bte ogc m
LIBS = mxml freetype png z db fat wiiuse bte ogc m
MACHDEP = -g -DGEKKO -mrvl -mcpu=750 -meabi -mhard-float
CFLAGS = $(MACHDEP) -Os -Wall -DBASE_ADDR=$(BASE_ADDR) $(DIR_INCLUDES:%=-I%)