Author Topic: OgreMagic VS Tiny PCT  (Read 3469 times)

0 Members and 1 Guest are viewing this topic.

Offline Emil_halim

  • Atari ST
  • ***
  • Posts: 248
  • Karma: 21
    • View Profile
    • OgreMagic Library
OgreMagic VS Tiny PCT
« on: March 07, 2007 »
Hi shochy

I have made a little change im my OgreMagic library for allowing mix your software work which uses Tiny PCT  to be  combine with my OgerMagic Library, so that I can include your  code as is with a small change ( change the Array Integer  Buffer to a pointer of Integer) then I can make some OgreMagic effect , such as scaling ,fading , rotating your entire work.

In a word you can think it as copy your work to a n OgreMagic sprite .

The good news is there is no big drop in the frame per second , just the drop ranges from 10 to 15 FPS in my system , and I thinks it is a reasonable result.

Here are 2 screenshots  , the first on is your original program , and the second on is mine





Here is the source code , sorry it is big code.

Code: [Select]
''------------------------------------------------------------------------------
''
''              Magic Library For Ogre
''                beta version 0.40
''                  by Emil Halim
''
''        Name    :  test
''        Date    :  20/02/2007
''        Purpose :  testing OgreMagic VS Tiny PCT
''
''       website  :  http://www.freewebs.com/ogremagic/index.htm
''
''------------------------------------------------------------------------------

OPTION EXPLICIT

#include once "windows.bi"
#include once "win/d3d9.bi"
#include once "win/d3dx9.bi"

#include once "MagicLibrary.bi"

''-----------------------------------------------------------------------------
'' GLOBALS
''-----------------------------------------------------------------------------
dim shared as HWND              g_hWnd         = NULL
dim shared as LPDIRECT3D9       g_pD3D         = NULL
dim shared as LPDIRECT3DDEVICE9 g_pd3dDevice   = NULL

dim shared as SpriteData       ptr   SpriteBuffer
dim shared as HLSLProgramData  ptr   HLSLProgram

'-------------------------------------------------------------------------
' Variable Definitions.
'-------------------------------------------------------------------------
        Dim Shared LP As Integer: ' Used In Loops.
        Dim Shared As Integer ptr Buffer '( 640 * 480 ):' Screen Buffer.
        DIM SHARED AS INTEGER CPAL (255):' Holds Palette.
        Dim Shared GADD As Integer:' General Purpose Variable Just Ticks Up.
        Dim Shared SMSIN As DOUBLE:' Holds X Movement.
        DIM SHARED SMCOS As DOUBLE:' Holds Y Movement.
        DIM SHARED ZMCOS As DOUBLE:' Holds Z Movement.
        DIM SHARED STPTR AS INTEGER:' Pointer Used When Looping Through Stars.
        DIM SHARED STST AS INTEGER:' Holds Deepest Star Pos.
        DIM SHARED A AS INTEGER:' Holds Colour Multiplier.
       
'----------------------------
'---    Set Up Starfield; ---
'----------------------------

        Dim Shared STARS As Integer=1500:' Holds Max Number Of Stars
        Dim Shared INZP As Double:' Used When Defining Stars To Hold ZP
        Dim Shared INZPA As Double:' Used When Defining Stars (ZP Increment)
        Dim Shared TX AS INTEGER:' Holds Translated Star X
        Dim Shared TY As Integer:' Holds Translated Star Y
        dim shared customcop (640*480) as integer:' Holds Custom Fake "Copperlist"
       
        DIM SHARED STX (1 TO STARS) AS DOUBLE: ' Hold X Pos Of Star
        DIM SHARED STY (1 TO STARS) AS DOUBLE: ' Hold Y Pos Of Star
        DIM SHARED STZ (1 TO STARS) AS DOUBLE: ' Hold Z Pos Of Star
       
        '-----------------------
        ' Generate A Palette;---
        '-----------------------
        DIM SHARED R1,G1,B1 AS integer
       
        '===============================================================================
        '       Scroller Stuff;
        '===============================================================================
        DIM SHARED SCPTR AS INTEGER:' Letter Pointer In Scroll String.
        DIM SHARED SCOFF AS DOUBLE:' Offset Used To Scroll Text
       
        Dim Shared scrolltext as string:' Holds Text.
       
        '---------------
        '-Debug Stuff; -
        '---------------
        dim shared oldtime,newtime as double
        dim shared TST as string
        dim shared ticks as integer
       
        '--------------------------
        ' Read In Our Star Bobs;---
        '--------------------------
        dim shared BOB (36*5) AS INTEGER
       
        '-----------------------------------------------------------------
        'Read In Our Font;
        '-----------------------------------------------------------------
        dim shared FONT (81 * 59) as integer

''-----------------------------------------------------------------------------
'' PROTOTYPES
''-----------------------------------------------------------------------------
declare function WindowProc( byval hWnd as HWND, byval msg as UINT, byval wParam as WPARAM, byval lParam as LPARAM ) as LRESULT
declare sub init()
declare sub shutDown()
declare sub render()


        Declare Sub STARFIELD()
        DECLARE SUB DRAWBOB (BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL BNM AS INTEGER , BYVAL CL AS INTEGER)
        Declare Sub Clearscreen()
        declare sub DBFTEXT(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL CH AS INTEGER , BYVAL CLR AS INTEGER)
        DECLARE SUB MESSAGE()
        declare SUB Millisecs()

''-----------------------------------------------------------------------------
'' Name: init()
'' Desc: Initializes Direct3D under DirectX 9.0
''-----------------------------------------------------------------------------
sub init( )
    g_pD3D = Direct3DCreate9( D3D_SDK_VERSION )

    dim as D3DDISPLAYMODE d3ddm

    IDirect3D9_GetAdapterDisplayMode( g_pD3D, D3DADAPTER_DEFAULT, @d3ddm )

    dim as D3DPRESENT_PARAMETERS d3dpp
    clear( d3dpp, 0, len(d3dpp) )

    d3dpp.Windowed               = false 'TRUE
    d3dpp.SwapEffect             = D3DSWAPEFFECT_DISCARD
    d3dpp.BackBufferFormat       = d3ddm.Format
    d3dpp.EnableAutoDepthStencil = TRUE
    d3dpp.AutoDepthStencilFormat = D3DFMT_D16
    d3dpp.PresentationInterval   = D3DPRESENT_INTERVAL_IMMEDIATE
   
    d3dpp.BackBufferWidth = 640
    d3dpp.BackBufferHeight = 480
    d3dpp.BackBufferCount = 2
   

    IDirect3D9_CreateDevice( g_pD3D, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd, _
                          D3DCREATE_HARDWARE_VERTEXPROCESSING, _
                          @d3dpp, @g_pd3dDevice )
   
    IDirect3DDevice9_SetRenderState(g_pd3dDevice,D3DRS_LIGHTING, FALSE)
IDirect3DDevice9_SetRenderState(g_pd3dDevice,D3DRS_CULLMODE, D3DCULL_NONE)

dim as D3DXMATRIX mProjection
    D3DXMatrixPerspectiveFovLH( @mProjection, D3DXToRadian( 45.0f ), 1.0f, 1.0f, 100.0f )
    IDirect3DDevice9_SetTransform(g_pd3dDevice, D3DTS_PROJECTION, @mProjection )                     
   
    '' Initial Magic Library here
    InitialMagicLibrary(g_pd3dDevice,640, 480)
   
    ML_SetMediaDirectory("../MagicMedia/")
   
    SpriteBuffer = ML_CreateStaticSprite(640,480)
   
    HLSLProgram = ML_CreateHLSLProgram() 
    ML_EditPixelProgram(HLSLProgram)                               
    ML_AddToProgram("sampler2D tex0;                                          ")
    ML_AddToProgram("float4   main(  float2 TexCoord : TEXCOORD0) : COLOR0    ")
    ML_AddToProgram("{                                                        ")
    ML_AddToProgram("       float4 col = tex2D( tex0, TexCoord);              ")
    ML_AddToProgram("       return float4(col.rgb,1);                         ")
    ML_AddToProgram("}                                                        ")
    ML_CompilePixelProgram(HLSLProgram,"main")     
   
     
        '--------------------------
        ' Read In Our Star Bobs;---
        '--------------------------
       
       
        FOR LP=1 TO (36*5)
            READ BOB(LP)
        NEXT
       
        '-----------------------------------------------------------------
        'Read In Our Font;
        '-----------------------------------------------------------------
       
        FOR LP=1 TO (81*59)
                READ FONT(LP)
        NEXT
       
        '----------------------------
        '---    Set Up Starfield; ---
        '----------------------------
       
       
       
        INZP=30:' Initial Z = 0.
        INZPA = 30 / STARS:' Calculate Increment.
        STPTR=1:' Holds Star Number During Starfield Sub Loop.
        STST=1:' Used To Store Starting Star (deepest).
        For LP = 1 To Stars
             STX (LP) = ((RND(1) * 20000)-10000 )
             STY (LP) = ((RND(1) * 20000)-10000 )
             STZ (LP) = INZP
             INZP=INZP-INZPA
        next
     
        '-----------------------
        ' Generate A Palette;---
        '-----------------------
       
        FOR LP=1 TO 255
            CPAL(LP) =RGB(R1,G1,B1)
            IF R1<255 THEN R1=R1+1
            IF G1<255 THEN G1=G1+1
            IF B1<254 THEN B1=B1+2
           
        NEXT LP
       
        '------------------------------
        ' Generate Fake Copperlist; ---
        '------------------------------
       
        for LP=1 to 640*480
            customcop(LP)=&h020004
            SELECT CASE LP
            CASE 0 TO 640*10
                customcop(LP)=&h0a000b
            CASE 640*10 TO 640*20
                customcop(LP)=&h0c000d
            CASE 640*20 TO 640*30
                customcop(LP)=&h0e000f
            CASE 640*30 TO 640*40
                customcop(LP)=&h110012
            CASE 640*40 TO 640*50
                customcop(LP)=&h130014
            CASE 640*470 TO 640*480
                customcop(LP)=&h0a000b
            CASE 640*460 TO 640*470
                customcop(LP)=&h0c000d
            CASE 640*450 TO 640*460
                customcop(LP)=&h0e000f
            CASE 640*440 TO 640*450
                customcop(LP)=&h110012
            CASE 640*430 TO 640*440
                customcop(LP)=&h130014                                   
            END SELECT
        next
       
        '=======================================================================
        'Our Text;
        '=======================================================================
        scrolltext="                                                                 "
        scrolltext=scrolltext+"                                                           "
        scrolltext=scrolltext+"DARK BIT FACTORY ARE BACK WITH A LITTLE INTRO..........       "
        scrolltext=scrolltext+"THIS ONE WAS CODED BY SHOCKWAVE!!          ALTHOUGH IT LOOKS PRETTY "
        scrolltext=scrolltext+"BORING IT IS QUITE COOL.....                      IT IS ALL MADE USING THE TINYPTC LIB, "
        scrolltext=scrolltext+"WHICH IS IN ITS SELF A PAIN IN THE ASS!!                 EVERYTHING YOU SEE "
        scrolltext=scrolltext+"HERE IS HARD CODED...                   EVEN THE FONT IS CONSTRUCTED IN THE SOURCE!!! "
        scrolltext=scrolltext+"...OUT OF BINARY...             AAAARRRGGGHHHH!!!!            FOR ALL THE HARD WORK IT COMPRESSES DOWN TO ABOUT 15KB SO THAT CAN'T BE TOO BAD!"
        scrolltext=scrolltext+"         OH WELL....        I GUESS I HAD BETTER ADD SOME MORE EFFECTS......   AND THEN DO SOMETHING USEFUL LIKE SOME OPENGL STUFF "
        scrolltext=scrolltext+"INSTEAD??!!       THATS ALL FOR NOW.........              "
        scrolltext=scrolltext+"                                                           "
        scrolltext=scrolltext+"                                                           "
        scrolltext=scrolltext+"                                                           "
        SCOFF=0
        SCPTR=0
       
        '---------------
        '-Debug Stuff; -
        '---------------
        ticks=0
       
        oldtime=timer
       
       
end sub

''-----------------------------------------------------------------------------
'' Name: render()
'' Desc: Render or draw our scene to the monitor.
''-----------------------------------------------------------------------------
sub render( )
    IDirect3DDevice9_Clear( g_pd3dDevice, 0, NULL, D3DCLEAR_TARGET or D3DCLEAR_ZBUFFER, _
                            D3DCOLOR_COLORVALUE(0.0f,0.0f,0.0f,1.0f), 1.0f, 0 )
                           
           
           Buffer = ML_StartDrawingToSprite(SpriteBuffer)
           
           Clearscreen():' Clear The Screen.
           STARFIELD():' Do The Starfield. 
           '----------------------------
           ' Draw White Lines On Screen;
           '----------------------------
           FOR LP = 0 TO 639
               Buffer [(50*640) +LP]=RGB (155,55,155)
               Buffer [(430*640)+LP]=RGB (155,55,155)
           NEXT
           MESSAGE():' Do Scroller.
           MILLISECS()
       
           ML_StopDrawingToSprite(SpriteBuffer)
           
           ticks=ticks+1                 
                           
''
'' begin drawing
''
IDirect3DDevice9_BeginScene(g_pd3dDevice)
   
   
    '' Magic Stuff
    ''
        ML_UseOrthogonalView
       
        ML_SetAlpha(1)
        ML_SetColor(255,255,255)
       
        ML_SetBlendMode(ALPHABLEND)
       
        ML_SetScale(0.75,0.75)
        ML_StartShaderProgram(HLSLProgram) 
        ML_SetSpriteTexture(SpriteBuffer)
        ML_DrawSprite(SpriteBuffer,320,240)
        ML_StopShaderProgram()

        ML_UsePerspectiveView
   
''
'' end drawing
''
IDirect3DDevice9_EndScene(g_pd3dDevice)
    IDirect3DDevice9_Present(g_pd3dDevice, NULL, NULL, NULL, NULL )
   
end sub


''-----------------------------------------------------------------------------
'' Name: WinMain()
'' Desc: The application's entry point
''-----------------------------------------------------------------------------
function WinMain(byval hInstance as HINSTANCE, _
byval hPrevInstance as HINSTANCE, _
byval lpCmdLine as string, _
byval nCmdShow as integer _
) as integer

dim as WNDCLASSEX winClass
dim as MSG        uMsg

with winClass
.lpszClassName = @"MY_WINDOWS_CLASS"
.cbSize        = len(WNDCLASSEX)
.style         = CS_HREDRAW or CS_VREDRAW
.lpfnWndProc   = @WindowProc
.hInstance     = hInstance
.hIcon        = LoadIcon(hInstance, cast(LPCTSTR,IDI_APPLICATION))
    .hIconSm    = LoadIcon(hInstance, cast(LPCTSTR,IDI_APPLICATION))
.hCursor       = LoadCursor(NULL, IDC_ARROW)
.hbrBackground = cast(HBRUSH,GetStockObject(BLACK_BRUSH))
.lpszMenuName  = NULL
.cbClsExtra    = 0
.cbWndExtra    = 0
end with

if( RegisterClassEx( @winClass ) = FALSE ) then
return E_FAIL
end if

g_hWnd = CreateWindowEx( NULL, "MY_WINDOWS_CLASS", _
                             "Direct3D (DX9) - Primitive Types", _
     WS_OVERLAPPEDWINDOW or WS_VISIBLE, _
         0, 0, 640, 480, NULL, NULL, hInstance, NULL )

if( g_hWnd = NULL ) then
return E_FAIL
end if

    ShowWindow( g_hWnd, nCmdShow )
    UpdateWindow( g_hWnd )

init()

do while( uMsg.message <> WM_QUIT )
if( PeekMessage( @uMsg, NULL, 0, 0, PM_REMOVE ) ) then
TranslateMessage( @uMsg )
DispatchMessage( @uMsg )
        else
    render()
end if
loop

shutDown()

    UnregisterClass( "MY_WINDOWS_CLASS", winClass.hInstance )

return uMsg.wParam
end function

''-----------------------------------------------------------------------------
'' Name: WindowProc()
'' Desc: The window's message handler
''-----------------------------------------------------------------------------
function WindowProc( byval hWnd as HWND, _
byval msg as UINT, _
byval wParam as WPARAM, _
byval lParam as LPARAM _
   ) as LRESULT

    select case ( msg )
        case WM_KEYDOWN
select case( wParam )
case VK_ESCAPE
PostQuitMessage(0)

end select

case WM_CLOSE
PostQuitMessage(0)

        case WM_DESTROY
            PostQuitMessage(0)

case else
return DefWindowProc( hWnd, msg, wParam, lParam )
end select

return 0
end function

''-----------------------------------------------------------------------------
'' Name: shutDown()
'' Desc: Release all Direct3D resources.
''-----------------------------------------------------------------------------
sub shutDown( )

    if( g_pd3dDevice <> NULL ) then
        IDirect3DDevice9_Release(g_pd3dDevice)
    end if

    if( g_pD3D <> NULL ) then
        IDirect3D9_Release( g_pD3D )
    end if
end sub



'-------------------------------------------------------------------------------
' Display FPS.
'-------------------------------------------------------------------------------
SUB Millisecs()
    dim t=timer

if  t-oldtime >=1 then
    newtime = ticks
    ticks=0
    oldtime=timer
end if

    TST = str( (newtime) )
    TST = "FPS "+TST
    for LP=1 to len(tst)
        dim CH=(ASC(MID(TST,LP,1)))-31
        DBFTEXT((LP*10),1,CH,&h443333)
    NEXT
   
end sub
'-------------------------------------------------------------------------------
' Scrolling Message Routine By Shockwave / DBF
'-------------------------------------------------------------------------------
SUB MESSAGE()
    dim hop,ecl as integer
   
    HOP=0:' Used to jumpto next letter pos
    ECL=0:' Used For Colour.
   
    FOR LP=1 TO 66
        IF LP<20 THEN ECL=ECL+10:' Change Colours
        IF LP>46 THEN ECL=ECL-10
       
        dim CH=(ASC(MID(SCROLlTEXT,LP+SCPTR,1)))-31:' Get Ascii for char
        '-----------------------------------------------------------------------
        ' Call DBF Custom Text Routine;
        '-----------------------------------------------------------------------
        DBFTEXT (HOP-scoff,455+12*SIN((LP+GADD)/30),CH,RGB(ECL+30,ECL,ECL+40))
        HOP=HOP+10
    NEXT
    '--------------------------------
    'Scroll And Update If Needed; ---
    '--------------------------------
    scoff=scoff+1
    if scoff> 10 then
        scptr=scptr+1
        if scptr>(len(scrolltext)-66) then scptr=0
        scoff=scoff-10
    end if
   
END SUB

'---------------------------------------
'---    MULTI DIRECTIONAL STARFIELD. ---
'---------------------------------------

SUB STARFIELD()
    GADD=GADD+1
    dim bb as integer
    '---------------
    ' Movements; ---
    '---------------
   
    SMSIN=30*SIN(GADD/470)
    SMCOS=40*COS(GADD/777)
    ZMCOS=0.1*COS(GADD/907)
   
    '---------------------------
    ' Get Deepest Star First;---
    '---------------------------
   
    STPTR=STST
   
    for LP = 1 To STARS
       
        '---------------------------------
        ' Translate Star To 2D Co-Ords ---
        '---------------------------------
       
        TX = INT((STX(STPTR) / STZ(STPTR))+320)
        TY = INT((STY(STPTR) / STZ(STPTR))+240)
       
        '--------------------
        ' Is It Onscreen? ---
        '--------------------
       
        if TX>-5 and TX<639 AND TY>-5 And TY<479 THEN
           
            '--------------------------------
            ' Calculate Colour Multiplier;---
            '--------------------------------
           
            A=INT(-STZ(STPTR) + 32) shl 1
            '-------------------------------------
            ' Draw Bob Size According To Depth;---
            '-------------------------------------
            bb=((int(STZ(STPTR)))/6)+1
            'if bb<1 then bb=1
           
            DRAWBOB (TX,TY,5,A)
            'IF STZ(STPTR) < 10 THEN DRAWBOB (TX,TY,BB,A)
            'IF STZ(STPTR >= 10) AND (STZ(STPTR) <20 ) THEN DRAWBOB (TX,TY,2,A)
            'IF STZ(STPTR) >= 20 THEN DRAWBOB (TX,TY,1,A)
        ENDIF
       
        '---------------
        ' Move Star; ---
        '---------------
       
        STX(STPTR)=STX(STPTR)+SMSIN
        STY(STPTR)=STY(STPTR)+SMCOS
        STZ(STPTR)=STZ(STPTR)+ZMCOS
       
        '------------------
        ' Bounds Checks;---
        '------------------
        ' X Checks;
        IF SMSIN>0 THEN
            IF STX(STPTR)>=10000 THEN STX(STPTR)=STX(STPTR)-20000
        ENDIF
        IF SMSIN<0 THEN
            IF STX(STPTR)<=-10000 THEN STX(STPTR)=STX(STPTR)+20000
        ENDIF
        ' Y Checks;
        IF SMCOS>0 THEN
            IF STY(STPTR)>=10000 THEN STY(STPTR)=STY(STPTR)-20000
        ENDIF
        IF SMCOS<0 THEN
            IF STY(STPTR)<=-10000 THEN STY(STPTR)=STY(STPTR)+20000
        ENDIF
        ' Z Checks;
        IF ZMCOS>0 THEN
            IF STZ(STPTR)>=30 THEN STZ(STPTR)=STZ(STPTR)-30
            STST=STST-1
            IF STST<1 THEN STST=STARS
        ENDIF
        IF ZMCOS<0 THEN
            IF STZ(STPTR)<=0 THEN STZ(STPTR)=STZ(STPTR)+30
            STST=STST+1
            IF STST>STARS THEN STST=1
           
        ENDIF
        STPTR=STPTR+1:' Update Pointer.
        IF STPTR>STARS THEN STPTR=1:'Bounds Check.
    next
   
   
END SUB

'-------------------------------------------------------------------------
'Sub To Draw A Letter AnyWhere On The Screen (With Clipping);
'-------------------------------------------------------------------------
sub DBFTEXT(BYVAL BX AS INTEGER , BYVAL BY AS INTEGER , BYVAL CH AS INTEGER , BYVAL CLR AS INTEGER)
dim blx,bly as integer
    '---------------------------------
    'Calculate Offset In Font Data;---
    '---------------------------------
    dim bm=(ch*81)-81
    FOR BLY=0 TO 8
    FOR BLX=1 TO 9
        '--------
        'Clip;---
        '--------
        IF (BX+BLX>0) AND (BX+BLX<639) AND (BY+BLY>0) AND (BY+BLY<479) THEN
           
            '----------------------------------------------------
            'Draw Pixel In Buffer If Onscreen And If Binary 1 ---
            '----------------------------------------------------
           
            dim MM= FONT(((BLY*9)+BLX)+BM)
            IF MM >0 THEN BUFFER [((BY+BLY)*640)+BX+BLX]=CLR
        END IF
    NEXT
    NEXT
END SUB

'-------------------------------------------------------------------------
' Sub To Draw A Bob Anywhere On The Screen;
'-------------------------------------------------------------------------

SUB DRAWBOB (BYVAL BX AS INTEGER , BYVAL BY AS INTEGER, BYVAL BNM AS INTEGER , BYVAL CL AS INTEGER)
   
    DIM BLX , BLY AS INTEGER
   
    '-----------------------
    'Set Offset In Bob Bank;
    '-----------------------
    dim BM=(BNM*36)-36
    dim MM
    FOR BLY=0 TO 5
    FOR BLX=1 TO 6
        '---------
        'CLIPPING;
        '---------
        IF (BX+BLX>0) AND (BX+BLX<639) AND (BY+BLY>0) AND (BY+BLY<479) THEN
            '-------------
            'COLOUR VALUE;
            '-------------
            if (by+BLY> 50) and (by+bly<430) then
                MM= (BOB(((BLY*6)+BLX)+BM))*CL
            else
                MM= ((BOB(((BLY*6)+BLX)+BM))*CL) shr 1
            endif
            if MM>255 then MM=255
            '------------------
            'DRAW PIXEL OF BOB;
            '------------------
            IF MM >0 THEN BUFFER [((BY+BLY)*640)+BX+BLX]=CPAL(MM)
        END IF
    NEXT
    NEXT

END SUB

'--------------------------------------------------------
' Clear Out Old Screen Buffer With Our Fake "Copperlist"
'--------------------------------------------------------

Sub ClearScreen()
Dim i as integer
for i = 0 to 640*480
    buffer[i]=customcop(i)
next
End Sub

   ''
''
''
end WinMain( GetModuleHandle( null ), null, Command( ), SW_NORMAL )


'--------------------------------------------------------
' Our "Bobs"
' 0's are not blitted.
' The Higher The Number, The Brighter The Pixel.
'--------------------------------------------------------

'tiny
data 0,0,0,0,0,0
data 0,0,0,0,0,0
data 0,0,1,1,0,0
data 0,0,1,1,0,0
data 0,0,0,0,0,0
data 0,0,0,0,0,0
'small
data 0,0,0,0,0,0
data 0,0,1,1,0,0
data 0,1,2,2,1,0
data 0,1,2,2,1,0
data 0,0,1,1,0,0
data 0,0,0,0,0,0
'medium
data 0,0,1,1,0,0
data 0,0,2,2,0,0
data 1,2,3,3,2,1
data 1,2,3,3,2,1
data 0,0,2,2,0,0
data 0,0,1,1,0,0
'large
data 0,0,1,1,0,0
data 0,2,3,3,2,0
data 1,3,4,4,3,1
data 1,3,4,4,3,1
data 0,2,3,3,2,0
data 0,0,1,1,0,0
'Maximum
data 0,1,2,2,1,0
data 1,2,3,3,2,1
data 2,3,5,5,3,2
data 2,3,5,5,3,2
data 1,2,3,3,2,1
data 0,1,2,2,1,0

'==============================================================================
' Binary Font By Shockwave / DBF; (59 Chars)
'==============================================================================

'space
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'!
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
'"
data 0,1,1,0,1,1,0,0,0
data 0,1,1,0,1,1,0,0,0
data 0,1,1,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'#
data 0,0,0,0,0,0,0,0,0
data 0,1,1,0,0,0,1,1,0
data 1,1,1,1,1,1,1,1,1
data 0,1,1,0,0,0,1,1,0
data 0,1,1,0,0,0,1,1,0
data 0,1,1,0,0,0,1,1,0
data 1,1,1,1,1,1,1,1,1
data 0,1,1,0,0,0,1,1,0
data 0,0,0,0,0,0,0,0,0
'£
data 0,0,1,1,1,1,0,0,0
data 0,1,1,1,1,1,0,0,0
data 0,1,1,0,0,0,0,0,0
data 0,1,1,0,0,0,0,0,0
data 0,1,1,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0,0
data 0,1,1,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,0
'%
data 0,0,0,0,0,0,0,0,0
data 0,1,1,0,0,0,0,0,0
data 0,1,1,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,1,1,0
data 0,0,0,0,0,0,1,1,0
data 0,0,0,0,0,0,0,0,0
'&
data 0,0,0,1,1,1,0,0,0
data 0,0,1,1,1,1,1,0,0
data 0,0,1,1,0,1,1,0,0
data 0,0,0,1,1,1,0,0,0
data 0,0,1,1,0,1,1,0,0
data 0,1,1,0,0,1,1,1,1
data 0,1,1,1,0,0,1,1,0
data 0,0,1,1,1,1,1,0,0
data 0,0,0,0,1,1,0,0,0
''
data 0,1,1,0,0,0,0,0,0
data 0,1,1,0,0,0,0,0,0
data 0,1,1,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'(
data 0,0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,1,1,0
data 0,0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,1,1,0
data 0,0,0,0,0,1,1,1,0
')
data 0,1,1,1,0,0,0,0,0
data 0,1,1,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,1,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0,0
'*
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'+
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
''
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
'-
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'.
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
'/
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'0
data 0,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'1
data 0,0,0,1,1,0,0,0,0
data 0,0,1,1,1,0,0,0,0
data 0,0,1,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,1,1,1,1,1,0,0,0
data 0,1,1,1,1,1,0,0,0
'2
data 0,0,1,1,1,1,1,1,0
data 0,0,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,1,1,1,1,1,1,1,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
'3
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,1,1,1,1,0
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,0
'4
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,1,1,0,0,0
data 1,1,0,0,1,1,0,0,0
data 1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,1,1,0,0
data 0,0,0,0,0,1,1,0,0
data 0,0,0,0,0,1,1,0,0
data 0,0,0,0,0,1,1,0,0
'5
data 0,1,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0,0
data 0,1,1,0,0,0,0,0,0
data 0,1,1,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,0
'6
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,0
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'7
data 0,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,1,1,1,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,1,1,0
data 0,0,0,0,0,0,1,1,0
data 0,0,0,0,0,0,1,1,0
'8
data 0,0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,1,0
data 0,1,1,0,0,0,1,1,0
data 0,0,1,1,1,1,1,0,0
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'9
data 0,0,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1
data 0,1,1,0,0,0,0,1,1
data 0,1,1,0,0,0,0,1,1
data 0,0,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
':
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
';
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'<
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'=
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'>
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'?
data 0,0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,1,0
data 0,0,0,0,0,0,1,1,0
data 0,0,0,1,1,1,1,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0,0
'@
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0,0
'a
data 0,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,0
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
'b
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,0
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
'c
data 0,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1
'd
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,0
'e
data 0,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,1,1,1,1,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1
'f
data 0,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,1,1,1,1,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
'g
data 0,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'h
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
'i
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
'j
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,0
'k
data 1,1,0,0,0,0,1,1,0
data 1,1,0,0,0,0,1,1,0
data 1,1,0,0,0,0,1,1,0
data 1,1,0,0,0,0,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
'l
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,1
'm
data 0,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,1,0,0,1,1
data 1,1,0,0,1,0,0,1,1
data 1,1,0,0,1,0,0,1,1
data 1,1,0,0,1,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
'n
data 0,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1

'o
data 0,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'p
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
'q
data 0,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,1,0,1,1
data 1,1,0,0,0,0,1,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'r
data 1,1,1,1,1,1,1,1,0
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,0
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
's
data 0,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,0,0,0,0,0,0,0
data 1,1,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,0
't
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
data 0,0,0,0,1,0,0,0,0
'u
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'v
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,1,0,0,0,1,1,1
data 0,1,1,1,1,1,1,1,0
data 0,0,1,1,1,1,1,0,0
'w
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,1,0,0,1,1
data 1,1,0,0,1,0,0,1,1
data 1,1,0,0,1,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 0,1,1,1,1,1,1,1,0
'x
data 0,1,1,0,0,0,1,1,0
data 0,1,1,0,0,0,1,1,0
data 0,1,1,0,0,0,1,1,0
data 0,1,1,0,0,0,1,1,0
data 0,1,1,1,1,1,1,1,0
data 1,1,1,0,0,0,1,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
'y
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 1,1,0,0,0,0,0,1,1
data 0,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,0,1,1
data 0,0,0,0,0,0,0,1,1
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,0
'z
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1
data 0,0,0,0,0,0,1,1,1
data 0,0,0,0,1,1,1,0,0
data 0,0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0,0
data 1,1,1,0,0,0,0,0,0
data 1,1,1,1,1,1,1,1,1
data 1,1,1,1,1,1,1,1,1

'===============================================================================
'                                     ***END***
'===============================================================================

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: OgreMagic VS Tiny PCT
« Reply #1 on: March 07, 2007 »
Well that certainly makes the routines easier to port.. I guess that what you are doing is treating the buffer as a sprite :)

How I wish that the exe size would be small enough for me to use this! Ie. Less than 100kb!

Good work Emil. You've impressed me again.
Btw, where did you find that old source of mine? It's embarrasingly bad!
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Clyde

  • A Little Fuzzy Wuzzy
  • DBF Aficionado
  • ******
  • Posts: 7271
  • Karma: 71
    • View Profile
Re: OgreMagic VS Tiny PCT
« Reply #2 on: March 07, 2007 »
This looks amazingly cool & welldone dude, but I'm having a few teething troubles getting the source to run properlly, as it's having difficulty in finding the includes.
Still Putting The IT Into Gravy
If Only I Knew Then What I Know Now.

Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: OgreMagic VS Tiny PCT
« Reply #3 on: March 07, 2007 »
I think that Emil has made an installer for ogermagic that will take care of all that problem for you. I also had the same problems, so I am waiting for this installer so that I can just load the source into my ide..
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Emil_halim

  • Atari ST
  • ***
  • Posts: 248
  • Karma: 21
    • View Profile
    • OgreMagic Library
Re: OgreMagic VS Tiny PCT
« Reply #4 on: March 07, 2007 »
Thanks guys. :)

Already  I have made an OgreMagic installer but I am waiting for final form of my library then I will distribute it.

Shocky , I have found that old code in my computer , may be I got it more than 7 months ago in dbf forum.

The idea is that , you must create an empty sprite which has the desired buffer length  the when you want to draw to it you must lock the sprite to obtain a butter pointer then use this pointer to fill the buffer as you did with your software code then unlock the sprite then you can do what you want with that sprite.

Now I am working in simplify tasks by using some similar tiny PCT functions but with deferent parameters.   

About the size of file, after some thinking I have decided that I will use a DLL ,OgreMagic.DLL, instead of static library because I wont my library work with as many language as possible , and there will be no problem  in send examples because the installer will copy the needed dlls when installation process.     

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: OgreMagic VS Tiny PCT
« Reply #5 on: March 07, 2007 »
Yes, this will work as long as the people who are running the program have the dll installed. Unfortunately if they haven't it is still a massive ile for a tiny intro that should only be 100kb at the most.

I really do hope that you will maybe think of having a static library in the future :) I understand that you just want speed and compatibility for now though.
Shockwave ^ Codigos
Challenge Trophies Won: