If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Prerelease:Sonic the Hedgehog (Genesis)/February 1990
This is a sub-page of Prerelease:Sonic the Hedgehog (Genesis).
Some 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 1: 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 1, 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.
Below is the source code that can be seen during the video:
*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
;sprho equ $1d
;sprvs equ $1e
;sprhs equ $1f
;------------------------------------------------------------------------
; foot colition
;
;col:
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,cddot(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,cddot(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
In the recently discovered prototype, there exists objects ID 02 and ID 03, both of which line up with an object seen at the 0:09 mark of the video. Their coordinates are fixed and while both objects might have served a function back then, they do not in this prototype.
