Sonic the Hedgehog
Manual de Programação
Neto (e-Mail)
Utilizando um editor de hexadecimal é
possível modificar o jogo, editando-o byte a byte. Sabendo onde fica cada
instrução e alterando-a corretamente você pode personalizar o jogo. Você
pode desenhar outro personagem no lugar do Sonic mas isto não é fácil já que
tem que se feito ponto a ponto. Alterar o nome das fases no menu de seleção
e no titulo das fases. Mas para poder programar o jogo é necessário que ele
esteja no formato binário, não é muito difícil converter o jogo para
binário, você pode utilizar um programa de conversão ou o emulador Genecyst
que tem a opção DUMP ROM, que faz a conversão.
Menu de Seleção de Fases
O Menu de seleção de fases do Sonic 1 usa
um formato de texto plano de 26 caracteres por linha. todas as linhas podem
ser digitados textos de até 26 caracteres inclusive as linhas que mostram
somente STAGE 2 e 3. O primeiro espaço começa na letra G da palavra GREEN
HILL e o ultimo espaço termina no numero 1 do STAGE 1, o primeiro espaço
começa onde termina o espaço da primeira linha e assim até o fim da tela de
seleção de fases. veja abaixo a lista das fases e os respectivos endereços
no editor hexadecimal. Obs: No editor você verá endereços em hexadecimal por
exemplo no seguinte formato 000035B9. Mas na página você verá esse mesmo
endereço representado por 3B59.
FASE |
|
ENDEREÇO |
GREEN HILL ZONE |
STAGE 1 |
35A2 á 35B9 |
|
STAGE 2 |
35BA á 35D1 |
|
STAGE 3 |
35D2 á 35E9 |
LABYRINTH ZONE |
STAGE 1 |
35EA á 3601 |
|
STAGE 2 |
3602 á 3619 |
|
STAGE 3 |
361A á 3631 |
MARBLE ZONE |
STAGE 1 |
3632 á 3649 |
|
STAGE 2 |
364A á 3661 |
|
STAGE 3 |
3662 á 3679 |
STAR LIGHT ZONE |
STAGE 1 |
367A á 3691 |
|
STAGE 2 |
3692 á 36A9 |
|
STAGE 3 |
36AA á 36C1 |
SPRING YARD ZONE |
STAGE 1 |
36C2 á 36D9 |
|
STAGE 2 |
36DA á 36F1 |
|
STAGE 3 |
36F2 á 3709 |
SCRAP BRAIN ZONE |
STAGE 1 |
370A á 3721 |
|
STAGE 2 |
3722 á 3739 |
|
STAGE 3 |
373A á 3751 |
FINAL ZONE |
|
3752 á 3769 |
SPECIAL STAGE |
|
376A á 3781 |
SOUND TEST |
|
3782 á 3799 |
O nome das fases usa um conjunto de
caracteres NÃO-ASCII. É necessário saber a equivalência das letras para
poder modificar o nome. Observe a tabela abaixo e modifique os nomes. Rode o
jogo e acesse o menu de seleção de fases e veja os nomes que você colocou.
00 = 0 |
01 = 1 |
02 = 2 |
03 = 3 |
04 = 4 |
05 = 5 |
06 = 6 |
07 = 7 |
08 = 8 |
09 = 9 |
0A = $ |
0B = - |
0C = = |
0D = <- |
0E = <- |
0F = Y |
10 = Z |
11 = A |
12 = B |
13 = C |
14 = D |
15 = E |
16 = F |
17 = G |
18 = H |
19 = I |
1A = J |
1B = K |
1C = L |
1D = M |
1E = N |
1F = O |
20 = P |
21 = Q |
22 = R |
23 = S |
24 = T |
25 = U |
26 = V |
27 = W |
28 = X |
FF = |
|
|
|
Títulos das fases
Você também pode alterar os titulo das
fases. Mas ao contrário do menu de seleção de fases existe restrições quanto
ao número de caracteres que se pode colocar. Há também algo interessante na
fonte dos títulos das fases não existem as letras
J-Q-V-W-X, ou seja palavras que usam estas letras não poderão ser
usadas. Também a modificação dos títulos das fases não é muito simples pois
você terá que especificar as distancia das letras para que estas não se
sobreponham. Mas não se desespere veja abaixo a tabela de caracteres usada
nos títulos das fases e logo em seguida uma explicação de como modificar os
textos sem problemas.
TABELA COM AS FONTES DOS TÍTULOS
05-00-00 = A |
05-00-22 = K |
05-00-46 = U |
05-00-04 = B |
05-00-26 = L |
05-00-4A = Y |
05-00-08 = C |
05-00-2A = M |
05-00-4E = Z |
05-00-0C = D |
05-00-2E = N |
00-00-52 = . |
05-00-10 = E |
05-00-32 = O |
0C-00-53 = act |
05-00-14 = F |
05-00-36 = P |
02-00-57 = 1 |
05-00-18 = G |
05-00-3A = R |
06-00-5A = 2 |
05-00-1C = H |
05-00-3E = S |
06-00-60 = 3 |
01-00-20 = I |
05-00-42 = T |
00-00-56 =(espaço) |
Agora veja como funciona a programação dos
nomes das fases. Observe a imagem do editor hexadecimal abaixo. O editor
hexadecimal usado foi o Hexpose, você pode usar qualquer editor de sua
preferência, eu uso este editor porque você pode criar um arquivo fonte para
ele, ou seja ao invés de ele lhe mostrar os valores em ASCII padrão ele lhe
mostrará o texto baseado na fonte fornecida. Observe a figura abaixo:
Para você entender como funciona eu
destaquei algumas instruções com cores diferenciadas, note que juntando as
letras, que estão destacadas do lado direito do programa você monta o nome
das fases. Agora veja como funciona as instruções. Cada letra na tela usa 5
bytes para ser mostrada Observe:
F8-05-00-3A-CA. O 1o. byte (F8) indica a posição vertical da
letra na tela, este byte normalmente não será necessário se modificar . Do
2o. ao 4o. byte (05-00-3A) são os bytes que indicam que letra deve ser
mostrada na tela no caso seria a letra "R". O 5o. byte (CA) indica a posição
horizontal na tela, este é um dos mais importantes bytes pois é ele
quem determina os espaços das letras e caso não seja colocado corretamente
pode haver sobreposição das letras, mas isto não é muito difícil, já que o
espaço ente uma letra e outra é de 10h (observe na figura abaixo o byte que
segue os números em amarelo e note que aumentam de 10h em 10h) esta medida é
a mesma usada nas palavras compostas, mas como toda regra tem exceção a 1a.
letra que for digitada após a letra "I" utiliza um espaço menor ou seja 8h.
Você pode utilizar o espaço padrão 10h, mas na hora em que for exibido o
texto você verá que a letra que sucede o "I" ficará longe. Preste muito
atenção nos 5 bytes na hora de editar pois se você editar o nome de uma fase
que contém a letra "I" e não aumentar o espaço entre as letras, estas
ficarão sobrepostas. As únicas restrições são: 1o. O limite de letras por
fases é o numero de letras da fase atual, 2o. você não poderá escrever
palavras que usem as letras "J","Q","V","W","X", pois não existem estas
letras na fonte dos títulos. Veja a localização de cada texto e faça suas
alterações.
TEXTO |
LOCALIZAÇÃO |
GREEN HILL |
C9FE á CA2B |
LABYRINTH |
CA2C á CA59 |
MARBLE |
CA5A á CA79 |
STAR LIGHT |
CA7A á CAA7 |
SPRING YARD |
CAA8 á CADA |
SCRAP BRAIN |
CADB á CB0E |
FINAL |
CB8B á CBA3 |
ZONE |
CB0F á CB24 |
SONIC HAS PASSED |
CBEA á CC31 |
CHAOS EMERALD |
CCAD á CCE8 |
SPECIAL STAGE |
CD6C á CDA7 |
SONIC GOT THEM ALL |
CDA8 á CDF3 |
VEJA ABAIXO O NOME DE ALGUMAS FASES QUE EU MODIFIQUEI
A Fase abaixo lado é a SCRAP BRAIN modificada.
A fase abaixo é a SPRING YARD modificada.
Obs: No byte de espaçamento de
caractere o canto esquerdo da tela é 80h e canto direito é 7Fh. Ou seja um
possível texto pode ser escrito com espaço de 80h, 90h, A0h, B0h, C0h, D0h,
E0h, F0h, 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h. Este seria os espaços que
você colocaria nas letras caso desejasse começar do inicio da tela.
Configuração dos títulos das telas
Esta área do jogo diz ao game como deverá
ser exibido os títulos de inicialização do jogo, ou seja posição na tela por
onde entrar ou sair. Cada fase utiliza 16 bytes para configuração dos
títulos. Como exemplo eu vou pegar os bytes que configuram o texto da fase
Green Hill que é : 00000120FEFC013C0414015402140154. Agora entenda o
que esses bytes querem dizer. Os 4 primeiros bytes, ou seja, 00-00-01-20 são
do texto da fase, no exemplo GREEN HILL, do 5 ao 8 bytes, ou seja,
FE-FC-01-3C são os bytes do texto ZONE, do 9 ao 12 byte, ou seja,
04-14-01-54 são os bytes do ACT x (x é o numero da fase), e por ultimo, ou
seja, 02-14-01-54 são os bytes do plano de fundo azul dos títulos (Aquela
bolinha oval inclinada que aparece por trás do texto "ACT x"). Tendo as
informações acima podemos ainda separar os bytes em grupos de dois, Todos os
grupos terão o mesmo efeito. Vamos pegar o grupo do nome da fase que é
00-00-01-20, os 2 primeiros bytes, ou seja, 00-00 indicam a posição de
entrada do texto na tela, os dois últimos bytes, ou seja, 01-20 indicam a
posição horizontal do texto na tela, nestes bytes geralmente se aumenta de
10h em 10h, Esta configuração vale para todo o conjunto de bytes da fase ou
seja o primeiro e o segundo grupo de 2 bytes sempre farão o mesmo efeito do
explicado acima. Veja a figura do editor e logo abaixo a lista de fases e
seu endereço correspondente
FASE |
LOCALIZAÇÃO |
GREEN HILL |
C448 á C457 |
LABYRINTH |
C458 á C467 |
MARBLE |
C468 á C477 |
STAR LIGHT |
C478 á C487 |
SPRING YARD |
C488 á C497 |
SCRAP BRAIN |
C498 á C4A7 |
FINAL |
C4A8 á C4B7 |
Habilite a frase "PRESS START BUTTON" na
tela título. Para isso com um editor hexadecimal mude o byte de 02
para 00. De acordo com a sua versão do jogo os bytes estão em locais
diferentes, Veja abaixo as possíveis localizações.
VERSÃO |
ENDEREÇO |
AMERICANA |
17271 |
JAPONESA |
17A1D |
Feito isto rode o jogo e veja aparecer a
mensagem "PRESS START BUTTON" durante a tela de apresentação.
Veja abaixo a mensagem press start button na tela título
CRÉDITOS E TELA INICIAL
Esta parte é muito interessante pois você
pode se pode editar todos os créditos do jogo. Alem da tela inicial "SONIC
TEAM PRESENTS".
TEXTO |
ENDEREÇO |
SONIC TEAM STAFF |
172F8 á 1733E |
GAME PLAN CAROL YAS |
1733F á 1738F |
PROGRAM YU 2 |
17390 á 173C2 |
CHARACTER DESIGN BIGISLAND |
173C3 á 1743B |
DESIGN JINYA PHENIX RIE |
1743C á 174A0 |
SOUND PRODUCE MASATO NAKAMURA |
174A1 á 17523 |
SOUND PROGRAM JIMITA MACKY |
17524 á 17597 |
SPECIAL TANKS FUJIO MINEGISHI PAPA |
17598 á 17633 |
PRESENTED BY SEGA |
17634 á 1767F |
TRY AGAIN |
17680 á 176A8 |
SONIC TEAM PRESENTS |
176A9 á 176FE |
Veja a fonte dos créditos
(letras ausentes: Q, V, W, X, Z)
05-00-04 = A |
05-00-3A = H |
05-00-12 = P |
05-00-48 = B |
01-00-46 = I |
05-00-22 = R |
05-00-1E = C |
05-00-4C = J |
05-00-2E = S |
05-00-42 = D |
05-00-58 = K |
05-00-3E = T |
05-00-54 = D |
05-00-16 = L |
05-00-32 = U |
05-00-0E = E |
09-00-08 = M |
00-00-2A = Y |
05-00-5C = F |
05-00-1A = N |
0C-00-36 = 2 |
05-00-00 = G |
05-00-26 = O |
|
A configuração de exibição é semelhante ao
dos cartões de títulos (title cards). ex:
11-E8-
05-00-3E-B4 onde
o primeiro byte indica o número de caracteres a serem exibidos na tela. O
segundo byte indica a posição vertical na tela. Do terceiro ao quinto são as
letras propriamente ditas. O último indica a posição horizontal na tela, é
este byte que define o espaçamento entre uma letra e outra.
MÚSICA DAS FASES
Você também pode escolher a música a ser
tocada nas fases. O formato é de apenas um byte por fase e é muito simples.
Para colocar outra música de sua preferência, toque os sons no sound test,
anote o número da música e coloque no byte que representa a fase escolhida.
Veja na tabela abaixo a localização da seleção de músicas. Observe também
que para o funcionamento correto será necessário alterar os bytes nos três
endereços listados abaixo. As Fases listadas com (----) Usam somente os
endereços listados e não necessitam de mais de uma ou duas mudanças para
funcionar. A fase Labirinth e Scrap Brain 3 necessitam da alteração nos 3
endereços listados abaixo para funcionarem corretamente.
Fase |
Música |
Endereço 1 |
Endereço 2 |
Endereço 3 |
GREEN HILL |
81 |
379A |
12CC8 |
----- |
LABYRINTH |
82 |
379B |
12CC9 |
14099 |
MARBLE |
83 |
379C |
12CCA |
----- |
STAR LIGHT |
84 |
379D |
12CCB |
----- |
SPRING YARD |
85 |
379E |
12CCC |
----- |
SCRAP BRAIN |
86 |
379F |
12CCD |
140A5 |
FINAL |
8D |
3780 |
------- |
----- |