Actions

Difference between revisions of "Sonic the Hedgehog 2 (Nick Arcade prototype)/Technical information"

From Sonic Retro

(Palettes)
(Added object list, debug object lists - Erik JS)
Line 664: Line 664:
 
PATTERN LOAD CUES USED: NONE
 
PATTERN LOAD CUES USED: NONE
 
</pre>
 
</pre>
 +
==Object list==
 +
Starts at 0x0000CB7E.
 +
Objects in this list are loaded by referencing their ID (starting from 01). Mainly used by level object layout and  debug object lists. Each ID uses 4 bytes, which are 32-bit absolute pointers to the start of programming (ASM code) of a certain object.
 +
{| border="1"
 +
!ID||Offset||Description||Intended place/Owner/Source
 +
|-
 +
|$01
 +
|0000F9FC
 +
|Sonic
 +
|Any zone
 +
|-
 +
|$02
 +
|00010C40
 +
|Tails
 +
|Any zone
 +
|-
 +
|$03
 +
|00013E2C
 +
|Collision switcher
 +
|Any zone
 +
|-
 +
|$04
 +
|000154D4
 +
|Water surface
 +
|Water zones
 +
|-
 +
|$05
 +
|00011D7E
 +
|Tails' tails
 +
|Tails only
 +
|-
 +
|$06
 +
|00014970
 +
|Spiral path
 +
|EHZ
 +
|-
 +
|$07
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$08
 +
|00012558
 +
|Water splash
 +
|Sonic
 +
|-
 +
|$09
 +
|0001A3B8
 +
|Sonic
 +
|Special Stage
 +
|-
 +
|$0A
 +
|00011E64
 +
|Underwater bubbles
 +
|Water zones
 +
|-
 +
|$0B
 +
|000141B4
 +
|Unused alternating plataform
 +
|CPZ
 +
|-
 +
|$0C
 +
|000142DC
 +
|Unused strange plataform
 +
|???
 +
|-
 +
|$0D
 +
|0000EF9C
 +
|End of level signpost
 +
|Any zone
 +
|-
 +
|$0E
 +
|0000B378
 +
|Sonic & Tails
 +
|Title screen
 +
|-
 +
|$0F
 +
|0000B3FE
 +
|???
 +
|Title screen?
 +
|-
 +
|$10
 +
|0001AA5A
 +
|???
 +
|???
 +
|-
 +
|$11
 +
|00007BA0
 +
|Block bridge
 +
|GHZ, HPZ, EHZ
 +
|-
 +
|$12
 +
|000143DC
 +
|Emerald block
 +
|HPZ
 +
|-
 +
|$13
 +
|00014458
 +
|Waterfall
 +
|HPZ
 +
|-
 +
|$14
 +
|00014CA0
 +
|Seesaw
 +
|HTZ
 +
|-
 +
|$15
 +
|00008204
 +
|Swinging plataform
 +
|GHZ
 +
|-
 +
|$16
 +
|00015104
 +
|Diagonally moving plataform
 +
|HTZ
 +
|-
 +
|$17
 +
|0000866C
 +
|Rotating spike on wooden bridge
 +
|GHZ
 +
|-
 +
|$18
 +
|0000880C
 +
|Generic natural plataform
 +
|GHZ, EHZ, HTZ
 +
|-
 +
|$19
 +
|000152B8
 +
|Metal plataform
 +
|CPZ
 +
|-
 +
|$1A
 +
|00008C44
 +
|Collapsing plataform
 +
|GHZ, HPZ
 +
|-
 +
|$1B
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$1C
 +
|000093A4
 +
|Bridge support/Moving plataform support
 +
|GHZ, EHZ, HTZ
 +
|-
 +
|$1D
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$1E
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$1F
 +
|0000A0D0
 +
|Crabmeat (badnik)
 +
|GHZ
 +
|-
 +
|$20
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$21
 +
|0001B028
 +
|HUD
 +
|Any zone
 +
|-
 +
|$22
 +
|0000A408
 +
|Buzz Bomber (badnik)
 +
|GHZ
 +
|-
 +
|$23
 +
|0000A55E
 +
|Buzz Bomber's projectile
 +
|Buzz Bomber
 +
|-
 +
|$24
 +
|00009808
 +
|Unknown explosion
 +
|???
 +
|-
 +
|$25
 +
|0000A7E4
 +
|Ring
 +
|Debug
 +
|-
 +
|$26
 +
|0000AE58
 +
|Monitor
 +
|Any zone
 +
|-
 +
|$27
 +
|0000987C
 +
|Dust explosion
 +
|Any zone
 +
|-
 +
|$28
 +
|00009AA8
 +
|Animal plus points from badnik explosion
 +
|Any zone
 +
|-
 +
|$29
 +
|00009FA0
 +
|Points
 +
|Any zone
 +
|-
 +
|$2A
 +
|000094EC
 +
|One way barrier
 +
|SBZ
 +
|-
 +
|$2B
 +
|0000B718
 +
|Chopper (badnik)
 +
|GHZ
 +
|-
 +
|$2C
 +
|0000B7DE
 +
|Jaws (badnik)
 +
|LZ
 +
|-
 +
|$2D
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$2E
 +
|0000B03A
 +
|Monitor contents
 +
|Monitor
 +
|-
 +
|$2F
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$30
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$31
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$32
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$33
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$34
 +
|0000B8C8
 +
|Title card
 +
|Title card
 +
|-
 +
|$35
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$36
 +
|0000C664
 +
|Spikes
 +
|Any zone
 +
|-
 +
|$37
 +
|0000A91E
 +
|Ring spray
 +
|Any zone
 +
|-
 +
|$38
 +
|000123BA
 +
|Blue shield
 +
|Any zone
 +
|-
 +
|$39
 +
|0000BA84
 +
|Game Over/Time Over
 +
|Any zone
 +
|-
 +
|$3A
 +
|0000BB46
 +
|End of level result screen
 +
|Any zone
 +
|-
 +
|$3B
 +
|0000C848
 +
|Purple rock
 +
|GHZ
 +
|-
 +
|$3C
 +
|0000C8C4
 +
|Breakable wall
 +
|GHZ
 +
|-
 +
|$3D
 +
|00018CFC
 +
|Robotnik
 +
|Any zone
 +
|-
 +
|$3E
 +
|000194E4
 +
|Egg prison
 +
|Any zone
 +
|-
 +
|$3F
 +
|00009914
 +
|Fire explosion
 +
|Any zone
 +
|-
 +
|$40
 +
|0000F248
 +
|Motobug (badnik)
 +
|GHZ
 +
|-
 +
|$41
 +
|0000E1C8
 +
|Spring
 +
|Any zone
 +
|-
 +
|$42
 +
|0000EBB8
 +
|Newtron (badnik)
 +
|GHZ
 +
|-
 +
|$43
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$44
 +
|0000EEB4
 +
|Wall barrier
 +
|GHZ
 +
|-
 +
|$45
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$46
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$47
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$48
 +
|000190E6
 +
|Big ball
 +
|GHZ boss
 +
|-
 +
|$49
 +
|00015690
 +
|Waterfall
 +
|EHZ
 +
|-
 +
|$4A
 +
|00016AA0
 +
|Octus (badnik)
 +
|HPZ
 +
|-
 +
|$4B
 +
|00016794
 +
|Buzzer (badnik)
 +
|EHZ (HPZ, HTZ)
 +
|-
 +
|$4C
 +
|00016D50
 +
|Batbot (badnik)
 +
|HPZ
 +
|-
 +
|$4D
 +
|0001587C
 +
|Tricerabot (badnik)
 +
|HPZ
 +
|-
 +
|$4E
 +
|000171D8
 +
|Crocobot (badnik)
 +
|HPZ
 +
|-
 +
|$4F
 +
|00015DA4
 +
|Dinobot (badnik)
 +
|HPZ
 +
|-
 +
|$50
 +
|00015F08
 +
|"Strange" Aquis (badnik)
 +
|HPZ
 +
|-
 +
|$51
 +
|00016524
 +
|Aquis (badnik)
 +
|HPZ
 +
|-
 +
|$52
 +
|00015B4C
 +
|Piranha (badnik)
 +
|HPZ
 +
|-
 +
|$53
 +
|000174D0
 +
|Masher (badnik)
 +
|EHZ
 +
|-
 +
|$54
 +
|000175D0
 +
|Snailbot (badnik)
 +
|EHZ (HTZ)
 +
|-
 +
|$55
 +
|000181CC
 +
|???
 +
|???
 +
|-
 +
|$56
 +
|00018456
 +
|Unknown double explosion
 +
|???
 +
|-
 +
|$57
 +
|00017884
 +
|???
 +
|???
 +
|-
 +
|$58
 +
|00017AEE
 +
|???
 +
|???
 +
|-
 +
|$59
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$5A
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$5B
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$5C
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$5D
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$5E
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$5F
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$60
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$61
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$62
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$63
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$64
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$65
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$66
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$67
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$68
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$69
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$6A
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$6B
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$6C
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$6D
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$6E
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$6F
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$70
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$71
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$72
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$73
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$74
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$75
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$76
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$77
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$78
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$79
 +
|000134C8
 +
|Lamppost
 +
|Any zone
 +
|-
 +
|$7A
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$7B
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$7C
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$7D
 +
|00013770
 +
|Hidden bonus
 +
|Any zone
 +
|-
 +
|$7E
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$7F
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$80
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$81
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$82
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$83
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$84
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$85
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$86
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$87
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$88
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$89
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$8A
 +
|000185E0
 +
|Sonic Team Presents/Credits
 +
|Title screen/Ending sequence
 +
|-
 +
|$8B
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|-
 +
|$8C
 +
|0000CDAE
 +
|Null object
 +
|Anywhere
 +
|}
 +
 +
===Unreferenced objects===
 +
The following objects can occupy a valid slot in order to work on their own instead of being summoned by their respective owners:
 +
# Metal plataform's collision mask: 000152F0.
 +
# Aquis' shot (inoffensive): 000165AA.
 +
# Buzzer's shot: 000168A0.
 +
 +
The following objects are not summoned by any other object or event and can occupy a valid slot in order to work:
 +
# Giant ring: 0000AA72.
 +
# Flash from giant ring: 0000AB3C.
 +
==Debug object lists==
 +
These lists are used to tell the game which objects can be placed through debug mode at each zone. They are handled by an offset index at 0x0001BCEC.
 +
{| border="1"
 +
!List location||Used by
 +
|-
 +
|0001BCFA
 +
|Green Hill (Zone 00)
 +
|-
 +
|0001BD6C
 +
|Labyrinth (Zone 01)
 +
|-
 +
|0001BD6C
 +
|Chemical Plant (Zone 02)
 +
|-
 +
|0001BDEE
 +
|Emerald Hill (Zone 03)
 +
|-
 +
|0001BF6A
 +
|Hidden Palace (Zone 04)
 +
|-
 +
|0001BED0
 +
|Hill Top (Zone 05)
 +
|-
 +
|0001BF6A
 +
|S1 ending's GHZ (Leftover Zone 06)
 +
|}
 +
The first two bytes on the list indicate how many objects are there. Each object has 8 bytes; for simply changing which object should appear instead of another, edit bytes 1 & 5, object type (ID) and sub-type, respectively.
 +
 
{{SCHGuides}}
 
{{SCHGuides}}

Revision as of 15:49, 26 November 2006

General Navigation

Offset Description
$035A8 Level order information
$02502 Pallete pointers
$035A8 Level select level order
$04620 Pointer to collision indexes
$0579A Level size array
$059C6 Rasterized layer Deformatiom offset index
$10AF8 Animation script (Sonic)
$1BFEC Main level load block
$1C05C Pattern load cues offset index
$1C09C Pattern load cues
$20000 Curve and resistance mapping (identical to S1..)
$20100 Curve and resistance mapping
$20200 Collision Array (identical to S1..)
$22200 Collision Array
$28218 Level layout offset index
$40000 Object layout offset index
$50000 Ring location offset index

Palettes

Offset Description
$245A SEGA Foreground
$25A2 SEGA Background
$2622 Title Screen
$26A2 Level Select
$2722 Sonic and Tails
$2742 Green Hill Zone
$27A2 ???
$2822 Chemical Plant Zone
$2840 ???
$2882 Emerald Hill Zone
$28E2 Hidden Palace Zone
$2942 Hill Top Zone
$29A2 (Sonic again?)
$2A22 Labyrinth Zone
$2A82 Scrap Brain Zone Act 3
$2B02 Labyrinth Zone Sonic Underwater
$2B22 Scrap Brain Zone Act 3 Sonic Underwater
$2B42 Special Stage Title Card (S1)
$2BC2 Continue - Sonic (S1)
$2BE2 Continue (S1)
$2C02 Sonic - Ending (S1)

Compressed Art, Nemesis Format

Documented by ICEknight and Quickman.

Offset Description
$9DF8E Shield
$9E114 Invincibility stars
$A0960 SEGA logo
$A1520 Title Screen graphics
$A2E82 Sonic & Tails at the Title Screen
$A39C6 GHZ bit of flower (S1)
$A3A10 GHZ & MZ platform with chain (S1)
$A3B2A EHZ Log bridge
$A3C16 Unused 16x16 block (S1)
$A3C5E GHZ rolling ball (S1)
$A3DFC GHZ rolling log with spikes (S1)
$A4010 GHZ unused spikes around the rolling log (S1)
$A413C GHZ rock (S1)
$A426A GHZ breakable wall (S1)
$A4308 Some GHZ wall (S1)
$A4368 Unknown fire
$A44A0 Unused, possible burning log
$A45AE Waterfall
$A46B4 Unused HTZ fireballs
$A4802 GHZ Log bridge (S1)
$A48DA HTZ crossing platform
$A4BCE HTZ automatic door
$A4C46 HTZ seesaw with green ball
$A4DDE HPZ bridge
$A4F56 HPZ waterfalls
$A52B8 HPZ big emerald
$A552A Unknown blocks
$A55EA HPZ glowing orb
$A5826 Some platform
$A59C0 UNKNOWN unused dust
$A5AE0 CPZ floating platform
$A5C2E Water surface
$A5D9E Button
$A5E76 Vertical spring
$A5F92 Horizontal spring
$A605C Diagonal springs
$A6230 Score/Rings/Time HUD
$A6338 Lives HUD
$A644E Rings
$A6542 Monitors
$A696C Vertical spikes
$A69BC Gathered points
$A6A96 Prototype checkpoint
$A6B3C Prototype end of level sign
$A6F8A Crocodile
$A732C EHZ Buzz Bomber
$A7512 HPZ Bat
$A7868 OOZ Octopus
$A7B88 Triceratops
$A7F84 HPZ Dinobot
$A835A Unused sideways piranha
$A8852 OOZ Prototype seahorses
$A8CA0 Unused rolling ball
$A8F36 Unused Mother Bubbler
$A9162 Unused Bubbler
$A9384 EHZ Snail
$A9580 Prototype Crawler
$A9902 EHZ Piranha
$A9B0E Boss ship
$AA24A CPZ Prototype boss
$AA7A8 Big explosion
$AAE30 Robotnik's ship boost
$AAEAE Puff of smoke
$AAF94 EHZ Boss
$AB780 EHZ Boss helicopter blades
$AB874 SBZ Ball Hog (S1)
$ABC34 Crabmeat
$AC122 GHZ Buzz Bomber (S1)
$AC4C8 Possible unknown explosion from the ground
$AC6B0 LZ Burrobot (S1)
$ACD9A GHZ Piranha (S1)
$AD002 LZ Jaws (S1)
$AD28C SYZ Roller (S1)
$AD7B0 GHZ Motobug (S1)
$ADA3A GHZ Newtron (S1)
$AE058 SYZ Snail (S1)
$AE440 MZ Bat (S1)
$AE73C Splats (S1)
$AE984 SLZ Bomb (S1)
$AEC1C LZ Orbinaut (S1)
$AEDFA MZ Catakiller (S1)
$AEF88 Title card (S1)
$AF596 Explosions
$AFBFC GAME OVER, TIME OVER
$AFD8E Vertical spring
$AFE90 Sideways spring
$AFF6C Big ring flash
$B00E0 End of level hidden bonuses (S1)
$B03E2 Sonic at Continue screen + Continue star (S1)
$B0692 CONTINUE + Minisonic (S1)
$B08CC Bunny
$B0A24 Chicken
$B0B80 Penguin
$B0CFC Seal
$B0E18 Pig
$B0F4E Flicky
$B1088 Squirrel
$B2184 EHZ graphics
$B5784 HTZ graphics
$B6BAA HTZ placeholders for animated tiles
$C0492 HPZ graphics
$C31A0 HPZ glowing orbs
$CC8F4 CPZ graphics
$CFDC0 UNKNOWN
$D8C34 GHZ graphics (S1)
$DC1F0 GHZ graphics (S1)
$E0B62 Ending scene additional graphics (S1)
$E0DEA Credits font (S1)
$E13E8 SONIC THE HEDGEHOG ending text (S1)


Pattern load cue's

The pattern load cue's are what loads all the peices of art into the VRAM that are not in the main level load block. Here's a breakdown of the pattern load cue's in the S2 Alpha ROM:

00 1C09C Standard block 1 (checkpoint/HUD/life counter/ring/gathered points) (4)
01 1C0BC Standard block 2 (Monitor/Shield/Invincibility stars) (2)
02 1C0D0 Unknown (explosion) (0)
03 1C0D8 Game\time over (game\time over text) (0)
04 1C0E0 GHZ (GHZ patterns/GHZ Piranha/Vertical spikes/Vertical spring/Horrizontal spring/EHZ Log bridge/GHZ swinging platform/Motobug/GHZ Rock) (8)
05 1C118 GHZ (GHZ Piranha) (0)
06 1C120 LZ (CPZ DUPLICATE) (2)
07 1C134 LZ (CPZ DUPLICATE) (3)
08 1C120 CPZ (CPZ graphics/UNKNOWN/floating platform) (2)
09 1C134 CPZ (Vertical spikes/Diagonal springs/Vertical spring/Horizontal spring) (3)
0A 1C14E EHZ (EHZ graphics/Fireball/Waterfall/GHZ bridge/HTZ seesaw/Vertical spikes/Diagonal springs/Vertical spring/Horizontal spring) (8)
0B 1C186 EHZ (Shield/Gathered points/Buzz Bomber/EHZ Snail/EHZ Piranha) (4)
0C 1C1A6 HPZ (HPZ graphics/HPZ bridge/waterfall/platform/pulsing ball/HPZ stuff/master emerald/Water surface) (7)
0D 1C1D8 HPZ (HPZ Dinobot/HPZ Bat/Crocodile/Buzz Bomber/HPZ Bat/Triceratops/Dinobot/Sideways piranha (1)[7]
0E 1C20A HTZ (EHZ graphics/HTZ graphics/HTZ placeholders for animated tiles/Fire/Fireballs/HTZ automatic door/GHZ Log bridge/HTZ seesaw/Vertical spikes/Diagonal springs/Vertical spring/Horizontal spring) (9)
0F 1C254 HTZ (HTZ lift/Buzz Bomber/EHZ Snail/EHZ Piranha) (0) [4]
10 1C26E ??? (Title card (S1)/) (0)
11 1C276 Boss (Boss ship/EHZ Boss/EHZ Boss helicopter blades/Boss ship/CPZ Prototype boss/Robotnik's ship boost/Puff of smoke/EHZ Boss/EHZ Boss helicopter blades) (2)[8]
12 1C2AE End of level (Signpost/End of level hidden bonuses (S1)/Big ring flash) (2)
13 1C2C2 ??? (INVALID) (10)
14 1C2C2 ??? (INVALID) (10)
15 1C2C4 GHZ Animals (Bunny/Flicky) (1)
16 1C2D2 LZ Animals (Penguin/Seal) (1)
17 1C2E0 CPZ Animals (Squirrel/Seal) (1)
18 1C2EE EHZ Animals (Pig/Flicky) (1)
19 1C2FC HPZ Animals (Pig/Chicken) (1)
1A 1C30A HTZ Animals (Bunny/Chicken) (1)
1B 1C318 ??? (INVALID) (NA)
1C 1C31A ??? (INVALID) (NA)
1D 1C31C ??? (INVALID) (NA)
1E 1C31E ??? (INVALID) (NA)
1F 1C320 ??? (INVALID) (NA)
level layout
=-=-=-=-=-=-=-=

htz act2: 29DD0
final zone - 295CE
hpz - 2CDDE, 2ADDE

=-=-=-=-=-=-=-=
level begin
=-=-=-=-=-=-=-=
---------------------
Sonic Starting points
---------------------

GHZ Act 1 - 5948


First level loaded (EHZ act 1) - 33D2
Second level loaded (EHZ act 2) - BCE0


==Animation script==
===Sonic===
00 = GHZ
01 = lZ (loads CPZ art)
02 = CPZ (MZ Music)
03 = EHZ (SLZ music)
04 = HPZ (SYZ music)
05 = HTZ (SBZ music)
06 = FZ (HTZ art) (crashes)
07 = Special stage? (crashes)
08 = (crashes)
09 = (crashes)
0A = (crashes)
0B = (crashes)
0C = (illegal instuction error)
0D = (crashes)
0E = (crashes)
0F = (crashes)
10 = (crashes)
=============================================================

PATTERN LOAD CUES OFFSET INDEX: 1C05C [$40 BYTES LONG]

[00] STANDARD1: $1C09C
[01] STANDARD2: $1C0AC
[02] ???: $1C0D0
[03] GAME/TIME OVER: $1C0D8
[04] GHZ1: $1C0E0
[05] GHZ2: $1C118
[06] LZ1: $1C120 (CPZ DUPLICATE)
[07] LZ2: $1C134 (CPZ DUPLICATE)
[08] CPZ1: $1C120
[09] CPZ2: $1C134
[0A] EHZ1: $1C14E
[0B] EHZ2: $1C186
[0C] HPZ1: $1C1A6
[0D] HPZ2: $1C1D8
[0E] HTZ1: $1C20A
[0F] HTZ2: $1C254
[10] FZ1: $1C26E
[11] FZ2: $1C276
[12] ???: $1C2AE
[13] ???: $1C2C2
[14] ???: $1C2C2
[15] ???: $1C2C4
[16] ???: $1C2D2
[17] ???: $1C2E0
[18] ???: $1C2EE
[19] ???: $1C2FC
[1A] ???: $1C30A
[1B] ???: $1C318
[1C] ???: $1C31A
[1D] ???: $1C31C
[1E] ???: $1C31E
[1F] ???: $1C320

MAIN LEVEL LOAD BLOCK (IN SONIC 1 FORMAT!): $1BFEC

00: GREEN HILL ZONE
GHZ 8X8 ART: 0D8C34
GHZ 16X16 MAPPINGS: 0D7E34
GHZ 128X128 MAPPINGS: 0DD850
PALLET: $04
SONG: $81
PATTERN LOAD CUES USED: $04, $05

01: LABERYNTH PLANT ZONE
CPZ 8C8 ART: 0CC8F4
CPZ 16X16 MAPPINGS: 0CB314
CPZ 128X128 MAPPINGS: 0CFE34
PALLET: $05
SONG: $82
PATTERN LOAD CUES USED: $06, $07

02: CHEMICAL PLANT ZONE
CPZ 8C8 ART: 0CC8F4
CPZ 16X16 MAPPINGS: 0CB314
CPZ 128X128 MAPPINGS: 0CFE34
PALLET: $06
SONG: $83
PATTERN LOAD CUES USED: $08, $09

03: EMERALD HILL ZONE
EHZ 8X8 ART: 0B2184
EHZ 16X16 MAPPINGS: 0B11E4
EHZ 128X128 MAPPINGS: 0B6EB2
PALLET: $07
SONG: $84
PATTERN LOAD CUES USED: $0A, $0B

04: HIDDEN PALACE ZONE
HPZ 8X8 ART: 0C0492
HPZ 16X16 MAPPINGS: 0BEEB2
HPZ 128X128 MAPPINGS: 0C3314
PALLET: $08
SONG: $85
PATTERN LOAD CUES USED: $0C, $0D

05: HILL TOP ZONE
HTZ 8X8 ART: 0B2184
HTZ 16X16 MAPPINGS: 0B11E4
HTZ 128X128 MAPPINGS: 0B6EB2
PALLET: $09
SONG: $86
PATTERN LOAD CUES USED: $0E, $0F

00: ENDING?
GHZ 8X8 ART: 0D8C34
GHZ 16X16 MAPPINGS: 0D7E34
GHZ 128X128 MAPPINGS: 0DD850
PALLET: $13
SONG: $86
PATTERN LOAD CUES USED: NONE

Object list

Starts at 0x0000CB7E. Objects in this list are loaded by referencing their ID (starting from 01). Mainly used by level object layout and debug object lists. Each ID uses 4 bytes, which are 32-bit absolute pointers to the start of programming (ASM code) of a certain object.

ID Offset Description Intended place/Owner/Source
$01 0000F9FC Sonic Any zone
$02 00010C40 Tails Any zone
$03 00013E2C Collision switcher Any zone
$04 000154D4 Water surface Water zones
$05 00011D7E Tails' tails Tails only
$06 00014970 Spiral path EHZ
$07 0000CDAE Null object Anywhere
$08 00012558 Water splash Sonic
$09 0001A3B8 Sonic Special Stage
$0A 00011E64 Underwater bubbles Water zones
$0B 000141B4 Unused alternating plataform CPZ
$0C 000142DC Unused strange plataform ???
$0D 0000EF9C End of level signpost Any zone
$0E 0000B378 Sonic & Tails Title screen
$0F 0000B3FE ??? Title screen?
$10 0001AA5A ??? ???
$11 00007BA0 Block bridge GHZ, HPZ, EHZ
$12 000143DC Emerald block HPZ
$13 00014458 Waterfall HPZ
$14 00014CA0 Seesaw HTZ
$15 00008204 Swinging plataform GHZ
$16 00015104 Diagonally moving plataform HTZ
$17 0000866C Rotating spike on wooden bridge GHZ
$18 0000880C Generic natural plataform GHZ, EHZ, HTZ
$19 000152B8 Metal plataform CPZ
$1A 00008C44 Collapsing plataform GHZ, HPZ
$1B 0000CDAE Null object Anywhere
$1C 000093A4 Bridge support/Moving plataform support GHZ, EHZ, HTZ
$1D 0000CDAE Null object Anywhere
$1E 0000CDAE Null object Anywhere
$1F 0000A0D0 Crabmeat (badnik) GHZ
$20 0000CDAE Null object Anywhere
$21 0001B028 HUD Any zone
$22 0000A408 Buzz Bomber (badnik) GHZ
$23 0000A55E Buzz Bomber's projectile Buzz Bomber
$24 00009808 Unknown explosion ???
$25 0000A7E4 Ring Debug
$26 0000AE58 Monitor Any zone
$27 0000987C Dust explosion Any zone
$28 00009AA8 Animal plus points from badnik explosion Any zone
$29 00009FA0 Points Any zone
$2A 000094EC One way barrier SBZ
$2B 0000B718 Chopper (badnik) GHZ
$2C 0000B7DE Jaws (badnik) LZ
$2D 0000CDAE Null object Anywhere
$2E 0000B03A Monitor contents Monitor
$2F 0000CDAE Null object Anywhere
$30 0000CDAE Null object Anywhere
$31 0000CDAE Null object Anywhere
$32 0000CDAE Null object Anywhere
$33 0000CDAE Null object Anywhere
$34 0000B8C8 Title card Title card
$35 0000CDAE Null object Anywhere
$36 0000C664 Spikes Any zone
$37 0000A91E Ring spray Any zone
$38 000123BA Blue shield Any zone
$39 0000BA84 Game Over/Time Over Any zone
$3A 0000BB46 End of level result screen Any zone
$3B 0000C848 Purple rock GHZ
$3C 0000C8C4 Breakable wall GHZ
$3D 00018CFC Robotnik Any zone
$3E 000194E4 Egg prison Any zone
$3F 00009914 Fire explosion Any zone
$40 0000F248 Motobug (badnik) GHZ
$41 0000E1C8 Spring Any zone
$42 0000EBB8 Newtron (badnik) GHZ
$43 0000CDAE Null object Anywhere
$44 0000EEB4 Wall barrier GHZ
$45 0000CDAE Null object Anywhere
$46 0000CDAE Null object Anywhere
$47 0000CDAE Null object Anywhere
$48 000190E6 Big ball GHZ boss
$49 00015690 Waterfall EHZ
$4A 00016AA0 Octus (badnik) HPZ
$4B 00016794 Buzzer (badnik) EHZ (HPZ, HTZ)
$4C 00016D50 Batbot (badnik) HPZ
$4D 0001587C Tricerabot (badnik) HPZ
$4E 000171D8 Crocobot (badnik) HPZ
$4F 00015DA4 Dinobot (badnik) HPZ
$50 00015F08 "Strange" Aquis (badnik) HPZ
$51 00016524 Aquis (badnik) HPZ
$52 00015B4C Piranha (badnik) HPZ
$53 000174D0 Masher (badnik) EHZ
$54 000175D0 Snailbot (badnik) EHZ (HTZ)
$55 000181CC ??? ???
$56 00018456 Unknown double explosion ???
$57 00017884 ??? ???
$58 00017AEE ??? ???
$59 0000CDAE Null object Anywhere
$5A 0000CDAE Null object Anywhere
$5B 0000CDAE Null object Anywhere
$5C 0000CDAE Null object Anywhere
$5D 0000CDAE Null object Anywhere
$5E 0000CDAE Null object Anywhere
$5F 0000CDAE Null object Anywhere
$60 0000CDAE Null object Anywhere
$61 0000CDAE Null object Anywhere
$62 0000CDAE Null object Anywhere
$63 0000CDAE Null object Anywhere
$64 0000CDAE Null object Anywhere
$65 0000CDAE Null object Anywhere
$66 0000CDAE Null object Anywhere
$67 0000CDAE Null object Anywhere
$68 0000CDAE Null object Anywhere
$69 0000CDAE Null object Anywhere
$6A 0000CDAE Null object Anywhere
$6B 0000CDAE Null object Anywhere
$6C 0000CDAE Null object Anywhere
$6D 0000CDAE Null object Anywhere
$6E 0000CDAE Null object Anywhere
$6F 0000CDAE Null object Anywhere
$70 0000CDAE Null object Anywhere
$71 0000CDAE Null object Anywhere
$72 0000CDAE Null object Anywhere
$73 0000CDAE Null object Anywhere
$74 0000CDAE Null object Anywhere
$75 0000CDAE Null object Anywhere
$76 0000CDAE Null object Anywhere
$77 0000CDAE Null object Anywhere
$78 0000CDAE Null object Anywhere
$79 000134C8 Lamppost Any zone
$7A 0000CDAE Null object Anywhere
$7B 0000CDAE Null object Anywhere
$7C 0000CDAE Null object Anywhere
$7D 00013770 Hidden bonus Any zone
$7E 0000CDAE Null object Anywhere
$7F 0000CDAE Null object Anywhere
$80 0000CDAE Null object Anywhere
$81 0000CDAE Null object Anywhere
$82 0000CDAE Null object Anywhere
$83 0000CDAE Null object Anywhere
$84 0000CDAE Null object Anywhere
$85 0000CDAE Null object Anywhere
$86 0000CDAE Null object Anywhere
$87 0000CDAE Null object Anywhere
$88 0000CDAE Null object Anywhere
$89 0000CDAE Null object Anywhere
$8A 000185E0 Sonic Team Presents/Credits Title screen/Ending sequence
$8B 0000CDAE Null object Anywhere
$8C 0000CDAE Null object Anywhere

Unreferenced objects

The following objects can occupy a valid slot in order to work on their own instead of being summoned by their respective owners:

  1. Metal plataform's collision mask: 000152F0.
  2. Aquis' shot (inoffensive): 000165AA.
  3. Buzzer's shot: 000168A0.

The following objects are not summoned by any other object or event and can occupy a valid slot in order to work:

  1. Giant ring: 0000AA72.
  2. Flash from giant ring: 0000AB3C.

Debug object lists

These lists are used to tell the game which objects can be placed through debug mode at each zone. They are handled by an offset index at 0x0001BCEC.

List location Used by
0001BCFA Green Hill (Zone 00)
0001BD6C Labyrinth (Zone 01)
0001BD6C Chemical Plant (Zone 02)
0001BDEE Emerald Hill (Zone 03)
0001BF6A Hidden Palace (Zone 04)
0001BED0 Hill Top (Zone 05)
0001BF6A S1 ending's GHZ (Leftover Zone 06)

The first two bytes on the list indicate how many objects are there. Each object has 8 bytes; for simply changing which object should appear instead of another, edit bytes 1 & 5, object type (ID) and sub-type, respectively.

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