New Sonic 1 Alpha Screens Discovered

Discussion in 'General Sonic Discussion' started by cornholio857, May 3, 2015.

  1. steveswede

    steveswede

    Member
    5,032
    1
    16
    Ask my hand
    Fighting against the Unitary State of Europe
    Is that the debug info on the bottom right? Surprised to see even changes like that on different builds.
     
  2. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,091
    237
    43
    Lincs, UK
    TurBoa, S1RL
    Likely changed because of sprite limits. Also reveals layout change - here's the same spot in GHZ2:

    [​IMG]
     
  3. The KKM

    The KKM

    Welcome to the nExt level Member
    2,188
    33
    28
    Portugal
    IDW's Sonic the Hedgehog comic books
    So I got asked to relay a response to this, meanwhile

    At this point I should start trying to convince her to join here instead :v:
     
  4. JumpingRyle

    JumpingRyle

    Member
    29
    0
    0
    Thanks for conveying the messages :)/>

    Bekutaa and bekutoru are two distinct words in Japanese. Just because they derive from the same foreign word doesn't change this. To a Japanese person, they are different and are used in different contexts and are not interchangeable. To be clear: They are not just "a literal spelling out of the English term using a Japanese writing system", they are words that have been fully incorporated into the Japanese language and there is no ambiguity about their use. A Japanese person does not have to have any English knowledge to use either.

    An analogy for English: "hostel", "hospital", and "hospitality" all derive from the Latin "hospes" but we would never confuse the 3 and can clearly use them without knowing Latin.

    The reason why both bekutaa and bekutoru are used in Japanese is that bekutaa comes from the English pronunciation and bekutoru from the German pronunciation. Bekutoru is used more in the fields of physics and biology, which due to historical reasons have a lot of German loan words.

    Sorry to go into this detail, but I want to make it clear: If the character of Bekutaa had been based on "Vector Synthesis", then it would make no sense to use "Bekutaa" rather than "Bekutoru", as they are distinct terms.

    If you really want to argue for this, you should also disprove my argument concerning the more logical association with flight. Bekutaa has very clear associations with flight in Japanese, and Sonic has a strong connection with flight. Yuji Naka even used to wear a leather flight jacket with the Sonic logo on it.

    I will agree with this: The choice to have Vector play a keyboard in the band might have resulted from the similarity of bekutaa and bekutoru, but I think the name was ultimately chosen for the association with flight. Occam's razor and all that ;)/>
     
  5. The KKM

    The KKM

    Welcome to the nExt level Member
    2,188
    33
    28
    Portugal
    IDW's Sonic the Hedgehog comic books
    well then, in that case

    this was to go on last post, but tumblr ate the ask, so I'll add it now

    And in response to your post now,

    I'll add that this last one seems to me to make the most sense- whatever the reason why Vector was chosen as a name, it then got the spelling it did simply because it was them writing it from the English, even if they, for an example, meant the term that comes from German.
     
  6. JumpingRyle

    JumpingRyle

    Member
    29
    0
    0
    I don't understand. Vector is a common aviation term (lift vector, thrust vector, etc.). Mach is a common aviation term. Sonic is, well, probably not common but certainly associated with aviation. This is also true in Japanese. The fact that vector is used in other places does not somehow make it no longer associated with aviation. When 3 out of the 5 band member names have a strong connection with aviation (and a 4th member also, although more general), and a big part of one of the character's origin stories involves aviation, I don't think it's a stretch of the imagination to see where the names originated. Especially since these characters were meant to appeal to children, who were not likely familiar with Vector Synthesis (!).

    エスピオナージ "Espionage" is most certainly a Japanese word, and it's in the dictionary: http://dictionary.goo.ne.jp/leaf/jn2/23825/m0u/

    I'd say it's a less-common loan word, but a quick google search will show you that it's still used quite a bit.

    I don't understand how there can be a "common" vector and a "specialist" vector in Japanese. They are different words, used in different contexts, to refer to somewhat different things. They are not interchangeable. It would be strange to suddenly call "Vector synthesis" Bekutaa shinseshisu since that's not what it is. Again, this has absolutely nothing to do with English. These are 100% Japanese words. I think your knowledge of English might be deceiving you into seeing bekutaa and bekutoru as being basically the same thing, but they are only 50% similar in Japanese. Of course, I think most Japanese people would know that they are derived from the same word, but that makes them no more interchangeable than "hospice" and "hospital" in English (which are actually more than 50% similar).
     
  7. speedyink

    speedyink

    Member
    20
    0
    0
    Holy crap, I just noticed how the trees were way taller in those earlier builds. My guess is power ups hidden in trees weren't thought of yet.
     
  8. ICEknight

    ICEknight

    Researcher Researcher
    I like how they bothered changing the terrain's shape when they decided to add a set of spikes in there. Shows how much they cared about every little detail, even when there wasn't a real need for it.
     
  9. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,091
    237
    43
    Lincs, UK
    TurBoa, S1RL
    I'd say it's more likely they changed that part to accommodate a new bridge rather than the spikes.

    Also, there's no swing coming from an upper path - I'd suggest that maybe the top (initial) path of Act 2 didn't exist at first, and you started at the bottom part (where the spikes and item boxes are).

    Complete speculation, though.
     
  10. MamboCat

    MamboCat

    Old Fogey Member
    10
    0
    0
    Prague
    STCO colouring!
    This stuff is absolutely fascinating. Thanks for finding and scanning it.

    The more I look at the Madonna and monster-era stuff, the more I think Sonic was meant to be something along the lines of AoSTH: a wacky world of all kinds of different weird creatures and vivid landscapes. I wonder if there's anything to that? *shrug*

    Also the egg monster guy kinda reminds me of Dizzy, Prince of the Yolk Folk! :D
     
  11. Blastfrog

    Blastfrog

    See ya starside. Member
    Thanks for the comments. Made a bit more progress:

    [​IMG]
     
  12. Well this is very neat.
     
  13. MamboCat

    MamboCat

    Old Fogey Member
    10
    0
    0
    Prague
    STCO colouring!
    It's certainly very bright and colourful. :) I seem to remember Sonic's sprites in the first game being a tad on the grey side, rather than the cobalt blue we all know!

    One observation: his wider pupils remind me of the "high" Sonic sprites from After the Sequel's Sugar Splash Zone!!
     
  14. ICEknight

    ICEknight

    Researcher Researcher
    The first frame was a pretty good approximation, but now you cheated and based the rest of the sprites on the final ones. =P
     
  15. rata

    rata

    Member
    609
    22
    18
    Argentina
    Trying to be useful somehow.
    Judging for the only image we have from that stage of development, the frames aparently were identical in every aspect except on the shading. I don't see how he cheated.
     
  16. ICEknight

    ICEknight

    Researcher Researcher
    Not the only image. Go a few pages back.
     
  17. Rika Chou

    Rika Chou

    Tech Member
    5,271
    163
    43
    [​IMG]

    So the shading was different, the pupil was shorter, and his ear was shaped/angled different.
     
  18. rata

    rata

    Member
    609
    22
    18
    Argentina
    Trying to be useful somehow.
    Oh, right, I got lost between vector syntesis and google chrome crashes at that page so I must have skipped it. Thanks for make me notice it and sorry for talking crap, it won't happen again.
     
  19. ICEknight

    ICEknight

    Researcher Researcher
    Also, there seem to be some small changes in his arms, hand and shoes too.
     
  20. LOst

    LOst

    Tech Member
    4,890
    5
    18
    Awesome find! This quality scan together with the discovery of the checkered ball in action (a few month back) are to live for!






    As for the parallax scrolling techniques often talked about in this demo:
    I did found a few references in Sonic 1's code labels that state there were once two layers of objects in the game. Just imagine it as two cameras moving at different speeds and creating and potentially destroying objects as they move over a grid of 128 pixels. By having two object layouts, it is possible to spawn background or foreground objects at a different scroll rate, such as the rocks and clouds in the foreground. A huge amount of RAM was allocated for this effect, and it was probably removed in favor of other effects. Having foreground and background objects in the game is still possible, but require special programming as can be seen by the trusses in Starlight Zone and Chemical Plant Zone, and the Death Egg background sprite in Lava Reef Zone Act 2, and then we have special foreground palm leaves in Angel Island.


    Here are some of the Sonic 1 references (ported to C). The name of the second object layer was officially Z:

    Code (Text):
    1.  
    2. extern FIX16                scra_h_posiw;               // $FFF700: Scroll A horizontal.
    3. extern FIX16                scra_v_posiw;               // $FFF704: Scroll A vertical.
    4. extern FIX16                scrb_h_posiw;               // $FFF708: Scroll B horizontal.
    5. extern FIX16                scrb_v_posiw;               // $FFF70C: Scroll B vertical.
    6. extern FIX16                scrz_h_posiw;               // $FFF710: Scroll Z horizontal. << Object layer 2 scroll
    7. extern FIX16                scrz_v_posiw;               // $FFF714: Scroll Z vertical. << Object layer 2 scroll
    8. extern FIX16                scrc_h_posiw;               // $FFF718: Scroll C horizontal.
    9. extern FIX16                scrc_v_posiw;               // $FFF71C: Scroll C vertical.
    10.  
    Code (Text):
    1.  
    2. extern unsigned short int       scrflaga;               // $FFF754: Scroll A update flags.
    3. extern unsigned short int       scrflagb;               // $FFF756: Scroll B update flags.
    4. extern unsigned short int       scrflagz;               // $FFF758: Scroll Z update flags. << Object layer 2 scroll
    5. extern unsigned short int       scrflagc;               // $FFF75A: Scroll C update flags.
    6.  
    Code (Text):
    1.  
    2. extern ASETDATA const*          asetadr;                // $FFF770: Actset high address.
    3. extern ASETDATA const*          asetadr2;               // $FFF774: Actset low address.
    4. extern ASETDATA const*          asetadrz;               // $FFF770: Actset high address for scroll Z. << Object layer 2 scroll
    5. extern ASETDATA const*          asetadrz2;              // $FFF774: Actset low address for scroll Z. << Object layer 2 scroll
    6.  
    Code (Text):
    1.  
    2. extern signed short int         asetxposiz;             // $FFF78A: Last horizontal spawn meta grid for scroll Z. << Object layer 2 scroll
    3. extern signed short int         asetyposiz;             // Last vertical spawn meta grid for scroll Z. << Object layer 2 scroll
    4.  
    5. extern signed short int         flagxposiz;             // Current horizontal spawn meta grid for scroll Z. << Object layer 2 scroll
    6. extern signed short int         flagyposiz;             // Current vertical spawn meta grid for scroll Z. << Object layer 2 scroll
    7.  
    8. extern signed short int         flagxposi;              // Current horizontal spawn meta grid ($FFEF64 in Sonic 3).
    9. extern signed short int         flagyposi;              // Current vertical spawn meta grid ($FFF7DA in Sonic 3).
    10.  
    11. extern FLAGWKCNT            flagwkcnt;              // $FFFC00: Spawn remember buffer index.
    12. extern FLAGWKCNT            flagwkcntz;             // $FFF78C: Spawn remember buffer index for scroll Z. << Object layer 2 scroll
    13.  

    In the source file ACTSET, the spawn tables are initialized according to the active stage, and some of the Z scrolling stuff is indeed left initialized in Sonic 1:

    Code (Text):
    1.  
    2. void actsetchk ()
    3. {
    4.     unsigned int I;
    5.     signed int x, y, xz, yz;
    6.  
    7.     enum
    8.     {
    9.         actsetinit,
    10.         actset
    11.     };
    12.  
    13.     switch (actset_rno)
    14.     {
    15.     case actsetinit:
    16.         ++actset_rno;
    17.  
    18.         asetadr = asetadr2      = asettbl [(((stageno.zone << 1) + stageno.zone) + stageno.act) << 1];
    19.         asetadrz = asetadrz2        = asettbl [((((stageno.zone << 1) + stageno.zone) + stageno.act) << 1) + 1]; // << Object layer 2 scroll
    20.  
    21.         flagwkcnt.flagworkcnt = flagwkcnt.flagworkcnt2 = 1;
    22.         flagwkcntz.flagworkcnt = flagwkcntz.flagworkcnt2 = 1; // << Object layer 2 scroll
    23.  
    24.         for (I = 0; I < 0x200; I++)
    25.         {
    26.             flagwork [I] = 0x00;
    27.         }
    28.  
    29.         if ((x = (signed int) scra_h_posiw.integer - STAGE_ACTSET) < 0)
    30.         {
    31.             x = 0;
    32.         }
    33.        
    34.         x &= ~(STAGE_ACTSET - 1);
    35.  
    36.         while (x > asetadr->xposi)
    37.         {
    38.             if ((signed char) asetadr->actno < 0)
    39.             {
    40.                 ++flagwkcnt.flagworkcnt;
    41.             }
    42.  
    43.             ++asetadr;
    44.         }
    45.  
    46.         ... Continues initializing spawn boundaries ...
    47.  
    Sorry about the technical stuff above. The main thing is, Sonic 1 will always be special and I hope more discoveries will follow, being it graphics, music, or code.

    Off topic: I did discover the name of the queued/buffered compressed art in the labels as well. The name is divdevwk. Remember this is not the name of the compression, but the name of the system for dividing the job of decoding a little bit of data per frame to have smooth loading of bosses etc.