Shoometsu's SelfBoot Batch Script

Technical help for Dreamcast console, accessories and games only. Ask questions and find answers here. For Online help see the Online Forum

Moderator: pcwzrd13

User avatar
-drez01-
Tank Jr.
Posts: 344
Joined: Tue Feb 17, 2009 7:19 pm
Dreamcast Games you play Online: Quake III Arena
Location: Canada

Shoometsu's SelfBoot Batch Script

Postby -drez01- » Mon Jan 11, 2021 6:03 pm

I had my main backup HDD drive die a while back and lost all of my dreamcast archives. I want to get back into the scene. I Just tore apart the house looking on every thumb drive I had to find Shoometsu's SelfBoot Batch Script. No luck. I can't find it online anywhere, all links are broken. Anyone have this laying around? I would very much appreciate it!!!

User avatar
Ian Micheal
Developer
Posts: 5993
Joined: Wed Dec 19, 2018 5:23 am
Location: USA
Contact:

Re: Shoometsu's SelfBoot Batch Script

Postby Ian Micheal » Mon Jan 11, 2021 6:30 pm

-drez01- wrote:I had my main backup HDD drive die a while back and lost all of my dreamcast archives. I want to get back into the scene. I Just tore apart the house looking on every thumb drive I had to find Shoometsu's SelfBoot Batch Script. No luck. I can't find it online anywhere, all links are broken. Anyone have this laying around? I would very much appreciate it!!!


I dont know why you want that as lazyboot is much better for such things but here from my blevy of archives of dreamcast junk
Shoometsu's SelfBoot Batch Script.rar
(1.99 MiB) Downloaded 418 times

Code: Select all

Shoometsu's SelfBoot Batch Script - Usando dados não-SelfBoot

APRESENTAÇÃO

Eu criei esse script movido por necessidades pessoais, inspirado pelo "Pedro's SelfBoot Script", que achei em minhas andanças pelo submundo da rede. O script que desenvolvi tem o mesmo objetivo final do Pedro's SelfBoot Batch Script, mas por métodos diferentes, com algumas vantagens e opções extras, como vocês verão na lista abaixo:

- Cria imagens .MDS ou .CDI, ao invés de gravar o CD diretamente;
- Faz SelfBoot de jogos não-SelfBoot;
- Refaz SelfBoot de jogos que já tenham SelfBoot (útil pra hacks/traduções);
- Faz SelfBoot até mesmo de arquivos originalmente extraídos de GD-ROMs, ou seja, que ainda não foram hackeados de nenhuma forma (RAW dumps), removendo a maioria das proteções que os jogos têm, originalmente. Confesso que essa última opção foi a razão do desenvolvimento desse script, mas depois vi que serviria para os demais jogos, por isso resolvi reunir tudo em um só.

Possui 3 opções para criação das imagens. São usadas as ferramentas MDS4DC e CDI4DC para criação das mesmas:

- MDS com CDDA (para gravar com o Alcohol120%);
- MDS SEM CDDA (para gravar com o Alcohol120%);
- CDI SEM CDDA (para gravar com o DiscJuggler);

Nota: CDDA é a sigla para "CD Digital Audio", ou seja, faixas de áudio, iguais àquelas que você ouve nos seus CD-ROMs de música. Embora sejam poucos, alguns jogos as usam no próprio jogo, como também acontece com alguns jogos de Sega Saturn e PSX.

AS VANTAGENS DO USO DESSE SCRIPT EM RELAÇÃO AOS MÉTODOS "CONVENCIONAIS":

- Gera imagens MDS (Alcohol120%) que podem, inclusive, incluir CDDAs escolhidas pelo usuário, na quantidade e ordem em que o mesmo informá-las;
- A imagem CDI gerada é lida perfeitamente nos drives virtuais atuais, sendo que o antigo bin2boot gera uma CDI em um formato antigo, que os softwares de drive virtual atuais não reconhecem corretamente;
- Pode-se testar a imagem gerada ANTES da gravação. Assim, se você tiver feito algo de errado, terá a chance de confirmar em algum emulador antes de gravar (e perder) a mídia. Recomendo o nullDC ou o Makaron para tais testes;
- Como refaz o SelfBoot de jogos que já o tenham, é ideal para quem precisa modificar os jogos, podendo, ainda por cima, testar diretamente em emuladores, poupando tempo e dinheiro com gravação de CDs;
- Permite especificar a ordem em que os arquivos serão gravados no CD, obrigatório pra quem faz dummy e/ou quer que o console faça menos barulho ao rodar os jogos;
- Processo simplificado pra quem não tem prática com SelfBoot. Na maioria dos casos, bastará usar as opções padrão, seguindo as orientações na tela.

COMO USAR

1 - Após Baixar o arquivo, descompacte em uma pasta qualquer;
2 - Copie todos os arquivos do jogo para a pasta \data, e as faixas de áudio para a pasta \audio;
3 - Execute o arquivo "Shoometsu's SelfBoot Batch Script.exe" e informe os dados CONFORME AS ORIENTAÇÕES NA TELA.

Para confirmar se o processo deu certo, basta montar a imagem em um drive virtual qualquer e tentar iniciar o jogo no nullDC, Makaron, Chankast ou dEmul. Se iniciar, deu tudo certo. É só gravar.

JOGOS QUE USAM WINDOWS CE

Atualmente ainda não há nenhum emulador que rode tais jogos de forma satisfatória, e mesmo com esse script o jogo irá travar. Para comprovar se o selfBoot funcionou, Eu indico que se use o nullDC, e que se acompanhe as mensagens da console window. Se ela parar em algo com "..., invalidating *TLB" ele terá sido convertido com sucesso.

IMPORTANTE SOBRE AS CDDAs

Os arquivos precisam estar em formato .RAW (NÃO .WAV), devem ser copiados para a pasta \audio, e durante a gravação a ordem das faixas será organizada alfabeticamente de acordo com os nomes de arquivo. Caso opte por especificar MANUALMENTE quais arquivos usar, a ordem em que as faixas serão gravadas dependerá da ordem em que você informá-las na hora em que for solicitada tal informação. Neste último caso, observe que os nomes dos arquivos de áudio NÃO DEVEM CONTER ESPAÇOS E/OU CARACTERES ESPECIAIS. Sugiro o formato trackxx.raw onde o "xx" é o número da faixa (Ex. track04.raw, track05.raw,...), até mesmo para evitar maiores confusões.

Exemplo prático: suponhamos que você tenha os arquivos "track01.raw" e "track02.raw" na pasta \audio e deseje usá-los como faixas de áudio. A tela do script mostrará o seguinte:

track01.raw
track01.raw

Na hora em que for solicitado, você deve informar CADA arquivo precedido pelo prefixo "audio\". Exemplo, onde "track01.raw" e track02.raw" serão a primeira e segunda faixas de áudio do CD, respectivamente:

audio\track01.raw audio\track02.raw

- Se você precisa extrair essas faixas do CD, recomendo usar o IsoBuster. Basta o CD estar montado no drive virtual ou inserido no real;
- Se você precisa converter arquivos .WAV pra .RAW, uma boa forma de fazer isso é criar uma imagem .CUE com os arquivos .WAV que irá usar e na ordem em que serão gravados, montar em um drive virtual e extraí-los com o IsoBuster em formato .RAW.

Para ambos os casos, a seguir você deve selecionar todas as faixas que irá usar na janela à direita. Clique em cada faixa de áudio com o botão direito do mouse e escolha "Extract RAW data (2352 bytes/block)". Observe que, os arquivos extraídos terão a extensão .BIN, e precisarão ser renomeados para .RAW antes de serem copiados para a pasta \audio.

IMPORTANTE SOBRE A ESPECIFICAÇÃO DA ORDEM EM QUE OS ARQUIVOS SERÃO GRAVADOS

Os arquivos no GD-ROM são alcados em uma ordem que é considerada a "melhor possível para a leitura, de forma a estender a vida útil do leitor movendo-o o mínimo possível, o que também diminui em muito aquele barulho alto e irritante (acho o DC o console que mais deixa a desejar nesse quesito) que o leitor faz ao se mover, fazendo com que o jogo rode o mais silenciosamente possível. Logo, seria ótimo manter essa ordem ao gerar a imagem pra gravação, não concorda?

No caso, o MKISOFS, usado para gerar a faixa de dados do jogo, permite que essa ordem seja especificada a partir de um arquivo de texto que segue o formato de sort do cdrecord, e o script já está preparado para usar esse arquivo, caso exista. Basta que ele esteja nomeado para "sort.txt", e o script o reconhecerá e usará automaticamente. Vale ressaltar que, caso falte algum arquivo na listagem desse arquivo texto (um arquivo que está na pasta \data, mas não consta no sort.txt), a ordem não será seguida, e de nada adiantará ter esse sort.txt. Portanto, assegure-se de que TODOS os arquivos constantes na pasta \data ESTARÃO listados nesse arquivo.

Caso você queira manter a ordem original dos arquivos como estava no CD/GD-ROM anterior/original/"original", você deve criar um arquivo sort.txt com as informações necessárias, e, para tal, você deve montar a imagem em seu drive virtual, ou pôr o CD-ROM no drive, se esse já estiver gravado, e abrir o IsoBuster. No menu direito, onde deve constar "Session 1" e "Session 2", vá expandindo a árvore até que se abra um item com o nome do volume do jogo (por exemplo: "Rez", "Echelon", etc.) e que tem, à sua esquerda, um ícone vermelho escrito "ISO". Clique nele com o botão direito do mouse e navegue pelas seguintes opções, na ordem:

- Árvore de diretórios e informações do arquivo;
- Copia informação da estrutura de arquivo;
- LBA, caminho RELATIVO.

Especifique o local onde será salvo esse arquivo que será automaticamente nomeado como "FileList.txt". Observe que esse arquivo ainda não está no formato necessário, e precisaremos fazer ainda uma conversão. Mova o arquivo Filelist.txt para a pasta \extra_tools do script e execute o progama "makesort.exe" que converterá o mesmo para o formato que precisamos e o salvará como "sorttxt.txt". Outra coisa importante a se lembrar é que esse sorttxt.txt terá automaticamente uma entrada em seu final referente ao arquivo dummy, nomeado como "0.0". Logo, se você usar algum arquivo dummy, renomeie-o para esse nome, ou exclua essa entrada do final do arquivo sort.txt, caso não vá usar nenhum arquivo dummy. Feito isso, basta renomear o sorttxt.txt para sort.txt e colocá-lo na mesma pasta onde está o script (que seria um nível acima, na estrutura de pastas), o script o reconhecerá e usará automaticamente. Para confirmar se a ordem dos arquivos foi seguida na imagem, monte a imagem SelfBoot já pronta no drive virtual e novamente com o Isobuster navegue pelo CD, e escolha a couna "LBA" que os arquivos serão exibidos em ordem crescente/decrescente de alocação. Quanto maior a LBA, mais próximo da borda do CD o arquivo será alocado.

IMPORTANTE SOBRE ARQUIVOS DUMMY

Na pasta extra_tools há um arquivo chamado "Criar_dummy.bat" usado para esse fim, e também um tutorial básico que ensina a calcular o tamanho do arquivo dummy a ser usado. Observe que não adiantará usar um arquivo dummy sem usar a técnica de sort mencionada no item anterior, pois o arquivo dummy tem que estar fisicamente alocado o "mais pra dentro" possível no CD, para empurrar a alocação dos arquivos do jogo mais para a borda do CD. Se não for usado o sort, a ordem física de alocação é feita de uma forma meio que aleatória, que pode até forçar mais o leitor, obrigando-o a fazer mais "idas e vindas" para carregar os dados do jogo.

A IMPLEMENTAR

- Melhorar o processo SelfBoot: há um ou outro jogo que ainda precisa de um ou outro gambiware além do que o script já faz. São poucos, mas pode ainda acontecer algum erro; mas ele funcionou sem problemas com mais de 90% dos jogos que testei;
- Interface melhor: quando dominar cada passo do que é necessário para o SelfBoot, desenvolvo uma aplicação (com código próprio, ou nem compensa XD) que faça tudo o que é necessário, e sem depender do batch script do DOS, que, aliás, é muito pobre. Também será algo mais amigável para quem não conhece nada sobre SelfBoot. Por agora, quem não conhecer absolutamente nada, e estiver passando por dificuldades, terá que estudar (e apanhar) um pouco. Acreditem, eu também não nasci sabendo fazer isso, e perdi MUITOS CDs até que dominasse um pouco do processo ;)
- Calcular e adicionar dummy ao jogo automaticamente, criando a imagem com os arquivos na ordem mais correta, ou seguindo a ordem original do GD-ROM, quando esta informação estiver disponível, o que utilizará o leitor da melhor forma possível. Atualmente, eu consigo fazer isso manualmente (e há uma ferramenta pra isso na pasta extra_tools  pra tal), mas ainda não desenvolvi um método que fizesse isso e pudesse ser integrado ao script, como quero que seja feito. Será algo para que eu também terei que desenvolver uma aplicação à parte, a ser integrada àquela com interface aprimorada;
- Gravação direta no CD, como no método SelfBoot original, desenvolvido pelo grupo ECHELON. Esse foi um pedido de um dos betatesters que, assim que minha preguiça permitir, será implementado.

AGRADECIMENTOS (SEM ORDEM ESPECÍFICA):

- DrasgonDigger, fabiofcouto e Guiile, por serem "betatesters" do script, me falando de jogos onde tiveram problemas, dando sugestões e apontando falhas;
- ECHELON, por desenvolver o método o SelfBoot original;
- [big_fury] SiZiOUS por criar o MDS4DC e o CDI4DC. Sem essas ferramentas eu nem teria como montar tudo isso;
- Aos desenvolvedores das demais ferramentas que uso no script. Achei elas nas minhas andanças pela rede, e infelizmente não sei a quem dar os créditos na grande maioria dos casos.
- Às demais pessoas de quem eu possa ter me esquecido, mas das quais devo ter torrado a paciência, perguntando sobre SelfBoot.

Visite http://www.SNK-NeoFighters.com

EOF

User avatar
-drez01-
Tank Jr.
Posts: 344
Joined: Tue Feb 17, 2009 7:19 pm
Dreamcast Games you play Online: Quake III Arena
Location: Canada

Re: Shoometsu's SelfBoot Batch Script

Postby -drez01- » Mon Jan 11, 2021 6:51 pm

YESSS! Thank you Ian! It's an acquired taste :geek:


  • Similar Topics
    Replies
    Views
    Last post

Return to “Support”

Who is online

Users browsing this forum: No registered users