Difference between revisions of "Sonic the Hedgehog 2 (Nick Arcade prototype)/Technical information"
From Sonic Retro
(Yes, but there shouldn't be 2 Object lists should there? =P) |
($A552A is Hidden Palace art) |
||
Line 209: | Line 209: | ||
|- | |- | ||
|$A552A | |$A552A | ||
− | | | + | |HPZ ledge artwork |
|- | |- | ||
|$A55EA | |$A55EA |
Revision as of 13:17, 20 April 2007
Contents
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 | HPZ ledge artwork |
$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) |
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) 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:
- 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.
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.