User:Monster Iestyn/Sandbox 2
Lua Hook notes
LUAh_MobjHook
is the base function for the following:
LUAh_MobjSpawn
(MobjSpawn)LUAh_MobjFuse
(MobjFuse)LUAh_BossThinker
(BossThinker)LUAh_BossDeath
(BossDeath)LUAh_MobjRemoved
(MobjRemoved)
LUAh_PlayerHook
is the base function for the following:
LUAh_JumpSpecial
(JumpSpecial)LUAh_AbilitySpecial
(AbilitySpecial)LUAh_SpinSpecial
(SpinSpecial)LUAh_JumpSpinSpecial
(JumpSpinSpecial)LUAh_PlayerSpawn
(PlayerSpawn)
Hook | Function(s) modified | File location | Notes |
---|---|---|---|
NetVars | NetArchiveHook |
lua_script.c | |
MapChange | Got_Mapcmd |
d_netcmd.c | |
G_DoReborn |
g_game.c | ||
G_DoPlayDemo |
g_game.c | ||
MapLoad | P_SetupLevel |
p_setup.c | |
PlayerJoin | Got_AddPlayer |
d_clisrv.c | |
ThinkFrame | P_Ticker |
p_tick.c | |
P_PreTicker |
p_tick.c | ||
MobjSpawn | P_SpawnMobj |
p_mobj.c | |
MobjCollide | PIT_CheckThing |
p_map.c | |
MobjMoveCollide | PIT_CheckThing |
p_map.c | |
TouchSpecial | P_TouchSpecialThing |
p_inter.c | |
MobjFuse | P_MobjThinker |
p_mobj.c | |
MobjThinker | P_MobjThinker |
p_mobj.c | |
BossThinker | P_MobjThinker |
p_mobj.c | |
ShouldDamage | P_DamageMobj |
p_inter.c | |
MobjDamage | P_DamageMobj |
p_inter.c | |
MobjDeath | P_KillMobj |
p_inter.c | |
BossDeath | A_BossDeath |
p_enemy.c | |
MobjRemoved | P_RemoveMobj |
p_mobj.c | |
JumpSpecial | P_DoJumpStuff |
p_user.c | |
AbilitySpecial | P_DoJumpStuff |
p_user.c | |
SpinSpecial | P_DoSpinDash |
p_user.c | |
JumpSpinSpecial | P_DoJumpStuff |
p_user.c | |
BotTiccmd | B_BuildTiccmd |
b_bot.c | |
BotAI | B_BuildTailsTiccmd |
b_bot.c | |
LinedefExecute | P_ProcessLineSpecial |
p_spec.c | |
PlayerMsg | Got_Saycmd |
hu_stuff.c | |
HurtMsg | P_HitDeathMessages |
p_inter.c | |
PlayerSpawn | G_SpawnPlayer |
g_game.c |
MF_SPECIAL
key:
- uses default touch behavior afterwards (plays DeathSound and calls P_KillMobj)
- does not do the above
List of objects with special MF_SPECIAL behavior (see P_TouchSpecialThing
):
MF_BOSS
(boss objects) - damages on touch, can be damaged when player is spinning/invincibleMT_BLACKEGGMAN
(Brak Eggman (Old)) - damages on touch always
MF_ENEMY
(enemy objects) - damages on touch, can be damaged when player is spinning/invincibleMT_GSNAPPER
(Green Snapper) - damages when side is touched (unless invincible)MT_SHARP
(Sharp) - damages when top is touched
MF_FIRE
(fire objects) - damages on touchMT_REDTEAMRING
/MT_BLUETEAMRING
/MT_RING
/MT_FLINGRING
(Ring, CTF Team Ring (Red) and CTF Team Ring (Blue)) - ring is collected on touchMT_COIN
/MT_FLINGCOIN
(Coin) - coin is collected on touchMT_BLUESPHERE
(Blue sphere) - blue sphere is collected on touchMT_AUTOPICKUP
toMT_RAILPICKUP
- panel is collected on touchMT_INFINITYRING
toMT_RAILRING
- ammo is collected on touchMT_EMMY
(Special Stage Token) - token is collected on touchMT_EMERHUNT
(Emerald Hunt Location) - emerald is collected on touchMT_EMERALD1
-MT_EMERALD7
- emerald is collected on touchMT_FLINGEMERALD
- flung emerald is collected on touchMT_EMBLEM
(Emblem) - emblem is collected on touchMT_REDFLAG
/MT_BLUEFLAG
(CTF Red Flag/CTF Blue Flag) - if on opposite team to flag, flag is collected on touch; if on same team flag is returned to baseMT_NIGHTSDRONE
(Ideya Drone) - turns the player into NiGHTS Super Sonic on touchMT_NIGHTSLOOPHELPER
(Paraloop helper) - triggers paraloop effectsMT_EGGCAPSULE
(Ideya Capture) - player is pulled into capsule to deposit ringsMT_NIGHTSBUMPER
(NiGHTS Bumper) - player is propelled in bumper's directionMT_NIGHTSSUPERLOOP
(Super Paraloop) - player is awarded the powerup on touchMT_NIGHTSDRILLREFILL
(Drill Refill) - player is awarded the powerup on touchMT_NIGHTSHELPER
(Nightopian Helper) - player is awarded the powerup on touchMT_NIGHTSEXTRATIME
(Extra Time) - player is awarded the powerup on touchMT_NIGHTSLINKFREEZE
(Link Freeze) - player is awarded the powerup on touchMT_NIGHTSWING
(Wing Logo) - wing logo is collected on touchMT_HOOPCOLIDE
(Hoop collision helper) - triggers hoop collision effectsMT_SHELL
(Koopa Shell) - shell starts moving on touchMT_AXE
(Axe) - axe is collected on touchMT_FIREFLOWER
(Fire Flower) - player is awarded the powerup on touchMT_STARPOST
(Star Post) - starpost is activated on touchMT_FAKEMOBILE
(Sea Egg decoy) - player bounces off object on touchMT_BLACKEGGMAN_GOOPFIRE
(Brak Eggman (Old) goop projectile) - player is immobilized on touchMT_EGGSHIELD
(Egg Guard shield) - player bounces off object on touch, unless attacked from behindMT_BIGTUMBLEWEED
/MT_LITTLETUMBLEWEED
(Tumbleweed (Big) and Tumbleweed (Small)) - Tumbleweed "bounces" off player on touchMT_SMALLMACECHAIN
/MT_BIGMACECHAIN
(Chain (Hang)'s/Chain (Spin) chain link) - if last link in the chain, player grabs onto chain on touchMT_BIGMINE
/MT_BIGAIRMINE
(Big Floating Mine/Big Floating Mine (Air)) - mine explodes on touchMT_SPECIALSPIKEBALL
(Spikeball) - damages player on touch - if in special stage only 10 rings are lostMT_EGGMOBILE2_POGO
(Egg Slimer pogo hitbox) - damages on touch if landing on player, and is removedMT_EXTRALARGEBUBBLE
(Breathable bubble from Air Bubble Patch) - player breathes bubble on touch to restore underwater timerMT_WATERDROP
(water drop from Dripping Water) - drop plays sound and stops moving on touch
Old version tidbits
Demo 4 music
Music for Special stages and Christmas Hunt Zone in Demo 4 were all from Ojamajo Doremi, except Special Stage #1 and #2 (note: Special Stage #1 still exists as Tunes 51 as of 2.1):
- Special Stage #1 (D_RUNNI2) -> Original theme[1]
- Special Stage #2 (D_DEAD2) -> Original theme (according to metadata)
- Special Stage #3 (D_STLKS3) -> Mo~tto! Ojamajo Doremi - ARIGATO
- Special Stage #4 (D_ROMERO) -> Ojamajo Doremi - Dokidoki no Mahou
- Special Stage #5 (D_SHAWN2) -> Ojamajo Doremi # - half point
- Special Stage #6 (D_MESSAG) -> Ojamajo Doremi - Otome wa Kyu ni Tomarenai
- Special Stage #7 (D_COUNT2) -> Mo~tto! Ojamajo Doremi - WE CAN DO
- Christmas Hunt Zone (D_DOOM, 3drend.dll) -> Ojamajo Doremi - Jingle Bell
Final Demo and onwards music changes
1.08
- RVZ1 added
- Green Hill Zone added
- Old VFZ + AGZ added
- Invincibility theme changed
- Speed Shoes added, using pre-1.08 Invincibility theme
- Xmas music moved to music.dta
1.09
- CEZ2 updated
- RVZ1 updated
- RMZ1 added
- RMZ2 removed
- Old ACZ1 added
- Old VFZ + AGZ removed
- Mystic Realm music added
- Super Sonic changed
- Emerald Quest music (Empyrean's Channel, Tails' House, Cavernous, Lazy Saturdays) added
- Multiplayer Results added
1.09.2
- Super Sonic changed
1.09.4
- CEZ1 updated
- CEZ2 updated
- Special Stage updated
- Old Special Stage added
- Extra Life updated
2.0
- ACZ1+2, ERZ1-3 added
- Old ACZ1 updated
- Old ACZ2 added
- Old DSZ1 (remix) added
- Old ERZ1 added
- MKB3 updated
- Emerald Quest - Cavernous updated
- Midnight Freeze Zone updated
- Remixes (GFZ1, DSZ2, ACZ, RVZ1) added
- ERZ1 premix added
- Old AGZ added
- Old Space countdown added
- Other tunes: "Metal Sonic" (Tunes 24), Virtual Sonic Metal Sonic theme (Tunes 25)
- Credits updated (v2.0.5 onwards)
2.1
- Virtual Sonic Metal Sonic theme removed
- SRB2-ERZ_A3 added (aka Tunes 24)
- Credits updated
- STJr intro added
Character skins
Vanilla SRB2 S_SKINs
Attribute | (Default) | Sonic | Tails | Knuckles |
---|---|---|---|---|
name | N/A | sonic | tails | knuckles |
sprite | N/A | PLAY | TAIL | KNUX |
flags | 0 | SF_SUPER |SF_SUPERANIMS |SF_SUPERSPIN
|
0 | 0 |
realname | Someone | Sonic | Tails | Knuckles |
hudname | ??? | SONIC | TAILS | K.T.E |
charsel | CHRSONIC | CHRSONIC | CHRTAILS | CHRKNUX |
face | MISSING | LIVSONIC | LIVTAILS | LIVKNUX |
superface | MISSING | LIVSUPER | N/A | N/A |
startcolor | 160 | |||
prefcolor | Green | Blue | Orange | Red |
normalspeed | 36 | 36 | 32 | 34 |
runspeed | 28 | |||
thrustfactor | 5 | 5 | 3 | 4 |
accelstart | 96 | 96 | 192 | 128 |
acceleration | 40 | 40 | 50 | 45 |
ability | CA_NONE | CA_THOK | CA_FLY | CA_GLIDEANDCLIMB |
ability2 | CA2_SPINDASH | |||
jumpfactor | 1 | 1 | 1 | 0.85 |
actionspd | 30 | 60 | 100 | 25 |
mindash | 15 | |||
maxdash | 90 | |||
thokitem | -1 (Default, MT_THOK )
| |||
spinitem | -1 (Default, MT_THOK )
| |||
revitem | -1 (Default, MT_THOK )
| |||
highresscale | 0.5 |
Vanilla Character Select Entries
(These are all recreated examples, as they are all hardcoded in reality - see m_menu.c)
Character SkinName = sonic Status = 1 PlayerText = ^2Sonic^0 is the fastest of the three, but also the hardest to control. Beginners beware, but experts will find Sonic very powerful. ^2Ability:^0 Speed Thok Double jump to zoom forward with a huge burst of speed. ^2Tip:^0 Simply letting go of forward does not slow down in SRB2. To slow down, hold the opposite direction. # Character SkinName = tails Status = 1 PlayerText = ^2Tails^0 is the most mobile of the three, but has the slowest speed. Because of his mobility, he's well- suited to beginners. ^2Ability:^0 Fly Double jump to start flying for a limited time. Repetitively hit the jump button to ascend. ^2Tip:^0 To quickly descend while flying, hit the spin button. # Character SkinName = knuckles Status = 1 PlayerText = ^2Knuckles^0 is well- rounded and can destroy breakable walls simply by touching them, but he can't jump as high as the other two. ^2Ability:^0 Glide & Climb Double jump to glide in the air as long as jump is held. Glide into a wall to climb it. ^2Tip:^0 Press spin while climbing to jump off the wall; press jump instead to jump off and face away from the wall. # Character SkinName = sonic&tails PicName = CHRS&T Status = 1 PlayerText = ^2Sonic & Tails^0 team up to take on Dr. Eggman! Control Sonic while Tails desperately struggles to keep up. Player 2 can control Tails directly by setting the controls in the options menu. Tails's directional controls are relative to Player 1's camera. Tails can pick up Sonic while flying and carry him around. #
Game modifying commands/variables
All console commands/variables that actually set off the "game has been modified" trigger directly; most cheats do not fall in this category as they depend entirely on development mode being enabled to have any effect at all (by which time the game has already been modified)
Commands
addfile
runsoc
map
(if-force
used)devmode
god
noclip
notarget
objectplace
setrings
setlives
setcontinues
Variables
Understanding bitwise operators
Let's use Object flags constants to help explain things here...
bitwise AND (&
)
example value: mobj.flags = MF_SPECIAL|MF_ENEMY|MF_SHOOTABLE|MF_NOGRAVITY|MF_SLIDEME In binary, mobj.flags has a value of 10000000000101000000101 This makes more sense if we turn this sideways, and place the object flags by their corresponding bits: MF_SPECIAL 1 MF_SOLID 0 MF_SHOOTABLE 1 MF_NOSECTOR 0 MF_NOBLOCKMAP 0 MF_AMBUSH 0 MF_PUSHABLE 0 MF_BOSS 0 MF_SPAWNCEILING 0 MF_NOGRAVITY 1 MF_AMBIENT 0 MF_SLIDEME 1 MF_NOCLIP 0 MF_FLOAT 0 MF_BOXICON 0 MF_MISSILE 0 MF_SPRING 0 MF_BOUNCE 0 MF_MONITOR 0 MF_NOTHINK 0 MF_FIRE 0 MF_NOCLIPHEIGHT 0 MF_ENEMY 1 MF_SCENERY 0 MF_PAIN 0 MF_STICKY 0 MF_NIGHTSITEM 0 MF_NOCLIPTHING 0 MF_GRENADEBOUNCE 0 MF_RUNSPAWNFUNC 0 let's say we want to check if mobj.flags has MF_ENEMY or not so typically we use "mobj.flags & MF_ENEMY" to do this since we already know mobj.flags has MF_ENEMY, this means mobj.flags & MF_ENEMY actually gives us the value of MF_ENEMY! why does it do this, you wonder? see, what "mobj.flags & MF_ENEMY" actually does in terms of binary is the following: mobj.flags & MF_ENEMY -> result MF_SPECIAL 1 0 0 MF_SOLID 0 0 0 MF_SHOOTABLE 1 0 0 MF_NOSECTOR 0 0 0 MF_NOBLOCKMAP 0 0 0 MF_AMBUSH 0 0 0 MF_PUSHABLE 0 0 0 MF_BOSS 0 0 0 MF_SPAWNCEILING 0 0 0 MF_NOGRAVITY 1 0 0 MF_AMBIENT 0 0 0 MF_SLIDEME 1 0 0 MF_NOCLIP 0 0 0 MF_FLOAT 0 0 0 MF_BOXICON 0 0 0 MF_MISSILE 0 0 0 MF_SPRING 0 0 0 MF_BOUNCE 0 0 0 MF_MONITOR 0 0 0 MF_NOTHINK 0 0 0 MF_FIRE 0 0 0 MF_NOCLIPHEIGHT 0 0 0 MF_ENEMY > 1 > 1 > 1 MF_SCENERY 0 0 0 MF_PAIN 0 0 0 MF_STICKY 0 0 0 MF_NIGHTSITEM 0 0 0 MF_NOCLIPTHING 0 0 0 MF_GRENADEBOUNCE 0 0 0 MF_RUNSPAWNFUNC 0 0 0 MF_ENEMY only turns on one bit, and since mobj.flags has that bit, the whole operation results in only the value of that bit if mobj.flags DIDN'T have a particular flag, say for instance we did "mobj.flags & MF_BOUNCE", the result would be 0: mobj.flags & MF_BOUNCE -> result MF_SPECIAL 1 0 0 MF_SOLID 0 0 0 MF_SHOOTABLE 1 0 0 MF_NOSECTOR 0 0 0 MF_NOBLOCKMAP 0 0 0 MF_AMBUSH 0 0 0 MF_PUSHABLE 0 0 0 MF_BOSS 0 0 0 MF_SPAWNCEILING 0 0 0 MF_NOGRAVITY 1 0 0 MF_AMBIENT 0 0 0 MF_SLIDEME 1 0 0 MF_NOCLIP 0 0 0 MF_FLOAT 0 0 0 MF_BOXICON 0 0 0 MF_MISSILE 0 0 0 MF_SPRING 0 0 0 MF_BOUNCE > 0 > 1 > 0 MF_MONITOR 0 0 0 MF_NOTHINK 0 0 0 MF_FIRE 0 0 0 MF_NOCLIPHEIGHT 0 0 0 MF_ENEMY 1 0 0 MF_SCENERY 0 0 0 MF_PAIN 0 0 0 MF_STICKY 0 0 0 MF_NIGHTSITEM 0 0 0 MF_NOCLIPTHING 0 0 0 MF_GRENADEBOUNCE 0 0 0 MF_RUNSPAWNFUNC 0 0 0 now, if we use & with multiple flags at once, e.g.: "mobj.flags & (MF_NOGRAVITY|MF_SLIDEME)", we get the following: mobj.flags & (MF_NOGRAVITY|MF_SLIDEME) -> result MF_SPECIAL 1 0 0 MF_SOLID 0 0 0 MF_SHOOTABLE 1 0 0 MF_NOSECTOR 0 0 0 MF_NOBLOCKMAP 0 0 0 MF_AMBUSH 0 0 0 MF_PUSHABLE 0 0 0 MF_BOSS 0 0 0 MF_SPAWNCEILING 0 0 0 MF_NOGRAVITY > 1 > 1 > 1 MF_AMBIENT 0 0 0 MF_SLIDEME > 1 > 1 > 1 MF_NOCLIP 0 0 0 MF_FLOAT 0 0 0 MF_BOXICON 0 0 0 MF_MISSILE 0 0 0 MF_SPRING 0 0 0 MF_BOUNCE 0 0 0 MF_MONITOR 0 0 0 MF_NOTHINK 0 0 0 MF_FIRE 0 0 0 MF_NOCLIPHEIGHT 0 0 0 MF_ENEMY 1 0 0 MF_SCENERY 0 0 0 MF_PAIN 0 0 0 MF_STICKY 0 0 0 MF_NIGHTSITEM 0 0 0 MF_NOCLIPTHING 0 0 0 MF_GRENADEBOUNCE 0 0 0 MF_RUNSPAWNFUNC 0 0 0 here the result is the value of MF_NOGRAVITY and MF_SLIDEME combined, since they were BOTH present in mobj.flags here's another example, "mobj.flags & (MF_SHOOTABLE|MF_MISSILE)". This gives the following: mobj.flags & (MF_SHOOTABLE|MF_MISSILE) -> result MF_SPECIAL 1 0 0 MF_SOLID 0 0 0 MF_SHOOTABLE > 1 > 1 > 1 MF_NOSECTOR 0 0 0 MF_NOBLOCKMAP 0 0 0 MF_AMBUSH 0 0 0 MF_PUSHABLE 0 0 0 MF_BOSS 0 0 0 MF_SPAWNCEILING 0 0 0 MF_NOGRAVITY 1 0 0 MF_AMBIENT 0 0 0 MF_SLIDEME 1 0 0 MF_NOCLIP 0 0 0 MF_FLOAT 0 0 0 MF_BOXICON 0 0 0 MF_MISSILE > 0 > 1 > 0 MF_SPRING 0 0 0 MF_BOUNCE 0 0 0 MF_MONITOR 0 0 0 MF_NOTHINK 0 0 0 MF_FIRE 0 0 0 MF_NOCLIPHEIGHT 0 0 0 MF_ENEMY 1 0 0 MF_SCENERY 0 0 0 MF_PAIN 0 0 0 MF_STICKY 0 0 0 MF_NIGHTSITEM 0 0 0 MF_NOCLIPTHING 0 0 0 MF_GRENADEBOUNCE 0 0 0 MF_RUNSPAWNFUNC 0 0 0 mobj.flags has MF_SHOOTABLE but NOT MF_MISSILE, so the result gives only the value of MF_SHOOTABLE this is very important to note, as this means when using & with multiple flags, the result differs depending on which of flags are present in mobj.flags
Real version numbers
From Demo 1 to the Final Demo releases a different versioning system was in place to what the SRB2 versions were released as to the public. Until v1.08 these versions were displayed on the title bar of the SRB2 window (if playing in windowed mode):
Version name | Real version number |
---|---|
Demo 1 | v0.25 |
Demo 2 | v0.5 |
Demo 3 | v0.6 |
Demo 4 to 4.1 | v0.6 |
Demo 4.35 | v0.65 |
SRB2 2k3 | v0.70 |
v1.01 to v1.04 | v0.70 |
v1.08 | v0.70? (from source code) |
v1.09 to v1.09.4 | unknown |
From 2.0 onwards this different versioning system was discarded in favour of the current 2.X version numbers, while the Demo and Final Demo versions were retroactively designated as 0.X and 1.X.
Video flags bit layout table
Was thinking of dumping this thing in the bits/masks section of Video flags, though wasn't sure entirely. The "0"s just represent a bit, and are color-coded corresponding to the section to look pretty. All the "Bit" columns are 2em wide to make everything look even too! \o/
Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Section | Misc. | Alpha | Color | Spacing | Scale | Param | ||||||||||||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Player start fallback order
Gametype | Single Player/Coop Race/Competition Tag/Hide & Seek ("it" players) |
Match/Team Match CTF (spectators only) Tag/Hide & Seek (non-"it" players) |
CTF (non-spectators) |
---|---|---|---|
1. | Player 1 - 32 Starts | Match Start | CTF Red Team Start (Red team) CTF Blue Team Start (Blue team) |
2. | Match Start | CTF Red Team Start or CTF Blue Team Start (random choice) |
Match Start |
3. | CTF Red Team Start or CTF Blue Team Start (random choice) |
Player 1 - 32 Starts | Player 1 - 32 Starts |
4. | Spawn at first Thing placed in map | Spawn at first Thing placed in map | Spawn at first Thing placed in map |
5. | Spawn at coordinates (0,0) | Spawn at coordinates (0,0) | Spawn at coordinates (0,0) |
Screen fade red to alpha algorithm
Probably not needed for screen fade, but it may be interesting for some people to know anyway.
The algorithm to calculate the translucency of a color in a fading mask:
- x: The level of red present in the color, represented as an integer between 0 and 255.
- m: (11*(x + 1) / 257), rounded down to the nearest full integer. This should be a value between 0 and 10, where 0 is invisible and 10 is opaque.
- p: The percentage of translucency. This is determined by ((10 - m) * 10%).
- Example: a red level of 255
- x = 255
- m = 11*(255 + 1) / 257 = (11*256) / 257 = 2816 / 257 = 10.[...]
- p = (10 - 10) * 10% = 0 * 10% = 0%
- 255 → 0%
Possible listings for lost level contests
Transcendental Fort Zone and Tets Base Zone were listed in the "Level of the Month" section of the old Addons site, for winners of the level contests: [2] Going by their dates they were likely the winners of July and August 2003 respectively.
They also appear in this list with a bunch of other levels: [3] Interestingly, the entire Match divisions of September 2003 onwards are also included here.
Here are the levels I know or guess to be from these unrecorded OLDCs so far:
(Note, both have only a Match division)
July 2003
- Snow Hill Zone by Tets (probably confirmed? [4])
- Blue Sky Zone by Tets (???)
- Vacant Rocketship Zone by Digiku (confirmed: [5])
- Transcendental Fort Zone by a441 (confirmed winner: [6])
August 2003
Note: a news post confirms that in September 24th 2003, 4 new "Battle" stages were added from "last month's contest": [7]
- Nitric Nexus Zone by a441 (???)
- Tets Base Zone by Tets (confirmed winner: [8])
- Green Hill DM Zone by JTE (confirmed: [9])
- Waterfall Island Zone by Digiku (confirmed: [10])
SRB2 World contests
These were unofficial contests hosted by a441 at one point. Several levels included in the game in v1.08 were apparently entered in the second of these contests originally!
Here's the levels I know of that were entered in these contests. A source for some levels and map numbers is [11]
UPDATE (30/07/17): I FOUND THE ACTUAL WADS FOR THESE CONTESTS
Contest 1: GFZ Battle
In this contest, the entrants were asked to design a multiplayer level that works in the Match and Tag modes. Maps were limited to using a selection of GFZ textures and thing types (see Announcement and Rules: [12])
Dates: May 16th (?) - June 30th 2003 (original deadline was June 8th, but was extended)
- MAP01 - GFZ Battle Zone Act 1, by ???
- MAP02 - GFZ Battle Zone Act 2, by a441 - later released as Paragon Valley Zone
- MAP03 - GFZ Battle Zone Act 3, by ???
- MAP04 - GFZ Battle Zone Act 4, by ???
- MAP05 - GFZ Battle Zone Act 5, by a441 - was later modified significantly and released as Stone Quadrant Zone
Included bonus levels:
- MAP06 - GFZ Battle Zone Act 6, by Mystic - later became Sapphire Falls Zone (was disqualified)
- MAP07 - Two D Battle Zone, by a441
Contest 2: Capture the Flag
In this contest, the entrants were asked to design a CTF level:
- MAP01 - Iron Warehouse Zone by msonic [13]
- MAP02 - Stone Walkway Zone by a441 (author source: [14])
- MAP03 - Dueling Peaks Zone by FuriousFox [15]
- MAP04 - Twin Hills Zone by a441 [16]
Old versions cheats
List of cheats in old versions.
WIP
SRB2 Halloween
Console:
- GOD
- NOCLIP
- EXITLEVEL
- GRAVITY <value>
- TURBO <value> (10 - 255)
Typed on screen (in a level):
- idfly: fly mode - jump to fly
SRB2 Christmas
Command line:
- -debug: enables devmode
Console:
- GOD
- NOCLIP
- EXITLEVEL
- GRAVITY <value>
- TURBO <value> (10 - 255)
Typed on screen (in a level):
- idkfa: Gives an emerald
Demo 1
Command line:
- -debug: enables devmode
Console:
- GOD
- NOCLIP
- EXITLEVEL
- GRAVITY <value>
- TURBO <value> (10 - 255)
Typed on screen (in a level):
- idkfa: Gives an emerald
Demo 2
Command line:
- -debug: enables devmode
Console:
- EXITLEVEL
- GRAVITY <value>
- TURBO <value> (10 - 255)
Typed on screen (in a level):
- beedee: I_Errors with "Hohohoho!! *B^D"
Demo 3
Console:
- GOD
- NOCLIP
- EXITLEVEL
- GRAVITY <value>
- TURBO <value> (10 - 255)
- DEBUG <on/off>: enables devmode
Typed on screen (in a level):
- beedee: I_Errors with "Hohohoho!! *B^D"
Demo 4
Console:
- GOD
- NOCLIP
- EXITLEVEL
- GRAVITY <value>
- TELEPORT -x <x> -y <y>
- DEBUG <on/off>: enables devmode
- HOMING <0/1>: enables homing attack
Typed on screen (in a level):
- beedee: I_Errors with "Hohohoho!! *B^D"
- fishdake: Gives an emerald
- helen: God mode
Demo 4.35
Console:
- GOD
- NOCLIP
- EXITLEVEL
- GRAVITY <value>
- TELEPORT -x <x> -y <y> (works only when devmode is on)
- DEBUG <on/off>: enables devmode
- HOMING <0/1>: enables homing attack
Typed on screen (in a level):
- beedee: I_Errors with "Hohohoho!! *B^D"
- fishdake: Gives an emerald
- helen: God mode
SRB2 2k3
Console:
- GOD
- NOCLIP
- EXITLEVEL
- GRAVITY <value>
- TELEPORT -x <x> -y <y> (works only when devmode is on)
- HOMING <0/1>: enables homing attack
- SONICCD: Sonic CD mode - replaces animals with plants
Typed on screen (in a level):
- beedee: I_Errors with "Hohohoho!! *B^D"
- fishdake: Gives an emerald
- helen: God mode
FD 1.01
Console:
- OBJECTPLACE: enables objectplace
- FISHCAKE: enables devmode
- EMILYDAMPSTONE: God mode
- IAMAGHOST: No clipping mode
- TELEPORT -x <x> -y <y>
- SONICCD: Sonic CD mode - replaces animals with plants
Typed on screen (in a level):
- beedee: I_Errors with "Hohohoho!! *B^D"
- fishbake: Gives an emerald
- helen: God mode
FD 1.08
Console:
- OBJECTPLACE: enables objectplace
- GOD: God mode
- NOCLIP: No clipping mode
- TELEPORT -x <x> -y <y>
- SONICCD: Sonic CD mode - replaces animals with plants
- KILLINGDEAD: enables SRB1 damaging glitch
- TIMEATTACKED: Sonic: Time Attacked Link counter + ring attraction
Typed on screen (in a level):
- beedee: I_Errors with "Hohohoho!! *B^D"
- fishbake: Resets emeralds
- helen: God mode
- devmode: enables devmode
FD 1.09
Console:
- OBJECTPLACE: enabled objectplace
- DEVMODE: enables devmode
- GOD: God mode
- NOCLIP: No clipping mode
- TELEPORT -x <x> -y <y>
- SONICCD: Sonic CD mode - replaces animals with plants
- KILLINGDEAD: enables SRB1 damaging glitch
- TIMEATTACKED: Sonic: Time Attacked Link counter + ring attraction
Typed on screen (in a level):
- fishbake: Resets emeralds
- helen: God mode
- devmode: enables devmode
FD 1.09.4
Console:
- OBJECTPLACE: enabled objectplace
- DEVMODE: enabled devmode
- GOD: God mode
- NOCLIP: No clipping mode
- TELEPORT -x <x> -y <y>
- SONICCD: Sonic CD mode - replaces animals with plants
- KILLINGDEAD: enables SRB1 damaging glitch
- TIMEATTACKED: Sonic: Time Attacked Link counter + ring attraction
Typed on screen (in a level):
- fishbake: Resets emeralds
- helen: God mode
- devmode: enables devmode
Mystic Realm multiplayer levels
Before v4.4, Mystic Realm used to include multiplayer levels. These were:
Match
- MAPC0 - Grass Plateau Zone
- MAPC1 - Flying Shrine Zone
- MAPC2 - Midnight Abyss Zone
- MAPC3 - Green Upheaval Zone
- MAPC4 - Nightmare Ring Zone
- MAPC5 - Starlit Warehouse Zone
CTF
- MAPC6 - Vine Cavern Zone
- MAPC7 - Conveyor Conflict Zone
History of SRB2 at SAGE
SRB2 and/or STJr members have appeared at Sonic Amateur Games Expo (SAGE) multiple times in the past. This section attempts to list anything notable SRB2-related that happened:
SAGE 1 (September 2000)
SAGE 2 (March 2001)
- Demo 2 appeared at SAGE
SAGE 4 (March 2002)
- Demo 4.32 appeared at SAGE
- March 15th: Sonic Stadium 2002 Interview with Sonikku (srb2.org backup link)
SAGE 6 (March 2003)
- SRB2 2k3 was released as a SAGE-exclusive demo
SAGE 9 (September 2004)
- SA-SRB2 appeared at SAGE
SAGE 13 (2008)
- An SRB2 Tournament (SRB2 Tourney) was to occur, but these plans fell through.
SAGE 14 (2009)
- Version 2.0 appeared at SAGE
Files from the old "History" page on SRB2's website
Miscellaneous:
- White Glove Diaries Archive
- Old Poll Results
- Old Screenshots
- Sonic Stadium 2002 Interview with Sonikku
- SAGE 2000 Promo Video
- Demo 2 Preview Video
Cutscenes: