Author Topic: Unleashed Cracktro 7  (Read 5087 times)

0 Members and 1 Guest are viewing this topic.

Offline WidowMaker [retired]

  • %010101
  • Atari ST
  • ***
  • Posts: 134
  • Karma: 21
  • %010101
    • View Profile
Unleashed Cracktro 7
« on: February 09, 2008 »
Code Widowmaker
Music Noisemaker
Logo Illusionmaker


Greetings and thank you to everyone who helped here I have adapted the Opengl framework that was posted in general code questions, to say thank you, here is the full source for the intro;

(It won't compile because you'd need the media, this is just so you can have a look through it, to see it working download the exe from this post or at intro inferno).

Cheers.
Code: [Select]
'
'                         UNLEASHED VECTOR SCROLL INTRO
'
'===============================================================================

        option explicit
        option static

'-------------------------------------
' Includes
'-------------------------------------

    #include "GL/gl.bi"
    #include "GL/glu.bi"
    #include "windows.bi"
    #INCLUDE "upppal.bas"
    #INCLUDE "uppraw.bas" 

    #INCLUDE "um.bas"
    #INCLUDE "ufmod.bi"
    Dim hWave As HWAVEOUT   
    DIM SHARED AS INTEGER MUSSIZE   
    MUSSIZE=(UBOUND(um.xm))+1
   
    Const TEXTUREX = 512
    Const  = 128
   
    Declare Sub DRAWIT(byval IM_XP as integer,byval IM_YP as integer)
    Declare Sub LOADIT()   
    Dim Shared IMAGE_STORE( TEXTUREX * TEXTUREY ) as integer   
    Dim Shared T_RED(256), T_GREEN(256), T_BLUE(256) as short   
    LOADIT()

    DIM SHARED AS BYTE W_FULLSCREEN =0 : ' 1 = FULLSCREEN
    DIM SHARED AS INTEGER W_XO =0      : ' X pos of window
    DIM SHARED AS INTEGER W_YO =0      : ' Y pos of window   
    DIM SHARED AS INTEGER W_XW =800   : ' Width.
    DIM SHARED AS INTEGER W_YH =600    : ' Height.

    DIM SHARED pfd as PIXELFORMATDESCRIPTOR
    DIM SHARED hdc as hDC
    DECLARE SUB InitOGL()


    DIM SHARED AS INTEGER STARS=1000
    DIM SHARED AS DOUBLE VVX(STARS)
    DIM SHARED AS DOUBLE VVY(STARS)
    DIM SHARED AS DOUBLE VVZ(STARS)

    DIM SHARED AS INTEGER CUBES=300
    DIM SHARED AS DOUBLE CCX(CUBES)
    DIM SHARED AS DOUBLE CCY(CUBES)
    DIM SHARED AS DOUBLE CCZ(CUBES)


    dim shared as integer SRX=170
    dim shared as integer SRY=8
   
    DIM SHARED AS DOUBLE  SSX(SRX,SRY)
    DIM SHARED AS DOUBLE  SSY(SRX,SRY)
    DIM SHARED AS DOUBLE  SSZ(SRX,SRY)
    DIM SHARED AS INTEGER SSF(SRX,SRY)
   
    DECLARE SUB SCROLLINIT()
    DECLARE SUB STARINIT()
    DECLARE SUB QUADBARS()
    DECLARE SUB STARFIELD()
    DECLARE SUB CUBEFIELD()
    DECLARE SUB DRAW_SCROLLER()
    DECLARE SUB UPDATE_SCROLLER()
    DECLARE SUB UTMATRIX(BYVAL CH  AS INTEGER)       
    DECLARE SUB PRECALC()
    DECLARE SUB LETTERNEW(BYVAL CH  AS INTEGER, BYVAL XX AS DOUBLE,BYVAL YY AS DOUBLE,BYVAL ZZ AS DOUBLE)
    DECLARE SUB WRITER()
   
    STARINIT()
    SCROLLINIT()

DIM SHARED XR AS SINGLE : ' X ROTATION
DIM SHARED YR AS SINGLE : ' Y ROTATION
DIM SHARED ZR AS SINGLE : ' Z ROTATION
   

DIM D AS INTEGER
DIM SHARED AS DOUBLE GX,GY,GZ,TW,ZRR,XRR,YRR,RRR,delta,mm,fr,scoffz

    mm=timer
    dim SHARED LightAmbient(0 to 3) as single =>  {.4, .4, .4,1.0}   '' Ambient Light is 20% white
    dim SHARED LightPosition(0 to 2) as single => {0.0, 0.0 ,0.0   }  '' Position is somewhat in front of screen


InitOGL()

'===============================================================================
' LOGO XOR TEXTURE GENERATION;
'===============================================================================
    DIM SHARED AS UINTEGER LOGOBUFFER ( 512 * 128 )
    DIM SHARED tex1 AS GLUINT
DIM AS UINTEGER X,Y,PIXEL
   
    DRAWIT(0,0)
   
glGenTextures 1, @tex1
glBindTexture(GL_TEXTURE_2D, tex1)
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR)
gluBuild2DMipmaps (GL_TEXTURE_2D, 3, 512, 128,GL_RGBA, GL_UNSIGNED_BYTE, @LOGOBUFFER(0)) 



    DIM SHARED FACE1(0 to 3) AS SINGLE => {0.4, .1, .0,0.05}  :' bar face
    DIM SHARED FACE2(0 to 3) AS SINGLE => {0.7, .1, .0,0.05}  :' bar face
    DIM SHARED FACE3(0 to 3) AS SINGLE => {1.0, 1.0, 1.0,1.0 }  :' LOGO

    DIM SHARED FACE4(0 to 3) AS SINGLE => {.7,  .4,  .0,0.5 }  :' scroller
    DIM SHARED FACE5(0 to 3) AS SINGLE => {.5,  .1,  .0,0.5 }  :' scroller   
   
    DIM SHARED FACE6(0 to 3) AS SINGLE => {0.6,  .4,   .1,0.5 }  :' scube1   
    DIM SHARED FACE7(0 to 3) AS SINGLE => {0.4,  .2,  .1,0.5 }  :' scube2
    DIM SHARED FACE8(0 to 3) AS SINGLE => {0.1,  .0,   .1,0.5 }  :' scube3
   
    DIM SHARED FACE9(0 to 3) AS SINGLE => {0.3,  .0,  .0,0.6 }  :' scube3
   
    DIM SHARED FACEA(0 to 3) AS SINGLE => {0.5,  .1,  .0,1.0 }  :' LOGO
   
       
   
   
    DIM SHARED AS STRING MESS
    DIM SHARED AS STRING NFO(10)
   
    MESS=""
   #include "nfos.txt"   

    mess=ucase(mess)
   
    dim q
    for q=1 to 10
    nfo(q)=ucase(nfo(q))
    next

    DIM SHARED AS INTEGER LATRIX ( 9 , 8)
    DIM SHARED AS INTEGER P=1
    DIM SHARED AS INTEGER MLINE=1
   
    DIM SHARED FONT (64 * 64) as Uinteger : ' FONT BUFFER
    PRECALC()
    hWave = uFMOD_PlaySong(@um.xm(0),MUSSIZE,XM_MEMORY)   
   
'===============================================================================
' MAIN LOOP
'===============================================================================
WHILE((GetAsyncKeyState(VK_ESCAPE)<>-32767))
'-------------------------------------------------------------------------   
'       OPENGL STUFF;
'-------------------------------------------------------------------------

        GLLOADIDENTITY
        GLCLEAR(GL_DEPTH_BUFFER_BIT + GL_COLOR_BUFFER_BIT )   
        GLLOADIDENTITY
               
        STARFIELD()
        CUBEFIELD()
        DRAW_SCROLLER()       
        GLENABLE GL_BLEND
        WRITER()
        GLDISABLE GL_BLEND

        GLDISABLE GL_DEPTH_TEST
        QUADBARS()   
        GLENABLE GL_DEPTH_TEST

'-------------------------------------------------------------------------
'       DELTA TIMING;
'-------------------------------------------------------------------------   
        TW=TIMER
        FR=FR+1
        XR = XR + DELTA
YR = 90 + 15*SIN(TIMER*2)
ZR = ZR + DELTA*8
'-------------------------------------------------------------------------       
        IF TIMER-MM>=0.03 THEN
                                DELTA=.45/FR
                                MM=TIMER
                                FR=0
        END IF
'-------------------------------------------------------------------------
'       DOUBLE BUFFERING;
'-------------------------------------------------------------------------
        UPDATE_SCROLLER()
        GLFLUSH()             
        SWAPBUFFERS(hDC)   
        GLFLUSH()     
        SLEEP 1
WEND

'==========================================================================
' END OF MAIN LOOP
'==========================================================================
       uFMOD_stopsong
END


SUB WRITER()



DIM AS DOUBLE XXP,YYP,TV
TV=(.1*SIN(TIMER*2))-1.8

   
DIM AS INTEGER A,B

    YYP=.5


    FOR A=1 TO 10
            YYP=(-A*.12)+.125
            XXP=(-((LEN(NFO(A))*.11)/2))+.125
            FOR B=1 TO LEN(NFO(A))
            LETTERNEW ( ASC(MID(NFO(A),B,1))-31,XXP,YYP,TV)
            XXP=XXP+.11
            NEXT
           
           
    NEXT

END SUB


'--------------------------------------------------------------------------
' PUT THE SMALL CUBES INTO THE STARFIELD
'--------------------------------------------------------------------------

SUB CUBEFIELD
   
   
    DIM SS AS DOUBLE
    SS=DELTA*1.8
    DIM A AS INTEGER
    GLVIEWPORT 0, 0, w_xw, w_yh   
    GLPUSHMATRIX       
    GLENABLE GL_FOG
    GLENABLE GL_LIGHTING
   

    glRotatef(0,  1.0, 0.0, 0.0)   
    glRotatef(0,  0.0, 1.0, 0.0)   
    glRotatef(yr, 0.0, 0.0, 1.0)   

    glTranslatef(0, 0, -8)         
    FOR A=0 TO CUBES

   
   
   

    GLBEGIN GL_QUADS
            GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE8(0))
            GLNORMAL3F 0,0,1
            GLVERTEX3F CCX(A)-.5,CCY(A)-.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)-.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)+.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)-.5,CCY(A)+.5,(CCZ(A)+.25)

            GLNORMAL3F 0,0,-1
            GLVERTEX3F CCX(A)-.5,CCY(A)+.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)+.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)-.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)-.5,CCY(A)-.5,(CCZ(A)-.25)
           
            GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE7(0))
            GLNORMAL3F 0,1,0
            GLVERTEX3F CCX(A)-.5,CCY(A)+.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)+.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)+.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)-.5,CCY(A)+.5,(CCZ(A)-.25)
           
            GLNORMAL3F 0,-1,0
            GLVERTEX3F CCX(A)-.5,CCY(A)-.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)-.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)-.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)-.5,CCY(A)-.5,(CCZ(A)+.25)

            GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE6(0))
            GLNORMAL3F -1,0,0
            GLVERTEX3F CCX(A)-.5,CCY(A)-.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)-.5,CCY(A)+.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)-.5,CCY(A)+.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)-.5,CCY(A)-.5,(CCZ(A)-.25)

            GLNORMAL3F 1,0,0
            GLVERTEX3F CCX(A)+.5,CCY(A)-.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)+.5,(CCZ(A)-.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)+.5,(CCZ(A)+.25)
            GLVERTEX3F CCX(A)+.5,CCY(A)-.5,(CCZ(A)+.25)

    GLEND
   
    CCz(a)=CCz(a)+SS
    if CCz(a)>=40 then
        CCz(a)=CCz(a)-80

    END IF
    NEXT
    GLDISABLE GL_LIGHTING
    GLDISABLE GL_FOG
    GLPOPMATRIX

END SUB





'--------------------------------------------------------------------------
' READ THE FONT;
'--------------------------------------------------------------------------

SUB PRECALC()
            dim lp
        FOR LP=1 TO (64*64)
                READ FONT(LP)
        NEXT
 
END SUB


'--------------------------------------------------------------------------
' THIS WORKS ON THE ARRAY ELEMENTS OF THE SCROLL TO ADVANCE IT AND SET
' NEW LETTERS ETC.
'--------------------------------------------------------------------------

SUB UPDATE_SCROLLER()
    DIM AS INTEGER X,Y
    '---------------------
    ' SCROLL VALUE;
    '---------------------   
    SCOFFZ=SCOFFZ-(DELTA*3)   
    IF SCOFFZ<-1 THEN

    '---------------------
    ' MOVE ON/OFF VALUES ONE PLACE TO THE LEFT;
    '---------------------   
        FOR Y=1 TO SRY   
        FOR X=2 TO SRX
                SSF(X-1,Y)=SSF(X,Y)
        NEXT
        NEXT

    '---------------------
    ' GRAB SOME NEW VALUES FOR THE END LINE;
    '---------------------   

        FOR Y=1 TO SRY               
    IF MLINE<9 THEN       
                SSF(SRX,Y)=LATRIX(MLINE,Y)
    ELSE
                SSF(SRX,Y)=0
    END IF

        NEXT
    '---------------------
    ' GET A NEW LETTER IF WE'VE SROLLED OVER BY ONE!
    '---------------------   

    MLINE=MLINE+1
    IF MLINE>9 THEN
        UTMATRIX(ASC(MID(MESS,P,1))-31)
        P=P+1
        IF P>LEN(MESS) THEN P=1
    END IF
    SCOFFZ=SCOFFZ+1
   
   
    END IF

END SUB



SUB DRAW_SCROLLER()

    DIM AS INTEGER X,Y
    DIM A AS INTEGER
   
    GLLOADIDENTITY
    GLENABLE GL_LIGHTING
   
    GLPUSHMATRIX
    glTranslatef(0, 0 ,  -24)   
    glRotatef(3 , 1.0, 0.0, 0.0)
    glRotatef(YR, 0.0, 1.0, 0.0)
    glRotatef(ZR, 0.0, 0.0, 1.0)   
   
       
        FOR Y=1 TO SRY   

            if y<=3 then GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACEA(0))
            if y>3 and y<=5 then GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE4(0))
            if y>5 then GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE5(0))

            FOR X=1 TO SRX
               
            IF SSF(X,Y)=1 THEN
            GLBEGIN GL_QUADS
           
            GLNORMAL3F 0,0,1
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)-.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)-.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)+.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)+.5,(SSZ(X,Y)+.5)+SCOFFZ

            GLNORMAL3F 0,0,-1
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)+.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)+.5,(SSZ(X,Y)-.5)+SCOFFZ         
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)-.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)-.5,(SSZ(X,Y)-.5)+SCOFFZ
           
            GLNORMAL3F 0,1,0
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)+.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)+.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)+.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)+.5,(SSZ(X,Y)-.5)+SCOFFZ
           
            GLNORMAL3F 0,-1,0
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)-.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)-.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)-.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)-.5,(SSZ(X,Y)+.5)+SCOFFZ

            GLNORMAL3F -1,0,0
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)-.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)+.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)+.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)-.5,SSY(X,Y)-.5,(SSZ(X,Y)-.5)+SCOFFZ

            GLNORMAL3F 1,0,0
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)-.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)+.5,(SSZ(X,Y)-.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)+.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLVERTEX3F SSX(X,Y)+.5,SSY(X,Y)-.5,(SSZ(X,Y)+.5)+SCOFFZ
            GLEND   
            END IF         
       
            NEXT
        NEXT

        GLPOPMATRIX
        GLDISABLE GL_LIGHTING
       
END SUB



SUB SCROLLINIT
    DIM AS DOUBLE FLX,FLY
    DIM AS INTEGER X,Y
   
    FLY=-((SRY-1)/2)
    FOR Y=1 TO SRY
        FLX=-((SRX-1)/2)
        FOR X=1 TO SRX
           
            SSX(X,Y)=0
            SSY(X,Y)=FLY
            SSZ(X,Y)=FLX
            SSF(X,Y)=0

        FLX=FLX+1     
        NEXT
        FLY=FLY+1
    NEXT
   
END SUB

SUB STARFIELD
   
    DIM SS AS DOUBLE
    SS=DELTA*1.5
    DIM A AS INTEGER
    GLDISABLE(GL_LIGHTING)
    GLENABLE GL_FOG
GLPUSHMATRIX
'    GLUPERSPECTIVE 105.0, W_XW / W_YH, .1, 100.0 
    glTranslatef(0, 0, -8)     
    glRotatef(0 , 1.0, 0.0, 0.0)
    glRotatef(0, 0.0, 1.0, 0.0)
    glRotatef(yr, 0.0, 0.0, 1.0)   
    GLVIEWPORT 0, w_yh*.05 , w_xw, w_yh*.8


    FOR A=0 TO STARS



    GLBEGIN GL_LINES

        GLCOLOR3F .9, .9 ,.9
        GLVERTEX3F vvx(a),vvy(a),vvz(a)
        GLCOLOR3F 1.0, 1.0 ,1.0                           
        GLVERTEX3F vvx(a),vvy(a),vvz(a)+.35       

    GLEND


    vvz(a)=vvz(a)+SS
    if vvz(a)>=10 then
        vvz(a)=vvz(a)-50

    END IF
    NEXT
'    GLUPERSPECTIVE 105.0, W_XW / W_YH, .1, 100.0 
GLPOPMATRIX
GLENABLE (GL_LIGHTING)
GLDISABLE GL_FOG
END SUB


SUB QUADBARS()
   
    GLENABLE GL_LIGHTING
    GLPUSHMATRIX
    glloadidentity
   
    DIM AS DOUBLE  SMALL =.15 :' WIDTH OF SMALL BARS
    DIM AS DOUBLE  SLENG = 32 :' LENGTH OF SMALL BARS
    DIM AS DOUBLE  LARGE =1.5 :' WIDTH OF LARGE BARS
    DIM AS DOUBLE  BLENG =8  :' LENGTH OF LARGE BARS
   



        glTranslatef(0, 0, -7)
        glRotatef(320*sin(timer/2), 1.0, 0.0, 0.0)
        glRotatef(0, 0.0, 1.0, 0.0)
        glRotatef(0, 0.0, 0.0, 1.0)   

        DIM QO AS DOUBLE
        QO=0   
   







    GLVIEWPORT 0,w_yh*.35, w_xw,w_yh


glbegin gl_quads
GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE2(0))
        GLCOLOR3F 0.0,0.0,0.4
        glnormal3f 0,0,1
        glvertex3f -SLENG,-SMALL,SMALL
        glvertex3f  SLENG,-SMALL,SMALL
        glvertex3f  SLENG, SMALL,SMALL
        glvertex3f -SLENG, SMALL,SMALL
'
        GLCOLOR3F 0.0,0.0,0.6
        glnormal3f 0,0,-1
        glvertex3f -SLENG, SMALL,-SMALL
        glvertex3f  SLENG, SMALL,-SMALL
        glvertex3f  SLENG,-SMALL,-SMALL
        glvertex3f -SLENG,-SMALL,-SMALL
GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE1(0))
        GLCOLOR3F 0.0,0.0,0.8
        glnormal3f 0,-1,0
        glvertex3f -SLENG,-SMALL,-SMALL
        glvertex3f  SLENG,-SMALL,-SMALL
        glvertex3f  SLENG,-SMALL,SMALL
        glvertex3f -SLENG,-SMALL,SMALL'
'
        GLCOLOR3F 0.0,0.0,1.0
        glnormal3f 0,1,0
        glvertex3f -SLENG,SMALL,SMALL
        glvertex3f  SLENG,SMALL,SMALL       
        glvertex3f  SLENG,SMALL,-SMALL     
        glvertex3f -SLENG,SMALL,-SMALL
glend


    GLVIEWPORT 0,-w_yh*.45, w_xw,w_yh


glbegin gl_quads
GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE2(0))
        GLCOLOR3F 0.0,0.0,0.4
        glnormal3f 0,0,1
        glvertex3f -SLENG,-SMALL,SMALL
        glvertex3f  SLENG,-SMALL,SMALL
        glvertex3f  SLENG, SMALL,SMALL
        glvertex3f -SLENG, SMALL,SMALL

        GLCOLOR3F 0.0,0.0,0.6
        glnormal3f 0,0,-1
        glvertex3f -SLENG, SMALL,-SMALL
        glvertex3f  SLENG, SMALL,-SMALL
        glvertex3f  SLENG,-SMALL,-SMALL
        glvertex3f -SLENG,-SMALL,-SMALL
GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE1(0))
        GLCOLOR3F 0.0,0.0,0.8
        glnormal3f 0,-1,0
        glvertex3f -SLENG,-SMALL,-SMALL
        glvertex3f  SLENG,-SMALL,-SMALL
        glvertex3f  SLENG,-SMALL,SMALL
        glvertex3f -SLENG,-SMALL,SMALL

        GLCOLOR3F 0.0,0.0,1.0
        glnormal3f 0,1,0
        glvertex3f -SLENG,SMALL,SMALL
        glvertex3f  SLENG,SMALL,SMALL       
        glvertex3f  SLENG,SMALL,-SMALL     
        glvertex3f -SLENG,SMALL,-SMALL
glend








        GLVIEWPORT 0,w_yh*.35, w_xw,w_yh
        glEnable(GL_TEXTURE_2D)
        glBindTexture(GL_TEXTURE_2D, tex1)
        GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE3(0))
       
GLBEGIN GL_QUADS
       

        glnormal3f 0,0,1
        glTexCoord2f 0.0, 0.0
        glvertex3f  QO-BLENG,-LARGE,LARGE
        glTexCoord2f 1.0, 0.0
        glvertex3f  QO+BLENG,-LARGE,LARGE
        glTexCoord2f 1.0, 1.0
        glvertex3f  QO+BLENG, LARGE,LARGE
        glTexCoord2f 0.0, 1.0
        glvertex3f  QO-BLENG, LARGE,LARGE
           

        glnormal3f 0,0,-1
        glTexCoord2f 0.0, 0.0
        glvertex3f  QO-BLENG, LARGE,-LARGE
        glTexCoord2f 1.0, 0.0
        glvertex3f  QO+BLENG, LARGE,-LARGE
        glTexCoord2f 1.0, 1.0
        glvertex3f  QO+BLENG,-LARGE,-LARGE
        glTexCoord2f 0.0, 1.0
        glvertex3f  QO-BLENG,-LARGE,-LARGE


        glnormal3f 0,-1,0
        glTexCoord2f 0.0, 0.0
        glvertex3f  QO-BLENG,-LARGE,-LARGE
        glTexCoord2f 1.0, 0.0
        glvertex3f  QO+BLENG,-LARGE,-LARGE
        glTexCoord2f 1.0, 1.0
        glvertex3f  QO+BLENG,-LARGE,LARGE
        glTexCoord2f 0.0, 1.0
        glvertex3f  QO-BLENG,-LARGE,LARGE


        glnormal3f 0,2,0       
        glTexCoord2f 0.0, 0.0
        glvertex3f  QO-BLENG,LARGE,LARGE
        glTexCoord2f 1.0, 0.0
        glvertex3f  QO+BLENG,LARGE,LARGE
        glTexCoord2f 1.0, 1.0
        glvertex3f  QO+BLENG,LARGE,-LARGE
        glTexCoord2f 0.0, 1.0
        glvertex3f  QO-BLENG,LARGE,-LARGE
       
        glnormal3f -1,0,0   
        glvertex3f  QO-BLENG,-LARGE,-LARGE
        glvertex3f  QO-BLENG,-LARGE,LARGE
        glvertex3f  QO-BLENG,LARGE,LARGE
        glvertex3f  QO-BLENG,LARGE,-LARGE

        glnormal3f  1,0,0   
        glvertex3f  QO+BLENG,LARGE,-LARGE
        glvertex3f  QO+BLENG,LARGE,LARGE
        glvertex3f  QO+BLENG,-LARGE,LARGE
        glvertex3f  QO+BLENG,-LARGE,-LARGE
       
GLEND
GLDISABLE(GL_TEXTURE_2D)




GLPOPMATRIX
GLDISABLE GL_LIGHTING

END SUB


SUB STARINIT()

DIM A AS INTEGER

FOR A=0 TO STARS

    VVX(A)=(RND(1)*80)-40
    VVY(A)=(RND(1)*80)-40
    VVZ(A)=(RND(1)*50)-40
NEXT


FOR A=0 TO CUBES
    WHILE(CCX(A)>-5) AND (CCX(A)<5)
    CCX(A)=(RND(1)*80)-40
    WEND
    WHILE(CCY(A)>-5) AND (CCY(A)<5)
    CCY(A)=(RND(1)*80)-40
    WEND
    CCZ(A)=(RND(1)*80)-40
NEXT

END SUB


'===============================================================================
' Initialise OpenGL
'===============================================================================
sub InitOGL()

pfd.cColorBits = 32
    pfd.cDepthBits = 32
pfd.dwFlags    = PFD_SUPPORT_OPENGL + PFD_DOUBLEBUFFER
    IF W_FULLSCREEN=1 THEN hDC = GetDC(CreateWindow( "Edit", "BLAH!", WS_POPUP+WS_VISIBLE+WS_MAXIMIZE, 0 , 0 , 0 , 0, 0, 0, 0, 0))
    IF W_FULLSCREEN<>1 THEN hDC = GetDC(CreateWindow("Edit", "BLAH!", WS_POPUP+WS_VISIBLE+WS_BORDER,W_XO, W_YO, W_XW , W_YH, 0, 0, 0, 0))   
SetPixelFormat ( hDC, ChoosePixelFormat ( hDC, @pfd) , @pfd )
wglMakeCurrent ( hDC, wglCreateContext(hDC) )
    ShowCursor(FALSE)
   
GLLOADIDENTITY
    IF W_FULLSCREEN=1 THEN
        W_XW=GetSystemMetrics(SM_CXSCREEN)
        W_YH=GetSystemMetrics(SM_CYSCREEN)
    END IF
   
    GLVIEWPORT 0, 0, w_xw, w_yh                          '' Reset The Current Viewport
GLMATRIXMODE GL_PROJECTION                          '' Select The Projection Matrix
GLLOADIDENTITY
   
    GLUPERSPECTIVE 105.0, W_XW / W_YH, .1, 100.0       '' Calculate The Aspect Ratio Of The Window
   
GLMATRIXMODE GL_MODELVIEW                           '' Select The Modelview Matrix
GLLOADIDENTITY                                      '' Reset The Modelview Matrix

GLSHADEMODEL GL_SMOOTH                              '' Enable Smooth Shading
GLCLEARCOLOR 0.0, 0.0, 0.0,0
GLCLEARDEPTH 1.0                                    '' Depth Buffer Setup
GLENABLE GL_DEPTH_TEST                              '' Enables Depth Testing
GLDEPTHFUNC GL_LEQUAL                               '' The Type Of Depth Testing To Do
GLHINT GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST    '' Really Nice Perspective Calculations

    GLFOGF(GL_FOG_START,   10.0)
    GLFOGF(GL_FOG_END,     20.0)
    GLFOGI(GL_FOG_MODE,GL_EXP)   
    GLFOGF(GL_FOG_DENSITY,0.05)




'    glEnable(GL_LIGHTING)
glEnable(GL_LIGHT0)
    glLightfv( GL_LIGHT0, GL_AMBIENT, @LightAmbient(0))        '' Load Light-Parameters Into GL_LIGHT1
    glLightfv( GL_LIGHT0, GL_POSITION, @LightPosition(0))   

    GLSHADEMODEL (GL_SMOOTH)

    GLENABLE (GL_CULL_FACE)
    GLCULLFACE(GL_BACK)
   
    GLLINEWIDTH 2
    GLENABLE GL_POINT_SMOOTH
    GLENABLE GL_LINE_SMOOTH
   
    GLBLENDFUNC(GL_ONE_MINUS_CONSTANT_ALPHA,GL_DST_COLOR)   
    GLENABLE GL_SMOOTH
    'GLHINT (GL_LINE_SMOOTH_HINT,GL_NICEST)
end sub



Sub LOADIT()
    dim i as integer
    'Loads Color palette
    for i = 0 to 255
         T_RED( i ) = upp.bmp.pal (i*3) 'Red color
         T_GREEN( i ) = upp.bmp.pal (i*3+1)'Green color
         T_BLUE( i ) = upp.bmp.pal (i*3+2)'Blue color
         
         if T_RED( i) >255 then T_RED( i) =255
         if T_GREEN( i) >255 then T_GREEN( i) =255
         if T_BLUE( i) >255 then T_BLUE( i) =255
         'T_RED( i ) =(T_BLUE(i) Shl 16) Or (T_GREEN(i) Shl 8 )  Or T_RED(i)
T_RED(i)=rgba(T_BLUE( i ),T_GREEN( i ),T_RED( i ),255)
    Next   
   
    for i = 1 to (TEXTUREX*TEXTUREY) - 1
         IMAGE_STORE(i) = upp.bmp.raw (i)
    next 
       
End Sub

Sub DRAWIT(byval xpos as integer,byval ypos as integer)
    dim as uinteger x,y,pixel,mong,y2
    DIM AS UINTEGER PTR PP,PP2
    y2=127
    for Y = 0 to TEXTUREY-1
        PP=@logoBUFFER(Y*TEXTUREX)
        pp2 = @IMAGE_STORE((Y2*TEXTUREX))
        for X = 0 to TEXTUREX-1
            mong = (T_RED(*pp2) )
                *PP = MONG
            PP  +=1
            pp2 +=1
        next
        YPOS=YPOS+1
        Y2=Y2-1
    next
   
End Sub



SUB UTMATRIX(BYVAL CH  AS INTEGER)
    DIM AS INTEGER X,Y
    DIM AS INTEGER BM   
    BM=(CH*64)-64

    FOR Y=1 TO 8
    FOR X=1 TO 8
        LATRIX (X,Y) = FONT((X+((Y-1)*8))+BM)
    NEXT
    NEXT
    MLINE=1
END SUB


SUB LETTERNEW(BYVAL CH  AS INTEGER, BYVAL XX AS DOUBLE,BYVAL YY AS DOUBLE,BYVAL ZZ AS DOUBLE)
    GLPUSHMATRIX
    GLLOADIDENTITY
    GLTRANSLATEF (XX,YY,ZZ)
    DIM AS DOUBLE LX,LY
   
   
    LY=.5
       
    DIM AS INTEGER X,Y
   
    DIM AS INTEGER BM   
    BM=(CH*64)-64

    FOR Y=1 TO 8
        LX=-.045
            GLMATERIALFV (GL_FRONT,GL_AMBIENT_AND_DIFFUSE,@FACE9(0))
IF Y<=3 THEN           GLCOLOR3F 0.5,0.1,0.1
IF Y> 3 and y<= 5 THEN GLCOLOR3F 0.6,0.2,0.2
IF Y>5 THEN            GLCOLOR3F 0.7,0.4,0.3       
    FOR X=1 TO 8
       
        IF FONT((X+((Y-1)*8))+BM) = 1 THEN
           
        GLBEGIN GL_QUADS   
       
            glnormal3f 0,0,1
                       
            glvertex3f LX,LY,0
            glvertex3f LX+.0125,LY,0
            glvertex3f LX+.0125, LY+.0125,0
            glvertex3f LX, LY+.0125,0

        GLEND
       
        END IF
        LX=LX+.0125
    NEXT
        LY=LY-.0125
    NEXT
   
    GLPOPMATRIX
   
END SUB

'space
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0

'!
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0

' "
data 0,1,1,1,0,1,1,1
data 0,1,1,1,0,1,1,1
data 0,1,1,1,0,1,1,1
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0

' #

data 0,0,0,0,0,0,0,0
data 0,1,1,1,0,1,1,0
data 1,1,1,1,1,1,1,1
data 0,1,1,1,0,1,1,0
data 0,1,1,1,0,1,1,0
data 1,1,1,1,1,1,1,1
data 0,1,1,1,0,1,1,0
data 0,0,0,0,0,0,0,0

' $ = £
data 0,0,1,1,1,1,1,0
data 0,1,1,1,0,1,1,1
data 1,1,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 1,1,1,1,1,1,1,1

' %
data 0,0,0,0,0,0,0,0
data 0,1,1,0,0,1,1,1
data 0,1,1,0,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,0,1,1,0
data 1,1,1,0,0,1,1,0
data 0,0,0,0,0,0,0,0
' & = O
data 0,0,0,1,1,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
' '
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0

' (
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,1,1,1,1,0,0,0
data 0,0,1,1,1,1,0,0
' )
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,1,0
data 0,0,0,1,1,1,1,0
data 0,0,1,1,1,1,0,0

' *
data 0,0,0,0,0,0,0,0
data 0,1,0,1,1,0,1,0
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,1,1,1,1,0,0
data 0,1,0,1,1,0,1,0
data 0,0,0,0,0,0,0,0

' +
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0
' ,
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,0,0

' -
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' .
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' /
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 0,0,0,0,0,0,0,0

'0
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,0,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'1
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,1,0
'2
data 0,0,1,1,1,1,1,0
data 0,1,1,1,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,1,1
data 1,1,1,1,1,1,1,1
'3
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,0,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'4
data 1,1,1,0,1,1,1,0
data 1,1,1,0,1,1,1,0
data 0,1,1,1,1,1,1,1
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
'5
data 1,1,1,1,1,1,1,0
data 1,1,1,0,1,1,1,0
data 1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'6
data 1,1,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'7
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,0,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
'8
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'9
data 0,1,1,1,1,1,1,1
data 1,1,0,0,0,1,1,1
data 0,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1

' :
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,1,1,0,0

' ;
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0

' <
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,0,0,0,0,0

' =
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0

' >
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0

' ?
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,1,1,1,1,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0

' @
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,1,1,0
data 0,1,0,1,1,0,1,0
data 0,1,0,0,0,0,1,0
data 0,1,0,1,1,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0

'[]\^_?@

'A
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'B
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
'C
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'D
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
'E
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'F
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0

'G
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0

'H
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1

'I
data 0,1,1,1,1,1,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,1,1,1,1,0,0
'J
data 0,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'K
data 1,1,1,0,1,1,1,0
data 1,1,1,0,1,1,1,0
data 1,1,1,1,1,1,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'L

data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0

'M

data 0,1,1,0,1,1,1,0
data 1,1,1,1,1,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1

'N

data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1

'O
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
'P

data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0

'Q
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,1,0,1,1
data 1,1,1,0,1,1,0,1
data 1,1,1,0,0,1,1,0
data 0,1,1,1,1,1,1,0


'R

data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
'S

data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0

'T
data 0,1,1,1,1,1,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
'U
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0

'V

data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,0,0,1,1,0
data 0,0,1,1,1,1,0,0

'W
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,1,0,1,1,1
data 1,1,1,1,0,1,1,1
data 0,1,1,1,1,1,1,0

'X
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1

'Y
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 1,1,1,0,0,1,1,1
data 0,1,1,1,1,1,1,0

'Z
data 0,1,1,1,1,1,1,1
data 1,1,1,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,1,1,1,1,1,1,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,1,1,1
data 1,1,1,1,1,1,1,0

'[
data 1,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 1,1,1,1,0,0,0,0
'\
data 1,1,0,0,0,0,0,0
data 1,1,1,0,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,1,1,1,0
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,0,1,1
']
data 0,0,0,0,1,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,0,1,1,1
data 0,0,0,0,1,1,1,1
'^
data 0,0,0,1,1,0,0,0
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,1,1,0
data 1,1,1,0,0,1,1,1
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0

'_
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,0


Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: Unleashed Cracktro 7
« Reply #1 on: February 09, 2008 »
Nice intro. I have no speaker at my computer - so
I will have a look at it with sound again later on.

I like the starfield fx and the scroller.

The logo is ok - so is the fx.

What I do not get is the fx at the bottom bar ? What
should that be ? A rotating bar ? (Havent looked at
the source yet).

Nevertheless, K++ for sharing code !
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Online Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17407
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Unleashed Cracktro 7
« Reply #2 on: February 09, 2008 »
Great logo! :)

Thanks for posting this and including the source too!!! Cool one :)
Shockwave ^ Codigos
Challenge Trophies Won:

Offline WidowMaker [retired]

  • %010101
  • Atari ST
  • ***
  • Posts: 134
  • Karma: 21
  • %010101
    • View Profile
Re: Unleashed Cracktro 7
« Reply #3 on: February 09, 2008 »
Quote
The logo is ok - so is the fx.

What I do not get is the fx at the bottom bar ? What
should that be ? A rotating bar ? (Havent looked at
the source yet).

No, the logo is much, much better than ok :P In my opinion anyway.. The artist worked for a long time to make such a nice picture, thank you illusion maker.

The effect at the bottom is =definately= a rotating bar by the way, what else did you think it could be?

Thanks for the karma anyway.


Offline Positron

  • C= 64
  • **
  • Posts: 93
  • Karma: 7
    • View Profile
Re: Unleashed Cracktro 7
« Reply #4 on: February 09, 2008 »
Realy nice intro and I like the logo very much.
Only problem it don't runs smooth on my computer. The scrolly and the starfield jerking.



Online Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17407
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Unleashed Cracktro 7
« Reply #5 on: February 09, 2008 »
Hmm. He seems to have used the timer as a variable here;

   YR = 90 + 15*SIN(TIMER*2)

Maybe it happens more often in the code, I haven't looked properly but this could cause some small glitches depending on what else was going on at the time.
Shockwave ^ Codigos
Challenge Trophies Won:

Offline janer

  • C= 64
  • **
  • Posts: 27
  • Karma: 1
    • View Profile
    • dAWNcreations
Re: Unleashed Cracktro 7
« Reply #6 on: February 09, 2008 »
very nice one... :) :clap:
dAWN!

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: Unleashed Cracktro 7
« Reply #7 on: February 09, 2008 »
@Widowmaker:

I judged too fast. Watched it again on a proper computer
now with tune. The quality of the logo is better than I
though - although it is not my personal taste. Furthermore,
I did not recognized the flying cubes in the starfield on the
laptop. Now I can see them and they rock. Also the rotating
bar at the bottom now looks realistic. Looked strange on
the laptop - that's why I asked.

Good production!
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline Maxx

  • C= 64
  • **
  • Posts: 57
  • Karma: 12
    • View Profile
Re: Unleashed Cracktro 7
« Reply #8 on: February 09, 2008 »
Hmm. He seems to have used the timer as a variable here;

   YR = 90 + 15*SIN(TIMER*2)

Maybe it happens more often in the code, I haven't looked properly but this could cause some small glitches depending on what else was going on at the time.

i did get some minor glitches just little slight pauses acasionally .

Verygood appart from that  :goodpost:
Proud Member Of Dawn Creations
Challenge Trophies Won:

Offline WidowMaker [retired]

  • %010101
  • Atari ST
  • ***
  • Posts: 134
  • Karma: 21
  • %010101
    • View Profile
Re: Unleashed Cracktro 7
« Reply #9 on: February 09, 2008 »
Ah shit, I should have fixed that problem.. What a stupid mistake!
Sorry for the glitches.


Offline Rbz

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 2756
  • Karma: 493
    • View Profile
    • https://www.rbraz.com/
Re: Unleashed Cracktro 7
« Reply #10 on: February 10, 2008 »
Nice one, works fine here  ;D
Challenge Trophies Won: