both the Steam and Switch version have artifacting on all sprites contained in the "sactx" atlas sheets meaning colours are blended and muddy, and not as clean and palette-friendly as they ought to be The Switch version also 'swizzles' most of its textures -- use the TilED maps to unswizzle them uses same method as Double Dragon Gaiden, canvas sizes and coordintes stored in "Sprite/" directory's JSON files under "m_Rect", and textures need vertically flipped to align with that data sprites are bunched muuuuch closer than DDG, so I had to manually crop out stray chunks at the edge of every extract. since a lot of sprites are sourced in the "sactx" atlases, you'll probably want to sort them by "m_PathID" so you know which file correlates to which sheet, this Python script will do that import os import json import shutil source_directory = "Sprite2" # Replace with your actual path def process_json_files(directory): for filename in os.listdir(directory): if filename.endswith(".json"): filepath = os.path.join(directory, filename) try: with open(filepath, 'r', encoding='utf-8') as file: data = json.load(file) rd = data.get("m_RD", {}) texture = rd.get("m_Texture", {}) if ( isinstance(texture, dict) and texture.get("m_Collection") == "resources.assets" and isinstance(texture.get("m_PathID"), int) and texture["m_PathID"] > 0 ): path_id = texture["m_PathID"] target_dir = os.path.join(directory, str(path_id)) os.makedirs(target_dir, exist_ok=True) shutil.move(filepath, os.path.join(target_dir, filename)) print(f"Moved {filename} to folder {path_id}") except (json.JSONDecodeError, IOError, PermissionError) as e: print(f"Failed to process {filename}: {e}") process_json_files(source_directory) JSON m_Path texture Duke_Idle_3.json 30 sactx-3 27 0 28 1 29 2 30 3 31 4 32 5 33 6 34 7 35 8 36 9 37 10 38 11 39 12 40 13 41 14 42 15 43 45 48 49 66