Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
AD&D プールオブレイディアンス (FC) 文字列デコーダ
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""AD&D プールオブレイディアンス (FC) 文字列デコーダ
"""
import argparse
def chunks(in_, size):
while True:
chunk = in_.read(size)
if not chunk: break
yield chunk
CHARS = (
# 0x00
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
# 0x20
"_", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
)
def por_chr(n):
c = CHARS[n]
return c if c else " "
def por_strings(args):
for i, chunk in enumerate(chunks(args.in_, 0x10)):
str_ = "".join(map(por_chr, chunk))
print("0x{:04X}:{}".format(0x10*i, str_))
def parse_args():
ap = argparse.ArgumentParser()
ap.add_argument("in_", type=argparse.FileType("rb"))
return ap.parse_args()
def main():
args = parse_args()
por_strings(args)
if __name__ == "__main__": main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment