diff options
Diffstat (limited to 'tools/splat/disassembler/disassembler_instance.py')
| -rw-r--r-- | tools/splat/disassembler/disassembler_instance.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/splat/disassembler/disassembler_instance.py b/tools/splat/disassembler/disassembler_instance.py new file mode 100644 index 0000000..988fe3c --- /dev/null +++ b/tools/splat/disassembler/disassembler_instance.py @@ -0,0 +1,26 @@ +from .disassembler import Disassembler +from .spimdisasm_disassembler import SpimdisasmDisassembler +from .null_disassembler import NullDisassembler + +__instance: Disassembler = NullDisassembler() +__initialized = False + + +def create_disassembler_instance(platform: str): + global __instance + global __initialized + if platform in ["n64", "psx", "ps2"]: + __instance = SpimdisasmDisassembler() + __initialized = True + return + + raise NotImplementedError("No disassembler for requested platform") + + +def get_instance() -> Disassembler: + global __instance + global __initialized + if not __initialized: + raise Exception("Disassembler instance not initialized") + return None + return __instance |
