SCHG:Sonic the Hedgehog 3 & Knuckles/Art Editing
From Sonic Retro
SCHG: Sonic the Hedgehog 3 & Knuckles |
---|
Main Article |
Art Editing |
Editing Art |
Object Editing |
Editing Objects |
Level Editing |
Editing Levels |
Music Editing |
Editing Music |
RAM Editing |
Editing RAM |
Sonic & Knuckles Collection |
Sonic & Knuckles Collection |
There are several different tools that can be used to edit art. SonED2 is probably the best tool to use for editing level art, and can also be used on palettes. HivePal is also a great tool for editing palettes. SonMapEd is useful for editing both art and mappings - it can extract data from either a ROM or use split binary files, and has internal compression/decompression support. Flex 2 is a more recent art and mapping editor that supports importing, exporting as well as directly editing art.
Uncompressed art locations
Offset | Description | # of blocks |
---|---|---|
Zone Independent | ||
$100000 | Sonic | 4103 |
$1200E0 | Knuckles | 4092 |
$140060 | Sonic's extra tiles used in S&K zones | 485 |
$143D00 | Tails's extra tiles used in S&K zones | 329 |
$3200E0 | Tails | 2858 |
$336620 | Tails's tails | 139 |
$345010 | Sonic snowboarding | 322 |
Nemesis Compressed art locations
![]() |
This short section needs expansion. You can help Sonic Retro by adding to it. |
Offset | Description | # of blocks |
---|---|---|
$368400 | Hydrocity Zone Miniboss | ? |
Zone Independent
Special Stage
Offset | Description | # of blocks |
---|---|---|
$AD430 | Character's shadow | 16 |
$AD472 | Get Blue Spheres text | 42 |
$AD7BC | Special Stage HUD | 18 |
Continue Screen
Offset | Description | # of blocks |
---|---|---|
$5CD66 | Character sprites | 77 |
$5D3C6 | Continue icons | 46 |
Kosinski Compressed art locations
KosinskiM Compressed art locations
Offset | Description | # of blocks |
---|---|---|
$364BF2 | Angel Island Zone Miniboss | ? |
$365260 | Angel Island Zone Boss | ? |
$1805A0 | Death Egg Zone Miniboss | ? |
$181002 | Death Egg Zone Boss (This is not for the Final Boss.) | ? |
Palette editing
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 desirable or necessary to do it in hex, and it can't hurt to know how it's done.
For palette locations, see SCHG:Sonic the Hedgehog 3 & Knuckles/Art Editing/Palette Locations. For information about the palette format, see here.
Pattern load requests
PLRs tell the game engine where to get Nemesis-compressed art data and where to put it. The format is rather simple: each PLR starts off with a one-word header, which is the number of entries to load - 1. The actual entries follow this header - each entry is one longword, which is the location in ROM of the compressed art, followed by one word, which is the location in VRAM to decompress to.
The RAM queue is $60 bytes long, meaning it has space for 16 PLRs. However, a coding error in the clearing routine means that storing a PLR in the last slot screws everything up, so effectively only 15 requests can be stored at one time. Note that the routines that load PLRs into the queue do not do any bounds checking, and it is quite easy to create a buffer overrun condition. Further, both lists seem to be moved into the queue at the same time, so even if neither one is longer than 15 requests, they can still overrun the queue and destroy the variables that are stored just beyond it. Make sure that the primary and secondary PLR lists are no more than 15 requests long.
References