30/06/2023

240p Test Suite - A homebrew que calibra a sua TV

Como calibrar a sua televisão com 240p Test Suite
Você já deve ter visitado alguma vez um desses grupos nada secretos de gente como eu e você que tiram fotos das próprias televisões de tubo (as famosas CRT). Volta e meia você se depara com algo no entanto curioso: alguém compartilha uma televisão com essa grade bizarra aqui. O que o pessoal não imagina é que essa grade pertence a uma homebrew chamada 240 Test Suite. Não sabe do que estou falando? Siga-me os bons!

O que é uma homebrew?
Diferente das hacks (precisam da existência de uma ROM para serem criadas) as homebrews são feitas do zero. Algumas querem demonstrar o poder do console, outras apenas compartilham novas experiências como jogos completos não licenciados. Curiosamente esse termo foi usado faz décadas pra representar ROMs experimentais com qualidade duvidosa já que na época quem fazia estava aprendendo (e era imaturo).

Um pouco sobre o SNES Test Program:
Teoricamente se você disponibiliza um serviço ou um programa você tem que oferecer um tipo de suporte pro consumidor (mesmo para aqueles que ignoram o manual). Então existia uma ROM americana usada por funcionários da Nintendo pra testar se o console estava bem ou se era apenas o controle. Na época apenas funcionários poderiam ter acesso á essa fita mas com o avanço da internet você encontra facilmente por aí.
SNES Test Program Super Nintendo teste
"Meu pai trabalha na Nintendo"

Sobre o 240p Test Suite:
Então certo dia um cidadão muito legal chamado Artemio Urbina sentou a bunda na cadeira e programou um dos mais importantes (até então desconhecidos) programas para retro-gaming. Essa homebrew é capaz de calibrar não só a sua televisão CRT através de testes específicos (que variam de tons de cinza até geometria do tubão) mas componentes específicos de consoles (tipo as Maracas do Dreamcast). Os consoles com suporte são:
- Super Nintendo
- Sega Genesis/ Mega Drive
- Sega CD/ Mega CD
- Neo Geo MVS
- Neo Geo CD
- Dreamcast
- Sega 32x
- Nintendo Wii
- PC Engine
- Nintendo Gamecube

Caraca! O cara não está de brincadeira não.
Você pode baixar todas as versões visitando a página oficial bem AQUI.

vídeo produzido pelo canal My Life In Gaming

Como eu testo no Super Nintendo?
Em primeiro lugar você precisa ter um Everdrive (de acordo com o console suportado) pra enfiar a ROM e fazer o serviço na sua TV tubão predileta. Cada uma das funções possuem um objetivo específico (como podem ver no vídeo anterior) só que a magia acontece no controle remoto da sua TV. Os testes mais simples podem ser calibrados pelo menu (saturação, nitidez, brilho) porém existem os mais hardcores que precisam que você acesse o menu de serviço da TV.

O que é um Everdrive?
Everdrive é um cartucho manufaturado pelo ucraniano Krikzz e que anos depois foi (supostamente) clonado e vendido em massa pela china conhecido como 900 em 1. Basicamente é um cartucho comum de videogame porém é possível jogar qualquer jogo através de um suporte de cartão SD acoplado na placa desse cartucho. Você baixa a ROM, soca no cartão de memória do Everdrive e joga normalmente como se o cartucho original estivesse ali. Legal, não é?

Nesse caso aqui estamos lidando com o SUPER Everdrive (Super Nintendo, saca?).
Qualquer sexta-feira eu compartilho uma matéria sobre.
FXPAK pro Super Nintendo flashcart super everdrive
Na esquerda, o cartucho original que pode ser comprado AQUI.
Na direita, o "negócio da china" que dá pro gasto.

Mas onde fica esse menu de serviço?
Até então todas televisões de tubo possuem um menu de serviço que, 10-20 anos atrás só o pessoal que arrumava essas TV sabiam. Cada modelo precisava de um método secreto pra acessar as configurações de fábrica que, por exemplo, exigiam que a pessoa pressionasse certos botões do controle por alguns segundos... era uma lambança satânica. 
Neste menu de serviço você ajusta pontos vitais, como por exemplo:
- A posição horizontal e vertical da imagem.
- A intensidade que o tubo queima a imagem.
- A taxa de nitidez nativa da imagem.
- Etc...

Só que aí mora o perigo. Se até profissionais cometem erros, imagine o estrago que um curioso não faria brincando com os pontos vitais de uma televisão? Por isso fica a dica: só faça esse procedimento se você estiver assumindo o risco de explodir o seu tubão. De qualquer forma encontrei um vídeo bem informativo em uma língua parecida com a nossa (espanhol) pra te ajudar na prática como tudo isso funciona. Saca só:

vídeo produzido pelo canal X9

Caso você tenha coragem pra fazer tudo isso tenha em mente que essa calibração não é rotina como tomar banho. Você pode testar seu SNES todos os dias se quiser mas calibrar uma televisão é coisa de sei lá... uma vez por ano. É um procedimento importante? Sim, mas você precisa tomar cuidado pra não ficar paranoico ao ponto de ter um AVC caso a televisão fique com a imagem feia só pra descobrir que o problema estava no cabo de vídeo.

21/06/2023

Como injetar ASM na sua hack de Super Mario World

Houve uma época que fazer uma hack vanilla cheia de gráficos e músicas novas era algo interessante... até chegar um tal de Carol e lançar Brutal Mario na mesa. Não só o pessoal arregalou os olhos como perceberam que dava pra ir além do que o jogo permitia e assim alguns doidos da comunidade investiram tempo livre para dar vida á novas idéias.

E assim nasceu a primeira onda de blocos, sprites, patches e logo depois surgiu códigos específicos para Uberasm (veremos isso outro dia). Hoje vamos deixar tudo de lado pra aprender algo que já se tornou conhecimento comum na comunidade: injetar ASM (mais conhecido como aplicar patch).
Jogador do flamengo Pet

O que é patch?
Patch é um termo usado pra se referir a um arquivo de código externo que reescreve ou adiciona coisas novas ao código original da ROM de Super Mario World. Geralmente a comunidade se refere tanto ao mod da sua hack em formato [.bps] como idéias malucas feitas por outros membros na extensão [.asm].

Como inserir ASM em seu projeto?
Tudo que você precisa fazer é baixar e extrair o executável da ferramenta ASAR dentro de uma pasta. Nesta mesma pasta você irá colocar os arquivos em [.asm] que deseja testar e a sua ROM de Super Mario World editada (precisa estar expandida em 2MB). Se tudo der certo ficará similar á isso aqui:

Tutorial básico de ASAR, como inserir patches em sua romhack de Super Mario World

Basicamente tudo que você precisa fazer agora é executar a ferramenta ASAR, digitar primeiro [nome_do_patch.asm] e em seguida o [nome_da_rom.smc]. Seguindo o exemplo anterior ficaria igual á imagem á seguir:

Asar 1.71

Como injetar vários ASM de uma vez?
Este método é do arquivo em lote [.bat] e é bem mais prático do que o anterior.
Vamos supor que você possui 10 arquivos pra injetar na sua ROM mas não tem tempo ou energia suficiente pra inserir um de cada vez. Nesse método ele insere tudo automaticamente, bem rápido.

Faça uma cópia de um patch aleatório (só queremos a extensão) e delete todo o conteúdo.
Antes de salvar o arquivo você vai fazer uma nova lista seguindo essa regra:
Asar.exe [nome_do_patch.asm] + [nome_da_rom.smc]

Asar 1.71 Alcaro bat method

Clique em Salvar Como e salve com a extensão [.bat] (precisa trocar a opção pra conseguir ver todos tipos de documentos). Pronto! Agora para injetar todo esse ASM basta dar dois cliques fantásticos no [MULTI.bat].

Fique ligado!
- Na dúvida teste sempre novos arquivos em uma cobaia.
- É obrigatório que os arquivos [.asm] estejam na mesma pasta do ASAR.
- Teste arquivos individualmente antes de ir para o modo automático.
- Se o patch não foi injetado via [.bat] tente injetar individualmente.

19/06/2023

Como jogar hacks de Super Mario World

Houve uma época em que o pessoal tinha o costume de fazer uma ROMhack e compartilhar o link da ROM pra baixar. O problema é que estamos falando de um material quente, então não demorou muito para derrubarem os links em massa. Não só algumas hacks se tornaram memórias como alguns sites de emulação foram pro saco também.

Para evitar a desgraça eminente que é gerar tráfego na internet compartilhando ROM da Nintendo o pessoal resolveu compartilhar seus mods em formato [.bps]. Assim é compartilhado apenas alterações feitas pelo autor do mod (ao invés da ROM pré aplicada por completo). Vamos aprender agora como essa magia funciona.

Método online:
Se você é um daqueles que prefere pagar as contas da internet ao invés de comprar comida então acredito que esteja super conectado 27 horas por dia. Tudo que você precisa é acessar esse website aqui e fazer o que a página está pedindo: você insere um [.bps] da hack e uma ROM limpa de Super Mario World. O resultado? Uma ROMhack pronta pra ser jogada em qualquer emulador. Não tem erro:

Base ROM = Super Mario World (u).smc (algo assim).
Patch = O arquivo [.bps] ou [.ips] da hack que você baixou.


Método Floating IPS:
Se você é mais tradicional, que já está acostumado com as paradas de ROMhacking (ou simplesmente não tem internet onde mora) vai preferir o método do Floating IPS. Essa ferramenta é um executável capaz de fazer o que o método anterior faz, só que sem internet. Entretanto esse programa é essencial pra quem cria modificações pois ele converte a ROM editada em [.bps] pra ser compartilhada legalmente na internet.

O bacana dessa ferramenta são as opções extras que ela oferece. Não só você pode escolher um emulador padrão pra testar a sua ROM nova após um patch como também é possível determinar que a ferramenta reconheça todos arquivos [.bps] tornando o processo mais prático: é só baixar o patch, dar dois cliques e selecionar a ROM limpa e a pasta em que ela irá aparecer. Para isso basta clicar em Assign file types, deixando sempre como na imagem abaixo.

Onde eu posso encontrar ROMhacks?
Existem diversos sites que compartilham projetos de outras pessoas (é preciso ser um membro ativo da tal comunidade pra poder enviar algo) respeitando a regrinha do [.bps]. Alguns deles são:
SmwCentral.net: Comunidade feita pra hospedar e compartilhar hacks de Super Mario World.
Romhacking.net: Qualquer membro ativo de lá pode hospedar hack de qualquer jogo.

Como travar a sua hack de Super Mario World


Houve um tempo que o pessoal tinha a luxúria de efetuar o travamento de seus projetos, isto é, impedir que o pessoal mais curioso (ou folgado) tentasse abrir a ROM de outra pessoa no Lunar Magic. Isso foi em uma época em que hacks creepypasta estavam na moda então pra não estragar certas surpresas alguns faziam esse procedimento que não era infalível: uma hora ou outra alguém destravava a ROM e mostrava o que descobriu no youtube.

Mesmo não sendo necessário pra moderação (caso você queira enviar pra algum website) ainda é possível travar a sua própria ROMhack... é o que vamos aprender hoje.

ATENÇÃO:
Esse procedimento é praticamente irreversível.
Lembre-se de sempre ter uma cópia da ROM por segurança.

Vamos dizer, hipoteticamente, que você já sabe usar a ferramenta Asar.
Tudo que você precisa fazer é baixar esse arquivo aqui e aplicar em sua ROM.

Como adicionar músicas novas no Super Mario World

Super Mario World hacking AddmusicK

No começo o pessoal tinha que se acostumar com a idéia de fazer ROMhacks de Super Mario World usando as músicas originais do game. Certo dia alguém ficou com tanto nojo que criou um método pra inserir novas músicas que ficou mais prático com o passar dos anos. Quem ouve agora nem acreditaria que seria possível alcançar uma qualidade enorme quando tudo que existia em 2005 era AM4. Se liga só no que você vai precisar:
- A ferramenta AddmusicK.
- A ferramenta SPC700 Player.
- Alguma música de sua preferência.
- Uma ROM de Super Mario World (expandida em 2MB) na extensão [.smc].

Um pouco sobre o básico:
Toda música que você baixar sempre será um arquivo compactado com um arquivo de texto (é a música em si), um arquivo [.spc] e se possível alguns arquivos [.brr] (extensão dos instrumentos). Todo arquivo de texto vai pra pasta music enquanto todo instrumento novo (chamado de samples) vai pra pasta sample da ferramenta.

Toda vez que você cria e insere uma música a ferramenta gera um arquivo especial que possibilita ouvir em outra ferramenta chamada SPC700 Player (daí o nome, cabeção). Esse arquivo é só pra ouvir o que você vai inserir então não precisa colocar na pasta SPC do AddmusicK.

Inserindo uma música manualmente (BAT):
Abra o arquivo [Addmusic_list.txt] e você encontrará uma lista organizada em Global songs e Local songs. Se a sua música vai substituir uma música original da ROM e ela se encontra na sub-pasta original da ferramenta, escolha a primeira opção. Se você quer adicionar uma música nova para a lista escolha a segunda opção.

Quando você insere uma música nova a ferramenta vai precisar alocar em um slot vazio.
Tanto o AddmusicK como o Lunar Magic identificam as músicas pelo ID bank usado.

Para adicionar uma música nesse método crie uma nova linha logo abaixo da última música inserida e escreva o ID + [nome_da_musica.txt]. Faça isso para todas, sem excessão. Quando terminar salve o arquivo, feche e execute o arquivo [AddmusicK.exe]. Digite o nome da ROM que se encontra na pasta raíz da ferramenta e pronto! Fácil, não é?

Tutorial SMW hacking inserir músicas


Inserindo uma música automaticamente (GUI):
Antes de tudo, execute o arquivo AMKGUI.exe na pasta da ferramenta.
Para adicionar uma música nova você vai ter que clicar em alguma faixa da Local Songs e então no botão Add new song. Uma nova janela irá aparecer solicitando um dos arquivos da pasta music. Conforme você adiciona mais músicas uma lista será formada e a ordem das músicas pode ser alterada clicando nos botões de setas verticais.

Caso queira substituir alguma faixa já inserida, clique em Change selected song.
Agora se quiser remover a faixa selecionada clique em Remove selected song.

Quando tudo estiver pronto basta clicar em Run para injetar as músicas novas em sua ROMhack. Se tudo der certo uma nova janela irá abrir dizendo que foi um sucesso e a lista das faixas inseridas.
Tutorial SMW hacking inserir músicas

Escolhendo a música no Lunar Magic:
Chegou a hora da verdade.

Abra a sua ROMhack no Lunar Magic e selecione o ícone da Noteblock de uma fase aleatória ou até mesmo da fase que você queira trocar a música. Clique em Bypass the music header setting e encontre a música na lista. Caso queira incrementar o tempo da fase (se 400 não é o suficiente) basta clicar em Bypass the time limit header setting. Tome cuidado ao colocar valores altos demais caso seu projeto esteja usando sistema de pontuação (vai explodir).
O dilema da Insert Size:
Dizem que tamanho não é documento mas aqui faz toda a diferença. Toda vez que você insere uma música em sua ROMhack vai consumir espaço que poderia ser usado pra fazer mais fases ou inserir blocos/gráficos. O pessoal chama isso de Insert Size. Quanto maior for o Insert Size de uma música mais espaço irá "comer" do seu projeto.

Se 0x0000 bytes - 0x0500 bytes = não pesa quase nada, dá pra inserir várias. Exemplo
Se 0x0700 bytes - 0x0F00 bytes = pesa um pouco, melhor usar com moderação. Exemplo
Se esse valor ultrapassar a faixa dos 0x1000 bytes, então a música é ultra pesada. Exemplo