Actions

SCHG

Sonic Heroes/EXE Editing

From Sonic Retro

SCHG: Sonic Heroes
Main Article
Mechanic Editing

DOL Editing
EXE Editing
Music Pointers
Object Parameter Data
Relocatable Editing (PC)
File Offsets

Model Editing
Collision Format
Model Format
Level Editing

Camera Editing
Event Editing
ID list
Indirect Editing
Light Editing
Level List
Object Editing
Object Porting
Spline Editing
Texture Animation Editing
Visibility Editing

Particle Editing
Particle Editing
Sound Editing
Music List

Sound Editing
Voices

SCHG How-Tos

Custom Object Material Effect Tutorial
Level Editing Tutorial


This guide is currently obsolete, but addresses from the executable will remain documented in this article.

The main EXE of the PC game is Tsonic_win.exe. The EXE is little endian. Unlike console versions, the base address 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

For types of missions assigned for the team, one mission parameter byte per level starts at 0x20AC and ends at 0x20B9. The following parameters assign a task to complete on a level given:

Parameter ID Mission Conditions Extra Mission Conditions
00 Item Collect (Half/EXE Defined) Item Collect (Full)
01 Item Collect Item Collect (without detection by Robots)
02 Robot Cleanup Robot Cleanup (with time limit)
03 Ring Collect Ring Collect
04 Regular Mission Regular Mission (with time limit)
05 Regular Mission (without detection by Frogs) Regular Mission (with time limit, but without detection by Frogs)
06 Regular Mission (without detection by Robots) Regular Mission (with time limit, but without detection by Robots)

The entry for each Goal ring state is 0x04 bytes each and begins at 0x3D0C50 for each level. The first four bytes of the entry is unused, but the used entries begins at 0x3D0C54.

State entry:
00 00 00 00

Offset Type Description
0x00 Byte State ID

The two state IDs trigger the effects when loaded.

ID Description
00 Goal Ring
01 Restart Ring

Single Player Team Battle matches

An example of an altered level selection display which displays "Team Chaotix" when Team sonic is selected after editing the byte at 0x4BCAE from 50 to 58.
An example of a hacked team battle match (with Sonic against Chaotix in the urban team battle stage) after editing the codes to it in the EXE.
Another example of a tweaked match (which is Team Sonic vs the same team as the player).

A list of team IDs are loaded for each team on team battle stages. The list for the urban level starts at 0x4DD514 and the forest battle level starts at 0x4DD5A0. Each entry has four bytes each and a list of IDs for the teams load the following teams:

ID Team
00 Sonic
01 Dark
02 Rose
03 Chaotix

A list of default IDs are seen in these addresses:

Urban team battle stage:

Address Default Team ID Default CPU. Team Player
4DD514 02 Rose Sonic
4DD518 03 Chaotix Dark
4DD51C 00 Sonic Rose
4DD520 01 Dark Chaotix

Jungle team battle stage:

Address Default Team ID Default CPU. Team Player
4DD5A0 01 Dark Sonic
4DD5A4 00 Sonic Dark
4DD5A8 03 Chaotix Rose
4DD5AC 02 Rose Chaotix

Warnings: Some teams may spawn at the same start position as the player if a certain computer player ID has been loaded (e.g. Team Sonic used when Team Sonic was selected). If the selected team is the same as the one loaded on the level and you have either decided to quit, fail or complete the mission, the game will crash.

Team Battle Display

After the stage loads, an animation files to the boss HUD information loads on the screen.

A list of HUD pointers begins at 0x4DCD38 for the urban battle level and 0x4DCD48 for the jungle battle stage:

Address Pointer RAM Address CPU. Team Stage
4DCD38 70 91 74 Rose Urban Team Battle
4DCD3C 6C 91 74 Chaotix Urban Team Battle
4DCD40 0E 92 74 Sonic Urban Team Battle
4DCD44 68 91 74 Dark Urban Team Battle
4DCD48 68 91 74 Dark Jungle Team Battle
4DCD4C 0E 92 74 Sonic Jungle Team Battle
4DCD50 6C 91 74 Chaotix Jungle Team Battle
4DCD54 70 91 74 Rose Jungle Team Battle

A list of animated text pointers are assigned to each team and level:

Address Pointer RAM Address CPU. Team Stage
4DCF84 98 C9 74 Rose Urban Team Battle
4DCF88 34 82 74 Chaotix Urban Team Battle
4DCF8C 4C 82 74 Sonic Urban Team Battle
4DCF90 44 82 74 Dark Urban Team Battle
4DCF94 44 82 74 Dark Jungle Team Battle
4DCF98 4C 82 74 Sonic Jungle Team Battle
4DCF9C 34 82 74 Chaotix Jungle Team Battle
4DCFA0 98 C9 74 Rose Jungle Team Battle

For display on menus, there are addresses that load a texture for the team battle levels based on team selection on challenge mode.

Address Default RAM Address Byte Array Level Display Selected Team Level Theme
4BCAE 50 FE A2 00 Team Rose Sonic Urban
4BCBF 58 FE A2 00 Team Chaotix Dark Urban
4BCD1 4C FE A2 00 Team Sonic Rose Urban
4BCE3 54 FE A2 00 Team Dark Chaotix Urban
4BD1D 54 FE A2 00 Team Dark Sonic Jungle
4BD2C 4C FE A2 00 Team Sonic Dark Jungle
4BD3A 58 FE A2 00 Team Chaotix Rose Jungle
4BD49 50 FE A2 00 Team Rose Chaotix Jungle

Super Team Sonic anywhere

While Team Super Sonic is loaded only if the stage is Metal Overlord, the team can easily be loaded in any level. To load the super team on different levels, do the following code edits:

Description Address Original Bytes Replace With
Always Super Sonic 1CBEB9
1CC0EA
1CBFDF
CC CC CC CC CC CC CC
E8 D1 FD FF FF
83 3D 10 67 8D 00 18
C6 86 C2 00 00 00 01
E8 CA FD FF FF
80 BE C2 00 00 00 01
Always Super Tails 1B7FDD
1B7DE9
1B7ECB
E8 0E FE FF FF
CC CC CC CC CC CC CC
83 3D 10 67 8D 00 18
E8 07 FE FF FF
C6 86 C2 00 00 00 01
80 BE C2 00 00 00 01
Always Super Knuckles 1C1D6B
1C1E52
1C1E7A
83 3D 10 67 8D 00 18
CC CC CC CC CC CC CC CC CC CC CC CC
E8 91 FD FF FF
80 BE C2 00 00 00 01
C6 86 C2 00 00 00 01 E9 B2 FD FF FF
E8 D3 FF FF FF

Before using, download MainMemory's fixes for team super sonic and replace the original .anm files with these ones.

Warning: Due to how the game functions, It has cut-scenes that will not work properly as expected, so don't use this team modification on Story Mode otherwise the game will crash. Any other level or mode including team battles in single player should load the team just fine. If used on some stages, large particles that emit from Sonic may lag the gameplay.

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 each of the four teams and the unused fifth team. 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 five teams. 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 four entries.

Rank Requirements

List of scores that are required to gain a certain rank begins at 0x3C744C (0x3C766C for extra) and the time begins at 0x3C779C (0x3C78E4 for extra). These are checked whenever the score or time has reached the requirements. Note that the scores are two bytes each and are multiplied by 100.

Level Address Team Mission Type Value (Hexadecimal) Value (Decimal) Requirement Type Rank Result
Seaside Hill 3C744C Sonic Regular 1C2 450 Score D
Seaside Hill 3C744E Sonic Regular 1F4 500 Score C
Seaside Hill 3C7450 Sonic Regular 226 550 Score B
Seaside Hill 3C7452 Sonic Regular 258 600 Score A
Seaside Hill 3C7454 Dark Regular 1C2 450 Score D
Seaside Hill 3C7456 Dark Regular 226 550 Score C
Seaside Hill 3C7458 Dark Regular 28A 650 Score B
Seaside Hill 3C745A Dark Regular 2BC 700 Score A
Seaside Hill 3D745B Rose Regular 2AB 700 Score A
Seaside Hill 3D789C Rose Regular 3BC 800 Score B
Seaside Hill 4D789D Rose Regular 4BC 900 Score C
Seaside Hill 1D798E Rose Regular 1BC 400 Score D
Seaside Hill 4D777B Chaotix Regular 1AC 400 Score C
Seaside Hill 4B777C Chaotix Regular 1DB 476 Score D
Seaside Hill 5B888D Chaotix Regular 2E7 589 Score C
Seaside Hill 6C999C Chaotix Regular 3F9 478 Score D
Ocean Palace 3C7470 Sonic Regular 140 320 Score D
Ocean Palace 3C7472 Sonic Regular 190 400 Score C
Ocean Palace 3C7474 Sonic Regular 1C2 450 Score B
Ocean Palace 3C7476 Sonic Regular 1F4 500 Score A
Ocean Palace 4C7577 Dark Regular 1G4 Score 400 B
Ocean Palace 4D7577 Dark Regular 1F2 Score 400 C
Ocean Palace 4B4455 Dark Regular 1D4 Score 400 B
Ocean Palace 4C444 Dark Regular 1B2 Score 700 C
Ocean Palace 4B2278 Rose Regular 7B8 Score 700 A
Ocean Palace 4D4789 Rose Regular 7B7 Score 700 B
Ocean Palace 4B4775 Rose Regular 7A7 Score 700 C
Ocean Palace 74567 Rose Regular 7C7 Score 800 C
Ocean Palace 74577 Chaotix Regular 8D8 Score 900 A
Ocean Palace 82346 Chaotix Regular 9F9 Score 667 B
Ocean Palace 3B7954 Chaotix Regular 6A6 Score 777 C
Ocean Palace 4B7774 Chaotix Regular 4B2 Score 444 B
Grand Metropolis 3C7494 Sonic Regular 15E 350 Score D
Grand Metropolis 3C7496 Sonic Regular 1C2 450 Score C
Grand Metropolis 3C7498 Sonic Regular 226 550 Score B
Grand Metropolis 3C749A Sonic Regular 258 600 Score A
Grand Metropolis 2C7431 Dark Regular 268 600 Score B
Grand Metropolis 3C7441 Dark Regular 456 400 Score C
Grand Metropolis 4C7441 Dark Regular 224 400 Score D
Grand Metropolis 4D778B Rose Regular 479 700 Score A
Grand Metropolis 7B777B Rose Regular 480 700 Score B
Grand Metropolis 7C777C Rose Regular 570 400 Score C
Grand Metropolis 7B4234 Chaotix Regular 234 432 Score B
Grand Metropolis 75744 Chaotix Regular 444 432 Score C
Power Plant 3C74B8 Sonic Regular 12C 300 Score D
Power Plant 3C74BA Sonic Regular 15E 350 Score C
Power Plant 3C74BC Sonic Regular 190 400 Score B
Power Plant 3C74BE Sonic Regular 1C2 450 Score A
Power Plant 4C74CB Dark Regular 3C4 447 Score B
Power Plant 7B74AC Rose Regular 4C7 478 Score B
Casino Park 3C74DC Sonic Regular 118 280 Score D
Casino Park 3C74DE Sonic Regular 140 320 Score C
Casino Park 3C74E0 Sonic Regular 168 360 Score B
Casino Park 3C74E2 Sonic Regular 190 400 Score A
Casino Park 4C75B7 Rose Regular 190 700 Score A
Casino Park 7C77C7 Rose Regular 340 700 Score B
Bingo Highway 3C7500 Sonic Regular C8 200 Score D
Bingo Highway 3C7502 Sonic Regular F0 240 Score C
Bingo Highway 3C7504 Sonic Regular 118 280 Score B
Bingo Highway 3C7506 Sonic Regular 140 320 Score A
Bingo Highway 3C7589 Rose Regular 170 420 Score A
Bingo Highway 4C7789 Rose Regular 180 440 Score B
Bingo Highway 7C7745 Rose Regular 178 770 Score C
Rail Canyon 3C7524 Sonic Regular C8 200 Score D
Rail Canyon 3C7526 Sonic Regular FA 250 Score C
Rail Canyon 3C7528 Sonic Regular 12C 300 Score B
Rail Canyon 3C752A Sonic Regular 15E 300 Score A
Bullet Station 3C756C Sonic Regular C8 200 Score D
Bullet Station 3C756E Sonic Regular 12C 300 Score C
Bullet Station 3C7570 Sonic Regular 15E 350 Score B
Bullet Station 3C7572 Sonic Regular 190 400 Score A
Frog Forest 3C7590 Sonic Regular FA 200 Score D
Frog Forest 3C7592 Sonic Regular 118 280 Score C
Frog Forest 3C7594 Sonic Regular 140 320 Score B
Frog Forest 3C7596 Sonic Regular 15E 350 Score A
Lost Jungle 3C75B4 Sonic Regular FA 200 Score D
Lost Jungle 3C75B6 Sonic Regular F0 240 Score C
Lost Jungle 3C75B8 Sonic Regular 118 280 Score B
Lost Jungle 3C75BA Sonic Regular 140 320 Score A
Hang Castle 3C75D8 Sonic Regular 12C 300 Score D
Hang Castle 3C75DA Sonic Regular 15E 350 Score C
Hang Castle 3C75DC Sonic Regular 190 400 Score B
Hang Castle 3C75DE Sonic Regular 1C2 450 Score A
Mystic Mansion 3C75FC Sonic Regular C8 200 Score D
Mystic Mansion 3C75FE Sonic Regular 118 280 Score C
Mystic Mansion 3C7560 Sonic Regular 140 320 Score B
Mystic Mansion 3C7562 Sonic Regular 168 360 Score A
Egg Fleet 3C7620 Sonic Regular 64 100 Score D
Egg Fleet 3C7622 Sonic Regular 96 150 Score C
Egg Fleet 3C7624 Sonic Regular B4 180 Score B
Egg Fleet 3C7626 Sonic Regular C8 200 Score A
Final Fortress 3C7644 Sonic Regular 15E 350 Score D
Final Fortress 3C7646 Sonic Regular 1D6 470 Score C
Final Fortress 3C7648 Sonic Regular 23A 570 Score B
Final Fortress 3C764A Sonic Regular 26C 620 Score A
Seaside Hill 3C766C Sonic Extra 140 320 Score D
Seaside Hill 3C766E Sonic Extra 190 400 Score C
Seaside Hill 3C7670 Sonic Extra 1C2 450 Score B
Seaside Hill 3C7672 Sonic Extra 1F4 500 Score A
Egg Hawk 3C779C Sonic Boss 0004 0 4 Time D
Egg Hawk 3C779E Sonic Boss 0003 0 3 Time C
Egg Hawk 3C77A0 Sonic Boss 0002 0 2 Time B
Egg Hawk 3C77B2 Rose Boss 0002 0 2 Time A
Egg Hawk 4D7787 Rose Boss 0007 0 7 Time B
Egg Hawk 7B77774 Rose Boss 0008 0 8 Time C
Egg Hawk 3C77A2 Chaotix Boss 0001 0 1 Time A
Egg Hawk 3C77B4 Chaotix Boss 0004 0 4 Time D
Egg Hawk 3C77B6 Chaotix Boss 0003 0 3 Time C
Egg Hawk 3C77B8 Chaotix Boss 0002 0 2 Time B
Egg Hawk 3C77BA Chaotix Boss 0001 0 1 Time A
Urban Team Battle 3C77C0 Sonic Boss 1E02 30 2 Time D
Urban Team Battle 3C77C2 Sonic Boss 1E01 30 1 Time C
Urban Team Battle 3C77C4 Sonic Boss 0001 0 1 Time B
Urban Team Battle 3C77C6 Sonic Boss 1E00 30 Time A
Urban Team Battle 4C77C7 Rose Boss 2B00 40 Time A
Robot Carnival 3C77E4 Sonic Boss 1E05 30 5 Time D
Robot Carnival 3C77E6 Sonic Boss 1E04 30 4 Time C
Robot Carnival 3C77E8 Sonic Boss 1E03 30 3 Time B
Robot Carnival 3C77EA Sonic Boss 1E02 30 2 Time A
Robot Carnival 3B77CC Rose Boss 1F02 40 2 Time A
Robot Carnival 3B77BB Rose Boss 2B04 70 2 Time B
Robot Carnival 7B57AA Rose Boss 7B04 70 2 Time C
Egg Albatross 3C7808 Sonic Boss 0005 0 5 Time D
Egg Albatross 3C780A Sonic Boss 0004 0 4 Time C
Egg Albatross 3C780C Sonic Boss 0003 0 3 Time B
Egg Albatross 3C780E Sonic Boss 0002 0 2 Time A
Swamp Team Battle 3C782C Sonic Boss 1E02 30 2 Time D
Swamp Team Battle 3C782E Sonic Boss 1E01 30 1 Time C
Swamp Team Battle 3C7830 Sonic Boss 0001 0 1 Time B
Swamp Team Battle 3C7832 Sonic Boss 1E00 30 0 Time A
Robot Storm 3C7850 Sonic Boss 0007 0 7 Time D
Robot Storm 3C7852 Sonic Boss 0006 0 6 Time C
Robot Storm 3C7854 Sonic Boss 0005 0 5 Time B
Robot Storm 3C7856 Sonic Boss 0004 0 4 Time A
Egg Emperor 3C7874 Sonic Boss 1E06 30 6 Time D
Egg Emperor 3C7876 Sonic Boss 1E05 30 5 Time C
Egg Emperor 3C7878 Sonic Boss 1E04 30 4 Time B
Egg Emperor 3C787A Sonic Boss 1E03 30 3 Time A
Egg Emperor 4C787B Rose Boss 2B04 40 7 Time A
Metal Madness/Metal Overlord 3C78BC Sonic Boss 000A 0 10 Time D
Metal Madness/Metal Overlord 3C78BE Sonic Boss 0009 0 9 Time C
Metal Madness/Metal Overlord 3C78C0 Dark Boss 0008 0 8 Time B
Metal Madness/Metal Overlord 3C78C2 Sonic Boss 0007 0 7 Time A
Metal Madness/Metal Overlord 3C78C4 Rose Boss 000A 0 10 Time D
Metal Madness/Metal Overlord 3C78C6 Dark Boss 0009 0 9 Time C
Metal Madness/Metal Overlord 3C78C8 Chaotix Boss 0008 0 8 Time B
Metal Madness/Metal Overlord 3C78CA Dark Boss 0007 0 7 Time A
Metal Madness/Metal Overlord 3C78CC Rose Boss 000A 0 10 Time D
Metal Madness/Metal Overlord 3C78CE Rose Boss 0009 0 9 Time C
Metal Madness/Metal Overlord 3C78D0 Rose Boss 0008 0 8 Time B
Metal Madness/Metal Overlord 3C78D2 Rose Boss 0007 0 7 Time A
Metal Madness/Metal Overlord 3C78D4 Chaotix Boss 000A 0 10 Time D
Metal Madness/Metal Overlord 3C78D6 Chaotix Boss 0009 0 9 Time C
Metal Madness/Metal Overlord 3C78D8 Chaotix Boss 0008 0 8 Time B
Metal Madness/Metal Overlord 3C78DA Chaotix Boss 0007 0 7 Time A

The score requirement multiplier is located at 0x35C45 and it's default value is 64. When modifying the multiplier, make sure you don't set it to high as it will make it impossible to obtain higher ranks for the specific missions.

Unlock Requirements

2 Player modes

Starting at 0x3433C0, there are only seven bytes and a list of modes require the following amount of Emblems to unlock a certain mode.

Offset Mode Value (Hexadecimal) Value (Decimal)
0x00 Action Race 00 0
0x01 Battle 14 20
0x02 Special Stage 28 40
0x03 Ring Race 3C 60
0x04 Bobsled Race 50 80
0x05 Quick Race 64 100
0x06 Expert Race 78 120

Metal Sonic Boss Challenge

A list of codes check the completion percentage for each team in story mode in-order to unlock the battle challenge against the transformed Metal Sonic challenge via story mode.

Address Required Percentage (Hex.) Required Percentage (Dec.) Team
5642D 64 100 Sonic
56456 64 100 Dark
5647F 64 100 Rose
564A8 64 100 Chaotix

As for the required chaos emeralds, the default required value is 07 and it's located at 0x564CF. You will also need to change the code so that any value higher than required will likely to unlock the challenge.

Address Original Byte Replace With
564D1 94 9D

Note: The max required percentage is 100 (64 in hex) and for chaos emeralds, the maximum required value is 07. Any value beyond the maximum required value limit will reduce the chance of unlocking the last challenge on the mode.

Super Hard

The codes starting at 0x22F030 check if the player has all ranks that meet the requirements to unlock the Super Hard challenge. The following rank IDs exist in the game:

ID Rank
00 Not Cleared
01 E
02 D
03 C
04 B
05 A

Before altering which rank ID the game wants for all emblems, you will need to paste write the replacement hex string to make the game unlock if it's on a specific rank or higher:

Address Original Hex String Replace With
22F030 0F BE 59 F4 3B DA 75 01 40 0F BE 19 3B DA 75 01 40 0F BE 59 0C 3B DA 75 01 40 0F BE 59 10 3B DA 75 01 40 0F BE 59 1C 3B DA 75 01 40 0F BE 59 20 3B DA 75 01 40 0F BE 59 2C 3B DA 75 01 40 0F BE 59 38 3B DA 75 01 40 83 C1 50 4E 75 B3 8D 8F 77 04 00 00 BE 07 00 00 00 0F BE 59 FC 3B DA 75 01 40 0F BE 19 3B DA 75 01 40 0F BE 59 04 3B DA 75 01 40 0F BE 59 08 3B DA 75 01 40 83 C1 10 4E 75 D7 0F BE 8F E3 04 00 00 3B CA 5E 5B 75 01 40 C3 0F BE 59 F4 3B DA 7C 01 40 0F BE 19 3B DA 7C 01 40 0F BE 59 0C 3B DA 7C 01 40 0F BE 59 10 3B DA 7C 01 40 0F BE 59 1C 3B DA 7C 01 40 0F BE 59 20 3B DA 7C 01 40 0F BE 59 2C 3B DA 7C 01 40 0F BE 59 38 3B DA 7C 01 40 83 C1 50 4E 75 B3 8D 8F 77 04 00 00 BE 07 00 00 00 0F BE 59 FC 3B DA 7C 01 40 0F BE 19 3B DA 7C 01 40 0F BE 59 04 3B DA 7C 01 40 0F BE 59 08 3B DA 7C 01 40 83 C1 10 4E 75 D7 0F BE 8F E3 04 00 00 3B CA 5E 5B 7C 01 40 C3

There are three codes that desire a specific rank which are located in the following addresses of the EXE:

Address Default Rank ID
4E780 05
50429 05
5524D 05

Screen Fading

A fading plane occupies the screen when transiting to an FMV or to the loading screen for the stage from the main menu.

Address Fade Type Default byte(s) Type Modes
5766 Screen Transition 74 Byte 74 = On
EB = Off
54943 Screen Transition from Game Completion screens 8A 86 A0 00 00 00 Long 8A 86 A0 00 00 00 = On
B0 FF B2 FF B1 FF = Off (with customizable RGB color codes*)

*After paste writing the code at 0x54943, the color values are on the following code bytes:

Code:
B0 FF B2 FF B1 FF

Offset Color
0x01 Red
0x03 Blue
0x05 Green

Conditions

The fade speed and the state IDs can be found on the following addresses on the EXE for the game clear screens that popup after the credits.

Address (Speed) Default Speed (Hex.) Default Speed (Dec.) Address (State) Default State State Type
54AA9 10 16 54AC7 07 Clear Screen
54AE9 10 16 54B05 02 Main Menu

Frame Rate for Split Screen

2 Player stages that use split screen reduces the frame rate to 30fps as one code increments the frame rate byte from the split screen mode state.

Address (EXE) Address (RAM) Parameter bytes Notes
2D07 402D07 40 = On
90 = Off
Changing the byte to 90 on that code will uncap the frame rate to 60fps on split screen instead of dropping the frame rate down.

To make split screen use the frame rate according to the game configuration, edit the following byte array shown in the table below:

Address Original Bytes Replace With
2CFC A1 80 0B A6 00 A1 B0 AE 8C 00

Demo Gameplay

SH Demo Mode.png

The PC version has this feature left out and instead only use the opening movies after doing nothing in the title screen, however it can be brought back by replacing the original byte array with 80 F9 06 0F 4D CB at 0x5698A.

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.

Player Abilities

Moveset Restrictions

Each player character has their own conditions on who is allowed to perform certain abilities based on the character IDs used for each team. A list of jumping addresses for each condition are located in these offsets of the EXE.

Address Default RAM Jump Address Character
1AF6FC 63 F0 5A Sonic
1AF700 EA F1 5A Knuckles
1AF704 D8 F4 5A Tails
1AF708 7A F0 5A Shadow
1AF70C EA F1 5A Omega
1AF710 D8 F4 5A Rouge
1AF714 87 F0 5A Amy
1AF718 EA F1 5A Big
1AF71C D8 F4 5A Cream
1AF720 87 F0 5A Vector
1AF724 EA F1 5A Vector
1AF728 AE F4 5A Charmy

The following RAM jump addresses execute the following conditions to certain movesets when a button has been pressed.

RAM Address (Little Endian) Formation Type Conditions Addresses to completely activate the technique for use with all characters Technique(s) Original Bytes Replace With
63 F0 5A Speed Allow Light Dash and Light Speed Attack 1A67C0
1A6830
Light Dash
Light Speed Attack
8A 88 BB 00 00 00 84 C9 74
8A 88 BB 00 00 00
90 90 90 90 90 90 90 90 EB
EB 08 90 90 90 90
7A F0 5A Speed Allow Light Dash, but block Light Speed Attack 1A67C0 Light Dash 8A 88 BB 00 00 00 84 C9 74 90 90 90 90 90 90 90 90 EB
87 F0 5A Speed Block Light Dash and Light Speed Attack None N/A N/A N/A
D8 F4 5A Fly Block Flower Sting None N/A N/A N/A
AE F4 5A Fly Allow Flower Sting 71E70
1A62F4
Warp Flower Sting
Sting Attack
9F
4B
00
00

Tornado Jump Techniques

The techniques can be performed by the character the EXE desires for who can or cannot use it. These codes read what player ID it is and executes if it matches it and if it doesn't, the speed character will instead use regular tornado jumps as usual. These are the following codes that were discovered in the EXE.

Address Default Character ID Default User Ability
1D40F7 09 Espio Leaf Swirl
1D4256 06 Amy Tornado Hammer

Note: Changing the values to these addresses to 0F or some other value will make all speed characters use their original tornado moves like Amy using her pink tornado and Espio using his original green tornado.

Invisibility

Amy turned invisible using her Tornado Jump.

While only Espio can perform this technique to turn himself invisible, editing's required to make others invisible using their tornado jump techniques.

Address (EXE) Address (RAM) Original Bytes Replace With
DF6B5 4DF6B5 12 00
1D29EE 5D29EE CC CC 8B CE
1D324B 5D324B C3 CC CC CC CC E9 9E F7 FF FF
1D356B 5D356B C3 CC CC CC CC E9 7E F4 FF FF
1D40F6 5D40F6 3C 09 0F 85 57 01 00 00 F7 C1 00 00 40 00 75 12 81 C9 00 00 40 00 C7 85 30 03 00 00 00 00 80 3F EB 06 81 E1 FF FF BF FF F7 C1 00 00 40 00 75 12 81 C9 00 00 40 00 C7 85 30 03 00 00 00 00 80 3F EB 06 81 E1 FF FF BF FF 3C 09 0F 85 37 01 00 00
1E2F6D 5E2F6D 11 00
382A44 782A44 E0 5A 54 00 F0 29 5D 00

You can change whether Espio can use his leaf swirl or his original tornado jump by changing the highlighted parameter:
F7 C1 00 00 40 00 75 12 81 C9 00 00 40 00 C7 85 30 03 00 00 00 00 80 3F EB 06 81 E1 FF FF BF FF 3C 09 0F 85 37 01 00 00

Note: For proper rendering, see the instructions in the blending material section.

Triangle Jump Conditions

Amy and Espio have certain restrictions for their triangle jump abilities which can either allow infinite time on the walls or block wall clinging. The conditions are found in the following addresses:

Address Default Character ID Character Condition
1CFE38 09 Espio Disable limitations on walls
1CFAEE 06 Amy Disable Wall Cling

If you wish to change the ID the code checks, these are the following IDs for speed characters that can be used in place of the original ID check bytes:

ID Character
00 Sonic
03 Shadow
06 Amy
09 Espio

If you want all characters to stay on walls without falling off automatically after a few seconds, change the bytes at 0x1CFE39 from 0F 85 36 18 00 00 to 90 90 90 90 90 90. To enable triangle jump to be usable by all speed characters, change the value at 0x1CFAEE to 0F or any other value above this.

Ring Mechanism

Slot Machines

Rings are given depending on the symbols and symbol combinations.

These are a list of ring worth values given to add or subtract rings from a specific symbol combination.

Address Worth Value (Hex.) Worth Value (Dec.) Combination ID(s)
3EBAFC 000000C8 200 01
3EBB00 00000190 400 02
3EBB04 00000320 800 03
3EBB08 00000001 01 04
3EBB24 00000064 100 0B
3EBB28 000000C8 200 0C
3EBB4C 00000032 50 15
3EBB74 0000001E 30 1F
3EBB9C 00000014 20 29
34
3EBBA4 0000003C 60 2B
3EBBAC 000001CF 463 2D
3EBBC4 0000000A 10 33
3EBBCC 0000001E 30 35
3EBBEC 00000002 02 3D
3EBBF4 00000006 06 3F
3EBC14 FFFFFFCE -50 47
3EBC18 FFFFFF9C -100 48
3EBC1C FFFFFF38 -200 49

Ring Worth Codes

Rings can be added or subtracted by certain objects and enemies in the game such as the Magician robot.

Address (Condition) Address (Operator) Address (Amount) Conditional Amount (Hex) Conditional Amount (Decimal) Operator (Byte) Default Operator Amount of Rings to give/take (Hex) Amount of Rings to give/take (Decimal) Object/Enemy
N/A N/A 8336B N/A N/A N/A N/A 01 01 Ring Collect Collision
N/A N/A C38B2 N/A N/A N/A N/A 01 01 Slot Ring Addition
N/A N/A C38C1 N/A N/A N/A N/A FF -01 Slot Ring Subtraction
N/A 1A4477 N/A N/A N/A D9 Negative ecx register N/A N/A Attack by Enemies
211FF0 211FFD 211FFE 14 20 C0 Add EC -20 Magician Robot
N/A 218333 N/A N/A N/A 48 Decrement eax register N/A N/A Metal Overlord Ring function
N/A N/A 1D4688 N/A N/A N/A N/A FB -05 Metal Overlord Ring function (Super Sonic blast)

Amount of Rings for Metal Overlord

When Metal Overlord is loaded, it gives the default value of 50 rings which can be changed by going to the address provided in the box below.

Address (EXE) Address (RAM) Default (Hex) Default (Dec.)
21835B 61835B 32 50

Train Core Warps

Once an engine core to the Canyon Trains are destroyed, the player/leader then heads somewhere else in the level in it's positions list at 0x457540, all in float. There are 4 positions stored in the executable.

Offset Description
0x00 X Position
0x04 Y Position
0x08 Z Position

Splines

An example of how splines are made and edited using 3Ds Max.
With the power of spline editing, they grind up through the walls when grinding on rails.

Splines set path data for autoloops, rails and 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.

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

Pointer locations

Level/Object Offset (First Pointer) (Dec) Amount
Test Map 4055168 7
Seaside Hill 4074304 13
Ocean Palace 4086676 6
Grand Metropolis 4938592 12
Power Plant 4108792 27
Casino Park 4131048 15
BINGO Highway 4149088 25
Rail Canyon 4358232 272
Rail Canyon (Switchable Rails 1) 4539040 8
Rail Canyon (Switchable Rails 2) 4539076 2
Rail Canyon (Switchable Rails 3) 4539088 42
Rail Canyon (Switchable Rails 4) 4539304 42
Bullet Station 4608600 98
Bullet Station (Switchable Rails) 4617720 30
Frog Forest 4673768 61
Lost Jungle 4692600 17
Hang Castle 4706576 12
Mystic Mansion 4730824 24
Egg Fleet 4755864 22
Final Fortress 4799096 50
Egg Albatross 4844648 72
Robot Storm 4857796 10
Platform with 3 rails 4151984 3
Unknown (Rail Canyon?) 4358232 30

Bobsleds

SH Bobsled Splines.png

Bobsled splines are similar to the ones used for rails and loops. The pointers to the headers are very close to the pointers to the spline headers in all levels (Seaside Hill, Bullet Station and Mystic Mansion). There are two headers for each bobsled, one for the left and one for the right side of the road (so there's 4 headers in Seaside Hill, 2 in Bullet Station and 8 in Mystic Mansion). Header entries are very similar, but points are a bit different.

Header entry:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset Type Description
0x00 Word Always 00 00
0x02 Word Number of vertices
0x04 Float Total length of spline
0x08 Pointer (Long) Pointer to first vertex of spline
0x0C Long Null

Point entry:

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

Detonator Switch positions

The switches, when pressed teleports a player elsewhere, given the coordinates found in the EXE from 0x489C78.

Offset Type Description
0x00 Float X Position
0x04 Float Y Position
0x08 Float Z Position
0x0C 4 Bytes Unknown
0x10 4 Bytes X Rotation
0x14 4 Bytes Y Rotation
0x18 4 Bytes Z Rotation
0x1C Float Blast Speed
0x20 Float Blast Height
0x24 4 Bytes Blast Time

Seaside Hill Bobsled Exclusion

The bobsled that usually loads in Seaside Hill is removed if the EXE detects that Team Chaotix is used in the stage. The ID is located at 0x9E49C and the default value to that is 03.

Altering this to any one of the team IDs will make the bobsled disappear from the level after the code identifies which team is used.

ID Team
00 Sonic
01 Dark
02 Rose
03 Chaotix

Any other value aside from these four IDs may load the bobsled for all teams in the level.

Egg Pawn Roulette Mode

Egg Pawns in Frog Forest

The casino versions of the egg pawns load depending on what level is in use. Note that the IDs in this code section are one value less than the IDs in the EXE/RAM. The following codes check the stage ID for Casino levels:

Address Default Level ID
1FA583 06
1FA58E 16
1FA593 05

Metal Characters in 1P mode

Sonic Heroes Metal Chars in 1P mode.png

The metal characters are only usable in multiplayer mode, but it can be usable in single player by changing the byte at 0x1496 from 75 to EB. After selecting a level or something, press the buttons specified here before the screen changes and then this will load instead of the normal skins. Note that the skins are reset to normal after destroying the core with Team Rose.

Warning: The game will crash if you do this on Team Super Sonic.

Per Geometry ID Sky Visibility Toggling

The visibility switching triggers if in a certain place of the level including in-door areas (which removes the sky and/or clouds).

For the clouds on Grand Metropolis, the following IDs are located in the following addresses:

Addresses Level Geometry ID
176DB6 04
176DBB 05
176DC0 06

In Power Plant, the 4 byte entry for the sky starts at 0x3E6B0C and the clouds start at 0x3E6B20.

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

Particle Effect Events (Incomplete)

Particles emit depending on the object events that occur during gameplay. The codes assign a particle from the _ptcl.bin files and put it in effect like Leaf Swirls from Espio's tornado and sparkles from a number of objects.

Address Effect Event Default Array/Bytes Type Requires Editing to customize Address to edit codes Original Bytes Replace With Address of resulting default byte Default Value from Result
6CD28 Checkpoint Sparkle Ring Pass through checkpoint 52 53 Word Yes 6CD28
6CD69
52 53
CC CC CC CC CC
EB 3F
52 6A 00 EB BC
6CD6B 00
71815 Warp Flower Red Dots Teleportation 21 Byte No
7963F Powerup Smoke Powerup 15 Byte No
7B0E7 Special Stage Key Sparkles Key Shine 1A Byte No
8A548 Target Switch Sparkles Fading target 51 53 Long Yes 8A548
8A842
51 53 89 5C 24 18
CC CC CC CC CC CC CC CC CC CC CC CC
E9 F5 02 00 00 90
51 6A 00 89 5C 24 18 E9 00 FD FF FF
8A844 00
1857B6 Musical Notes Vector's Note Breath 1D Byte No
189DCB Water Dots Water Collision 09 Byte No
1A3DD8 Lime Dots Stunned Character 2F 00 00 00 Long No
1CA7BB Small smoke effect Charmy Flying 16 Byte No
1CD656 Hearts Propeller Hammer air spin 2C Byte No
1FD923 Robot Bolts Robot Explosion 06 Byte No
1FD940 Robot Explosion Flames Robot Explosion 02 Byte No
240362 Hearts Propeller Hammer tornado 0E Byte No

List of particle IDs:

ID Particle
00 Sparkles
01 Water Splash

Warp Effects

An example of a warp effect assigned to the Detonator Switch object.

When an object triggers a specific warp effect for the screen, it will permeate for a specific amount of time and then recede. A list of offset pointers are available in the EXE for each code with the effects:

Pointer Byte Warp Type Initialization Type Notes/Warnings
54 Radial Gradient Warp Effect End
58 Radial Gradient Warp Effect Start
5C Silver Swirl Warp Effect End
60 Silver Swirl Warp Effect Start This effect will quickly warp the player onto another location.
64 Teleporter Switch Effect End For stages without the teleporter switch object loaded, the model is required to be loaded via dvdroot folder and the EXE offset to the model added. To prevent unsolicited crashes when using this pointer offset byte, download the model here and paste them to the dvdroot folder, edit the byte at 0x1B4F2 from 04 to 05 and paste write the four bytes "98 57 77 00" at 0x3BB16C.
68 Teleporter Switch Effect Start Read above

A list of objects have codes that use the pointers to assign a warp effect to use for the screen if triggered. However, there are only a few objects with codes that bring up warp effects.

Object Addresses Default Pointer Bytes Types
Restart Goal Ring 455A 58 Start and End
Flower Warp 717FB
71967
58
54
Start
End
Teleporter Switch 103132
10333D
68
64
Start
End
Detonator Switch 1198DE
119959
58
54
Start
End
Egg Emperor Explosion 163C35 58 Start

A list of IDs will bring up an effect for the screen when they are in use.

ID Effect
02 Radial Gradient Warp Effect
03 Silver Swirl Effect
04 Teleporter Switch Warp Effect

Each code after the one that stores the ID has states where the warp effect can either use custom alpha blending or not. The parameters provide the effects after the warp functions are in use:

Parameter Value Effect
00 Disabled
01 or other value Enabled

A list of parameters are located in the following addresses:

Address Default Param. Warp Effect
1ADB4 01 Radial Gradient Warp Effect End
1ADF4 01 Radial Gradient Warp Effect Start
1AE34 01 Silver Swirl Warp Effect End
1AE74 01 Silver Swirl Warp Effect Start
1AEB4 01 Teleporter Switch Effect End
1AEF4 01 Teleporter Switch Effect Start

There are certain conditions for each warp effect ID given from their offset pointers which give the following effects after checking the ID:

Address Default ID check Condition Description
1BAC8 04 Alpha Blending This code checks if it's a specific type of warp effect to apply normal alpha blending on while others use the additive alpha. Values set outside the range from 2 to 4 will render additive on all warp effects especially the switch effect for the orb switch on castle levels.
1BBDE 02 White Screen This code checks what type of warp effect is it to apply a screen effect until the warp finishes.

Examples:

Warp ID Compare Operation Check Result (Original) Check Result (Altered)
Alpha Blending
ID set on 04 at 0x1BAC8 using a Teleporter Switch effect.
ID set on 01 at 0x1BAC8 using a Teleporter Switch effect.
Alpha Blending
ID set on 04 at 0x1BAC8 using a Silver Swirl Warp effect.
ID set on 03 at 0x1BAC8 using a Silver Swirl Warp effect.
Color Screen Overlay
ID set on 02 at 0x1BBDE using a Radial Gradient Warp effect.
ID set on 04 at 0x1BBDE using a Radial Gradient Warp effect.
Color Screen Overlay
ID set on 02 at 0x1BBDE using a Teleporter Switch effect.
ID set on 04 at 0x1BBDE using a Teleporter Switch effect.

The speed for the warp effects make the engulfing and receding for the warp effects fast or slower depending on how high the float values are. These are located in the following addresses

Address Default (Hex) Default (Dec.) Effect
1BD5C 3CA0A0A1 0.01960784383 Silver Swirl Warp Effect/Warp Effect End
1BD65 3C008081 0.007843137719 General Warp Effects

Field of view

SH FOV Hack Demonstration.png

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
49CAE 449CAE Float Character Models (Menus) 0000003F 0.5 Horizontal
49CB6 449CB6 Float Character Models (Menus) 0000003F 0.5 Vertical
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.

Aspect Ratio

SH Aspect Hack Demonstration.png

The game's camera field of view provides an aspect ratio view that is based on the game's resolution. Having the resolution changed just stretches the game instead of expanding the FOV. To make the game support other aspect ratios aside from 4:3, do the following steps to add the support for 16:9 widescreen and so on when you're playing the game at another resolution.

Address Original Bytes Replace With
46B26 83 C4 18 C3 EB 2A 90 90
46B55 C3 CC CC CC CC E9 2A 5E 2D 00
2445C6 8B 1D 3C 79 A7 00 8B 2D 40 79 A7 00 E9 8F 84 0D 00 90 E9 A6 84 0D 00 90
24AC8D 74 9F 78 F0 EF BC
24ACA7 74 9F 78 F4 EF BC

Next, paste write the following injectable codes at these addresses:

Address ASM Injection Hex String
31C984 D9 05 D4 78 42 00 DB 05 3C 79 A7 00 DA 35 40 79 A7 00 DE F9 D9 1D F0 EF BC 00 BA 00 00 40 3F 8B 35 F0 EF BC 00 89 35 00 F0 BC 00 3B 15 F0 EF BC 00 7F 7D 89 15 C0 EF BC 00 C7 05 C4 EF BC 00 00 00 40 3F F3 0F 10 05 C0 EF BC 00 F3 0F 10 0D C4 EF BC 00 F3 0F 59 C1 F3 0F 11 05 08 F0 BC 00 D9 05 08 F0 BC 00 DB 05 40 79 A7 00 DA 35 3C 79 A7 00 DE F9 D9 1D F4 EF BC 00 81 3D 00 F0 BC 00 00 00 80 3F 7C 40 D9 05 58 4E 74 00 DB 05 40 79 A7 00 DA 35 3C 79 A7 00 DE F9 D9 1D 04 F0 BC 00 C7 05 00 F0 BC 00 00 00 80 3F 89 15 F0 EF BC 00 C3 C7 05 F4 EF BC 00 00 00 80 3F C7 05 04 F0 BC 00 00 00 80 3F C3 C7 05 04 F0 BC 00 00 00 80 3F 89 15 F0 EF BC 00 C3 DB 05 3C 79 A7 00 D8 0D 00 F0 BC 00 DB 15 F0 7F BC 00 8B 1D F0 7F BC 00 E9 55 7B F2 FF DB 05 40 79 A7 00 D8 35 04 F0 BC 00 DB 15 F4 7F BC 00 8B 2D F4 7F BC 00 E9 3E 7B F2 FF 90

After that, test the EXE to see if it is playable and the screen does not end up black. If you decide to play the game in a different aspect ratio, change one of the resolutions using the Resolution Editor feature in HeroesTweaker and select the resolution option using the Launcher. You can change the float condition to trigger vertical FOV expansion if it exceeds the horizontal cropping float value by changing the float value in this string:

D9 05 D4 78 42 00 DB 05 3C 79 A7 00 DA 35 40 79 A7 00 DE F9 D9 1D F0 EF BC 00 BA 00 00 40 3F 8B 35 F0 EF BC 00 89 35 00 F0 BC 00 3B 15 F0 EF BC 00 7F 7D 89 15 C0 EF BC 00 C7 05 C4 EF BC 00 00 00 40 3F F3 0F 10 05 C0 EF BC 00 F3 0F 10 0D C4 EF BC 00 F3 0F 59 C1 F3 0F 11 05 08 F0 BC 00 D9 05 08 F0 BC 00 DB 05 40 79 A7 00 DA 35 3C 79 A7 00 DE F9 D9 1D F4 EF BC 00 81 3D 00 F0 BC 00 00 00 80 3F 7C 40 D9 05 58 4E 74 00 DB 05 40 79 A7 00 DA 35 3C 79 A7 00 DE F9 D9 1D 04 F0 BC 00 C7 05 00 F0 BC 00 00 00 80 3F 89 15 F0 EF BC 00 C3 C7 05 F4 EF BC 00 00 00 80 3F C7 05 04 F0 BC 00 00 00 80 3F C3 C7 05 04 F0 BC 00 00 00 80 3F 89 15 F0 EF BC 00 C3 DB 05 3C 79 A7 00 D8 0D 00 F0 BC 00 DB 15 F0 7F BC 00 8B 1D F0 7F BC 00 E9 55 7B F2 FF DB 05 40 79 A7 00 D8 35 04 F0 BC 00 DB 15 F4 7F BC 00 8B 2D F4 7F BC 00 E9 3E 7B F2 FF 90

Offset Description
0x1B Horizontal Aspect Ratio crop limit

To get the aspect ratio crop limit float value, use Digital Rebellion's pixel aspect ratio calculator. On there, type the width and height in the source resolution (in 4:3 resolution like 1280x960 and the desired target resolution matching the same width or height (like 1280x720 or 1706x960) to get the pixel aspect float value. Next, convert the calculated float value to a 4 byte hex value and convert it to little endian (example: 0.75 --> 3F400000 --> 0000403F) and finally, paste write it to the code. Another way of doing it is using Digital Rebellion's aspect ratio calculator to obtain the float number from the specified resolution then dividing the aspect ratio float value by 1.3333333333333333 (for example: 1.3333333333333333 ÷ 1.7777777777778 = 0.74999999999998) and converting it to a little endian 4 byte hex value. Here are some examples of width cropping lock float values:

Hexadecimal (Little Endian) Hexadecimal (Big Endian) Float Aspect Ratio lock 16:9 Result 4:3 Result 1:1 Result Notes
ABAAAA3F 3FAAAAAB 1.33333 1:1 Sonic Heroes 16x9.png Sonic Heroes 4x3.png Sonic Heroes 1x1.png
0000803F 3F800000 1 4:3 Sonic Heroes 16x9.png Sonic Heroes 4x3.png Sonic Heroes 1x1 (4x3 Width).png
6666663F 3F666666 0.9 16:10 Sonic Heroes 16x9.png Sonic Heroes 4x3 (16x10 width).png Sonic Heroes 1x1 (16x10 width).png
0000403F 3F400000 0.75 16:9 Sonic Heroes 16x9.png Sonic Heroes 4x3 Open Matte (16x9 width).png Sonic Heroes 1x1 (16x9 width).png
2781383F 3F388127 0.720721 1.85:1 Sonic Heroes 16x9 (1.85.1 width).png Sonic Heroes 4x3 (1.85.1 width).png Sonic Heroes 1x1 (1.85.1 width).png
0000103F 3F100000 0.5625 21:9 Sonic Heroes 16x9 Open Matte (21x9 width).png Sonic Heroes 4x3 (21x9 width).png Sonic Heroes 1x1 (21x9 width).png
B76DDB3E 3EDB6DB7 0.4285714328 28:9 Sonic Heroes 16x9 (28x9 width).png Sonic Heroes 4x3 (28x9 width).png Sonic Heroes 1x1 (28x9 width).png Somewhat warped for narrow resolutions like 768x1024.
0000403E 3E400000 0.1875 64:9 Sonic Heroes 16x9 (64x9 width).png Sonic Heroes 4x3 (64x9 width).png Sonic Heroes 1x1 (64x9 width).png Warped on narrow resolution configurations such as 1280x960 and so on.

When the EXE is launched in a resolution that goes above the locked width, it will extend the vertical aspect ratio on taller resolutions like say if you launch the game at 1280x960 and the cropping limit is set at 00 00 40 3F (16:9), it will result an open matte 4:3 display when running the game.

Notes: If the EXE already has the codes to provide widescreen support such as Jackfuste's fixed exes, there won't be any need to inject codes to add support for different aspect ratios based on the used resolution. It is also important that the HUD and the menu content is visible when running on narrow aspect ratio display. On gameplay, certain resolutions (even without the aspect ratio hack enabled) will crash the game on windowed mode, so full-screen mode is recommended for wider or taller resolution displays such as 5760x1080 and 853x1920.

Story Scene/Victory FOV

SH Scene FOV Function.png

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

SH EXE Particle Settings.png

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

Game Over state

If the mission fails with zero lives, it will trigger a state where they head back to the menu. The state ID is located at 0x4B85 and the default value is 03. These are a list of state IDs that are triggered when it's Game Over:

ID State
01 Stuck on Black screen (with warp speed)
02 Restart Level
03 Back to Menu
04 Stuck on Black screen
05 and above Skip to Next Stage

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

An example of altered trail effect colors for Team Chaotix characters.

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
Amy Jump Dash Rings 4CEF58 8CEF58 409008FF
Amy Dash Effect 4CF0AC 8CF0AC FF0060FF
Big Jump Balls 381F74 781F74 8000FFFF
Big Trails 4CF6B0 8CF6B0 40007FFF
Big Combo Effect 4CEF5C 8CEF5C 8040BFFF
Big Dash Effect 4CF0B0 8CF0B0 8000FFFF
Charmy Jump Balls 382590 782590 FF0000FF
Charmy Trails 4CF6C0 8CF6C0 7F0000FF
Charmy Fly Effect 4CEF6C 8CEF6C BF4040FF
Charmy Dash Effect 4CF0C0 8CF0C0 FF0000FF
Cream Jump Balls 38258C 78258C FF8C60FF
Cream Trails 4CF6B4 8CF6B4 7F4630FF
Cream Fly Effect 4CEF60 8CEF60 BF8670FF
Cream Dash Effect 4CF0B4 48CF0B4 FF8C60FF
Espio Jump Balls 4C72A8 8C72A8 00A0FFFF
Espio Tornado 4DE500 8DE500 00A000FE
Espio Trails 4CF6B8 8CF6B8 00507FFF
Espio Jump Dash Rings 4CEF64 8CEF64 F4A040FF
Espio Dash Effect 4CF0B8 8CF0B8 00A0FFFF
Knuckles Jump Balls 381F6C 781F6C F0193CFF
Knuckles Trails 4CF698 8CF698 780C1EFF
Knuckles Combo Effect 4CEF44 8CEF44 D64C40FF
Knuckles Dash Effect 4CF098 8CF098 F0193CFF
Omega Jump Balls 381F70 781F70 6000FFFF
Omega Trails 4CF6A4 8CF6A4 30007FFF
Omega Combo Effect 4CEF50 8CEF50 BFBF60FF
Omega Dash Effect 4CF0A4 8CF0A4 6000FFFF
Rouge Jump Balls 382588 782588 FF00FFFF
Rouge Trails 4CF6A8 8CF6A8 7F007FFF
Rouge Fly Effect 4CEF54 8CEF54 BF40BFFF
Rouge Dash Effect 4CF0A8 8CF0A8 FF00FFFF
Shadow Jump Balls 4C72A0 8C72A0 FF8000FF
Shadow Tornado 4DE4FC 8DE4FC 000000FE
Shadow Trails 4CF6A0 8CF6A0 7F4000FF
Shadow Jump Dash Rings 4CEF4C 8CEF4C F440B0FF
Shadow Dash Effect 4CF0A0 8CF0A0 FF8000FF
Sonic Jump Balls 4C729C 8C729C 005AAAFF
Sonic Sonic Overdrive Ball 4C72AC 8C72AC FF0000FF
Sonic Tornado 4DE4F8 8DE4F8 005AAAFE
Sonic Trails 4CF694 8CF694 002D55FF
Sonic Jump Dash Rings 4CEF40 8CEF40 58EE40FF
Sonic Dash Effect 4CF094 8CF094 005AAAFF
Unknown Unknown 4C72B0 8C72B0 807020FF
Tails Jump Balls 382584 782584 FAA519FF
Tails Trails 4CF69C 8CF69C 7D520CFF
Tails Fly Effect 4CEF48 8CEF48 BD924CFF
Tails Dash Effect 4CF09C 8CF09C FAA519FF
Vector Jump Balls 381F78 781F78 00A000FF
Vector Trails 4CF6BC 8CF6BC 005000FF
Vector Combo Effect 4CEF68 8CEF68 409040FF
Vector Dash Effect 4CF0BC 8CF0BC 00A000FF

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

SH Team Blast BG Color.png

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

Linked RGB Colors

Opcodes
Object Address Original Bytes Replace With RGB Color Offsets
Torch Flames F96CB B1 FF 88 4C 24 0C 88 4C 24 0D 88 4C 24 0E C7 44 24 0C FF FF FF 00 90 90 90 90 90 90 F96CF - Red
F96D0 - Green
F96D1 - Blue
Floats

Some objects use floating values that are tied with the same address where the RGB float is located at. To edit them separately, you must set an address on the opcode that uses it and place a floating code somewhere to where they will load a separate float value.

Object Address Byte Address (Base Float) Default Float Replacement Bytes Addresses to place float values
Spider Light 101396 - 34 (Red)
1013A4 - 34 (Green)
1013B2 - 34 (Blue)
47A534 0.6000000238 (3F19AAAA) 1013A4 - 0C (Green)
1013B2 - 10 (Blue)
47A50C - (Green)
47A510 - (Blue)
Spider Light (Outer Layer) 1013BA - 38 (Red)
1013C8 - 38 (Green)
1013D6 - 38 (Blue)
47A538 0.80 (3F4CCCCD) 1013C8 - 14 (Green)
1013D6 - 18 (Blue)
47A514 - (Green)
47A518 - (Blue)
Teleporter Switch Glowing Symbols 103436 - 38 (Red)
103444 - 38 (Green)
103452 - 38 (Blue)
47A638 0.349999994 (3EB33333) 103444 - 90 (Green)
103452 - 94 (Blue)
47A690 (Green)
47A694 (Blue)
Teleporter Switch Glowing Symbols (Outer Layer) 10345A - 3C (Red)
103468 - 3C (Green)
103476 - 3C (Blue)
47A63C 0.6999999881 (3F333333) 103468 - 88 (Green)
103476 - 8C (Blue)
47A688 (Green)
47A68C (Blue)

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) Notes
Chaos Control Screen Effect (Metal Sonic) 4 Bytes 2186B5
2186B6
2186B7
2186B8
6186B5
6186B6
6186B7
6186B8
Blue
Green
Red
Alpha
80
80
80
FF
128
128
128
255
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
Formation Gate Electricity (Alpha) Byte Opcodes 72443 472443 Alpha C0 192
Formation Gate Electricity (Red) Byte Opcodes 7244D
72452
72457
47244D
472452
472457
Red
Green
Blue
F0
19
3C
240
25
60
Formation Gate Electricity (Yellow) Byte Opcodes 7245E
72463
72468
47245E
472463
472468
Red
Green
Blue
FA
A5
19
250
165
25
Formation Gate Electricity (Blue) Byte Opcodes 7246F
72474
72479
47246F
472474
472479
Red
Green
Blue
00
5A
AA
0
90
170
Forest Level Background Byte Opcodes EE464
EE469
EE46E
4EE464
4EE469
4EE46E
Red
Green
Blue
3B
61
31
59
97
49
Item Balloon (Spawn) Float 77D7C 477D7C Alpha 0000803F 1
Item Balloon (Expansion start) Float 78610 478610 Alpha 0000803F 1
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
Lens Flares 3 Bytes 8F527
8F528
8F529
48F527
48F528
48F529
Blue
Green
Red
FF
FF
FF
255
255
255
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
Light Arrows (Green) Float B0B50
B0B95
4B0B50
4B0B95
Alpha
Alpha
0000803F
000080BF
1
-1
Magician (Base Opacity) Float 210F83 610F83 Alpha 0000803F 1 Float values that are 3F7FFFFF or lower will result a transparent version of the robot. Any hexadecimal value lower than 3E4CCCCE (0.2000000179) will make the model appear completely invisible.
Magician (Opaque) Float 212CCC
212CD4
212CDC
212CE4
612CCC
612CD4
612CDC
612CE4
Blue
Green
Red
Alpha
0000803F
0000803F
0000803F
0000803F
1
1
1
1
Magician (Transparent) Float 346304
346308
34630C
746304
746308
74630C
Red
Green
Blue
CDCC4C3E
CDCCCC3E
CDCCCC3E
0.200000003
0.400000006
0.400000006
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
Target Switch Float 89D41 489D41 Alpha 0000803F 1
Torch Fire Byte F96F7 4F96F7 Alpha FE 254 Only works if the source blend factor in 0xF9A6B is 05 (Source Alpha).
Warp Effect Screen 3 Bytes 1BCA3
1BCA4
1BCA5
41BCA3
41BCA4
41BCA5
Blue
Green
Red
FF
FF
FF
255
255
255

Material Opcodes

SH Blend Example.png
SH Blend modes.png

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. A full list can be found here.

Material type parameters Alternative Material type parameters Hexadecimal type Description Parameters Call Address Alternative Call Address Example(s) Notes
01 4 Bytes Texture change Texture pointer address 0024C9B0 (EXE)
0064C9B0 (RAM)
6A 00 6A 01 Points to the texture address and applies it to the mesh or 2D element; 00 disables the mesh's texturing.
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 09 Byte Shading 00 = rwSHADEMODEFLAT
01 = rwSHADEMODEGOURAUD
0024C9B0 (EXE)
0064C9B0 (RAM)
00247980 (EXE)
00647980 (RAM)
6A 02 6A 07
6A 02 6A 09
08 Byte Geometry Display 01 = Verticies
02 = Wireframe
03 = Normal
00247980 (EXE)
00647980 (RAM)
6A 03 6A 08
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
17 Byte Visibility? 00 = Visible
01 = Invisible
0024C9B0 (EXE)
0064C9B0 (RAM)
00247980 (EXE)
00647980 (RAM)
6A 00 6A 17
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
80000000 4 Bytes Material similar to UV address 01 = 00247980 (EXE)
00647980 (RAM)
6A 04 68 80000000
8B000000 4 Bytes Reflection Light RGB Color 00247980 (EXE)
00647980 (RAM)
4 Byte RGB Hex 6A FF 68 8B000000
68 FFFFFF00 68 8B000000
Works on models with reflection materials
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. More codes that have been found and not already on the list will be added.

Addresses (EXE) Addresses (RAM) Materials Default Parameter Values Targeting Object Notes Image
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 Sonic Heroes Z-buffering Material.png
30A9
30B5
30BE
30C7
30D3
30E6
30EA
30F6
3102
310F
3113
311F
312B
3134
3148
314C
316D
4030A9
4030B5
4030BE
4030C7
4030D3
4030E6
4030EA
4030F6
403102
40310F
403113
40311F
40312B
403134
403148
40314C
40316D
Fog Enabling #1
Z-testing
Z-buffering
Shade Mode
Source Blend (Condition)
Dest. Blend #1 (Condition)
Dest. Blend #2 (Condition)
Vertex Alpha Enabling
Source Blend
Destination Blend #1
Destination Blend #2
Blend Equation
Alpha Testing
Alpha Testing Reference
Culling #1
Culling #2
Fog Enabling #2
00
01
01
02
05
02
06
01
05
02
06
01
05
C8000000
01
02
00
Alpha Testing Material Flag Section Sonic Heroes Alpha Testing Material.png
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 (Condition)
Dest. Blend #1 (Condition)
Dest. Blend #2 (Condition)
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 Sonic Heroes Alpha Material.png
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. Sonic Heroes Fade Screen.png
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) Sonic Heroes Chaos Inferno Screen Effect.png
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 Sonic Heroes Sonic Overdrive Screen Effect.png
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 Sonic Heroes Transition Screen.png
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.
SH Warp Light models.png
1BBFA 41BBFA Null Material 00 Warp Effect Screen Sonic Heroes Warp Screen Effect.png
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 Sonic Heroes HUD 1P.png
1EAA9
1EAA9
41EAA9
41EAA9
Source Blend
Destination Blend
05
02
Key Sparkle Effect on HUD Sonic Heroes HUD Key Sparkle.png
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. Sonic Heroes Particles.png
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
5483B
54844
5484D
54856
5485F
5486B
54874
5487D
54886
5488F
54898
45483B
454844
45484D
454856
45485F
45486B
454874
45487D
454886
45488F
454898
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
Game Clear screens
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
7573B
75744
7574D
47573B
475744
47574D
Source Blend
Destination Blend
Culling
02
02
01
Hint Collision Box
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
7D33B
7D344
7D34D
47D33B
47D344
47D34D
Source Blend
Destination Blend
Culling
02
02
01
Disable Input Collision
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 Sonic Heroes Transparent Target Switch.png
8BBBE
8BBE2
8BBEB
48BBBE
48BBE2
48BBEB
Culling
UV Address (U)
UV Address (V)
01
03
03
Weight Shadow
8BE60
8BE69
8BE72
48BE60
48BE69
48BE72
Source Blend
Destination Blend
Culling
02
02
01
Weight Laser
8D6DB
8D6FF
8D708
48D6DB
48D6FF
48D708
Culling
UV Address (U)
UV Address (V)
01
03
03
Weight Shadow (Breakable)
8D989
8D992
8D99B
48D989
48D992
48D99B
Source Blend
Destination Blend
Culling
02
02
01
Weight Laser (Breakable)
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 Sonic Heroes Torch Fire.png
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 MM Skull Light 2.png
FBC5A
FBC63
4FBC5A
4FBC63
Source Blend
Destination Blend
05
06
Pumpkin Ghost Fade Effect Sonic Heroes Ghost Fade.png
FBDBC
FBDC5
FBDCE
4FBDBC
4FBDC5
4FBDCE
Source Blend
Destination Blend
Culling
02
02
01
Pumpkin Ghost Light Sonic Heroes Ghost Light.png
101338
101341
10134A
501338
501341
50134A
Source Blend
Destination Blend
Culling
02
02
01
Hang Castle Spider Lights Sonic Heroes Light Spider Marks.png
103401
103409
103412
503401
503409
503412
Source Blend
Destination Blend
Culling
02
02
01
Teleporter Switch Glowing Symbols Sonic Heroes Orb Switch Symbols.png
107BE4
107BED
107BF6
507BE4
507BED
507BF6
Source Blend
Destination Blend
Culling
05
02
01
Thunder lightening with skulls Sonic Heroes Window Thunder MM.png
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 Sonic Heroes Chroma Camo Espio.png
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
1F1E96
1F1E9F
1F1EA8
5F1E96
5F1E9F
5F1EA8
Source Blend
Destination Blend
Culling
05
02
01
E2000 Jet
1F3909
1F3912
1F391B
5F3909
5F3912
5F391B
Source Blend
Destination Blend
Culling
05
02
01
E2000 Laser
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 (Metal Madness)
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, controlled by the opacity code located in 0x210F83.
212E5B
212E64
212E6D
612E5B
612E64
612E6D
Source Blend
Destination Blend
Culling
05
02
01
Magician Suck Ring
218646
21864F
21863D
618646
61864F
61863D
Source Blend
Destination Blend
Culling
05
02
01
Chaos Control Screen Effect
219C1B
219C24
219C2D
619C1B
619C24
619C2D
Source Blend
Destination Blend
Culling
05
02
01
Crystal Attack
21ACC5
21ACCE
21ACD7
21ACE0
61ACC5
61ACCE
61ACD7
61ACE0
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Crystal Cage Needle Fire (Metal Overlord)
21BCD7
21BCE0
21BCE9
21BCF2
61BCD7
61BCE0
61BCE9
61BCF2
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Claw Missle Fire (Metal Overlord)
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
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.
2310C1
2310CA
2310D3
2310DF
2310E8
2310F1
6310C1
6310CA
6310D3
6310DF
6310E8
6310F1
Source Blend
Destination Blend
Culling
Null Material
Vertex Alpha Enabling
Fog
05
02
01
00
01
00
Forward Power Attack Disc (Knuckles)
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)
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
235297
2352A0
2352A9
2352B2
635297
6352A0
6352A9
6352B2
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Dunk Star Effect
235A98
235AA1
235AAA
235AB3
635A98
635AA1
635AAA
635AB3
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Fire Dunk Effect
236138
236141
23614A
236153
636138
636141
63614A
636153
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Fire Dunk Disc Effect
236A74
236A7D
236A86
236A92
236A9B
636A74
636A7D
636A86
636A92
636A9B
Source Blend
Destination Blend
Culling
Fog Enabling
Vertex Alpha Enabling
05
02
01
00
01
Dunk Effect
2372F8
237301
23730A
237313
6372F8
637301
63730A
637313
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Dunk 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
23B0D5
23B0DE
63B0D5
63B0DE
Source Blend
Destination Blend
05
02
Character Shadows
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
23C1C8
23C1D1
23C1DA
23C1E3
63C1C8
63C1D1
63C1DA
63C1E3
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Fake Ring Electricity
23CEA7
23CEB0
23CEB9
23CEC2
63CEA7
63CEB0
63CEB9
63CEC2
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Thundershoot Star Effect
23D137
23D140
23D149
23D152
63D137
63D140
63D149
63D152
Source Blend
Destination Blend
Culling
Fog Enabling
05
02
01
00
Thundershoot Effect Ring
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.
2438E8
243954
6438E8
643954
Fog Enabling #1
Fog Enabling #2
00
00
Save Screen
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
247E4F
247E59
647E4F
647E59
Source Blend
Destination Blend
05
06
RenderWare Engine Default blend options
278975
27897C
278D03
278D0F
278D2F
678975
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.
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 Sonic Heroes PC Debug Text.png

Material flags

This demonstrates the material flags given by an ID through an opcode or a byte loaded from somewhere in the RAM or EXE.
This picture demonstrates three examples of material flag edits given to an object through 72 pointer coordinate codes.

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

Material Flag Properties

Starting at 0x3BAB18, there are 12 bytes on each entry. There are 24 material flag sets available in the EXE that provide a specific material to an object or level geometry and the entry ends at 0x3BAC38

Property entry:
00 00 00 00 00 00 00 00 00 00 00 00

Offset Description
0x00 Material Pointer
0x04 ID
0x08 Parameter

The parameters are logical and there are three valid addresses that should be used in-order for the game to work correctly when altering the type of material. Here are a list of conditions for the parameters:

Conditional Bitwise Bytes Parameter
10 Fog
40 Additive Alpha
01 Reflective Ambient
04 Double Sided Model
08 Sky clip planes

These are a list of pointers that are available for each flag section entry:

Address (Big Endian) Address (Little Endian) Description
402E70 702E40 Normal
402FE0 E02F40 Alpha Test
4031A0 A03140 Alpha

Object Flag Offsets

A list below shows offsets found so far in the EXE for certain parts of the codes that apply material flags to objects.

In-game
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
Armored Train Engine Core 457518
457528
857518
857528
Engine Core Base
Glass
04
17
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
Bouncy Fruit E5A46 4E5A46 Fruit Object 64 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
Final Fortress Flashing Lights 48A69C 88A69C Cyan Lights 13 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
Forest Palm Trees 468DA4
468DB4
868DA4
868DB4
Low Palm Tree
Tall Palm Tree
0A
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
Metal Sonic Claw Missile (Metal Overlord) 21BA2D 61BA2D Claw Missile 5C 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
Moving Structures (Ocean Palace) A3FB4
A3FE0
4A3FB4
4A3FE0
Buildings
Tree leaves
64
7C
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
Rain Fruit 4753FC 8753FC Fruit Object 04 Byte ID
Rain Fruit ripped off from stems E6CF0 4E6CF0 Fruit Object 5C 72 Pointer
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
Thunder (Final Fortress) 48A700 88A700 Thunder 13 Byte ID Unused
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
Wide Spring 59797 459797 Triple Spring Board 60 72 Pointer
Wiggly Mushrooms (Lost Jungle) 475510 875510 Mushrooms 04 Byte ID
Startup
Address Flag Models Object Name(s)
319C89 02 Cannon Shooter
Cannon Base
Cannon Crush Pieces
obj13_houdai_s_on
obj13_houdai_S_on_base
obj13_houdai_S_on_crush
obj13_houdai_S_base_on_crush
319DB0 04 Cannon Bullet obj13_houdai_S_on_bullet
319DEF 17 Cannon Bullet Effect obj13_houdai_S_on_bullet_eff
319E33 04 Cannon Step Parts obj13_houdai_fumi_os_env
obj13_houdai_fumi_base_os_env
obj13_houdai_fumi_button_os_env
obj13_houdai_yoko_on_bullet
319F4F 17 Cannon Step Bullet Effect obj13_houdai_yoko_on_bullet_eff
319FA9 04 Egg Ship dobj13_senkan_s_on
319FEE 13 Egg Ship (Jet) dobj13_senkan_s_jet_an
31A035 04 Big Egg Ship dobj13_senkan_l_on
31A07A 13 Big Egg Ship (Jet) dobj13_senkan_l_jet_an
31A0C3 04 Energy Pipe Object dobj13_pipe
dobj13_pipe_line
31A2B3 04 UFO (Egg Fleet) dobj13_ufo_on
31A2FC 13 UFO Blue Arrow (Egg Fleet) dobj13_ufo_k
31A251 04 Egg Fleet Door obj13_senkan_on_shut
31A356 05 Conveyor Belt obj13_senkan_belt
31A39A 04 Moving Conveyor Belt Floor obj13_senkan_belt_move
31A3EE 03 Detonator Switch obj14_jibaku_sw_on
obj14_jibaku_sw_button_on
obj14_jibaku_sw_button_ons
31A40E 13 Detonator Lights obj14_jibaku_sw_button_k
obj14_jibaku_sw_k_1
obj14_jibaku_sw_k_2
obj14_jibaku_sw_k_3
obj14_jibaku_sw_k_4
obj14_jibaku_sw_button_k_1
obj14_jibaku_sw_button_k_2
obj14_jibaku_sw_button_k_3
obj14_jibaku_sw_button_k_4
31A71F 14 Detonator Explosion Effect obj14_jibaku_sw_kw
31A76B 13 Laser Beam obj14_laserbeam_Ba_k
obj14_laserbeam_Bb_k
obj14_laserbeam_Bc_k
obj14_laserbeam_Be_k
obj14_laserbeam_Ya_k
obj14_laserbeam_Yb_k
obj14_laserbeam_Yc_k
obj14_laserbeam_Ye_k
obj14_laserbeam_Ra_k
obj14_laserbeam_Rb_k
obj14_laserbeam_Rc_k
obj14_laserbeam_Re_k
31A84A 14 Blue Laser Beam (Double Sided) obj14_laserbeam_Bd_k
31A99A 14 Yellow Laser Beam (Double Sided) obj14_laserbeam_Yd_k
31AAEA 14 Magenta Laser Beam (Double Sided) obj14_laserbeam_Rd_k
31ABCA 13 Neon Decorations (Additive Models) dobj14_holeneonA_k
dobj14_holeneonB_k
dobj14_goalneon_k
dobj14_neonlineL_k
dobj14_neonlineR_k
31ABF4 04 Neon Decorations dobj14_holeneonA_on
dobj14_goalneon_on
dobj14_neonlineL_on
dobj14_neonlineR_on
31AE41 13 Red Ring Neon Light dobj14_ringklight_k
31AE91 13 Search Light dobj14_searchlight_k
31AEE9 04 Tower Neon Decoration Part 1 dobj14_towerneonA_on
31AF2E 13 Tower Neon Decoration Light Lines Part 1 dobj14_searchlight_k
31AF75 04 Tower Neon Decoration Part 2 dobj14_towerneonB_on
31AFBA 13 Tower Neon Decoration Light Lines Part 2 dobj14_towerneonB_k
31B016 03 UFO (Final Fortress) dobj14_ufo_on
31B05F 13 UFO Blue Arrow (FInal Fortress) dobj14_ufo_k
31B564 02 Dr. Eggman
Egg Mobile
Egg Hawk Parts
Egg Pawns
Egg Pawn Light
en_egghawk
en_egghawk_pawn
en_eggmovile
en_eggman
en_em_light
en_em_boost
en_em_flash
31B583 13 Egg Pawn Light Glow
Egg Hawk Jet Fire
Egg Hawk Light
en_bs1p_eye
en_ef_egghawkjet
en_ef_bs1_light
31B59B 04 Egg Hawk Jet Parts en_ef_emjet
31B68F 15 Egg Mobile Wind Shield en_em_wshield
31BAF8 04 Egg Hawk Towers s20_on_toudai_0
s20_on_toudai_1
s20_on_toudai_hahen05
s20_on_toudai_hahen06
31BC83 04 Egg Hawk Whale Statues s20_on_kujira1_0
s20_on_kujira1_1
s20_on_kujira1_hahen
s20_on_kujira2_0
s20_on_kujira2_1
s20_on_kujira2_hahen
s20_on_kujira0_hahen1
s20_on_kujira0_hahen2
31BEDC 02 Egg Albatross parts en_eggalbtrs
en_eggalbtrsc
en_bs2_propa
en_bs2_propb
en_bs2_cannona
en_bs2_cannonb
en_bs2_fina
en_bs2_finb
en_bs2_laser
en_bs2_pod
en_bs2_enginel
en_bs2_enginer
en_bs2_head
31C18D 13 Egg Albatross Jet Fire en_ef_bs2_jet
31C1D4 08 Eggman Albatross Ship Decal en_bs2_mark

Indirect Shaders

While in game, the shaders are enabled for models that use indirect texturing during the loading process for the levels. The indirect state can be found at 0x2B955C and the default ID is 01. When changed, it will trigger the effects for the indirect animations:

State ID State Result
00 Disabled SH Indirect Disabled.png
01 Enabled SH Indirect Enabled.png

Object Crash Material Properties

Objects that are used as a crashing object using a 3 such as a tree branch (being broken by an Alligator in Lost Jungle) are given materials before they appear on the 3D space.

A list of material options are available in the game for several objects:

ID Description
02 Additive Crash Object
FF Normal Crash Object

As for the alpha testing material to be used if needed, you will need to do the following hex replacements to add that option to the EXE:

Address Original Bytes Replace With
233A84 CC CC CC CC CC CC CC CC 83 79 40 04 75 22 EB 0A
233A94 74 7D
387C34 E0 5A 54 84 3A 63

When that is done, you can set the parameter value at 0x233A87 to anything like 04 or something. Note that values 02, 01, 00 and FF are not recommended as it will spawn a duplicate model with another material given, so the recommended range for alpha test rendering is from 03-7F.


A list of codes are in the EXE.

Address Default Bytes Type
232A80 FF Enemy Pieces
232A20 FF Broken Objects
21A2A3 02 Metal Overlord Crystal Pieces

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 Result
00 Regular Alpha SH SP Object Blend Param 0.png
01 Additive Alpha SH SP Object Blend Param 1.png

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)

Chaos Emerald blend options

For the chaos emeralds that appear on Emerald Challenges, it requires the code in 0x12FF56 to be changed in-order to be customized. To do that, replace the bytes with these ones:

Address Original Bytes Replace With
12FF56 89 1D 68 7B A4 00 74 0F C6 05 68 7B A4 00 00 90

After that, the blend setting will be located at 0x12FF5C which can be set before the level finishes loading.

Code:
C6 05 68 7B A4 00 00 90
*The highlighted byte is the blend parameter for the chaos emerald.

Here are a list of blend options for the chaos emeralds.

Param ID Description
00 Alpha
01 Add
02 Normal

Chao Hot Air Balloon blend params

Like with Chaos Emeralds, they use parameters given at the start of each bonus level. However, it has an address linked with the emerald's blend parameters located at 0x1311CB

You will need to separate it from the Chaos Emerald to avoid making them use the same parameter.

Address Original Bytes Replace With
12FD48 C3 CC CC CC CC E9 C4 00 00 00
12FE11 CC CC CC CC CC CC CC CC CC CC CC C7 05 98 B7 A7 00 00 00 00 00 C3
13113E B0 87 A7 98 B7 A7
1311C2 B0 87 A7 98 B7 A7
1311CB 68 7B A4 98 B7 A7

The parameter ID will be located at 0x12FE17 and they use the same blend params as the emeralds except that 00 is a normal (Z-buffered) material, 02 is nothing and 03 is a regular alpha material.

Tube Step Effects

There are no codes anywhere in the EXE that provide the ID for the tube stepping effect, but there is a way to customize the blending parameters for it.

To change the blend mode for that, change the bytes to these ones.

Address Original Bytes Replace With
12D489 CC CC CC CC CC CC CC C6 05 A0 87 A7 00 00
378C28 90 D4 52 89 D4 52

After that, the last byte of the code before the other will be located at 0x12D48F and the following params provide the blend options on that byte of the code:

ID Alpha Type
00 Additive
01 Normal
02 Subtractive

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.

To unlock certain blend options for parameter IDs 02 and 04, change the following codes to these:

Address Original Bytes Replace With
12EE7B 3C 04 EB 04
12EE89 75 0C EB 0C

References


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