1import json 2 3from fsgs.option import Option 4from fsgs.platform import PlatformHandler 5from fsgs.platforms.atari.hatariataridriver import ( 6 HatariAtariDriver, 7 ATARI_MODEL_1040ST, 8) 9from fsgs.platforms.loader import SimpleLoader 10 11 12class AtariSTPlatformHandler(PlatformHandler): 13 PLATFORM_NAME = "Atari ST" 14 15 def __init__(self): 16 PlatformHandler.__init__(self) 17 18 def get_loader(self, fsgs): 19 return AtariSTLoader(fsgs) 20 21 def get_runner(self, fsgs): 22 return HatariAtariDriver(fsgs) 23 24 25class AtariSTLoader(SimpleLoader): 26 def load_files(self, values): 27 file_list = json.loads(values["file_list"]) 28 # assert len(file_list) == 1 29 if file_list[0]["name"].endswith(".st"): 30 self.config["floppy_drive_0"] = "sha1://{0}/{1}".format( 31 file_list[0]["sha1"], file_list[0]["name"] 32 ) 33 if file_list[0]["name"].endswith(".stx"): 34 self.config["floppy_drive_0"] = "sha1://{0}/{1}".format( 35 file_list[0]["sha1"], file_list[0]["name"] 36 ) 37 38 def load_extra(self, values): 39 self.config[Option.ATARI_MODEL] = values["model"] 40 if not self.config[Option.ATARI_MODEL]: 41 self.config[Option.ATARI_MODEL] = ATARI_MODEL_1040ST 42