diff --git a/Rom.py b/Rom.py index 0f8cf7b7..7cef05f5 100644 --- a/Rom.py +++ b/Rom.py @@ -284,14 +284,23 @@ def patch_enemizer(world, player, rom, baserom_path, enemizercli, random_sprite_ with open(options_path, 'w') as f: json.dump(options, f) - subprocess.check_call([os.path.abspath(enemizercli), - '--rom', baserom_path, - '--seed', str(world.rom_seeds[player]), - '--base', basepatch_path, - '--randomizer', randopatch_path, - '--enemizer', options_path, - '--output', enemizer_output_path], - cwd=os.path.dirname(enemizercli), stdout=subprocess.DEVNULL) + try: + subprocess.run([os.path.abspath(enemizercli), + '--rom', baserom_path, + '--seed', str(world.rom_seeds[player]), + '--base', basepatch_path, + '--randomizer', randopatch_path, + '--enemizer', options_path, + '--output', enemizer_output_path], + cwd=os.path.dirname(enemizercli), + check=True, + capture_output=True) + except subprocess.CalledProcessError as e: + from Main import EnemizerError + enemizerMsg = world.fish.translate("cli","cli","Enemizer returned exit code: ") + str(e.returncode) + "\n" + enemizerMsg += world.fish.translate("cli","cli","enemizer.nothing.applied") + logging.error(f'Enemizer error output: {e.stderr.decode("utf-8")}\n') + raise EnemizerError(enemizerMsg) with open(enemizer_basepatch_path, 'r') as f: for patch in json.load(f): @@ -2579,4 +2588,4 @@ def write_pots_to_rom(rom, pot_contents): write_int16(rom, pot_item_room_table_lookup + 2*i, n-2) else: write_int16(rom, pot_item_room_table_lookup + 2*i, n-2) - assert n <= pot_item_table_end \ No newline at end of file + assert n <= pot_item_table_end