COWBOI=0 LASSO=0 SPEED=10 X=30 Y=60 BOISPRITE=62 LASSOSPRITE=61 FIRESPRITE=63 PROJID=0 DIM PROJ(10,9) FIREFRAME=0 LASSOFRAME=0 LASSOSTATE=-1 GAMEPAD 1 FOR I=0 TO 3 FILL $8000+16*128+256*I,64 NEXT I DO 'COWBOY SPRITE DX=LEFT(0)-RIGHT(0) ADD X, DX IF DX<>0 THEN IF TIMER MOD SPEED=0 THEN IF COWBOI<=0 THEN DIRECTION=1 ELSE IF COWBOI>=2 THEN DIRECTION=-1 IF COWBOI>=3 THEN COWBOI=3 END IF ADD COWBOI,DIRECTION IF COWBOI=0 OR COWBOI=2 THEN CALL PLAYSOUND(4) END IF SPRITE BOISPRITE FLIP 1-SGN(DX+1),0 SPRITE OFF LASSOSPRITE ELSE IF BUTTON (0,0) THEN COWBOI=4 SPRITE OFF LASSOSPRITE IF TIMER-FIREFRAME>0 AND BUTTON TAP (0,0) THEN D=((SPRITE.A(BOISPRITE)\8)MOD 2) SPRITE FIRESPRITE,X+1+(1-D)*22,Y+10,11 SPRITE FIRESPRITE PAL 7 FLIP D,0 FIREFRAME=TIMER IF PROJID=0 THEN PROJID=1 'TRACE PROJID CALL ADDPROJECTILE(PROJ(),PROJID,PROJID+1,X+1+(1-D)*22,Y+12,(1-2*D)*10,0.1,0,0,12,0,7,0) CALL PLAYSOUND(0) END IF ELSE IF BUTTON (0,1) AND LASSOSTATE=-1 THEN IF TIMER MOD SPEED=0 THEN IF LASSO<=0 THEN DIRECTION=1 ELSE IF LASSO>=1 THEN DIRECTION=-1 END IF ADD LASSO,DIRECTION CALL PLAYSOUND(3) END IF LASSOFRAME=TIMER COWBOI=5 D=((SPRITE.A(BOISPRITE)\8)MOD 2) SPRITE LASSOSPRITE,X+6+4*D,Y,Y-8 SPRITE LASSOSPRITE PAL 3 SIZE 1 FLIP D,0 CALL ANIMATION(LASSO,2,2,ROM(2),38,36) ELSE COWBOI=3 SPRITE OFF LASSOSPRITE END IF IF BUTTON (0,1) AND LASSOSTATE=0 AND PROJ(0,2)=0 AND PROJ(0,3)=0 THEN CALL PLAYSOUND(2) DX=PROJ(0,0)-(X+10) DY=PROJ(0,1)-(Y+20) L=DX*DX+DY*DY DX=100*DX/L DY=100*DY/L ADD PROJ(0,0),-DX ADD PROJ(0,1),-DY SPRITE PROJ(0,5),PROJ(0,0),PROJ(0,1),PROJ(0,6) SPRITE PROJ(0,5) PAL PROJ(0,8) SIZE PROJ(0,7) DX=PROJ(0,0)-(X+10) DY=PROJ(0,1)-(Y+20) IF ABS(DX)<20 AND ABS(DY)<20 THEN LASSOSTATE=1 SPRITE OFF PROJ(0,5) SPRITE OFF 20 TO 50 STOP 0 END IF END IF IF NOT(BUTTON(0,1)) THEN IF LASSOSTATE=0 AND PROJ(0,2)=0 AND PROJ(0,3)=0 THEN STOP 0 ELSE IF LASSOSTATE=1 THEN LASSOSTATE=-1 END IF END IF IF TIMER-LASSOFRAME=1 THEN D=((SPRITE.A(BOISPRITE)\8)MOD 2) CALL ADDPROJECTILE(PROJ(),0,0,X+13+(1-D)*-10,Y+0,(1-2*D)*3,0.1,-(1-D*2)*0.5,0.1,44,1,3,1) LASSOSTATE=0 THROWD=D CALL PLAYSOUND(1) END IF IF LASSOSTATE=0 THEN CALL ROPE(X+10,Y+20,PROJ(0,0)+1+THROWD*12,PROJ(0,1)+10,20,50) END IF CALL UPDATEPROJECTILES(PROJ()) CALL ANIMATION(COWBOI,2,4,ROM(2),132,129) IF TIMER-FIREFRAME>2 THEN SPRITE OFF FIRESPRITE END IF SPRITE BOISPRITE,X,Y,128 SPRITE BOISPRITE SIZE 3 PAL 6 N=5 'TRACE SPRITE.C(N),SPRITE.A(N),SPRITE.X(N),SPRITE.Y(N) WAIT VBL LOOP SUB ROPE(X1,Y1,X2,Y2,S0,S1) DX=X2-X1 DY=Y2-Y1 C=S1-S0 SX=DX/(C+1) SY=DY/(C+1) 'L=DX*DX+DY*DY 'S=L/C FOR I=0 TO C SPRITE S0+I,X1+SX*(I+1),Y1+SY*(I+1),28 SPRITE S0+I PAL 3 NEXT I END SUB SUB ANIMATION(V,X,Y,A0,V0,V1) FOR I=0 TO Y-1 COPY A0+16*(V0+V*X)+256*I,16*X TO $8000+16*V1+256*I NEXT I END SUB SUB PLAYSOUND(N) IF N=0 THEN 'SHOOT VOLUME 1,15, VOLUME 2,4, PLAY 1,73 SOUND 1 PLAY 2,65 SOUND 0 ELSE IF N=1 THEN 'THROW VOLUME 0,8, PLAY 0,70 SOUND 7 STOP 3 ELSE IF N=2 THEN 'DRAG VOLUME 0,7, PLAY 0,37 SOUND 8 ELSE IF N=3 THEN 'SWING VOLUME 3,4, PLAY 3,73 SOUND 10 ELSE IF N=4 THEN 'STEP VOLUME 3,4, PLAY 3,73 SOUND 9 END IF END SUB SUB UPDATEPROJECTILES(PROJ()) FOR I=0 TO UBOUND(PROJ) IF PROJ(I,2)=0 AND PROJ(I,3)=0 THEN 'NOTHING ELSE IF PROJ(I,0)>180 OR PROJ(I,0)<-20 OR PROJ(I,1)>148 OR PROJ(I,1)<-20 THEN IF PROJ(I,9)<>1 THEN SPRITE OFF PROJ(I,5) END IF PROJ(I,2)=0 PROJ(I,3)=0 ELSE 'GRAVITY Y-VELOCITY ADD PROJ(I,3),PROJ(I,4) 'X-VELOCITY X ADD PROJ(I,0),PROJ(I,2) 'Y-VELOCITY Y ADD PROJ(I,1),PROJ(I,3) SPRITE PROJ(I,5),PROJ(I,0),PROJ(I,1),PROJ(I,6) SPRITE PROJ(I,5) PAL PROJ(I,8) SIZE PROJ(I,7) END IF NEXT I END SUB SUB ADDPROJECTILE(PROJ(),N,ID,X,Y,P,S,A,G,CHR,SIZ,PA,TYPE) TRACE N,ID R=(RND*2-1)*S+A PROJ(N,0)=X PROJ(N,1)=Y PROJ(N,2)=P*COS(R) PROJ(N,3)=P*SIN(R) PROJ(N,4)=G PROJ(N,5)=ID PROJ(N,6)=CHR PROJ(N,7)=SIZ PROJ(N,8)=PA PROJ(N,9)=TYPE ADD N,1,0 TO UBOUND(PROJ) END SUB #1:MAIN PALETTES 2F0418000024100000243B0000241038 2F3926110039260000392400003C3834 #2:MAIN CHARACTERS 00000000000000000000000000000000 7557BEA58C4290BF8AA8415A73BD6F40 10A690D6363A6B21EF596F29C9C594DE F7D6FFDB9BB7F6FE0829002464480901 F7F7E7EFEFE7F7F70808181010180808 FF818181818181FF007E42427E427E00 C0C0C0C0C0C0C2C23F3F3F3F3F3F3D3D 0000000103070F1F03070F1E3C78F0E0 FFFFFFFFFFFFFFFF0000000000000000 00000000700CFBFE0000000070FC0701 000000000000A080000000000000A0C0 0000609864768C70000060F89C8EFC70 2070B040000000004080C06000000000 00000000000000000000000000000000 0000000078F78D660000000000087299 0000001B3EFCE0430000000401031FBC 00306FDD30FFB2100000902200004D20 0000FFFF00FFFF000030000030000030 00308F7730B7CF300040708884483000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FEFC705D7800000001038F7F78000000 7020C08000000000F020C08000000000 020F167D5CF020C001000902230EDC30 40C00000000000008000000000000000 FFFF9F81C1DDFFFF0000607E3E220000 0030000140000002FFCFFFFEBFFFFFFD FF3FFFFFFBFFFFBF00C0000004000040 00000000030E30200000000000000000 00000000FC0603010000000000000000 000000000F3860600000000000000000 00000000E03E03060000000000000000 FEFFFBF7EFFFBF7F01332E3B3A2B4080 FEFFFFF7FFFFBF7F0136442E14664080 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3C0F0818101010100000000000000000 07FC0000000000000000000000000000 3F0F020604040C080000000000000000 BC600000000000000000000000000000 FEFFFBFFEFFFBF7F01CAAECABAA44080 FEFDFFF7FFDFBF7F01DA94DC94F84080 00000000101818181F7140781F180000 000000000000000000FC041CF0000000 0000000010181818077C40781F180000 0000000000000000F00C047CC0000000 00000000101818181F71C0781F180000 000000000000000000FC041CF0000000 00000000000000001F7140780F000000 000000000000000000FC041CF0000000 0000000000000000077C40780F000000 0000000000000000F00C047CC0000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000E1E1C0000000C1E100000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000011F370000000000001830 00180D0707C7E3F338387D7776381C0C 78FCFCFEFFFFF0E078C4800800000000 00000000000000000000000000000000 00000000030F7FDF00000000000060C0 000103078FFFFFFF000103060C000000 F8FCFCFEFFFFF0E0F884000801030000 00000000000000000000000000047A79 00000000000000000000000002040408 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 77E7E3C10101010070E0E0C000000100 F3E7E7C3818181000C18181800008100 C0C08080808080000000000000008000 01030303000000000103030300000000 DF9F9F0F0E0C0C0CC08080000000000C FFFFE701010101010000000000000001 C0C08080808080800000000000000080 00000000102800007810101010280000 0000000000000000F000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FEFFFBF7EFFFBF7F01332E3B3A2B4080 FEFFFFF7FFFFBF7F0136442E14664080 FEFFFBFFEFFFBF7F01CAAECABAA44080 FEFDFFF7FFDFBF7F01DA94DC94F84080 000000000000070300010303373F0104 000000000000E0C00080C0C0ECFC4020 000000000000070300010303373F0104 000000000000E0C00080C0C0ECFC4020 000000000000070300010303373F0104 000000000000E0C00080C0C0ECFC4020 000000000000070300010303373F0104 000000000000E0C00080C0C0ECFC4020 000000000000070300010303373F0104 000000000000E0C00080C0C0ECFC4020 000000000000070300010303373F0104 000000000000E0C00080C0C0ECFC4020 FEFFFBF7EFFFBF7F01332E3B3A2B4080 FEFFFFF7FFFFBF7F0136442E14664080 FEFFFBFFEFFFBF7F01CAAECABAA44080 FEFDFFF7FFDFBF7F01DA94DC94F84080 030401000002020404030F0F0F1F1F1F C000C04000000000E0E0C0C0E0E0E0F0 03040100000008040403070F0F0F0F0F C000C04020000000E0E0C0C0E0E0E0E0 03040100000008040403070F0F0F1F1F C000C04000000000E0E0C0C0E0E0E0F0 030403030303030304031F1F3F3F3F3F C000E0E0C0C0C0C0E0E0F8F8F8F8FCFC 030403030303000004031F1F1F1F1F0F C000E0E0C0C0CF3FE0E0F8F8F8F8FFDF 030403030303030364737F7F7F3F3F1F C000E0E0C0C0C0C0E0E0F8F8F8F8FCFC FEFFFBF7EFFFBF7F01332E3B3A2B4080 FEFFFFF7FFFFBF7F0136442E14664080 FEFFFBFFEFFFBF7F01CAAECABAA44080 FEFDFFF7FFDFBF7F01DA94DC94F84080 04343830070302033F0F070707070F0F 180808D0F0E0F038E0F0F0F0F0E0F0F8 04040201070400010F0F0F0606070707 00000080C0E0E060E0E0E06060E0E0E0 02013030070001031F3F0F0707070F07 18F838D0F0C0D0B8E0C0C0F0F0E0F0F8 0303313B2F0707063F3F0F0F3F1F1F1E C0C00CDCF0F07070FCFCF0F0F6F2767C 0807010B0F0707060F0F0F0F1F1F1F1E 38C00CDCF0F07070CCFCF0F0F6F2767C 0303010B2F0707060F0F0F0F3F1F1F1E C0C00CDCF0F07070FCFCF0F0F0F07070 FEFFFBF7EFFFBF7F01332E3B3A2B4080 FEFFFFF7FFFFBF7F0136442E14664080 FEFFFBFFEFFFBF7F01CAAECABAA44080 FEFDFFF7FFDFBF7F01DA94DC94F84080 0F0E1E0C000000000F0E1E3C38180000 1C3C1808000000003C3C18181C1C0000 03030301000000000303030707070000 6060408000000000E0E0E0F0F0000000 070E1E0C00000000070F1E3C38180000 3C3C180800000000BC3C18181C1C0000 0E0E0E02140600000E0E0E0E0E0E0000 70707030A05000007070707070700000 0E0E0E02140600000E0E0E0E0E0E0000 70707030A05000007070707070700000 0E0E0E02140600000E0E0E0E0E0E0000 70707030A05000007070707070700000 #3:MAIN BG 00001410000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000706070E0000000000000000 00000000000000000000000000000000 000000000000000000000706080E080E 070E0000000000000000000000000000 00000000000000000000000000000000 0706080E080E080E080E070E00000000 00000000000000000000000000000000 0000000000000706080E050E05060506 050E080E070E00000000000000000000 0000000000000000000000000706080E 080E080E080E080E080E080E080E070E 0000000000000E000E000E0000000000 000000000000080E080E080E080E080E 080E080E080E00000F000E000E001F00 1F001F001F001F001F001F001F00080E 050605060606060E080E0506080E1F00 1F001F001F001F001F001F001E181E10 1E181E181E18080E080E080E0616061E 080E080E080E1E001E001E001E081E00 1E001E001E181E001E081E181E181E18 1E181E181E181E181E181E181E181E18 1E181E081E001E081E081E001E181E10 1E081E081E081E181E181E081E081E18 1E181E181E181E181E081E081E081E08 1E001E101E181E081E081E181E181E00 1E081E081E001E101E181E181E101E10 1E101E181E181E081E001E001E181E18 1E181E181E181E181E181E081E081E10 1E101E101E181E181E001E001E081E08 1E181E00 #15:MAIN SOUND 6F1EF95F18C80700780F108300000000 2F0070301CFF00002F0070301CFB0000 2F0070301C4F00002F0070301C490000 1C0020F01C000000781A555410F70000 38008B9F108503007C0433341C000000 3C00333404EB00000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 00404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 2A0F0000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000