Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Publicado por Xerxes em 16/09/2025
[ Hits: 830 ]
Contra (USA).zip da pasta de originais se já tivermos um Contra.zip na nossa pasta de traduções.
Double Dragon (USA).zip, e remove todas as informações extras (como (USA), (Japan), (Rev 1)) e a extensão .zip, resultando em um nome "limpo", como Double Dragon.
Ctrl + Alt + T).
nano:
nano.
PASTA1="/caminho/para/sua/pasta_traduzida"
PASTA2="/caminho/para/sua/pasta_originais"
nano pressionando Ctrl + X, depois Y e, por fim, Enter.
prossiga e tecle Enter para ver sua coleção de ROMs ficar ainda mais completa!
#!/bin/bash
# --- CONFIGURAÇÃO ---
# !!! IMPORTANTE: Altere os caminhos abaixo para os caminhos corretos das suas pastas !!!
PASTA1="/media/xerxes/MMPLUS/Roms/FC" # Pasta de destino (suas ROMs traduzidas)
PASTA2="/home/xerxes/Downloads/tiny-best-set-go-games/Roms/FC" # Pasta de origem (ROMs não traduzidas)
# --------------------
# Verifica se os diretórios existem
if [ ! -d "$PASTA1" ] || [ ! -d "$PASTA2" ]; then
echo "❌ Erro: Um ou ambos os diretórios não foram encontrados. Verifique os caminhos no script."
exit 1
fi
echo "Pasta de ROMs Traduzidas (Destino): $PASTA1"
echo "Pasta de ROMs Originais (Origem): $PASTA2"
echo "-----------------------------------------------------"
echo "🔎 Fase 1: Analisando quais jogos da Pasta 2 podem ser copiados..."
echo "-----------------------------------------------------"
# Array para armazenar a lista de jogos a serem copiados
JOGOS_A_COPIAR=()
# Loop através de cada arquivo .zip na Pasta 2
for JOGO_ORIGEM in "$PASTA2"/*.zip; do
# Pega apenas o nome do arquivo, sem o caminho
NOME_ARQUIVO_ORIGEM=$(basename "$JOGO_ORIGEM")
# Normaliza o nome: remove tudo a partir do primeiro parêntese ou colchete
# e também remove a extensão .zip
NOME_NORMALIZADO=$(echo "$NOME_ARQUIVO_ORIGEM" | sed -E 's/ \(.+\)//g; s/ \[.+\]//g; s/\.zip$//')
# Verifica se um arquivo com o nome normalizado já existe na Pasta 1
EXISTE_NA_PASTA1=$(find "$PASTA1" -maxdepth 1 -type f -name "$NOME_NORMALIZADO*.zip" | head -n 1)
if [ -z "$EXISTE_NA_PASTA1" ]; then
# Se a variável estiver vazia, o jogo não existe na Pasta 1
echo " [+] Adicionar à lista de cópia: '$NOME_ARQUIVO_ORIGEM'"
JOGOS_A_COPIAR+=("$JOGO_ORIGEM")
else
# O jogo já existe, então não fazemos nada
:
fi
done
echo "-----------------------------------------------------"
echo "✨ Análise concluída!"
echo ""
# Verifica se há jogos para copiar
if [ ${#JOGOS_A_COPIAR[@]} -eq 0 ]; then
echo "Nenhum jogo novo para copiar. Sua coleção já está completa!"
exit 0
fi
echo "Serão copiados ${#JOGOS_A_COPIAR[@]} novos jogos para a sua coleção."
echo ""
read -p "Deseja prosseguir com a cópia? (digite 'prossiga' e pressione Enter): " CONFIRMACAO
# Verifica a confirmação do usuário
if [ "$CONFIRMACAO" == "prossiga" ]; then
echo ""
echo "🚀 Iniciando a cópia..."
for JOGO_PARA_COPIAR in "${JOGOS_A_COPIAR[@]}"; do
cp -v "$JOGO_PARA_COPIAR" "$PASTA1/"
done
echo ""
echo "✅ Cópia concluída com sucesso!"
else
echo ""
echo "❌ Operação cancelada pelo usuário. Nenhum arquivo foi copiado."
fi
convert - Como unir duas imagens em uma e converter o formato usando comandos
Ubuntu 14.04: Conecta, mas não navega [Resolvido]
Impressora de rede HP no Arch Linux
Mais uma pós Instalação Arch Linux
Ativando Modo Deus no DOOM Eternal no Linux
PokerStars no Xubuntu (Ubuntu)
Como instalar um jogo do Windows no Linux
PPRacer: Game de corrida para os jogadores de plantão
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
NixOS + NVIDIA antiga: como sobreviver ao driver 595 (GTX 750 Ti / Maxwell)
Conhecendo o tmux: Multiplexador de Terminal
Acessando página do Syncthing fora da máquina local
[Resolvido] Meu monitor suporta 100fps. Por que o máximo é 60fps nos jogos?
OpenClaude - toda IA joga mais que neymar (4)
Novos requisitos de sistema para a versão 26.04 (4)









