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:
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)
02 04 06 08 0A 0C 0E 10 10 10 10 10 10 10 10 10
Sonic 1 index 04 (16x16) => 0x62A40
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