ENGLISH VERSION

 Projeto Sonic 2 Delta 

  Página principal

Sonic the Hedgehog 2 Beta
Manual de Programação

Esrael L. G. Neto (esrael@emulationzone.org)
And
James R. Grant (nayr@emulationzone.org)

Menu de seleção Musica das fases Title Cards
Objetos propriedades Paleta de Cores Demo Mode
Inicio do Sonic nas fases Debug objetos  

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 2 Beta 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 1 e 2. O primeiro espaço começa na letra G da palavra GREEN HILL e o ultimo espaço termina no numero 0 do STAGE 0, 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. Observe a figura do editor hexadecimal e logo abaixo a relação de todas as fases e seus respectivos endereços.

FASE

ENDEREÇO

GREEN HILL  ZONE             STAGE 0

3D7C á 3D96

STAGE 1

3D97 á 3DB1

WOOD ZONE                        STAGE 0

3DB2 á 3DCC

 STAGE 1

3DCD á 3DE7

METROPOLIS ZONE            STAGE 0

3DE8 á 3E02

STAGE 1

3E03 á 3E1D

 STAGE 2

3E1E á 3E38

HILL TOP                               STAGE 0

3E39 á 3E53

STAGE 1

3E54 á 3E6E

HIDDEN PALACE  ZONE     STAGE 0

3E6F á 3E89

STAGE 1

3E8A á 3EA4

OIL OCEAN ZONE               STAGE 0

3EA5 á 3EBF

 STAGE 1

3EC0 á 3EDA

DUST HILL ZONE                 STAGE 0

3EDB á 3EF5

STAGE 1

3EF6 á 3F10

CASINO NIGHT ZONE        STAGE 0

3F11 á 3F2B

STAGE 1

3F2C á 3F46

CHEMICAL PLANT ZONE   STAGE 0

3F47 á 3F61

 STAGE 1

3F62 á 3F7C
GENOCIDE CITY ZONE      STAGE 0 3F7D á 3F97
STAGE 1 3F98 á 3FB2
NEO GREEN HILL ZONE     STAGE 0 3FB3 á 3FCD
STAGE 1 3FCE á 3FE8
DEATH EGG ZONE               STAGE 0 3FE9 á 4003
STAGE 1 4004 á 401E
SPECIAL STAGE 401F á 4039
SOUND TEST 4A3A á 4054

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 =        

 Você também pode definir  a fase que o game carrega ao se pressionar "START" na tela de seleção de fases. A local onde o game busca as fases ao se pressionar "START" em qualquer fase da tela de seleção de fases e a partir do endereço 3AD4h Observe a imagem do editor hexadecimal. 

O cursor na imagem está exatamente no endereço 3AD4h, este é o endereço inicial do mapeamento das fases do menu de seleção de fases. O menu de seleção de fases usa 2 bytes para selecionar uma fase. o 1o. byte define a zona a ser carregada o 2o. byte define o act a ser carregado, no byte que configura o act o 00 indica act 1 e o 01 indica o act 2, a única exceção é a fase Metropolis Zone Act 3 que é representada por 05-00, a demais seguem a regra acima. Para facilitar o entendimento e a edição dos níveis eu criei duas tabelas uma com o ID das fases que será usada no 1o. byte do mapeamento. Observe:

FASE

ID

GREEN HILL

00

WOOD ZONE 

02

METROPOLIS

04

METROPOLIS

05

HILL TOP

07

HIDDEN PALACE

08

OIL OCEAN ZONE

0A

DUST HILL ZONE 

0B

CASINO NIGHT ZONE

0C

CHEMICAL PLANT ZONE 

0D

GENOCIDE CITY ZONE

0E

NEO GREEN HILL ZONE

0F

DEATH EGG ZONE 

10

Note que alguns números são pulados como do 01, 03, 06 e 09.  Apesar de não existir um nome de fase para estes ID's na relação e nem no menu de seleção de fases. Se você colocar estes ID's  que estão faltando poderá acessar níveis perdidos (Faça a experiência e veja os resultados). Observe a tabela com a localização padrão das fases e logo em seguida uma explicação.

FASE

endereço

GREEN HILL  ZONE             STAGE 0

3AD4 e 3AD5

STAGE 1

3AD6 e 3AD7

WOOD ZONE                        STAGE 0

3AD8 e 3AD9

 STAGE 1

3ADA e 3ADB

METROPOLIS ZONE            STAGE 0

3ADC e 3ADD

STAGE 1

3ADE e 3ADF

 STAGE 2

3AE0 e EAE1

HILL TOP                               STAGE 0

3AE2 e 3AE3

STAGE 1

3AE4 e 3AE5

HIDDEN PALACE  ZONE     STAGE 0

3AE6 e 3AE7

STAGE 1

3AE8 e 3AE9

OIL OCEAN ZONE               STAGE 0

3AEA e 3AEB

 STAGE 1

3AEC e 3AED

DUST HILL ZONE                 STAGE 0

3AEE e 3AEF

STAGE 1

3AF0 e 3AF1

CASINO NIGHT ZONE        STAGE 0

3AF2 e 3AF3

STAGE 1

3AF4 e 3AF5

CHEMICAL PLANT ZONE   STAGE 0

3AF6 e 3AF7

 STAGE 1

3AF8 e 3AF9

GENOCIDE CITY ZONE      STAGE 0

3AFA e 3AFB

STAGE 1

3AFC e 3AFD

NEO GREEN HILL ZONE     STAGE 0

3AFE e 3AFF

STAGE 1

3B00 e 3B01

DEATH EGG ZONE               STAGE 0

3B02 e 3B03

STAGE 1

3B04 e 3B05

SPECIAL STAGE                                  

3B06 e 3B07

A tabela acima  indica onde estão localizados os bytes de configuração na tela de seleção de fases. O 1o. endereço da tabela indica o byte da zona e o 2o. endereço indica o byte de act. Exemplo no endereço 3AE6 você verá o byte 08 (Hidden Palace zone) e no endereço 3AE7 você verá o byte 00 (Act 1). Caso você queira tornar a fase inacessível no menu de seleção de fase digite 80 no byte da zona.



MUSICA 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. Obs: por questões técnicas a fase Death Egg não pode ter sua música selecionada. 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 dois endereços listados abaixo. 

FASE Música Endereço 1 Endereço 2

GREEN HILL

82 4140 FD66
 ID 02 82 4141 FD67

WOOD ZONE 

83 4142 FD68
ID 03 90 4143 FD69

METROPOLIS

83 4144 FD6A

METROPOLIS 3

83 4145 FD6B
ID 06 93 4146 FD6C

HILL TOP

96 4147 FD6D

HIDDEN PALACE

86 4148 FD6E
ID 09 8F 4149 FD6F

OIL OCEAN ZONE

81 414A FD70

DUST HILL ZONE 

85 414B FD71

CASINO NIGHT ZONE

84 414C FD72

CHEMICAL PLANT ZONE

8D 414D FD73

GENOCIDE CITY ZONE

8D 414E FD74

NEO GREEN HILL ZONE

87 414F FD75

DEATH EGG ZONE 

não mudar 4150 FD76

FASE INICIAL

Você pode definir qual fase o game carrega ao se pressionar "START" durante a tela título, que atualmente é NEO GREEN HILL. Para tanto vá para o endereço 383A e 383B, você verá os bytes 0F-00 que pertencem a NEO GREEN HILL act 1, Mude estes bytes utilizando os ID das fases na tela de seleção e selecione a fase que o game deve carregar ao se pressionar "START". Ex: se você mudar estes bytes para 07-01 o game carregará a faze HILL TOP act 2 ao se pressionar "START" na tela título.

SEQÜÊNCIA DAS FASES NO JOGO.

Atualmente a seqüência de fases do Jogo é NGHZ 1-2, CPZ 1-2, HTZ 1-2, GHZ 1-2, mas é possivel alterar a ordem com que as fases dão exibidas no jogo. O mapeameamento da seqüência se inicia no Offset BF9A  á BFDD. O formato é semelhante ao menu de seleção de fases, ou seja dois bytes por fases. O quadro abaixo mostra a seqüência atual das fases em ordem em que são acessadas. Troque o ID para ir para uma fase diferente da especificada.

DE PARA ENDEREÇO ID
START NGHZ 1 383A e 383B 0F-00
NGHZ 1 NGHZ 2 BFD6 e BFD7 0F-01
NGHZ 2 CPZ 1 BFD8 e BFD9 0D-00
CPZ 1 CPZ 2 BFCE e BFCF 0D-01
CPZ 2 HTZ 1 BFD0 e BFD1 07-00
HTZ 1 HTZ 2 BFD6 e BFB7 07-01
HTZ 2 GHZ 1 BFB8 e BFB9 00-00
GHZ 1 GHZ 2 BF9A e BF9B 00-01


CARTÕES DE TITULO (TITLE CARDS)

Originalmente estes estão desativados na versão beta, mas você pode ativa-los. Clique aqui para pegar o IPS e também uma explicação para o caso de você querer mudar o nome das fases.



ALTERANDO OBJETOS 

Você também pode alterar objetos nas fases como badnicks, vidas, obstáculos, etc... A configuração dos objetos nas fases utiliza 6 bytes longos, sendo no formato XX-XX-YY-YY-OO-VV. Explicando melhor os X's indicam a posição horizontal na tela, os Y's indicam a posição vertical na tela, os O's indicam os objetos a serem colocados e os V's indicam as variações possíveis de cada objeto. Para obter a localização exata do local onde você quer por os objetos, faça o código do debug mode e anote a primeira linha de coordenadas no local do SCORE, Estas serão as coordenadas que você deverá digitar para poder colocar o objeto no local desejado. Veja a localização onde o game busca os objetos das fases. Os níveis terminam o mapeamento antes dos bytes FF-FF-00-00-00-00. A partir destes bytes começa próximo nível.

GREEN HILL  ZONE             STAGE 0

4404A

STAGE 1

442C6

METROPOLIS ZONE            STAGE 0

445C0

STAGE 1

4458A

 STAGE 2

44B30

HILL TOP                               STAGE 0

44EFC

STAGE 1

45130

HIDDEN PALACE  ZONE     STAGE 0

4554A

OIL OCEAN ZONE               STAGE 0

4565E

 STAGE 1

457C0

DUST HILL ZONE                 STAGE 0

459AC

CHEMICAL PLANT ZONE   STAGE 0

45A2A

 STAGE 1

45CC4

NEO GREEN HILL ZONE     STAGE 0

4605A

STAGE 1

46216

  Selecione uma fase para exibir os objetos disponíveis e suas coordenadas

GREEN HILL CHEMICAL PLANT
WOOD GENOCIDE CITY
METROPOLIS NEO GREEN HILL
HILL TOP DEATH EGG
HIDDEN PALACE SPECIAL STAGE
OIL OCEAN SOUND TEST
DUST HILL
CASINO NIGHT

OBJETOS PROPRIEDADES

Esta parte é muito interessante pois é nela que o jogo busca todos os objetos. Neste local você pode editar os objetos do jogo e até adicionar outros objetos utilizando espaços nulos no jogo. Clique aqui para ver a localização de cada objeto no Rom



PALETA DE CORES

Nesta parte você pode editar as cores das fases, do Sonic, Tails, etc.. O Formato é 0BGR. Para editar as cores utilize o Paint Brush do Windows. escolha uma cor qualquer selecione editar ou de um duplo clique na cor. Observe o numero das cores (VERDE / VERMELHO / AZUL) Utilize a calculadora do Windows no modo cientifica e divida o numero de cada cor por 16. Ignore os números após a virgula. Converta o resultado para hexadecimal  (No modo cientifica simplesmente clique em hex). Coloque no local dos bytes de acordo com a ordem (0BGR  0-não muda; B - AZUL; G - VERDE, R - VERMELHO). Este método pode ser usado que funciona

Veja abaixo a localização das paletas do jogo. 

ID: FASE / EVENTO LOCALIZAÇÃO
00 SEGA LOGO 2A16
01 Tela Titulo 2A96
02 Menu de Seleção de Fases 2B16
03 Sonic / Tails / Title Cards ... 2B96
04 Green Hill 2BB6
05 (*) 01-00 2BB6
06 Wood 2C16
07 (*) 03-00 2BB6
08 / 09  Metropolis 2C76

0A

06-00

2F36

0B

Hill Top

2CD6

0C

 Hidden Palace

2D36

0D (*)

09-00

2BB6

0E

Oil Ocean

2E16

0F

Dust Hill

2E76

10 Casino Night 2ED6
11 Chemical Plant 2F96
12 (*)  Genocide City  2BB6
13 Neo Green Hill 3076
14 (*)  Death Egg 2BB6
15

Hidden Palace (debaixo da água)

2D96

16

Chemical Plant (Embaixo da água)

2FF6

17

Neo Green Hill (Embaixo da agua)

30D6

18

 Special Stage

3156

(*) Não mudar estas paletas pois os ponteiros são os mesmos da Green Hill.

OUTRAS PALETAS

(Cacheiras, Luzes, esteiras, etc...)

FASE  EVENTO LOCALIZAÇÃO
Green Hill / Neo Green Hill Ciclo da água 2284
Wood Giro das esteiras 2324
Metropolis .................. 2334
Metropolis Giro das engrenagens 2340
Metropolis Luzes do fundo 234C
Hill Top Ciclo das lavas 22A4
Hidden Palace Ciclo da água 2360
Hidden Palace ................. 2370
Oil Ocean Ciclo do Óleo 2380
Dust Hill Lanternas 2390
Casino Night Luzes 2398
Casino Night Giro das esteiras 23BC
Casino Night Luzes do Fundo 23CE
Chemical Plant .............. 2422
Chemical Plant .............. 2458
Chemical Plant Luzes dos prédios 2482


DEMO MODE

Você pode escolher a ordem em que as fases são mostradas no modo demonstração e também selecionar outras fases para o modo de demonstração. Veja na tabela abaixo a seqüência atual e suas respectivas localizações.

ORDEM 

FASE

LOCALIZAÇÃO

ID

1o. Chemical Plant

3C16 e 3C17

0D-00
2o. Green Hill

3C18 e 3C19

00-00
3o. Hidden Palace 3C1A e 3C1B 08-00
4o. Hill Top 3C1C e 3C1D

07-00



INICIO DO SONIC NAS FASES

Nesta parte você pode definir em que ponto da tela o Sonic começa. Para poder selecionar um local diferente do original. Utilize o modo debug. Vá para o local de onde você deseja iniciar e anote as coordenadas (primeira linha no local do Score), Tendo em mãos as coordenadas coloque-as no local da fase escolhida conforme no endereço da tabela abaixo.

FASE LOCALIZAÇÃO COORDENADAS

Green Hill  1

5B02 á 5B05 00-60-02-8F

Green Hill 2

5B06 á 5B09 00-40-02-AF
01-00 5B0A á 5B0D 00-60-02-8F
01-01 5B0E á 5B11 00-40-02-AF
Wood  1 5B12 á 5B15 00-60-01-AC
Wood 2 5B16 á 5B19 00-40-01-AC
03-00 5B1A á 5B1D 00-60-02-8F
03-01 5B1E á 5B21 00-40-02-AF
Metropolis 1 5B22 á 5B25 00-60-02-8C
Metropolis 2 5B26 á 5B29 00-40-05-EC
Metropolis 3 5B2A á 5B2D 00-60-01-EC
05-01 5B2E á 5B31 00-40-02-AF
06-00 5B32 á 5B35 00-60-02-8F
06-01 5B36 á 5B39 00-40-02-AF
Hill Top 1 5B3A á 5B3D 00-40-03-AF
Hill Top 2 5B3E á 5B41 00-40-06-8F
Hidden Palace 1 5B42 á 5B45 02-30-01-AC
Hidden Palace 2 5B46 á 5B49 00-30-01-BD
09-00 5B4A á 5B4D 00-60-02-8F
09-01 5B4E á 5B51 00-40-02-AF
Oil Ocean 1 5B52 á 5B55 00-60-06-AC
Oil Ocean 2 5B56 á 5B59 00-50-05-6C
Dust Hill 1 5B5A á 5B5D 00-60-06-AC
Dust Hill 2 5B5E á 5B61 00-60-05-AC
Casino Night 1 5B62 á 5B65 00-60-02-8F
Casino Night 2 5B66 á 5B69 00-40-02-AF
Chemical Plant 1 5B6A á 5B6D 00-30-01-EC
Chemical Plant 2 5B6E á 5B71 00-30-01-2C
Genocide City 1 5B72 á 5B75 00-60-02-8F
Genocide City 2 5B76 á 5B79 00-40-02-AF
Neo Green Hill 1 5B7A á 5B7D 00-50-03-7C
Neo Green Hill 2 5B7E á 5B81 00-50-03-7C
Death Egg 1 5B82 á 5B85 00-60-02-8F
Death Egg 2 5B86 á 5B89 00-40-02-AF


DEBUG

Nesta parte você pode definir quais os objetos serão carregados durante o modo debug. Veja como configurar o debug. (Se você for um pesquisador de Roms, verá objetos que estão desativados no modo debug). O Formato para configurar os objetos no modo debug é OO-PPPPPP-VV-SSSSSS onde: OO é o objeto, PPPPPP é o ponto de montagem do objeto (Consulte as propriedades dos OBJETOS para pegar esta informação) , VV é a variante do objeto e SSSSSS é o endereço da sprite referente ao objeto no V-RAM (A Sprite necessária tem que estar carregada no V-RAM). Para ter sucesso na configuração escolha um objeto existente na fase (Você pode usar de outras fases, mas precisara fazer configurações especiais). Para você entender o formato eu pegarei um objeto da GREEN HILL, ou seja o monitor. ex: 26-00B6D2-07-00-0680. Separando os bytes temos:  26 Monitores, 00B6D2 Ponto de Montagem dos monitores, 07 monitor de invencibilidade ,  00 quadro da Sprite e  0680 busca da Sprite no VRAM. Agora veja na tabela abaixo a localização das fases para o DEBUG.

FASES LOCALIZAÇÃO Quantidade de objetos
GREEN HILL 23DF2 18 (*)
METROPOLIS 23ECC 28
HILL TOP 23FAE 19
HIDDEN PALACE 24078 8 (*)
OIL OCEAN 240F2 16 (*)
DUST HILL 24194 16
CASINO NIGHT 24216 02
CHEMICAL PLANT 24228 18
NEO GREEN HILL 242C2 17
Todas as fases incompletas 23DE0 02

(*) Todas estas fases podem ter mais objetos, pois elas tem objetos para o debug que estão desativados. Se você mexer nos ponteiros pode ativar estes objetos. Ativando estes objetos você terá o JACARÉ , o RINOCERONTE e uma PIRANHA na GREEN HILL e na HIDDEN PALACE, porém sem os SPRITES pois eles não são carregados normalmente no V-RAM.


VIDAS

Nesta parte você pode definir com quantas vidas o jogo inicia. Você pode selecionar até 255 vidas, porém acima de 99 o mostrador não mostrará o número real. A tabela abaixo mostra os valores padrão do Jogo. Por exemplo se você quiser iniciar com 10 vidas deverá digitar o valor em hexadecimal ou seja 0A. 

ENDEREÇO

BYTE DESCRIÇÃO
3B1B 03 Jogo Normal
3BFB 03 Demo Mode

ANÉIS

Nesta parte você pode selecionar o valor de cada anel. Você escolher que cada anel ao ser coletado vala de 0 a 8. Se você quiser um jogo difícil faça cada anel valer 0. Veja a tabela abaixo uma relação das possíveis  valores para os anéis.

ENDEREÇO BYTE 1 ANEL =
AD22 e AD23 50-F0 0
AD22 e AD23 52-78 1 (padrão)
AD22 e AD23 54-78 2
AD22 e AD23 56-78 3
AD22 e AD23 58-78 4

AD22 e AD23

5A-78

5

AD22 e AD23

5C-78

6

AD22 e AD23

5E-78

7

AD22 e AD23

50-78

8

 

Definição de Chão.

Nesta parte do jogo você define onde o Sonic pisa ou seja se o chão é falso, é rampa, é sólido, existem duas definições por chão, pois o jogo tem algumas chaves (objeto 03) que muda o Sonic de posição em relação ao cenário e também muda a seleção de definição, ex: se você definiu um local como sólido na 1a. definição e falso na 2a. definição e colocar um objeto 03, se o Sonic estiver do lado sólido quando tocar no objeto 03 ele cairá até encontrar um local sólido. as definições de sólido e não sólido são baseados nos tiles 16x16, e existem cerca de 768 definições por lado, na listagem abaixo você terá o ponteiro de todas as fases do jogo. note que algumas fases apontam para o mesmo local, ou seja utilizam as mesmas definições, no caso das fases perdidas (LL) se você quiser adicionar mais fases utilizando estes SLOTS, poderá redirecionar os ponteiros para um novo local e fazer suas própria definições.

1a. Definição dos Chãos (4ADC)

Fase Endereço
(00) Green Hill 0002F2EA
(01) LL 00031CEA
(02) Wood 0002F8EA
(03) LL 00031CEA
(04) Metropolis 0002FBEA
(05) Metropolis 3 0002FBEA
(06) LL 00031CEA
(07) Hill Top 0002F2EA
(08) Hidden Palace 0002FEEA
(09) LL 00031CEA
(0A) Oil Ocean 000304EA
(0B) Dust Hill 000307EA
 (0C) Casino Night 00030AEA
 (0D) Chemical Plant 000310EA
(0E) Genocide City 00031CEA
(0F) Neo Green Hill 000316EA
 (10) Death Egg 00031CEA

2a.Definição (0x4B20)

(00)Green Hill

0002F5EA

(01) LL

00031CEA

(02) Wood

0002F8EA

(03) LL

00031CEA

(04) Metropolis

0002FBEA

(05) Metropolis 3

0002FBEA

(06) LL

00031CEA

(07) Hill Top

0002F5EA

(08) Hidden Palace

000301EA

 (09) LL

00031CEA 

(0A) Oil Ocean

000304EA

(0B) Dust Hill 000307EA
(0C) Casino Night 00030DEA
(0D) Chemical Plant 000313EA
(0E) Genocide City 00031CEA
(0F) Neo Green Hill 000319EA
(10) Death Egg 00031CEA