|
|
(132 intermediate revisions by 14 users not shown) |
Line 1: |
Line 1: |
− | {{sub-stub}} | + | __NOTOC__ |
− | SKELETON BASED ON SONIC 2 GUIDE
| + | {{stub}} |
| + | {{SCHG S1}} |
| + | This is the '''[[Sonic Community Hacking Guide]] for ''[[Sonic the Hedgehog (16-bit)|Sonic the Hedgehog]]'''''. Originally based on [[User:Nemesis|Nemesis]] and [[User:Saxman|saxman]]'s guides, this document has grown to outclass those two documents in most ways, and is now preferred over the original guides (which were written three or four years ago with limited knowledge of the game's code). This is due to the updating of those documents to give them a living, breathing nature. |
| | | |
− | [[Sonic Community Hacking Guide|BACK TO DIRECTORY PAGE]]
| + | ==Contributors== |
| + | (In alphabetical order; if you are a contributor and have worked on a specific part of the guide, feel free to note that.) |
| | | |
− | ==ROM Hacking==
| + | * [[User:Aurochs|Aurochs]] |
| + | * [[User:Hayate|Hayate]] |
| + | * [[User:Hivebrain|Hivebrain]] |
| + | * [[User:KingofHarts|KingofHarts]] |
| + | * [[User:Scarred Sun|Scarred Sun]] |
| + | * [[User:SMTP|SMTP]] |
| + | * [[User:Tweaker|Tweaker]] |
| + | * [[User:Upthorn|Upthorn]] |
| | | |
− | ===Art Editing===
| |
| | | |
− | ====Uncompressed Art Locations====
| |
− | {| border="1"
| |
− | ! Offset||Description||# of blocks
| |
− | |-
| |
− | ! colspan="3" | Zone Independent
| |
− | |-
| |
− | |$1CADA
| |
− | |Numbers used on counters in game
| |
− | |?
| |
− | |-
| |
− | |$21AFE
| |
− | |Sonic
| |
− | |?
| |
− | |-
| |
− | |$6A324
| |
− | |Giant Ring
| |
− | |?
| |
− | |-
| |
− | ! colspan="3" | Green Hill Zone
| |
− | |-
| |
− | |$66AD6
| |
− | |Waterfall tiles
| |
− | |?
| |
− | |-
| |
− | |$66CD6
| |
− | |Flower with pointy petals
| |
− | |?
| |
− | |-
| |
− | |$670D6
| |
− | |Flower with curved petals
| |
− | |?
| |
− | |-
| |
− | ! colspan="3" | Marble Zone
| |
− | |-
| |
− | |$6755A
| |
− | |Lava surface
| |
− | |?
| |
− | |-
| |
− | |$67836
| |
− | |Lava
| |
− | |?
| |
− | |-
| |
− | |$67E56
| |
− | |Flame torch against stone
| |
− | |?
| |
− | |-
| |
− | ! colspan="3" | Scrap Brain Zone
| |
− | |-
| |
− | |$68156
| |
− | |Steam in background
| |
− | |?
| |
− | |}
| |
| | | |
− | ====Compressed Art Locations - Nemesis====
| |
| | | |
− | See [[SCHG:Sonic the Hedgehog/Nemesis Compressed Art]].
| + | ==References== |
− | | + | <references /> |
− | ====Compressed Art Locations - [[Kosinski compression|Kosinski format]]====
| |
− | *'''$3DCF2''' - GHZ main level patterns
| |
− | *'''$414D4''' - LZ main level patterns
| |
− | *'''$46016''' - MZ main level patterns
| |
− | *'''$4A7FE''' - SLZ main level patterns
| |
− | *'''$510F0''' - SYZ main level patterns
| |
− | *'''$57A66''' - SBZ main level patterns
| |
− | | |
− | ====Palette Locations==== | |
− | Usually, it's not really necessary to edit a palette in hex. Palette editors give you instant feedback for each RGB value, and the palette can be easily saved as a separate binary and reimported into the ROM. However, it is sometimes desireable or necessary to do it in hex, and it can't hurt to know how it's done.
| |
− | | |
− | These are the ROM offsets of the palettes in Sonic 1, as listed by [[HivePal]]:
| |
− | {| border="1"
| |
− | ! Name||Offset
| |
− | |-
| |
− | |Sega Logo (Background)
| |
− | |$2208
| |
− | |-
| |
− | |Sega Logo (SEGA)
| |
− | |$20C0
| |
− | |-
| |
− | |Title Screen
| |
− | |$2288
| |
− | |-
| |
− | |Title Screen - Water Cycle
| |
− | |$1B66
| |
− | |-
| |
− | |Level Select
| |
− | |$2308
| |
− | |-
| |
− | |Sonic
| |
− | |$2388
| |
− | |-
| |
− | |Green Hill
| |
− | |$23A8
| |
− | |-
| |
− | |Green Hill - Water Cycle
| |
− | |$1B86
| |
− | |-
| |
− | |Labyrinth
| |
− | |$2408
| |
− | |-
| |
− | |Labyrinth - Sonic Underwater
| |
− | |$2828
| |
− | |-
| |
− | |Labyrinth - Sonic Underwater (Alt)
| |
− | |$2468
| |
− | |-
| |
− | |Labyrinth - Underwater
| |
− | |$2488
| |
− | |-
| |
− | |Labyrinth - Water Cycle
| |
− | |$1BA6
| |
− | |-
| |
− | |Labyrinth - Conveyor Cycle
| |
− | |$1BC6
| |
− | |-
| |
− | |Labyrinth - Conveyor Cycle Underwater
| |
− | |$1BD8
| |
− | |-
| |
− | |Marble
| |
− | |$24E8
| |
− | |-
| |
− | |Star Light
| |
− | |$2548
| |
− | |-
| |
− | |Star Light lights
| |
− | |$1C52
| |
− | |-
| |
− | |Spring Yard
| |
− | |$25A8
| |
− | |-
| |
− | |Spring Yard - Cycle 1
| |
− | |$1C76
| |
− | |-
| |
− | |Spring Yard - Cycle 2
| |
− | |$1C96
| |
− | |-
| |
− | |Scrap Brain Act 1
| |
− | |$2608
| |
− | |-
| |
− | |Scrap Brain Act 2/Final
| |
− | |$2668
| |
− | |-
| |
− | |Scrap Brain Act 3
| |
− | |$2748
| |
− | |-
| |
− | |Scrap Brain Act 3 - Sonic Underwater
| |
− | |$2848
| |
− | |-
| |
− | |Scrap Brain Act 3 - Sonic Underwater (Alt)
| |
− | |$27A8
| |
− | |-
| |
− | |Scrap Brain Act 3 - Underwater
| |
− | |$27C8
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 1
| |
− | |$1D0A
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 2
| |
− | |$1D1A
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 3
| |
− | |$1D2A
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 4
| |
− | |$1D3A
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 5
| |
− | |$1D46
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 6
| |
− | |$1D56
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 7
| |
− | |$1D66
| |
− | |-
| |
− | |Scrap Brain Act 1/Act 2 - Cycle 8
| |
− | |$1D86
| |
− | |-
| |
− | |Scrap Brain Act 2 - Cycle 1
| |
− | |$1D90
| |
− | |-
| |
− | |Scrap Brain Act 2 - Cycle 2
| |
− | |$1DA0
| |
− | |-
| |
− | |Scrap Brain Act 3 - Water Cycle
| |
− | |$1BEA
| |
− | |-
| |
− | |Special Stage - Sonic
| |
− | |$26C8
| |
− | |-
| |
− | |Special Stage No. 1
| |
− | |$26E8
| |
− | |-
| |
− | |Special Stage No. 2
| |
− | |$2708
| |
− | |-
| |
− | |Special Stage No. 3
| |
− | |$2728
| |
− | |-
| |
− | |Special Stage Title Card
| |
− | |$2868
| |
− | |-
| |
− | |Special Stage Cycle 1
| |
− | |$4ACA
| |
− | |-
| |
− | |Special Stage Cycle 2
| |
− | |$4B12
| |
− | |-
| |
− | |Special Stage Cycle 3
| |
− | |$4B92
| |
− | |-
| |
− | |Continue - Sonic
| |
− | |$28E8
| |
− | |-
| |
− | |Continue
| |
− | |$2908
| |
− | |-
| |
− | |Ending - Sonic
| |
− | |$2928
| |
− | |-
| |
− | |Ending
| |
− | |$2948
| |
− | |}
| |
− | | |
− | ===Object Editing===
| |
− | | |
− | ====Object Pointer List====
| |
− | | |
− | ====Mappings Editing====
| |
− | | |
− | ====Object Placement====
| |
− | | |
− | ==RAM Hacking==
| |
− | | |
− | ====Main System Memory Locations====
| |
− | | |
− | ==== Sprite Status Table ====
| |
− | The Sprite Status Table is located at RAM address $D000. Each entry is $40 bytes long. Here is a list of all the values for one entry in the SST:
| |
− | | |
− | *$00 - Object type (byte)
| |
− | *$01 - Action flags (byte)
| |
− | *$02 - VRAM offset (word)
| |
− | *$04 - Mappings offset (long)
| |
− | *$08 - X position on level (word)
| |
− | *$0A - X position on screen (word)
| |
− | *$0C - Y position on level (word)
| |
− | *$0E - Y position on screen (word)
| |
− | *$10 - Horizontal speed (word)
| |
− | *$12 - Vertical speed (word)
| |
− | *$14 - Vertical distance from middle of sprite to bottom of sprite (byte)
| |
− | *$15 - Horizontal distance from middle of sprite to bottom of sprite (byte)
| |
− | *$16 - Sprite priority (byte)
| |
− | *$17 - Width in pixels (byte)
| |
− | *$18 - Pattern number (byte)
| |
− | *$19 - Pattern counter (byte)
| |
− | *$1A - Current animation frame (byte)
| |
− | *$1B - Time until animation frame changes (byte)
| |
− | *$1C - Animation (byte)
| |
− | *$1D - Master animation (byte)
| |
− | *$1E - Collision size (byte)
| |
− | *$1F - Collision counter (byte)
| |
− | *$20 - 1st routine (byte)
| |
− | *$21 - 2nd routine (byte)
| |
− | *$22 - Angle (word)
| |
− | *$24 - Object routine counter (byte)
| |
− | *$25 - Sub-routine counter (byte)
| |
− | *$26 - Collision (word)
| |
− | *$28 - Object sub-type (byte)
| |
− | *$29-$3F - Unknown, use may depend on object type.
| |
| | | |
| {{SCHGuides}} | | {{SCHGuides}} |
− | [[Category:Sonic_Community_Hacking_Guide]] | + | [[Category:Sonic Community Hacking Guide]] |