This is a sub-page of Prerelease:Sonic the Hedgehog (Genesis).
Watch on YouTubeSome news footage of Sega R&D which aired about four months before the Tokyo Toy Show in June 1990. Although brief and not immediately obvious, this video is the earliest known footage of Sonic the Hedgehog: It shows a portion of prototype collision source code on a computer and a brief snippet of blurry gameplay on an adjacent TV screen.
The few seconds of "game" footage make it clear that this is extremely early in development, with crudely basic placeholder graphics and a test level with slopes, thought to be for testing loop-de-loops (in Sonic the Hedgehog, loops work by swapping out chunks on the fly; parts of what look like the bottom of a loop and the top of a loop can be seen here). There is also a small rectangle, which may or may not be the player, as well as a glitchy sprite with two frames whose purpose is unknown. There is an orange/yellow bar on the left side of the screen.
|
Video |
Proto |
|---|---|
|
|
|
Present in the available prototype are objects ID 02 and 03, both of which line up with the room seen in the video. Their coordinates are fixed, and what function they were intended to serve (if any) is unknown.
Below this is a partial file list that can be seen in the video (the files with a ¥ symbol at the end are directories to put outputted assembly files inside once the game has been compiled):
ENEMY.ASM
FCOL.ASM FCOL.BAK
FCOL3.ASM GAME.ASM INT.ASM
LOGO.ASM MACRO.LIB MAIN.ASM
ML.EVT ML.S28 OBJ¥
S S.CMD SCORE.ASM
SOUND¥ TR¥
The missing source files, based from Sonic CD's PC version, are speculated to be:
ACTION.ASM ACTSET.ASM
EQU.LIB
Afterwards is some source code that can be seen before the programmers go inside the file FCOL3.ASM in the video. The file showcased is unknown, though it may be an early version of FCOL.ASM, the file where all main collision code is stored:
,a2
lea scdtblwk,a2
move.w d0,d6
andi.w #7,d6
lsl.w #8,d0
adda.w d0,a2
move.w d2,d1 ;
lsr.w #4,d1
move.w d3,d1 ;
rol.w #1,d1
andi.w #$1e,d1
addx.w d1,d0
swap d4
swap d5
Afterwards is the source code that can be seen inside FCOL3.ASM during the video:
public fcol,fcolj,fcole
*cd_walk equ 0*2
*cd_jump equ 1*2
*cd_up equ 2*2
*cd_down equ 3*2
updotmax equ -4
downdotmax equ 4
jumpdotmax equ 8
;sprvo equ $1c ;1
;sprho equ $1d ;1
;sprvs equ $1e ;1
;sprhs equ $1f ;1
;------------------------------------------------------------------------------
; foot colition
;
fcol:
move.w yposi(a0),d4
move.b sprvo(a0),d1
add.b sprvs(a0),d1
ext.w d1
add.w d1,d4
move.w xposi(a0),d5
move.b sprho(a0),d1
ext.w d1
add.w d1,d5
move.w xspeed(a0),scrhithz
?loop:
move.w d4,d2 ;
move.w d5,d3 ;
moveq #0,d0
move.b sprhs(a0),d0
tst.w xspeed(a0)
bpl.b ?jump
* btst.b #cd_right,cddat(a0)
* beq.b ?jump
neg.w d0
?jump:
add.w d0,d3 ;
bsr.w scdchk
tst.w d1
beq.b ?end
bpl.b ?down
?up:
cmp.w #updotmax,d1
blt.b ?nomove
add.w d1,yposi(a0)
?end:
rts
?nomove:
bsr.b hoseihsub
bra.b ?loop
move.w #0,xspeed(a0)
rts
?down:
move.w d1,d6
swap d6
?down2:
move.w d4,d2 ;
move.w d6,d3 ;
moveq #0,d0
move.b sprhs(a0),d0
tst.w xspeed(a0)
bpl.b ?jump3
* btst #cd_left,cddat(a0)
* bne.s ?jump3
neg.w d0
?jump3:
add.w d0,d3 ;
bsr.w scdchk
tst.w d1
beq.b ?end2
bpl.b ?down1
?up2:
cmp.w #updotmax,d1
blt.b ?nomove2
neg.w d1
FCOL3.ASM doesn't exist in the final. All of its code was probably removed at some point.