Difference between revisions of "Sonic the Hedgehog (16-bit)/Object Editing"
From Sonic Retro
(→Object Pointer List) |
m (grammar) |
||
(17 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{SCHG S1}} | {{SCHG S1}} | ||
− | ==Object Pointer | + | ==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. |
− | {| | + | <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.'' |
+ | {| class="prettytable" style="width: auto;" | ||
!ID # | !ID # | ||
!Description | !Description | ||
Line 12: | Line 13: | ||
|Sonic | |Sonic | ||
|$12BD8 | |$12BD8 | ||
− | |$ | + | |$211E2 |
| | | | ||
|- | |- | ||
Line 18: | 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 24: | 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 | ||
− | | | + | |$145CC |
| | | | ||
|- | |- | ||
Line 55: | Line 56: | ||
|Sonic in Special Stage | |Sonic in Special Stage | ||
|$1B984 | |$1B984 | ||
− | | | + | |$211E2 |
| | | | ||
|- | |- | ||
Line 61: | Line 62: | ||
|Drowning countdown numbers | |Drowning countdown numbers | ||
|$13C98 | |$13C98 | ||
− | |$ | + | |$129CC |
| | | | ||
|- | |- | ||
Line 67: | Line 68: | ||
|LZ vertical pole | |LZ vertical pole | ||
|$11206 | |$11206 | ||
− | |$ | + | |$11322 |
− | |||
| | | | ||
*$00 - Unbreakable | *$00 - Unbreakable | ||
− | *$ | + | *$0''x'' - Pole breaks in ''xx'' seconds. |
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|0C | |0C | ||
− | |LZ doors | + | |LZ Flapping doors |
|$11346 | |$11346 | ||
− | | | + | |$113F2 |
− | |$ | + | |$0''x'' - Door flaps open/shut in ''xx'' seconds. |
|- | |- | ||
|0D | |0D | ||
|End of level signpost | |End of level signpost | ||
|$EB28 | |$EB28 | ||
− | | | + | |$ED38 |
| | | | ||
|- | |- | ||
Line 93: | Line 88: | ||
|Sonic on the title screen | |Sonic on the title screen | ||
|$A61C | |$A61C | ||
− | | | + | |$A888 |
| | | | ||
|- | |- | ||
Line 99: | Line 94: | ||
|"PRESS START BUTTON" and "TM" from title screen | |"PRESS START BUTTON" and "TM" from title screen | ||
|$A69C | |$A69C | ||
− | | | + | |$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 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|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 | ||
− | |$ | + | |$E304 |
− | |$ | + | |$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 |
− | | $ | + | |$7952 |
− | | $ | + | | |
+ | *$7C48 (GHZ & MZ) | ||
+ | *$7C66 (SLZ) | ||
+ | *$10AA0 (SBZ) | ||
| | | | ||
|- | |- | ||
Line 149: | Line 143: | ||
|Spear from LZ | |Spear from LZ | ||
|$11F04 | |$11F04 | ||
− | |$ | + | |$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 | ||
− | |$ | + | |$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 | ||
− | |||
| | | | ||
− | *$ | + | *$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 | |19 | ||
|Blank object | |Blank object | ||
|$81A8 | |$81A8 | ||
− | | | + | |N/A |
| | | | ||
|- | |- | ||
|1A | |1A | ||
− | | | + | |Collapsing ledge from GHZ |
|$8210 | |$8210 | ||
− | |$ | + | |$85A0 |
| | | | ||
*$00 - Style 1 | *$00 - Style 1 | ||
Line 190: | Line 194: | ||
|Water surface from LZ | |Water surface from LZ | ||
|$110C6 | |$110C6 | ||
− | |$ | + | |$1116C |
| | | | ||
|- | |- | ||
|1C | |1C | ||
− | | | + | |Zone Scenery object |
|$87CA | |$87CA | ||
− | |$ | + | |$7934 |
| | | | ||
− | *$00 - Fireball launcher | + | *$00 - Fireball launcher (SLZ) |
− | *$03 - Bridge stump | + | *$03 - Bridge stump (GHZ) |
|- | |- | ||
|1D | |1D | ||
− | | | + | |Unused Switch object |
|$885E | |$885E | ||
− | |$ | + | |$891C |
| | | | ||
|- | |- | ||
Line 210: | Line 214: | ||
|Ballhog | |Ballhog | ||
|$8B4C | |$8B4C | ||
− | |$ | + | |$8E62 |
| | | | ||
|- | |- | ||
Line 216: | Line 220: | ||
|Crabmeat | |Crabmeat | ||
|$94F0 | |$94F0 | ||
− | |$ | + | |$9750 |
| | | | ||
|- | |- | ||
|20 | |20 | ||
− | | | + | |Cannonball that Ball Hog throws |
|$8C1C | |$8C1C | ||
− | | | + | |$8E62 |
| | | | ||
|- | |- | ||
Line 228: | Line 232: | ||
|SCORE, TIME, RINGS | |SCORE, TIME, RINGS | ||
|$1C548 | |$1C548 | ||
− | |$ | + | |$1C5B4 |
| | | | ||
|- | |- | ||
|22 | |22 | ||
− | |Buzz | + | |Buzz Bomber |
|$97DE | |$97DE | ||
− | |$ | + | |$9A36 |
| | | | ||
|- | |- | ||
Line 240: | Line 244: | ||
|Missile that Buzz Bomber throws | |Missile that Buzz Bomber throws | ||
|$9932 | |$9932 | ||
− | |$ | + | |$9B06 |
| | | | ||
|- | |- | ||
|24 | |24 | ||
− | | | + | |Buzz Bomber Missile's Dissolve Effect |
|$8CF2 | |$8CF2 | ||
− | |$ | + | |$8EA6 |
| | | | ||
|- | |- | ||
Line 252: | Line 256: | ||
|Ring | |Ring | ||
|$9B26 | |$9B26 | ||
− | |$ | + | |$9F92 |
| | | | ||
|- | |- | ||
Line 258: | Line 262: | ||
|Monitor | |Monitor | ||
|$A118 | |$A118 | ||
− | |$ | + | |$A58A |
| | | | ||
*$00 - Blank | *$00 - Blank | ||
Line 271: | Line 275: | ||
|- | |- | ||
|27 | |27 | ||
− | | | + | |Standard explosion |
|$8D62 | |$8D62 | ||
− | | | + | |$8EC6 |
| | | | ||
|- | |- | ||
Line 279: | Line 283: | ||
|Freed animals | |Freed animals | ||
|$8F22 | |$8F22 | ||
− | |$ | + | | |
+ | *$9466 (Rabbit & Penguin) | ||
+ | *$947E (Chicken, Seal & Flicky) | ||
+ | *$9496 (Pig & Squirrel) | ||
| | | | ||
|- | |- | ||
Line 285: | Line 292: | ||
|Points upon destroying | |Points upon destroying | ||
|$9412 | |$9412 | ||
− | |$ | + | |$94AE |
| | | | ||
|- | |- | ||
Line 291: | Line 298: | ||
|One way barrier from SBZ | |One way barrier from SBZ | ||
|$8934 | |$8934 | ||
− | |$ | + | |$89EC |
| | | | ||
|- | |- | ||
Line 297: | Line 304: | ||
|Chopper enemy | |Chopper enemy | ||
|$AB20 | |$AB20 | ||
− | |$ | + | |$ABCA |
| | | | ||
|- | |- | ||
Line 303: | Line 310: | ||
|Jaws enemy | |Jaws enemy | ||
|$ABDA | |$ABDA | ||
− | |$ | + | |$AC70 |
| | | | ||
|- | |- | ||
Line 309: | Line 316: | ||
|Burrobot enemy | |Burrobot enemy | ||
|$ACA4 | |$ACA4 | ||
− | |$ | + | |$AE5C |
| | | | ||
|- | |- | ||
Line 315: | Line 322: | ||
|Contents of monitor flying up from monitor being busted | |Contents of monitor flying up from monitor being busted | ||
|$A302 | |$A302 | ||
− | | | + | |$A58A |
| | | | ||
|- | |- | ||
Line 321: | Line 328: | ||
|Large platforms from MZ | |Large platforms from MZ | ||
|$AEB8 | |$AEB8 | ||
− | |$ | + | |$B2D4 |
| | | | ||
*$01 - Large oscillating platform | *$01 - Large oscillating platform | ||
Line 330: | Line 337: | ||
|Large glassy blocks from MZ | |Large glassy blocks from MZ | ||
|$B39E | |$B39E | ||
− | |$ | + | |$B5FA |
| | | | ||
*$01 - Oscillating block | *$01 - Oscillating block | ||
Line 339: | Line 346: | ||
|Metal stomping blocks on chains | |Metal stomping blocks on chains | ||
|$B67C | |$B67C | ||
− | |$ | + | |$BB4E |
| | | | ||
*$02, $12 - Large with spikes, short chain | *$02, $12 - Large with spikes, short chain | ||
Line 349: | Line 356: | ||
|Switch | |Switch | ||
|$BD2E | |$BD2E | ||
− | |$ | + | |$BEA4 |
| | | | ||
*$00-$0F: Switches 0-F | *$00-$0F: Switches 0-F | ||
Line 356: | Line 363: | ||
|Moveable block in MZ and LZ | |Moveable block in MZ and LZ | ||
|$BED2 | |$BED2 | ||
− | |$ | + | |$C2E6 |
| | | | ||
|- | |- | ||
Line 362: | Line 369: | ||
|Title card | |Title card | ||
|$C306 | |$C306 | ||
− | | | + | |$C9E6 |
| | | | ||
|- | |- | ||
Line 368: | 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 374: | Line 381: | ||
|Spikes | |Spikes | ||
|$CE28 | |$CE28 | ||
− | |$ | + | |$CFE8 |
− | | | + | |First nybble - mappings frame (0-5)<br /> |
− | + | Second nybble - movement type: | |
− | + | * 0 - Still | |
− | + | * 1 - Vertical | |
− | + | * 2 - Horizontal | |
− | |||
− | |||
− | * | ||
− | * | ||
− | * | ||
|- | |- | ||
|37 | |37 | ||
|Rings flying out from being hit | |Rings flying out from being hit | ||
|$9CB6 | |$9CB6 | ||
− | | | + | |$9F92 |
| | | | ||
|- | |- | ||
Line 395: | Line 397: | ||
|Shield and invincibility stars | |Shield and invincibility stars | ||
|$14158 | |$14158 | ||
− | |$ | + | |$143B2 |
| | | | ||
|- | |- | ||
Line 401: | Line 403: | ||
|"Game over"/"Time over" sprite | |"Game over"/"Time over" sprite | ||
|$C4B8 | |$C4B8 | ||
− | |$ | + | |$CBA4 |
| | | | ||
|- | |- | ||
Line 407: | Line 409: | ||
|End of level results screen | |End of level results screen | ||
|$C572 | |$C572 | ||
− | | | + | |$CBD8 |
| | | | ||
|- | |- | ||
Line 413: | Line 415: | ||
|GHZ purple rock | |GHZ purple rock | ||
|$D050 | |$D050 | ||
− | |$ | + | |$D10E |
| | | | ||
|- | |- | ||
Line 419: | Line 421: | ||
|Breakable walls in GHZ, SLZ | |Breakable walls in GHZ, SLZ | ||
|$D11C | |$D11C | ||
− | |$ | + | |$D2B6 |
| | | | ||
*$00 - Left edge | *$00 - Left edge | ||
Line 428: | Line 430: | ||
|Eggman (GHZ) | |Eggman (GHZ) | ||
|$17700 | |$17700 | ||
− | |$ | + | |$17D0C |
| | | | ||
|- | |- | ||
Line 434: | Line 436: | ||
|Egg prison | |Egg prison | ||
|$1AB22 | |$1AB22 | ||
− | |$ | + | |$1AD74 |
| | | | ||
|- | |- | ||
Line 440: | Line 442: | ||
|Large explosion | |Large explosion | ||
|$8DF6 | |$8DF6 | ||
− | | | + | |$8F0C |
| | | | ||
|- | |- | ||
Line 446: | Line 448: | ||
|Motobug | |Motobug | ||
|$F61A | |$F61A | ||
− | |$ | + | |$F7A0 |
| | | | ||
|- | |- | ||
Line 452: | Line 454: | ||
|Springs | |Springs | ||
|$DABE | |$DABE | ||
− | |$ | + | |$DD1A |
| | | | ||
*$00 - Red vertical spring | *$00 - Red vertical spring | ||
Line 462: | Line 464: | ||
|Newtron enemy (GHZ) | |Newtron enemy (GHZ) | ||
|$DD68 | |$DD68 | ||
− | |$ | + | |$D4F2 |
| | | | ||
*$00 - Flies along the ground | *$00 - Flies along the ground | ||
Line 470: | Line 472: | ||
|Roller enemy (SYZ) | |Roller enemy (SYZ) | ||
|$DFFA | |$DFFA | ||
− | |$ | + | |$E1A2 |
| | | | ||
|- | |- | ||
Line 476: | Line 478: | ||
|Wall barrier from GHZ | |Wall barrier from GHZ | ||
|$E1D4 | |$E1D4 | ||
− | |$ | + | |$E250 |
| | | | ||
*$00 - Type 1 (shading at top) | *$00 - Type 1 (shading at top) | ||
Line 485: | Line 487: | ||
|Spiked metal block from beta version (MZ) | |Spiked metal block from beta version (MZ) | ||
|$B99A | |$B99A | ||
− | |$ | + | |$BC5A |
| | | | ||
|- | |- | ||
Line 491: | Line 493: | ||
|Solid blocks and blocks that fall from the ceiling (MZ) | |Solid blocks and blocks that fall from the ceiling (MZ) | ||
|$E7D0 | |$E7D0 | ||
− | |$ | + | |$E904 |
| | | | ||
*$00 - Solid block | *$00 - Solid block | ||
Line 500: | Line 502: | ||
|Pinball bumper (SYZ) | |Pinball bumper (SYZ) | ||
|$E9D0 | |$E9D0 | ||
− | |$ | + | |$EB00 |
| | | | ||
|- | |- | ||
Line 506: | Line 508: | ||
|Swinging ball on a chain from GHZ boss | |Swinging ball on a chain from GHZ boss | ||
|$17AE4 | |$17AE4 | ||
− | |$ | + | |$17DD4 (Boss Item)<br/>$7C48 (Chain link)<br/>$81AA (Ball) |
| | | | ||
|- | |- | ||
Line 512: | Line 514: | ||
|Waterfall sound effect | |Waterfall sound effect | ||
|$D0BE | |$D0BE | ||
− | | | + | |N/A |
| | | | ||
|- | |- | ||
Line 518: | Line 520: | ||
|Special stage entry from beta | |Special stage entry from beta | ||
|$14254 | |$14254 | ||
− | |$ | + | |$1446C |
| | | | ||
|- | |- | ||
Line 524: | Line 526: | ||
|Giant ring | |Giant ring | ||
|$9E06 | |$9E06 | ||
− | |$ | + | |$9FD2 |
| | | | ||
|- | |- | ||
Line 530: | Line 532: | ||
|Lava geyser / lava that falls from the ceiling trigger (MZ) | |Lava geyser / lava that falls from the ceiling trigger (MZ) | ||
|$ED84 | |$ED84 | ||
− | |$ | + | |$F24A |
| | | | ||
*$01 - Falls from ceiling | *$01 - Falls from ceiling | ||
Line 538: | 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 544: | Line 546: | ||
|Advancing wall of lava (MZ) | |Advancing wall of lava (MZ) | ||
|$F05E | |$F05E | ||
− | |$ | + | |$F52E |
| | | | ||
|- | |- | ||
|4F | |4F | ||
|Blank object used for object $50 | |Blank object used for object $50 | ||
− | | | + | |??? |
− | | | + | |N/A |
| | | | ||
|- | |- | ||
Line 556: | Line 558: | ||
|Yadrin enemy (SYZ) | |Yadrin enemy (SYZ) | ||
|$F83A | |$F83A | ||
− | |$ | + | |$F92E |
| | | | ||
|- | |- | ||
Line 562: | Line 564: | ||
|Smashable green block (MZ) | |Smashable green block (MZ) | ||
|$FC92 | |$FC92 | ||
− | |$ | + | |$FDD4 |
| | | | ||
|- | |- | ||
Line 568: | Line 570: | ||
|Moving blocks (MZ, LZ, SBZ) | |Moving blocks (MZ, LZ, SBZ) | ||
|$FDF8 | |$FDF8 | ||
− | |$ | + | |$1004A (MZ & SBZ)<br/>$100A0 (LZ) |
| | | | ||
*$01 - MZ block that moves back and forth | *$01 - MZ block that moves back and forth | ||
Line 580: | Line 582: | ||
|Collapsing floors (MZ, SLZ, SBZ) | |Collapsing floors (MZ, SLZ, SBZ) | ||
|$8320 | |$8320 | ||
− | |$ | + | |$8746 |
| | | | ||
*$01 - MZ/SBZ collapsing blocks | *$01 - MZ/SBZ collapsing blocks | ||
Line 588: | Line 590: | ||
|Invisible lava tag (MZ) | |Invisible lava tag (MZ) | ||
|$F1B8 | |$F1B8 | ||
− | |$ | + | |$F210 |
| | | | ||
|- | |- | ||
Line 594: | Line 596: | ||
|Basaran enemy (MZ) | |Basaran enemy (MZ) | ||
|$100A8 | |$100A8 | ||
− | |$ | + | |$1023E |
| | | | ||
|- | |- | ||
Line 600: | Line 602: | ||
|Moving blocks (SYZ/SLZ/LZ) | |Moving blocks (SYZ/SLZ/LZ) | ||
|$10286 | |$10286 | ||
− | |$ | + | |$10700 |
| | | | ||
*$00 - SYZ Block | *$00 - SYZ Block | ||
Line 610: | Line 612: | ||
|Spiked ball on a chain | |Spiked ball on a chain | ||
|$10782 | |$10782 | ||
− | |$ | + | |$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 616: | Line 618: | ||
|Spikeball | |Spikeball | ||
|$10976 | |$10976 | ||
− | | | + | |$10AA0 |
| | | | ||
*$01 - Moves side to side | *$01 - Moves side to side | ||
Line 625: | Line 627: | ||
|Raising platforms (SLZ) | |Raising platforms (SLZ) | ||
|$10AD2 | |$10AD2 | ||
− | |$ | + | |$10D48 |
| | | | ||
*$00 - Rises when stood on | *$00 - Rises when stood on | ||
Line 636: | Line 638: | ||
|Platforms that move in circles (SLZ) | |Platforms that move in circles (SLZ) | ||
|$10D5A | |$10D5A | ||
− | |$ | + | |$10E82 |
| | | | ||
*$00-03 - First through fourth platforms moving clockwise | *$00-03 - First through fourth platforms moving clockwise | ||
Line 644: | Line 646: | ||
|Blocks that form a staircase (SLZ) | |Blocks that form a staircase (SLZ) | ||
|$10E90 | |$10E90 | ||
− | |$ | + | |$1103C |
| | | | ||
*$00 - Regular staircase | *$00 - Regular staircase | ||
Line 652: | Line 654: | ||
|Metal girders in foreground (SLZ) | |Metal girders in foreground (SLZ) | ||
|$11044 | |$11044 | ||
− | |$ | + | |$11096 |
| | | | ||
|- | |- | ||
Line 658: | Line 660: | ||
|Fans (SLZ) | |Fans (SLZ) | ||
|$114FC | |$114FC | ||
− | |$ | + | |$11610 |
|$00-$02 | |$00-$02 | ||
|- | |- | ||
Line 664: | Line 666: | ||
|Seesaws (SLZ) | |Seesaws (SLZ) | ||
|$1163C | |$1163C | ||
− | |$ | + | |$119A4 (Seesaw)<br/>$119E6 (Spikeball) |
| | | | ||
|- | |- | ||
Line 670: | Line 672: | ||
|Walking bomb enemy (SLZ, SBZ) | |Walking bomb enemy (SLZ, SBZ) | ||
|$119F6 | |$119F6 | ||
− | |$ | + | |$11C28 |
| | | | ||
|- | |- | ||
Line 676: | Line 678: | ||
|Orbinaut enemy (LZ, SLZ, SBZ) | |Orbinaut enemy (LZ, SLZ, SBZ) | ||
|$11CCE | |$11CCE | ||
− | |$ | + | |$11EE4 |
| | | | ||
*$00 - Attacking type | *$00 - Attacking type | ||
Line 684: | Line 686: | ||
|Blocks (LZ) | |Blocks (LZ) | ||
|$11FD4 | |$11FD4 | ||
− | |$ | + | |$121C2 |
| | | | ||
*$01 - Block that falls when stood on | *$01 - Block that falls when stood on | ||
Line 694: | Line 696: | ||
|Gargoyle head (LZ) | |Gargoyle head (LZ) | ||
|$121E8 | |$121E8 | ||
− | |$ | + | |$12318 |
|$01-$04 | |$01-$04 | ||
|- | |- | ||
Line 700: | Line 702: | ||
|Platforms on a conveyor belt (LZ) | |Platforms on a conveyor belt (LZ) | ||
|$1233C | |$1233C | ||
− | |$ | + | |$1267C |
| | | | ||
*$7F - Conveyor belt wheels | *$7F - Conveyor belt wheels | ||
Line 708: | Line 710: | ||
|Bubbles (LZ) | |Bubbles (LZ) | ||
|$126A4 | |$126A4 | ||
− | |$ | + | |$129CC |
|$80-82 | |$80-82 | ||
|- | |- | ||
Line 714: | Line 716: | ||
|Waterfalls (LZ) | |Waterfalls (LZ) | ||
|$12A9E | |$12A9E | ||
− | |$ | + | |$12B54 |
| | | | ||
*$00, $07 - Vertical water | *$00, $07 - Vertical water | ||
Line 725: | Line 727: | ||
|Rotating disc that grabs Sonic (SBZ) | |Rotating disc that grabs Sonic (SBZ) | ||
|$1509A | |$1509A | ||
− | |$ | + | |$15292 |
| | | | ||
*$00-$03 - Changes direction when switches 0 through 3 are pressed | *$00-$03 - Changes direction when switches 0 through 3 are pressed | ||
Line 732: | 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 | ||
− | |$ | + | |$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 746: | Line 748: | ||
|Spinning platforms and trapdoors (SBZ) | |Spinning platforms and trapdoors (SBZ) | ||
|$15730 | |$15730 | ||
− | |$ | + | |$158E0 (Trapdoor)<br/>$1593A (Spinning platform) |
| | | | ||
*$01, $02 - Trapdoor | *$01, $02 - Trapdoor | ||
Line 755: | Line 757: | ||
|Ground and ceiling saws (SBZ) | |Ground and ceiling saws (SBZ) | ||
|$1597C | |$1597C | ||
− | |$ | + | |$15B98 |
| | | | ||
*$01 - Ceiling saw, moves sideways | *$01 - Ceiling saw, moves sideways | ||
Line 764: | Line 766: | ||
|Stomper and platforms (SBZ) | |Stomper and platforms (SBZ) | ||
|$15C12 | |$15C12 | ||
− | |$ | + | |$15F68 |
| | | | ||
*$13, 24, 34 - Stomper | *$13, 24, 34 - Stomper | ||
Line 772: | Line 774: | ||
|Vanishing platforms (SBZ) | |Vanishing platforms (SBZ) | ||
|$15FF8 | |$15FF8 | ||
− | |$ | + | |$1612A |
|$00, $40, $80, $C0, $C6, $E6 | |$00, $40, $80, $C0, $C6, $E6 | ||
|- | |- | ||
|6D | |6D | ||
− | | | + | |Flamethrower (SBZ) |
|$E4E0 | |$E4E0 | ||
− | |$ | + | |$E5F4 |
|$43 | |$43 | ||
|- | |- | ||
Line 784: | Line 786: | ||
|Electrocution orbs (SBZ) | |Electrocution orbs (SBZ) | ||
|$16146 | |$16146 | ||
− | |$ | + | |$161E0 |
| | | | ||
*$02, $04, $06, $08 - Various speeds, lower is faster | *$02, $04, $06, $08 - Various speeds, lower is faster | ||
Line 791: | 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 797: | Line 799: | ||
|Large girder block (SBZ) | |Large girder block (SBZ) | ||
|$1652A | |$1652A | ||
− | |$ | + | |$16628 |
| | | | ||
|- | |- | ||
Line 803: | Line 805: | ||
|Invisible solid blocks | |Invisible solid blocks | ||
|$1141A | |$1141A | ||
− | |$ | + | |$114B6 |
|Various | |Various | ||
|- | |- | ||
Line 809: | Line 811: | ||
|Teleporter (SBZ) | |Teleporter (SBZ) | ||
|$16668 | |$16668 | ||
− | | | + | |N/A |
|$00-$08 | |$00-$08 | ||
|- | |- | ||
Line 815: | Line 817: | ||
|Eggman (MZ) | |Eggman (MZ) | ||
|$18230 | |$18230 | ||
− | | | + | |$17D0C (Eggman)<br/>$17DD4 (Boss Item) |
| | | | ||
|- | |- | ||
Line 821: | Line 823: | ||
|Lava that Eggman drops (MZ) | |Lava that Eggman drops (MZ) | ||
|$186A4 | |$186A4 | ||
− | | | + | |$B36E |
| | | | ||
|- | |- | ||
Line 827: | Line 829: | ||
|Eggman (SYZ) | |Eggman (SYZ) | ||
|$190EE | |$190EE | ||
− | | | + | |$17D0C (Eggman)<br/>$17DD4 (Boss Item) |
| | | | ||
|- | |- | ||
Line 833: | Line 835: | ||
|Blocks that Eggman picks up (SYZ) | |Blocks that Eggman picks up (SYZ) | ||
|$19692 | |$19692 | ||
− | |$ | + | |$197F8 |
| | | | ||
|- | |- | ||
Line 839: | Line 841: | ||
|Eggman (LZ) | |Eggman (LZ) | ||
|$17E36 | |$17E36 | ||
− | | | + | |$17D0C (Eggman) |
| | | | ||
|- | |- | ||
Line 845: | Line 847: | ||
|Caterkiller enemy (MZ, SBZ) | |Caterkiller enemy (MZ, SBZ) | ||
|$16934 | |$16934 | ||
− | |$ | + | |$16D6E |
| | | | ||
|- | |- | ||
Line 851: | Line 853: | ||
|Lamppost | |Lamppost | ||
|$16E2E | |$16E2E | ||
− | |$ | + | |$170F8 |
|$00-$09 - Posts 0 through 9 | |$00-$09 - Posts 0 through 9 | ||
|- | |- | ||
Line 857: | Line 859: | ||
|Eggman (SLZ) | |Eggman (SLZ) | ||
|$188B8 | |$188B8 | ||
− | | | + | |$17D0C (Eggman)<br/>$17DD4 (Boss Item) |
| | | | ||
|- | |- | ||
Line 863: | Line 865: | ||
|Exploding spikeys that the SLZ boss drops | |Exploding spikeys that the SLZ boss drops | ||
|$18CCE | |$18CCE | ||
− | |$ | + | |$190DE |
| | | | ||
|- | |- | ||
|7C | |7C | ||
− | | | + | |Giant Ring Flash Effect |
|$9ED6 | |$9ED6 | ||
− | |$ | + | |$A074 |
| | | | ||
|- | |- | ||
Line 875: | Line 877: | ||
|Hidden points at the end of a level | |Hidden points at the end of a level | ||
|$1715E | |$1715E | ||
− | |$ | + | |$17248 |
| | | | ||
*$01 - 1,000 points | *$01 - 1,000 points | ||
Line 884: | Line 886: | ||
|Special stage results screen | |Special stage results screen | ||
|$C7AE | |$C7AE | ||
− | | | + | |$CC9A |
| | | | ||
|- | |- | ||
Line 890: | Line 892: | ||
|Chaos Emeralds from the special stage results screen | |Chaos Emeralds from the special stage results screen | ||
|$C956 | |$C956 | ||
− | |$ | + | |$CDF4 |
| | | | ||
|- | |- | ||
Line 896: | Line 898: | ||
|Continue screen | |Continue screen | ||
|$4E42 | |$4E42 | ||
− | |$ | + | |$5056 |
| | | | ||
|- | |- | ||
Line 902: | Line 904: | ||
|Sonic on the continue screen | |Sonic on the continue screen | ||
|$4F5C | |$4F5C | ||
− | | | + | |$5056 |
| | | | ||
|- | |- | ||
Line 908: | Line 910: | ||
|Eggman (SBZ2) | |Eggman (SBZ2) | ||
|$19832 | |$19832 | ||
− | | | + | |$1AA56 (Eggman)<br/>$BEA4 (Button) |
| | | | ||
|- | |- | ||
Line 914: | Line 916: | ||
|Blocks that disintegrate when Eggman presses a switch | |Blocks that disintegrate when Eggman presses a switch | ||
|$19B60 | |$19B60 | ||
− | |$ | + | |$19D12 |
| | | | ||
|- | |- | ||
Line 920: | Line 922: | ||
|Cylinders Eggman hides in (FZ) | |Cylinders Eggman hides in (FZ) | ||
|$1A44E | |$1A44E | ||
− | |$ | + | |$1A676 |
| | | | ||
|- | |- | ||
Line 926: | Line 928: | ||
|Eggman (FZ) | |Eggman (FZ) | ||
|$19D58 | |$19D58 | ||
− | |$ | + | |$17D0C (Eggman)<br/>$19A34 (SBZ Eggman)<br/>$1A3DA (Damaged Eggmobile)<br/>$1A41C (Eggmobile Legs)<br/>$1A676 (Cylinder) |
| | | | ||
|- | |- | ||
Line 932: | Line 934: | ||
|Energy balls/launcher (FZ) | |Energy balls/launcher (FZ) | ||
|$1A7DA | |$1A7DA | ||
− | |$ | + | |$1AA56 (Launcher)<br/>$1AAA6 (Plasma Ball) |
| | | | ||
|- | |- | ||
Line 938: | Line 940: | ||
|Sonic on the ending sequence | |Sonic on the ending sequence | ||
|$53E2 | |$53E2 | ||
− | |$ | + | |$5680 |
| | | | ||
|- | |- | ||
Line 944: | Line 946: | ||
|Chaos Emeralds on the ending sequence | |Chaos Emeralds on the ending sequence | ||
|$553C | |$553C | ||
− | |$ | + | |$577A |
| | | | ||
|- | |- | ||
Line 950: | Line 952: | ||
|"SONIC THE HEDGEHOG" text on the ending sequence | |"SONIC THE HEDGEHOG" text on the ending sequence | ||
|$5616 | |$5616 | ||
− | |$ | + | |$57B2 |
| | | | ||
|- | |- | ||
Line 956: | Line 958: | ||
|"SONIC TEAM PRESENTS" and credits | |"SONIC TEAM PRESENTS" and credits | ||
|$17264 | |$17264 | ||
− | |$ | + | |$172E2 |
| | | | ||
|- | |- | ||
Line 968: | 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 | + | 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 986: | 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}} | ||
− |
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 |
|
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 |
|
15 | GHZ and MZ swinging platforms Spiked ball on a chain (SBZ) SLZ swinging platforms |
$7952 |
|
|
16 | Spear from LZ | $11F04 | $11F9A |
|
17 | Helix of spikes on a pole from GHZ | $7CA2 | $7DF8 | $10 |
18 | GHZ platforms SLZ platforms SYZ platforms |
$7E32 |
|
|
19 | Blank object | $81A8 | N/A | |
1A | Collapsing ledge from GHZ | $8210 | $85A0 |
|
1B | Water surface from LZ | $110C6 | $1116C | |
1C | Zone Scenery object | $87CA | $7934 |
|
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 |
|
27 | Standard explosion | $8D62 | $8EC6 | |
28 | Freed animals | $8F22 |
|
|
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 |
|
30 | Large glassy blocks from MZ | $B39E | $B5FA |
|
31 | Metal stomping blocks on chains | $B67C | $BB4E |
|
32 | Switch | $BD2E | $BEA4 |
|
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:
|
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 |
|
3D | Eggman (GHZ) | $17700 | $17D0C | |
3E | Egg prison | $1AB22 | $1AD74 | |
3F | Large explosion | $8DF6 | $8F0C | |
40 | Motobug | $F61A | $F7A0 | |
41 | Springs | $DABE | $DD1A |
|
42 | Newtron enemy (GHZ) | $DD68 | $D4F2 |
|
43 | Roller enemy (SYZ) | $DFFA | $E1A2 | |
44 | Wall barrier from GHZ | $E1D4 | $E250 |
|
45 | Spiked metal block from beta version (MZ) | $B99A | $BC5A | |
46 | Solid blocks and blocks that fall from the ceiling (MZ) | $E7D0 | $E904 |
|
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 |
|
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) |
|
53 | Collapsing floors (MZ, SLZ, SBZ) | $8320 | $8746 |
|
54 | Invisible lava tag (MZ) | $F1B8 | $F210 | |
55 | Basaran enemy (MZ) | $100A8 | $1023E | |
56 | Moving blocks (SYZ/SLZ/LZ) | $10286 | $10700 |
|
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 |
|
59 | Raising platforms (SLZ) | $10AD2 | $10D48 |
|
5A | Platforms that move in circles (SLZ) | $10D5A | $10E82 |
|
5B | Blocks that form a staircase (SLZ) | $10E90 | $1103C |
|
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 |
|
61 | Blocks (LZ) | $11FD4 | $121C2 |
|
62 | Gargoyle head (LZ) | $121E8 | $12318 | $01-$04 |
63 | Platforms on a conveyor belt (LZ) | $1233C | $1267C |
|
64 | Bubbles (LZ) | $126A4 | $129CC | $80-82 |
65 | Waterfalls (LZ) | $12A9E | $12B54 |
|
66 | Rotating disc that grabs Sonic (SBZ) | $1509A | $15292 |
|
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 |
|
69 | Spinning platforms and trapdoors (SBZ) | $15730 | $158E0 (Trapdoor) $1593A (Spinning platform) |
|
6A | Ground and ceiling saws (SBZ) | $1597C | $15B98 |
|
6B | Stomper and platforms (SBZ) | $15C12 | $15F68 |
|
6C | Vanishing platforms (SBZ) | $15FF8 | $1612A | $00, $40, $80, $C0, $C6, $E6 |
6D | Flamethrower (SBZ) | $E4E0 | $E5F4 | $43 |
6E | Electrocution orbs (SBZ) | $16146 | $161E0 |
|
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 |
|
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