
S2B
Still kickin' ass after all these years
|
9.6 years
since unearthing of prototype ROM
15.7 years
since release of Sonic 2 on MegaDrive
1.9 years
since renaming to S2B
|
|
S2B/False Alarms/Sonic Does Not Loose His Rings Twice
The s2b-3.avi video clip of the Mean Machine Sega
VHS gives an impression that in this prototype Sonic can loose his rings
more than once, like in Sonic Crackers.

Sonic getting hurt from a coconut thrown by a monkey...

...and again by landing on spikes. Or so it seems.

The above shot is taken between the first two. Notice Sonic
suddenly
has 1 ring instead of 0. Explanation? Tails (off screen) grabs a ring after
Sonic is first hit. Therefore Sonic can afford to land on the spikes without
dying.
Like the prototype we have, Sonic does not become invincible for 2
seconds when landing on spikes. However he does become temporarily
invincible when landing on the ground, as
illustrated by the Hill Top clip.
|
Page Hits: #!/usr/bin/perl
##############################################################################
# #
# SSI Counter Version 1.0d #
# Copyright 2000 Robert DeFusco defsoft@gis.net #
# Created 2/16/2000 Last Modified 9/14/2002 #
# #
##############################################################################
# #
# COPYRIGHT NOTICE #
# Copyright 2000 Robert S. DeFusco All Rights Reserved. #
# #
# This script may be used and modified by anyone so long as #
# this copyright notice and the comments above remain intact. #
# By using this this code you agree to indemnify Robert S. DeFusco from #
# any liability that might arise from it's use. #
# #
# Selling the code for this program without prior written consent is #
# expressly forbidden. In other words, please ask first before you try and #
# make money off of my program. #
# #
# Obtain permission before redistributing this software over the Internet or #
# in any other medium. In all cases copyright and header must remain intact.#
# #
##############################################################################
use CGI qw(:standard);
##############################################################################
# Counter URL #
# ---------------------------------------
open(PUF,"url.path");
@upath=;
close(PUF);
$counturl="@upath";
# ---------------------------------------
##############################################################################
##############################################################################
# System Variables #
@schemes=(
"bluenight",
"coalfire",
"custom",
"default",
"digitalalarm",
"encounter",
"futuregreen",
"ghost",
"gilligan",
"metallica",
"neonpower",
"ocean3d",
"purplefunk",
"silver3d",
"thematrix",
"unionform",
"winamp",
"windowsxp",
"woodburn",
"x-files"
);
@bcolors=(
"black",
"white",
"red",
"green",
"blue",
"yellow",
"orange",
"custom"
);
$picked_scheme=param("scheme");
$picked_scheme=~s/ //ig;
$picked_scheme=~tr/A-Z/a-z/;
$pageid=param("id");
$cmode=param("type");
$cmode=~s/ //ig;
$cmode=~tr/A-Z/a-z/;
$border=param("border");
$border=~tr/A-Z/a-z/;
$max=param("max");
######################
## Random Scheme Code
if($picked_scheme eq 'random'){
srand(time ^ $$);
$rnum = rand(@schemes);
$picked_scheme=$schemes[$rnum];
}
######################
##############################################################################
##############################################################################
# Main command handler #
## Check ID List ########
open(IDL,"pageid.list");
@idfile=;
close(IDL);
@idlist=split(/\,/,"@idfile");
$idpassed="0";
foreach $iditem (@idlist){
chomp($iditem);
if($pageid eq $iditem) { $idpassed="1"; }
}
if($idpassed eq '0'){
print "Content-type: text/html\n\n";
print "invalid page id!";
exit;
}
#########################
if(!($cmode)){
print "Content-type: text/html\n\n";
print "invalid counter type!";
exit;
}
if($cmode eq 'ascii' || $cmode eq 'text') { &ascii_counter; exit; }
if($cmode eq 'image' || $cmode eq 'img' || !($cmode)) { &image_counter; exit; }
##############################################################################
##############################################################################
# ASCII Counter #
sub ascii_counter
{
$counter=count_log();
if($max)
{
if($max <= length($counter))
{
} else {
for($i=0;$i<($max-length($counter));$i++)
{
$addzero.="0";
}
$addzero.=$counter;
$counter=$addzero;
}
}
print "Content-type: text/html\n\n";
print "$counter";
}
##############################################################################
##############################################################################
# Image Counter #
sub image_counter
{
## Check scheme ########
if(!($picked_scheme)) { $picked_scheme="default"; }
$passed="0";
foreach $scheme (@schemes){
if($picked_scheme eq $scheme) { $passed="1"; }
}
if($passed eq '0')
{
print "Content-type: text/html\n\n";
print "invalid scheme";
exit;
}
########################
$counter=count_log();
if($max)
{
if($max <= length($counter))
{
} else {
for($i=0;$i<($max-length($counter));$i++)
{
$addzero.="0";
}
$addzero.=$counter;
$counter=$addzero;
}
}
for($i=0;$i";
}
if($border)
{
$bcpassed="0";
foreach $bcolor (@bcolors){
if($border eq $bcolor) { $bcpassed="1"; }
}
if($bcpassed eq '1'){
$borderurl=$counturl . "borders/" . "$border.gif";
$ciw=(length($counter)*8)+2;
$prehtml="
";
$posthtml="
";
$fullhtml=$prehtml . $ihtml . $posthtml;
chomp($fullhtml);
$ihtml=$fullhtml;
}
}
print "Content-type: text/html\n\n";
print "$ihtml";
}
##############################################################################
##############################################################################
# Counter Log #
sub count_log {
open(CF,"+>>$pageid.count");
flock(CF,2);
seek CF, 0, 0;
($countval = join '', );
truncate CF, 0;
$countval++;
print CF $countval;
close(CF);
return $countval;
}
##############################################################################