Since I'm about to drive and pickup a MIG Switch of my own locally, I figured I would get a thread started since I plan on making a mega guide with some scripts to help users not only learn how to use their new flash cart but also use it efficiently.
To start. here are some Python 3 scripts to hopefully automate organizing your MIG Switches(MS from this point forward) SD card as well as automate renameing your cert files to work with your totally not downloaded XCI files
More to come once its actually in hand.
To start. here are some Python 3 scripts to hopefully automate organizing your MIG Switches(MS from this point forward) SD card as well as automate renameing your cert files to work with your totally not downloaded XCI files
Code:
import os
import re
from shutil import move
from os.path import exists, join
# Define the pattern for matching game file names
file_pattern = re.compile(r'^(.+)\.(xci|bin)$')
folder_pattern = re.compile(r'^(.+)\.xci$')
def organize_game_files(directory):
files = os.listdir(directory)
game_files = {}
# Organize files by their base name (XXX)
for file in files:
match = file_pattern.match(file)
if match:
base_name = match.group(1)
file_type = match.group(2)
if base_name not in game_files:
game_files[base_name] = []
game_files[base_name].append(file)
# For each game, create a directory (if it doesn't exist) and move files into it
for base_name, files in game_files.items():
folder_name = base_name + ".xci"
folder_path = join(directory, folder_name)
# Check if folder exists, if not create it
if not exists(folder_path):
os.makedirs(folder_path)
# Move all related files into the folder
for file in files:
src_path = join(directory, file)
dest_path = join(folder_path, file)
# Move file only if it's not already in the right directory
if not exists(dest_path):
move(src_path, dest_path)
print(f"Moved {file} to {folder_name}/")
# Run the function in the current directory
if __name__ == "__main__":
organize_game_files('.')
Code:
import os
import shutil
from os.path import exists, join
def organize_and_copy_files(directory):
# Get all .XCI files in the directory
xci_files = [file for file in os.listdir(directory) if file.endswith('.xci')]
# Define the files to copy from the mastercert folder
cert_files = ['XXX (Certificate).bin', 'XXX (Card ID Set).bin', 'XXX (Card UID).bin']
master_cert_path = join(directory, 'mastercert')
for xci_file in xci_files:
# Create a directory for the .XCI file
base_name = xci_file[:-4] # Remove the .xci extension
new_folder_path = join(directory, base_name + '.xci')
os.makedirs(new_folder_path, exist_ok=True)
# Copy and rename the certificate files
for cert_file in cert_files:
new_file_name = cert_file.replace('XXX', base_name)
src_path = join(master_cert_path, cert_file)
dest_path = join(new_folder_path, new_file_name)
if exists(src_path):
shutil.copy(src_path, dest_path)
print(f'Copied and renamed {cert_file} to {new_file_name}')
# Run the function in the current directory
if __name__ == "__main__":
organize_and_copy_files('.')
More to come once its actually in hand.