30/04/2025

Como inserir gráficos na sua hack de Super Mario World

Reino cogumelo super mario world vermelho poder
Vai chegar um momento da sua experiencia como um Romhacker que só trocar as cores das fases vanilla do SMW não é o bastante (afinal VLDC existe pra isso). Você quer mais, você quer inserir gráficos novos igual toda hack bacana da internet. Não importa se é a grama do Sonic 2 ou a caverna do DKC, hoje vamos aprender algo essencial para hacks chocolates.

ExGFX - Apenas o básico:
Vamos supor, hipoteticamente, que você já fez o procedimento padrão* e agora percebeu que existe duas pastas novas na raiz do seu projeto: ExGraphics e Graphics. Enquanto o primeiro está relacionado aos novos gráficos que você vai inserir na hack o segundo representa os gráficos que já se encontram originalmente na ROM. Entendeu?

Todo arquivo ExGFX segue a mesma regra, que é ExGFX(yyy).bin.
O valor de Y será o mesmo valor ID que identificará o arquivo na hora de inserir no Lunar Magic. Esse valor pode ir do 80 até o FFF. Para inserir um GFX é preciso deixar-lo na pasta adequada antes de determinar pelo Lunar Magic em que slot de qual fase ele será usado. Se é pra Layer 2 vai pesar 2KB, senão vai pesar 4KB.

*antes de inserir é preciso preparar a ROM. Tudo que você precisa fazer é clicar nos cogumelos da interface na ordem abaixo, da esquerda pra direita. Apenas faça isso na primeira vez.
Tutorial inserir gráficos interface Lunar Magic

O sistema de camadas do jogo:
Você se lembra quando estava jogando no emulador e por deslize acabou apertando em algum número, fazendo o chão ou o cenário sumir? Pois é, esse número era um atalho que controlava uma das camadas do jogo (chamada de Layers). Jogos modernos podem ter quantas eles quiserem mas com o SNES é diferente:

Layer 1 = Essa camada é conhecida como "chão" e é onde objetos e decorações irão ficar, geralmente na frente do cenário e podem interagir com sprites ou não. O pessoal se refere essa camada como Foreground.
Layer 2 = Essa camada é conhecida como "cenário". A imagem de fundo da fase ficará aqui e ela não interage com as outras camadas normalmente. Pessoal chama essa camada de Background.
Layer 3 = Possui limite de três cores (+ transparência). Essa camada segura a interface de alguns jogos e pode ser posicionada como decoração tanto na frente do chão como atrás do cenário.
Layer 4 = É tipo o Layer 3, mas não tem muita importância.
Layer 5 = Essa camada aqui é onde o Mario, os inimigos e outros sprites irão ficar. Todos os objetos dessa camada podem interagir tanto com o player como outros blocos do foreground.

Smwcentral tutorial Exgfx inserir gráficos

Visualizando todos GFX inseridos no mesmo arquivo:
Normalmente os arquivos da pasta Graphics irão ficar organizados individualmente. Alguns até gostam de trabalhar assim porém outras pessoas gostam de trabalhar com tudo isso em um único arquivo chamado [AllGFX.bin]. Para converter os arquivos soltos em um único arquivo basta abrir General options do seu Lunar Magic e marcar a opção Use joined GFX files. Toda vez que você editar esse arquivo salve e clique no cogumelo dourado (com uma seta).

Lunar Magic download free

Conhecendo a interface - Foreground/Background:
Antes de tudo você precisa saber que pra cada coisa que você queira inserir existe uma janela específica, com slots específicos para você escolher os gráficos desejados. Através dos três cogumelos venenosos do Lunar Magic você vai conseguir inserir/editar os gráficos pra fase selecionada. Cogumelo venenoso vermelho é o menu geral enquanto o cogumelo venenoso verde é para Layer 3.

Tutorial inserir gráficos super mario world

Área perigosa: Eu recomendo editar esses dois slots se você souber o que está fazendo pois qualquer errinho bobo vai comprometer a sua fase e quem sabe a sua ROM. Nesses dois slots existe dois gráficos essenciais usados como padrão para todas as fases. Em todo caso, deixe como está.
Cenário/Decoração: O slot BG1 é o slot principal de todo background. Em alguns casos a imagem é tão grande que vai usar tanto o BG2 como o BG3.
Chão/Decoração: O slot FG3 é o slot principal de todo Foreground. É possível sacrificar slots não usados pelo cenário para inserir mais decoração pra sua fase.

Conhecendo a interface - Layer 3:
Esta camada é raramente tocada pelos usuários, quando menos editada. Ela é um tanto complexa em relação as demais camadas e estragar tudo é mais fácil do que você pensa. Em meus 10 anos de SMWhacker sempre tive receio de editar o Layer 3, mas após um estágio da SHOWTIME usar neve animada fui obrigado a dominar este medo. Bom, vamos lá:

A layer 3 em questão pode ser tanto um pedaço da tela como a tela inteira. Entretanto, será preciso apagar a HUD através de ASM para conseguir preencher completamente. Isso acontece porque a interface do jogo ocupa a parte superior do Layer 3. Perceberam como na casa fantasma as nuvens transparentes jamais passam por cima da HUD? Exatamente... pra evitar erros gráficos.

Mas não pense que o uso baunilha no jogo original fica apenas por aí. As nuvens do mapa são Layer 3, a borda que tanto adoro são Layer 3, até mesmo as letras SUPER MARIO WORLD permanecem na terceira camada. Por enquanto, vamos entender como funciona dentro do estágio.
Observem a imagem abaixo:


Vamos imaginar que existe uma linha separando ambas caixas ao meio. A parte de cima se refere ao GFX do Layer 3 enquanto a parte de baixo se refere ao Tilemap. O gráfico do Layer 3 se divide em quatro slots diferentes, que são:

LG1: Aqui vai ficar os tiles do HUD, mais precisamente a Reserve Box.
LG2: Não só aqui se encontram tiles importantes da Title Screen, como o Overworld.
LG3: Sabe a caixa de mensagem roxa? Então... a mensagem é basicamente uma janela sinistra formada por tiles 8x8.
LG4: Aqui se encontram os tiles de qualquer coisa que você vai querer sobrepor no seu estágio, seja por exemplo uma névoa fantasma ou aquele tronco sinistro do primeiro castelo.

O tilemap do Layer 3 requer um pouco mais de atenção. Observem que ao clicar na segunda caixa surgem três slots com várias funções. Elas são:

GFX Tilemap File: Esse aqui vai ser o slot onde você escolhe o gráfico que o tilemap vai puxar, isto é, usar no estágio. Lembrando que será preciso montar no editor como você quer que o tilemap apareça no estágio depois.
Destination File: Aqui você define a posição inicial do tileset. Sinceramente não faz muita diferença se o que você quer é algo básico então Under Status Bar é a melhor pedida.
File Size: Aqui você diz para o Lunar Magic o quão grande o tileset é. Para você ter noção 512x512 é quase 2x o tamanho padrão da câmera, que seria a terceira opção 256x256. Se você quer algo mais estático a última opção será perfeita, agora o resto será mais adequado caso se movimente pelo estágio como as nuvens fantasmas ou a correnteza chatonilda.


Conhecendo a Map16:
Toda vez que você inserir um gráfico acima vai ser preciso alocar um espaço da Map16 da sua hack. Esse mapa é como uma grade cheia de blocos 16x16 chamada de Tiles, organizada por páginas. Para construir uma fase é preciso copiar um desses tiles e colar diretamente na fase. Se for cenário os tiles deverão ser colado no Background Editor e as páginas usadas deverão ser da 80 em diante, trocando o Bank á cada 20 páginas. O conjunto de tiles é chamado de Tileset.

No caso da fase em si você não precisa copiar e colar cada tile na fase (senão vai virar uma aberração que comerá espaço desnecessário), basta organizar o seu tileset da melhor forma que permita expandir (tanto na horizontal como na vertical) quando assim for preciso. Lembrando que a quantidade de objetos/tiles usados pra montar o chão da fase vai definir se ela vai ser pesada ou não. Marinheiros de primeira viagem não precisam se preocupar, mas fica a dica.


No caso dos cenários é um pouco diferente: todo tile utilizado vai consumir espaço na fase (mesmo aquele espaço em que a câmera não enxerga). O que o pessoal mais experiente faz pra economizar é usar gráficos que mantém certo valor de transparência, principalmente se a fase vai receber algum gradiente em HDMA. Ao invés de usar um tile que possui a cor do fundo o pessoal usa a transparência acompanhada da cor de fundo definida como padrão no Lunar Magic.

Seja lá como for todo cenário que você baixar vai vir tanto os arquivos pra inserir (gráficos e cores) como os arquivos de template em [.mwl] pra você testar no Lunar Magic. É possível salvar essa fase teste no seu próprio projeto mas precisa ter cuidado pra ver se não está usando a mesma página ou o mesmo ID da fase.


Toda vez que você quiser inserir um Map16 de algum arquivo já pronto basta selecionar a opção Import Map16 from tiles e se quiser salvar você mesmo uma Map16 nova só selecionar a opção da esquerda que será Export Map16 from tiles. Agora se você quiser extrair ou importar a Map16 do jogo inteira (em caso de backup) basta escolher os blocos púrpura da direita. Já a luneta, bom... você sabe o que Zoom significa, certo? XD

Conhecendo a interface - Sprites:
Diferente do caso anterior a parada aqui é bem mais dinâmica. Os dois primeiros slots SP1/SP2 irão fazer um papel similar ao FG1/FG2, dando espaço maior ao SP3/SP4. Se você mudar o tema dos sprites clicando no cogumelo venenoso azul será preciso trocar os gráficos logo em seguida. Isso porque alguns inimigos compartilham certos espaços dentro da ROM.

Sprites super mario world tutorial gfx

Área perigosa: Esse slot não parece perigoso, até porque os poderes e alguns efeitos estão nele, mas... você sabia que o jogo utiliza o espaço vazio matriz como espaço temporário in-game?
Sprites comuns: Esse slot vai ter os gráficos de Galoombas e Koopas.
Sprites temáticos: Esses dois slots pertencem aos inimigos temáticos associados ao Tileset.

Se você inserir um inimigo novo através de alguma ferramenta como PIXI deve prestar atenção em qual SP ele irá ficar. Geralmente os sprites custom ocupam algum lugar do SP3 ou SP4. Para verificar a posição será necessário editar a coordenada que se encontra no arquivo ASM do inimigo. Como o lance aqui é gráfico vamos deixar esse papo pra outra hora, ok?

Conhecendo o sistema de cores:
Cada fase possui o seu conjunto de cores definidos e representados por uma estrela. Ao clicar nessa estrela no Lunar Magic uma janela chamada Palette Editor como essa abaixo irá aparecer:

Color super mario world new tutorial

Layer 3/Cenário: Da metade pra direita é usada pelo HUD do jogo. Da metade pra esquerda é usada pelos cenários originais e quando a fase usava Layer 2 como segundo chão o cenário sumia pra camada usar 3 cores da segunda linha.
Chão/Decoração: Todo esse espaço aí é usado pra alocar as cores de objetos e foregrounds. Alguns deles tem mais prioridade (como é o caso das cores amarelas ali, é moeda) então o pessoal só edita o necessário e deixa quieto mesmo.
Mario/Luigi: Essa exata linha dinâmica vai ficar alocada as cores do jogador. Eu digo que é dinâmica pois ela troca cada vez que você consome um poder novo ou escolhe o Luigi. Alguns sprites (como as topeiras) compartilham a primeira metade das cores do player (no caso, o sapato).
Sprites: Yeah, não tem mistério aqui. Toda essa zona define as cores dos sprites, cada um deles vai usar apenas uma linha por vez (que nem os blocos do chão).

Cada fase aguenta 16 faixa de cores com 15 cores + transparência cada uma. Como certas coisas do jogo original já tem o seu espaço reservado então sobra menos cores pra editar. Back Area Color será a cor definida do fundo (famoso céu). O que o seu cenário não consegue esconder com tiles vai mostrar essa cor aí que você escolheu. Para poder editar cores individualmente (sem afetar outras fases) será preciso marcar aquela opção Enable custom palette.


Na próxima aula sobre esse assunto vamos aprender juntos a inserir o básico no Lunar Magic usando as informações que aprendemos hoje. Vamos inserir Foreground, Background, Layer 3 e porque não trocar o gráfico do Mario? Tive que separar em duas partes, senão ficaria massivo para os novatos.

A aula de hoje fica por aqui.
Obrigado pela paciência e a concentração.

Nenhum comentário:

Postar um comentário

Não esqueça do seu recado. A sua voz é importante para nós!

Observação: somente um membro deste blog pode postar um comentário.