Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Publicado por Xerxes em 16/09/2025
[ Hits: 754 ]
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
Linux em SSD não reconhecido no BIOS [Resolvido]
Sincronize um diretório pessoal com o Google Drive
Removendo Lightdm e boot splash do GRUB
Evitando conflitos de pacotes devido overlay no Funtoo
Jogos e Programas para Windows portados em AppImage para Linux
Overclocking Permanente para Drastic no Miyoo Mini Plus
Como executar o RPGBoss no Linux
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Atualizações de Segurança Automáticas no Debian
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Alguém tem que acabar com ANATEL!!! (0)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (4)









