Actions

SCHG

Sonic the Hedgehog 2 (16-bit)/Level Specific

From Sonic Retro

Revision as of 14:05, 2 October 2020 by Ccawley2011 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Sonic Community Hacking Guide
Sonic the Hedgehog 2 (16-bit)
Art
Objects
Levels
Text
Music
RAM
Miscellaneous

Here I will list level specific hacking information. This is handy as a quick reference while editing levels in Sonic 2.

Emerald Hill Zone

Offset
Level load block $42594
Palette $2A22
Level art $95C24
16x16 block mappings $94E74
128x128 mappings $99D34
Level Layout - Act 1 $45AC4
Level Layout - Act 2 $45C84
Level Size - Act 1 $C054
Level Size - Act 2 $C05C
Ring Placement - Act 1 $E4344
Ring Placement - Act 2 $E456A
Object Placement - Act 1 $E684A
Object Placement - Act 2 $E6B7A
Rasterised layer deformation $C57E
Animated pattern load queues $3FF94
Pattern load queues $42736, 4275C
Level event script $E658
Dynamic pattern reloading $3FF2C
Misc object mappings $40372
Object debug list $41D2E
Primary collision index $44E50
Secondary collision index $44F40
Rotating Palette $1A18


Note: The 8x8 art and the 16x16/128x128 mappings are shared with Hill Top Zone.

Wood Zone

Offset
Level load block $
Palette $2A82
Level art $
16x16 block mappings $
128x128 mappings $
Level Layout - Act 1 $100753
Level Layout - Act 2 $10090B
Level Size - Act 1 $
Level Size - Act 2 $
Ring Placement - Act 1 $E47B0
Ring Placement - Act 2 $E47B2
Object Placement - Act 1 $EBD52
Object Placement - Act 2 $EBD52
Rasterised layer deformation $
Animated pattern load queues $
Pattern load queues $
Level event script $
Dynamic pattern reloading $3FF2C
Misc object mappings $
Object debug list $
Primary collision index $
Secondary collision index $
Rotating Palette $


Chemical Plant Zone

Offset
Level load block $42630
Palette $2E02
Underwater palette $2E82
Level art $B6174
16x16 block mappings $B5234
128x128 mappings $B90F4
Level Layout - Act 1 $48774
Level Layout - Act 2 $48A84
Level Size - Act 1 $C124
Level Size - Act 2 $C12C
Ring Placement - Act 1 $E5E2C
Ring Placement - Act 2 $E5F9E
Object Placement - Act 1 $EA9D2
Object Placement - Act 2 $EAD6E
Rasterised layer deformation $D27C
Animated pattern load queues $401B2
Pattern load queues $42A1E, 42A56
Level event script $F446
Dynamic pattern reloading $3FF2C
Misc object mappings $40762
Object debug list $42376
Primary collision index $453C0
Secondary collision index $454E0
Rotating Palette $1D16


Note: The 8x8 art and the 16x16/128x128 mappings are shared with Death Egg Zone.

Aquatic Ruin Zone

Offset
Level load block $42648
Palette $2F42
Underwater palette $2FA2
Level art $BCC24
16x16 block mappings $BB944
128x128 mappings $C1434
Level Layout - Act 1 $48E94
Level Layout - Act 2 $49264
Level Size - Act 1 $C144
Level Size - Act 2 $C14C
Ring Placement - Act 1 $E6294
Ring Placement - Act 2 $E642E
Object Placement - Act 1 $EB25A
Object Placement - Act 2 $EB6A4
Rasterised layer deformation $D4AE
Animated pattern load queues $401D6
Pattern load queues $42AAA, 42AC4
Level event script $F4D0
Dynamic pattern reloading $3FF24
Misc object mappings $4077A
Object debug list $42438
Primary collision index $45610
Secondary collision index $45760
Rotating Palette $1D88

Casino Night Zone

Offset
Level load block $42624
Palette $2DA2
Level art $B0894
16x16 block mappings $AFFC4
128x128 mappings $B2CF4
Level Layout - Act 1 $47FF4
Level Layout - Act 2 $483C4
Level Size - Act 1 $C114
Level Size - Act 2 $C11C
Ring Placement - Act 1 $E5944
Ring Placement - Act 2 $E5B7E
Object Placement - Act 1 $E9D1E
Object Placement - Act 2 $EA3D8
Rasterised layer deformation $D0C6
Animated pattern load queues $4010E
Pattern load queues $429BA, 429F8
Level event script $F26A
Dynamic pattern reloading $3FF08
Misc object mappings $4061A
Object debug list $422B4
Primary collision index $452A0
Secondary collision index $45330
Rotating palette $1BEE

Miscellaneous:

  • Special Bumpers:
    There are special bumper objects in CNZ. They are not grouped in the normal object data. To disable them completely, go to $173CE and enter "4E75".

Hill Top Zone

COMING SOON

Mystic Cave Zone

COMING SOON

Oil Ocean Zone

Offset
Level load block $
Palette $2CE2
Oil cycle auto palette $1F76
Level art $A4204
16x16 block mappings $A3364
128x128 mappings $A6384
Level Layout - Act 1 $47404
Level Layout - Act 2 $47784
Level Size - Act 1 $C0F4
Level Size - Act 2 $C0FC
Ring Placement - Act 1 $E5260
Ring Placement - Act 2 $E5422
Object Placement - Act 1 $E8DA0
Object Placement - Act 2 $E9214
Rasterised layer deformation $CC66 ( ? )
Animated pattern load queues $400C8
Pattern load queues $
Level event script $
Dynamic pattern reloading $
Misc object mappings $405B6
Object debug list $420E8
Primary collision index $45100
Secondary collision index $
Rotating palette $

Misc:

  • Oil "Ocean" effect:
    Go to $41B9 you will see "0A" (OOZ level slot). You can change this to switch the oil effect to another level. If you change it to "11" then the effect will not be in any level.
  • Oil "slide" effect:
    Go to $456D you will see "0A" (OOZ level slot). You can change this to switch the oil effect to another level. If you change it to "11" then the effect will not be in any level.

Metropolis Zone

COMING SOON

Sky Chase Zone

Offset
Level load block $42654
Palette $3022
Level art $C5004
16x16 block mappings $C4074
128x128 mappings $C85E4
pattern suppliment $C7EC4
Level Layout - Act 1 $49634
Level Size - Act 1 $C154
Level Size - Act 2 $C15C
Ring Placement - Act 1 $E6684
Ring Placement - Act 2 $E66D6
Object Placement - Act 1 $EBBDE
Object Placement - Act 2 $EBD4C
Rasterised layer deformation $D5DE
Pattern load queues $42AF6, 42AFE
Level event script $F59E
Dynamic pattern reloading $3FD24
Object debug list $42522
Primary collision index $458C0
Secondary collision index $459A0
Rotating palette $1DB6


Note: The 8x8 art and the 16x16/128x128 mappings are shared with Wing Fortress Zone.

Miscellaneous:

  • Flight Paths

You have to edit the level event script to change the path that the plane will fly.
Move right to 1180: F5D2
Move down to 0500: F5F2
Move right to 1400: F60A

  • Level length

By default, the level will end when the plane reaches 1400. To change this, you have to change "1400" to your likings in three locations.
Level size: C154 (the level actually ends at 3FFF)
Level event script: F60A
Tornado object: 3A860

  • Act 2

To make Act 2 work properly, go to $C408 and change the 6 bytes there to "0C78 1000 FE10". Now go to $C15C and give act a level size. Now the level will work like any normal level.

Wing Fortress Zone

COMING SOON

Death Egg

COMING SOON