Abrir Menu...
NETO (C) 2000-2017

S3kToS2.zip


      Com esta página eu vou tentar explicar como desenhar novos tiles nos jogos do Sonic 1 / 2 / 3 / K / 3K. Com está página eu vou tentar explicar como funciona a definição dos pisos nos Sonic para que você possa atribuir corretamente os índices.
      Para cada indice existem 0x10 bytes resultando num total de 0x100 bytes. Você usa um byte para definir um piso em cada tile 16x16. No Sonic 2 Beta este indice está localizado no Offset 0x4ADC e cada byte representa um piso. Quando você configura um byte de definição o jogo automaticamente selecione um série de 0x10 bytes na definição principal. Os 0x10 bytes são bem fáceis de se entender como funcionam. Como exemplo abra um rom de Sonic 2 e vá até o Offset 0x42E80 (equivalente ao index de colisão 0x03) você verá os seguintes bytes:
      03=>02 04 06 08 0A 0C 0E 10 10 10 10 10 10 10 10 10
      Para você entender como funciona estes bytes eu criei uma tabela. A posição dos bytes representa o eixo X na tabela e os byte em si representa o eixo Y. Veja a tabela em branco logo abaixo: Grade de colisão usada nos jogos do Sonic
      Colocando os bytes de acordo (03=>) com as posições coordenadas nós obteremos a tabela abaixo. O primeiro byte  é 02 este byte está na primeira posição da lista ou seja eixo X=0 e Y=2.

Sonic 2 Index 03(16x16) (0x42E80)
Grade de colisão usada no Sonic 2
02 04 06 08 0A 0C 0E 10 10 10 10 10 10 10 10 10

Sonic 1 index 04 (16x16) => 0x62A40
Grade de colisão usada no Sonic 1
00 FF FF FE FD FC FB FA F9 F8 F7 F6 F5 F4 F3 F1

      Se você quiser fazer novos tiles e quiser saber o valor das definições de Sólido ou não Sólido poderá saber o valor dos indexes colocando os valores na tabela conforme explicado acima:
- Sonic 1 / 1J -> 0x62A00
- Sonic 2 -> 0x42E50
- Sonic 3 -> 0x706A0
- Sonic & Knuckles -> 0x96100