-
Notifications
You must be signed in to change notification settings - Fork 3
/
Mods.asm
272 lines (221 loc) · 12 KB
/
Mods.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
; ================================================================================
; Toggleable Mods (Sorted by Context)
; ================================================================================
; ----- PLAYER ABILITIES ---------------------------------------------------------
; Name: Spin Dash
; Credit: SCHG, DeltaW, Mercury
; Function: Enables the Sonic 2 Spin Dash
SpinDashEnabled: = 1
SkidDustEnabled: = 1 ; if set to 1, Skid dust will occur when coming to a stop.
SpinDashCancel: = SpinDashEnabled*1 ; if set to 1, Spin Dash can be cancelled by not pressing ABC
SpinDashNoRevDown: = SpinDashEnabled*1 ; if set to 1, Spin Dash will not rev down so long as ABC is held down
; (TO-DO: Add the CD Spindash variant)
; Name: Peelout
; Credit: DeltaW, Mercury
; Function: Enables the Sonic CD Peelout. Also enables the dashing animation while running.
PeeloutEnabled: = 1
; Name: Air Roll
; Credit: RetroKoH (Inspired by a guide by Inferno Gear)
; Function: Enables the Air Roll from Sonic Triple Trouble
AirRollEnabled: = 1 ; double-jumps are not enabled when air rolling (toggleable perhaps?)
; Name: Drop Dash (Incomplete: Need to reset animation if Drop Dash is cancelled)
; Credit: DeltaW, giovanni.gen, Hitaxas, RetroKoH
; Function: Enables the Drop Dash from Sonic Mania & Origins
DropDashEnabled: = 1
AirRollIntoDropDash: = AirRollEnabled*DropDashEnabled*1 ; if set to 1, you can transition from Air Roll into Drop Dash by holding the jump button.
; Name: Elemental Shields (Incomplete: Minor bugfixes)
; Credit: RetroKoH, DeltaW
; Function: Enables the usage of S3K Shields and abilities.
InstashieldEnabled: = 0 ; if set to 1, instashield is now enabled (Now split from Elemental Shields toggle).
ShieldsMode: = 2 ; 0 - Blue Shield only, 1 - Blue + Elementals, 2 - Elementals only.
S3KDoubleJump: = (InstashieldEnabled|ShieldsMode)>0
; Name: 7th Emerald and Super Sonic (Incomplete: Minor Bugfixes)
; Credit: RetroKoH (Palette Credit: Clownacy)
; Function: Adds 7th Special Stage, 7th Emerald and Super Sonic Form
SuperMod: = 1
; ----- GAMEPLAY TWEAKS ----------------------------------------------------------
; Name: Beta Level Order
; Credit: RetroKoH
; Function: Toggles level order between Beta and Final
BetaLevelOrder: = 0 ; if set to 1, Level Order is that seen in the beta level select
; Name: Disable Speed Caps
; Credit: Mercury (Ground/Air), RetroKoH (Applied to Devon's Rolling Speed Cap Fix)
; Function: Toggles the speed caps (The original game has all 3 caps active by default)
GroundSpeedCapEnabled: = 0 ; if set to 1, the ground speed cap is active
AirSpeedCapEnabled: = 0 ; if set to 1, the air speed cap is active
RollSpeedCapEnabled: = 0 ; if set to 1, the rolling speed cap is active (fixed by Devon)
; Name: Original Roll Jump Toggle
; Credit: Mercury
; Function: When turned on, Sonic retains his original roll jump lock (See _incObj/Sonic Jump.asm)
RollJumpLockActive: = 0 ; if set to 1, the original roll jump lock is maintained
; Name: Spike Fix Mod
; Credit: FraGag
; Function: Prevents spikes from harming Sonic while he's flashing.
SpikeBugFix: = 1 ; if set to 1, the spike "bug" is fixed
; Name: Rebound Mod
; Credit: Mercury
; Function: Makes rebounding from enemies/monitors after rolling off a cliff onto them function the same as if they were jumped on - the rebound is cut short if the jump button is released.
ReboundMod: = 0
; Name: CD Balancing Mod
; Credit: Mercury
; Function: Uses the Sonic CD balancing sprites (forward and back) instead of Sonic 1's.
CDBalancing: = 1
; Name: CD Camera Panning
; Credit: Naoto
; Function: Applies a panning effect to the screen when moving quickly, a la Sonic CD
CDCamera: = 0 ; if set to 1, screen will pan forward, a la Sonic CD
; Name: S3K AfterImages (Incomplete: Add for Super Sonic)
; Credit: Hitaxas (Wooloo Engine)
; Function: Applies After-Image effects to the Speed Shoes
AfterImagesOn: = 1
; Name: Random Monitors
; Credit: RetroKoH
; Function: All monitors are randomized a la Sonic 2 (2P)
RandomMonitors: = 0
; Name: Limit LZ Block Rising Speed
; Credit: Mercury
; Function: Limits the rising speed of blocks in LZ so that Sonic can jump off them more comfortably.
LimitLZBlockRisingSpeed: = 1 ; if set to 1, LZ Rising platforms are speed-capped
; Name: Orbinaut Animation Tweak
; Credit: Mercury
; Function: Makes Orbinaut "notice" Sonic at a closer range so that it's more likely to happen onscreen, and "get angry" quicker.
OrbinautAnimationTweak: = 1
OrbinautAnimationTweakRange: = $80 ; horizontal range in pixels at which Sonic is noticed by the Orbinaut
OrbinautAnimationTweakSpeed: = $8 ; animation speed of the Orbinaut's "getting angry" animation
; Name: SLZ Orbinaut Behaviour Mod (Incomplete: Remove grey frame from SLZ Orbinaut)
; Credit: Mercury
; Function: Makes the SLZ Orbinauts beatable by giving them behaviour similar to Sonic 4's.
SLZOrbinautBehaviourMod: = 1
; Name: Speed Up/Instant Score Tally
; Credit: Mercury/RetroKoH
; Function: Allows the player to hold a button to speed up the score tally, or just have it occur immediately
SpeedUpScoreTally: = 2 ; if set to 1, score tally can be sped up w/ ABC. If 2, it automatically tallies immediately.
; Name: Floating Signposts
; Credit: RetroKoH
; Function: The Signpost flies into the air when you run past it fast enough.
FloatingSignposts: = 1
; Name: Cool and Perfect Bonuses
; Credit: RetroKoH
; Cool Bonus Function: Sonic gets an additional 10000 points if he doesn't get hit (decrements by 100 for each hit).
; Perfect Bonus Function: Sonic gets an additional 50000 points if he collects every ring in a level or Special Stage.
CoolBonusEnabled: = 1
PerfectBonusEnabled: = 1
ExtraBonuses: = CoolBonusEnabled+PerfectBonusEnabled ; if either bonus is enabled, SCORE is removed from the score tally cards.
CoolBonusHits: = 10 ; Number of hits allowed to attain any bonus in a level.
PerfectScore: = 5000 ; Score awarded for Perfect Bonus / 10.
; If both are enabled, the Got Through Card has a 4th tally mapping
; ----- FLAIR MODS ---------------------------------------------------------------
; Name: Fade-In SEGA Screen
; Credit: RetroKoH
; Function: Causes the SEGA Screen to fade in, instead of just popping in.
FadeInSEGA: = 1 ; if set to 1, the SEGA screen smoothly fades in
; Name: Screen Fading Options
; Credit: RetroKoH/MarkeyJester
; Function: Screens now fade in/out in one of 7 different ways: (Blue, Green, Red, Cyan, Magenta, Yellow, and Full)
PaletteFadeSetting: = 6 ; 0 - Blue (Original), 1 - Green, 2 - Red, 3 - Cyan (B+G), 4 - Pink (B+R), 5 - Yellow (G+R), 6 - Full
; Name: GHZ Water Palette Mod
; Credit: Sonic 1 Forever Team
; Function: Toggles GHZ palette between original and Sonic 1 Forever's altered bg water.
GHZForeverPal: = 1 ; if set to 1, GHZ is set to Sonic 1 Forever's palette
; Name: Proto Sonic Palette Mod
; Credit: Ikey Ilex
; Function: Gives Sonic his prototype palette found in the Tom Payne archives. Also seen in Crackers and Sonic CD.
ProtoSonicPalette: = 1
; Name: Objects Don't Freeze
; Credit: RetroKoH
; Function: Objects will not freeze when the player dies.
ObjectsFreeze: = 0 ; if set to 1, objects freeze on death as normal
; Name: End-of-Level Music Fade
; Credit: RetroKoH
; Function: Toggles whether music will fade out after the level ends.
EndLevelFadeMusic: = 1
; Name: HUD Scrolls Into View
; Credit: RetroKoH
; Function: HUD Scrolls into view during gameplay.
HUDScrolling: = 1
; Name: HUD w/ Leading Zeroes
; Credit: Mercury
; Function: Adds Leading 0's to HUD values (Score, Rings, Lives)
HUDHasLeadingZeroes: = 0 ; if set to 1, leading zeroes appear on HUD
; Name: HUD Centiseconds
; Credit: Mercury
; Function: Adds Sonic CD-style centiseconds to the HUD
HUDCentiseconds: = 1
; Name: Blinking HUD
; Credit: Mercury
; Function: Makes "TIME" and "RINGS" will blink on and off instead of flashing red. Useful when changing palettes.
HUDBlinking: = 1
; Name: Updated Signposts
; Credit: RetroKoH
; Function: Gives the Signposts a base, similar to those in Sonic CD.
UpdatedSignposts: = 1
; Name: SBZ3 New Art Mod
; Credit: Trickster/Rohan, RetroKoH
; Function: Provides new art for SBZ Act 3
NewSBZ3LevelArt: = 1
; ----- SPECIAL STAGES -----------------------------------------------------------
; Name: Dynamic Special Stage Walls
; Credit: Mercury
; Function: Dynamically loads the wall art in the Special Stages to free VRAM (for things like the HUD)
DynamicSpecialStageWalls: = 1
; Name: Smooth Special Stage Rotation and Jumping
; Credit: Cinossu and Devon
; Function: Special Stage scrolls smoothly. Movement/Jump angles are also affected.
SmoothSpecialStages: = 1
; Name: Special Stage Index Increases Only If Won
; Credit: Mercury
; Function: Makes the Special Stage index not increase when you fail the stage, allowing you to retry the previous stage.
SpecialStageAdvancementMod: = 1
; Name: HUD (and Time Limits) In Special Stage
; Credit: Mercury/RetroKoH
; Function: Adds HUD to Special Stage. I also fixed one bug w/ Mercury's implementation.
; Depends On: Dynamic Special Stage Walls
HUDInSpecialStage: = DynamicSpecialStageWalls*1
SpecialStageHUDType: = 3 ; 0=normal; 1=score not shown; 2=score & time not shown; 3=rings only
TimeLimitInSpecialStage: = 0 ; if set, time counts down in the Special Stage from a specified time limit
SSTimeLimitPinch: = $00001E00 ; "pinch" threshold that time must reach in order to trigger "TIME" to flash. Format: $000MSSCC
SSTimeLimitStart: = $00010000 ; time on the clock to start with when Special Stage is entered. Format: $000MSSCC
; NOTE: SSTimeLimitStart must always end in 00
; Mods listed below alter the layouts in real-time. See variable: AlteredSpecialStages
; Name: Sonic 4 Controls in Special Stage
; Credit: RetroKoH
; Function: If active, Special Stages control like Sonic 4 Ep 1 (Left/Right rotate the stage).
S4SpecialStages: = 1 ; (Removes UP/DOWN, and R Blocks)
; Name: Special Stages Still Appear With All Emeralds
; Credit: Mercury
; Function: Makes the Special Stages still accessible even once all emeralds are collected.
SpecialStagesWithAllEmeralds: = 1 ; (Replaces Emeralds w/ 1-Ups if Emeralds are obtained)
; Perfect Bonuses are included here because it helps keep SS_Load efficient.
AlteredSpecialStages: = (S4SpecialStages+SpecialStagesWithAllEmeralds+PerfectBonusEnabled)
; ----- UNDER-THE-HOOD -----------------------------------------------------------
; Name: Debug Path Swappers
; Credit: Clownacy/MarkeyJester
; Function: Sound alert when running through the path swapper while Debug Mode is enabled
DebugPathSwappers: = 1
; Name: Save Game Functionality
; Credit: RetroKoH, s1Disasm Team
; Function: Allows the player to continue from the previous save point (level start, checkpoint)
EnableSRAM: = 1 ; change to 1 to enable SRAM
BackupSRAM: = 1
AddressSRAM: = 3 ; 0 = odd+even; 2 = even only; 3 = odd only
; Below is the variable for the actual mod. SRAM must be enabled to use this mod.
SaveProgressMod: = EnableSRAM*1
; Name: S2 Level Select
; Credit: RetroKoH
; Function: Replaces the Sonic 1 Level Select with a Sonic 2-inspired Level Select
NewLevelSelect: = 1
; Name: Chunks In ROM
; Credit: Mercury/FraGag
; Loads Chunks (256x256)/Blocks (16x16) directly from ROM, freeing a huge amount of RAM.
BlocksInROM: = 1 ; if set to 1, frees RAM ($0000-$A3FF)
ChunksInROM: = 1 ; if set to 1, frees RAM ($B000-$C7FF)
; Name: Dynamic Level Palettes
; Credit: RetroKoH (Based on my S1C Difficulty Mod)
; Loads a different palette for every act (Scrap Brain is unaffected, as it has dynamic palettes by default)
; (By default, they are identical to the original. It'll be up to you to edit them if you use this mod)
DynamicPalettes: = 0 ; if set to 1, there will be a separate palette for each act
; Name: Optimal Title Card Art
; Credit: RetroKoH
; Loads only necessary tiles for various cards. The benefit is less VRAM taken up by cards.
; The drawback is that they may be harder to edit for new users, and ROM size is slightly larger.
OptimalTitleCardArt: = 1 ; if set to 1, new art and mappings are used, reducing VRAM footprint and sprite piece count