We just released a Feb. 5 '89 prototype of DuckTales for the NES!
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

From The Cutting Room Floor
Jump to navigation Jump to search
Other languages:
English

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


Proto Sonic The Hedgehog Genesis early objects anim.gif

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.