Actions

Sonic Crackers/Technical information

From Sonic Retro

Revision as of 22:43, 28 February 2008 by Schala (talk | contribs) (new page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This guide was originally written by Hivebrain, and is used here with permission. The original guide can be found here.


ROM Contents

0   Header
200   Code
1E14   Collision array
3E14   Curve and resistance mapping
3F14   Code
3F2A   Something affecting Sonic's movement
44C4   Pallete (1) - unknown
44E4   Code
4684   Palletes (4) - unknown
4704   Code
6F62   Palletes (2) - Sega logo
6FA2   Compressed Art - Sega logo
7348   Code
749C   Palletes (2) - main menu
74DC   Code - title and menu screens
75DA   Nemesis Compressed Art - alphabet from main menu screens
78E8   Mappings - title screen
7E08   Code - field levels
7E98   Palletes (2) - Sonic & Tails; arms & rings
7ED8   Code - field levels
835C   Pallete - Rainbow Field cycling
837C   Code
83EA   Pallete - Electric Field cycling
856A   Code
8572   Pallete - Electric Field cycling
85D4   Code
8988   Palletes (2) - Sonic & Tails on field levels
89C8   Code
8D08   Palletes (8) - Techno Tower Zone
8E08   Code
90B6   Nemesis Compressed Art - borders from menu screens
90EA   Mappings - "SELECT" menu screens
93CA   Code
9C68   Palletes (2) - Speed Slider Zone
9CA8   Code
9CF0   Palletes (2) - Techno Tower Zone (unused)
9D30   Code
EDE4   Pallete - TTZ cycling
EE0C   Code
EE4C   Pallete - TTZ cycling
EE5C   Code
EEBA   Pallete - TTZ cycling
EEDA   Code
EF38   Pallete - TTZ cycling
EF58   Code
EFA4   Pallete - TTZ cycling
EFD4   Code
FDB0   Music data
15630   Unknown
30000   Uncompressed Art - Numbers and letters from the HUD
30E80   Nemesis Compressed Art - Orbs / fireballs or something (no pointer points to this item)
30EE2   Nemesis Compressed Art - SSZ 8x8 tiles
3452C   Enigma Compressed Data - SSZ 16x16 tiles
35762   Enigma Compressed Data - SSZ 128x128 tiles
39086   Enigma Compressed Data - SSZ level layout
3931E   SSZ primary collision index
3971E   SSZ secondary collision index
39B1E   Nemesis Compressed Art - SSZ 8x8 bg tiles
3A5FE   Enigma Compressed Data - SSZ 16x16 bg tiles
3A6E8   Enigma Compressed Data - SSZ 128x128 bg tiles
3A7B8   Enigma Compressed Data - SSZ bg layout
3A7CE   Nemesis Compressed Art - TTZ 8x8 tiles
3BB24   Enigma Compressed Data - TTZ 16x16 tiles
3C60A   Enigma Compressed Data - TTZ 128x128 tiles
3ED12   Enigma Compressed Data - TTZ level layout
3EEC4   TTZ primary collision index
3F2C4   TTZ secondary collision index
3F6C4   Nemesis Compressed Art - TTZ 8x8 bg tiles
409E2   Enigma Compressed Data - TTZ 16x16 bg tiles
4108C   Enigma Compressed Data - TTZ 128x128 bg tiles
4183E   Enigma Compressed Data - TTZ bg layout
41954   Uncompressed Art - splash screen
41B9C   Nemesis Compressed Art - springs
41F76   Nemesis Compressed Art - horizontal spikes
4221E   Nemesis Compressed Art - vertical spikes
42486   Uncompressed Art - animated patterns in TTZ
44946   Uncompressed Art - "COMBI" (unused)
44A66   Uncompressed Art - end-of-level splash screen? (unused)
44F66   Uncompressed Art - numbers
451E6   Uncompressed Art - exclaimation mark and minute symbol
45246   Uncompressed Art - stars and rings (some unused)
45906   Uncompressed Art - seconds symbol
45926   Palletes (2) - Rainbow Field
45966   Compressed Art (Unknown Format) - 8x8 tiles for Rainbow Field
48FE0   Mappings - Rainbow Field foreground
4B002   Mappings - Rainbow Field background
4C014   Palletes (2) - Electric Field
4C054   Compressed Art (Unknown Format) - 8x8 tiles for Electric Field
5108A   Mappings - Electric Field foreground
530AC   Mappings - Electric Field background
54460   Empty
60000   Uncompressed Art - Sonic's arms
64000   Uncompressed Art - Tails' arms
66680   Index system for frames used for Sonic's arm
667D8   Pattern load cues - Sonic's arm
66B34   Mappings - Sonic's arm
66D5C   Something to do with how Sonic's arm is connected to Sonic
66E26   Index system for frames used for Sonic
66F92   Pattern load cues - Sonic
67302   Mappings - Sonic
6777C   Index system for frames used for Tails' arm
6788C   Pattern load cues - Tails' arm
67B34   Mappings - Tails' arm
67CD2   Something to do with how Tails' arm is connected to Tails
67DD2   Index system for frames used for Tails
67FBE   Pattern load cues - Tails
6852C   Mappings - Tails
68A06   Code
68A42   Index system for frames used for Sonic on field levels
68ABA   Pattern load cues - Sonic on field levels
68BE6   Mappings - Sonic on field levels
68CFA   Code
68D36   Index system for frames used for Tails on field levels
68DC6   Pattern load cues - Tails on field levels
68EF2   Mappings - Tails on field levels
68FD6   Empty
80000   Uncompressed Art - Sonic
90000   Uncompressed Art - Sonic on field levels
98000   Uncompressed Art - Text
A0000   Uncompressed Art - Tails
B0000   Uncompressed Art - Tails on field levels
B3820   Empty or unused data until end of ROM

Savestate Contents (Speed Slider Zone)

2478   Unknown
2678   Collision Data
2E78   Unknown
3180   16x16 Tile Mappings
4938   128x128 Tile Mappings
BC38   Level Layout
C238   16x16 Background Tile Mappings
C4F8   128x128 Background Tile Mappings
C878   Background Layout
F85C   Palletes

Savestate Contents (Techno Tower Zone)

2478   Unknown
2678   Collision Data
2E78   Unknown
3180   16x16 Tile Mappings
3FD0   128x128 Tile Mappings
9B50   Level Layout
9D50   16x16 Background Tile Mappings
A748   128x128 Background Tile Mappings
B748   Background Layout
F85C   Palletes

Mappings for Title Screen, Menu and Field Levels

Each image on the game select screen is made up of 8x8 pixel tiles. The way these tiles are arranged is called mappings. Each 8x8 tile is given a two-byte value based on where it appears in the VRAM:

Sonic Crackers vram.png

Starting at 0000, so that on the title screen 0003 is a hash symbol (#). To change which pallete the tile uses, add 2000 to its value.

Pattern Load Cues for Sonic and Tails

Pattern load cues tell the game which graphics are to be loaded into the VRAM from the ROM for each frame of Sonic's sprite. Each load cue consists of ten bytes

QQQQ 9704 RRR0 D380 FFFF

QQQQ = The number of tiles that should be read from the ROM, where:

  • 1000 = 1 tile
  • 2000 = 2 tiles
  • 0001 = 10 tiles
  • 1001 = 11 tiles
  • 1002 = 21 tiles

RRR = Where to start reading tiles from in the ROM, where 000 is the first of Sonic's tiles in the ROM; 001 is the second etc. The purpose of all the other bytes is unknown.

Mappings for Sonic and Tails

Mappings define how the 8x8 tiles are arranged to make up the characters' sprites. Each mappings block consists of six bytes:

SS YY TT TT XX ZZ

SS = Size and shape of the piece of sprite, where:

  • 00 = 1 tile high, 1 tile wide
  • 01 = 2 tiles high, 1 tile wide
  • 02 = 3 tiles high, 1 tile wide
  • 03 = 4 tiles high, 1 tile wide
  • 04 = 1 tile high, 2 tiles wide
  • 0E = 3 tiles high, 4 tiles wide
  • 0F = 4 tiles high, 4 tiles wide (this is the largest possible sprite piece)

YY and XX = Position of the sprite piece.

TTTT = Which tiles from the VRAM are to be displayed on the screen. 0000 is the first tile in the VRAM, 0001 is the second etc.

ZZ = Defines whether there are additional pieces of sprite in the current frame of animation or not. 00 tells the game to assume the next mappings block is part of the same sprite frame. FF tells the game to end the current sprite frame and start a new one.

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