Page 2 of 2

Posted: Sat Mar 11, 2006 11:57 pm
by KarLKoX
You can use Psycle Native Plugins, there are a plenty of them (about 40) and they sound really good.
Btw, ModPlug also support VST plugins ...
Finally, why Olivier Lapicque break the compatiblity instead of creating it's own format like 99.9 % of other trackers ? (.rns for renoise, .skm for skale, .mt2 for Madtracker ...).

Posted: Sun Mar 12, 2006 5:19 pm
by Psychophanta
It is still not perfect Vsync, but I have made some improvement to the .pb file from Deth good.
Just replace the .PB file in the original Deth good package by this one:

Code: Select all

Define.w
Dim Lev.w(1600,10)
Dim Scr.w(41,10)
Dim Obj.w(20,3)
Dim Sco.w(9,1)
Dim Ani.w(255,2)
                    bitplanes.b=32
                    Global SCREENWIDTH.l=GetSystemMetrics_(#SM_CXSCREEN),SCREENHEIGHT.l=GetSystemMetrics_(#SM_CYSCREEN)
                    If InitMouse()=0 Or InitSprite()=0 Or InitSprite3D()=0 Or InitKeyboard()=0 Or InitSound()=0
                      MessageRequester("Error","Can't access DirectX",0):End
                    EndIf
                    Repeat
                      scr.l=OpenScreen(SCREENWIDTH,SCREENHEIGHT,bitplanes.b,"")
                      If scr.l:Break:EndIf
                      If bitplanes.b>16:bitplanes.b-8
                      ElseIf SCREENHEIGHT>600:SCREENWIDTH=800:SCREENHEIGHT=600
                      ElseIf SCREENHEIGHT>480:SCREENWIDTH=640:SCREENHEIGHT=480
                      ElseIf SCREENHEIGHT>400:SCREENWIDTH=640:SCREENHEIGHT=400
                      ElseIf SCREENHEIGHT>240:SCREENWIDTH=320:SCREENHEIGHT=240
                      ElseIf SCREENHEIGHT>200:SCREENWIDTH=320:SCREENHEIGHT=200
                      Else:MessageRequester("Listen:","Can't open Screen!",0):End
                      EndIf
                    Until bitplanes.b<=8
SetFrameRate(60)
                    ;
                    ;The stretch will be from (w,h) to (SCREENWIDTH,SCREENHEIGHT)
                    w.l=320:h.l=240
                    b3.l=CreateSprite(#PB_Any,w,h)
                    Global *buf3.l=SpriteID(b3)
                    UseBuffer(b3)
                    !push eax
                    !mov eax,dword[v_w]
                    !mov dword[SrcRight],eax
                    !mov eax,dword[v_h]
                    !mov dword[SrcBottom],eax
                    !mov eax,dword[v_SCREENWIDTH]
                    !mov dword[DestRight],eax
                    !mov eax,dword[v_SCREENHEIGHT]
                    !mov dword[DestBottom],eax
                    !pop eax
                    ;
                    !extrn _PB_DirectX_PrimaryBuffer
                    !extrn _PB_DirectX_BackBuffer
                    !DDBLT_WAIT equ $1000000
                    ;
                    Procedure PrimaryBufferInit()
                      !mov eax,dword[_PB_DirectX_PrimaryBuffer]
                      !test eax,eax
                      !jz @f
                      !mov dword[PrimaryBuffer],eax
                      ProcedureReturn
                      !@@:
                      !;PrimaryBufferInit:
                      !push DDrawBase
                      !mov eax,dword[_PB_DirectX_BackBuffer]
                      !push eax
                      !mov eax,dword[eax]
                      !call dword[eax+144]
                      !push PrimaryBuffer
                      !mov eax,dword[DDrawBase]
                      !push eax
                      !mov eax,dword[eax]
                      !call dword[eax+56]
                      !mov eax,dword[PrimaryBuffer]
                      !;EndPrimaryBufferInit
                    EndProcedure
                    Procedure MyCopyBufferEx()
                      !mov eax,dword[_PB_DirectX_BackBuffer]
                      !push dword dwSize dword DDBLT_WAIT dword SrcLeft dword[p_buf3] dword DestLeft eax
                      !mov eax,dword[eax]
                      !call dword[eax+20]
                    EndProcedure
                    DataSection
                    !DDrawBase:dd 0
                    !PrimaryBuffer:dd 0
                    !SrcLeft:dd 0
                    !SrcTop:dd 0
                    !SrcRight:dd 0
                    !SrcBottom:dd 0
                    !DestLeft:dd 0
                    !DestTop:dd 0
                    !DestRight:dd 0
                    !DestBottom:dd 0
                    !dwSize:dd 100
                    EndDataSection
                    PrimaryBufferInit()
;*** load sound ***
CatchSound(0, ?Scra_0_wav)
CatchSound(1, ?Scra_1_wav)
CatchSound(2, ?Scra_2_wav)
CatchSound(3, ?Scra_3_wav)
CatchSound(4, ?Scra_4_wav)
CatchSound(5, ?Scra_5_wav)
CatchSound(6, ?Scra_6_wav)
CatchSound(7, ?Scra_7_wav)
CatchSound(8, ?Scra_8_wav)
CatchSound(9, ?Scra_9_wav)
CatchSound(10, ?Scra_10_wav)

;*** load sprites ***
CatchSprite(0, ?Scra_0_bmp)
CatchSprite(1, ?Scra_1_bmp)
CatchSprite(2, ?Scra_2_bmp)
CatchSprite(3, ?Scra_3_bmp)
CatchSprite(4, ?Scra_4_bmp)
CatchSprite(5, ?Scra_5_bmp)
CatchSprite(6, ?Scra_6_bmp)
CatchSprite(7, ?Scra_7_bmp)
CatchSprite(8, ?Scra_8_bmp)
CatchSprite(9, ?Scra_9_bmp)
CatchSprite(10, ?Scra_10_bmp)
CatchSprite(11, ?Scra_11_bmp)
CatchSprite(12, ?Scra_12_bmp)
CatchSprite(13, ?Scra_13_bmp)
CatchSprite(14, ?Scra_14_bmp)
CatchSprite(15, ?Scra_15_bmp)
CatchSprite(16, ?Scra_16_bmp)
CatchSprite(17, ?Scra_17_bmp)
CatchSprite(18, ?Scra_18_bmp)
CatchSprite(19, ?Scra_19_bmp)
CatchSprite(20, ?Scra_20_bmp)
CatchSprite(21, ?Scra_21_bmp)
CatchSprite(22, ?Scra_22_bmp)
CatchSprite(23, ?Scra_23_bmp)
CatchSprite(24, ?Scra_24_bmp)
CatchSprite(25, ?Scra_25_bmp)
CatchSprite(26, ?Scra_26_bmp)
CatchSprite(27, ?Scra_27_bmp)
CatchSprite(28, ?Scra_28_bmp)
CatchSprite(29, ?Scra_29_bmp)
CatchSprite(30, ?Scra_30_bmp)
CatchSprite(31, ?Scra_31_bmp)
CatchSprite(32, ?Scra_32_bmp)
CatchSprite(33, ?Scra_33_bmp)
CatchSprite(34, ?Scra_34_bmp)
CatchSprite(35, ?Scra_35_bmp)
CatchSprite(36, ?Scra_36_bmp)
CatchSprite(37, ?Scra_37_bmp)
CatchSprite(38, ?Scra_38_bmp)
CatchSprite(39, ?Scra_39_bmp)
CatchSprite(40, ?Scra_40_bmp)
CatchSprite(41, ?Scra_41_bmp)
CatchSprite(42, ?Scra_42_bmp)
CatchSprite(43, ?Scra_43_bmp)
CatchSprite(44, ?Scra_44_bmp)
CatchSprite(45, ?Scra_45_bmp)
CatchSprite(46, ?Scra_46_bmp)
CatchSprite(47, ?Scra_47_bmp)
CatchSprite(48, ?Scra_48_bmp)
CatchSprite(49, ?Scra_49_bmp)
CatchSprite(50, ?Scra_50_bmp)
CatchSprite(51, ?Scra_51_bmp)
CatchSprite(52, ?Scra_52_bmp)
CatchSprite(53, ?Scra_53_bmp)
CatchSprite(54, ?Scra_54_bmp)
CatchSprite(55, ?Scra_55_bmp)
CatchSprite(56, ?Scra_56_bmp)
CatchSprite(57, ?Scra_57_bmp)
CatchSprite(58, ?Scra_58_bmp)
CatchSprite(59, ?Scra_59_bmp)
CatchSprite(60, ?Scra_60_bmp)
CatchSprite(61, ?Scra_61_bmp)
CatchSprite(62, ?Scra_62_bmp)
CatchSprite(92, ?Scra_92_bmp)
CatchSprite(93, ?Scra_93_bmp)
CatchSprite(94, ?Scra_94_bmp)
CatchSprite(95, ?Scra_95_bmp)
CatchSprite(96, ?Scra_96_bmp)
CatchSprite(97, ?Scra_97_bmp)
CatchSprite(98, ?Scra_98_bmp)
CatchSprite(99, ?Scra_99_bmp)
CatchSprite(100, ?Scra_100_bmp)
CatchSprite(101, ?Scra_101_bmp)
CatchSprite(102, ?Scra_102_bmp)
CatchSprite(103, ?Scra_103_bmp)
CatchSprite(104, ?Scra_104_bmp)
CatchSprite(105, ?Scra_105_bmp)
CatchSprite(106, ?Scra_106_bmp)
CatchSprite(107, ?Scra_107_bmp)
CatchSprite(108, ?Scra_108_bmp)
CatchSprite(109, ?Scra_109_bmp)
CatchSprite(110, ?Scra_110_bmp)
CatchSprite(111, ?Scra_111_bmp)
CatchSprite(112, ?Scra_112_bmp)
CatchSprite(113, ?Scra_113_bmp)
CatchSprite(114, ?Scra_114_bmp)
CatchSprite(115, ?Scra_115_bmp)
CatchSprite(116, ?Scra_116_bmp)
CatchSprite(117, ?Scra_117_bmp)
CatchSprite(118, ?Scra_118_bmp)
CatchSprite(119, ?Scra_119_bmp)
CatchSprite(120, ?Scra_120_bmp)
CatchSprite(121, ?Scra_121_bmp)
CatchSprite(122, ?Scra_122_bmp)
CatchSprite(123, ?Scra_123_bmp)
CatchSprite(124, ?Scra_124_bmp)
CatchSprite(125, ?Scra_125_bmp)
CatchSprite(126, ?Scra_126_bmp)
CatchSprite(127, ?Scra_127_bmp)
CatchSprite(128, ?Scra_128_bmp)
CatchSprite(129, ?Scra_129_bmp)
CatchSprite(130, ?Scra_130_bmp)
CatchSprite(131, ?Scra_131_bmp)
CatchSprite(132, ?Scra_132_bmp)
CatchSprite(133, ?Scra_133_bmp)
CatchSprite(134, ?Scra_134_bmp)
CatchSprite(135, ?Scra_135_bmp)
CatchSprite(136, ?Scra_136_bmp)
CatchSprite(137, ?Scra_137_bmp)
CatchSprite(138, ?Scra_138_bmp)
CatchSprite(139, ?Scra_139_bmp)
CatchSprite(140, ?Scra_140_bmp)
CatchSprite(141, ?Scra_141_bmp)
CatchSprite(142, ?Scra_142_bmp)
CatchSprite(143, ?Scra_143_bmp)
CatchSprite(144, ?Scra_144_bmp)
CatchSprite(145, ?Scra_145_bmp)
CatchSprite(146, ?Scra_146_bmp)
CatchSprite(147, ?Scra_147_bmp)
CatchSprite(148, ?Scra_148_bmp)
CatchSprite(149, ?Scra_149_bmp)
CatchSprite(150, ?Scra_150_bmp)
CatchSprite(151, ?Scra_151_bmp)
CatchSprite(152, ?Scra_152_bmp)
CatchSprite(153, ?Scra_153_bmp)
CatchSprite(154, ?Scra_154_bmp)
CatchSprite(155, ?Scra_155_bmp)
CatchSprite(156, ?Scra_156_bmp)
CatchSprite(157, ?Scra_157_bmp)
CatchSprite(158, ?Scra_158_bmp)
CatchSprite(159, ?Scra_159_bmp)
CatchSprite(160, ?Scra_160_bmp)
CatchSprite(161, ?Scra_161_bmp)
CatchSprite(162, ?Scra_162_bmp)
CatchSprite(163, ?Scra_163_bmp)
CatchSprite(164, ?Scra_164_bmp)
CatchSprite(165, ?Scra_165_bmp)
CatchSprite(166, ?Scra_166_bmp)
CatchSprite(167, ?Scra_167_bmp)
CatchSprite(168, ?Scra_168_bmp)
CatchSprite(169, ?Scra_169_bmp)
CatchSprite(170, ?Scra_170_bmp)
CatchSprite(171, ?Scra_171_bmp)
CatchSprite(172, ?Scra_172_bmp)
CatchSprite(173, ?Scra_173_bmp)
CatchSprite(174, ?Scra_174_bmp)
CatchSprite(175, ?Scra_175_bmp)
CatchSprite(176, ?Scra_176_bmp)
CatchSprite(177, ?Scra_177_bmp)
CatchSprite(178, ?Scra_178_bmp)
CatchSprite(179, ?Scra_179_bmp)
CatchSprite(180, ?Scra_180_bmp)
CatchSprite(181, ?Scra_181_bmp)
CatchSprite(182, ?Scra_182_bmp)
CatchSprite(183, ?Scra_183_bmp)
CatchSprite(184, ?Scra_184_bmp)
CatchSprite(185, ?Scra_185_bmp)
CatchSprite(186, ?Scra_186_bmp)
CatchSprite(187, ?Scra_187_bmp)
CatchSprite(188, ?Scra_188_bmp)
CatchSprite(189, ?Scra_189_bmp)
CatchSprite(190, ?Scra_190_bmp)
CatchSprite(191, ?Scra_191_bmp)
CatchSprite(192, ?Scra_192_bmp)
CatchSprite(193, ?Scra_193_bmp)
CatchSprite(194, ?Scra_194_bmp)
CatchSprite(195, ?Scra_195_bmp)
CatchSprite(196, ?Scra_196_bmp)
CatchSprite(197, ?Scra_197_bmp)
CatchSprite(198, ?Scra_198_bmp)
CatchSprite(199, ?Scra_199_bmp)
CatchSprite(200, ?Scra_200_bmp)
CatchSprite(201, ?Scra_201_bmp)
CatchSprite(202, ?Scra_202_bmp)
CatchSprite(203, ?Scra_203_bmp)
CatchSprite(204, ?Scra_204_bmp)
CatchSprite(205, ?Scra_205_bmp)
CatchSprite(206, ?Scra_206_bmp)
CatchSprite(207, ?Scra_207_bmp)
CatchSprite(208, ?Scra_208_bmp)
CatchSprite(209, ?Scra_209_bmp)
CatchSprite(210, ?Scra_210_bmp)
CatchSprite(211, ?Scra_211_bmp)
CatchSprite(212, ?Scra_212_bmp)
CatchSprite(213, ?Scra_213_bmp)
CatchSprite(214, ?Scra_214_bmp)
CatchSprite(215, ?Scra_215_bmp)
CatchSprite(216, ?Scra_216_bmp)
CatchSprite(217, ?Scra_217_bmp)
CatchSprite(218, ?Scra_218_bmp)
CatchSprite(219, ?Scra_219_bmp)
CatchSprite(220, ?Scra_220_bmp)
CatchSprite(221, ?Scra_221_bmp)
CatchSprite(222, ?Scra_222_bmp)
CatchSprite(223, ?Scra_223_bmp)
CatchSprite(224, ?Scra_224_bmp)
CatchSprite(225, ?Scra_225_bmp)
CatchSprite(226, ?Scra_226_bmp)
CatchSprite(227, ?Scra_227_bmp)
CatchSprite(228, ?Scra_228_bmp)

;*** Lev 0=groundsprite1 1=height1 2=ceilingsprite2 3=height2 4=blocksprite1 5=height 6=blocksprite2 7=height 8=enemysprite 9=height ***
;*** Obj 0=ship 1-4=lasers 5-6=bombs 7-12=saucers/fireballs/rockets 13=fuelmeter 15=Lives 16=Flags 17=levelmeter 18=title screen 19=fuel 20=backgr.

;*** load Leveldata ***
For X = 1 To 1600
 For X1 = 0 To 10
  Dat.b = PeekB(?Scra_0_dat + X2)
  Lev(X,X1) = Dat.b & 255 
  X2 + 1
 Next X1
Next X

;*** read Animationdata into array ***
For T = 0 To 255
 For T1 = 0 To 2
  Dat.b = PeekB(?Scra_1_dat + T2)
  Ani(T,T1) = Dat.b & 255
  T2 + 1
 Next T1
Next T

Obj(19,0) = 107 : Obj(19,1) = 0 : Obj(19,2) = 232 : Obj(19,3) = 0
Obj(20,0) = 164 : Obj(20,1) = 0 : Obj(20,2) = 0 : Obj(20,3) = 0

Repeat
 ;*** Display Title screen ***
 Repeat
  Obj(20,3) + 1
  If obj(20,3) > 49
   obj(20,0) + 1
   If obj(20,0) = 168
    obj(20,0) = 164
   EndIf
   Obj(20,3) = 0
  EndIf
  DisplaySprite(obj(20,0),0,0)
  DisplaySprite(Sco(1,0),48,0)
  DisplaySprite(Sco(2,0),56,0)
  DisplaySprite(Sco(3,0),64,0)
  DisplaySprite(Sco(4,0),72,0)
  DisplaySprite(Sco(6,0),192,0)
  DisplaySprite(Sco(7,0),200,0)
  DisplaySprite(Sco(8,0),208,0)
  DisplaySprite(Sco(9,0),216,0)
  
  T1 + 1
  If Obj(15,1) = 336
   If T1 < 180
    DisplayTransparentSprite(112,120,120)
   Else
    Obj(15,1) = 0
    T1 = 0
   EndIf 
  Else
   If T1 < 61
    For T = 119 To T1 + 118
     DisplayTransparentSprite(Ani(T,0),Ani(T,1),Ani(T,2))
    Next T
   ElseIf T1 < 361
    For T = 119 To 178
     DisplayTransparentSprite(Ani(T,0),Ani(T,1),Ani(T,2))
    Next T
   ElseIf T1 < 438
    For T = 179 To T1 - 361 + 178
     DisplayTransparentSprite(Ani(T,0),Ani(T,1),Ani(T,2))
    Next T
   ElseIf T1 < 738 
    For T = 179 To 255
     DisplayTransparentSprite(Ani(T,0),Ani(T,1),Ani(T,2))
    Next T
   ElseIf T1 < 858
   ElseIf T1 < 1158
    DisplayTransparentSprite(142,80,68)
   Else
    T1 = 0
   EndIf
  EndIf
                                  MyCopyBufferEx():FlipBuffers():Delay(16):UseBuffer(b3)

  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape)
   End
  EndIf
 Until KeyboardPushed(#PB_Key_Return)

 Obj(15,0) = 108 : Obj(15,1) = 256 : Obj(15,2) = 0 : Obj(15,3) = 0
 Obj(16,0) = 60 : Obj(16,1) = 312 : Obj(16,2) = 232 : Obj(16,3) = 32
 Obj(17,0) = 100 : Obj(17,1) = 0 : Obj(17,2) = 16 : Obj(17,3) = 1
 Sco(0,1) = 0

 Repeat
  ;*** fill screen/objects/variables ***
  For T = 0 To 41
   Scr(T,0) = 54 : Scr(T,1) = 192 : Scr(T,2) = 0 : Scr(T,3) = 0 :  Scr(T,4) = 171 : Scr(T,5) = 200
   Scr(T,6) = 0 : Scr(T,7) = 0 : Scr(T,8) = 0 : Scr(T,9) = 0 : Scr(T,10) = 0 
  Next T
  For T = 0 To 13
   Obj(T,0) = 0 : Obj(T,1) = 0 : Obj(T,2) = 0 : Obj(T,3) = 0
  Next T
  Obj(0,0) = 160 : Obj(0,1) = 7 : Obj(0,2) = 74
  Obj(13,0) = 62 : Obj(13,1) = 96 : Obj(13,2) = 232

  X = Obj(17,3)

  Repeat
   ;*** Set levelmeter and background sound ***
   Select X
    Case 1
     Obj(17,0) = 100 : Obj(17,3) = 1
     StopSound(8)
     PlaySound(7,1)
    Case 337
     Obj(17,0) = 101 : Obj(17,3) = 337
     StopSound(7)
     PlaySound(8,1)
    Case 562
     Obj(17,0) = 102 : Obj(17,3) = 562
     StopSound(8)
     PlaySound(7,1)
    Case 785
     Obj(17,0) = 103 : Obj(17,3) = 785
     PlaySound(7,1)
    Case 1121
     Obj(17,0) = 104 : Obj(17,3) = 1121
     PlaySound(7,1)
    Case 1345
     Obj(17,0) = 105 : Obj(17,3) = 1345
     PlaySound(7,1)
    Case 1421
     Obj(17,0) = 106 : Obj(17,3) = 1421
     StopSound(7)
     PlaySound(8,1)
   EndSelect
 
   For X1 = 0 To -7 Step -1
    ;*** Display background stars ***
    Obj(20,3) + 1
    If obj(20,3) = 50
     obj(20,0) + 1
     If obj(20,0) = 168
      obj(20,0) = 164
     EndIf
     obj(20,3) = 0
    EndIf
    DisplaySprite(obj(20,0),0,0)

    ;*** Copy screen one tile to the left and get new leveldata ***
    If X1 = 0
     For T2 = 0 To 40
      For T3 = 0 To 10
       Scr(T2,T3) = Scr(T2+1,T3)
      Next T3
     Next T2
     For T3 = 0 To 9
      Scr(41,T3) = Lev(X,T3)
     Next T3
    EndIf

    ;*** Calculating and drawing the level (ground,ceiling And enemies on ground) ***
    For X2 = 0 To 40
     X3 = X2<<3 + X1
     Y1 = Scr(X2,1) >> 3 << 3
     Y2 = Scr(X2,3) >> 3 << 3
     DisplayTransparentSprite(Scr(X2,0),X3,Y1)
     If scr(X2,2) > 0
      DisplayTransparentSprite(scr(X2,2),X3,Y2)
     EndIf
     If Scr(X2,4) > 0
      DisplayTransparentSprite(Scr(X2,4),X3,Scr(X2,5))
     EndIf
     If scr(X2,6) > 0
      DisplayTransparentSprite(Scr(X2,6),X3,Scr(X2,7))
     EndIf
     If Scr(X2,8) > 116 And Scr(X2,8) < 120
      Scr(X2,10) + 1
      If Scr(X2,10) > 63
       Scr(X2,8) = 0
      EndIf
     ElseIf Scr(X2,8) > 119 And Scr(X2,8) < 124
      Scr(X2,10) + 1
      If Scr(X2,10) > 13
       Scr(X2,8) + 1
       If Scr(X2,8) = 124
        Scr(X2,8) = 0
       EndIf
       Scr(X2,10) = 0
      EndIf
     EndIf
     If Scr(X2,8) > 0
      DisplayTransparentSprite(Scr(X2,8),X3,Scr(X2,9))
     EndIf
    Next X2

    ;*** Ship control, lasers launch, bombs launch ***
    ExamineKeyboard()
    If Obj(0,0) > 159
     If Obj(13,1) > -32
      If KeyboardPushed(#PB_Key_Up)
       If Obj(0,2) > 42
        Obj(0,2) - 1
       EndIf
      ElseIf KeyboardPushed(#PB_Key_Down) 
       If Obj(0,2) < 201
        Obj(0,2) + 1
       EndIf
      EndIf
      If KeyboardPushed(#PB_Key_Left)
       If Obj(0,1) > 7
        Obj(0,1) - 1
       EndIf
      ElseIf KeyboardPushed(#PB_Key_Right)
       If Obj(0,1) < 86
        Obj(0,1) + 1
       EndIf
      EndIf
     Else
      If Obj(0,2) < 201
       Obj(0,2) + 1
      EndIf
     EndIf 
     If KeyboardPushed(#PB_Key_LeftShift)
      If Ctrl_rel
       If Obj(1,0) = 0
        Obj(1,0) = 168
        Obj(1,1) = Obj(0,1) + 32
        Obj(1,2) = Obj(0,2)
        PlaySound(0)
       ElseIf Obj(2,0) = 0
        Obj(2,0) = 168
        Obj(2,1) = Obj(0,1) + 32
        Obj(2,2) = Obj(0,2)
        PlaySound(0)
       ElseIf Obj(3,0) = 0
        Obj(3,0) = 168
        Obj(3,1) = Obj(0,1) + 32
        Obj(3,2) = Obj(0,2)
        PlaySound(0)
       ElseIf Obj(4,0) = 0
        Obj(4,0) = 168
        Obj(4,1) = Obj(0,1) + 32
        Obj(4,2) = Obj(0,2)
        PlaySound(0)
       EndIf
      EndIf
      Ctrl_rel = 0
     Else
      Ctrl_rel = 1
     EndIf
     If KeyboardPushed(#PB_Key_X)
      If Alt_rel
       If Obj(5,0) = 0
        Obj(5,0) = 128
        Obj(5,1) = Obj(0,1) + 8
        Obj(5,2) = Obj(0,2) + 3
        PlaySound(6)
       ElseIf Obj(6,0) = 0
        Obj(6,0) = 128
        Obj(6,1) = Obj(0,1) + 8
        Obj(6,2) = Obj(0,2) + 3
        PlaySound(6)
       EndIf
      EndIf
      Alt_rel = 0
     Else
      Alt_rel = 1
     EndIf
    EndIf
    If KeyboardPushed(#PB_Key_P)
     Delay(100)
    EndIf
    If KeyboardPushed(#PB_Key_Escape)
     End
    EndIf

    ;*** Calculate shape of ship ***
    If Obj(0,0) > 159
     Obj(0,3) + 1
     If Obj(0,3) = 6
      Obj(0,0) + 1 
      If Obj(0,0) = 163
       Obj(0,0) = 160
      EndIf 
      Obj(0,3) = 0
     EndIf
    Else
     Obj(0,3) + 1
     If Obj(0,3) = 16
      Obj(0,0) + 1
      If Obj(0,0) = 160
       Obj(15,1) + 16
       Break 2
      EndIf
      Obj(0,3) = 0
     EndIf
     If X1 < 0
      X1 + 1
     EndIf 
    EndIf

    ;*** Calculate lasers ***
    For T2 = 1 To 4
     If Obj(T2,0) = 168
      If Obj(T2,1) < 205
       Obj(T2,1) + 3
      Else
       Obj(T2,0) = 0
      EndIf
     EndIf
    Next T2

    ;*** Calculate bombs ***
    For T2 = 5 To 6
     If Obj(T2,0) > 127
      If Obj(T2,3) > 43
       Obj(T2,2) + 1
      Else
       Obj(T2,0) = Ani(Obj(T2,3),0)
       Obj(T2,1) + Ani(Obj(T2,3),1)
       Obj(T2,2) + Ani(Obj(T2,3),2)
       Obj(T2,3) + 1
      EndIf
     ElseIf Obj(T2,0) > 123
      Obj(T2,3) + 1
      If Obj(T2,3) > 7
       Obj(T2,3) = 0
       Obj(T2,0) + 1
       If Obj(T2,0) = 128
        Obj(T2,0) = 0
       EndIf
      EndIf
      If Obj(0,0) > 159
       Obj(T2,1) - 1
      EndIf
     EndIf
    Next T2

    ;******************************************************************************************************************
    If X = 336 Or X = 561 Or X = 784 Or X = 1120 Or X = 1440 Or X = 1600
     For T2 = 7 To 12
      Obj(T2,0) = 0
      Obj(T2,1) = 0
      Obj(T2,2) = 0
      Obj(T2,3) = 0
     Next T2

    ;*** rockets ***
    ElseIf X < 336 Or (X >= 785 And X < 1120)
     For T2 = 7 To 10
      If Obj(T2,0) > 123
       If Obj(0,0) > 159
        Obj(T2,1) - 1
       EndIf 
       Obj(T2,2) - 1
       If Obj(T2,1) < 0 Or Obj(T2,2) < 24
        Obj(T2,0) = 0
       EndIf
      ElseIf Obj(T2,0) > 119
       If Obj(0,0) > 159
        Obj(T2,1) - 1
       EndIf 
       Obj(T2,3) + 1
       If Obj(T2,3) = 8
        Obj(T2,0) + 1
        If Obj(T2,0) = 124
         Obj(T2,0) = 0
        EndIf
        Obj(T2,3) = 0
       EndIf
      EndIf
     Next T2
     If Y3 > 0
      Y3 - 1
     Else
      For T2 = 7 To 10
       If Obj(T2,0) = 0
        X2 = Random(10) + obj(0,1) >> 3
        If scr(X2,8) = 134 And X1 = 0
         scr(X2,8) = 0
         Obj(T2,0) = 135
         Obj(T2,1) = X2 << 3
         Obj(T2,2) = Scr(X2,9) - 1
         Obj(T2,3) = - 32
         Y3 = 32
         Break
        EndIf
       EndIf
      Next T2
     EndIf

    ;*** saucers ***
    ElseIf X >= 337 And X < 561
     If Lev(X,10) > 0 And X1 = 0
      Obj(Lev(X,10) + 6,0) = 146
      Obj(Lev(X,10) + 6,1) = 304 + Random(16)
      Obj(Lev(X,10) + 6,3) = 44
     EndIf
     For T2 = 7 To 12
      If Obj(T2,0) > 123
       Obj(T2,3) + 1
       If Obj(T2,3) = 119
        Obj(T2,3) = 44
       EndIf
       Obj(T2,0) = Ani(Obj(T2,3),0)
       Obj(T2,1) - Ani(Obj(T2,3),1)
       Obj(T2,2) = Ani(Obj(T2,3),2)
      ElseIf Obj(T2,0) > 112
       Obj(T2,1) - 1
       Obj(T2,3) + 1
       If Obj(T2,3) = 6
        Obj(T2,0) + 1
        If Obj(T2,0) = 117
         Obj(T2,0) = 0
        EndIf
        Obj(T2,3) = 0
       EndIf
      EndIf
     Next T2

    ;*** fireballs ***
    ElseIf X >= 562 And X < 784
     If Lev(X,10) > 0 And X1 = 0 ;Fout herstellen
      Obj(Lev(X,10) + 6,0) = 149
      Obj(Lev(X,10) + 6,1) = 312
      Obj(Lev(X,10) + 6,2) = Random(120) + 40
      Obj(Lev(X,10) + 6,3) = 0
     EndIf
     For T2 = 7 To 12
      If Obj(T2,0) > 123
       Obj(T2,3) + 1
       If Obj(T2,3) = 6
        Obj(T2,0) + 1
        If Obj(T2,0) = 153
         Obj(T2,0) = 149
        EndIf
        Obj(T2,3) = 0
       EndIf
       Obj(T2,1) - 4
      ElseIf Obj(T2,0) > 119
       Obj(T2,1) - 1
       Obj(T2,3) + 1
       If Obj(T2,3) = 6
        Obj(T2,0) + 1
        If Obj(T2,0) = 124
         Obj(T2,0) = 0
        EndIf
        Obj(T2,3) = 0
       EndIf
      EndIf
     Next T2

    ;*** base ***
    ElseIf X >= 1345 And X < 1440
     If Lev(X,10) = 1 And X1 = 0
      Obj(7,0) = 137
      Obj(7,1) = 321
      Obj(7,2) = 176
      Obj(7,3) = 0
     EndIf
     If Obj(7,0) > 123
      If Obj(0,0) > 159
       Obj(7,1) - 1
      EndIf
      Obj(7,3) + 1
      If Obj(7,3) = 8
       Obj(7,0) + 1
       If Obj(7,0) = 140
        Obj(7,0) = 137
       EndIf
       Obj(7,3) = 0
      EndIf
     ElseIf Obj(7,0) > 119
      If Obj(0,0) > 159
       Obj(T2,1) - 1
      EndIf
      Obj(7,3) + 1
      If Obj(7,3) = 14
       Obj(7,0) + 1
       If Obj(7,0) = 124
        Obj(7,0) = 0
       EndIf
       Obj(7,3) = 0
      EndIf
     EndIf
 
    ;*** Invader ***
    ElseIf X >= 1441 And X < 1600
     If Lev(X,10) = 1 And X1 = 0
      Obj(7,0) = 140: Obj(7,1) = 320: Obj(7,2) = 80
     EndIf

     If Obj(7,0) = 140
      Obj(7,3) + 1
      If Obj(7,3) = 4
       Obj(7,0) = 141
       Obj(7,1) + 2
       Obj(7,3) = 0
      EndIf
     ElseIf Obj(7,0) = 141
      Obj(7,3) + 1
      If Obj(7,3) = 4
       Obj(7,0) = 140
       Obj(7,1) + 2
       Obj(7,3) = 0
      EndIf
     ElseIf Obj(7,0) = 61
      Obj(7,3) + 1
      If Obj(7,3) = 16
       Obj(7,0) = 0
      EndIf
     EndIf
     Obj(7,1) - 1
    EndIf

    ;*** Collision detection ship - ground/ceiling ***
    If Obj(0,0) > 159
     X2 = (Obj(0,1) - X1 + 13) >> 3
     For X3 = X2 To X2 + 2
      If Obj(0,2) + 8 >= Scr(X3,1) Or Obj(0,2) + 3 <= Scr(X3,3)
       Obj(0,0) = 153
       PlaySound(4)
      EndIf
     Next X3
    EndIf

    ;*** Collision detection laser - ground/ceiling ***
    For T2 = 1 To 4
     If Obj(T2,0) = 168
      X2 = (Obj(T2,1) - X1) >> 3
      If Obj(T2,2) + 7 >= Scr(X2,1) Or Obj(T2,2) + 7 <= Scr(X2,3)
       Obj(T2,0) = 0
      EndIf
     EndIf
    Next T2

    ;*** collision detection bombs - ground/ceiling ***
    For T2 = 5 To 6
     If Obj(T2,0) > 127
      X2 = (Obj(T2,1) - X1 + 8) >> 3
      If Obj(T2,2) + 6 >= scr(X2,1) Or Obj(T2,2) + 6 <= Scr(X2,3)
       Obj(T2,0) = 124
       Obj(T2,3) = 0
       PlaySound(2)
       StopSound(6)
      EndIf
     EndIf
    Next T2

    ;*** Collision detection ship - enemy ***
    If Obj(0,0) > 159
     For T2 = 0 To 15
      If Scr(T2,8) > 132
       If SpritePixelCollision(163,Obj(0,1) + 14,Obj(0,2) + 4,Scr(T2,8),T2 << 3 + X1,Scr(T2,9))
        If Scr(T2,8) = 144
         Scr(T2,8) = Random(2) + 117
        Else
         Scr(T2,8) = 120
        EndIf
        Scr(T2,10) = 0
        Obj(0,0) = 153
        PlaySound(4)
       EndIf
      EndIf
     Next T2
    EndIf

    ;*** Collision detection laser - enemy ***
    For T1 = 1 To 4
     If Obj(T1,0) = 168
      For T2 = 0 To 27
       If Scr(T2,8) > 132
        If SpritePixelCollision(Obj(T1,0),Obj(T1,1),Obj(T1,2),Scr(T2,8),T2 << 3 + X1,Scr(T2,9))
         If Scr(T2,8) = 144
          Scr(T2,8) = Random(2) + 117
          Sco(0,1) + (Scr(T2,8) - 116) * 10
          PlaySound(4)
         ElseIf Scr(T2,8) = 133
          Scr(T2,8) = 120
          Sco(0,1) + 15
          Obj(13,1) + 24
          If Obj(13,1) > 96
           Obj(13,1) = 96
          EndIf 
          PlaySound(4)
         Else
          Scr(T2,8) = 120
          Sco(0,1) + 5
          PlaySound(1)
         EndIf
         Scr(T2,10) = 0
         Obj(T1,0) = 0
        EndIf
       EndIf
      Next T2
     EndIf
    Next T1

    ;*** Collision detection bombs - enemy *** 
    For T1 = 5 To 6
     If Obj(T1,0) > 127
      For T2 = 0 To 27
       If Scr(T2,8) > 132
        If SpritePixelCollision(Obj(T1,0),Obj(T1,1),Obj(T1,2),Scr(T2,8),T2 << 3 + X1,Scr(T2,9))
         If Scr(T2,8) = 144
          Scr(T2,8) = Random(2) + 117
          Sco(0,1) + (Scr(T2,8) - 116) * 10
          PlaySound(4)
         ElseIf Scr(T2,8) = 133
          Scr(T2,8) = 120
          Sco(0,1) + 15
          Obj(13,1) + 24
          If Obj(13,1) > 96
           Obj(13,1) = 96
          EndIf 
          PlaySound(4)
         Else
          Scr(T2,8) = 120
          Sco(0,1) + 5
          PlaySound(1)
         EndIf
         Scr(T2,10) = 0
         Obj(T1,0) = 124
         Obj(T1,3) = 0
         StopSound(6)
        EndIf
       EndIf
      Next T2
     EndIf
    Next T1

    ;*** Collision detection ship - moving enemy ***
    If Obj(0,0) > 159
     For T2 = 7 To 12
      If Obj(T2,0) > 132
       If SpritePixelCollision(163,Obj(0,1) + 14,Obj(0,2) + 4,Obj(T2,0),Obj(T2,1),Obj(T2,2))
        If Obj(T2,0) > 145 And Obj(T2,0) < 149
         Obj(T2,0) = 113
        ElseIf Obj(T2,0) > 139 And Obj(T2,0) < 144
         Obj(T2,0) = 61
        Else
         Obj(T2,0) = 120
        EndIf
        Obj(T2,3) = 0
        Obj(0,0) = 153
        PlaySound(4)
       EndIf
      EndIf
     Next T2
    EndIf

    ;*** Collision detection laser - moving enemy ***
    For T1 = 1 To 4
     If Obj(T1,0) = 168
      For T2 = 7 To 12
       If Obj(T2,0) > 132 And Obj(T2,0) < 149
        If SpritePixelCollision(168,Obj(T1,1),Obj(T1,2),Obj(T2,0),Obj(T2,1),Obj(T2,2))
         If Obj(T2,0) > 145
          Obj(T2,0) = 113
          Sco(0,1) + 10
          PlaySound(3)
         ElseIf Obj(T2,0) > 139
          Obj(T2,0) = 61
          Sco(0,1) + 10
          PlaySound(5)
         ElseIf Obj(T2,0) > 136
          Obj(T2,0) = 120
          Sco(0,1) + 80
          PlaySound(4)
         Else
          Obj(T2,0) = 120
          Sco(0,1) + 8
          PlaySound(1)
         EndIf
         Obj(T2,3) = 0
         Obj(T1,0) = 0
        EndIf
       EndIf
      Next T2
     EndIf
    Next T1

    ;*** Collision detection bombs - moving enemy ***
    For T1 = 5 To 6
     If Obj(T1,0) > 127
      For T2 = 7 To 12
       If Obj(T2,0) > 132 And Obj(T2,0) < 149
        If SpritePixelCollision(Obj(T1,0),Obj(T1,1),Obj(T1,2),Obj(T2,0),Obj(T2,1),Obj(T2,2))
         If Obj(T2,0) > 145
          Obj(T2,0) = 113
          Sco(0,1) + 10
          PlaySound(3)
         ElseIf Obj(T2,0) > 139
          Obj(T2,0) = 61
          Sco(0,1) + 10
          PlaySound(5)
         ElseIf Obj(T2,0) > 136
          Obj(T2,0) = 120
          Sco(0,1) + 80
          PlaySound(4)
         Else
          Obj(T2,0) = 120
          Sco(0,1) + 8
          PlaySound(1)
         EndIf
         Obj(T2,3) = 0
         Obj(T1,0) = 124
         Obj(T1,3) = 0
         StopSound(6)
        EndIf
       EndIf
      Next T2
     EndIf
    Next T1

    ;*** Calculate fuel-meter ***
    Obj(13,3) + 1
    If Obj(13,3) = Obj(16,3)
     If Obj(13,1) > 8
      If Warn_snd = 1
       StopSound(9)
       Warn_snd = 0
      EndIf
      Obj(13,1) - 2
     ElseIf Obj(13,1) > -32
      If Warn_snd = 0
       PlaySound(9,1)
       Warn_snd = 1
      EndIf
       Obj(13,1) - 2
      EndIf
     Obj(13,3) = 0
    EndIf

    ;*** Calculate points for every second ***
    C1 = C1 + 1
    If C1 = 60
     Sco(0,1) + 1
     C1 = 0
    EndIf

    ;*** Calculate bonusship ***
    If Sco(0,1) > 999 And Obj(15,3) = 0
     Obj(15,1) - 16
     Obj(15,3) = 1
     PlaySound(10)
    EndIf

    ;*** Show object sprites ***
    For T2 = 0 To 17
     If Obj(T2,0)
      DisplayTransparentSprite(Obj(T2,0),Obj(T2,1),Obj(T2,2))
     EndIf
    Next T2
    DisplaySprite(Obj(19,0),Obj(19,1),Obj(19,2))

    ;*** Calculate and show score-sprites *** 
    If Sco(0,1) > 9999
     Sco(0,1) - 10000
    EndIf
    Sco(4,1) = Sco(0,1) / 10
    Sco(4,0) = Sco(0,1) % 10
    Sco(3,1) = Sco(4,1) / 10
    Sco(3,0) = Sco(4,1) % 10
    Sco(2,1) = Sco(3,1) / 10
    Sco(2,0) = Sco(3,1) % 10
    Sco(1,1) = Sco(2,1) / 10
    Sco(1,0) = Sco(2,1) % 10
    If Sco(0,1) > Sco(5,1)
     Sco(5,0) = Sco(0,0)
     Sco(9,0) = Sco(4,0)
     Sco(8,0) = Sco(3,0)
     Sco(7,0) = Sco(2,0)
     Sco(6,0) = Sco(1,0)
    EndIf
    DisplaySprite(Sco(1,0),48,0)
    DisplaySprite(Sco(2,0),56,0)
    DisplaySprite(Sco(3,0),64,0)
    DisplaySprite(Sco(4,0),72,0)
    DisplaySprite(Sco(6,0),192,0)
    DisplaySprite(Sco(7,0),200,0)
    DisplaySprite(Sco(8,0),208,0)
    DisplaySprite(Sco(9,0),216,0)

    ;*** make a screenshot when F12 is pressed ***
    If KeyboardPushed(#PB_Key_F12)
      GrabSprite(255,0,0,320,240):SaveSprite(255,"screen.bmp")
    EndIf
                                ;A trick (By Psychophanta):
                                MyCopyBufferEx():FlipBuffers():Delay(15):UseBuffer(b3)

   Next X1
   X + 1
   If X = 1601
    If Obj(16,1) > 280
     Obj(16,3) = 20
     Obj(16,1) - 8
    EndIf
    X = 1
   ElseIf X = 1421 And Obj(7,0) > 136
    X = 1365
   EndIf
  ForEver
  StopSound(7)
  StopSound(8)
  StopSound(9)
  Delay(1000)
 Until Obj(15,1) = 336
ForEver

DataSection

Scra_0_dat:IncludeBinary "Data/Scra_0.dat"
Scra_1_dat:IncludeBinary "Data/Scra_1.dat"

Scra_0_wav:IncludeBinary "Data/Scra_0.wav"
Scra_1_wav:IncludeBinary "Data/Scra_1.wav"
Scra_2_wav:IncludeBinary "Data/Scra_2.wav"
Scra_3_wav:IncludeBinary "Data/Scra_3.wav"
Scra_4_wav:IncludeBinary "Data/Scra_4.wav"
Scra_5_wav:IncludeBinary "Data/Scra_5.wav"
Scra_6_wav:IncludeBinary "Data/Scra_6.wav"
Scra_7_wav:IncludeBinary "Data/Scra_7.wav"
Scra_8_wav:IncludeBinary "Data/Scra_8.wav"
Scra_9_wav:IncludeBinary "Data/Scra_9.wav"
Scra_10_wav:IncludeBinary "Data/Scra_10.wav"

Scra_0_bmp:IncludeBinary "Data/Scra_0.bmp"
Scra_1_bmp:IncludeBinary "Data/Scra_1.bmp"
Scra_2_bmp:IncludeBinary "Data/Scra_2.bmp"
Scra_3_bmp:IncludeBinary "Data/Scra_3.bmp"
Scra_4_bmp:IncludeBinary "Data/Scra_4.bmp"
Scra_5_bmp:IncludeBinary "Data/Scra_5.bmp"
Scra_6_bmp:IncludeBinary "Data/Scra_6.bmp"
Scra_7_bmp:IncludeBinary "Data/Scra_7.bmp"
Scra_8_bmp:IncludeBinary "Data/Scra_8.bmp"
Scra_9_bmp:IncludeBinary "Data/Scra_9.bmp"
Scra_10_bmp:IncludeBinary "Data/Scra_10.bmp"
Scra_11_bmp:IncludeBinary "Data/Scra_11.bmp"
Scra_12_bmp:IncludeBinary "Data/Scra_12.bmp"
Scra_13_bmp:IncludeBinary "Data/Scra_13.bmp"
Scra_14_bmp:IncludeBinary "Data/Scra_14.bmp"
Scra_15_bmp:IncludeBinary "Data/Scra_15.bmp"
Scra_16_bmp:IncludeBinary "Data/Scra_16.bmp"
Scra_17_bmp:IncludeBinary "Data/Scra_17.bmp"
Scra_18_bmp:IncludeBinary "Data/Scra_18.bmp"
Scra_19_bmp:IncludeBinary "Data/Scra_19.bmp"
Scra_20_bmp:IncludeBinary "Data/Scra_20.bmp"
Scra_21_bmp:IncludeBinary "Data/Scra_21.bmp"
Scra_22_bmp:IncludeBinary "Data/Scra_22.bmp"
Scra_23_bmp:IncludeBinary "Data/Scra_23.bmp"
Scra_24_bmp:IncludeBinary "Data/Scra_24.bmp"
Scra_25_bmp:IncludeBinary "Data/Scra_25.bmp"
Scra_26_bmp:IncludeBinary "Data/Scra_26.bmp"
Scra_27_bmp:IncludeBinary "Data/Scra_27.bmp"
Scra_28_bmp:IncludeBinary "Data/Scra_28.bmp"
Scra_29_bmp:IncludeBinary "Data/Scra_29.bmp"
Scra_30_bmp:IncludeBinary "Data/Scra_30.bmp"
Scra_31_bmp:IncludeBinary "Data/Scra_31.bmp"
Scra_32_bmp:IncludeBinary "Data/Scra_32.bmp"
Scra_33_bmp:IncludeBinary "Data/Scra_33.bmp"
Scra_34_bmp:IncludeBinary "Data/Scra_34.bmp"
Scra_35_bmp:IncludeBinary "Data/Scra_35.bmp"
Scra_36_bmp:IncludeBinary "Data/Scra_36.bmp"
Scra_37_bmp:IncludeBinary "Data/Scra_37.bmp"
Scra_38_bmp:IncludeBinary "Data/Scra_38.bmp"
Scra_39_bmp:IncludeBinary "Data/Scra_39.bmp"
Scra_40_bmp:IncludeBinary "Data/Scra_40.bmp"
Scra_41_bmp:IncludeBinary "Data/Scra_41.bmp"
Scra_42_bmp:IncludeBinary "Data/Scra_42.bmp"
Scra_43_bmp:IncludeBinary "Data/Scra_43.bmp"
Scra_44_bmp:IncludeBinary "Data/Scra_44.bmp"
Scra_45_bmp:IncludeBinary "Data/Scra_45.bmp"
Scra_46_bmp:IncludeBinary "Data/Scra_46.bmp"
Scra_47_bmp:IncludeBinary "Data/Scra_47.bmp"
Scra_48_bmp:IncludeBinary "Data/Scra_48.bmp"
Scra_49_bmp:IncludeBinary "Data/Scra_49.bmp"
Scra_50_bmp:IncludeBinary "Data/Scra_50.bmp"
Scra_51_bmp:IncludeBinary "Data/Scra_51.bmp"
Scra_52_bmp:IncludeBinary "Data/Scra_52.bmp"
Scra_53_bmp:IncludeBinary "Data/Scra_53.bmp"
Scra_54_bmp:IncludeBinary "Data/Scra_54.bmp"
Scra_55_bmp:IncludeBinary "Data/Scra_55.bmp"
Scra_56_bmp:IncludeBinary "Data/Scra_56.bmp"
Scra_57_bmp:IncludeBinary "Data/Scra_57.bmp"
Scra_58_bmp:IncludeBinary "Data/Scra_58.bmp"
Scra_59_bmp:IncludeBinary "Data/Scra_59.bmp"
Scra_60_bmp:IncludeBinary "Data/Scra_60.bmp"
Scra_61_bmp:IncludeBinary "Data/Scra_61.bmp"
Scra_62_bmp:IncludeBinary "Data/Scra_62.bmp"
Scra_92_bmp:IncludeBinary "Data/Scra_92.bmp"
Scra_93_bmp:IncludeBinary "Data/Scra_93.bmp"
Scra_94_bmp:IncludeBinary "Data/Scra_94.bmp"
Scra_95_bmp:IncludeBinary "Data/Scra_95.bmp"
Scra_96_bmp:IncludeBinary "Data/Scra_96.bmp"
Scra_97_bmp:IncludeBinary "Data/Scra_97.bmp"
Scra_98_bmp:IncludeBinary "Data/Scra_98.bmp"
Scra_99_bmp:IncludeBinary "Data/Scra_99.bmp"
Scra_100_bmp:IncludeBinary "Data/Scra_100.bmp"
Scra_101_bmp:IncludeBinary "Data/Scra_101.bmp"
Scra_102_bmp:IncludeBinary "Data/Scra_102.bmp"
Scra_103_bmp:IncludeBinary "Data/Scra_103.bmp"
Scra_104_bmp:IncludeBinary "Data/Scra_104.bmp"
Scra_105_bmp:IncludeBinary "Data/Scra_105.bmp"
Scra_106_bmp:IncludeBinary "Data/Scra_106.bmp"
Scra_107_bmp:IncludeBinary "Data/Scra_107.bmp"
Scra_108_bmp:IncludeBinary "Data/Scra_108.bmp"
Scra_109_bmp:IncludeBinary "Data/Scra_109.bmp"
Scra_110_bmp:IncludeBinary "Data/Scra_110.bmp"
Scra_111_bmp:IncludeBinary "Data/Scra_111.bmp"
Scra_112_bmp:IncludeBinary "Data/Scra_112.bmp"
Scra_113_bmp:IncludeBinary "Data/Scra_113.bmp"
Scra_114_bmp:IncludeBinary "Data/Scra_114.bmp"
Scra_115_bmp:IncludeBinary "Data/Scra_115.bmp"
Scra_116_bmp:IncludeBinary "Data/Scra_116.bmp"
Scra_117_bmp:IncludeBinary "Data/Scra_117.bmp"
Scra_118_bmp:IncludeBinary "Data/Scra_118.bmp"
Scra_119_bmp:IncludeBinary "Data/Scra_119.bmp"
Scra_120_bmp:IncludeBinary "Data/Scra_120.bmp"
Scra_121_bmp:IncludeBinary "Data/Scra_121.bmp"
Scra_122_bmp:IncludeBinary "Data/Scra_122.bmp"
Scra_123_bmp:IncludeBinary "Data/Scra_123.bmp"
Scra_124_bmp:IncludeBinary "Data/Scra_124.bmp"
Scra_125_bmp:IncludeBinary "Data/Scra_125.bmp"
Scra_126_bmp:IncludeBinary "Data/Scra_126.bmp"
Scra_127_bmp:IncludeBinary "Data/Scra_127.bmp"
Scra_128_bmp:IncludeBinary "Data/Scra_128.bmp"
Scra_129_bmp:IncludeBinary "Data/Scra_129.bmp"
Scra_130_bmp:IncludeBinary "Data/Scra_130.bmp"
Scra_131_bmp:IncludeBinary "Data/Scra_131.bmp"
Scra_132_bmp:IncludeBinary "Data/Scra_132.bmp"
Scra_133_bmp:IncludeBinary "Data/Scra_133.bmp"
Scra_134_bmp:IncludeBinary "Data/Scra_134.bmp"
Scra_135_bmp:IncludeBinary "Data/Scra_135.bmp"
Scra_136_bmp:IncludeBinary "Data/Scra_136.bmp"
Scra_137_bmp:IncludeBinary "Data/Scra_137.bmp"
Scra_138_bmp:IncludeBinary "Data/Scra_138.bmp"
Scra_139_bmp:IncludeBinary "Data/Scra_139.bmp"
Scra_140_bmp:IncludeBinary "Data/Scra_140.bmp"
Scra_141_bmp:IncludeBinary "Data/Scra_141.bmp"
Scra_142_bmp:IncludeBinary "Data/Scra_142.bmp"
Scra_143_bmp:IncludeBinary "Data/Scra_143.bmp"
Scra_144_bmp:IncludeBinary "Data/Scra_144.bmp"
Scra_145_bmp:IncludeBinary "Data/Scra_145.bmp"
Scra_146_bmp:IncludeBinary "Data/Scra_146.bmp"
Scra_147_bmp:IncludeBinary "Data/Scra_147.bmp"
Scra_148_bmp:IncludeBinary "Data/Scra_148.bmp"
Scra_149_bmp:IncludeBinary "Data/Scra_149.bmp"
Scra_150_bmp:IncludeBinary "Data/Scra_150.bmp"
Scra_151_bmp:IncludeBinary "Data/Scra_151.bmp"
Scra_152_bmp:IncludeBinary "Data/Scra_152.bmp"
Scra_153_bmp:IncludeBinary "Data/Scra_153.bmp"
Scra_154_bmp:IncludeBinary "Data/Scra_154.bmp"
Scra_155_bmp:IncludeBinary "Data/Scra_155.bmp"
Scra_156_bmp:IncludeBinary "Data/Scra_156.bmp"
Scra_157_bmp:IncludeBinary "Data/Scra_157.bmp"
Scra_158_bmp:IncludeBinary "Data/Scra_158.bmp"
Scra_159_bmp:IncludeBinary "Data/Scra_159.bmp"
Scra_160_bmp:IncludeBinary "Data/Scra_160.bmp"
Scra_161_bmp:IncludeBinary "Data/Scra_161.bmp"
Scra_162_bmp:IncludeBinary "Data/Scra_162.bmp"
Scra_163_bmp:IncludeBinary "Data/Scra_163.bmp"
Scra_164_bmp:IncludeBinary "Data/Scra_164.bmp"
Scra_165_bmp:IncludeBinary "Data/Scra_165.bmp"
Scra_166_bmp:IncludeBinary "Data/Scra_166.bmp"
Scra_167_bmp:IncludeBinary "Data/Scra_167.bmp"
Scra_168_bmp:IncludeBinary "Data/Scra_168.bmp"
Scra_169_bmp:IncludeBinary "Data/Scra_169.bmp"
Scra_170_bmp:IncludeBinary "Data/Scra_170.bmp"
Scra_171_bmp:IncludeBinary "Data/Scra_171.bmp"
Scra_172_bmp:IncludeBinary "Data/Scra_172.bmp"
Scra_173_bmp:IncludeBinary "Data/Scra_173.bmp"
Scra_174_bmp:IncludeBinary "Data/Scra_174.bmp"
Scra_175_bmp:IncludeBinary "Data/Scra_175.bmp"
Scra_176_bmp:IncludeBinary "Data/Scra_176.bmp"
Scra_177_bmp:IncludeBinary "Data/Scra_177.bmp"
Scra_178_bmp:IncludeBinary "Data/Scra_178.bmp"
Scra_179_bmp:IncludeBinary "Data/Scra_179.bmp"
Scra_180_bmp:IncludeBinary "Data/Scra_180.bmp"
Scra_181_bmp:IncludeBinary "Data/Scra_181.bmp"
Scra_182_bmp:IncludeBinary "Data/Scra_182.bmp"
Scra_183_bmp:IncludeBinary "Data/Scra_183.bmp"
Scra_184_bmp:IncludeBinary "Data/Scra_184.bmp"
Scra_185_bmp:IncludeBinary "Data/Scra_185.bmp"
Scra_186_bmp:IncludeBinary "Data/Scra_186.bmp"
Scra_187_bmp:IncludeBinary "Data/Scra_187.bmp"
Scra_188_bmp:IncludeBinary "Data/Scra_188.bmp"
Scra_189_bmp:IncludeBinary "Data/Scra_189.bmp"
Scra_190_bmp:IncludeBinary "Data/Scra_190.bmp"
Scra_191_bmp:IncludeBinary "Data/Scra_191.bmp"
Scra_192_bmp:IncludeBinary "Data/Scra_192.bmp"
Scra_193_bmp:IncludeBinary "Data/Scra_193.bmp"
Scra_194_bmp:IncludeBinary "Data/Scra_194.bmp"
Scra_195_bmp:IncludeBinary "Data/Scra_195.bmp"
Scra_196_bmp:IncludeBinary "Data/Scra_196.bmp"
Scra_197_bmp:IncludeBinary "Data/Scra_197.bmp"
Scra_198_bmp:IncludeBinary "Data/Scra_198.bmp"
Scra_199_bmp:IncludeBinary "Data/Scra_199.bmp"
Scra_200_bmp:IncludeBinary "Data/Scra_200.bmp"
Scra_201_bmp:IncludeBinary "Data/Scra_201.bmp"
Scra_202_bmp:IncludeBinary "Data/Scra_202.bmp"
Scra_203_bmp:IncludeBinary "Data/Scra_203.bmp"
Scra_204_bmp:IncludeBinary "Data/Scra_204.bmp"
Scra_205_bmp:IncludeBinary "Data/Scra_205.bmp"
Scra_206_bmp:IncludeBinary "Data/Scra_206.bmp"
Scra_207_bmp:IncludeBinary "Data/Scra_207.bmp"
Scra_208_bmp:IncludeBinary "Data/Scra_208.bmp"
Scra_209_bmp:IncludeBinary "Data/Scra_209.bmp"
Scra_210_bmp:IncludeBinary "Data/Scra_210.bmp"
Scra_211_bmp:IncludeBinary "Data/Scra_211.bmp"
Scra_212_bmp:IncludeBinary "Data/Scra_212.bmp"
Scra_213_bmp:IncludeBinary "Data/Scra_213.bmp"
Scra_214_bmp:IncludeBinary "Data/Scra_214.bmp"
Scra_215_bmp:IncludeBinary "Data/Scra_215.bmp"
Scra_216_bmp:IncludeBinary "Data/Scra_216.bmp"
Scra_217_bmp:IncludeBinary "Data/Scra_217.bmp"
Scra_218_bmp:IncludeBinary "Data/Scra_218.bmp"
Scra_219_bmp:IncludeBinary "Data/Scra_219.bmp"
Scra_220_bmp:IncludeBinary "Data/Scra_220.bmp"
Scra_221_bmp:IncludeBinary "Data/Scra_221.bmp"
Scra_222_bmp:IncludeBinary "Data/Scra_222.bmp"
Scra_223_bmp:IncludeBinary "Data/Scra_223.bmp"
Scra_224_bmp:IncludeBinary "Data/Scra_224.bmp"
Scra_225_bmp:IncludeBinary "Data/Scra_225.bmp"
Scra_226_bmp:IncludeBinary "Data/Scra_226.bmp"
Scra_227_bmp:IncludeBinary "Data/Scra_227.bmp"
Scra_228_bmp:IncludeBinary "Data/Scra_228.bmp"
EDIT: Updated to PB4.0B11 (no needed any external user lib)

Posted: Sun Mar 12, 2006 5:52 pm
by KarLKoX
Uh ? not at the good place :)

Posted: Sun Mar 12, 2006 9:22 pm
by Psychophanta
KarLKoX wrote:Uh ? not at the good place :)
Oh, perhaps.
Besides the trick i've used in that code works fine only in some VGAs, but not in others, because that is not how it must be done, i think :?

Posted: Sun Mar 12, 2006 9:48 pm
by techjunkie
Image

Down memory Lane... :D :D

Posted: Sun Mar 12, 2006 10:33 pm
by KarLKoX
Image

The father :)

Posted: Sun Mar 12, 2006 10:55 pm
by traumatic
Soundtracker being the father?! No way! :D

Image

Posted: Sun Mar 12, 2006 11:18 pm
by KarLKoX
:shock:

Posted: Sun Mar 12, 2006 11:33 pm
by traumatic
KarLKoX wrote::shock:
hehe, Soundmonitor on C64 (by Chris Huelsbeck, 1986)

Posted: Mon Mar 13, 2006 12:56 am
by KarLKoX
I know that he wrote his soundtracker but never thought it was soundmonitor :-p
I admire good musicians who can also write excellent code like him or kb (farbrausch) :)

Posted: Mon Mar 13, 2006 11:18 am
by Psychophanta
KarLKoX wrote:I admire good musicians who can also write excellent code like him or kb (farbrausch) :)
Me too.
My preferred is Jochen Hippel. But he doesn't have a official web site :(