diff options
Diffstat (limited to 'tools/splat/util/gc/gcinfo.py')
| -rw-r--r-- | tools/splat/util/gc/gcinfo.py | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/tools/splat/util/gc/gcinfo.py b/tools/splat/util/gc/gcinfo.py deleted file mode 100644 index 78130df..0000000 --- a/tools/splat/util/gc/gcinfo.py +++ /dev/null @@ -1,88 +0,0 @@ -#! /usr/bin/env python3 - - -import argparse - -import hashlib - -from pathlib import Path -from typing import Optional - -parser = argparse.ArgumentParser( - description="Gives information on GameCube disc images" -) -parser.add_argument("iso", help="path to a GameCube disc image") - -system_codes = { - "D": "GameCube Demo", - "G": "GameCube", - "P": "GameCube Promotional", - "R": "Early Wii", - "S": "Later Wii", -} - -region_codes = {"E": "NTSC-U", "J": "NTSC-J", "P": "PAL"} - -publisher_codes = {"01": "Nintendo", "08": "Capcom", "8P": "Sega", "E9": "Natsume"} - - -def get_info(iso_path: Path, iso_bytes: Optional[bytes] = None): - if iso_bytes is None: - iso_bytes = iso_path.read_bytes() - - return get_info_bytes(iso_bytes) - - -def get_info_bytes(iso_bytes: bytes): - system_code = chr(iso_bytes[0x00]) - game_code = iso_bytes[0x01:0x03].decode("utf-8") - region_code = chr(iso_bytes[0x03]) - publisher_code = iso_bytes[0x04:0x06].decode("utf-8") - - name = str(iso_bytes[0x20:0x400], "utf-8").strip("\x00") - root = "filesystem" - - compiler = "mwcc" - sha1 = hashlib.sha1(iso_bytes).hexdigest() - - return GCIso( - name, - root, - system_code, - game_code, - region_code, - publisher_code, - compiler, - sha1, - ) - - -class GCIso: - def __init__( - self, - name: str, - root: str, - system_code, - game_code, - region_code, - publisher_code, - compiler, - sha1, - ): - self.name = name - self.root = root - self.system_code = system_code - self.game_code = game_code - self.region_code = region_code - self.publisher_code = publisher_code - self.compiler = compiler - self.sha1 = sha1 - - def get_system_name(self): - return system_codes[self.system_code] - - def get_publisher_name(self): - return publisher_codes[self.publisher_code] - - def get_region_name(self): - return region_codes[self.region_code] |
