Hack Super Mario World - Super Mario World Hack - 30th Anniversary Edition Mister FPGA Gameplay ...
Super Mario World Hack - 30th Anniversary Edition Mister FPGA Gameplay ...

Modificando ROMs de Super Mario World na prática

Super Mario World foi lançado para SNES em 1990 e roda em um arquivo com extensão .smc ou .sfc. O que a maioria das pessoas chama de hack super mario world é simplesmente uma cópia modificada dessa ROM. Não existe um único programa oficial. Você pega o jogo original, altera os dados binários e salva como um arquivo novo.

O que é hack super mario world

Um hack de Super Mario World é uma ROM personalizada. A comunidade já produziu centenas de projetos, desde simples rearranjos de níveis até jogos completamente novos que reescrevem gráficos, música e mecânicas. Ferramentas como Lunar Magic, SMW Graphics Builder e SMW-Hacking-Suite automatizam parte do trabalho. O básico ainda é entender como os dados da ROM se organizam e onde cada coisa mora. A ROM original tem aproximadamente 1 megabyte. A maioria dos hacks usa a técnica de "ASM hacking" para injetar código novo e "graphical hacking" para substituir tiles e sprites. Os níveis são armazenados como tabelas de layout separadas do código do jogo. Quando você edita um nível no Lunar Magic, o programa lê essas tabelas, aplica suas mudanças e reescreve a ROM.

Como fazer o primeiro hack passo a passo

Primeiro você precisa da ROM original. Você pode usar a versão americana (USA) do jogo. A checksum precisa bater para a maioria das ferramentas funcionarem corretamente. Eu sempre começo com a build USA v1.0 que tem checksum OK JAMMMO. Qualquer outra versão dá erro de validação nas ferramentas mais comuns. Baixe o Lunar Magic. A versão estável mais usada atualmente é a 2.71 ou superior. Crie uma pasta no seu computador e coloque o arquivo da ROM dentro dela. Abra o Lunar Magic. Vá em Files e abra sua ROM. A interface é simples: barra lateral esquerda com os níveis, área central para edição visual, e painéis de propriedades embaixo.

Para criar uma mudança básica, selecione qualquer nível da lista. O mapa de tiles aparece na tela. Você pode substituir tiles, mudar paredes, adicionar blocos moles, ou redesenhar o chão inteiro. Quando terminar, salve como uma nova ROM. Use a opção Save As e dê um nome diferente do original. O arquivo gerado já é jogável. Para testar, você precisa de um emulador SNES. ZSNES, Snes9x e bsnes funcionam bem. Carregue a ROM modificada e jogue. Se algo quebrar, o emulador geralmente mostra um freeze ou tela preta. Nesse caso, volte ao Lunar Magic, verifique as coordenadas do nível que você editou e reconserte os tiles ausentes.

Problemas técnicos comuns e soluções

O erro mais frequente é o tileset colidindo com a paleta de cores. Cada nível em Super Mario World carrega um conjunto de tiles específico. Se você trocar um tile por outro que pertence a um tileset diferente, o jogo vai exibir cores erradas ou gráficos em branco. A solução é usar o SMW Graphics Builder para verificar quais tiles pertencem a qual tileset antes de fazer substituições. Outro problema que eu enfrentei recentemente foi com o ASM pointer para a sprite do Yoshi. Eu estava personalizando o comportamento da montaria e alterei o endereço base de uma tabela de dados sem atualizar o ponteiro correspondente na tabela de sprites. O resultado foi um crash instantâneo ao entrar no nível 8-4. A correção foi rastrear o endereço original usando um disassembler do SMW, encontrar o offset exato da tabela no dump da ROM e ajustar o ponteiro manualmente no código ASM. Levei cerca de duas horas só para identificar o ponteiro errado entre os milhares de referências na ROM.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Vale mencionar que usar a opção "Autobuild" do Lunar Magic resolve muitos desses problemas de empacotamento automaticamente, mas ela nem sempre detecta mudanças feitas manualmente via ASM. Se você mexer em endereços de memória diretamente, sempre rode a ferramenta SMW Randomizer em modo validate para checar a integridade da ROM antes de distribuir.

Dicas que não aparecem nos tutoriais básicos

A maioria dos iniciantes não percebe que o SMW tem um sistema de bank switching. A ROM é dividida em bancos de 32KB cada. Quando um nível precisa de mais dados do que cabem no banco atual, o jogo troca para outro banco dinamicamente. Se você adicionar sprites ou objetos novos demais em um único nível, pode estourar o espaço disponível no banco e causar crash silencioso. A solução é espalhar o conteúdo entre vários níveis diferentes. Outra coisa que ninguém explica bem é o sistema de input buffer. O SMW registra comandos do jogador com alguns frames de antecedência. Se seu hack adiciona mecânicas novas que dependem de timing preciso, como um sistema de parry ou combo, o buffer padrão do jogo pode estragar a sensação. Eu desativei parcialmente o input buffer modificando os offsets de armazenamento de input no ASM customizado e passei a ler os comandos frame a frame diretamente. Ficou muito mais responsivo.

Limitações que todo criador precisa saber

Super Mario World tem um limite rígido de 256 tiles por tileset e 96 paletas de cores disponíveis. Se seu hack precisa de mais variedade visual do que isso, você vai ter que reutilizar tiles com paletas diferentes ou escrever código ASM personalizado para contornar a limitação. Nenhum editor visual vai resolver isso por você. O tamanho da ROM também é um fator crítico. A ROM original ocupa 1MB. O Super Mario World uses a tecnologia de expansion chip que permite até 2MB com hacks bem estruturados. Projetos que ultrapassam esse tamanho precisam de técnicas avançadas de compressão ou truncamento que comprometem funcionalidades do jogo. Meu conselho honesto é manter o hack abaixo de 1.5MB se quiser compatibilidade ampla com emuladores e cartuchos reais.

Se o objetivo for criar algo muito diferente do jogo original, considere começar com um framework como o SMW ASM Toolbox ou dar uma olhada em projetos de referência como Super Mario 128, que já demonstram como expandir os limites do hardware. Tentar fazer tudo do zero sem essa base geralmente resulta em roms instáveis que travam em situações específicas.

Recursos e onde encontrar ferramentas

O site smwcentral.net é o principal ponto de encontro da comunidade. Lá você encontra o Lunar Magic, documentação técnica atualizada, tilesets gratuitos e tutoriais em vídeo. O Discord do SMW Hacking também é ativo e tem canais específicos para troubleshooting técnico. Para quem quer ir além da edição visual, o SMW ASM hacking guide disponibiliza referências de todos os endereços de memória importantes. Levou cerca de três meses para eu memorizar os offsets mais usados. Recomendado para quem quer controlar profundamente o comportamento do jogo.