Sonic the Hedgehog
Hacking
Guide (US version)
Using a hexadecimal editor is possible to modify the game, publishing it byte to byte. Knowing where it is each instruction and altering it correctly you can personalize the game. You can draw other character in the place of Sonic but this is not easy since it gets that if fact point to point.. To alter the name of the levels in the level select menu and in I title it of the levels. But to program the game it is necessary that he is in the binary format, it is not very difficult to convert the game for binary, you can use a conversion program or emulative Genecyst that it gets the option DUMP ROM, that makes the conversion.
LEVEL SELECT MENU
The Level Select Menu of Sonic 1 uses a format of plane text of 26 characterses for line. all the lines can be typed texts of up to 26 characterses besides the lines that show only STAGE 2 and 3. THE first space begins in the letter G of the word GREEN HILL and the last space finishes in I number it 1 of STAGE 1, the first space begins where it finishes the space of the first line and like this until the end of the screen of level select. see the list of the levels and the respective addresses below in the editor hexadecimal. Obs: In the editor you will see addresses for example in hexadecimal in the following format 000035B9. But in the page you will see that same address represented by 3B59.
LEVEL |
ADDRESS |
GREEN HILL ZONE STAGE 1 |
35A2 to 35B9 |
STAGE 2 |
35BA to 35D1 |
STAGE 3 |
35D2 to 35E9 |
LABYRINTH ZONE STAGE 1 |
35EA to 3601 |
STAGE 2 |
3602 to 3619 |
STAGE 3 |
361A to 3631 |
MARBLE ZONE STAGE 1 |
3632 to 3649 |
STAGE 2 |
364A to 3661 |
STAGE 3 |
3662 to 3679 |
STAR LIGHT ZONE STAGE 1 |
367A to 3691 |
STAGE 2 |
3692 to 36A9 |
STAGE 3 |
36AA to 36C1 |
SPRING YARD ZONE STAGE 1 |
36C2 to 36D9 |
STAGE 2 |
36DA to 36F1 |
STAGE 3 |
36F2 to 3709 |
SCRAP BRAIN ZONE STAGE 1 |
370A to 3721 |
STAGE 2 |
3722 to 3739 |
STAGE 3 |
373A to 3751 |
FINAL ZONE |
3752 to 3769 |
SPECIAL STAGE | 376A to 3781 |
SOUND TEST | 3782 to 3799 |
The name of the levels uses a group of characterses NO-ASCII. It is necessary to know the equivalence of the letters to modify the name. Observe the table below and modify the names. Run the game and go to the level select menu and see the names that you placed.
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 = |
Title Cards
You can also alter Title Cards. But unlike the menu of selection of phases it exists restrictions with relationship to the number of characterses that it can place. There is also something interesting in Title Cards Fonts the letters don't exist J-Q-V-W-X, that is to say words that use these letters cannot be used. Title Cards modification is not also very simple because you will have to specify them it distances of the letters so that these they are not put upon. But it doesn't despair it views the table of characterses used in Title Cards below and soon soon after an explanation of as to modify the texts without problems.
TABLE WITH THE FONTS OF THE TITLE CARDS
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-09 = 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=( blank ) |
Now sees as the programming of the names of the levels works. Observe the image of the editor hexadecimal below. The editor hexadecimal used was Hexpose, you can use any editor of its preference, I use this editor because you can create a file source for him, that is to say instead of him to show it the values in standard ASCII he will show it the text based on the supplied font. Observe the illustration below:
For you to understand as it works I highlighted some instructions with differentiated colors, notice that joining the letters, that are highlighted on the right side of the program you set up the name of the levels. Now see as it works the instructions. Each letter in the screen uses 5 bytes to be shown it Observes: F8-05-00-3A-CA. The 1st. byte (F8) it indicates the vertical position (YY) of the letter in the screen, this byte won't usually be necessary to modify. Of the 2nd. at the 4th. byte (05-00-3A) they are the bytes that indicate that letter should be shown in the screen in the case it would be the letter " R ". THE 5th. byte (CA) it indicates the horizontal position (XX) in the screen, this is one of the most important bytes because it is him who determines the spaces of the letters and in case it is not placed the letters correctly they will be put upon, but this is not very difficult, since the space entity a letter and another is of 10h (it observes below in the illustration the byte that follows the numbers in yellow and notice that increase of 10h in 10h) this measured it is the same used in the composed words, but as every rule it gets exception for 1st. letter that be typed after the letter " I " uses a smaller space that is to say 8h. you can use the standard space 10h, but in the hour in that the text be exhibited you will see that the letter that the " I " happens will be far. Pay a lot of attention in the 5 bytes in the moment in that is publishing the name of a level that they say the letter " I " because if you don't increase the space among the letters, these will be put upon. The only restrictions are: 1st. The limit of letters for phases is it I number of letters of the current phase, 2nd. you cannot write words that use the letters " J ", Q ", V ", W ", X ", because these letters don't exist in the font of the Title Cards . See the location of each text and make its alterations.
TEXT |
ADDRESS |
GREEN HILL | C9FE to CA2B |
LABYRINTH | CA2C to CA59 |
MARBLE | CA5A to CA79 |
STAR LIGHT | CA7A to CAA7 |
SPRING YARD | CAA8 to CADA |
SCRAP BRAIN | CADB to CB0E |
FINAL | CB8B to CBA3 |
ZONE | CB0F to CB24 |
SONIC HAS PASSED | CBEA to CC31 |
CHAOS EMERALD | CCAD to CCE8 |
SPECIAL STAGE | CD6C to CDA7 |
SONIC GOT THEM ALL | CDA8 to CDF3 |
SEE THE NAME BELOW OF SOME LEVELS THAT I MODIFIED
![]() |
The level to the side is modified SCRAP BRAIN. |
![]() |
The level to the side is modified SPRING YARD |
Obs: In the byte of caractere spacing the left song of the screen is 80h and I sing right it is 7Fh. That is to say a possible text can be written with space of 80h, 90h, A0h, B0h, C0h, D0h, E0h, F0h, 00h, 10h, 20h, 30h, 40h, 50h, 60h, 70h. This would be the spaces that you would place in the letters case he wanted to begin of the I begin of the screen | |
Configuration of exhibition of the Title Cards.
This area of the game says to the game as it should be exhibited the titles of initialization of the game, that is to say position in the screen through where to enter or to leave. Each level uses 16 bytes for configuration of the Title Cards. As example I the bytes that configure the text of the phase Green Hill that is will diffuse: 00000120FEFC013C0414015402140154. Now I understand what those bytes mean. the first 4 bytes, that is to say, 00-00-01-20 are of the text of the level, in the example GREEN HILL, of the 5th. at the 8th. bytes, that is to say, FE-FC-01-3C are the bytes of the text ZONE, of the 9th. at the 12th. byte, that is to say, 04-14-01-54 are the bytes of " ACT x " (x is it I number of the level), and last, that is to say, 02-14-01-54 are the bytes of the plan of fund blue of the titles (That inclined oval ball that appears behind the text " ACT x "). Tends the information above we can still separate the bytes in groups of two, All the groups they will have the same effect. The group of the name of the phase that is 00-00-01-20 will diffuse, the first 2 bytes, that is to say, 00-00 indicate the position of entrance of the text in the screen, the last two bytes, that is to say, 01-20 indicate the horizontal position of the text in the screen, in these bytes he generally increases of 10h in 10h, This configuration is worth for the whole group of bytes of the level that is to say the first and the second group of 2 bytes will always make the same effect of the explained above. See the editor's illustration and soon I lower the list of the levels and its corresponding address.
LEVEL |
ADDRESS |
GREEN HILL |
C448 to C457 |
LABYRINTH | C458 to C467 |
MARBLE | C468 to C477 |
STAR LIGHT | C478 to C487 |
SPRING YARD | C488 to C497 |
SCRAP BRAIN | C498 to C4A7 |
FINAL | C4A8 to C4B7 |
Enable the sentence " PRESS START BUTTON " in the screen title. For that with an editor hexadecimal changes the byte of 02 for 00. In agreement with its version of the game the bytes are in local different, See the possible locations below .
VERSION | ADDRESS |
AMERICAN | 17271 |
JAPANESE | 17A1D |
Done this run the game and see to appear the message "PRESS START BUTTON"
![]() |
See the message PRESS START BUTTON in the screen title |
CREDITS AND INITIAL SCREEN
This part is very interesting because you can publish all the credits of the game. Besides the initial screen "SONIC TEAM PRESENTS".
TEXT | ADDRESS |
SONIC TEAM STAFF |
172F8 to 1733E |
GAME PLAN CAROL YAS | 1733F to 1738F |
PROGRAM YU 2 | 17390 to 173C2 |
CHARACTER DESIGN BIGISLAND | 173C3 to 1743B |
DESIGN JINYA PHENIX RIE | 1743C to 174A0 |
SOUND PRODUCE MASATO NAKAMURA | 174A1 to 17523 |
SOUND PROGRAM JIMITA MACKY | 17524 to 17597 |
SPECIAL TANKS FUJIO MINEGISHI PAPA | 17598 to 17633 |
PRESENTED BY SEGA | 17634 to 1767F |
TRY AGAIN | 17680 to 176A8 |
SONIC TEAM PRESENTS |
176A9 to 176FE |
See the font of the credits
(absent letters: 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 |
The exhibition configuration is similar to it of the
title cards. former: 11-E8-05-00-3E-B4
where the first byte indicates the number of characterses they be she exhibited in the screen. The second byte indicates the vertical position in the screen. Of the third at the fifth are properly the letters said. The last indicates the horizontal position in the screen, it is this byte that defines the spacing between a letter and other .
MUSIC Of THE LEVELS
You can also choose the music to be played in the levels. The format is of just a byte for level and it is very simple. To place another music of its preference, play the sounds in the sound test, write down the number of the music and place in the byte that represents the chosen level . See below in the table the location of the selection of music. Also observe that for the correct operation will be necessary to alter the bytes in the three addresses listed below. The levels listed with (----) they Use only the striped addresses and they don't need of more than one or two changes to work. The level Labirinth and Scrap Brain 3 needs the alteration in the 3 addresses listed below for they work correctly.
Level | Music | Address 1 | Address 2 | Address 3 |
GREEN HILL |
81 | 379A | 12CC8 | ------ |
LABIRINTH | 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 | ------- | ------ |
SPECIAL STAGE | 89 | 46CD | ------- | ------ |