| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Address | Description | Comments | Note - this is an upraged version of the 1.3 data sheet, if you would like to contruibe to it, please DM me | ||||||||||||||||||||||
2 | Main Menu | |||||||||||||||||||||||||
3 | 817F3680 | Sub menu | ||||||||||||||||||||||||
4 | 803E28E5 | Cursor position | ||||||||||||||||||||||||
5 | 803E28F6 | Menu colour | 8 bit; 0 blue, 1 red, 2 yellow, 3 gray, 4 purple, 5 green | some highlight over the menu colour seems to store itself at 817F2904 and uses RGBa | ||||||||||||||||||||||
6 | 8021C2FB | Related to menu selection | Set to 5 when in css, 4 in free race settings | |||||||||||||||||||||||
7 | 805ce500 | How many buttons in main menu | (count starts at 1) | |||||||||||||||||||||||
8 | 805ce501 | How many buttons in extra menu | (count starts at 1) | |||||||||||||||||||||||
9 | 805ce502 | How many buttons in Options menu | (count starts at 1) | |||||||||||||||||||||||
10 | 817F32E4 | Main menu cursor colour | RGBA | |||||||||||||||||||||||
11 | ||||||||||||||||||||||||||
12 | Free race settings | |||||||||||||||||||||||||
13 | 803E2976 | Cursor position | ||||||||||||||||||||||||
14 | 803E2978 | Laps | ||||||||||||||||||||||||
15 | 803E2979 | Announcer toggle | ||||||||||||||||||||||||
16 | 803E297A | Level toggle | ||||||||||||||||||||||||
17 | 803E297B | Item toggle | ||||||||||||||||||||||||
18 | 803E297C | Air pit toggle | ||||||||||||||||||||||||
19 | 803E297D | Air lost toggle | ||||||||||||||||||||||||
20 | ||||||||||||||||||||||||||
21 | Character select | |||||||||||||||||||||||||
22 | 803E2994 | Cursor position | (goes from 0 to 15, does not have super sonic) | |||||||||||||||||||||||
23 | 803E2990 | Value used to determine if race is ready to begin | Set to 5 when ready, and increments from 0 to 4 when each individual player readies. Player 1 selecting board moves it up additionally | |||||||||||||||||||||||
24 | 803E2978 through 803E2988 | The list of "Locked in" characters. when a characters value is set to 1 they can't be selected | ||||||||||||||||||||||||
25 | 805CF46C to 805CF47C | character name texture id | 8 bit | |||||||||||||||||||||||
26 | 805CF46D+ | Board name texture id | 8 bit | |||||||||||||||||||||||
27 | Player data | Players have a space of 0x1080 bytes between each other, so to get values for player 2, add 0x1080 to values listed here, 0x2100 for player 3, etc | AI uses player data as well there are 8 player datas all together? | 00499340 (20499340) - ps2 006A4B80 - pc 80609440 - GC 8061A040 - GC-TE-2.0 8061C240 - GC-TE-2.1 8061D4C0 - GC-TE-2.1.5 805303A0 - GC-TE-2.3ptr | Note, PS2 has a different player data struct to GC, mainly in the later sections its different, the address is only there so people can find the player struct easy ----other data sheets:---- PS2 datasheet: https://docs.google.com/spreadsheets/d/17JPYf836EIJ4-1rY3ATqj1Hpn08zB5bugKJzwj1DA3U/edit?usp=sharing (WIP) PC datasheet: https://docs.google.com/spreadsheets/d/1KUcyNRT4o1lz3kn8jS81sl60pb2Nqo7foE_FCqayQy8/edit#gid=133111214&range=B122 | |||||||||||||||||||||
28 | 80609440 | Player 1 Base Address, holds pointer to inputs but during replays it is the pointer to something else | 0x0 | |||||||||||||||||||||||
29 | 806094FA | Character | 0 = sonic, 1 = tails, and so on | Offset: 0xBA | ||||||||||||||||||||||
30 | 806094FB | Extreme Gear | Offset: 0xBB | |||||||||||||||||||||||
31 | 806094FC | Whether you're in a loading screen (or perhaps something else) | 0xBC | |||||||||||||||||||||||
32 | 806094FD | What kind of player you are | 0 = human, 1 = AI | 0xBD | ||||||||||||||||||||||
33 | 806094FE | What kind of gear you're on | 0 = board, 1 = skates, 2 = bike | 0xBE | ||||||||||||||||||||||
34 | 806094FF | Attributes | Fetches attributes from a pre-made list. 0 will get you Sonic's, 1 will get you Tails', etc | 0xBF | ||||||||||||||||||||||
35 | 80609510 | 32-bit float | Mirrors X | |||||||||||||||||||||||
36 | 80609624 | X Position | 32-bit float | 0x1E4 | ||||||||||||||||||||||
37 | 80609628 | Y Position (Z Position in Math) | 32-bit float | 0x1E8 | ||||||||||||||||||||||
38 | 8060962C | Z Position (Y Position in Math) | 32-bit float | 0x1EC | ||||||||||||||||||||||
39 | 80609630 | Verticle Rotation (Forward Roll) | 0x1F0 | |||||||||||||||||||||||
40 | 80609634 | Horizontal Rotation (Spin) | 32-bit float, in radians | 0x1F4 | ||||||||||||||||||||||
41 | 80609638 | Rotation Roll (Sideways Roll) | 0x1F8 | |||||||||||||||||||||||
42 | 8060963C | 0x1FC | ||||||||||||||||||||||||
43 | 8060 9640 | Used with verticle speed? | 0x200 | |||||||||||||||||||||||
44 | 8060 9714 | 32-bit float | Mirrors X | |||||||||||||||||||||||
45 | 8060 9750 | 32-bit float | Mirrors X | |||||||||||||||||||||||
46 | 8060975C | 32-bit float | Mirros X (can be changed, if locked it will try and move player to float, can not pass through walls, seems to be random, this also breaks the foor) | |||||||||||||||||||||||
47 | 80609AEC | X pos as well? | 32-bit float | 0x6AC | ||||||||||||||||||||||
48 | 80609AF0 | Y pos as well? | 32-bit float | 0x6B0 | ||||||||||||||||||||||
49 | 80609AF4 | Z poss as well? | 32-bit float | 0x6B4 | ||||||||||||||||||||||
50 | 80609AF8 | pointer to something | 80682B8C - when landing on turbulence? | 80682B8C + 0x8 = 80682B94, and this is a float | ||||||||||||||||||||||
51 | 80609B70 | 32-bit float | Mirrors X | |||||||||||||||||||||||
52 | 32-bit | 0x760 | Gets called in a rendering function | |||||||||||||||||||||||
53 | 32-bit | 0x0764 | Gets called in a rendering function | |||||||||||||||||||||||
54 | 32-bit | 0x76C | Gets called in a rendering function | |||||||||||||||||||||||
55 | 80609BB0 | ????? | counts by 0.5 float and up to 35.0 then resets | 0x770 | ||||||||||||||||||||||
56 | 32-bit float | 0x778 | Gets called in a rendering function | |||||||||||||||||||||||
57 | 80609BC4 | attack recovery? | float, usually 0.5 | 0x784 | ||||||||||||||||||||||
58 | 80609bcc | set to 1 when attacked? | 0x78C | |||||||||||||||||||||||
59 | 80609bd0 | set to float 10 when attacked? | float | 0x790 | ||||||||||||||||||||||
60 | 80609bd4 | set to 0 when attacked? | 0x794 | |||||||||||||||||||||||
61 | 80609bd8 | set to float 0 when attacked? | float | 0x798 | ||||||||||||||||||||||
62 | 80609bdc | set to 15 when attacked? | 0x79c | |||||||||||||||||||||||
63 | 80609bf0 | set to float 0 when attacked? | float | 0x800 | ||||||||||||||||||||||
64 | 80609bf4 | set to 8 when attacked? | 0x804 | |||||||||||||||||||||||
65 | 80609bf8 | set to float 0 when attacked? | float | 0x808 | ||||||||||||||||||||||
66 | 80609C0C | something set to -1 while being attacked? | 0x7CC | |||||||||||||||||||||||
67 | 80609CD8 | Pointer to boost end function | 32 bit | 0x898 | Adds 60 extra frames of boost to some characters on some levels e.g. Shadow, AiAi | |||||||||||||||||||||
68 | 80609CD8 | (CUSTOM) Z to Toggle Ignoring Turbulence BYTE value | 8 bit | 0x898 | Bytes opened up instead the player to use for codes such as Z Toggles Ignore Turbulence | |||||||||||||||||||||
69 | 80609CD9 | (CUSTOM) Gear Action BYTE (Used for Gambler currently) | 8 bit | 0x899 | ||||||||||||||||||||||
70 | 80609CDA | (CUSTOM) | 8 bit | 0x89A | ||||||||||||||||||||||
71 | 80609CDB | (CUSTOM) | 8 bit | 0x89B | ||||||||||||||||||||||
72 | 80609ce0 | Max Stun Time from Attacks (relates to next line) | 32 bit float | 0x8A0 | ||||||||||||||||||||||
73 | 80609ce4 | Stun Recovery Timer from Attacks (1st) | 32 bit float, increments by 0.5 each frame | 0x8A4 | ||||||||||||||||||||||
74 | 80609CEC | Boost Duration | 32 bit signed, Counts down until it hits boost end (boost end is not known) | Offset: 0x8AC | NOTE: Does not clear out when your boost ends. So it leaves leftover boost duration in here while not boosting. | |||||||||||||||||||||
75 | 80609CF4 | related to shock gate | ||||||||||||||||||||||||
76 | 80609d08 | Stun Recovery Timer from Attacks (2nd) | 32 bit float, increments by 0.5 each frame | 0x8C8 | 805C30BC is lv3 tails attack | |||||||||||||||||||||
77 | 80609D10 | Max Stun Time for certain attack after effects(?) | 32 bit float (works for Storm's lv3 Daze timer, Eggman's lv3 Obscure, but the timer is offset 0xDA4) | 0x8D0 | ||||||||||||||||||||||
78 | 80609D19 | Stun Time for Shock Gate | 8 bit | 0x8D9 | set to 28 while being shocked, set to 52 after the initial shock of 28 ends. | |||||||||||||||||||||
79 | 80609D1C | LEVEL 1 - Base Top speed | 32 but float | 0x0 | 0x8DC | Thanks KC (for the level structs) | |||||||||||||||||||||
80 | 80609D20 | Lvl1 Base Accel | 32 bit float | 0x4 | 0x8E0 | Lv1 top speed (old) | 80609D24 (old) | ||||||||||||||||||||
81 | 80609D24 | Lvl1 Top Speed | 32 bit float | 0x8 | 0x8E4 | Lv1 Max Air (old) | |||||||||||||||||||||
82 | 80609D28 | Tier 1 Accel | 32 bit float | 0xC | 0x8E8 | Lv1 Air Drain (old) | |||||||||||||||||||||
83 | 80609D2B | Tier 2 Accel | 32 bit float | 0x10 | 0x8EB | Lv1 Drift Cost (old) | |||||||||||||||||||||
84 | 80609D30 | Tier 3 Accel | 32 bit float | 0x14 | 0x8F0 | ||||||||||||||||||||||
85 | 80609D34 | Offroad Speed Cap | 32 bit float | 0x18 | 0x8F8 | ||||||||||||||||||||||
86 | 80609D38 | Max Air | 32 bit signed | 0x1C | 0x8F8 | ||||||||||||||||||||||
87 | 80609D3C | Air drain | 32 bit signed | 0x20 | 0x8FC | ||||||||||||||||||||||
88 | 80609D40 | Drift Cost | 32 bit signed | 0x24 | 0x900 | ||||||||||||||||||||||
89 | 80609D44 | Boost Cost | 32 bit signed | 0x28 | 0x904 | ||||||||||||||||||||||
90 | 80609D48 | Tornado Cost | 32 bit signed | 0x2C | 0x908 | ||||||||||||||||||||||
91 | 80609D4B | Drift Dash Speed | 32 bit float | 0x30 | 0x90B | ||||||||||||||||||||||
92 | 80609D50 | Boost speed | 32 bit float | 0x34 | 0x910 | ||||||||||||||||||||||
93 | 80609D54 | level 2 - Base Top Speed | 32 bit float | 0x0 | 0x914 | ||||||||||||||||||||||
94 | 80609D58 | Lvl2 Base Accel | 32 bit float | 0x4 | 0x918 | ||||||||||||||||||||||
95 | 80609D5B | Lvl2 Top Speed | 32 bit float | 0x8 | 0x91B | ||||||||||||||||||||||
96 | 80609D60 | Tier 1 Accel | 32 bit float | 0xC | 0x920 | ||||||||||||||||||||||
97 | 80609D64 | Tier 2 Accel | 32 bit float | 0x10 | 0x924 | ||||||||||||||||||||||
98 | 80609D68 | Tier 3 Accel | 32 bit float | 0x14 | 0x928 | ||||||||||||||||||||||
99 | 80609D6B | Offroad Speed Cap | 32 bit float | 0x18 | 0x92D | ||||||||||||||||||||||
100 | 80609D70 | Max Air | 32 bit signed | 0x1C | 0x930 |