From 6bfc2d0d447f428a69da4bc81474b84c75baf84c Mon Sep 17 00:00:00 2001 From: Godzil Date: Fri, 4 Oct 2019 18:19:30 +0100 Subject: [PATCH] Add some more tools (experimentals) and some more better things, still a lot of thing to do... --- cel2wst.py | 32 +++++++++++++++++++ map2wsm.py | 51 +++++++++++++++++++++++++++++++ samplesplash.json | 4 +-- splashbuilder.py | 78 ++++++++++++++++++++++++++++++----------------- 4 files changed, 135 insertions(+), 30 deletions(-) create mode 100644 cel2wst.py create mode 100644 map2wsm.py diff --git a/cel2wst.py b/cel2wst.py new file mode 100644 index 0000000..c3f831d --- /dev/null +++ b/cel2wst.py @@ -0,0 +1,32 @@ +# GB CEL to WS Tile +import struct +import argparse + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-i", "--input", required=True, type=str, help="Input file") + parser.add_argument("-o", "--output", type=str, help="Output file", default="output.bin") + args = parser.parse_args() + + with open(args.input, "rb") as f_in: + with open(args.output, "wb") as f_out: + for prout in range(6): + data = f_in.read(8*8) + print(type(data)) + p0 = 0 + p1 = 0 + + for y in range(8): + for x in range(8): + d = struct.unpack("B", data[y*8+x])[0] + p0 = p0 << 1 + p0 |= 1 if d & 0x01 else 0 + p1 = p1 << 1 + p1 |= 1 if d & 0x02 else 0 + f_out.write(struct.pack("BB", p0, p1)) + p0 = 0 + p1 = 0 + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/map2wsm.py b/map2wsm.py new file mode 100644 index 0000000..347f580 --- /dev/null +++ b/map2wsm.py @@ -0,0 +1,51 @@ +# Convert GB Map to WS Map +import struct +import argparse + +""" + GP Map is done: + - width (4 bytes) + - height (4 bytes) + Tiles[] (2 bytes) + b11 - Vert mirror + b10 - Horz mirror + b9-b0 - tile number +""" + +""" +WS Map is + b15 vert flip + b14 horz flip + b13 tile bank + b12-b9 palette + b8-b0 tile +""" + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-i", "--input", required=True, type=str, help="Input file") + parser.add_argument("-o", "--output", type=str, help="Output file", default="output.bin") + args = parser.parse_args() + + with open(args.input, "rb") as f_in: + with open(args.output, "wb") as f_out: + data = f_in.read(4) + width = struct.unpack("