Actions

SCHG

Sonic the Hedgehog (16-bit)/Text Editing

From Sonic Retro

Revision as of 04:38, 25 March 2020 by Black Squirrel (talk | contribs) (Text replacement - "__NOTOC__ {{SCHG (.*)}} ==" to "{{SCHG $1}} ==")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
SCHG: Sonic the Hedgehog

Level Select Menu

Sonic 1's Level Select Menu uses a 26-char per line plain-text format. In all the lines, you can type texts which length is 26-char, including the lines that shows only STAGE 2 and STAGE 3. The first space starts at the letter G of the phrase GREEN HILL and the final space finishes at the number 1 of the text STAGE 1. The first space of the next line starts where the previous line ends. See below the offset location for these texts. Note: If you're using a split disassembly, open "menutext.bin" in the misc-folder with a Hex-Editor!

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

Levels' name uses non-ASCII characters. You need to know the letter code to modify the name. See the table below and change the names.

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 = (space)

Level Title Cards

You also can change the level titles, but you have two restrictions: the number of characters you can put and the letters available. In the level cards, you CAN'T use the letters J, Q, V, W, or X. It means that words which use these letters can't be used. Also, the title modification isn't too easy like level select, because you need to specify the distance between the letters to avoid that they overlap themselves. Don't panic! See below the codes of the letters, then the explanation of how this works.

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=(space)

Now, trying to understand this: The level cards function like

LC-VS-(LV-CO-DE)-HS-VS-(LV... until the final -VS, where:

LC is the quantity of characters that you allow to be shown; VS is the vertical screen position of the letter; LV-CO-DE is one of the values above and HS is the horizontal screen position of the letter. An example is welcome to understand this. So, I'll take GREEN HILL title for example. The code is of the type above, right? So, 09-F8-05-00-18-B4-F8-05-00-3A-C4... the 09 is the letters allowed to be shown. The other bytes are the letter configuration. The space between letters are formed as: LETTER1 +X = YOU CAN PUT LETTER2. I'll talk about this X.

The values are set ups:

I: X=8h; M: X=Fh; ".": X=8h.
For the another, X=10h. Note that the value is added in HEX format, not in decimal. Below, you have the offset locations of the title cards:
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
  • Note: the minimum position is 80h (080) and the maximum is 70h (170).
  • Second Note: If you are using a Split Disassembly, go to "Map_Obj34:".

Title Card Configuration

This area tells the game how the text must be shown when the level starts, it means, where to enter or to quit. Each level use 16 bytes to configure the titles. By an example, I'll take the Green Hill Configuration: 00000120FEFC013C0414015402140154. Separating this sequence in 4-byte group, we have:

00.00.01.20 - about the text;
FE.FC.01.3C - about the "ZONE" title;
04.14.01.54 - about the "ACT X" title, where X is 1,2 or 3; and
02.14.01.54 - about the blue background.

Separating these lists in groups of 2, we have that the 2 first bytes are the enter position of the text and the 2 last are the exit position of the text, in all the 4-byte group.

See the table below and start changing.

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
  • Note: In a Disassembly it's in Obj34_ConData and for the hg dissembly, open sonic.asm and search for M_Card_GHZ:.

"Press Start Button" message on Title Screen

See main article SCHG How-to:Display the Press Start Button text.

Credits and Presentation Screen

To edit the credits, simply refer to the explanation in the title cards. It Is the same format. But the letter values change and you have other restrictions, shown below.

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 THANKS FUJIO MINEGISHI PAPA $17598 to $17633
PRESENTED BY SEGA $17634 to $1767F
TRY AGAIN $17680 to $176A8
SONIC TEAM PRESENTS $176A9 to $176FE

See below the new codes for editing. You can't use Q, V, W and 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-50 = X 05-00-16 = L 05-00-32 = U
05-00-0E = E 09-00-08 = M 05-00-2A = Y
05-00-5C = F 05-00-1A = N 05-00-36 = 2
05-00-00 = G 05-00-26 = O 00-00-FF = (space)
  • Note: In a Disassembly it's stored in _maps\obj8A.asm!
  • Second note: If you used the code 00-00-FF, the first time you play the game nothing happens, but if you return to SEGA logo may cause small glitch effects.

References


Sonic Community Hacking Guide
General
SonED2 Manual | Subroutine Equivalency List
Game-Specific
Sonic the Hedgehog (16-bit) | Sonic the Hedgehog (8-bit) | Sonic CD (prototype 510) | Sonic CD | Sonic CD (PC) | Sonic CD (2011) | Sonic 2 (Simon Wai prototype) | Sonic 2 (16-bit) | Sonic 2 (Master System) | Sonic 3 | Sonic 3 & Knuckles | Chaotix | Sonic Jam | Sonic Jam 6 | Sonic Adventure | Sonic Adventure DX: Director's Cut | Sonic Adventure DX: PC | Sonic Adventure (2010) | Sonic Adventure 2 | Sonic Adventure 2: Battle | Sonic Adventure 2 (PC) | Sonic Heroes | Sonic Riders | Sonic the Hedgehog (2006) | Sonic & Sega All-Stars Racing | Sonic Unleashed (Xbox 360/PS3) | Sonic Colours | Sonic Generations | Sonic Forces
Technical information
Sonic Eraser | Sonic 2 (Nick Arcade prototype) | Sonic CD (prototype; 1992-12-04) | Dr. Robotnik's Mean Bean Machine | Sonic Triple Trouble | Tails Adventures | Sonic Crackers | Sonic 3D: Flickies' Island | Sonic & Knuckles Collection | Sonic R | Sonic Shuffle | Sonic Advance | Sonic Advance 3 | Sonic Battle | Shadow the Hedgehog | Sonic Rush | Sonic Classic Collection | Sonic Free Riders | Sonic Lost World
Legacy Guides
The Nemesis Hacking Guides The Esrael Hacking Guides
ROM: Sonic 1 | Sonic 2 | Sonic 2 Beta | Sonic 3

Savestate: Sonic 1 | Sonic 2 Beta/Final | Sonic 3

Sonic 1 (English / Portuguese) | Sonic 2 Beta (English / Portuguese) | Sonic 2 and Knuckles (English / Portuguese)
Move to Sega Retro
Number Systems (or scrap) | Assembly Hacking Guide | 68000 Instruction Set | 68000 ASM-to-Hex Code Reference | SMPS Music Hacking Guide | Mega Drive technical information