S2B
S2B

A no bullshit Sonic the Hedgehog site

Google
Web
www.s2beta.com

Message Board

Origin
FAQ
Downloads
Cheats
Comparisons
Prototype Zones
Music
Concept Art Sketches
Magazine Previews
Video Previews
Timeline
Lost Sprites & Tiles
Savestates
False Alarms
Summary
Links

Engineering Archive
Sonic Community Hacking Guide External Link
Sonic 2 Algorithms & Specs Patents

Hoaxes
Fonts
HK Bootleg Sonic CD
Foreign Languages

Contact
Help Needed

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


Magazine Preview #25


Source: Sonic 2 US Manual

Source: Sonic 2 Beta ROM

Source: Sonic 2 Final ROM
 
Yet another picture of a prototype in the Sonic 2 US manual. The rings counters are linked together, and the extra score counters make an appearance, unlike in the final.

Assuming this screenshot was taken from the same source as the others (e.g. M08) in the manual, this is a later prototype than our ROM.

 

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; } ##############################################################################