Difference between revisions of "Sonic Adventure DX: PC/EXE Editing"
From Sonic Retro
MainMemory (talk | contribs) (→Sonic's Actions: Straight from SADXTweaker) |
m (Text replacement - " Levels=" to " levels=") |
||
(45 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | {{SCHG | + | {{SCHG SA|3}} |
__NOTOC__ | __NOTOC__ | ||
− | Note: There are multiple versions of SADXPC. | + | This page is about various things you can edit in the sonic.exe file.<br /> |
+ | Note: There are multiple versions of SADXPC. Some addresses may not work for your version. {{red|'''Make sure the values given match your exe before editing it!'''}} Addresses that only work for the US version will be marked with '''US'''. Addresses that only work for the European version will be marked with '''EU'''. {{red|'''These are not likely to work with the Japanese version.'''}}<br> | ||
Note: the cracked version is the same as the European version.<br /> | Note: the cracked version is the same as the European version.<br /> | ||
Note: to find these in RAM, add $400000. | Note: to find these in RAM, add $400000. | ||
Line 7: | Line 8: | ||
{{sectstub}} | {{sectstub}} | ||
===Sonic's Animations=== | ===Sonic's Animations=== | ||
− | {| class="prettytable" | + | [[SCHG:Sonic Adventure DX: PC/Lists#Sonic's Animations|List]] |
− | !Address (US)||Address (EU)||Description||Default(dec.) | + | {| class="prettytable" style="width:auto;" |
+ | !Address (US)||Address (EU)||Description||Default (dec.) | ||
+ | |- | ||
+ | | 97A88 | ||
+ | | 97AD8 | ||
+ | | Landing After Falling | ||
+ | | 1 | ||
+ | |- | ||
+ | | 9773F | ||
+ | | 9778F | ||
+ | | Landing After Jumping | ||
+ | | 2 | ||
+ | |- | ||
+ | | 916FF | ||
+ | | 9174F | ||
+ | | Idle | ||
+ | | 4 | ||
|- | |- | ||
| 917F9 | | 917F9 | ||
Line 20: | Line 37: | ||
| 8 | | 8 | ||
|- | |- | ||
− | | | + | | 95E46 |
− | | | + | | 95E96 |
− | | | + | | Walking 1 |
− | | | + | | 9 |
|- | |- | ||
− | | | + | | 95E2C |
− | | | + | | 95E7C |
− | | | + | | Walking 2 |
− | | | + | | 10 |
|- | |- | ||
− | | | + | | 95BDA |
− | | | + | | 95C2A |
− | | | + | | Walking 3 |
− | | | + | | 11 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 95B44 | | 95B44 | ||
− | | | + | | 95B94 |
| Running 1 | | Running 1 | ||
| 12 | | 12 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 95C27 | | 95C27 | ||
− | | | + | | 95C77 |
| Running 2 | | Running 2 | ||
| 13 | | 13 | ||
|- | |- | ||
| 95C77 | | 95C77 | ||
− | | | + | | 95CC7 |
| Jumping/Spindashing | | Jumping/Spindashing | ||
| 14 | | 14 | ||
|- | |- | ||
− | | | + | | 951D3 |
− | | | + | | 95223 |
− | | | + | | Rolling |
− | | | + | | 15 |
+ | |- | ||
+ | | 92FE6 | ||
+ | | 93036 | ||
+ | | Light Speed Attack | ||
+ | | 15 | ||
+ | |- | ||
+ | | 95B97 | ||
+ | | 95BE7 | ||
+ | | Springing | ||
+ | | 16 | ||
|- | |- | ||
− | | | + | | 978D9 |
− | | | + | | 97929 |
− | | | + | | After Springing |
− | | | + | | 17 |
|- | |- | ||
− | | | + | | 94FDC |
− | | | + | | 9502C |
− | | | + | | Falling |
− | | | + | | 18 |
|- | |- | ||
− | | | + | | 92F7A |
− | | | + | | 92FCA |
− | | | + | | Jump Cancel |
− | | | + | | 18 |
|- | |- | ||
| 97CC0 | | 97CC0 | ||
− | | | + | | 97D10 |
| After Jump Dash | | After Jump Dash | ||
| 18 | | 18 | ||
+ | |- | ||
+ | | 9876B | ||
+ | | 987BB | ||
+ | | After Light Speed Attack | ||
+ | | 18 | ||
+ | |- | ||
+ | | 97298 | ||
+ | | 972E8 | ||
+ | | Braking | ||
+ | | 20 | ||
+ | |- | ||
+ | | 975B3 | ||
+ | | 97603 | ||
+ | | After Light Speed Dash | ||
+ | | 20 | ||
+ | |- | ||
+ | | 92F1C | ||
+ | | 92F6C | ||
+ | | Hurt | ||
+ | | 23 | ||
|- | |- | ||
| 97F4B | | 97F4B | ||
− | | | + | | 97F9B |
| Hurt Landing | | Hurt Landing | ||
| 24 | | 24 | ||
+ | |- | ||
+ | | 9607F | ||
+ | | 960CF | ||
+ | | Floating | ||
+ | | 26 | ||
+ | |- | ||
+ | | 93053 | ||
+ | | 930A3 | ||
+ | | Light Speed Dash | ||
+ | | 64 | ||
+ | |- | ||
+ | | 963FF | ||
+ | | 9644F | ||
+ | | Ladder | ||
+ | | 69 | ||
+ | |- | ||
+ | | 9B117 | ||
+ | | 9B167 | ||
+ | | Jump Pad Flip | ||
+ | | 72 | ||
+ | |- | ||
+ | | 95CC7 | ||
+ | | 95D17 | ||
+ | | Jump Pad Flight | ||
+ | | 73 | ||
+ | |- | ||
+ | | 984A3 | ||
+ | | 984F3 | ||
+ | | Jump Pad Landing | ||
+ | | 74 | ||
+ | |- | ||
+ | | 961DB | ||
+ | | 9622B | ||
+ | | Victory | ||
+ | | 75 | ||
+ | |- | ||
+ | | 96595 | ||
+ | | 965E5 | ||
+ | | Frozen | ||
+ | | 82 | ||
+ | |- | ||
+ | | 9675C | ||
+ | | 967AC | ||
+ | | Drowning | ||
+ | | 85 | ||
|- | |- | ||
| 9BDC1 | | 9BDC1 | ||
− | | | + | | 9BE11 |
| Dying | | Dying | ||
| 87 | | 87 | ||
Line 108: | Line 180: | ||
|- | |- | ||
| 95B3A | | 95B3A | ||
− | | | + | | 95B8A |
| Running 1 | | Running 1 | ||
| 146 | | 146 | ||
|- | |- | ||
| 95BEB | | 95BEB | ||
− | | | + | | 95C3B |
| Running 2 | | Running 2 | ||
| 13 | | 13 | ||
+ | |- | ||
+ | | 95C3B | ||
+ | | 95C8B | ||
+ | | Jumping | ||
+ | | 14 | ||
+ | |- | ||
+ | !colspan=4|Super Sonic | ||
+ | |- | ||
+ | | 96743 | ||
+ | | 96793 | ||
+ | | Start | ||
+ | | 134 | ||
+ | |- | ||
+ | | 9A475 | ||
+ | | 9A4C5 | ||
+ | | Standing from Moving | ||
+ | | 134 | ||
+ | |- | ||
+ | | 9A560 | ||
+ | | 9A5B0 | ||
+ | | Standing from Jumping | ||
+ | | 134 | ||
+ | |- | ||
+ | | 9A3B8 | ||
+ | | 9A408 | ||
+ | | Jump Cancel | ||
+ | | 141 | ||
+ | |- | ||
+ | | 9A4B6 | ||
+ | | 9A506 | ||
+ | | Falling | ||
+ | | 141 | ||
+ | |- | ||
+ | | 9A6D6 | ||
+ | | 9A726 | ||
+ | | After Jump Dash | ||
+ | | 141 | ||
+ | |- | ||
+ | | 9A617 | ||
+ | | 9A667 | ||
+ | | After Springing | ||
+ | | 140 | ||
+ | |- | ||
+ | | 94D25 | ||
+ | | 94D75 | ||
+ | | Springing | ||
+ | | 139 | ||
+ | |- | ||
+ | | 94E02 | ||
+ | | 94E52 | ||
+ | | Victory | ||
+ | | 143 | ||
+ | |- | ||
+ | | 9A3DE | ||
+ | | 9A42E | ||
+ | | Jumping | ||
+ | | 145 | ||
+ | |- | ||
+ | | 918A6 | ||
+ | | 918F6 | ||
+ | | Moving 1 | ||
+ | | 135 | ||
+ | |- | ||
+ | | 9188E | ||
+ | | 918DE | ||
+ | | Moving 2 | ||
+ | | 136 | ||
+ | |- | ||
+ | | 91869 | ||
+ | | 918B9 | ||
+ | | Moving 3 | ||
+ | | 137 | ||
+ | |- | ||
+ | | 91842 | ||
+ | | 91892 | ||
+ | | Moving 4 | ||
+ | | 138 | ||
|} | |} | ||
===Tails' Animations=== | ===Tails' Animations=== | ||
− | {| class="prettytable" | + | [[SCHG:Sonic Adventure DX: PC/Lists#Tails' Animations|List]] |
− | !Address (US)||Address (EU)||Description||Default(dec.) | + | {| class="prettytable" style="width:auto;" |
+ | !Address (US)||Address (EU)||Description||Default (dec.) | ||
|- | |- | ||
| 5C0D1 | | 5C0D1 | ||
− | | | + | | 5C121 |
| Jumping | | Jumping | ||
| 14 | | 14 | ||
+ | |- | ||
+ | | 5F9BB | ||
+ | | 5FA0B | ||
+ | | Walking 1 | ||
+ | | 9 | ||
+ | |- | ||
+ | | 5C1ED | ||
+ | | 5C23D | ||
+ | | Wind Path | ||
+ | | 11 | ||
+ | |- | ||
+ | | 5C1A7 | ||
+ | | 5C1F7 | ||
+ | | Spring | ||
+ | | 17 | ||
+ | |- | ||
+ | | 5EC9F | ||
+ | | 5ECEF | ||
+ | | Downwards Spring | ||
+ | | 18 | ||
+ | |- | ||
+ | | 5CE93 | ||
+ | | 5CEE3 | ||
+ | | Falling | ||
+ | | 19 | ||
+ | |- | ||
+ | | 5C1DA | ||
+ | | 5C22A | ||
+ | | Floating | ||
+ | | 33 | ||
|- | |- | ||
| 5EB5C | | 5EB5C | ||
− | | | + | | 5EBAC |
| Flying | | Flying | ||
| 37 | | 37 | ||
+ | |- | ||
+ | | 5C6D6 | ||
+ | | 5C726 | ||
+ | | After Dash Hoop | ||
+ | | 37 | ||
+ | |- | ||
+ | | 5C725 | ||
+ | | 5C775 | ||
+ | | Dash Hoop | ||
+ | | 41 | ||
+ | |- | ||
+ | | 5D702 | ||
+ | | 5D752 | ||
+ | | Tail Attack | ||
+ | | 43 | ||
|} | |} | ||
===Knuckles' Animations=== | ===Knuckles' Animations=== | ||
− | {| class="prettytable" | + | {| class="prettytable" style="width:auto;" |
!Address (US)||Address (EU)||Description||Default(dec.) | !Address (US)||Address (EU)||Description||Default(dec.) | ||
|- | |- | ||
| 7694A | | 7694A | ||
− | | | + | | 7699A |
| Jumping | | Jumping | ||
| 14 | | 14 | ||
|- | |- | ||
| 7865D | | 7865D | ||
− | | | + | | 786AD |
| Gliding 1 | | Gliding 1 | ||
| 51 | | 51 | ||
|- | |- | ||
| 786E9 | | 786E9 | ||
− | | | + | | 78739 |
| Gliding 2 (used for a second glide without landing) | | Gliding 2 (used for a second glide without landing) | ||
| 51 | | 51 | ||
|- | |- | ||
| 7888E | | 7888E | ||
− | | | + | | 788DE |
| After Gliding | | After Gliding | ||
| 34 | | 34 | ||
+ | |- | ||
+ | | 76E04 | ||
+ | | 76554 | ||
+ | | Drowning | ||
+ | | 38 | ||
|} | |} | ||
Line 161: | Line 361: | ||
{{sectstub}} | {{sectstub}} | ||
===Sonic's Actions=== | ===Sonic's Actions=== | ||
− | {| class="prettytable" | + | [[SCHG:Sonic Adventure DX: PC/Lists#Sonic's Actions|List]] |
+ | {| class="prettytable" style="width:auto;" | ||
!Address (US)||Address (EU)||Description||Default (dec.) | !Address (US)||Address (EU)||Description||Default (dec.) | ||
|- | |- | ||
Line 423: | Line 624: | ||
===Tails' Actions=== | ===Tails' Actions=== | ||
− | {| class="prettytable" | + | [[SCHG:Sonic Adventure DX: PC/Lists#Tails' Actions|List]] |
+ | {| class="prettytable" style="width:auto;" | ||
!Address (US)||Address (EU)||Description||Default (dec.) | !Address (US)||Address (EU)||Description||Default (dec.) | ||
|- | |- | ||
Line 510: | Line 712: | ||
| Victory/Loss | | Victory/Loss | ||
| 62 | | 62 | ||
+ | |} | ||
+ | |||
+ | ===Knuckles' Actions=== | ||
+ | [[SCHG:Sonic Adventure DX: PC/Lists#Knuckles' Actions|List]] | ||
+ | {| class="prettytable" style="width:auto;" | ||
+ | !Address (US)||Address (EU)||Description||Default (dec.) | ||
+ | |- | ||
+ | | 72145 | ||
+ | | 72195 | ||
+ | | Maximum Heat Attack | ||
+ | | 18 | ||
+ | |- | ||
+ | | 73C80 | ||
+ | | 73CD0 | ||
+ | | Punching | ||
+ | | 26 | ||
+ | |- | ||
+ | | 78652 | ||
+ | | 786A2 | ||
+ | | Gliding 1 | ||
+ | | 11 | ||
|} | |} | ||
Line 515: | Line 738: | ||
===Locations=== | ===Locations=== | ||
These are indexed by $5154E8 + (Character * $84). | These are indexed by $5154E8 + (Character * $84). | ||
− | {| class="prettytable" | + | {| class="prettytable" style="width:auto;" |
!Character||Address | !Character||Address | ||
|- | |- | ||
| Sonic | | Sonic | ||
| 5154E8 | | 5154E8 | ||
+ | |- | ||
+ | | Eggman | ||
+ | | 51556C | ||
|- | |- | ||
| Tails | | Tails | ||
Line 526: | Line 752: | ||
| Knuckles | | Knuckles | ||
| 515674 | | 515674 | ||
+ | |- | ||
+ | | Tikal | ||
+ | | 5156F8 | ||
|- | |- | ||
| Amy | | Amy | ||
Line 539: | Line 768: | ||
===Offsets=== | ===Offsets=== | ||
These are in the same locations as in [[SCHG:Sonic Adventure DX: PC/RAM Editing#Character Object 2|RAM]]. These are all Floats except Hang Time, which is 4 Bytes, measured in frames. | These are in the same locations as in [[SCHG:Sonic Adventure DX: PC/RAM Editing#Character Object 2|RAM]]. These are all Floats except Hang Time, which is 4 Bytes, measured in frames. | ||
− | {| class="prettytable" | + | {| class="prettytable" style="width:auto;" |
− | !Offset||Description||Sonic||Tails||Knuckles||Amy||Gamma||Big | + | !Offset||Description||Sonic||Eggman||Tails||Knuckles||Tikal||Amy||Gamma||Big |
|- | |- | ||
| 0 | | 0 | ||
| Hang Time | | Hang Time | ||
+ | | 60 | ||
+ | | 60 | ||
| 60 | | 60 | ||
| 60 | | 60 | ||
Line 554: | Line 785: | ||
| Amount of grip on floor | | Amount of grip on floor | ||
| 2 | | 2 | ||
+ | | 3 | ||
| 1.5 | | 1.5 | ||
+ | | 2 | ||
| 2 | | 2 | ||
| 1.5 | | 1.5 | ||
Line 562: | Line 795: | ||
| 8 | | 8 | ||
| Horizontal Speed Cap | | Horizontal Speed Cap | ||
+ | | 16 | ||
+ | | 16 | ||
| 16 | | 16 | ||
| 16 | | 16 | ||
Line 571: | Line 806: | ||
| C | | C | ||
| Vertical Speed Cap | | Vertical Speed Cap | ||
+ | | 16 | ||
+ | | 16 | ||
| 16 | | 16 | ||
| 16 | | 16 | ||
Line 580: | Line 817: | ||
| 10 | | 10 | ||
| Something to do with the maximum speed Sonic can accelerate to on his own? | | Something to do with the maximum speed Sonic can accelerate to on his own? | ||
+ | | 3 | ||
| 3 | | 3 | ||
| 2 | | 2 | ||
| 2.5 | | 2.5 | ||
+ | | 3 | ||
| 0.05 | | 0.05 | ||
| 2.5 | | 2.5 | ||
Line 590: | Line 829: | ||
| ? | | ? | ||
| 0.6 | | 0.6 | ||
+ | | 1 | ||
| 0.6 | | 0.6 | ||
| 0.6 | | 0.6 | ||
+ | | 1 | ||
| 0.5 | | 0.5 | ||
| 0.6 | | 0.6 | ||
Line 598: | Line 839: | ||
| 18 | | 18 | ||
| Initial Jump Speed | | Initial Jump Speed | ||
+ | | 1.66 | ||
+ | | 1.66 | ||
| 1.66 | | 1.66 | ||
| 1.66 | | 1.66 | ||
Line 607: | Line 850: | ||
| 1C | | 1C | ||
| Spring Control? | | Spring Control? | ||
+ | | 3 | ||
+ | | 3 | ||
| 3 | | 3 | ||
| 3 | | 3 | ||
Line 616: | Line 861: | ||
| 20 | | 20 | ||
| ? | | ? | ||
+ | | 0.23 | ||
+ | | 0.23 | ||
| 0.23 | | 0.23 | ||
| 0.23 | | 0.23 | ||
Line 625: | Line 872: | ||
| 24 | | 24 | ||
| Rolling Cancel Speed | | Rolling Cancel Speed | ||
+ | | 0.46 | ||
| 0.46 | | 0.46 | ||
| 0.49 | | 0.49 | ||
+ | | 0.46 | ||
| 0.46 | | 0.46 | ||
| 0.46 | | 0.46 | ||
Line 634: | Line 883: | ||
| 28 | | 28 | ||
| Rolling End Speed | | Rolling End Speed | ||
+ | | 1.39 | ||
+ | | 1.39 | ||
| 1.39 | | 1.39 | ||
| 1.39 | | 1.39 | ||
Line 643: | Line 894: | ||
| 2C | | 2C | ||
| Running 1 Speed | | Running 1 Speed | ||
+ | | 2.3 | ||
| 2.3 | | 2.3 | ||
| 2.8 | | 2.8 | ||
| 3.1 | | 3.1 | ||
+ | | 2.3 | ||
| 2.3 | | 2.3 | ||
| 2.5 | | 2.5 | ||
Line 652: | Line 905: | ||
| 30 | | 30 | ||
| Minimum speed to get knocked back when hitting a wall. Also affects pushing speed? | | Minimum speed to get knocked back when hitting a wall. Also affects pushing speed? | ||
+ | | 3.7 | ||
+ | | 3.7 | ||
| 3.7 | | 3.7 | ||
| 3.7 | | 3.7 | ||
Line 661: | Line 916: | ||
| 34 | | 34 | ||
| Running 2 Speed | | Running 2 Speed | ||
− | | 5. | + | | 5.09 |
− | | 5. | + | | 5.09 |
− | | 5. | + | | 5.09 |
− | | 5. | + | | 5.09 |
− | | 5. | + | | 5.09 |
− | | 5. | + | | 5.09 |
+ | | 5.09 | ||
+ | | 5.09 | ||
|- | |- | ||
| 38 | | 38 | ||
| While jump is held, add this to speed. | | While jump is held, add this to speed. | ||
+ | | 0.076 | ||
+ | | 0.076 | ||
| 0.076 | | 0.076 | ||
| 0.076 | | 0.076 | ||
Line 680: | Line 939: | ||
| Ground Acceleration? | | Ground Acceleration? | ||
| 0.05 | | 0.05 | ||
+ | | 0.06 | ||
| 0.06 | | 0.06 | ||
| 0.05 | | 0.05 | ||
+ | | 0.06 | ||
| 0.045 | | 0.045 | ||
| 0.06 | | 0.06 | ||
Line 688: | Line 949: | ||
| 40 | | 40 | ||
| Air Acceleration | | Air Acceleration | ||
+ | | 0.031 | ||
+ | | 0.031 | ||
| 0.031 | | 0.031 | ||
| 0.031 | | 0.031 | ||
Line 697: | Line 960: | ||
| 44 | | 44 | ||
| Ground Deceleration | | Ground Deceleration | ||
+ | | -0.06 | ||
+ | | -0.06 | ||
| -0.06 | | -0.06 | ||
| -0.06 | | -0.06 | ||
Line 706: | Line 971: | ||
| 48 | | 48 | ||
| Brake Speed | | Brake Speed | ||
+ | | -0.18 | ||
+ | | -0.18 | ||
| -0.18 | | -0.18 | ||
| -0.18 | | -0.18 | ||
Line 715: | Line 982: | ||
| 4C | | 4C | ||
| Air Brake Speed | | Air Brake Speed | ||
+ | | -0.17 | ||
+ | | -0.17 | ||
| -0.17 | | -0.17 | ||
| -0.17 | | -0.17 | ||
Line 724: | Line 993: | ||
| 50 | | 50 | ||
| Air Deceleration | | Air Deceleration | ||
+ | | -0.028 | ||
+ | | -0.028 | ||
| -0.028 | | -0.028 | ||
| -0.028 | | -0.028 | ||
Line 733: | Line 1,004: | ||
| 54 | | 54 | ||
| Rolling Deceleration | | Rolling Deceleration | ||
+ | | -0.008 | ||
+ | | -0.008 | ||
| -0.008 | | -0.008 | ||
| -0.008 | | -0.008 | ||
Line 742: | Line 1,015: | ||
| 58 | | 58 | ||
| Speed to add to normal gravity? | | Speed to add to normal gravity? | ||
+ | | -0.01 | ||
+ | | -0.01 | ||
| -0.01 | | -0.01 | ||
| -0.01 | | -0.01 | ||
Line 751: | Line 1,026: | ||
| 5C | | 5C | ||
| Speed when Sonic hits something? | | Speed when Sonic hits something? | ||
+ | | -0.4 | ||
+ | | -0.4 | ||
| -0.4 | | -0.4 | ||
| -0.4 | | -0.4 | ||
Line 760: | Line 1,037: | ||
| 60 | | 60 | ||
| Minimum speed before stopping (affects spindash charging and braking) | | Minimum speed before stopping (affects spindash charging and braking) | ||
+ | | -0.1 | ||
+ | | -0.1 | ||
| -0.1 | | -0.1 | ||
| -0.1 | | -0.1 | ||
Line 769: | Line 1,048: | ||
| 64 | | 64 | ||
| Seems to affect movement on sloped surfaces | | Seems to affect movement on sloped surfaces | ||
+ | | -0.6 | ||
+ | | -0.6 | ||
| -0.6 | | -0.6 | ||
| -0.6 | | -0.6 | ||
Line 777: | Line 1,058: | ||
|- | |- | ||
| 68 | | 68 | ||
− | | Something related to acceleration on ground? Increase it to accelerate faster. | + | | Something related to acceleration on ground? Increase it to accelerate faster. |
− | | | + | | -0.2825 |
− | + | | -0.3375 | |
− | + | | -0.3375 | |
− | + | | -0.3375 | |
− | + | | -0.3375 | |
− | + | | -0.3375 | |
+ | | -0.9 | ||
+ | | -0.2 | ||
|- | |- | ||
| 6C | | 6C | ||
| ? | | ? | ||
+ | | 0.3 | ||
+ | | 0.3 | ||
| 0.3 | | 0.3 | ||
| 0.3 | | 0.3 | ||
Line 797: | Line 1,082: | ||
| Ripple Size? | | Ripple Size? | ||
| 4 | | 4 | ||
+ | | 8.5 | ||
| 3.5 | | 3.5 | ||
+ | | 4 | ||
| 4 | | 4 | ||
| 3.5 | | 3.5 | ||
Line 806: | Line 1,093: | ||
| Collision Size | | Collision Size | ||
| 10 | | 10 | ||
+ | | 18 | ||
| 9 | | 9 | ||
| 11.4 | | 11.4 | ||
+ | | 10 | ||
| 10 | | 10 | ||
| 21 | | 21 | ||
Line 814: | Line 1,103: | ||
| 78 | | 78 | ||
| Gravity (Multiplied by Gravity values) | | Gravity (Multiplied by Gravity values) | ||
+ | | 0.08 | ||
+ | | 0.08 | ||
| 0.08 | | 0.08 | ||
| 0.08 | | 0.08 | ||
Line 823: | Line 1,114: | ||
| 7C | | 7C | ||
| Y Offset for camera | | Y Offset for camera | ||
+ | | 7 | ||
| 7 | | 7 | ||
| 6 | | 6 | ||
| 9 | | 9 | ||
+ | | 7 | ||
| 7 | | 7 | ||
| 20 | | 20 | ||
Line 833: | Line 1,126: | ||
| Y Offset | | Y Offset | ||
| 5.4 | | 5.4 | ||
+ | | 5.3 | ||
| 4.5 | | 4.5 | ||
| 5.7 | | 5.7 | ||
+ | | 5 | ||
| 5 | | 5 | ||
| 14 | | 14 | ||
Line 841: | Line 1,136: | ||
===Other Values=== | ===Other Values=== | ||
− | {| class="prettytable" | + | {| class="prettytable" style="width:auto;" |
!Address (US)||Address (EU)||Description||Default | !Address (US)||Address (EU)||Description||Default | ||
|- | |- | ||
− | | | + | | 92FEB |
− | | | + | | 9303B |
− | | | + | | Light Speed Attack V Speed |
− | | | + | | 8 |
+ | |- | ||
+ | | 9306A | ||
+ | | 930BA | ||
+ | | Light Speed Dash H Speed | ||
+ | | 8 | ||
|- | |- | ||
| 9439D | | 9439D | ||
Line 868: | Line 1,168: | ||
| Super Sonic's Y Offset | | Super Sonic's Y Offset | ||
| 6.4 | | 6.4 | ||
+ | |- | ||
+ | | 94C2F | ||
+ | | 94C7F | ||
+ | | Jump Dash H Speed | ||
+ | | 5 | ||
+ | |- | ||
+ | | 96F23 | ||
+ | | 96F73 | ||
+ | | Initial Spindash Speed | ||
+ | | 2 | ||
+ | |- | ||
+ | | 3DCB34 | ||
+ | | 3DCB3C | ||
+ | | Max Spindash Speed | ||
+ | | 10 | ||
+ | |- | ||
+ | | 3DCCFC | ||
+ | | 3DCD04 | ||
+ | | Free Movement Speed | ||
+ | | 5 | ||
+ | |- | ||
+ | | 3DD550 | ||
+ | | 3DD540 | ||
+ | | Spindash Speed Increment | ||
+ | | 0.4 | ||
+ | |- | ||
+ | | 3E007C | ||
+ | | 3E006C | ||
+ | | Water Multiplication | ||
+ | | 0.65 | ||
+ | |} | ||
+ | |||
+ | ==Object lists== | ||
+ | A pointer list is at 574AF8, containing eight entries per level. To find the pointer you want, take $574AF8 + (((level * 8) + act) * 4). Remember to subtract $400000 from all pointers! | ||
+ | |||
+ | Now you will be at the list header, which is actually at the end of the list. | ||
+ | The header is simple: the first 4 Bytes are the number of objects, and the next 4 bytes are a pointer to the start of the list. | ||
+ | |||
+ | The list consists of $14 bytes for each object, in the following format: | ||
+ | {| class="prettytable" style="width:auto;" | ||
+ | !Offset||Type||Description | ||
+ | |- | ||
+ | | 0 | ||
+ | | Byte | ||
+ | | First argument passed to ObjLoad | ||
+ | |- | ||
+ | | 1 | ||
+ | | Byte | ||
+ | | Second argument passed to ObjLoad | ||
+ | |- | ||
+ | | 2 | ||
+ | | 2 Bytes | ||
+ | | Some setting related to the distance at which the object appears. The next value will only take effect if this is 1, otherwise the game will provide a value. | ||
+ | |- | ||
+ | | 4 | ||
+ | | Float | ||
+ | | The distance from the player at which the object appears/disappears. | ||
+ | |- | ||
+ | | 8 | ||
+ | | 4 Bytes | ||
+ | | Unknown. Usually 0. | ||
+ | |- | ||
+ | | C | ||
+ | | 4 Bytes | ||
+ | | A pointer to the main subroutine for the object. | ||
+ | |- | ||
+ | | 10 | ||
+ | | 4 Bytes | ||
+ | | A pointer to the name of the object in ASCII text. Unused in the final, but used in the preview's SET Editor. | ||
+ | |} | ||
+ | |||
+ | You should avoid editing these values unless you are absolutely sure of what you're doing, as incorrect arguments or pointers will likely crash the game. Instead, you should simply copy an entry from another level's list, and it will work as long as the proper textures are loaded. | ||
+ | |||
+ | ==Character Select== | ||
+ | ===Characters=== | ||
+ | The characters are stored as an array of 2 byte values at 3EF6B4 (3EF6A4 in the EU version), in the order Sonic, Tails, Knuckles, Amy, Big, Gamma, (Super/Metal) Sonic. | ||
+ | |||
+ | ===Objects=== | ||
+ | The objects to load for each character at the character select screen are at 3F0788 (3F0778 in EU). | ||
+ | All the data are pointers. | ||
+ | {| class="prettytable" style="width:auto;" | ||
+ | !Offset||Description | ||
+ | |- | ||
+ | | 0 | ||
+ | | The address of the code for the object. | ||
+ | |- | ||
+ | | 4 | ||
+ | | The address of the texture list to use for the object. | ||
+ | |- | ||
+ | | 8 | ||
+ | | A pointer to some area in RAM. Function unknown. | ||
+ | |- | ||
+ | | C | ||
+ | | A pointer to four bytes worth of data. Function unknown. | ||
+ | |} | ||
+ | |||
+ | ==Trial Mode levels== | ||
+ | Starting at 3EF5EC/3EF5DC for Action Stages and 3EF624/3EF614 for Sub Games, it lists a pointer to a list of levels followed a by 4 byte count of the levels in the list. | ||
+ | The lists themselves are simply a byte for the level and a byte for the act. | ||
+ | |||
+ | ==Level Start Arrays== | ||
+ | {| class="prettytable" style="width:auto;" | ||
+ | !Character||Address||# of entries | ||
+ | |- | ||
+ | | Sonic | ||
+ | | 50A5C8 | ||
+ | | 72 | ||
+ | |- | ||
+ | | Tails | ||
+ | | 50AB68 | ||
+ | | 41 | ||
+ | |- | ||
+ | | Knuckles | ||
+ | | 50AEA0 | ||
+ | | 39 | ||
+ | |- | ||
+ | | Big | ||
+ | | 50B1B0 | ||
+ | | 35 | ||
+ | |- | ||
+ | | Amy | ||
+ | | 50B470 | ||
+ | | 41 | ||
+ | |- | ||
+ | | Gamma | ||
+ | | 50B7A8 | ||
+ | | 43 | ||
|} | |} | ||
+ | The end of the array is signaled by an entry with a level value of 0x2B. | ||
− | == | + | Each entry is $14 bytes long, in the following format: |
− | + | {| class="prettytable" style="width:auto;" | |
+ | !Offset||Type||Description | ||
+ | |- | ||
+ | | 0 | ||
+ | | 2 Bytes | ||
+ | | Level ID | ||
+ | |- | ||
+ | | 2 | ||
+ | | 2 Bytes | ||
+ | | Act ID | ||
+ | |- | ||
+ | | 4 | ||
+ | | Float | ||
+ | | X Position | ||
+ | |- | ||
+ | | 8 | ||
+ | | Float | ||
+ | | Y Position | ||
+ | |- | ||
+ | | C | ||
+ | | Float | ||
+ | | Z Position | ||
+ | |- | ||
+ | | 10 | ||
+ | | 4 Bytes | ||
+ | | Y Rotation | ||
+ | |} | ||
==Misc. Code== | ==Misc. Code== | ||
− | + | This section is for code that doesn't fit into any of the above sections. To disable code, replace it with nop instructions ($90)<br /> | |
− | This section is for code that doesn't fit into any of the above sections. To disable code, replace it with nop instructions ($90) | + | [http://siyobik.info/main/reference x86 Instruction Set Reference] |
− | {| class="prettytable" | + | {| class="prettytable" style="width:auto;" |
!Address (US)||Address (EU)||Bytes||ASM||Description||Result when disabled | !Address (US)||Address (EU)||Bytes||ASM||Description||Result when disabled | ||
|- | |- | ||
| 13D9E | | 13D9E | ||
− | | | + | | 13DEE |
| C6 05 40 EF B0 03 00 | | C6 05 40 EF B0 03 00 | ||
| mov byte ptr [03B0EF40],00 | | mov byte ptr [03B0EF40],00 | ||
Line 894: | Line 1,348: | ||
|- | |- | ||
| 25B7E | | 25B7E | ||
− | | | + | | 25BCE |
| 00 1d 34 ef b0 03 | | 00 1d 34 ef b0 03 | ||
| add [03b0ef34],bl | | add [03b0ef34],bl | ||
Line 908: | Line 1,362: | ||
|- | |- | ||
| 25CC0 | | 25CC0 | ||
− | | | + | | 25D10 |
| 66 A1 E4 F0 B0 03 | | 66 A1 E4 F0 B0 03 | ||
| mov ax,[03B0F0E4] | | mov ax,[03B0F0E4] | ||
Line 915: | Line 1,369: | ||
|- | |- | ||
| 496DD | | 496DD | ||
− | | | + | | 4972D |
| 80 7b 09 06 | | 80 7b 09 06 | ||
0f 85 cf 00 00 00 | 0f 85 cf 00 00 00 | ||
Line 924: | Line 1,378: | ||
| NOP the jne, and everyone can walk on water. | | NOP the jne, and everyone can walk on water. | ||
Replace it with a jmp, and nobody can. | Replace it with a jmp, and nobody can. | ||
+ | |- | ||
+ | | F6B02 | ||
+ | | F6B52 | ||
+ | | 75 0a | ||
+ | | jne 000f6b0e | ||
+ | | End the level if you're playing as Tails in Emerald Coast part 2 | ||
+ | | Replace the jne with a jmp and Tails will be able to play this level. | ||
+ | |} | ||
+ | ===Morph Targets=== | ||
+ | Disable these addresses to prevent crashes when editing the related models. | ||
+ | {| class="prettytable" style="width:auto;" | ||
+ | !Address (US)||Address (EU)||Bytes||ASM | ||
+ | |- | ||
+ | !colspan=4|Amy's head | ||
+ | |- | ||
+ | | 85F0E | ||
+ | | 85F5E | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 85C41 | ||
+ | | 85C91 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Amy's body | ||
+ | |- | ||
+ | | 86400 | ||
+ | | 86450 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 85F31 | ||
+ | | 85F81 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Big's head | ||
+ | |- | ||
+ | | 8C9D8 | ||
+ | | 8CA28 | ||
+ | | 89 48 04 | ||
+ | | mov [eax+04],ecx | ||
+ | |- | ||
+ | | 8C70E | ||
+ | | 8C75E | ||
+ | | 89 51 04 | ||
+ | | mov [ecx+04],edx | ||
+ | |- | ||
+ | !colspan=4|Big's fishing pole | ||
+ | |- | ||
+ | | 913AB | ||
+ | | 913FB | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | !colspan=4|Big's power rod | ||
+ | |- | ||
+ | | 91392 | ||
+ | | 913E2 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | !colspan=4|Knuckles' head | ||
+ | |- | ||
+ | | 73FB2 | ||
+ | | 74002 | ||
+ | | 89 48 04 | ||
+ | | mov [eax+04],ecx | ||
+ | |- | ||
+ | | 73CC1 | ||
+ | | 73D11 | ||
+ | | 89 51 04 | ||
+ | | mov [ecx+04],edx | ||
+ | |- | ||
+ | !colspan=4|Knuckles' air head | ||
+ | |- | ||
+ | | 73FC7 | ||
+ | | 74017 | ||
+ | | 89 48 04 | ||
+ | | mov [eax+04],ecx | ||
+ | |- | ||
+ | | 73CD5 | ||
+ | | 73D25 | ||
+ | | 89 51 04 | ||
+ | | mov [ecx+04],edx | ||
+ | |- | ||
+ | !colspan=4|Knuckles' hands | ||
+ | |- | ||
+ | | 726D3 | ||
+ | | 72723 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 726EA | ||
+ | | 7273A | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 72701 | ||
+ | | 72751 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | | 72719 | ||
+ | | 72769 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 72730 | ||
+ | | 72780 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 72747 | ||
+ | | 72797 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | | 7275F | ||
+ | | 727AF | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 72776 | ||
+ | | 727C6 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Knuckles' fighting gloves | ||
+ | |- | ||
+ | | 72B4A | ||
+ | | 72B9A | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 72B61 | ||
+ | | 72BB1 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 72B78 | ||
+ | | 72BC8 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | | 72B90 | ||
+ | | 72BE0 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 72BA7 | ||
+ | | 72BF7 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 72BBE | ||
+ | | 72C0E | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | | 72BD6 | ||
+ | | 72C26 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 72BED | ||
+ | | 72C3D | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Tails' body | ||
+ | |- | ||
+ | | 622E4 | ||
+ | | 62334 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | !colspan=4|Tails' body w/ badge | ||
+ | |- | ||
+ | | 622B4 | ||
+ | | 62304 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Tails' flying body | ||
+ | |- | ||
+ | | 622FB | ||
+ | | 6234B | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Tails' flying body w/ badge | ||
+ | |- | ||
+ | | 622CB | ||
+ | | 6231B | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | !colspan=4|Tails' head | ||
+ | |- | ||
+ | | 5BB60 | ||
+ | | 5BBB0 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 5B821 | ||
+ | | 5B871 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Tails' flying head | ||
+ | |- | ||
+ | | 5BB74 | ||
+ | | 5BBC4 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | | 5B835 | ||
+ | | 5B885 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | !colspan=4|Tails' tails | ||
+ | |- | ||
+ | | 5BED3 | ||
+ | | 5BF23 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 5DAB1 | ||
+ | | 5DB01 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 61389 | ||
+ | | 613D9 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | | 61325 | ||
+ | | 61375 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 5BEE7 | ||
+ | | 5BF37 | ||
+ | | 89 4a 04 | ||
+ | | mov [edx+04],ecx | ||
+ | |- | ||
+ | | 5DACA | ||
+ | | 5DB1A | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | | 613A1 | ||
+ | | 613F1 | ||
+ | | 89 50 04 | ||
+ | | mov [eax+04],edx | ||
+ | |- | ||
+ | | 61339 | ||
+ | | 61389 | ||
+ | | 89 41 04 | ||
+ | | mov [ecx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Sonic's left toe | ||
+ | |- | ||
+ | | 93711 | ||
+ | | 93761 | ||
+ | | 89 42 04 | ||
+ | | mov [edx+04],eax | ||
+ | |- | ||
+ | | 9356D | ||
+ | | 935BD | ||
+ | | 89 42 04 | ||
+ | | mov [edx+04],eax | ||
+ | |- | ||
+ | | 935E3 | ||
+ | | 93533 | ||
+ | | 89 48 04 | ||
+ | | mov [eax+04],ecx | ||
+ | |- | ||
+ | !colspan=4|Sonic's right toe | ||
+ | |- | ||
+ | | 93722 | ||
+ | | 93772 | ||
+ | | 89 42 04 | ||
+ | | mov [edx+04],eax | ||
+ | |- | ||
+ | | 936EA | ||
+ | | 9373A | ||
+ | | 89 42 04 | ||
+ | | mov [edx+04],eax | ||
+ | |- | ||
+ | | 93657 | ||
+ | | 936A7 | ||
+ | | 89 51 04 | ||
+ | | mov [ecx+04],edx | ||
+ | |- | ||
+ | | 936CD | ||
+ | | 9371D | ||
+ | | 89 42 04 | ||
+ | | mov [edx+04],eax | ||
+ | |- | ||
+ | !colspan=4|Sonic's head | ||
+ | |- | ||
+ | | 93C5D | ||
+ | | 93CAD | ||
+ | | 89 51 04 | ||
+ | | mov [ecx+04],edx | ||
+ | |- | ||
+ | | 937A1 | ||
+ | | 937F1 | ||
+ | | 89 51 04 | ||
+ | | mov [ecx+04],edx | ||
|} | |} | ||
+ | |||
+ | ==References== | ||
+ | <references /> | ||
{{SCHGuides}} | {{SCHGuides}} | ||
− |
Latest revision as of 16:53, 24 March 2020
SCHG: Sonic Adventure | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dreamcast Gamecube 2004 PC 2010 PC | ||||||||||||||||||||||||
|
This page is about various things you can edit in the sonic.exe file.
Note: There are multiple versions of SADXPC. Some addresses may not work for your version. Make sure the values given match your exe before editing it! Addresses that only work for the US version will be marked with US. Addresses that only work for the European version will be marked with EU. These are not likely to work with the Japanese version.
Note: the cracked version is the same as the European version.
Note: to find these in RAM, add $400000.
Animation Swapping
This short section needs expansion. You can help Sonic Retro by adding to it. |
Sonic's Animations
Address (US) | Address (EU) | Description | Default (dec.) |
---|---|---|---|
97A88 | 97AD8 | Landing After Falling | 1 |
9773F | 9778F | Landing After Jumping | 2 |
916FF | 9174F | Idle | 4 |
917F9 | 91849 | Leaning forwards | 7 |
91807 | 91857 | Leaning back | 8 |
95E46 | 95E96 | Walking 1 | 9 |
95E2C | 95E7C | Walking 2 | 10 |
95BDA | 95C2A | Walking 3 | 11 |
95B44 | 95B94 | Running 1 | 12 |
95C27 | 95C77 | Running 2 | 13 |
95C77 | 95CC7 | Jumping/Spindashing | 14 |
951D3 | 95223 | Rolling | 15 |
92FE6 | 93036 | Light Speed Attack | 15 |
95B97 | 95BE7 | Springing | 16 |
978D9 | 97929 | After Springing | 17 |
94FDC | 9502C | Falling | 18 |
92F7A | 92FCA | Jump Cancel | 18 |
97CC0 | 97D10 | After Jump Dash | 18 |
9876B | 987BB | After Light Speed Attack | 18 |
97298 | 972E8 | Braking | 20 |
975B3 | 97603 | After Light Speed Dash | 20 |
92F1C | 92F6C | Hurt | 23 |
97F4B | 97F9B | Hurt Landing | 24 |
9607F | 960CF | Floating | 26 |
93053 | 930A3 | Light Speed Dash | 64 |
963FF | 9644F | Ladder | 69 |
9B117 | 9B167 | Jump Pad Flip | 72 |
95CC7 | 95D17 | Jump Pad Flight | 73 |
984A3 | 984F3 | Jump Pad Landing | 74 |
961DB | 9622B | Victory | 75 |
96595 | 965E5 | Frozen | 82 |
9675C | 967AC | Drowning | 85 |
9BDC1 | 9BE11 | Dying | 87 |
Metal Sonic | |||
95B3A | 95B8A | Running 1 | 146 |
95BEB | 95C3B | Running 2 | 13 |
95C3B | 95C8B | Jumping | 14 |
Super Sonic | |||
96743 | 96793 | Start | 134 |
9A475 | 9A4C5 | Standing from Moving | 134 |
9A560 | 9A5B0 | Standing from Jumping | 134 |
9A3B8 | 9A408 | Jump Cancel | 141 |
9A4B6 | 9A506 | Falling | 141 |
9A6D6 | 9A726 | After Jump Dash | 141 |
9A617 | 9A667 | After Springing | 140 |
94D25 | 94D75 | Springing | 139 |
94E02 | 94E52 | Victory | 143 |
9A3DE | 9A42E | Jumping | 145 |
918A6 | 918F6 | Moving 1 | 135 |
9188E | 918DE | Moving 2 | 136 |
91869 | 918B9 | Moving 3 | 137 |
91842 | 91892 | Moving 4 | 138 |
Tails' Animations
Address (US) | Address (EU) | Description | Default (dec.) |
---|---|---|---|
5C0D1 | 5C121 | Jumping | 14 |
5F9BB | 5FA0B | Walking 1 | 9 |
5C1ED | 5C23D | Wind Path | 11 |
5C1A7 | 5C1F7 | Spring | 17 |
5EC9F | 5ECEF | Downwards Spring | 18 |
5CE93 | 5CEE3 | Falling | 19 |
5C1DA | 5C22A | Floating | 33 |
5EB5C | 5EBAC | Flying | 37 |
5C6D6 | 5C726 | After Dash Hoop | 37 |
5C725 | 5C775 | Dash Hoop | 41 |
5D702 | 5D752 | Tail Attack | 43 |
Knuckles' Animations
Address (US) | Address (EU) | Description | Default(dec.) |
---|---|---|---|
7694A | 7699A | Jumping | 14 |
7865D | 786AD | Gliding 1 | 51 |
786E9 | 78739 | Gliding 2 (used for a second glide without landing) | 51 |
7888E | 788DE | After Gliding | 34 |
76E04 | 76554 | Drowning | 38 |
Action Swapping
This short section needs expansion. You can help Sonic Retro by adding to it. |
Sonic's Actions
Address (US) | Address (EU) | Description | Default (dec.) |
---|---|---|---|
9ABE5 | 9AC35 | Level Start | 1 |
95063 | 950B3 | Standing | 1 |
94848 | 94898 | After Hurt | 1 |
9A83E | 9A88E | Walking/Running | 2 |
979A1 | 979F1 | Landing and moving | 2 |
97774 | 977C4 | Landing and moving after rolling | 2 |
96EFA | 96F4A | Spindash | 4 |
951C0 | 95210 | Rolling | 5 |
93049 | 93099 | Light Speed Dash | 6 |
95F11 | 95F61 | Jumping | 8 |
97CDB | 97D2B | After Homing Attack | 8 |
94F8F | 94FDF | Falling After Rolling | 8 |
96001 | 96051 | Vertical Spring | 9 |
96048 | 96098 | Spring | 10 |
92F6A | 92FBA | Jump Cancel | 12 |
94FD3 | 95023 | Falling | 12 |
97843 | 97893 | After Vertical Spring | 12 |
978D0 | 97920 | After Spring | 12 |
97CB8 | 97D08 | After Jump Dash | 12 |
977B9 | 97809 | Homing Attack/Jump Dash | 14 |
92F12 | 92F62 | Hurt | 16 |
963F5 | 96445 | Ladder | 38 |
95E99 | 95EE9 | Jumping from first Panel | 40 |
98547 | 98597 | Jumping from Panel | 40 |
9849A | 984EA | Landing on Panel | 41 |
9658D | 965DD | Frozen | 43 |
92FDC | 9302C | Light Speed Attack | 44 |
99522 | 99572 | Running down building after falling | 46 |
994B1 | 99501 | Running down building after jumping | 46 |
99393 | 993E3 | Rolling down building | 47 |
96353 | 963A3 | Falling down building | 48 |
9936B | 993BB | Jumping down building | 49 |
9B47A | 9B4CA | Hit while running down building | 50 |
9676D | 967BD | Dying | 86 |
9AA29 | 9AA79 | Debug Mode | 87 |
Super Sonic | |||
9673B | 9678B | Start | 75 |
9A46D | 9A4BD | Standing from Moving | 75 |
9A558 | 9A5A8 | Standing from Jumping | 75 |
94E38 | 94E88 | After hitting Perfect Chaos | 75 |
9A404 | 9A454 | Moving | 76 |
9A740 | 9A790 | Landing and Moving | 76 |
9A3AF | 9A3FF | Jump Cancel | 78 |
9A4AE | 9A4FE | Falling | 78 |
9A6CE | 9A71E | After Jump Dash | 78 |
9A60E | 9A65E | After Springing | 78 |
94D1D | 94D6D | Springing | 79 |
9A5CD | 9A61D | Homing Attack | 81 |
9A3D6 | 9A426 | Jumping | 82 |
9A75F | 9A7AF | After Homing Attack | 82 |
94DFA | 94E4A | Victory | 20 |
94EC2 | 94F12 | Dying | 86 |
Tails' Actions
Address (US) | Address (EU) | Description | Default (dec.) |
---|---|---|---|
6186A | 618BA | Level Start | 1 |
5CF1F | 5CF6F | Standing | 1 |
5F7E9 | 5F839 | After Tail Attack | 1 |
5F9B3 | 5FA03 | Walking/Running | 2 |
5C1E3 | 5C233 | Wind Path | 3 |
73C29 | 73C79 | Rolling | 4 |
5C096 | 5C0E6 | Jumping | 6 |
5C19F | 5C1EF | Springing | 8 |
5CE8B | 5CEDB | Falling | 10 |
5A84A | 5A89A | Jump Cancel | 10 |
5C1D2 | 5C222 | Floating | 10 |
5EC97 | 5ECE7 | Downwards Spring | 10 |
5EB54 | 5EBA4 | Flying | 15 |
5C6C8 | 5C718 | After Dash Hoop | 15 |
5D6FA | 5D74A | Tail Attack | 20 |
5C717 | 5C767 | Dash Hoop | 61 |
5C2EE | 5C33E | Victory/Loss | 62 |
Knuckles' Actions
Address (US) | Address (EU) | Description | Default (dec.) |
---|---|---|---|
72145 | 72195 | Maximum Heat Attack | 18 |
73C80 | 73CD0 | Punching | 26 |
78652 | 786A2 | Gliding 1 | 11 |
Physics
Locations
These are indexed by $5154E8 + (Character * $84).
Character | Address |
---|---|
Sonic | 5154E8 |
Eggman | 51556C |
Tails | 5155F0 |
Knuckles | 515674 |
Tikal | 5156F8 |
Amy | 51577C |
Gamma | 515800 |
Big | 515884 |
Offsets
These are in the same locations as in RAM. These are all Floats except Hang Time, which is 4 Bytes, measured in frames.
Offset | Description | Sonic | Eggman | Tails | Knuckles | Tikal | Amy | Gamma | Big |
---|---|---|---|---|---|---|---|---|---|
0 | Hang Time | 60 | 60 | 60 | 60 | 60 | 60 | 60 | 60 |
4 | Amount of grip on floor | 2 | 3 | 1.5 | 2 | 2 | 1.5 | 2 | 2 |
8 | Horizontal Speed Cap | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 5 |
C | Vertical Speed Cap | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 8 |
10 | Something to do with the maximum speed Sonic can accelerate to on his own? | 3 | 3 | 2 | 2.5 | 3 | 0.05 | 2.5 | 1 |
14 | ? | 0.6 | 1 | 0.6 | 0.6 | 1 | 0.5 | 0.6 | 0.2 |
18 | Initial Jump Speed | 1.66 | 1.66 | 1.66 | 1.66 | 1.66 | 1.3 | 2 | 2 |
1C | Spring Control? | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
20 | ? | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 |
24 | Rolling Cancel Speed | 0.46 | 0.46 | 0.49 | 0.46 | 0.46 | 0.46 | 1 | 0.32 |
28 | Rolling End Speed | 1.39 | 1.39 | 1.39 | 1.39 | 1.39 | 1.39 | 2 | 1.39 |
2C | Running 1 Speed | 2.3 | 2.3 | 2.8 | 3.1 | 2.3 | 2.3 | 2.5 | 2.3 |
30 | Minimum speed to get knocked back when hitting a wall. Also affects pushing speed? | 3.7 | 3.7 | 3.7 | 3.7 | 3.7 | 3.7 | 3.7 | 3.7 |
34 | Running 2 Speed | 5.09 | 5.09 | 5.09 | 5.09 | 5.09 | 5.09 | 5.09 | 5.09 |
38 | While jump is held, add this to speed. | 0.076 | 0.076 | 0.076 | 0.076 | 0.076 | 0.013 | 0.09 | 0.1 |
3C | Ground Acceleration? | 0.05 | 0.06 | 0.06 | 0.05 | 0.06 | 0.045 | 0.06 | 0.08 |
40 | Air Acceleration | 0.031 | 0.031 | 0.031 | 0.031 | 0.031 | 0.031 | 0.031 | 0.031 |
44 | Ground Deceleration | -0.06 | -0.06 | -0.06 | -0.06 | -0.06 | -0.06 | -0.06 | -0.08 |
48 | Brake Speed | -0.18 | -0.18 | -0.18 | -0.18 | -0.18 | -0.18 | -0.25 | -0.18 |
4C | Air Brake Speed | -0.17 | -0.17 | -0.17 | -0.17 | -0.17 | -0.17 | -0.17 | -0.17 |
50 | Air Deceleration | -0.028 | -0.028 | -0.028 | -0.028 | -0.028 | -0.028 | -0.028 | -0.028 |
54 | Rolling Deceleration | -0.008 | -0.008 | -0.008 | -0.008 | -0.008 | -0.008 | -0.008 | -0.04 |
58 | Speed to add to normal gravity? | -0.01 | -0.01 | -0.01 | -0.01 | -0.01 | -0.01 | -0.01 | -0.01 |
5C | Speed when Sonic hits something? | -0.4 | -0.4 | -0.4 | -0.4 | -0.4 | -0.4 | -0.4 | -0.4 |
60 | Minimum speed before stopping (affects spindash charging and braking) | -0.1 | -0.1 | -0.1 | -0.1 | -0.1 | -0.1 | -0.1 | -0.1 |
64 | Seems to affect movement on sloped surfaces | -0.6 | -0.6 | -0.6 | -0.6 | -0.6 | -0.6 | -0.6 | -0.6 |
68 | Something related to acceleration on ground? Increase it to accelerate faster. | -0.2825 | -0.3375 | -0.3375 | -0.3375 | -0.3375 | -0.3375 | -0.9 | -0.2 |
6C | ? | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 |
70 | Ripple Size? | 4 | 8.5 | 3.5 | 4 | 4 | 3.5 | 4 | 9.5 |
74 | Collision Size | 10 | 18 | 9 | 11.4 | 10 | 10 | 21 | 17 |
78 | Gravity (Multiplied by Gravity values) | 0.08 | 0.08 | 0.08 | 0.08 | 0.08 | 0.04 | 0.1 | 0.135 |
7C | Y Offset for camera | 7 | 7 | 6 | 9 | 7 | 7 | 20 | 15 |
80 | Y Offset | 5.4 | 5.3 | 4.5 | 5.7 | 5 | 5 | 14 | 8 |
Other Values
Address (US) | Address (EU) | Description | Default |
---|---|---|---|
92FEB | 9303B | Light Speed Attack V Speed | 8 |
9306A | 930BA | Light Speed Dash H Speed | 8 |
9439D | 943ED | Super Sonic's Rolling Deceleration | -0.001 |
943A7 | 943F7 | Super Sonic's Air Deceleration | -0.002 |
943B1 | 94401 | Super Sonic's Air Acceleration | 0.05 |
943BB | 9440B | Super Sonic's Y Offset | 6.4 |
94C2F | 94C7F | Jump Dash H Speed | 5 |
96F23 | 96F73 | Initial Spindash Speed | 2 |
3DCB34 | 3DCB3C | Max Spindash Speed | 10 |
3DCCFC | 3DCD04 | Free Movement Speed | 5 |
3DD550 | 3DD540 | Spindash Speed Increment | 0.4 |
3E007C | 3E006C | Water Multiplication | 0.65 |
Object lists
A pointer list is at 574AF8, containing eight entries per level. To find the pointer you want, take $574AF8 + (((level * 8) + act) * 4). Remember to subtract $400000 from all pointers!
Now you will be at the list header, which is actually at the end of the list. The header is simple: the first 4 Bytes are the number of objects, and the next 4 bytes are a pointer to the start of the list.
The list consists of $14 bytes for each object, in the following format:
Offset | Type | Description |
---|---|---|
0 | Byte | First argument passed to ObjLoad |
1 | Byte | Second argument passed to ObjLoad |
2 | 2 Bytes | Some setting related to the distance at which the object appears. The next value will only take effect if this is 1, otherwise the game will provide a value. |
4 | Float | The distance from the player at which the object appears/disappears. |
8 | 4 Bytes | Unknown. Usually 0. |
C | 4 Bytes | A pointer to the main subroutine for the object. |
10 | 4 Bytes | A pointer to the name of the object in ASCII text. Unused in the final, but used in the preview's SET Editor. |
You should avoid editing these values unless you are absolutely sure of what you're doing, as incorrect arguments or pointers will likely crash the game. Instead, you should simply copy an entry from another level's list, and it will work as long as the proper textures are loaded.
Character Select
Characters
The characters are stored as an array of 2 byte values at 3EF6B4 (3EF6A4 in the EU version), in the order Sonic, Tails, Knuckles, Amy, Big, Gamma, (Super/Metal) Sonic.
Objects
The objects to load for each character at the character select screen are at 3F0788 (3F0778 in EU). All the data are pointers.
Offset | Description |
---|---|
0 | The address of the code for the object. |
4 | The address of the texture list to use for the object. |
8 | A pointer to some area in RAM. Function unknown. |
C | A pointer to four bytes worth of data. Function unknown. |
Trial Mode levels
Starting at 3EF5EC/3EF5DC for Action Stages and 3EF624/3EF614 for Sub Games, it lists a pointer to a list of levels followed a by 4 byte count of the levels in the list. The lists themselves are simply a byte for the level and a byte for the act.
Level Start Arrays
Character | Address | # of entries |
---|---|---|
Sonic | 50A5C8 | 72 |
Tails | 50AB68 | 41 |
Knuckles | 50AEA0 | 39 |
Big | 50B1B0 | 35 |
Amy | 50B470 | 41 |
Gamma | 50B7A8 | 43 |
The end of the array is signaled by an entry with a level value of 0x2B.
Each entry is $14 bytes long, in the following format:
Offset | Type | Description |
---|---|---|
0 | 2 Bytes | Level ID |
2 | 2 Bytes | Act ID |
4 | Float | X Position |
8 | Float | Y Position |
C | Float | Z Position |
10 | 4 Bytes | Y Rotation |
Misc. Code
This section is for code that doesn't fit into any of the above sections. To disable code, replace it with nop instructions ($90)
x86 Instruction Set Reference
Address (US) | Address (EU) | Bytes | ASM | Description | Result when disabled |
---|---|---|---|---|---|
13D9E | 13DEE | C6 05 40 EF B0 03 00 | mov byte ptr [03B0EF40],00 | Show the HUD | Allow hiding the HUD |
25AB0 | 25B00 | 66 C7 05 E4 F0 B0 03 00 00 | mov word ptr [03B0F0E4],0000 | Set rings to 0 when hit | Don't lose rings when hit |
25B7E | 25BCE | 00 1d 34 ef b0 03 | add [03b0ef34],bl | add change to lives | Can't lose or gain lives |
25C03 | 25C53 | 66 89 0D E4 F0 B0 03 | mov [03B0F0E4],ecx | Ring collection | Collecting rings doesn't add to total. Also disables Super Sonic's ring drain. |
25CC0 | 25D10 | 66 A1 E4 F0 B0 03 | mov ax,[03B0F0E4] | Copy rings value when hit | Always spill 20 rings and can't die when hit |
496DD | 4972D | 80 7b 09 06
0f 85 cf 00 00 00 |
cmp byte ptr [ebx+09],06
jne 497b6 |
Test if you're playing as E-102 Gamma,
and branch if you aren't |
NOP the jne, and everyone can walk on water.
Replace it with a jmp, and nobody can. |
F6B02 | F6B52 | 75 0a | jne 000f6b0e | End the level if you're playing as Tails in Emerald Coast part 2 | Replace the jne with a jmp and Tails will be able to play this level. |
Morph Targets
Disable these addresses to prevent crashes when editing the related models.
Address (US) | Address (EU) | Bytes | ASM |
---|---|---|---|
Amy's head | |||
85F0E | 85F5E | 89 50 04 | mov [eax+04],edx |
85C41 | 85C91 | 89 41 04 | mov [ecx+04],eax |
Amy's body | |||
86400 | 86450 | 89 41 04 | mov [ecx+04],eax |
85F31 | 85F81 | 89 41 04 | mov [ecx+04],eax |
Big's head | |||
8C9D8 | 8CA28 | 89 48 04 | mov [eax+04],ecx |
8C70E | 8C75E | 89 51 04 | mov [ecx+04],edx |
Big's fishing pole | |||
913AB | 913FB | 89 4a 04 | mov [edx+04],ecx |
Big's power rod | |||
91392 | 913E2 | 89 4a 04 | mov [edx+04],ecx |
Knuckles' head | |||
73FB2 | 74002 | 89 48 04 | mov [eax+04],ecx |
73CC1 | 73D11 | 89 51 04 | mov [ecx+04],edx |
Knuckles' air head | |||
73FC7 | 74017 | 89 48 04 | mov [eax+04],ecx |
73CD5 | 73D25 | 89 51 04 | mov [ecx+04],edx |
Knuckles' hands | |||
726D3 | 72723 | 89 50 04 | mov [eax+04],edx |
726EA | 7273A | 89 41 04 | mov [ecx+04],eax |
72701 | 72751 | 89 4a 04 | mov [edx+04],ecx |
72719 | 72769 | 89 50 04 | mov [eax+04],edx |
72730 | 72780 | 89 41 04 | mov [ecx+04],eax |
72747 | 72797 | 89 4a 04 | mov [edx+04],ecx |
7275F | 727AF | 89 50 04 | mov [eax+04],edx |
72776 | 727C6 | 89 41 04 | mov [ecx+04],eax |
Knuckles' fighting gloves | |||
72B4A | 72B9A | 89 50 04 | mov [eax+04],edx |
72B61 | 72BB1 | 89 41 04 | mov [ecx+04],eax |
72B78 | 72BC8 | 89 4a 04 | mov [edx+04],ecx |
72B90 | 72BE0 | 89 50 04 | mov [eax+04],edx |
72BA7 | 72BF7 | 89 41 04 | mov [ecx+04],eax |
72BBE | 72C0E | 89 4a 04 | mov [edx+04],ecx |
72BD6 | 72C26 | 89 50 04 | mov [eax+04],edx |
72BED | 72C3D | 89 41 04 | mov [ecx+04],eax |
Tails' body | |||
622E4 | 62334 | 89 50 04 | mov [eax+04],edx |
Tails' body w/ badge | |||
622B4 | 62304 | 89 41 04 | mov [ecx+04],eax |
Tails' flying body | |||
622FB | 6234B | 89 41 04 | mov [ecx+04],eax |
Tails' flying body w/ badge | |||
622CB | 6231B | 89 4a 04 | mov [edx+04],ecx |
Tails' head | |||
5BB60 | 5BBB0 | 89 41 04 | mov [ecx+04],eax |
5B821 | 5B871 | 89 41 04 | mov [ecx+04],eax |
Tails' flying head | |||
5BB74 | 5BBC4 | 89 4a 04 | mov [edx+04],ecx |
5B835 | 5B885 | 89 4a 04 | mov [edx+04],ecx |
Tails' tails | |||
5BED3 | 5BF23 | 89 41 04 | mov [ecx+04],eax |
5DAB1 | 5DB01 | 89 50 04 | mov [eax+04],edx |
61389 | 613D9 | 89 4a 04 | mov [edx+04],ecx |
61325 | 61375 | 89 50 04 | mov [eax+04],edx |
5BEE7 | 5BF37 | 89 4a 04 | mov [edx+04],ecx |
5DACA | 5DB1A | 89 41 04 | mov [ecx+04],eax |
613A1 | 613F1 | 89 50 04 | mov [eax+04],edx |
61339 | 61389 | 89 41 04 | mov [ecx+04],eax |
Sonic's left toe | |||
93711 | 93761 | 89 42 04 | mov [edx+04],eax |
9356D | 935BD | 89 42 04 | mov [edx+04],eax |
935E3 | 93533 | 89 48 04 | mov [eax+04],ecx |
Sonic's right toe | |||
93722 | 93772 | 89 42 04 | mov [edx+04],eax |
936EA | 9373A | 89 42 04 | mov [edx+04],eax |
93657 | 936A7 | 89 51 04 | mov [ecx+04],edx |
936CD | 9371D | 89 42 04 | mov [edx+04],eax |
Sonic's head | |||
93C5D | 93CAD | 89 51 04 | mov [ecx+04],edx |
937A1 | 937F1 | 89 51 04 | mov [ecx+04],edx |
References