echo "Como usar:" . PHP_EOL;
echo " - Crie uma pasta chamada 'scripts' no mesmo local onde estão os arquivos da tool;" . PHP_EOL;
echo " - Dentro da pasta 'scripts', crie outras duas pastas de nome 'originais' e 'dumpados';" . PHP_EOL;
echo " - Extraia, da pasta 'data' da rom do jogo (preferencialmente a americana), os seguintes arquivos:" . PHP_EOL;
echo "  1. Todos os arquivos em extensão .bin cujo nome começa com 'm_' e termina com 'en';" . PHP_EOL;
echo "  2. Todos os arquivos em extensão .bin cujo nome começa com 'talk_' e termina com 'en', 'en1' ou 'en2';" . PHP_EOL;
echo " - Ponha os seguintes arquivos dentro da pasta 'originais' e execute este script;" . PHP_EOL;
echo " - A extração dará início em seguida, salvando os scripts na pasta 'dumpados'." . PHP_EOL;
echo PHP_EOL;
aviso('Verificando quantidade de scripts...', false);
$scripts = glob('scripts/originais/*.bin', GLOB_BRACE);
$total_scripts = count($scripts);
aviso($total_scripts);
if ($total_scripts > 0) {
    aviso('Lendo tabela...', false);
    $tabela = lerTabelaCaracteres(false);
    aviso('OK!');
    aviso('Iniciando extração dos scripts...');
    foreach ($scripts as $script) {
        $nome_arquivo_original = basename($script);
        $nome_arquivo_dumpado = str_replace('.bin', '.txt', $nome_arquivo_original);
        aviso("Extraindo script \"{$nome_arquivo_original}\" para arquivo de texto \"{$nome_arquivo_dumpado}\"...", false);
        $script = fopen($script, 'r');
        $texto = fopen("scripts/dumpados/{$nome_arquivo_dumpado}", 'w');
        // Obtendo tamanho do arquivo
        $tamanho_arquivo = ler2BytesHexInvertido($script, 0) + 4;
        // Obtendo posição do texto...
        $posicao_inicio_textos = ler2BytesHexInvertido($script, 2) + 4;
        // Obtendo posições de início e fim dos ponteiros...
        $posicao_inicio_ponteiros = 4;
        $posicao_fim_ponteiros = $posicao_inicio_textos - 1;
echo PHP_EOL;
echo "Como usar:" . PHP_EOL;
echo " - Extraia os scripts da rom americana com o Script Dumper, se já não tiver o feito;" . PHP_EOL;
echo " - Dentro da pasta 'scripts', crie outras duas pastas 'traduzidos' e 'reinseridos';" . PHP_EOL;
echo " - Copie todos os arquivos de texto da pasta 'dumpados' para a pasta 'traduzidos';" . PHP_EOL;
echo " - Comece a traduzir os scripts da pasta 'traduzidos', mantendo os originais da pasta 'dumpados' intactos;" . PHP_EOL;
echo " - À medida que for traduzindo, ou ao terminar tudo, execute este script;" . PHP_EOL;
echo " - A reinserção dará início em seguida, re-gerando os arquivos .bin na pasta 'dumpados', prontos para serem reinseridos no jogo;" . PHP_EOL;
echo PHP_EOL;
aviso('Verificando quantidade de scripts dumpados...', false);
$textos = glob('scripts/traduzidos/*.txt', GLOB_BRACE);
$total_textos = count($textos);
aviso($total_textos);
if ($total_textos > 0) {
    aviso('Lendo tabela...', false);
    $tabela = lerTabelaCaracteres(true);
    aviso('OK!');
    aviso('Iniciando recompilação dos scripts...');
    foreach ($textos as $texto) {
        $nome_arquivo_dumpado = basename($texto);
        if ($nome_arquivo_dumpado == 'talk_q07_en1.txt') {
            aviso("O script \"{$nome_arquivo_original}\" é nulo e será ignorado.");
            continue;
        }
        $nome_arquivo_recompilado = str_replace('.txt', '.bin', $nome_arquivo_dumpado);
        aviso("Recompilando script \"{$nome_arquivo_dumpado}\" para arquivo binário \"{$nome_arquivo_recompilado}\"...", false);
        $texto = fopen($texto, 'r');
        $script = fopen("scripts/reinseridos/{$nome_arquivo_recompilado}", 'w');
        $posicao_inicio_ponteiros = $posicao_fim_ponteiros = $posicao_inicio_textos = $posicao_inicio_script = '';
        $array_ponteiros = array();
        // Lendo informações do script