This is my second attempt at making a demo
It`s not very technical, but its light hearted which i think helps make up for some of its lacking. Unfortunately the music doesn't loop, i don't know how that`s done sorry
I`m planing on adding content to it, so it`s by no means complete, but you probably already know that from my post heading

Iv`e packed the exe with upx 3.91 to help reduce the file size
Please leave feedback, i`m open to advise

Thought i`d add the code, it`s very basic
InitSprite()
UseJPEGImageDecoder()
UsePNGImageDecoder()
InitKeyboard()
l=0
sco = 0
psco = 0
a = 0
b = -800
moveflag = 0
moveflag2 = 0
moveflag3 = 0
shipshake = 0
OpenScreen(800,600,32,"PBWINDOW")
Clouds= LoadSprite(#PB_Any,"clouds.png")
font = LoadSprite (#PB_Any, "Charset-DNS_Antor Intruders Font 3.png")
wave = LoadSprite (#PB_Any, "ocean-waves-borders.png")
ship = LoadSprite(#PB_Any,"pirateship.png")
sky = LoadSprite(#PB_Any,"sky.jpg")
intro = LoadSprite(#PB_Any,"intro.jpg")
DisplaySprite(intro,0,0)
FlipBuffers()
Delay(4000)
;music
If InitSound() = 0
MessageRequester("Error", "Sound system not available.") : End
EndIf
If CatchMusic(0, ?Tune, ?TuneEnd-?Tune)
PlayMusic(0)
;Scroller Message
h$ = " "
h$ = h$ + " GREETING ME HARTYS, I OMNIKAM BRING YOU THE SCARED PIRATE INTRO "
h$ = h$ + "THIS TIME IVE TRIED TO STAY AWAY FROM THE CUT AND PASTE OF YE OLD DEMO AND INSTEAD ENTERTAIN YOU WITH MY OWN CODE "
h$ = h$ + "YS ITS SIMPLE YOU WONT FIND THE FLASH AND RITZ BUT ITS HONEST DAM YE AND I HAD FUN PUTTING IT TOGETHER "
h$ = h$ + " NOW GREETINGS TIME TO PADMAN, WITHOUT YOU THIS WOULDNT HAVE HAPPEN HOTSHOT YOUR WORK AND KNOLAGE IS GREAT KEEP SHARING "
h$ = h$ + " THANKS TO SHOCKWAVE FOR HIS AWSOME SCROLLER "
;end Scroller message
TransparentSpriteColor(clouds, #White)
TransparentSpriteColor(ship, #White)
TransparentSpriteColor(wave,#White)
Repeat ;Main Loop
ClearScreen($0)
cco = 0
pcco =0
ExamineKeyboard()
t=t+1
Angle.f = 1*Cos((pcc0+m+m)/10)
DisplaySprite(sky,0,0)
DisplayTransparentSprite(clouds,l,10)
DisplayTransparentSprite(wave,c,200+30*Sin((pcc+pcco+psco+pm)/120)) ;
DisplayTransparentSprite(wave,b,300+50*Sin((pcc+pcco+psco+pm)/120)) ;
DisplayTransparentSprite(wave,a,400+50*Sin((pcc+pcco+psco+pm)/120)) ;
DisplayTransparentSprite(ship,200,120+50*Sin((pcc+pcco+psco+pm)/120)) ;
DisplayTransparentSprite(wave,b,500+50*Sin((pcc+pcco+psco+pm)/120)) ;
If shipshake=0
l=l+1
If l>1150
shipshake=1
EndIf
EndIf
If shipshake=1
RotateSprite(ship, Angle.f,#PB_Absolute)
l=l-1
If l<1
shipshake=0
EndIf
EndIf
pcc0 = pcco +32
;move
If moveflag=0
b=b+4
If b>0
moveflag = 1
EndIf
EndIf
If moveflag=1
b=b-4
If b< -800
moveflag = 0
EndIf
;move a
EndIf
If moveflag2=0
a=a-4
If a<-800
moveflag2 = 1
EndIf
EndIf
If moveflag2=1
a=a+4
If a> 0
moveflag2 = 0
EndIf
EndIf
; moce c
If moveflag3=0
c=c-1
If c<-800
moveflag3 = 1
EndIf
EndIf
If moveflag3=1
c=c+1
If c> 0
moveflag3 = 0
EndIf
EndIf
m = m -5
sco = sco -3 ; scroller speed
pm = pm -5
psco = psco -3
;scroller
For cc = 0 To 25
letter = Asc(UCase(Mid(h$, tptr+cc, 1)))-32
yCharPos = letter / 10
xCharPos = letter % 10
ClipSprite(font, xCharPos*32, yCharPos*32, 32, 32) ;the magic
TransparentSpriteColor(font,#Black) ;sets the transparacy color of the font png
DisplayTransparentSprite(font, sco+cco,60+50*Sin((cc+cco+sco+m)/120)) ;
cco = cco + 32
Next
;
If sco < -32
tptr = tptr + 1
sco = sco + 32
EndIf
;
If tptr > Len(h$)-30
tptr = 1
EndIf
FlipBuffers()
Until KeyboardPushed (#PB_Key_Escape)
End
DataSection
Tune:
IncludeBinary "hesapirate.xm" ; no need to convert it to DATA statments using bin2data, just include the file.
TuneEnd:
EndDataSection
EndIf