Sonic Heroes/EXE Editing
From Sonic Retro
SCHG: Sonic Heroes |
---|
Main Article |
Mechanic Editing |
DOL Editing |
Model Editing |
Collision Format Model Format |
Level Editing |
Camera Editing |
Particle Editing |
Particle Editing |
Sound Editing |
Music List |
SCHG How-Tos |
Custom Object Material Effect Tutorial |
The main EXE of the PC game is Tsonic_win.exe. The EXE is little endian. The pointer key is 0x400000; to find where a pointer points to, you must subtract that from its value.
Contents
Mission Tasks
The codes check the requirements for completion in-order to clear a mission such as collecting rings in Team Rose's extra missions. Different codes are scattered throughout the EXE in a number of code sections.
Time Challenges
The entry of each time limit missions start at 0x3C6A68 and the Chaotix section starts at 0x3C6AD8. These set how many minutes the player must qualify to complete the mission.
Timed Mission Entry:
00 00 00 00 00 00 00 00
Offset | Description |
---|---|
0x00 | Level ID |
0x04 | Assigned Team ID |
0x05 | Number of Minutes |
List of Missions:
Address (EXE) | Address (RAM) | Level | Team ID | Default No. of Minutes |
---|---|---|---|---|
3C6A68 | 7C6A68 | Seaside Hill | Team Sonic | 05 |
3C6A70 | 7C6A70 | Ocean Palace | Team Sonic | 05 |
3C6A78 | 7C6A78 | Grand Metropolis | Team Sonic | 05 |
3C6A80 | 7C6A80 | Power Plant | Team Sonic | 09 |
3C6A88 | 7C6A88 | Casino Park | Team Sonic | 05 |
3C6A90 | 7C6A90 | BINGO Highway | Team Sonic | 06 |
3C6A98 | 7C6A98 | Rail Canyon | Team Sonic | 05 |
3C6AA0 | 7C6AA0 | Bullet Station | Team Sonic | 06 |
3C6AA8 | 7C6AA8 | Frog Forest | Team Sonic | 05 |
3C6AB0 | 7C6AB0 | Lost Jungle | Team Sonic | 06 |
3C6AB8 | 7C6AB8 | Hang Castle | Team Sonic | 06 |
3C6AC0 | 7C6AC0 | Mystic Mansion | Team Sonic | 07 |
3C6AC8 | 7C6AC8 | Egg Fleet | Team Sonic | 09 |
3C6AD0 | 7C6AD0 | Final Fortress | Team Sonic | 09 |
3C6AD8 | 7C6AD8 | Grand Metropolis | Team Chaotix | 08 |
3C6AE0 | 7C6AE0 | Rail Canyon | Team Chaotix | 06 |
3C6AE8 | 7C6AE8 | Rail Canyon (Team Chaotix version) | Team Chaotix | 06 |
3C6AF0 | 7C6AF0 | Frog Forest | Team Chaotix | 04 |
Note: The maximum valid amount of minutes is 128 (80 in hexadecimal), any value above 0x80 will immediately trigger a "Time Up" state after entering the level with the time challenge mission in place.
Team Dark Robot Challenge
This checks for how many robots that need to be destroyed before completing the mission using Team Dark. The default value to how many robots that should be destroyed is 100 (64 in hexadecimal). The value to that code is located at 0x1A9993 and for display is at 0x1A9984.
Team Rose Extra Mission
All extra missions for team rose is ring challenges which applies to all levels in the game.
Address | Default Ring Requirements | Default (dec.) |
---|---|---|
1A9E0F | C80 | 200 |
Team Chaotix Missions
These are the requirements that are set for the missions assigned to the team. This does not include time challenges, missions that only scan layouts for a number of said objects on both modes nor anything that does not have any requirements except for reaching the goal ring.
Address (Normal) | Address (Extra) | Mission | Level | Default Required Amount (hex.) | Default Required Amount (dec.) | Default Required Amount (Extra) (hex.) | Default Required Amount (Extra) (dec.) | Note(s) |
---|---|---|---|---|---|---|---|---|
4BF420 | 4BF424 | Collect Hermit Crabs | Seaside Hill | 0A | 10 | N/A (detects how many are placed) | N/A (detects how many are placed) | |
4BF428 | 4BF42C | Chao Rescue | Ocean Palace | 01 | 1 | 01 | 1 | |
4BF438 | 4BF43C | Destroy the Gold Turtles | Power Plant | 03 | 3 | 05 | 5 | |
4BF440 | 4BF444 | Ring Collection Challenge | Casino Park | C800 | 200 | F401 | 500 | Not used. The ring amount is checked by the ring check opcodes instead. |
4BF448 | 4BF44C | Casino Chip Collection | BINGO Highway | 0A | 10 | N/A (detects how many are placed) | N/A (detects how many are placed) | |
4BF458 | 4BF45C | Destroy the Capsules | Bullet Station | 1E | 30 | N/A (detects how many are placed) | N/A (detects how many are placed) | |
4BF468 | 4BF46C | Collect the Chao | Lost Jungle | 0A | 10 | N/A (detects how many are placed) | N/A (detects how many are placed) | |
4BF488 | 4BF48C | Collect Eggman Keys | Final Fortress | 05 | 5 | 0A | 10 |
These are the codes that check for how many rings you have before completing the mission in Casino Park.
Address | Mission Type | Level | Default Ring Requirements (Normal) | Default Ring Requirements (Extra) | Default (Normal) (dec.) | Default (Extra) (dec.) |
---|---|---|---|---|---|---|
1A9DE5 | Ring Collection Challenge | Casino Park | C800 | F401 | 200 | 500 |
Start/End Positions
Start Positions
List of single player start positions begins at 0x3C2FC8. Each level array has the first 4 bytes setting the level number at the first byte and five 0x1C entries for the four teams and Super Hard (although the Super Hard entry seems to be ignored, it uses Team Sonic's instead). Note that the level IDs used are not the same ones as the level and object lists, they are the ones used in RAM, for example Seaside Hill is 02
Start position entry:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Float | X Position |
0x04 | Float | Y Position |
0x08 | Float | Z Position |
0x0C | Word | Pitch (direction) |
0x14 | Byte | Mode 00: Normal 01: Running 02: Rail |
0x18 | Word | Hold time Time spent running |
Ending Positions
List of ending positions begins at 0x3C45B8. These are the places where each team does their victory animation and the results are displayed, after the mission is finished. Each level array has the first 4 bytes setting the level number at the first byte and five 0x14 entries for the four teams and Super Hard. This section has data for single player and multiplayer modes.
End position entry:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Float | X Position |
0x04 | Float | Y Position |
0x08 | Float | Z Position |
0x0C | Word | Camera pitch Angle from which the characters are seen |
0x0E | Word | ? (Always FF FF) |
0x10 | Long | Null |
Multiplayer Positions
List of multiplayer start positions begins at 0x3C5E18, after the ending positions. This section has data for the Team Battles and each multiplayer level. The entries are the same as single player start positions, but only have two position entries instead of 5, for the first and second players.
List of multiplayer "bragging" positions begins at 0x3C6380, after the multiplayer start positions. These are the positions where each team makes a comment to the other one, before the multiplayer match starts. This section only has data for each multiplayer level, not the Team Battles. The entries follow the same format as single player ending positions, with five entries.
Debug Mode
The debug mode is always hidden during gameplay, but it can be enabled by replacing the original bytes in the EXE with these in-order to display them.
Debug Type | Address (EXE) | Address (RAM) | Original Bytes | Replace With | Notes |
---|---|---|---|---|---|
General Debug | 21D35D 21D376 |
61D35D 61D376 |
89 15 48 0B A6 00 CC CC CC CC CC CC CC CC CC |
EB 17 90 90 90 90 C6 05 48 0B A6 00 00 EB E4 |
The default value for the second string below the first one to replace is 00, replace the default byte before "EB" to any other value to enable the debug interface. It will change the value for the player info which would say "1P Info" if the code string at 0x21D376 is C6 05 48 0B A6 00 01 EB E4. |
Splines (incomplete)
Splines set path data for autoloops, rails and probably other path data. The arrays for each level are located in various different places in the EXE. What is known is that each level has a list of pointers. Each pointer points to a spline header, which is defined below. Each spline header points to its list of vertices.
A search reveals there are apparently 62 autoloops and 1075 rails in the entire game. It's possible that some paths are made of multiple splines though.
Grand Metropolis pointer list starts at 0x4B5B60. There are 12 pointers in it. It's not known what points to this list yet. The headers for the splines themselves are just before this pointer list.
Header entry:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Word | Always 01 00 |
0x02 | Word | Number of vertices |
0x04 | Float | Total length of spline |
0x08 | Pointer (Long) | Pointer to first vertex of spline |
0x0C | Pointer (Long) | Type of spline 0x433970 (Autoloop) 0x4343F0 (Rail) |
Point entry:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Long | Unknown flags (speed?) |
0x04 | Float | Distance to next point Last one is 0 |
0x08 | Float | X Position |
0x0C | Float | Y Position |
0x10 | Float | Z Position |
Tutorial Mode Team Defaults
Team Sonic is the default team used for the tutorial mode, but using another team for the tutorial mode requires the following codes to be replaced by the values.
Address (EXE) | Address (RAM) | Original Bytes | Replace With |
---|---|---|---|
50383 | 450383 | 89 1D 20 69 8D 00 | EB 5F 90 90 90 90 |
503E4 | 4503E4 | CC CC CC CC CC CC CC CC CC CC CC CC | C7 05 20 69 8D 00 00 00 00 00 EB 99 |
Once you have replaced the bytes, the
C7 05 20 69 8D 00 00 00 00 00 EB 99
Offset | Type | Description |
---|---|---|
0x06 | Byte | Team ID |
Replace the 6th byte with the following IDs to use for the tutorial stage.
ID | Team |
---|---|
00 | Team Sonic |
01 | Team Dark |
02 | Team Rose |
03 | Team Chaotix |
Field of view
The EXE provides perspective views using FOV for each type of camera in every mode. This list shows where the FOV codes are located in.
Address (EXE) | Address (RAM) | Type | FOV Type | Default (hex) | Default (dec.) | FOV Change | Notes/Warnings |
---|---|---|---|---|---|---|---|
21E5AC | 61E5AC | Float | In-game Aspect Ratio | 43961D3F | 0.615574 | Horizontal | Not used. |
21E5B8 | 61E5B8 | Float | In-game Aspect Ratio | 0000803E | 0.25 | Vertical | Same as above. |
21E5CE | 61E5CE | Float | In-game Aspect Ratio | 43969D3E | 0.307787 | Horizontal | |
21E5DA | 61E5DA | Float | In-game Aspect Ratio | 43961D3F | 0.615574 | Horizontal | If the float value is higher and being used in 2 Player battle, the camera will zoom in. |
21E5E4 | 61E5E4 | Float | In-game Aspect Ratio | 0000003F | 0.5 | Vertical | Same as above. |
25811A | 65811A | Float | Global FOV | 0000803F | 1 | Tied | Values lower than 3F800000 will decrease the plane clipping resulting an un-viewable state. The higher the FOV is, the more fog is introduced. |
Story Scene/Victory FOV
These cut-scenes have codes that multiply the float values to change the camera FOV on in-game scenes and victory screens. To alter these, you will need to paste-write your own float value somewhere in the exe where there's more space and not used by it like at 0x31CFF8 for the horizontal FOV and 0x31CFFC for the vertical FOV. Before doing so, you will need to convert the desired float value from big endian to little endian on these addresses. As for the address (executed by the codes) to load the float value you placed in the EXE, you will need to add the EXE address with the value of 400000 (example: 31CFF8 + 400000 = 71CFF8). After that, convert the address array to little endian and then replace the address the code uses with the one where you place the float value from in little endian RAM address. The following addresses are the codes that load the FOV float values from.
Address (EXE) | Address (RAM) | FOV Type | Default RAM Address Array | Default (hex.) | Default (float) | FOV Change |
---|---|---|---|---|---|---|
21E532 | 61E532 | X Aspect Ratio | C89F7800 | 0000003F | 0.5 | Horizontal |
21E546 | 61E546 | Y Aspect Ratio | 10A27800 | 9DEFCF3E | 0.406124979 | Vertical |
Note: Don't forget to preview it when the game is running to ensure it's working properly and you're happy with the results you've got after altering the field of vision for the cut-scene camera. The quickest way to preview the changes is to pick a stage on the story mode selection screen that has the cut-scenes like Rail Canyon for example.
EXE defined particle settings
Almost all particles are stored in the *_ptcl.bin, but a few particle settings for other particles are only in the EXE where they are stored beyond 0x4DB60C. Each array entry is 0x18 bytes long as it follows this:
00 00 00 00 48 6E 7C 00 00 00 00 00 12 01 00 00 0C 00 00 00 FF FF FF FF
Offset(s) | Type | Description | Notes |
---|---|---|---|
0x04 | 4 Bytes | Address? | Some offsets do not have this |
0x0C | Byte | Blend Mode | |
0x0D and 0x10 | Byte | Unknown | |
0x14 | 4 Bytes | Always FF FF FF FF |
The alpha blend types used for the particles such as the ones for the Hint Ring are logical bytes. A list of blend types are defined by the source code:
Bytes | Description |
---|---|
01 | Normal Alpha |
02 | Additive Alpha |
04 | Subtractive Alpha |
11 | Normal Alpha (Hint Ring) |
12 | Additive Alpha (Hint Ring) |
14 | Subtractive Alpha (Hint Ring) |
The following particle setting entries for each EXE generated particles used in the EXE are stored in the following addresses:
Particle | Address (EXE) | Address (RAM) | Default Value (0x0C) |
---|---|---|---|
Hint Ring Circles (Subtractive Layer) | 4DB60C | 8DB60C | 14 |
Hint Ring Circles (Additive Layer) | 4DB624 | 8DB624 | 12 |
Rain Drips | 4DB648 | 8DB648 | 02 |
Sparkles | 4DB660 | 8DB660 | 02 |
Super Hard Challenge
Default Teams
The team that is always loaded on Super Hard is Team Sonic, but it can be rearranged thanks to the guide of the said subject on wikiHow. To achieve whatever team you want to use for the mode, replace the following bytes with these as shown on the table below:
Address (EXE) | Address (RAM) | Original Bytes | Replace With |
---|---|---|---|
502D9 | 4502D9 | 89 1D 20 69 8D 00 | B3 00 EB 0B 90 90 |
502E8 | 4502E8 | 8D A4 24 00 00 00 00 90 | 89 1D 20 69 8D 00 EB EF |
After doing that, there should be one byte after B3 that can be replaceable with a team ID at 0x502D9:
B3 00 EB 0B 90 90
Offset | Type | Description |
---|---|---|
0x01 | Byte | Team ID |
The default value is 00 which loads Team Sonic by default. Replace the second byte with one of the IDs below to use a different team for Super Hard:
ID | Team |
---|---|
00 | Team Sonic |
01 | Team Dark |
02 | Team Rose |
03 | Team Chaotix |
Notes: There are certain parts of each level that requires Light Dash abilities for both "Espio" and "Amy" and Triangle Jump for "Amy" to be enabled and used before using teams "Rose" and "Chaotix". Refer to this hacking guide on how to enable these movesets for the two characters in wikiHow if needed. As for Team Chaotix, some levels have tasks that are not possible to achieve in-order to beat the level. It will use the same object layout as always regardless of any team loaded and they will use their own start and end positions the same way as the regular modes.
Mode Level list
A list of level ID numbers that are loaded when using Super Hard mode starts at 0x34F1F4 and ends at 0x34F22C. Each array of the section is in 4 Bytes and the first byte of it is the level ID. When used, the game will load the levels listed in the section of the EXE for the mode.
Super Hard Level ID Entry:
00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Byte | Level ID |
A list of default levels on Super Hard are in the following offsets set in the exe. Refer to the section "EXE and RAM" in the List of Levels for a list of level ID numbers you want to replace the default hex value with. Remember that you must convert the level ID from a decimal to a hexadecimal byte to apply the level you want the game to use when it reads the level ID on the list. Also, only 1 Player levels will work after loading, 2 Player stage IDs will crash the game.
Address (EXE) | Address (RAM) | Default Byte | Default Level |
---|---|---|---|
34F1F4 | 74F1F4 | 02 | Seaside Hill |
34F1F8 | 74F1F8 | 03 | Ocean Palace |
34F1FC | 74F1FC | 04 | Grand Metropolis |
34F200 | 74F200 | 05 | Power Plant |
34F204 | 74F204 | 06 | Casino Park |
34F208 | 74F208 | 07 | BINGO Highway |
34F20C | 74F20C | 08 | Rail Canyon |
34F210 | 74F210 | 09 | Bullet Station |
34F214 | 74F214 | 0A | Frog Forest |
34F218 | 74F218 | 0B | Lost Jungle |
34F21C | 74F21C | 0C | Hang Castle |
34F220 | 74F220 | 0D | Mystic Mansion |
34F224 | 74F224 | 0E | Egg Fleet |
34F228 | 74F228 | 0F | Final Fortress |
Material Functions
Colors
The EXE provides color effects for certain objects such as the trail and tornado effects for each player.
Color RGB Entry:
00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Byte | Red |
0x01 | Byte | Green |
0x02 | Byte | Blue |
0x03 | Byte | Alpha |
Custom RGB color codes can be generated using color wheel websites like Colblinder and Colorizer. If you're happy with the color you want to use for the effects, paste write it on the offset where you found the color code at.
Barrier Hue Cycle Colors
The barrier effect changes color using the color animation codes provided in the EXE. The barrier has nine 4 byte color hex codes (which they end with after 3 bytes of color values) stored in the EXE starting at 0x4DD798 to provide a hue cycle effect for the object.
Color | Address (EXE) | Address (RAM) | Default (Hex) | Default (Dec.) |
---|---|---|---|---|
Red | 4DD798 | 8DD798 | FF 00 00 | 255 0 0 |
Orange | 4DD79C | 8DD79C | FF 80 00 | 255 128 0 |
Yellow | 4DD7A0 | 8DD7A0 | FF FF 00 | 255 255 0 |
Chartreuse | 4DD7A4 | 8DD7A4 | 80 FF 00 | 128 255 0 |
Green | 4DD7A8 | 8DD7A8 | B4 50 00 | 0 180 80 |
Cyan | 4DD7AC | 8DD7AC | 00 FF FF | 0 255 255 |
Dodger Blue | 4DD7B0 | 8DD7B0 | 00 80 FF | 0 128 255 |
Blue | 4DD7B4 | 8DD7B4 | 00 00 FF | 0 0 255 |
Magenta | 4DD7B8 | 8DD7B8 | FF 00 FF | 255 0 255 |
Character Effects
This list shows the codes to the character effects that were found in the EXE.
Character | Effect Type | Address (EXE) | Address (RAM) | Default Hex |
---|---|---|---|---|
Amy | Jump Balls | 4C72A4 | 8C72A4 | FF0060FF |
Amy | Tornado | 4DE504 | 8DE504 | FF0060FE |
Amy | Trails | 4CF6AC | 8CF6AC | 7F0030FF |
Big | Jump Balls | 381F74 | 781F74 | 8000FFFF |
Big | Trails | 4CF6B0 | 8CF6B0 | 40007FFF |
Charmy | Jump Balls | 382590 | 782590 | FF0000FF |
Charmy | Trails | 4CF6C0 | 8CF6C0 | 7F0000FF |
Cream | Jump Balls | 38258C | 78258C | FF8C60FF |
Cream | Trails | 4CF6B4 | 8CF6B4 | 7F4630FF |
Espio | Jump Balls | 4C72A8 | 8C72A8 | 00A0FFFF |
Espio | Tornado | 4DE500 | 8DE500 | 00A000FE |
Espio | Trails | 4CF6B8 | 8CF6B8 | 00507FFF |
Knuckles | Jump Balls | 381F6C | 781F6C | F0193CFF |
Knuckles | Trails | 4CF698 | 8CF698 | 780C1EFF |
Omega | Jump Balls | 381F70 | 781F70 | 6000FFFF |
Omega | Trails | 4CF6A4 | 8CF6A4 | 30007FFF |
Rouge | Jump Balls | 382588 | 782588 | FF00FFFF |
Rouge | Trails | 4CF6A8 | 8CF6A8 | 7F007FFF |
Shadow | Jump Balls | 4C72A0 | 8C72A0 | FF8000FF |
Shadow | Tornado | 4DE4FC | 8DE4FC | 000000FE |
Shadow | Trails | 4CF6A0 | 8CF6A0 | 7F4000FF |
Sonic | Jump Balls | 4C729C | 8C729C | 005AAAFF |
Sonic | Tornado | 4DE4F8 | 8DE4F8 | 005AAAFE |
Sonic | Trails | 4CF694 | 8CF694 | 002D55FF |
Tails | Jump Balls | 382584 | 782584 | FAA519FF |
Tails | Trails | 4CF69C | 8CF69C | 7D520CFF |
Vector | Jump Balls | 381F78 | 781F78 | 00A000FF |
Vector | Trails | 4CF6BC | 8CF6BC | 005000FF |
Debug Data
The EXE provides colors to a specific interface while debugging the game.
Interface type | Address (EXE) | Address (RAM) | Default (Hex) | Default (Decimal) |
---|---|---|---|---|
General Debug Text | 21F912 | 61F912 | FF CC 44 FF | 255 204 68 255 |
Team Blast Backgrounds
The entry starts at 0x4DDD48 with 4 byte color hex that end with FF. Each team blast background sides are split into four RGB hex entries for each side as it follows:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Description |
---|---|
0x00 | Top Left |
0x04 | Bottom Left |
0x08 | Top Right |
0x0C | Bottom Right |
The following RGB color entries to each four side splits for each team blast backgrounds start at the following addresses
Address (EXE) | Address (RAM) | Description |
---|---|---|
4DDD48 | 8DDD48 | Team Sonic |
4DDD58 | 8DDD58 | Team Dark |
4DDD68 | 8DDD68 | Team Rose |
4DDD78 | 8DDD78 | Team Chaotix |
Other
Colors that are stored as opcodes have little endian RGBA values which would be "BGRA" for example. Some color codes are also in float as well. A list of codes were found in the EXE:
Object | Array Type | Address (EXE) | Address (RAM) | Colors (RGBA) | Default (Hex) | Default (Decimal) | Default (Float) |
---|---|---|---|---|---|---|---|
Chaos Inferno Screen Effect (1 Player) | 4 Bytes | 1B245 1B246 1B247 1B248 |
41B245 41B246 41B247 41B248 |
Blue Green Red Alpha |
80 80 80 FF |
128 128 128 255 |
|
Chaos Inferno Screen Effect (2 Player Split-screen) | 4 Bytes | 184FB3 184FB4 184FB5 184FB6 |
584FB3 584FB4 584FB5 584FB6 |
Blue Green Red Alpha |
80 80 80 FF |
128 128 128 255 |
|
Energy Path Activation | Float | 173293 17329B 1732A3 1732AB |
573293 17329B 5732A3 5732AB |
Red Green Blue Alpha |
000080BF 000080BF 000080BF 52B87E3F |
-1 -1 -1 0.9950000048 | |
Forest Level Background | Byte Opcodes | EE464 EE469 EE46E |
4EE464 4EE469 4EE46E |
Red Green Blue |
3B 61 31 |
59 97 49 |
|
Item Balloon Ambient | Float | 7828A 78292 7829A |
47828A 478292 47829A |
Blue Green Red |
000080BF 000080BF 000080BF |
-1 -1 -1 | |
Item Balloon Ambient (Popped) | Float | 78323 7832B 78333 |
478323 47832B 478333 |
Blue Green Red |
000080BF 000080BF 000080BF |
-1 -1 -1 | |
Level Up Numbers (Fly) | 4 Bytes | 4DDCC4 4DDCC5 4DDCC6 4DDCC7 |
8DDCC4 8DDCC5 8DDCC6 8DDCC7 |
Red Green Blue Alpha |
FF E9 50 FF |
255 233 80 255 |
|
Level Up Particles (Fly) | 4 Bytes | 4DDD00 4DDD01 4DDD02 4DDD03 |
8DDD00 8DDD01 8DDD02 8DDD03 |
Red Green Blue Alpha |
FA A5 19 FF |
250 165 25 255 |
|
Level Up Numbers (Power) | 4 Bytes | 4DDCC8 4DDCC9 4DDCCA 4DDCCB |
8DDCC8 8DDCC9 8DDCCA 8DDCCB |
Red Green Blue Alpha |
FF 90 80 FF |
255 144 128 255 |
|
Level Up Particles (Power) | 4 Bytes | 4DDD04 4DDD05 4DDD06 4DDD07 |
8DDD04 8DDD05 8DDD06 8DDD07 |
Red Green Blue Alpha |
F0 19 3C FF |
240 25 60 255 |
|
Level Up Numbers (Speed) | 4 Bytes | 4DDCC0 4DDCC1 4DDCC2 4DDCC3 |
8DDCC0 8DDCC1 8DDCC2 8DDCC3 |
Red Green Blue Alpha |
50 A0 FF FF |
80 160 255 255 |
|
Level Up Particles (Speed) | 4 Bytes | 4DDCFC 4DDCFD 4DDCFE 4DDCFF |
8DDCFC 8DDCFD 8DDCFE 8DDCFF |
Red Green Blue Alpha |
00 5A AA FF |
0 90 170 255 |
|
Mission Text | 4 Bytes | 429A6 429A7 429A8 429A9 |
4429A6 4429A7 4429A8 4429A9 |
Blue Green Red Alpha |
FF FF 00 FF |
255 255 0 255 |
|
Powerup Icon | 3 Bytes | 79EF3 79EF4 79EF5 |
479EF3 479EF4 479EF5 |
Blue Green Red |
FF FF FF |
255 255 255 |
|
Ring Display (Normal) | 4 Bytes | 4DCD34 4DCD35 4DCD36 4DCD37 |
8DCD34 8DCD35 8DCD36 8DCD37 |
Red Green Blue Alpha |
255 255 255 255 |
FF FF FF FF |
|
Sonic Overdrive Screen Effect | 4 Bytes | 1B2F3 1B2F4 1B2F5 1B2F6 |
41B2F3 41B2F4 41B2F5 41B2F6 |
Blue Green Red Alpha |
A0 A0 A0 FF |
160 160 160 255 |
|
Special Stage Gauge HUD | 4 Bytes | 126363 126364 126365 126366 |
526363 526364 526365 526366 |
Blue Green Red Alpha |
FF FF FF FF |
255 255 255 255 |
|
Warp Effect Screen | 3 Bytes | 1BCA3 1BCA4 1BCA5 |
41BCA3 41BCA4 41BCA5 |
Blue Green Red |
FF FF FF |
255 255 255 |
Material Opcodes
A number of code sections contain additional material/graphic codes that are rendered via Renderware engine that provides special effects to an object such as Espio's invisibility and Thundershoot electricity effects.
Function entry:
Regular Material function:
6A 00 6A 00
Offset | Type | Description |
---|---|---|
0x00 and 0x02 | Byte | Always 6A |
0x01 | Byte | Material value |
0x03 | Byte | Material function type |
4 Byte Material function:
68 00000000
Offset | Type | Description |
---|---|---|
0x00 | Byte | Always 68 |
0x01 | 4 Bytes | Material value |
A list of material types are implemented in the EXE.
Material type parameters | Alternative Material type parameters | Hexadecimal type | Description | Parameters | Call Address | Alternative Call Address | Example(s) | Notes |
---|---|---|---|---|---|---|---|---|
01 | Byte | Null | 00 | 0024C9B0 (EXE) 0064C9B0 (RAM) |
6A 00 6A 01 | Values upon "00" will crash the game. | ||
02 (UV) 03 (U only) 04 (V only) |
Byte | UV Address Type | 01 = rwTEXTUREADDRESSWRAP 02 = rwTEXTUREADDRESSMIRROR 03 = rwTEXTUREADDRESSCLAMP 04 = rwTEXTUREADDRESSBORDER |
0024C9B0 (EXE) 0064C9B0 (RAM) |
6A 03 6A 02 6A 03 6A 03 6A 03 6A 04 |
|||
06 | 07 | Byte | Z-buffer testing | 00 = Disabled 01 = Enabled |
0024C9B0 (EXE) 0064C9B0 (RAM) |
00247980 (EXE) 00647980 (RAM) |
6A 00 6A 06 6A 00 6A 07 |
|
07 | Byte | Shading | 00 = rwSHADEMODEFLAT 01 = rwSHADEMODEGOURAUD |
0024C9B0 (EXE) 0064C9B0 (RAM) |
6A 02 6A 07 | |||
08 | 0E | Byte | Z-buffer writing | 00 = Disabled 01 = Enabled |
0024C9B0 (EXE) 0064C9B0 (RAM) |
00247980 (EXE) 00647980 (RAM) |
6A 01 6A 08 6A 01 6A 0E |
|
09 | Byte | Texture filtering | 01 = rwFILTERNEAREST 02 = rwFILTERLINEAR 03 = rwFILTERMIPNEAREST 04 = rwFILTERMIPLINEAR 05 = rwFILTERLINEARMIPNEAREST 06 = rwFILTERLINEARMIPLINEAR |
0024C9B0 (EXE) 0064C9B0 (RAM) |
6A 02 6A 09 | |||
0A & 0B | 13 & 14 | Byte | Source Blend Destination Blend |
01 = rwBLENDZERO 02 = rwBLENDONE 03 = rwBLENDSRCCOLOR 04 = rwBLENDINVSRCCOLOR 05 = rwBLENDSRCALPHA 06 = rwBLENDINVSRCALPHA 07 = rwBLENDDESTALPHA 08 = rwBLENDINVDESTALPHA 09 = rwBLENDDESTCOLOR 0A = rwBLENDINVDESTCOLOR 0B = rwBLENDSRCALPHASAT |
0024C9B0 (EXE) 0064C9B0 (RAM) |
00247980 (EXE) 00647980 (RAM) |
6A 05 6A 0A 6A 06 6A 0B 6A 05 6A 13 6A 06 6A 14 |
Models that are completely opaque will not be able to use the intended blend factors. To make any model use different alpha blending modes, change the byte in offset 0x248B1C from 74 to EB. |
0C | 1B | Byte | Vertex Alpha Enabling | 00 = Disabled 01 = Enabled |
0024C9B0 (EXE) 0064C9B0 (RAM) |
00247980 (EXE) 00647980 (RAM) |
6A 01 6A 0C | |
0E | Byte | Fog Enabling | 00 = Disabled 01 = Enabled |
0024C9B0 (EXE) 0064C9B0 (RAM) |
6A 00 6A 0E | |||
0F | Byte | Fog Color | 4 Byte RGBA Hex | 0024C9B0 (EXE) 0064C9B0 (RAM) |
68 FF FF A0 80 6A 0F | Fog colors are loaded through a code at 21E2EB (61E2EB in RAM) from the RAM Offset 0xA60BC4. | ||
10 | Byte | Fog Type | 01 = rwFOGTYPELINEAR 02 = rwFOGTYPEEXPONENTIAL 03 = rwFOGTYPEEXPONENTIAL2 |
0024C9B0 (EXE) 0064C9B0 (RAM) |
6A 01 6A 10 | |||
11 | Byte | Unknown Something related to fog? |
0024C9B0 (EXE) 0064C9B0 (RAM) |
|||||
14 | 16 | Byte | Cull Mode | 01 = None 02 = Back 03 = Front |
0024C9B0 (EXE) 0064C9B0 (RAM) |
00247980 (EXE) 00647980 (RAM) |
6A 02 6A 14 6A 02 6A 16 |
|
18 | Byte | Alpha Testing Reference | Range in byte:00-FF 4 Byte Range: 00000000-FF000000 |
00247980 (EXE) 00647980 (RAM) |
6A 05 6A 18 68 C8000000 6A 18 |
|||
19 | Byte | Alpha Testing | 01 = rwALPHATESTFUNCTIONNEVER 02 = rwALPHATESTFUNCTIONLESS 03 = rwALPHATESTFUNCTIONEQUAL 04 = rwALPHATESTFUNCTIONLESSEQUAL 05 = rwALPHATESTFUNCTIONGREATER 06 = rwALPHATESTFUNCTIONNOTEQUAL 07 = rwALPHATESTFUNCTIONGREATEREQUAL 08 = rwALPHATESTFUNCTIONALWAYS |
00247980 (EXE) 00647980 (RAM) |
6A 08 6A 19 | |||
AB000000 | 4 Bytes | Blend Equation | 01 = Add 02 = Subtract 03 = Reverse Subtract 04 = Min 05 = Max |
00247980 (EXE) 00647980 (RAM) |
6A 01 68 AB000000 |
Known Offsets
A list shows offsets for special material effects that were discovered in the EXE.
Addresses (EXE) | Addresses (RAM) | Materials | Default Parameter Values | Targeting Object | Notes |
---|---|---|---|---|---|
2F39 2F45 2F4E 2F57 2F63 2F71 2F75 2F86 2F8A 2F96 2FB7 |
402F39 402F45 402F4E 402F57 402F63 402F71 402F75 402F86 402F8A 402F96 402FB7 |
Fog Enabling #1 Z-testing Z-buffering Shade Mode Source Blend Destination Blend #1 Destination Blend #2 Culling #1 Culling #2 Alpha Testing Fog Enabling #2 |
00 01 01 02 05 02 06 01 02 08 00 |
Z-buffering Material Flag Section | |
30A9 | 4030A9 | Fog Enabling #1 | 00 | Alpha Testing Material Flag Section | |
3269 3275 327E 3287 3293 32A6 32AA 32B6 32C2 32CF 32D3 32DF 32EB 32FC 3300 3321 |
403269 403275 40327E 403287 403293 4032A6 4032AA 4032B6 4032C2 4032CF 4032D3 4032DF 4032EB 4032FC 403300 403321 |
Fog Enabling #1 Z-testing Z-buffering Texture Filtering Source Blend (Un-conditional) Dest. Blend #1 (Un-conditional) Dest. Blend #2 (Un-conditional) Vertex Alpha Enabling Source Blend Destination Blend #1 Destination Blend #2 Blend Equation Alpha Testing Culling #1 Culling #2 Fog Enabling #2 |
00 01 00 06 05 02 06 01 05 02 06 01 08 01 02 00 |
Alpha Material Flag Section | |
5D86 5D8F 5D98 5DA1 5DAA 5DB6 5DBF 5DC8 5DD1 5DDA 5DE3 5DEC |
405D86 405D8F 405D98 405DA1 405DAA 405DB6 405DBF 405DC8 405DD1 405DDA 405DE3 405DEC |
Z-writing Z-testing Shade Mode Texture Filtering Vertex Alpha Enabling Culling UV Address (U) UV Address (V) Fog Enabling Source Blend Destination Blend Null Material |
00 00 02 02 01 01 03 03 00 05 06 00 |
Black Screen Fade | The fade can be disabled by changing the value at 0x406241 from 02 to 01. To keep it, leave the value on 02. |
1B0FA | 41B0FA | Null Material | 00 | Team Blast Screen Effects | |
1B1D5 1B1E5 1B1EE 1B1F7 1B200 1B209 1B212 |
41B1D5 41B1E5 41B1EE 41B1F7 41B200 41B209 41B212 |
Z-testing Z-writing Fog Enabling Culling Vertex Alpha Enabling Source Blend Destination Blend |
00 00 00 01 01 0A 01 |
Chaos Inferno Screen Effect (1 Player) | |
1B28C 1B29C 1B2A5 1B2AE 1B2B7 1B2C0 |
41B28C 41B29C 41B2A5 41B2AE 41B2B7 41B2C0 |
Z-testing Z-writing Fog Enabling Culling Source Blend Destination Blend |
00 00 00 01 02 02 |
Sonic Overdrive Screen Effect | |
1B838 1B844 1B84D 1B856 1B86D 1B878 1B881 |
41B838 41B844 41B84D 41B856 41B86D 41B878 41B881 |
Z-testing Z-writing Fog Enabling Culling Source Blend Destination Blend #1 Destination Blend #2 |
00 01 00 01 02 06 02 |
Screen Transition Effects | |
1BA94 1BA9E 1BAA9 1BAB3 1BACC 1BAD5 1BAD9 1BAE3 |
41BA94 41BA9E 41BAA9 41BAB3 41BACC 41BAD5 41BAD9 41BAE3 |
Z-testing Z-writing Fog Enabling Culling Source Blend #1 Destination Blend #1 Source Blend #2 Destination Blend #2 |
00 00 00 01 02 06 05 02 |
Warp Effects | The first two blend factor codes in offsets 1BACC (41BACC) and 1BAD5 (41BAD5) are for the blue switch effect that engulfs if the orb switch has been triggered. The other two are for the common warp effects. |
1BBFA | 41BBFA | Null Material | 00 | Warp Effect Screen | |
1E0A1 1E0AD 1E0B6 1E0BF 1E0C8 1E0D1 1E0DA 1E0E3 1E0EC 1E0F8 |
41E0A1 41E0AD 41E0B6 41E0BF 41E0C8 41E0D1 41E0DA 41E0E3 41E0EC 41E0F8 |
Z-testing Z-writing Fog Enabling Culling Vertex Alpha Enabling Source Blend Destination Blend Null Material Shade Mode Texture Filtering |
00 01 00 01 01 05 06 00 02 02 |
In-game HUD interface | |
1EAA9 1EAA9 |
41EAA9 41EAA9 |
Source Blend Destination Blend |
05 02 |
Key Sparkle Effect on HUD | |
22BA9 22BB2 22BBB 22BC4 22BE8 22BF1 22C06 22C1B |
422BA9 422BB2 422BBB 422BC4 422BE8 422BF1 422C06 422C1B |
Z-testing Z-writing Fog Enabling Culling Source Blend Destination Blend UV Address Type (UV) Texture Filtering |
01 01 00 01 05 06 03 02 |
2 Player Race HUD interface | |
2478F 247B0 247BC 2481E 24827 24830 |
42478F 4247B0 4247BC 42481E 424827 424830 |
Culling UV Address Type (UV) Vertex Alpha Enabling Source Blend Destination Blend Texture Filtering |
01 03 01 05 04 02 |
General Subtitles | |
247C5 247CE |
4247C5 4247CE |
Source Blend Destination Blend |
01 04 |
General Subtitle Drop Shadow | |
3131E 3132E 31381 313A9 313B9 2A4362 |
43131E 43132E 431381 4313A9 4313B9 6A4362 |
Source Blend #1 Destination Blend #1 Destination Blend #2 Source Blend #2 Destination Blend #3 Vertex Alpha Enabling |
05 02 04 05 06 01 |
Particle Effects | See Particle Editing for details about the blend factors for the particles. |
38AB7 38AF0 38AF9 38B05 38B0E 38B2F 38B38 38B55 |
438AB7 438AF0 438AF9 438B05 438B0E 438B2F 438B38 438B55 |
Vertex Alpha Enabling Z-testing Z-writing Fog Enabling Culling Source Blend Destination Blend Null Material |
01 00 01 00 01 05 06 00 |
Results Screen | |
4C4AA 4C4B3 4C4BC 4C4C5 4C4CE 4C4D7 4C4E0 4C4E9 |
44C4AA 44C4B3 44C4BC 44C4C5 44C4CE 44C4D7 44C4E0 44C4E9 |
Z-writing Z-testing Texture Filtering Vertex Alpha Enabling Culling Fog Enabling Source Blend Destination Blend |
01 01 02 01 02 00 05 06 |
Omochao | |
4CA25 4CA2E 4CA37 4CA40 4CA49 4CA55 4CA5E 4CA67 4CA70 4CA79 4CA82 4CA8B |
44CA25 44CA2E 44CA37 44CA40 44CA49 44CA55 44CA5E 44CA67 44CA70 44CA79 44CA82 44CA8B |
Z-writing Z-testing Shade Mode Texture Filtering Vertex Alpha Enabling Culling UV Address Type (U) UV Address Type (V) Fog Enabling Source Blend Destination Blend Null Material |
00 00 02 02 01 01 03 03 00 05 06 00 |
Menu Interface | |
4EB79 4EB82 4EB8B 4EB94 4EB9D 4EBA9 4EBB2 4EBBB 4EBC4 4EBCD 4EBD6 |
44EB79 44EB82 44EB8B 44EB94 44EB9D 44EBA9 44EBB2 44EBBB 44EBC4 44EBCD 44EBD6 |
Z-writing Z-testing Shade Mode Texture Filtering Vertex Alpha Enabling Culling UV Address Type (U) UV Address Type (V) Fog Enabling Source Blend Destination Blend |
00 00 02 02 01 01 03 03 00 05 06 |
Now Loading text | |
5350B 53514 5351D 5352A 5353B 53544 5354D |
45350B 453514 45351D 45352A 45353B 453544 45354D |
Z-writing Z-testing Texture Filtering/Culling Vertex Alpha Enabling Fog Enabling Source Blend Destination Blend |
01 01 02 01 00 05 06 |
Character Display in Menus | |
57983 5799E 57995 5799E 579A7 579B0 579BC 579C5 579CE 579D7 |
457983 45799E 457995 45799E 4579A7 4579B0 4579BC 4579C5 4579CE 4579D7 |
Z-testing Z-writing Vertex Alpha Enabling Source Blend Destination Blend Texture Filtering Culling UV Address (U) UV Address (V) Fog Enabling |
00 00 01 05 06 02 01 03 03 00 |
Blue Window Popup | |
58093 5809C 580A5 580AE 580B7 580C0 580CC 580D5 580DE 580E7 |
458093 45809C 4580A5 4580AE 4580B7 4580C0 4580CC 4580D5 4580DE 4580E7 |
Z-testing Z-writing Vertex Alpha Enabling Source Blend Destination Blend Texture Filtering Culling Fog Enabling UV Address (U) UV Address (V) |
00 00 01 05 06 02 01 00 03 03 |
Menu Text | |
58093 5809C 580A5 580AE 580B7 580C0 580CC 580D5 580DE 580E7 580FE |
458093 45809C 4580A5 4580AE 4580B7 4580C0 4580CC 4580D5 4580DE 4580E7 4580FE |
Z-testing Z-writing Vertex Alpha Enabling Source Blend Destination Blend Texture Filtering Culling Fog Enabling UV Address Type (U) UV Address Type (V) Null Material |
00 00 01 05 06 02 01 00 03 03 51 |
Credits | The last material code requires editing to be customized at 0x580FC. To do that, change the 3 bytes from 8B 0E 51 to 90 6A 00. If you plan to use another material, change the byte in 0x58100 from 01 to some other material value. |
5A007 5A010 5A019 5A022 |
45A007 45A010 45A019 45A022 |
Source Blend Destination Blend Culling Fog |
05 02 01 00 |
Triple Spring Rays | |
5AE90 5AE99 5AEA2 |
45AE90 45AE99 45AEA2 |
Source Blend Destination Blend Culling |
02 02 01 |
Rainbow Ring Trails | |
5EBC8 | 45EBC8 | Culling | 01 | Bobsled Player Marker | Displayed in 2 Player Bobsled Race. |
65076 6507F 65088 |
465076 46507F 465088 |
Source Blend Destination Blend Culling |
05 02 01 |
Bobsled Sign Light | |
653A5 653AE 653B7 |
4653A5 4653AE 4653B7 |
Source Blend Destination Blend Culling |
02 02 01 |
Mystic Mansion Trolley Lights | |
6C369 6C372 6C37B 6C384 |
46C369 46C372 46C37B 46C384 |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Checkpoint Rays | |
6CE91 6CE9A 6CEA3 6CEAC |
46CE91 46CE9A 46CEA3 46CEAC |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Checkpoint Crescent Effect | |
720A1 720AA 720B3 |
4720A1 4720AA 4720B3 |
Source Blend Destination Blend Culling |
05 02 01 |
Flower Rays | |
736FB 73704 7370D 73716 |
4736FB 473704 47370D 473716 |
Source Blend Destination Blend Culling Vertex Alpha Enabling |
05 02 01 01 |
Team Formation Gate Sign Light | |
73886 7388F 73898 |
473886 47388F 473898 |
Source Blend Destination Blend Culling |
05 02 01 |
Team Formation Gate | |
74920 74929 74932 |
474920 474929 474932 |
Source Blend Destination Blend Culling |
02 02 01 |
Goal Ring Square Dashed Circle | |
76404 7640D 76416 |
476404 47640D 476416 |
Source Blend Destination Blend Culling |
02 06 01 |
Hint Ring Question Mark | |
78361 7836A 78373 7838B |
478361 47836A 478373 47838B |
Source Blend Destination Blend Culling #1 Culling #2 |
05 06 03 02 |
Popped Item Balloon | |
79E98 79EA1 |
479E98 479EA1 |
Source Blend Destination Blend |
05 06 |
Collected Item Icon | |
7C04C 7C055 7C05E |
47C04C 47C055 47C05E |
Source Blend Destination Blend Fog Enabling |
02 02 00 |
Lasers | |
84515 8451E 84527 84533 |
484515 48451E 484527 484533 |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Power Gong Swing Effect | |
86E81 86E8A 86E93 |
486E81 486E8A 486E93 |
Source Blend Destination Blend |
05 02 01 |
Team Formation Sign Light | |
8AC09 8AC12 8AC1B |
48AC09 48AC12 48AC1B |
Source Blend Destination Blend Culling |
05 02 01 |
Target Switch Fade | |
8F265 8F26E 8F277 8F280 8F289 8F29C 8F2A5 |
48F265 48F26E 48F277 48F280 48F289 48F29C 48F2A5 |
Vertex Alpha Enabling Fog Enabling Z-writing Source Blend #1 Destination Blend #1 Source Blend #2 Destination Blend #2 |
01 00 00 05 02 05 06 |
Lens Flares | |
8F394 8F39D 8F3A6 8F3AF 8F3B8 8F3CB 8F3D4 |
48F394 48F39D 48F3A6 48F3AF 48F3B8 48F3CB 48F3D4 |
Vertex Alpha Enabling Fog Enabling Z-writing Source Blend #1 Destination Blend #1 Source Blend #2 Destination Blend #2 |
01 00 00 05 02 05 06 |
Lens Flares (Chaos Inferno) | |
928CD 928D6 92906 9290F 9292A 92962 9296B |
4928CD 4928D6 492906 49290F 49292A 492962 49296B |
Culling UV Address Type *UV) Z-testing Z-writing Vertex Alpha Enabling Source Blend Destination Blend |
01 03 00 01 01 05 04 |
In-game Scene Subtitles | |
92918 92921 |
492918 492921 |
Source Blend Destination Blend |
01 04 |
In-game Scene Subtitle Drop Shadow | |
9656C 96575 |
49656C 496575 |
Source Blend Destination Blend |
05 02 |
Hermit Crab Fade | |
A70D4 | 4A70D4 | Fog Enabling | 00 | Ocean Palace Sky Alpha Gradient | |
B394F | 4B394F | Fog Enabling | 00 | Power Plant Sky | |
B3A5F | 4B3A5F | Fog Enabling | 00 | Power Plant Clouds | |
C516C C5175 |
4C516C 4C5175 |
Source Blend Destination Blend |
05 02 |
Casino Chip Fade | |
C3D66 C3D6F C3D7B C3D84 C3D8D C3D96 |
4C3D66 4C3D6F 4C3D7B 4C3D84 4C3D8D 4C3D96 |
Z-writing Z-testing Shade Mode Texture filtering Vertex Alpha Enabling Culling |
00 00 02 02 01 01 |
Casino Slot Interface | |
EDAF0 EDAF9 EDB02 EDB0E EDB17 EDB43 EDB4C EDB9D EDBA6 EDBB4 |
4EDAF0 4EDAF9 4EDB02 4EDB0E 4EDB17 4EDB43 4EDB4C 4EDB9D 4EDBA6 4EDBB4 |
Z-testing Z-writing Fog Enabling Culling Vertex Alpha Blending Source Blend #1 Destination Blend #1 Source Blend #2 Destination Blend #2 Null Material |
00 00 00 01 01 05 06 08 09 00 |
Frog Rain Screen Effect | Two blend factor codes in offsets EDB43 (4EDB43) and EDB4C (4EDB4C) are for the Light Rain screen by the Green Frog and the other two blend factor codes in offsets EDB9D (4EDB9D) and EDBA6 (4EDBA6) are for the Dark Rain screen by the Black Frog. |
F9A6C F9A75 F9A7E |
4F9A6C 4F9A75 4F9A7E |
Source Blend Destination Blend Culling |
02 02 01 |
Torch Fire | |
FE89A FE8A3 |
4FE89A 4FE8A3 |
Source Blend Destination Blend |
05 02 |
Hang Castle Key Fade | |
FEE13 FEE1C FEE25 |
4FEE13 4FEE1C 4FEE25 |
Source Blend Destination Blend Culling |
02 02 01 |
Mystic Mansion Lights | |
FBC5A FBC63 |
4FBC5A 4FBC63 |
Source Blend Destination Blend |
05 06 |
Pumpkin Ghost Fade Effect | |
FBDBC FBDC5 FBDCE |
4FBDBC 4FBDC5 4FBDCE |
Source Blend Destination Blend Culling |
02 02 01 |
Pumpkin Ghost Light | |
101338 101341 10134A |
501338 501341 50134A |
Source Blend Destination Blend Culling |
02 02 01 |
Hang Castle Spider Lights | |
103401 103409 103412 |
503401 503409 503412 |
Source Blend Destination Blend Culling |
02 02 01 |
Teleporter Switch Glowing Symbols | |
107BE4 107BED 107BF6 |
507BE4 507BED 507BF6 |
Source Blend Destination Blend Culling |
05 02 01 |
Thunder lightening with skulls | |
166AB1 | 566AB1 | Culling | 01 | Egg Emperor Missle Rockets | |
1655DD 1655E6 1655EF |
5655DD 5655E6 5655EF |
Culling Destination Blend Source Blend |
01 02 05 |
Egg Emperor Charge Effect | |
165D75 165D7E 165D87 |
565D75 565D7E 565D87 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Emperor Screen | |
166B1B 166B36 166B3F |
566B1B 566B36 566B3F |
Culling Destination Blend Source Blend |
01 02 05 |
Egg Emperor Missle Rocket Fire | |
168119 168122 16812B |
568119 568122 56812B |
Culling Destination Blend Source Blend |
01 02 05 |
Egg Emperor Spear Slash Effect | |
16879C 1687A5 1687AE |
56879C 5687A5 5687AE |
Culling Destination Blend Source Blend |
01 02 05 |
Egg Emperor Jet Fire | |
176DD0 | 576DD0 | Fog Enabling | 00 | Grand Metropolis Clouds | Does not affect the clouds used in battle stages. |
184E99 184EF9 184F02 184F0B 184F14 184F1D 184F26 |
584E99 584EF9 584F02 584F0B 584F14 584F1D 584F26 |
Null Material Z-testing Z-buffering Fog Enabling Culling Source Blend Destination Blend |
00 00 00 00 01 0A 01 |
Chaos Inferno Screen Effect (2 Player) | Applies on the half of the split-screen where "Player B" is frozen by Chaos Inferno. |
188F4A 188F53 188F5C 188F65 |
588F4A 588F53 588F5C 588F65 |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Chaotix Recital Lights | |
18B16D 18B175 18B17F |
58B16D 58B175 58B17F |
Source Blend Destination Blend Culling |
05 02 01 |
Omega's Laser Effects (Chaos Inferno) | |
1BDC05 1BDC0E 1BDC17 |
5BDC05 5BDC0E 5BDC17 |
Source Blend Destination Blend Culling |
05 02 01 |
Omega's Flames | |
1BDE87 1BDE90 1BDE99 1BDEA5 1BDEAD |
5BDE87 5BDE90 5BDE99 5BDEA5 5BDEAD |
Source Blend Destination Blend Culling Vertex Alpha Enabling Fog Enabling |
05 02 01 01 56 |
Chaos Emerald (Chaos Inferno) | For the fog rendering in this section, 56 is disabled and 50 is enabled. |
1D2B99 1D2BA2 1D2BAE 1D2BB7 1D2BC0 |
5D2B99 5D2BA2 5D2BAE 5D2BB7 5D2BC0 |
Source Blend Destination Blend Culling Vertex Alpha Enabling Fog Enabling |
05 02 02 01 00 |
Espio's Invisibility | |
1D2E3A 1D2E43 1D2E4C 1D2E58 1D2E61 |
5D2E3A 5D2E43 5D2E4C 5D2E58 5D2E61 |
Source Blend Destination Blend Culling Vertex Alpha Enabling Fog Enabling |
05 02 03 01 00 |
Super Sonic Glowing Effect | |
1D2EC5 1D2ECE 1D2ED7 1D2EE0 |
5D2EC5 5D2ECE 5D2ED7 5D2EE0 |
Source Blend Destination Blend Culling Vertex Alpha Enabling |
05 06 01 01 |
Super Sonic Power Team Blast | |
1D3126 | 5D3126 | Destination Blend | 02 | Super Sonic Power Team Blast Symbol Effect | |
1D32E4 1D32ED 1D32F6 1D330B |
5D32E4 5D32ED 5D32F6 5D330B |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Shadow's Shoe Blast Effect | |
1DCD3F 1DCD48 1DCD51 1DCD5F |
5DCD3F 5DCD48 5DCD51 5DCD5F |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Thundershoot Enemy Stun Effect | |
1DD547 1DD550 1DD559 |
5DD547 5DD550 5DD559 |
Source Blend Destination Blend |
05 02 01 |
Power Core Transparent Sphere | |
1DDD9E 1DDDA7 1DDDB0 |
5DDD9E 5DDDA7 5DDDB0 |
Source Blend Destination Blend Culling |
05 02 01 |
Cameron Shoot Ring Effect | |
1E03E9 1E03F2 1E03FB |
1E03E9 1E03F2 1E03FB |
Source Blend Destination Blend Culling |
05 02 01 |
Gun Shoot Effect | |
1E05C2 1E05CB |
5E05C2 5E05CB |
Source Blend Destination Blend |
05 06 |
Gun Shoot Ammunition | |
1E05F8 1E0601 1E060A |
5E05F8 5E0601 5E060A |
Fog Enabling Source Blend Destination Blend |
00 05 02 |
Gun Shoot Ammunition Effect | |
1E19F1 1E19FA 1E1A03 |
5E19F1 5E19FA 5E1A03 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Pawn Shield Fade | |
1E54E6 1E54EF 1E54F8 |
5E54E6 5E54EF 5E54F8 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Flapper Red Spike Gradient | |
1E691E 1E6927 1E6930 |
1E691E 1E6927 1E6930 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Flapper Electricity | |
1E7504 1E750D 1E7516 |
5E7504 5E750D 5E7516 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Flapper Search Light | |
1F5B9B 1F5BA4 1F5BAD |
5F5B9B 5F5BA4 5F5BAD |
Source Blend Destination Blend Culling |
05 02 01 |
Falco Fire | |
205D51 205D5A 205D63 |
605D51 605D5A 605D63 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Hammer Swinging Hammer Effect | |
207132 20713B 207144 |
607132 60713B 607144 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Hammer Helmet Fade Effect | |
20B1F4 20B1FD 20B206 |
60B1F4 60B1FD 60B206 |
Source Blend Destination Blend Culling |
05 02 01 |
Metal Madness Core | |
20C236 20C23F 20C248 20C251 |
60C236 60C23F 60C248 60C251 |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Crystal Cage Needle Fire | |
20D2E9 20D2F2 20D2FB 20D304 |
60D2E9 60D2F2 60D2FB 60D304 |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Claw Missle Fire | |
20FBCE 20FBD7 20FBE0 |
60FBCE 60FBD7 60FBE0 |
Source Blend Destination Blend Culling |
05 02 01 |
Egg Mobile Boost Gradient | |
212D65 212D6E 212D77 |
612D65 612D6E 612D77 |
Source Blend Destination Blend Culling |
05 02 01 |
Magician Fade | Unused, change the byte at 212C8E (612C8E) to EB and 3 Bytes at 212D56 (612D56) to EB 07 90 to see the result using these materials applied to the enemy model on this code section. |
212E5B 212E64 212E6D |
612E5B 612E64 612E6D |
Source Blend Destination Blend Culling |
05 02 01 |
Magician Suck Ring | |
219C1B 219C24 219C2D |
619C1B 619C24 619C2D |
Source Blend Destination Blend Culling |
05 02 01 |
Crystal Attack | |
21E2AA | 61E2AA | Fog Enabling | 00 | Fog Setting (Disabled) | |
21E2C0 | 61E2C0 | Fog Enabling | 01 | Fog Setting (Enabled) | |
221510 221519 |
621510 621519 |
Null Material Vertex Alpha Enabling |
00 01 |
Debug Text Materials | Unused |
28A805 28A811 28A81A 28A831 28A83A 28A843 |
68A805 68A811 68A81A 68A831 68A83A 68A843 |
Z-testing Z-writing Texture Filtering Source Blend Destination Blend Culling |
00 00 01 05 06 01 |
More Debug Text Materials | Unused |
22FA88 22FA91 22FA9A 22FAA6 22FAAF |
62FA88 62FA91 62FA9A 62FAA6 62FAAF |
Source Blend Destination Blend Culling Fog Vertex Alpha Enabling |
05 02 01 00 01 |
Character Jump Effects | Also affects the fire balls with characters in super form. |
231CC4 231CCD 231CD6 231CE2 231CEB |
631CC4 631CCD 631CD6 631CE2 631CEB |
Source Blend Destination Blend Culling Vertex Alpha Enabling Fog Enabling |
05 02 01 01 00 |
Quick Ascent Effect | |
233AE1 233AEA |
633AE1 633AEA |
Source Blend Destination Blend |
05 02 |
Crash Objects (with Additive Alpha, Unused) | |
2343F8 234401 23440A 234413 234437 23443B |
6343F8 634401 63440A 634413 634437 63443B |
Source Blend Destination Blend Culling Fog Enabling Z-testing #1 Z-testing #2 |
05 02 01 00 01 00 |
Colored Rocket Accel Effect | |
2387B4 2387BD 2387C6 2387CF |
6387B4 6387BD 6387C6 6387CF |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Light Streak Effects | |
2396AD 2396B6 2396BF 2396CB 2396D4 2396DD |
6396AD 6396B6 6396BF 6396CB 6396D4 6396DD |
Source Blend Destination Blend Culling Null Material Vertex Alpha Enabling Fog Enabling |
05 02 01 00 01 00 |
Character Trail Effects | |
23A9AB 23A9B4 23A9BD |
63A9AB 63A9B4 63A9BD |
Source Blend Destination Blend Culling |
05 02 01 |
Rainbow Rocket Accel Effect | |
23811A 238123 238127 238130 23813C 238174 238189 |
63811A 638123 638127 638130 63813C 638174 638189 |
Source Blend #1 Destination Blend #1 Source Blend #2 Destination Blend #2 Culling Vertex Alpha Enabling Blend Equation |
05 02 01 04 01 01 03 |
Footprints | |
23B763 23B76E 23B777 23B780 23B795 23B79E |
63B763 63B76E 63B777 63B780 63B795 63B79E |
Vertex Alpha Enabling Source Blend #1 Destination Blend #1 Blend Equation Source Blend #2 Destination Blend #2 |
01 05 02 03 01 04 |
Shadows for Objects | |
23D968 23D971 23D97A 23D983 |
63D968 63D971 63D97A 63D983 |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Thundershoot | |
23DE45 23DE4E 23DE57 23DE60 |
63DE45 63DE4E 63DE57 63DE60 |
Source Blend Destination Blend Culling Fog Enabling |
05 02 01 00 |
Thundershoot Pipes | |
23E383 23E38C 23E395 23E3A1 23E3AA |
63E383 63E38C 63E395 63E3A1 63E3AA |
Source Blend Destination Blend Culling UV Addres Type (UV) Fog Enabling |
05 02 01 02 00 |
Thundershoot Ring Collect Planes | |
23FE8B 23FF6C 23FF75 23FF7E 23FF8A |
63FE8B 63FF6C 63FF75 63FF7E 63FF8A |
Vertex Alpha Enabling Source Blend Destination Blend Culling Fog Enabling |
01 05 02 01 00 |
Colored Tornado Effect | |
23FEC5 23FEDA 23FEE3 23FEEC 23FEFD 23FF06 |
63FEC5 63FEDA 63FEE3 63FEEC 63FEFD 63FF06 |
Vertex Alpha Enabling Source Blend #1 Destination Blend #1 Blend Equation Source Blend #2 Destination Blend #2 |
01 05 02 03 01 04 |
Dark Tornado Effect | Used if the color of the tornado is colored black. Also, the blend factors below the jump opcode after the blend equation code are not used. |
244486 24448F 244498 2444A1 2444AA 2444B6 2444BF 2444C8 2444D1 |
644486 64448F 644498 6444A1 6444AA 6444B6 6444BF 6444C8 6444D1 |
Z-testing Z-writing Fog Enabling Source Blend Destination Blend Shade Mode Texture Filtering UV Address Type (U) UV Address Type (V) |
00 00 00 05 06 02 02 03 03 |
FMV Movies | |
245414 24543B 245488 245491 |
645414 64543B 645488 645491 |
Culling Vertex Alpha Enabling Source Blend Destination Blend |
01 01 05 04 |
FMV Subtitles | |
245429 245432 |
645429 645432 |
Source Blend Destination Blend |
01 04 |
FMV Subtitle Drop Shadow | |
278975 27897C 278D03 278D0F 278D2F |
278975 67897C 678D03 678D0F 678D2F |
Source Blend Destination Blend Unknown Material #1 Z-buffering Unknown Material #2 |
05 02 00 00 00 |
Crystal Cage (Metal Madness) | Blend factors only affect the reflection part of the model, the base blending is handled by the main material functions using material flags. While this function runs, the reflection blending on other objects is also affected. |
Material Flags
Somewhat like BSPs with identifiers stored in .ONE files, objects have their own material flags stored in the code. Objects that use material flags provide a rendering effect through the main rendering code sections when applied to an object after it appears. Examples of objects that use material flags are Energy paths and HEXAeco Signboards. Note that not all objects use material flags separately for each model loaded in the level. Unlike the opcodes that provide the graphic appearance for the object in their code sections, the modified flags require moving away from the object until it disappears or by quiting the level and returning in-order to take effect.
Flag offset pointer entry:
00 72 00 00
Offset | Type | Description |
---|---|---|
0x00 | Byte | Pointer flag |
0x01 | 3 bytes | Always 72 00 00 |
Flag entry:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | 4 Bytes | Usually model pointer |
0x04 | 4 Bytes | Pointer Sometimes uses the address for loaded models. |
0x09 | Byte | Flag |
Examples:
68 DA 77 00 00 00 00 00 14 00 00 00 00 00 00 00
D0 F8 76 00 28 3D A2 00 14 00 00 00 00 00 00 00
A list of identifier flags for objects are the following pointer and regular bytes:
Flag pointer:
Flag | Identifier | Description | Notes |
---|---|---|---|
54 | ?? | Invisible geometry | Usually used if the object set has individual material flags stored somewhere in the EXE and RAM or loads them for rendering the geometry. |
58 | DN | Sky model material | |
5C | O | Reflective material | |
60 | OS | Reflective floor material | |
64 | ON | Regular material | |
68 | ONS | Regular floor material | |
6C | ONW | Regular material without culling | |
70 | ONWS | Regular floor material without culling | |
74 | P | Alpha testing with reflective material | |
78 | PS | Alpha testing with reflective floor material | |
7C | PN | Alpha testing material | |
80 | PNS | Alpha testing floor material | |
84 | PNW | Alpha testing material without culling | |
88 | PNWS | Alpha testing floor material without culling | |
8C | DA | Alpha sky material | |
90 | AF | Alpha reflective material | |
94 | AFS | Alpha reflective floor material | |
98 | AFN | Alpha material | |
9C | AFNS | Alpha floor material | |
A0 | K | Additive alpha material | |
A4 | KW | Additive alpha material without culling | |
A8 | A | Alpha reflective material | |
AC | AS | Alpha reflective floor material | |
B0 | AN | Alpha material | |
B4 | ANS | Alpha floor material |
Individual flag ids:
Flag | Identifier | Description | Notes |
---|---|---|---|
00 | ?? | Usually used if the object set has individual material flags stored somewhere in the EXE and RAM. | |
01 | DN | Sky model material | |
02 | O | Reflective material | |
03 | OS | Reflective floor material | |
04 | ON | Regular material | |
05 | ONS | Regular floor material | |
06 | ONW | Regular material without culling | |
07 | ONWS | Regular floor material without culling | |
08 | P | Alpha testing with reflective material | |
09 | PS | Alpha testing with reflective floor material | |
0A | PN | Alpha testing material | |
0B | PNS | Alpha testing floor material | |
0C | PNW | Alpha testing material without culling | |
0D | PNWS | Alpha testing floor material without culling | |
0E | DA | Alpha sky material | |
0F | AF | Alpha reflective material | |
10 | AFS | Alpha reflective floor material | |
11 | AFN | Alpha material | |
12 | AFNS | Alpha floor material | |
13 | K | Additive alpha material | |
14 | KW | Additive alpha material without culling | |
15 | A | Alpha reflective material | |
16 | AS | Alpha reflective floor material | |
17 | AN | Alpha material | |
18 | ANS | Alpha floor material |
Known Offsets
A list below shows offsets found so far in the EXE for certain parts of the codes that apply material flags to objects.
Object | Addresses (EXE) | Addresses (RAM) | Models | Default byte values | Flag Type(s) | Notes |
---|---|---|---|---|---|---|
Alligator | 475330 | 875330 | Alligator | 04 | Byte ID | |
Armored Train | 3FAF28 3FAFE8 3FB000 3FB018 3FB030 3FB048 3FB060 3FB078 3FB090 3FB0A8 |
7FAF28 7FAFE8 7FB000 7FB018 7FB030 7FB048 7FB060 7FB078 7FB090 7FB0A8 |
Flashing Heat Vent Glow Train Piece (Part 1) Train Piece (Part 2) Train Piece (Part 3) Train Piece (Part 4) Train Piece (Part 5) Train Piece (Part 6) Train Piece (Part 7) Train Piece (Part 8) Train Piece (Part 9) |
13 04 04 04 04 04 04 04 04 04 |
Byte ID | |
Arrow Light Sign Pads | 000B0659 000B0AB8 |
004B0659 004B0AB8 |
Pad Arrow Light |
64 A0 |
72 Pointer | |
Ball Bumpers | 3EB3F4 | 7EB3F4 | Green Star Balls | 04 | Byte ID | |
Barb Fence | 3F591C | 7F591C | Barb Fence | 0A | Byte ID | |
Barrier | 001822CF | 005822CF | Barrier Effect | A4 | 72 Pointer | |
Bingo Number Chips | 003F1228 003F1238 003F1248 003F1258 003F1268 003F1278 003F1288 003F1298 003F12A8 003F12B8 003F12C8 003F12D8 003F12E8 007F12F8 003F1308 003F1318 003F1328 003F1338 003F1348 |
007F1228 007F1238 007F1248 007F1258 007F1268 007F1278 007F1288 007F1298 007F12A8 007F12B8 007F12C8 007F12D8 007F12E8 007F12F8 007F1308 007F1318 007F1328 007F1338 007F1348 |
Yellow Chip Number 1 Orange Chip Number 2 Red Chip Number 3 Mint Chip Number 4 Lime Chip Number 5 Aqua Chip Number 6 Magenta Chip Number 7 Blue Chip Number 8 Purple Chip Number 9 Broken Pieces |
11 04 11 04 11 04 11 04 11 04 11 04 11 04 11 04 11 04 04 |
Byte ID | |
Big the Cat | 001BE454 | 005BE454 | Big the Cat | 5C | 72 Pointer | |
Blocks | 0009AFA1 | 0049AFA1 | Power Plant Blocks Seaside Hill/Ocean Palace Blocks |
64 | 72 Pointer | |
Block on Rails | 9B7FC 9B815 9B82E 9B87C 9B907 9B9AE |
49B7FC 49B815 49B82E 49B87C 49B907 49B9AE |
Body Wheels Shadows Rail Piece #1 Rail Center Piece Rail Piece #2 |
64 64 B0 64 64 64 |
72 Pointer | |
Bomb Explosion | 23003E | 63003E | Saturn Explosion | A4 | 72 Pointer | |
Broken Glass Pieces (Casino levels) | 000BB513 | 004BB513 | Glass Pieces | A4 | 72 Pointer | |
Bullet Station Tunnel | 4575B0 4575C0 4575D0 4575E0 4575F0 457600 |
8575B0 8575C0 8575D0 8575E0 8575F0 857600 |
Interior Tunnel Red Lights Blue Light #1 Blue Light #2 Light Black Square Planes |
03 13 13 13 13 03 |
Byte ID | |
Butterflies | 000DD88C 000DD8BE |
004DD88C 004DD8BE |
Butterflies | 7C 7C |
72 Pointer | |
Canyon Barrels | 3F5088 | 7F5088 | Eggman Barrels | 04 | Byte ID | |
Canyon Capsules | 3F6300 3F6310 3F6320 3F6330 |
7F6300 7F6310 7F6320 7F6330 |
Capsule #1 Capsule Glass #1 Capsule #1 Capsule Glass #1 |
04 17 04 17 |
Byte ID | |
Casino Floating 2D Signs | 3EC1BC 3EC1D8 |
7EC1BC 7EC1D8 |
Lost Marker Green Star Arrow |
13 13 |
Byte ID | |
Casino Skybox | 3EC10C | 7EC10C | Skybox | 01 | Byte ID | |
Casino Slots | 3EBD20 3EBD30 3EBD40 3EBD50 3EBD60 3EBD70 3EBD80 3EBD90 3EBDA0 3EBDB0 3EBDC0 3EBDD0 |
7EBD20 7EBD30 7EBD40 7EBD50 7EBD60 7EBD70 7EBD80 7EBD90 7EBDA0 7EBDB0 7EBDC0 7EBDD0 |
Slot Piece #1 Slot Piece #2 Glass Inactive Bet Light Active Bet Light Flashing Jackpot Light Inactive Jackpot Light Bet Light #1 Bet Light #2 Bet Light #3 Flashing Glow Arrows Jackpot Light Ring |
04 03 11 04 04 04 04 13 13 13 13 13 |
Byte ID | |
Casino Slots (Small) | BF922 3EBEE0 3EBEF0 3EBF00 3EBF10 3EBF20 |
4BF922 7EBEE0 7EBEF0 7EBF00 7EBF10 7EBF20 |
Slot Wheels Slot Piece #1 Slot Piece #2 Glass Flashing Glow Arrows Jackpot Light Ring |
64 04 03 11 13 13 |
72 Pointer Byte ID Byte ID Byte ID Byte ID Byte ID |
|
Casino Slot Wheels | 3EBDE0 3EBDF0 3EBE00 3EBE10 3EBE20 3EBE30 3EBE40 |
7EBDE0 7EBDF0 7EBE00 7EBE10 7EBE20 7EBE30 7EBE40 |
Ring Slot Sonic Slot Knuckles Slot Tails Slot Seven Slot Eggman Slot Jackpot Slot |
04 04 04 04 04 04 04 |
Byte ID | |
Casino Slot Wheels (Spinning) | BD5BB BD775 |
4BD5BB 4BD775 |
Slot Wheels Condition |
64 64 |
72 Pointer | |
Casino Slot Wheels (Spinning, Small) | BF922 BFAB3 |
4BF922 4BFAB3 |
Slot Wheels Condition |
64 64 |
72 Pointer | |
Character Models | 00181CD4 | 00581CD4 | Amy Rose Cream the Rabbit E-123 Omega Espio Knuckles Shadow Sonic |
5C | 72 Pointer | |
Charmy Bee | 001C64B4 | 005C64B4 | Charmy | 5C | 72 Pointer | |
Charmy Bee's Wings | 001C64E7 | 005C64E7 | Charmy's Wings | A8 | 72 Pointer | |
Crumbling Stone Pillars | A1FD8 A1FFC A201D A205D |
4A1FD8 4A1FFC 4A201D 4A205D |
Pillar #1 Ruin Body Shadow |
04 04 04 11 |
Byte Opcode | |
Crystal Cage | 20BE45 | 60BE45 | Crystal Ball | 90 | 72 Pointer | |
Dash Panel | 6E462 | 46E462 | Dash Panel | 60 | 72 Pointer | |
Dash Ramp | 7A39E | 47A39E | Dash Ramp | 60 | 72 Pointer | |
Dash Ring | 6ED79 6ED8F |
46ED79 46ED8F |
Dash Base Green Lights |
60 60 |
72 Pointer | |
Dice | 3EB6C8 | 7EB6C8 | Red Dice | 03 | Byte ID | |
Doors (Canyon Levels) | 3F6198 3F61A8 3F61B8 3F61C8 3F61D8 3F61E8 |
7F6198 7F61A8 7F61B8 7F61C8 7F61D8 7F61E8 |
Metal Door (Right) Door (Left) Metal Grill #1 Metal Grill #2 Metal Grill #3 |
04 04 04 10 10 10 |
Byte ID | |
Duct Grill | 3F56E8 | 7F56E8 | Grill | 0A | Byte ID | |
Egg Emperor Robot | 163F27 | 563F27 | Egg Emperor Robot | 74 | 72 Pointer | |
Egg Flapper Jet | 001E8B4A | 005E8B4A | Flapper Jet effect | A0 | 72 pointer | |
Egg Horn (Canyon Stages) | 3F573C | 7F573C | Egg Horn | 04 | Byte ID | |
Egg Treat Stars | 17759E | 57759E | Stars | B0 | 72 Pointer | |
Energy Blocker for Road | 004B3938 004B3968 004B3978 004B3988 004B3998 004B39A8 |
008B3938 008B3968 008B3978 008B3988 008B3998 004B39A8 |
Pumper Base Left Pumper Right Pumper Flashing Light Laser Fence Broken Pieces |
04 04 04 13 13 04 |
Byte ID | |
Energy Lava | 003E63C4 003E63DC |
007E63C4 007E63DC |
Lava Lava Gradient |
04 13 |
Byte ID | |
Energy Path Objects | 00172D46 00172DA1 00173279 0017330B 0017399A |
00572D46 00572DA1 00573279 0057330B 0057399A |
Energy Fill Energy Energy Path Activator Energy Path Lights |
64 64 A0 A0 A4 |
72 Pointer | |
Energy Pipe Cover | 001740F1 00174130 |
005740F1 00574130 |
Energy Pipe Handles Pipe Glass |
64 64 |
72 Pointer | |
Fake Rings | 00183A5B | 00583A5B | Rings | 5C | 72 Pointer | |
Falling Stone Structure | A0EB2 A0EC1 A0ED0 A0EFC |
4A0EB2 4A0EC1 4A0ED0 4A0EFC |
Pillar #1 Pillar #2 Ruins Shadows |
04 04 04 17 |
Byte Opcode | |
Fan | 6F9E8 | 46F9E8 | Fan | 60 | 72 Pointer | |
Fan (Bullet Station) | 45737C | 85737C | Fan Barrels | 04 | Byte ID | |
Fan (Rail Canyon) | 3F5680 3F56A4 |
7F5680 7F56A4 |
Fan Fan Machine |
04 04 |
Byte ID | |
Fireball Light Spots | 003E5CEC | 007E5CEC | Fireball Spot | 13 | Byte ID | |
Firedunk Balls | 23760F | 63760F | Firedunk Ball | A4 | 72 Pointer | |
Fireworks | 000B4AC3 | 004B4AC3 | Firework Effects | 14 | Byte opcode | Not used in the game. |
Floating Letters | 3EB950 3EB960 3EB970 3EB980 3EB990 3EB9A0 3EB9B0 3EB9C0 |
7EB950 7EB960 7EB970 7EB980 7EB990 7EB9A0 7EB9B0 7EB9C0 |
Floating F Floating I Floating R Floating E Floating B Floating A Floating L Another Floating L |
04 04 04 04 04 04 04 04 |
Byte ID | |
Fountain Wings | 000A470A 000A4747 |
004A470A 004A4747 |
Fountain Wing Waterfall |
7C A0 |
72 Pointer | |
Frogs | 00468A20 00468A44 |
00868A20 00868A44 |
Green Frog Black Frog |
04 04 |
Byte ID | |
Glass Object (Casino levels) | 003EB8B8 003EB8C8 003EB8D8 003EB8E8 003EB8F8 |
007EB8B8 007EB8C8 007EB8D8 007EB8E8 007EB8F8 |
Glass Wall Glass Floor Glass Piece #1 Glass Piece #2 Glass Piece #3 |
14 14 14 14 14 |
Byte ID | The destroyed Glass pieces mainly uses the 72 pointer, these three flags are less likely to be used. |
Glow in the Dark Mushrooms | 00468E28 | 00868E28 | Green and Pink Mushrooms | 0A | Byte ID | |
Goal Ring | 73FF1 74067 |
473FF1 474067 |
Restart Ring Goal Ring |
60 60 |
72 Pointer | |
Grand Metropolis Clouds | 001769FD | 005769FD | Clouds | 0E | Byte Opcode | |
Grand Metropolis Door | 0016FCA7 00172D46 00172DA1 |
0056FCA7 00572D46 00572DA1 |
Door Energy Fill Energy |
64 64 64 |
72 Pointer | |
Grand Metropolis Lights | 00171B48 | 00571B48 | Red Lights | A0 | 72 Pointer | |
Hang Castle Clouds | 000F77A5 | 004F77A5 | Clouds | A4 | 72 Pointer | |
Hang Castle Doors | 000F8467 | 004F8467 | Doors | 60 | 72 Pointer | |
Hang Castle Flags | 000FA73F 000FA798 |
004FA73F 004FA798 |
Flag Poles Flags |
64 7C |
72 Pointer | |
Hang Castle Grass | 000FDF6D | 004FDF6D | Grass | 88 | 72 Pointer | |
Hang Castle Platforms | 00100804 00100804 |
00500797 00500804 |
Platform Base Floor |
60 60 |
72 Pointer | |
Hang Castle Trees | 00101A68 00101A76 |
00501A68 00501A76 |
Trunk Tree Bushes |
60 88 |
72 Pointer | |
HEXAeco Signboard | 004B446C 004B4484 004B449C |
008B446C 008B4484 008B449C |
Frame Sign Layer #1 Sign Layer #2 |
04 14 14 |
Byte ID | |
Hexagonal Satellite | 003E6AB8 003E6AD0 |
007E6AB8 007E6AD0 |
Handles Mirror |
04 03 |
Byte ID | |
Homing Attack Ring Effects | 00232560 | 00632560 | Ring Effect | A4 | 72 Pointer | |
Kao | A4A8F | 4A4A8F | Kao | 60 | 72 Pointer | |
Large Green Spring Plant | 4753B4 | 8753B4 | Green Spring Plant | 04 | Byte ID | |
Liftable Bridge | 0016D3EF | 0056D3EF | Lift Bridge | 7C | 72 Pointer | |
Miles "Tails" Prower | 001C63D4 | 005C63D4 | Tails | 5C | 72 Pointer | |
Miles "Tails" Prower's Fox Tails | 001C6407 | 005C6407 | Tails' Fox Tails | 5C | 72 Pointer | |
Mystic Mansion Doors | 00105E17 | 00505E17 | Doors | 60 | 72 Pointer | |
Mystic Mansion Platforms | 00106A77 00106AE2 |
00506A77 00506AE2 |
Platform Base Floor |
60 60 |
72 Pointer | |
Mystic Mansion Pocket Dimension Sphere | 00104EEA | 00504EEA | Pocket Dimension Sphere | A4 | 72 Pointer | |
Ocean Palace Plants | A2817 A284E |
4A2817 4A284E |
Plants | 84 98 |
72 Pointer | |
Ocean Palace Turtle Legs | 000A2D27 000A3274 |
004A2D27 004A3274 |
Turtle Legs Water Waves |
64 B0 |
72 Pointer | |
Ocean Palace Waterfall | 000A671C | 004A671C | Waterfall | A0 | 72 Pointer | |
Ocean Palace/Power Plant Sky | A6AB3 | 4A6AB3 | Stage Sky | 01 | Byte Opcode | |
Ocean Palace Sky Gradient | A6AE3 | 4A6AE3 | Alpha Gradient for Sky | 0E | Byte Opcode | |
Ocean Waves | 99C52 | 499C52 | Ocean Waves | B0 | 72 Pointer | |
Orange Dash Arrows | 3EB660 3EB670 3EB680 |
7EB660 7EB670 7EB680 |
Dash Arrows | 14 14 14 |
Byte ID | |
Pinball Bumpers | 003EB450 003EB460 003EB470 003EB480 |
007EB450 007EB460 007EB470 007EB480 |
Bumpers | 04 04 04 04 |
Byte ID | |
Pinball Round Bumpers | 3EB39C | 7EB39C | Round Bumpers | 04 | Byte ID | |
Pinball Flippers | 003EB75C 003EB76C |
007EB75C 007EB76C |
Left Flipper Right Flipper |
04 04 |
Byte ID | |
Pole | 7D667 | 47D667 | Pole | 60 | 72 Pointer | |
Power Gong | 83B1B | 483B1B | Power Gong | 60 | 72 Pointer | |
Power Plant Clouds | 000A6B0E | 004A6B0E | Clouds | 0F | Byte opcode | Value is one value up from 0E in this offset and decremented by the opcode after this one resulting the byte "0E" after loading. You will need to add the material flag id by 01 for your desired material effect (Example:if the byte is 15, it will become 14 before the level loading finishes.) |
Power Plant Crane | 003E5C9C 003E5CB4 003E5CCC |
007E5C9C 007E5CB4 007E5CCC |
Cab Jib Guy Line Crane Jib |
04 06 0C |
Byte ID | |
Power Plant HEXAeco Glass Ball | 003E5BEC | 007E5BEC | Glass Ball | 17 | Byte ID | |
Power Plant Room Light | 003E69CC 003E69FC |
007E69CC 007E69FC |
Pentagon Frame Mint Light |
04 13 |
Byte ID | |
Quick Ascent Ring Effects | 00231F13 | 00631F13 | Ring Effects | A4 | 72 Pointer | |
Rail Board | 3F5AC4 3F5AD4 |
7F5AC4 7F5AD4 |
Railboard Grate Rail |
0A 04 |
Byte ID | |
Rail Canyon Rails | 000D5A4A 000D5B39 |
004D5A4A 004D5B39 |
Changable Rails | A0 | 72 Pointer | |
Rail Exclamation Sign | 3F5F94 3F5FA4 |
7F5F94 7F5FA4 |
Sign | 04 13 |
Byte ID | |
Rail Signs | 3F63B0 3F63C0 3F63D0 3F63E0 3F63F0 3F6400 3F6410 |
7F63B0 7F63C0 7F63D0 7F63E0 7F63F0 7F6400 7F6410 |
Base Arrows Blue Flash Effect Red Flash Effect Blue Flash Effect (Alpha) Red Flash Effect (Alpha) Glass |
04 04 04 04 17 17 17 |
Byte ID | |
Rail Switch | 3FAE7C 3FAE8C 3FAE9C |
7FAE7C 7FAE8C 7FAE9C |
Switch Red Flash Blue Flash |
04 13 13 |
Byte ID | |
Rouge the Bat | 001C6444 | 005C6444 | Rouge | 5C | 72 Pointer | |
Rouge's Bat Wings | 001C6477 | 005C6477 | Rouge's Bat Wings | 5C | 72 Pointer | |
Seaside Hill Flags | 0009543A 0009547C |
0049543A 0049547C |
Flag Pole Flag |
64 7C |
72 Pointer | |
Seaside Hill Plants | 94E79 | 494E79 | Plants | 7C | 72 Pointer | |
Seaside Hill Ruins | 98981 | 498981 | Ruin Platforms | 64 | 72 Pointer | |
Seaside Hill Ruin Waterfall | 994A7 | 4994A7 | Ruin Waterfall | B0 | 72 Pointer | |
Seaside Hill Waterfall | 96849 | 496849 | Waterfall | B0 | 72 Pointer | |
Seaside Hill Water cracks | 93FFA | 493FFA | Waterfall | B0 | 72 Pointer | |
Skeleton Fan | 0010638D | 0050638D | Skeleton Hand Fan | 60 | 72 Pointer | |
Something Related to a sky? | A6ACB | 4A6ACB | Unknown | 04 | Byte Opcode | |
Sliding Block | 9CF01 9CF19 9CF31 |
49CF01 49CF19 49CF31 |
Body Wheels Shadows |
64 64 B0 |
72 Pointer | |
Sliding Block Path | 9D364 | 49D364 | Body Wheels Shadows |
64 64 B0 |
72 Pointer | |
Small Triangular Bumpers | 003EC120 003EC130 003EC140 003EC150 |
007EC120 007EC130 007EC140 007EC150 |
Triangular Bumpers | 04 04 04 04 |
Byte ID | |
Spike Balls | 77413 | 477413 | Spike Ball | 60 | 72 Pointer | |
Spiked Grass | 000FD7BE 000FD8CE |
004FD7BE 004FD8CE |
Red Grass Grass Spikes |
60 88 |
72 Pointer | |
Spinning Spike Ball Pole | 774C6 | 4774C6 | Spike Ball Spin Pole | 60 | 72 Pointer | |
Station Doors | 3F4FF8 3F501C |
7F4FF8 7F501C |
Automatic Doors | 04 04 |
Byte ID | |
Swinging Axes | 0010000C | 0050000C | Hang Castle Axes | 60 | 72 Pointer | |
Teleporter Switch | 00102D62 00103D38 |
00502D62 00503D38 |
Switch Ball Switch Pad/Inactive Switch |
60 60 |
72 Pointer | |
Torch Holder | 000F9C06 000F9C87 |
004F9C06 004F9C87 |
Torch Parts | 60 60 |
72 Pointer | |
Vector's Bubble Gum | 001BE5B7 | 005BE5B7 | Bubble Gum Ball | 5C | 72 Pointer | |
Vector's Bubble Gum Breath | 00185EB0 | 00585EB0 | Bubble Gum Ball | 5C | 72 Pointer | |
Vector the Crocodile | 001BE584 | 005BE584 | Vector | 5C | 72 Pointer | |
Vine Slide (Frog Forest) | ED346 ED73D |
4ED346 4ED73D |
Vine Tail Vine |
64 64 |
72 Pointer | |
Vine Slide (Lost Jungle) | F4276 F466D F4AB6 F4EAD |
4F4276 4F466D 4F4AB6 4F4EAD |
Vine #1 Vine Tail #1 Vine Tail #2 Vine #2 |
64 64 64 64 |
72 Pointer | |
Warp Flower Stem | 70617 | 470617 | Stem | 60 | 72 Pointer | |
Water (Lost Jungle) | 00476EB4 | 00876EB4 | Pond Water | 13 | Byte ID | |
Wiggly Mushrooms (Lost Jungle) | 475510 | 875510 | Mushrooms | 04 | Byte ID |
Special Stage Object Model Settings
A list of models loaded for special stages has a number of different entries in the EXE. The section begins at 0x495980 with data that reads the blend type assigned to the object.
Blend Type:
Parameter | Description |
---|---|
00 | Regular Alpha |
01 | Additive Alpha |
Entry Settings List
List of object entries are located in the addresses in the EXE.
Address | Default Blend Type (Hex.) | Description | Notes |
---|---|---|---|
495984 | 00 | Spike Bombs (Near point) | |
49599C | 00 | Colored Spheres (Near point) | Changing the byte to an additive alpha parameter will cause all spheres to use the same color during the hue cycle animation. |
4959A4 | 01 | Sphere Bubble effect | |
4959C0 | 00 | Orange Star Sphere | |
4959CC | 00 | Orange Star Sphere (Star Layer) | |
4959E4 | 00 | Blue Star Sphere | |
4959F0 | 00 | Blue Star Sphere (Star Layer) | |
495A08 | 00 | Colored Spheres (Far point) | Same as with the near point. |
495A20 | 00 | Sphere with stars (Far point) | |
495A2C | 00 | Sphere Stars (Far point) | |
495A44 | 00 | Spike Bombs (Far point) |
Special Stage Particles (Incomplete)
List of particle blend IDs begins at 0x494AB0 and ends at 0x494AE0. Each section entry is 0x10 bytes with one byte each.
Particle | Blend ID | Address (EXE) | Address (RAM) |
---|---|---|---|
Dark Smoke | 03 | 494AB0 | 894AB0 |
Explosion Effect #1 | 00 | 494AB1 | 894AB1 |
Explosion Effect #2 | 00 | 494AB2 | 894AB2 |
Stars from Colored Balls | 01 | 494AB5 | 894AB5 |
Stars from Colored Balls (Additive) | 00 | 494AB6 | 894AB6 |
Stars from Balls with Star Decoration | 01 | 494ABA | 894ABA |
Stars from Balls with Star Decoration (Additive) | 00 | 494ABB | 894ABB |
Chaos Emerald Sparkles for Act 1 | 00 | 494AC6 | 894AC6 |
Chaos Emerald Sparkles for Act 2 | 00 | 494AC5 | 894AC5 |
Chaos Emerald Sparkles for Act 3 | 00 | 494AC7 | 894AC7 |
Chaos Emerald Sparkles for Act 4 | 00 | 494AC8 | 894AC8 |
Chaos Emerald Sparkles for Act 5 | 00 | 494AC9 | 894AC9 |
Chaos Emerald Sparkles for Act 6 | 00 | 494ACA | 894ACA |
Chaos Emerald Sparkles for Act 7 | 00 | 494ACB | 894ACB |
Blend Modes
The following IDs define the blend factors for these particle effects.
ID | Value (Src.) | Value (Dest.) | Address (EXE) #1 | Address (EXE) #2 | Address (RAM) #1 | Address (RAM) #2 | Source Factor | Dest. Factor | Description | Notes |
---|---|---|---|---|---|---|---|---|---|---|
00 | 05 | 02 | 4951D4 | 8951D4 | 4951D8 | 8951D8 | rwBLENDSRCALPHA | rwBLENDONE | Additive Alpha | |
01 | 05 | 06 | 4951DC | 8951DC | 4951E0 | 8951E0 | rwBLENDSRCALPHA | rwBLENDINVSRCALPHA | Alpha | |
02 | 02 | 01 | 4951E4 | 8951E4 | 4951E8 | 8951E8 | rwBLENDONE | rwBLENDZERO | Regular | Unused, uses the same blend factors as 01 instead. |
03 | 01 | 04 | 4951EC | 8951EC | 4951F0 | 8951F0 | rwBLENDZERO | rwBLENDINVSRCCOLOR | Subtractive Alpha | |
04 | 01 | 01 | 4951F4 | 8951F4 | 4951F8 | 8951F8 | rwBLENDZERO | rwBLENDZERO | Non-Alpha Blend | Probably unused. |