Actions

SCHG

Difference between revisions of "Sonic the Hedgehog (16-bit)/Object Editing"

From Sonic Retro

(Object Pointer List: Corrected and added mappings offsets. Will continue to update and fix this table.)
m (grammar)
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{SCHG S1}}
 
{{SCHG S1}}
==Object Pointer List==
+
==Object Pointer list==
''SS Note: Code offsets for each actual pointer were taken from the Nemesis guides; they do not all appear to be accurate, but I don't have enough skill to go back and correct them yet. Someone else may take this task up.''
+
This is the pointer list for every object in Sonic 1, including all zone objects, unused objects, etc. The offsets for the code and mappings are based on where they are found in a clean HG disassembly. These offsets may change even in a clean disassembly, however, due to the Revision variable. Changing this to either the REV 00 or REV JP1 version can result in slightly different offsets for the code, and mappings. The offsets shown on this table reflect the REV 00 version.
<br>''KingofHarts Note: Mappings offsets are currently being checked and verified.''
+
<br><br>'''''NOTE:''' Code offsets were originally taken from the Nemesis guides, and do not all appear to be accurate. Object pointers are currently in a process of being checked and verified. Mappings offsets are currently 100% accurate, and reflect the point in the ROM where the mapping pointers start, rather than where the code for the pieces themselves start. This is also analogous to the data found in RAM at an objects obMap OST byte.''
{|border="1" class="prettytable"
+
{| class="prettytable" style="width: auto;"
 
!ID #
 
!ID #
 
!Description
 
!Description
Line 13: Line 13:
 
|Sonic
 
|Sonic
 
|$12BD8
 
|$12BD8
|$21292
+
|$211E2
 
|
 
|
 
|-
 
|-
Line 19: Line 19:
 
|????
 
|????
 
|$D5B2
 
|$D5B2
|??
+
|N/A
 
|rowspan=6|All of these point to ObjectFall, the subroutine directly after the object table; apparently a label for a null object was made but code was never added.
 
|rowspan=6|All of these point to ObjectFall, the subroutine directly after the object table; apparently a label for a null object was made but code was never added.
 
|-
 
|-
Line 25: Line 25:
 
|????
 
|????
 
|$D5B2
 
|$D5B2
|??
+
|N/A
 
|-
 
|-
 
|04
 
|04
 
|????
 
|????
 
|$D5B2
 
|$D5B2
|??
+
|N/A
 
|-
 
|-
 
|05
 
|05
 
|????
 
|????
 
|$D5B2
 
|$D5B2
|??
+
|N/A
 
|-
 
|-
 
|06
 
|06
 
|????
 
|????
 
|$D5B2
 
|$D5B2
|??
+
|N/A
 
|-
 
|-
 
|07
 
|07
 
|????
 
|????
 
|$D5B2
 
|$D5B2
|??
+
|N/A
 
|-
 
|-
 
|08
 
|08
 
|LZ water splash
 
|LZ water splash
 
|$142F0
 
|$142F0
|$145D2
+
|$145CC
 
|
 
|
 
|-
 
|-
Line 56: Line 56:
 
|Sonic in Special Stage
 
|Sonic in Special Stage
 
|$1B984
 
|$1B984
|$21292
+
|$211E2
 
|
 
|
 
|-
 
|-
Line 62: Line 62:
 
|Drowning countdown numbers
 
|Drowning countdown numbers
 
|$13C98
 
|$13C98
|$129FA
+
|$129CC
 
|
 
|
 
|-
 
|-
Line 68: Line 68:
 
|LZ vertical pole
 
|LZ vertical pole
 
|$11206
 
|$11206
|$11326
+
|$11322
 
|
 
|
 
*$00 - Unbreakable
 
*$00 - Unbreakable
*$01 - Breaks in 1 Seconds
+
*$0''x'' - Pole breaks in ''xx'' seconds.
*$02 - Breaks in 2 Seconds
 
*$03 - Breaks in 3 Seconds
 
*$04 - Breaks in 4 Seconds
 
*$05 - Breaks in 5 Seconds
 
*$06 - Breaks in 6 Seconds
 
 
|-
 
|-
 
|0C
 
|0C
 
|LZ Flapping doors
 
|LZ Flapping doors
 
|$11346
 
|$11346
|$113F8
+
|$113F2
|$02
+
|$0''x'' - Door flaps open/shut in ''xx'' seconds.
 
|-
 
|-
 
|0D
 
|0D
 
|End of level signpost
 
|End of level signpost
 
|$EB28
 
|$EB28
|$ED42
+
|$ED38
 
|
 
|
 
|-
 
|-
Line 93: Line 88:
 
|Sonic on the title screen
 
|Sonic on the title screen
 
|$A61C
 
|$A61C
|$A898
+
|$A888
 
|
 
|
 
|-
 
|-
Line 99: Line 94:
 
|"PRESS START BUTTON" and "TM" from title screen
 
|"PRESS START BUTTON" and "TM" from title screen
 
|$A69C
 
|$A69C
|$A7CC
+
|$A7C4
 
|
 
|
 
|-
 
|-
Line 105: Line 100:
 
|Blank object
 
|Blank object
 
|$1C022
 
|$1C022
|
+
|N/A
 
|
 
|
 
|-
 
|-
Line 111: Line 106:
 
|GHZ Bridge
 
|GHZ Bridge
 
|$7328
 
|$7328
|??
+
|$7934
|
+
|Subtype dictates # of logs
*$06 - 6 logs
 
*$07 - 7 logs
 
*$08 - 8 logs
 
*$09 - 9 logs
 
*$0A - 10 logs
 
*$0B - 11 logs
 
*$0C - 12 logs
 
*$0D - 13 logs
 
*$0E - 14 logs
 
*$0F - 15 logs
 
 
|-
 
|-
 
|12
 
|12
 
|Spinning light behind glass from SYZ
 
|Spinning light behind glass from SYZ
 
|$E90C
 
|$E90C
|??
+
|$E982
 
|
 
|
 
|-
 
|-
|13/14?
+
|13
 +
|Fireball Maker (MZ/SLZ)
 +
|$E296
 +
|N/A
 +
|Subtype determines # of frames a fireball is spawned (30, 60, 90, 120, 150, 180)
 +
|-
 +
|14
 
|Fireball from MZ/SLZ
 
|Fireball from MZ/SLZ
|$E296
+
|$E304
|$B37A
+
|$B36E
 
|
 
|
 
*$17 - Goes left to right
 
*$17 - Goes left to right
Line 141: Line 132:
 
|-
 
|-
 
|15
 
|15
| GHZ and MZ swinging platforms<br/> Spiked ball on a chain (SBZ)<br/> SLZ swinging platforms
+
|GHZ and MZ swinging platforms<br/>Spiked ball on a chain (SBZ)<br/> SLZ swinging platforms
| $E304
+
|$7952
| $7C4E<br/>$10AA6<br/>$7C6C
+
|
 +
*$7C48 (GHZ & MZ)
 +
*$7C66 (SLZ)
 +
*$10AA0 (SBZ)
 
|
 
|
 
|-
 
|-
Line 149: Line 143:
 
|Spear from LZ
 
|Spear from LZ
 
|$11F04
 
|$11F04
|$11FA6
+
|$11F9A
 
|
 
|
 
*$00 - Horizontal spear
 
*$00 - Horizontal spear
Line 157: Line 151:
 
|Helix of spikes on a pole from GHZ
 
|Helix of spikes on a pole from GHZ
 
|$7CA2
 
|$7CA2
|$7E08
+
|$7DF8
 
|$10
 
|$10
 
|-
 
|-
Line 163: Line 157:
 
|GHZ platforms<br/>SLZ platforms<br/>SYZ platforms
 
|GHZ platforms<br/>SLZ platforms<br/>SYZ platforms
 
|$7E32
 
|$7E32
|$8140<br/>$819C<br/>$818A<br/>$80FE (unused)
+
|
 +
*$80FA (Unused)
 +
*$813C (GHZ)
 +
*$8188 (SYZ)
 +
*$819A (SLZ)
 
|
 
|
 
*x0: Doesn't move
 
*x0: Doesn't move
Line 182: Line 180:
 
|Blank object
 
|Blank object
 
|$81A8
 
|$81A8
|
+
|N/A
 
|
 
|
 
|-
 
|-
 
|1A
 
|1A
|Collapsible cliff from GHZ
+
|Collapsing ledge from GHZ
 
|$8210
 
|$8210
|$85A8
+
|$85A0
 
|
 
|
 
*$00 - Style 1
 
*$00 - Style 1
Line 196: Line 194:
 
|Water surface from LZ
 
|Water surface from LZ
 
|$110C6
 
|$110C6
|$11178
+
|$1116C
 
|
 
|
 
|-
 
|-
 
|1C
 
|1C
|Fireball launcher from SLZ<br/>GHZ bridge stump
+
|Zone Scenery object
 
|$87CA
 
|$87CA
|$8858
+
|$7934
 
|
 
|
*$00 - Fireball launcher
+
*$00 - Fireball launcher (SLZ)
*$03 - Bridge stump
+
*$03 - Bridge stump (GHZ)
 
|-
 
|-
 
|1D
 
|1D
|????
+
|Unused Switch object
 
|$885E
 
|$885E
|$891E
+
|$891C
 
|
 
|
 
|-
 
|-
Line 216: Line 214:
 
|Ballhog
 
|Ballhog
 
|$8B4C
 
|$8B4C
|$8E6E
+
|$8E62
 
|
 
|
 
|-
 
|-
Line 222: Line 220:
 
|Crabmeat
 
|Crabmeat
 
|$94F0
 
|$94F0
|$975E
+
|$9750
 
|
 
|
 
|-
 
|-
 
|20
 
|20
|Big red explosion
+
|Cannonball that Ball Hog throws
 
|$8C1C
 
|$8C1C
|????
+
|$8E62
 
|
 
|
 
|-
 
|-
Line 234: Line 232:
 
|SCORE, TIME, RINGS
 
|SCORE, TIME, RINGS
 
|$1C548
 
|$1C548
|$1C5BC
+
|$1C5B4
 
|
 
|
 
|-
 
|-
 
|22
 
|22
|Buzz bomber
+
|Buzz Bomber
 
|$97DE
 
|$97DE
|$9A42
+
|$9A36
 
|
 
|
 
|-
 
|-
Line 246: Line 244:
 
|Missile that Buzz Bomber throws
 
|Missile that Buzz Bomber throws
 
|$9932
 
|$9932
|$9B0E
+
|$9B06
 
|
 
|
 
|-
 
|-
 
|24
 
|24
|Explosion
+
|Buzz Bomber Missile's Dissolve Effect
 
|$8CF2
 
|$8CF2
|$8EAE
+
|$8EA6
 
|
 
|
 
|-
 
|-
Line 258: Line 256:
 
|Ring
 
|Ring
 
|$9B26
 
|$9B26
|$9FA2
+
|$9F92
 
|
 
|
 
|-
 
|-
Line 264: Line 262:
 
|Monitor
 
|Monitor
 
|$A118
 
|$A118
|$A5A2
+
|$A58A
 
|
 
|
 
*$00 - Blank
 
*$00 - Blank
Line 277: Line 275:
 
|-
 
|-
 
|27
 
|27
|Normal explosion
+
|Standard explosion
 
|$8D62
 
|$8D62
|????
+
|$8EC6
 
|
 
|
 
|-
 
|-
Line 285: Line 283:
 
|Freed animals
 
|Freed animals
 
|$8F22
 
|$8F22
|$946C<br/>$9484<br/>$949C<br/>
+
|
 +
*$9466 (Rabbit & Penguin)
 +
*$947E (Chicken, Seal & Flicky)
 +
*$9496 (Pig & Squirrel)
 
|
 
|
 
|-
 
|-
Line 291: Line 292:
 
|Points upon destroying
 
|Points upon destroying
 
|$9412
 
|$9412
|$94BC
+
|$94AE
 
|
 
|
 
|-
 
|-
Line 297: Line 298:
 
|One way barrier from SBZ
 
|One way barrier from SBZ
 
|$8934
 
|$8934
|$89FE
+
|$89EC
 
|
 
|
 
|-
 
|-
Line 303: Line 304:
 
|Chopper enemy
 
|Chopper enemy
 
|$AB20
 
|$AB20
|$ABCE
+
|$ABCA
 
|
 
|
 
|-
 
|-
Line 309: Line 310:
 
|Jaws enemy
 
|Jaws enemy
 
|$ABDA
 
|$ABDA
|$AC78
+
|$AC70
 
|
 
|
 
|-
 
|-
Line 315: Line 316:
 
|Burrobot enemy
 
|Burrobot enemy
 
|$ACA4
 
|$ACA4
|$AE6A
+
|$AE5C
 
|
 
|
 
|-
 
|-
Line 321: Line 322:
 
|Contents of monitor flying up from monitor being busted
 
|Contents of monitor flying up from monitor being busted
 
|$A302
 
|$A302
|????
+
|$A58A
 
|
 
|
 
|-
 
|-
Line 327: Line 328:
 
|Large platforms from MZ
 
|Large platforms from MZ
 
|$AEB8
 
|$AEB8
|$B2DA
+
|$B2D4
 
|
 
|
 
*$01 - Large oscillating platform
 
*$01 - Large oscillating platform
Line 336: Line 337:
 
|Large glassy blocks from MZ
 
|Large glassy blocks from MZ
 
|$B39E
 
|$B39E
|$B600
+
|$B5FA
 
|
 
|
 
*$01 - Oscillating block
 
*$01 - Oscillating block
Line 345: Line 346:
 
|Metal stomping blocks on chains
 
|Metal stomping blocks on chains
 
|$B67C
 
|$B67C
|$BB64
+
|$BB4E
 
|
 
|
 
*$02, $12 - Large with spikes, short chain
 
*$02, $12 - Large with spikes, short chain
Line 355: Line 356:
 
|Switch
 
|Switch
 
|$BD2E
 
|$BD2E
|$BEAC
+
|$BEA4
 
|
 
|
 
*$00-$0F: Switches 0-F
 
*$00-$0F: Switches 0-F
Line 362: Line 363:
 
|Moveable block in MZ and LZ
 
|Moveable block in MZ and LZ
 
|$BED2
 
|$BED2
|$C2EA
+
|$C2E6
 
|
 
|
 
|-
 
|-
Line 368: Line 369:
 
|Title card
 
|Title card
 
|$C306
 
|$C306
|????
+
|$C9E6
 
|
 
|
 
|-
 
|-
Line 374: Line 375:
 
|Fireball that sits on the floor (MZ)<br/>(appears when you walk on sinking platforms)
 
|Fireball that sits on the floor (MZ)<br/>(appears when you walk on sinking platforms)
 
|$B1DC
 
|$B1DC
|????
+
|$B36E
 
|
 
|
 
|-
 
|-
Line 380: Line 381:
 
|Spikes
 
|Spikes
 
|$CE28
 
|$CE28
|$CFF4
+
|$CFE8
 
|First nybble - mappings frame (0-5)<br />
 
|First nybble - mappings frame (0-5)<br />
 
Second nybble - movement type:
 
Second nybble - movement type:
Line 390: Line 391:
 
|Rings flying out from being hit
 
|Rings flying out from being hit
 
|$9CB6
 
|$9CB6
|????
+
|$9F92
 
|
 
|
 
|-
 
|-
Line 396: Line 397:
 
|Shield and invincibility stars
 
|Shield and invincibility stars
 
|$14158
 
|$14158
|$143C2
+
|$143B2
 
|
 
|
 
|-
 
|-
Line 402: Line 403:
 
|"Game over"/"Time over" sprite
 
|"Game over"/"Time over" sprite
 
|$C4B8
 
|$C4B8
|$CBAC
+
|$CBA4
 
|
 
|
 
|-
 
|-
Line 408: Line 409:
 
|End of level results screen
 
|End of level results screen
 
|$C572
 
|$C572
|????
+
|$CBD8
 
|
 
|
 
|-
 
|-
Line 414: Line 415:
 
|GHZ purple rock
 
|GHZ purple rock
 
|$D050
 
|$D050
|$D110
+
|$D10E
 
|
 
|
 
|-
 
|-
Line 420: Line 421:
 
|Breakable walls in GHZ, SLZ
 
|Breakable walls in GHZ, SLZ
 
|$D11C
 
|$D11C
|$D2BC
+
|$D2B6
 
|
 
|
 
*$00 - Left edge
 
*$00 - Left edge
Line 429: Line 430:
 
|Eggman (GHZ)
 
|Eggman (GHZ)
 
|$17700
 
|$17700
|$17D26
+
|$17D0C
 
|
 
|
 
|-
 
|-
Line 435: Line 436:
 
|Egg prison
 
|Egg prison
 
|$1AB22
 
|$1AB22
|$1AD82
+
|$1AD74
 
|
 
|
 
|-
 
|-
Line 441: Line 442:
 
|Large explosion
 
|Large explosion
 
|$8DF6
 
|$8DF6
|????
+
|$8F0C
 
|
 
|
 
|-
 
|-
Line 447: Line 448:
 
|Motobug
 
|Motobug
 
|$F61A
 
|$F61A
|$F7AE
+
|$F7A0
 
|
 
|
 
|-
 
|-
Line 453: Line 454:
 
|Springs
 
|Springs
 
|$DABE
 
|$DABE
|$DD26
+
|$DD1A
 
|
 
|
 
*$00 - Red vertical spring
 
*$00 - Red vertical spring
Line 463: Line 464:
 
|Newtron enemy (GHZ)
 
|Newtron enemy (GHZ)
 
|$DD68
 
|$DD68
|$DF58
+
|$D4F2
 
|
 
|
 
*$00 - Flies along the ground
 
*$00 - Flies along the ground
Line 471: Line 472:
 
|Roller enemy (SYZ)
 
|Roller enemy (SYZ)
 
|$DFFA
 
|$DFFA
|$E1AC
+
|$E1A2
 
|
 
|
 
|-
 
|-
Line 477: Line 478:
 
|Wall barrier from GHZ
 
|Wall barrier from GHZ
 
|$E1D4
 
|$E1D4
|$E256
+
|$E250
 
|
 
|
 
*$00 - Type 1 (shading at top)
 
*$00 - Type 1 (shading at top)
Line 486: Line 487:
 
|Spiked metal block from beta version (MZ)
 
|Spiked metal block from beta version (MZ)
 
|$B99A
 
|$B99A
|$BC6C
+
|$BC5A
 
|
 
|
 
|-
 
|-
Line 492: Line 493:
 
|Solid blocks and blocks that fall from the ceiling (MZ)
 
|Solid blocks and blocks that fall from the ceiling (MZ)
 
|$E7D0
 
|$E7D0
|$E906
+
|$E904
 
|
 
|
 
*$00 - Solid block
 
*$00 - Solid block
Line 501: Line 502:
 
|Pinball bumper (SYZ)
 
|Pinball bumper (SYZ)
 
|$E9D0
 
|$E9D0
|$EB06
+
|$EB00
 
|
 
|
 
|-
 
|-
Line 507: Line 508:
 
|Swinging ball on a chain from GHZ boss
 
|Swinging ball on a chain from GHZ boss
 
|$17AE4
 
|$17AE4
|$81B2
+
|$17DD4 (Boss Item)<br/>$7C48 (Chain link)<br/>$81AA (Ball)
 
|
 
|
 
|-
 
|-
Line 513: Line 514:
 
|Waterfall sound effect
 
|Waterfall sound effect
 
|$D0BE
 
|$D0BE
|
+
|N/A
 
|
 
|
 
|-
 
|-
Line 519: Line 520:
 
|Special stage entry from beta
 
|Special stage entry from beta
 
|$14254
 
|$14254
|$1447C
+
|$1446C
 
|
 
|
 
|-
 
|-
Line 525: Line 526:
 
|Giant ring
 
|Giant ring
 
|$9E06
 
|$9E06
|$9FDA
+
|$9FD2
 
|
 
|
 
|-
 
|-
Line 531: Line 532:
 
|Lava geyser / lava that falls from the ceiling trigger (MZ)
 
|Lava geyser / lava that falls from the ceiling trigger (MZ)
 
|$ED84
 
|$ED84
|$F272
+
|$F24A
 
|
 
|
 
*$01 - Falls from ceiling
 
*$01 - Falls from ceiling
Line 539: Line 540:
 
|Lava geyser / lava that falls from ceiling
 
|Lava geyser / lava that falls from ceiling
 
|$EE70
 
|$EE70
|????
+
|$F24A
 
|Triggered by object $4C
 
|Triggered by object $4C
 
|-
 
|-
Line 545: Line 546:
 
|Advancing wall of lava (MZ)
 
|Advancing wall of lava (MZ)
 
|$F05E
 
|$F05E
|$F538
+
|$F52E
 
|
 
|
 
|-
 
|-
 
|4F
 
|4F
 
|Blank object used for object $50
 
|Blank object used for object $50
|
+
|???
|
+
|N/A
 
|
 
|
 
|-
 
|-
Line 557: Line 558:
 
|Yadrin enemy (SYZ)
 
|Yadrin enemy (SYZ)
 
|$F83A
 
|$F83A
|$F93A
+
|$F92E
 
|
 
|
 
|-
 
|-
Line 563: Line 564:
 
|Smashable green block (MZ)
 
|Smashable green block (MZ)
 
|$FC92
 
|$FC92
|$FDD8
+
|$FDD4
 
|
 
|
 
|-
 
|-
Line 569: Line 570:
 
|Moving blocks (MZ, LZ, SBZ)
 
|Moving blocks (MZ, LZ, SBZ)
 
|$FDF8
 
|$FDF8
|$10054<br/>$100A2
+
|$1004A (MZ & SBZ)<br/>$100A0 (LZ)
 
|
 
|
 
*$01 - MZ block that moves back and forth
 
*$01 - MZ block that moves back and forth
Line 581: Line 582:
 
|Collapsing floors (MZ, SLZ, SBZ)
 
|Collapsing floors (MZ, SLZ, SBZ)
 
|$8320
 
|$8320
|$874E
+
|$8746
 
|
 
|
 
*$01 - MZ/SBZ collapsing blocks
 
*$01 - MZ/SBZ collapsing blocks
Line 589: Line 590:
 
|Invisible lava tag (MZ)
 
|Invisible lava tag (MZ)
 
|$F1B8
 
|$F1B8
|$F212
+
|$F210
 
|
 
|
 
|-
 
|-
Line 595: Line 596:
 
|Basaran enemy (MZ)
 
|Basaran enemy (MZ)
 
|$100A8
 
|$100A8
|$10246
+
|$1023E
 
|
 
|
 
|-
 
|-
Line 601: Line 602:
 
|Moving blocks (SYZ/SLZ/LZ)
 
|Moving blocks (SYZ/SLZ/LZ)
 
|$10286
 
|$10286
|$10710
+
|$10700
 
|
 
|
 
*$00 - SYZ Block
 
*$00 - SYZ Block
Line 611: Line 612:
 
|Spiked ball on a chain
 
|Spiked ball on a chain
 
|$10782
 
|$10782
|$10964
+
|$10956 (SYZ)<br/>$1095E (LZ)
 
|Subparameters are set so the first half of the nybble sets the speed (lower is faster) and the second half determines the amount of links on the chain, starting with 2 at the 3 value.
 
|Subparameters are set so the first half of the nybble sets the speed (lower is faster) and the second half determines the amount of links on the chain, starting with 2 at the 3 value.
 
|-
 
|-
Line 617: Line 618:
 
|Spikeball
 
|Spikeball
 
|$10976
 
|$10976
|????
+
|$10AA0
 
|
 
|
 
*$01 - Moves side to side
 
*$01 - Moves side to side
Line 626: Line 627:
 
|Raising platforms (SLZ)
 
|Raising platforms (SLZ)
 
|$10AD2
 
|$10AD2
|$10D4A
+
|$10D48
 
|
 
|
 
*$00 - Rises when stood on
 
*$00 - Rises when stood on
Line 637: Line 638:
 
|Platforms that move in circles (SLZ)
 
|Platforms that move in circles (SLZ)
 
|$10D5A
 
|$10D5A
|$10E84
+
|$10E82
 
|
 
|
 
*$00-03 - First through fourth platforms moving clockwise
 
*$00-03 - First through fourth platforms moving clockwise
Line 645: Line 646:
 
|Blocks that form a staircase (SLZ)
 
|Blocks that form a staircase (SLZ)
 
|$10E90
 
|$10E90
|$1103E
+
|$1103C
 
|
 
|
 
*$00 - Regular staircase
 
*$00 - Regular staircase
Line 653: Line 654:
 
|Metal girders in foreground (SLZ)
 
|Metal girders in foreground (SLZ)
 
|$11044
 
|$11044
|$11098
+
|$11096
 
|
 
|
 
|-
 
|-
Line 659: Line 660:
 
|Fans (SLZ)
 
|Fans (SLZ)
 
|$114FC
 
|$114FC
|$1161A
+
|$11610
 
|$00-$02
 
|$00-$02
 
|-
 
|-
Line 665: Line 666:
 
|Seesaws (SLZ)
 
|Seesaws (SLZ)
 
|$1163C
 
|$1163C
|$119AC<br/>$119EA
+
|$119A4 (Seesaw)<br/>$119E6 (Spikeball)
 
|
 
|
 
|-
 
|-
Line 671: Line 672:
 
|Walking bomb enemy (SLZ, SBZ)
 
|Walking bomb enemy (SLZ, SBZ)
 
|$119F6
 
|$119F6
|$11C40
+
|$11C28
 
|
 
|
 
|-
 
|-
Line 677: Line 678:
 
|Orbinaut enemy (LZ, SLZ, SBZ)
 
|Orbinaut enemy (LZ, SLZ, SBZ)
 
|$11CCE
 
|$11CCE
|$11EEC
+
|$11EE4
 
|
 
|
 
*$00 - Attacking type
 
*$00 - Attacking type
Line 685: Line 686:
 
|Blocks (LZ)
 
|Blocks (LZ)
 
|$11FD4
 
|$11FD4
|$121CA
+
|$121C2
 
|
 
|
 
*$01 - Block that falls when stood on
 
*$01 - Block that falls when stood on
Line 695: Line 696:
 
|Gargoyle head (LZ)
 
|Gargoyle head (LZ)
 
|$121E8
 
|$121E8
|$12320
+
|$12318
 
|$01-$04
 
|$01-$04
 
|-
 
|-
Line 701: Line 702:
 
|Platforms on a conveyor belt (LZ)
 
|Platforms on a conveyor belt (LZ)
 
|$1233C
 
|$1233C
|$12686
+
|$1267C
 
|
 
|
 
*$7F - Conveyor belt wheels
 
*$7F - Conveyor belt wheels
Line 709: Line 710:
 
|Bubbles (LZ)
 
|Bubbles (LZ)
 
|$126A4
 
|$126A4
|$129FA
+
|$129CC
 
|$80-82
 
|$80-82
 
|-
 
|-
Line 715: Line 716:
 
|Waterfalls (LZ)
 
|Waterfalls (LZ)
 
|$12A9E
 
|$12A9E
|$12B6C
+
|$12B54
 
|
 
|
 
*$00, $07 - Vertical water
 
*$00, $07 - Vertical water
Line 726: Line 727:
 
|Rotating disc that grabs Sonic (SBZ)
 
|Rotating disc that grabs Sonic (SBZ)
 
|$1509A
 
|$1509A
|$152B4
+
|$15292
 
|
 
|
 
*$00-$03 - Changes direction when switches 0 through 3 are pressed
 
*$00-$03 - Changes direction when switches 0 through 3 are pressed
Line 733: Line 734:
 
|Disc that you run around (SBZ)<br/>(Small object; actual disc is in level tiles)
 
|Disc that you run around (SBZ)<br/>(Small object; actual disc is in level tiles)
 
|$154E2
 
|$154E2
|$15688
+
|$15686
 
|$40
 
|$40
 
|-
 
|-
 
|68
 
|68
 
|Conveyor belts (SBZ)<br/>(Small object; actual belt is in level tiles)
 
|Conveyor belts (SBZ)<br/>(Small object; actual belt is in level tiles)
|????
+
|$1568E
|????
+
|N/A
 
|
 
|
 
*$20 - Belt going left
 
*$20 - Belt going left
Line 747: Line 748:
 
|Spinning platforms and trapdoors (SBZ)
 
|Spinning platforms and trapdoors (SBZ)
 
|$15730
 
|$15730
|$158E6<br/>$15944
+
|$158E0 (Trapdoor)<br/>$1593A (Spinning platform)
 
|
 
|
 
*$01, $02 - Trapdoor
 
*$01, $02 - Trapdoor
Line 756: Line 757:
 
|Ground and ceiling saws (SBZ)
 
|Ground and ceiling saws (SBZ)
 
|$1597C
 
|$1597C
|$15BA0
+
|$15B98
 
|
 
|
 
*$01 - Ceiling saw, moves sideways
 
*$01 - Ceiling saw, moves sideways
Line 765: Line 766:
 
|Stomper and platforms (SBZ)
 
|Stomper and platforms (SBZ)
 
|$15C12
 
|$15C12
|$15F72
+
|$15F68
 
|
 
|
 
*$13, 24, 34 - Stomper
 
*$13, 24, 34 - Stomper
Line 773: Line 774:
 
|Vanishing platforms (SBZ)
 
|Vanishing platforms (SBZ)
 
|$15FF8
 
|$15FF8
|$16132
+
|$1612A
 
|$00, $40, $80, $C0, $C6, $E6
 
|$00, $40, $80, $C0, $C6, $E6
 
|-
 
|-
 
|6D
 
|6D
|Flame thrower (SBZ)
+
|Flamethrower (SBZ)
 
|$E4E0
 
|$E4E0
|$E620
+
|$E5F4
 
|$43
 
|$43
 
|-
 
|-
Line 785: Line 786:
 
|Electrocution orbs (SBZ)
 
|Electrocution orbs (SBZ)
 
|$16146
 
|$16146
|$161EC
+
|$161E0
 
|
 
|
 
*$02, $04, $06, $08 - Various speeds, lower is faster
 
*$02, $04, $06, $08 - Various speeds, lower is faster
Line 792: Line 793:
 
|Spinning platforms that move around a conveyor belt (SBZ)
 
|Spinning platforms that move around a conveyor belt (SBZ)
 
|$1626A
 
|$1626A
|????
+
|$1593A
 
|$80-$85
 
|$80-$85
 
|-
 
|-
Line 798: Line 799:
 
|Large girder block (SBZ)
 
|Large girder block (SBZ)
 
|$1652A
 
|$1652A
|$1662A
+
|$16628
 
|
 
|
 
|-
 
|-
Line 804: Line 805:
 
|Invisible solid blocks
 
|Invisible solid blocks
 
|$1141A
 
|$1141A
|$114BC
+
|$114B6
 
|Various
 
|Various
 
|-
 
|-
Line 810: Line 811:
 
|Teleporter (SBZ)
 
|Teleporter (SBZ)
 
|$16668
 
|$16668
|????
+
|N/A
 
|$00-$08
 
|$00-$08
 
|-
 
|-
Line 816: Line 817:
 
|Eggman (MZ)
 
|Eggman (MZ)
 
|$18230
 
|$18230
|????
+
|$17D0C (Eggman)<br/>$17DD4 (Boss Item)
 
|
 
|
 
|-
 
|-
Line 822: Line 823:
 
|Lava that Eggman drops (MZ)
 
|Lava that Eggman drops (MZ)
 
|$186A4
 
|$186A4
|????
+
|$B36E
 
|
 
|
 
|-
 
|-
Line 828: Line 829:
 
|Eggman (SYZ)
 
|Eggman (SYZ)
 
|$190EE
 
|$190EE
|????
+
|$17D0C (Eggman)<br/>$17DD4 (Boss Item)
 
|
 
|
 
|-
 
|-
Line 834: Line 835:
 
|Blocks that Eggman picks up (SYZ)
 
|Blocks that Eggman picks up (SYZ)
 
|$19692
 
|$19692
|$19808
+
|$197F8
 
|
 
|
 
|-
 
|-
Line 840: Line 841:
 
|Eggman (LZ)
 
|Eggman (LZ)
 
|$17E36
 
|$17E36
|????
+
|$17D0C (Eggman)
 
|
 
|
 
|-
 
|-
Line 846: Line 847:
 
|Caterkiller enemy (MZ, SBZ)
 
|Caterkiller enemy (MZ, SBZ)
 
|$16934
 
|$16934
|$16D9E
+
|$16D6E
 
|
 
|
 
|-
 
|-
Line 852: Line 853:
 
|Lamppost
 
|Lamppost
 
|$16E2E
 
|$16E2E
|$17100
+
|$170F8
 
|$00-$09 - Posts 0 through 9
 
|$00-$09 - Posts 0 through 9
 
|-
 
|-
Line 858: Line 859:
 
|Eggman (SLZ)
 
|Eggman (SLZ)
 
|$188B8
 
|$188B8
|????
+
|$17D0C (Eggman)<br/>$17DD4 (Boss Item)
 
|
 
|
 
|-
 
|-
Line 864: Line 865:
 
|Exploding spikeys that the SLZ boss drops
 
|Exploding spikeys that the SLZ boss drops
 
|$18CCE
 
|$18CCE
|$190E2
+
|$190DE
 
|
 
|
 
|-
 
|-
Line 870: Line 871:
 
|Giant Ring Flash Effect
 
|Giant Ring Flash Effect
 
|$9ED6
 
|$9ED6
|$A084
+
|$A074
 
|
 
|
 
|-
 
|-
Line 876: Line 877:
 
|Hidden points at the end of a level
 
|Hidden points at the end of a level
 
|$1715E
 
|$1715E
|$17250
+
|$17248
 
|
 
|
 
*$01 - 1,000 points
 
*$01 - 1,000 points
Line 885: Line 886:
 
|Special stage results screen
 
|Special stage results screen
 
|$C7AE
 
|$C7AE
|????
+
|$CC9A
 
|
 
|
 
|-
 
|-
Line 891: Line 892:
 
|Chaos Emeralds from the special stage results screen
 
|Chaos Emeralds from the special stage results screen
 
|$C956
 
|$C956
|$CE02
+
|$CDF4
 
|
 
|
 
|-
 
|-
Line 897: Line 898:
 
|Continue screen
 
|Continue screen
 
|$4E42
 
|$4E42
|$5066
+
|$5056
 
|
 
|
 
|-
 
|-
Line 903: Line 904:
 
|Sonic on the continue screen
 
|Sonic on the continue screen
 
|$4F5C
 
|$4F5C
|????
+
|$5056
 
|
 
|
 
|-
 
|-
Line 909: Line 910:
 
|Eggman (SBZ2)
 
|Eggman (SBZ2)
 
|$19832
 
|$19832
|????
+
|$1AA56 (Eggman)<br/>$BEA4 (Button)
 
|
 
|
 
|-
 
|-
Line 915: Line 916:
 
|Blocks that disintegrate when Eggman presses a switch
 
|Blocks that disintegrate when Eggman presses a switch
 
|$19B60
 
|$19B60
|$19D1C
+
|$19D12
 
|
 
|
 
|-
 
|-
Line 921: Line 922:
 
|Cylinders Eggman hides in (FZ)
 
|Cylinders Eggman hides in (FZ)
 
|$1A44E
 
|$1A44E
|$1A68E
+
|$1A676
 
|
 
|
 
|-
 
|-
Line 927: Line 928:
 
|Eggman (FZ)
 
|Eggman (FZ)
 
|$19D58
 
|$19D58
|$1A3DE
+
|$17D0C (Eggman)<br/>$19A34 (SBZ Eggman)<br/>$1A3DA (Damaged Eggmobile)<br/>$1A41C (Eggmobile Legs)<br/>$1A676 (Cylinder)
 
|
 
|
 
|-
 
|-
Line 933: Line 934:
 
|Energy balls/launcher (FZ)
 
|Energy balls/launcher (FZ)
 
|$1A7DA
 
|$1A7DA
|$1AA5E<br/>$1AABC
+
|$1AA56 (Launcher)<br/>$1AAA6 (Plasma Ball)
 
|
 
|
 
|-
 
|-
Line 939: Line 940:
 
|Sonic on the ending sequence
 
|Sonic on the ending sequence
 
|$53E2
 
|$53E2
|$5690
+
|$5680
 
|
 
|
 
|-
 
|-
Line 945: Line 946:
 
|Chaos Emeralds on the ending sequence
 
|Chaos Emeralds on the ending sequence
 
|$553C
 
|$553C
|$5788
+
|$577A
 
|
 
|
 
|-
 
|-
Line 951: Line 952:
 
|"SONIC THE HEDGEHOG" text on the ending sequence
 
|"SONIC THE HEDGEHOG" text on the ending sequence
 
|$5616
 
|$5616
|$57B4
+
|$57B2
 
|
 
|
 
|-
 
|-
Line 957: Line 958:
 
|"SONIC TEAM PRESENTS" and credits
 
|"SONIC TEAM PRESENTS" and credits
 
|$17264
 
|$17264
|$172F8
+
|$172E2
 
|
 
|
 
|-
 
|-
Line 969: Line 970:
 
|Chaos Emeralds on the "TRY AGAIN" screen
 
|Chaos Emeralds on the "TRY AGAIN" screen
 
|$5AC2
 
|$5AC2
|????
+
|$577A
 
|
 
|
 
|}
 
|}
 +
==Dynamic pattern load cues==
 +
In Sonic 1, DPLCs are utilized exclusively for Sonic's sprite. Nevertheless, an understanding of the format is useful to have.
 +
 +
The format starts out with relative pointers that are one word in length and stored with a big-endian byte order.
 +
These pointers point to data signifying what to load and how much to load.
 +
The format for this is:
  
==Mappings Editing==
+
The first byte contains a count of how many entries there. Each entry follows this format:
 +
 
 +
One word is stored and is divided up into nybbles where the highest nybble stores how many tiles are to be loaded minus one.
 +
 
 +
The next three nybbles store the offset relative to the beginning of the tileset in tiles meaning to get an offset in bytes you will have to multiply this value by 32 (or shift to the left by 5).
 +
 
 +
==Mappings editing==
 
Each mapping is 5 bytes long, taking the form TTTT TTTT 0000 WWHH PCCY XAAA AAAA AAAA LLLL LLLL.
 
Each mapping is 5 bytes long, taking the form TTTT TTTT 0000 WWHH PCCY XAAA AAAA AAAA LLLL LLLL.
  
Line 987: Line 1,000:
  
 
The VRAM offset specified in an object's SST will be added to the PCCY XAAA AAAA AAAA word.
 
The VRAM offset specified in an object's SST will be added to the PCCY XAAA AAAA AAAA word.
 +
 +
==References==
 +
<references />
  
 
{{SCHGuides}}
 
{{SCHGuides}}
[[Category:Sonic Community Hacking Guide]]
 

Latest revision as of 11:31, 16 July 2020

SCHG: Sonic the Hedgehog

Object Pointer list

This is the pointer list for every object in Sonic 1, including all zone objects, unused objects, etc. The offsets for the code and mappings are based on where they are found in a clean HG disassembly. These offsets may change even in a clean disassembly, however, due to the Revision variable. Changing this to either the REV 00 or REV JP1 version can result in slightly different offsets for the code, and mappings. The offsets shown on this table reflect the REV 00 version.

NOTE: Code offsets were originally taken from the Nemesis guides, and do not all appear to be accurate. Object pointers are currently in a process of being checked and verified. Mappings offsets are currently 100% accurate, and reflect the point in the ROM where the mapping pointers start, rather than where the code for the pieces themselves start. This is also analogous to the data found in RAM at an objects obMap OST byte.

ID # Description Code Mappings Subparameters
01 Sonic $12BD8 $211E2
02 ???? $D5B2 N/A All of these point to ObjectFall, the subroutine directly after the object table; apparently a label for a null object was made but code was never added.
03 ???? $D5B2 N/A
04 ???? $D5B2 N/A
05 ???? $D5B2 N/A
06 ???? $D5B2 N/A
07 ???? $D5B2 N/A
08 LZ water splash $142F0 $145CC
09 Sonic in Special Stage $1B984 $211E2
0A Drowning countdown numbers $13C98 $129CC
0B LZ vertical pole $11206 $11322
  • $00 - Unbreakable
  • $0x - Pole breaks in xx seconds.
0C LZ Flapping doors $11346 $113F2 $0x - Door flaps open/shut in xx seconds.
0D End of level signpost $EB28 $ED38
0E Sonic on the title screen $A61C $A888
0F "PRESS START BUTTON" and "TM" from title screen $A69C $A7C4
10 Blank object $1C022 N/A
11 GHZ Bridge $7328 $7934 Subtype dictates # of logs
12 Spinning light behind glass from SYZ $E90C $E982
13 Fireball Maker (MZ/SLZ) $E296 N/A Subtype determines # of frames a fireball is spawned (30, 60, 90, 120, 150, 180)
14 Fireball from MZ/SLZ $E304 $B36E
  • $17 - Goes left to right
  • $25 - Goes top to bottom
  • $30-31, 35, 40-42 - Goes up, then comes down
  • $36 - Goes right to left
15 GHZ and MZ swinging platforms
Spiked ball on a chain (SBZ)
SLZ swinging platforms
$7952
  • $7C48 (GHZ & MZ)
  • $7C66 (SLZ)
  • $10AA0 (SBZ)
16 Spear from LZ $11F04 $11F9A
  • $00 - Horizontal spear
  • $02 - Vertical spear
17 Helix of spikes on a pole from GHZ $7CA2 $7DF8 $10
18 GHZ platforms
SLZ platforms
SYZ platforms
$7E32
  • $80FA (Unused)
  • $813C (GHZ)
  • $8188 (SYZ)
  • $819A (SLZ)
  • x0: Doesn't move
  • x1: Moves side to side
  • x2: Moves up and down
  • x3: Falls when stood on
  • x4: Falls immediately
  • x5: Moves side to side
  • x6: Moves up and down
  • x7: Rises when switch in high nybble is pressed
  • x8: Rises immediately
  • x9: Doesn't move
  • xA: Large - moves up and down
  • xB: Moves up and down slowly
  • xC: Moves up and down slowly
19 Blank object $81A8 N/A
1A Collapsing ledge from GHZ $8210 $85A0
  • $00 - Style 1
  • $01 - Style 2
1B Water surface from LZ $110C6 $1116C
1C Zone Scenery object $87CA $7934
  • $00 - Fireball launcher (SLZ)
  • $03 - Bridge stump (GHZ)
1D Unused Switch object $885E $891C
1E Ballhog $8B4C $8E62
1F Crabmeat $94F0 $9750
20 Cannonball that Ball Hog throws $8C1C $8E62
21 SCORE, TIME, RINGS $1C548 $1C5B4
22 Buzz Bomber $97DE $9A36
23 Missile that Buzz Bomber throws $9932 $9B06
24 Buzz Bomber Missile's Dissolve Effect $8CF2 $8EA6
25 Ring $9B26 $9F92
26 Monitor $A118 $A58A
  • $00 - Blank
  • $01 - Robotnik
  • $02 - 1-Up
  • $03 - Speed Up
  • $04 - Shield
  • $05 - Invincible
  • $06 - Super Ring
  • $07 - S Monitor
  • $08 - Goggles
27 Standard explosion $8D62 $8EC6
28 Freed animals $8F22
  • $9466 (Rabbit & Penguin)
  • $947E (Chicken, Seal & Flicky)
  • $9496 (Pig & Squirrel)
29 Points upon destroying $9412 $94AE
2A One way barrier from SBZ $8934 $89EC
2B Chopper enemy $AB20 $ABCA
2C Jaws enemy $ABDA $AC70
2D Burrobot enemy $ACA4 $AE5C
2E Contents of monitor flying up from monitor being busted $A302 $A58A
2F Large platforms from MZ $AEB8 $B2D4
  • $01 - Large oscillating platform
  • $15 - Platform that sinks upon being walked on
  • $20-$29 - Smaller oscillating platform
    (Speed from 0 to 9, with 0 being fastest)
30 Large glassy blocks from MZ $B39E $B5FA
  • $01 - Oscillating block
  • $04 - Block moves down when switch 0 pressed
  • $14 - Moves down when switch 1 pressed
31 Metal stomping blocks on chains $B67C $BB4E
  • $02, $12 - Large with spikes, short chain
  • $11 - Large with spikes, long chain
  • $23 - Small with metal head
  • $80-$85: Large with spikes, raises when switch 0-5 is pressed
32 Switch $BD2E $BEA4
  • $00-$0F: Switches 0-F
33 Moveable block in MZ and LZ $BED2 $C2E6
34 Title card $C306 $C9E6
35 Fireball that sits on the floor (MZ)
(appears when you walk on sinking platforms)
$B1DC $B36E
36 Spikes $CE28 $CFE8 First nybble - mappings frame (0-5)

Second nybble - movement type:

  • 0 - Still
  • 1 - Vertical
  • 2 - Horizontal
37 Rings flying out from being hit $9CB6 $9F92
38 Shield and invincibility stars $14158 $143B2
39 "Game over"/"Time over" sprite $C4B8 $CBA4
3A End of level results screen $C572 $CBD8
3B GHZ purple rock $D050 $D10E
3C Breakable walls in GHZ, SLZ $D11C $D2B6
  • $00 - Left edge
  • $01 - Main part of wall
  • $02 - Right edge
3D Eggman (GHZ) $17700 $17D0C
3E Egg prison $1AB22 $1AD74
3F Large explosion $8DF6 $8F0C
40 Motobug $F61A $F7A0
41 Springs $DABE $DD1A
  • $00 - Red vertical spring
  • $02 - Yellow vertical spring
  • $10 - Red spring facing left
  • $12 - Yellow spring facing left
42 Newtron enemy (GHZ) $DD68 $D4F2
  • $00 - Flies along the ground
  • $01 - Fires missile, then disappears
43 Roller enemy (SYZ) $DFFA $E1A2
44 Wall barrier from GHZ $E1D4 $E250
  • $00 - Type 1 (shading at top)
  • $01 - Type 2 (regular pattern)
  • $02 - Type 3 (fully shaded)
45 Spiked metal block from beta version (MZ) $B99A $BC5A
46 Solid blocks and blocks that fall from the ceiling (MZ) $E7D0 $E904
  • $00 - Solid block
  • $01 - Wobbling block, doesn't fall
  • $02 - Wobbling block, falls
47 Pinball bumper (SYZ) $E9D0 $EB00
48 Swinging ball on a chain from GHZ boss $17AE4 $17DD4 (Boss Item)
$7C48 (Chain link)
$81AA (Ball)
49 Waterfall sound effect $D0BE N/A
4A Special stage entry from beta $14254 $1446C
4B Giant ring $9E06 $9FD2
4C Lava geyser / lava that falls from the ceiling trigger (MZ) $ED84 $F24A
  • $01 - Falls from ceiling
  • Called by object $33 for use as geyser
4D Lava geyser / lava that falls from ceiling $EE70 $F24A Triggered by object $4C
4E Advancing wall of lava (MZ) $F05E $F52E
4F Blank object used for object $50 ??? N/A
50 Yadrin enemy (SYZ) $F83A $F92E
51 Smashable green block (MZ) $FC92 $FDD4
52 Moving blocks (MZ, LZ, SBZ) $FDF8 $1004A (MZ & SBZ)
$100A0 (LZ)
  • $01 - MZ block that moves back and forth
  • $02 - MZ block that moves right when stood on
  • $07 - LZ platform that appears when switch 2 is pressed
  • $28 - SBZ platform that moves up and down
  • $39 - SBZ platform that slides away
  • $41 - MZ platform that moves side to side
53 Collapsing floors (MZ, SLZ, SBZ) $8320 $8746
  • $01 - MZ/SBZ collapsing blocks
  • $81 - SLZ collapsing blocks
54 Invisible lava tag (MZ) $F1B8 $F210
55 Basaran enemy (MZ) $100A8 $1023E
56 Moving blocks (SYZ/SLZ/LZ) $10286 $10700
  • $00 - SYZ Block
  • $01, 02 - SYZ Block that moves side to side
  • $13 - SYZ Block that moves up and down
  • $58-5B - SLZ Block that moves in a circle,
    moving up in circumference
57 Spiked ball on a chain $10782 $10956 (SYZ)
$1095E (LZ)
Subparameters are set so the first half of the nybble sets the speed (lower is faster) and the second half determines the amount of links on the chain, starting with 2 at the 3 value.
58 Spikeball $10976 $10AA0
  • $01 - Moves side to side
  • $02 - Moves up and down
  • $C3 - Moves in a circle
59 Raising platforms (SLZ) $10AD2 $10D48
  • $00 - Rises when stood on
  • $01 - Rises higher when stood on
  • $03 - Falls when stood on
  • $0C - Rises diagonally when stood on
  • $8A - Series of platforms that rise and vanish
5A Platforms that move in circles (SLZ) $10D5A $10E82
  • $00-03 - First through fourth platforms moving clockwise
  • $04-07 - First through fourth platforms moving counterclockwise
5B Blocks that form a staircase (SLZ) $10E90 $1103C
  • $00 - Regular staircase
  • $02 - Staircase you need to knock down
5C Metal girders in foreground (SLZ) $11044 $11096
5D Fans (SLZ) $114FC $11610 $00-$02
5E Seesaws (SLZ) $1163C $119A4 (Seesaw)
$119E6 (Spikeball)
5F Walking bomb enemy (SLZ, SBZ) $119F6 $11C28
60 Orbinaut enemy (LZ, SLZ, SBZ) $11CCE $11EE4
  • $00 - Attacking type
  • $02 - Nonattacking type
61 Blocks (LZ) $11FD4 $121C2
  • $01 - Block that falls when stood on
  • $05 - Pushable block
  • $13 - Platform that rises
  • $30 - Block
62 Gargoyle head (LZ) $121E8 $12318 $01-$04
63 Platforms on a conveyor belt (LZ) $1233C $1267C
  • $7F - Conveyor belt wheels
  • $80-85 - Tag for small platforms
64 Bubbles (LZ) $126A4 $129CC $80-82
65 Waterfalls (LZ) $12A9E $12B54
  • $00, $07 - Vertical water
  • $02-$04, $06 - Waterfall corner
  • $08 - Diagonal water
  • $09 - Waterfall splash
  • $49 - Waterfall splash that moves up and down with water
66 Rotating disc that grabs Sonic (SBZ) $1509A $15292
  • $00-$03 - Changes direction when switches 0 through 3 are pressed
67 Disc that you run around (SBZ)
(Small object; actual disc is in level tiles)
$154E2 $15686 $40
68 Conveyor belts (SBZ)
(Small object; actual belt is in level tiles)
$1568E N/A
  • $20 - Belt going left
  • $E0 - Belt going right
69 Spinning platforms and trapdoors (SBZ) $15730 $158E0 (Trapdoor)
$1593A (Spinning platform)
  • $01, $02 - Trapdoor
  • $80-$83 - Spinning platform
  • $90-$9F - Spinning platform
6A Ground and ceiling saws (SBZ) $1597C $15B98
  • $01 - Ceiling saw, moves sideways
  • $02 - Ceiling saw, moves up and down
  • $03 - Ground saw
6B Stomper and platforms (SBZ) $15C12 $15F68
  • $13, 24, 34 - Stomper
  • $80-88 - Doors opened by switches 0-8
6C Vanishing platforms (SBZ) $15FF8 $1612A $00, $40, $80, $C0, $C6, $E6
6D Flamethrower (SBZ) $E4E0 $E5F4 $43
6E Electrocution orbs (SBZ) $16146 $161E0
  • $02, $04, $06, $08 - Various speeds, lower is faster
6F Spinning platforms that move around a conveyor belt (SBZ) $1626A $1593A $80-$85
70 Large girder block (SBZ) $1652A $16628
71 Invisible solid blocks $1141A $114B6 Various
72 Teleporter (SBZ) $16668 N/A $00-$08
73 Eggman (MZ) $18230 $17D0C (Eggman)
$17DD4 (Boss Item)
74 Lava that Eggman drops (MZ) $186A4 $B36E
75 Eggman (SYZ) $190EE $17D0C (Eggman)
$17DD4 (Boss Item)
76 Blocks that Eggman picks up (SYZ) $19692 $197F8
77 Eggman (LZ) $17E36 $17D0C (Eggman)
78 Caterkiller enemy (MZ, SBZ) $16934 $16D6E
79 Lamppost $16E2E $170F8 $00-$09 - Posts 0 through 9
7A Eggman (SLZ) $188B8 $17D0C (Eggman)
$17DD4 (Boss Item)
7B Exploding spikeys that the SLZ boss drops $18CCE $190DE
7C Giant Ring Flash Effect $9ED6 $A074
7D Hidden points at the end of a level $1715E $17248
  • $01 - 1,000 points
  • $02 - 100 points
  • $03 - 10 points
7E Special stage results screen $C7AE $CC9A
7F Chaos Emeralds from the special stage results screen $C956 $CDF4
80 Continue screen $4E42 $5056
81 Sonic on the continue screen $4F5C $5056
82 Eggman (SBZ2) $19832 $1AA56 (Eggman)
$BEA4 (Button)
83 Blocks that disintegrate when Eggman presses a switch $19B60 $19D12
84 Cylinders Eggman hides in (FZ) $1A44E $1A676
85 Eggman (FZ) $19D58 $17D0C (Eggman)
$19A34 (SBZ Eggman)
$1A3DA (Damaged Eggmobile)
$1A41C (Eggmobile Legs)
$1A676 (Cylinder)
86 Energy balls/launcher (FZ) $1A7DA $1AA56 (Launcher)
$1AAA6 (Plasma Ball)
87 Sonic on the ending sequence $53E2 $5680
88 Chaos Emeralds on the ending sequence $553C $577A
89 "SONIC THE HEDGEHOG" text on the ending sequence $5616 $57B2
8A "SONIC TEAM PRESENTS" and credits $17264 $172E2
8B Robotnik on the "TRY AGAIN" and "END" screens $59E2 $5BCC
8C Chaos Emeralds on the "TRY AGAIN" screen $5AC2 $577A

Dynamic pattern load cues

In Sonic 1, DPLCs are utilized exclusively for Sonic's sprite. Nevertheless, an understanding of the format is useful to have.

The format starts out with relative pointers that are one word in length and stored with a big-endian byte order. These pointers point to data signifying what to load and how much to load. The format for this is:

The first byte contains a count of how many entries there. Each entry follows this format:

One word is stored and is divided up into nybbles where the highest nybble stores how many tiles are to be loaded minus one.

The next three nybbles store the offset relative to the beginning of the tileset in tiles meaning to get an offset in bytes you will have to multiply this value by 32 (or shift to the left by 5).

Mappings editing

Each mapping is 5 bytes long, taking the form TTTT TTTT 0000 WWHH PCCY XAAA AAAA AAAA LLLL LLLL.

  • LLLL LLLL is the left co-ordinate of where the mapping appears.
  • TTTT TTTT is the top co-ordinate of where the mapping appears.
  • WW is the width of the mapping, in tiles minus one. So 0 means 8 pixels wide, 1 means 16 pixels wide, 2 means 24 pixels wide and 3 means 32 pixels wide.
  • HH is the height of the mapping, in the same format as the width.
  • P is the priority-flag. If P is set, the mapping will appear above everything else.
  • CC is the palette line.
  • X is the x-flip-flag. If X is set, the mapping will be flipped horizontally.
  • Y is the y-flip-flag. If Y is set, the mapping will be flipped vertically.
  • AAA AAAA AAAA is the tile index.

The VRAM offset specified in an object's SST will be added to the PCCY XAAA AAAA AAAA word.

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