Title – FLYFLY
System – Nintendo Family BASIC
Author – Unknown
Publication – ファミコンソフト集001: ファミコン大作戦 (Famicom Software Collection 001 Famicom Strategy)
Page Scans – 1 2 3 4 5 6 7
Preserved By – ozidual
Recommended Emulator – VirtualNES
Translated Article:
The asteroid “S3612-09” has an environment where humans can survive. This seemingly peaceful world hides an unexpected danger. It seems that the research team from Earth is under attack by the “Fighter Fly”, a fly-like creature from Earth. The “Startship” is launched from Earth as a reinforcement to rescue the research team and build a base. However, when Komoriya approached, it was attacked by the Fighter Fly. It flew around and ramming into him… Every time the Fighter Fly hits it, the “Startship” loses fuel. If this continues, it will lose the fuel it needed to land… Oh, that’s the fuel unit that was launched from the asteroid. Oh dear.
Whoa, a meteorite!! If we get hit by that, it’s the end…
How to Play:
When you run the program “PUSH START BUTTON” will appear, so press the START button on Controller 1.
When the game starts, a “starship” is displayed. Use the controller’s directional buttons to move it left and right. Since it is in outer space, you will need a rocket engine to move it. When you use it once (press a direction once), 1 FUEL will be deducted. When you move once more, the fuel will be deducted again. Unless you fire the engine in the other direction, it will never stop. Therefore, if you move too violently, you will quickly run out of fuel and it will become impossible to control your movement.
To attack enemies, press the A button on the controller to fire a ball.
Characters that appear on the screen
- Fighter Fly
It flies straight down from the top of the screen. If it hits a starship, 10 FUEL will be lost. If it is shot down, 10 points will be awarded. - NitaNita (Grinning)
It moves horizontally from the top right to the left edge of the screen. These are enemy scouts, shoot them for 10-100 points. - Spinner
If you collect it (by crashing into it) with your ship, you will gain 50 FUEL - Fireball
A meteorite moves from the bottom of the screen to the top. If it hits your starship, it will be destroyed. The meteorite cannot be destroyed.
You have 3 starships and 300 fuel. Every 2500 points you get will give you an extra starship.
Program Description:
100 – Inital Settings
500 – Main routine
1000 – Ball launch
2000 – Characters appear and move
2500 – Collision processing
3000 – Score, FUEL, etc.
3500 – GAME OVER
Code:
100 CLS:CGEN2:CGSET1:SPRITEON:VIEW
110 PALET S 2,47,48,21,18
120 PALET S 3,47,48,39,22
130 DEFSPRITE0,(0,1,0,0,0)=”ピプペポ”
140 DEFSPRITE1,(0,1,0,0,0)=CHR$(180)+CHR$(181)+CHR$(182)+CHR$(183)
150 FL=10:SP=200:FI=50:NI=150
300 LOCATE0,10:PRINT”PUSH START BUTTON!”
310 IF STRIG(0)<>1GOTO310
320 SC=0:SH=2:B=2500
400 V=0:FU=300:CX=128:VIEW
410 GOSUB3000:GOSUB3100:GOSUB3200:GOSUB3300:SPRITE1
420 FORI=0TO5:POSITIONI,0,0:NEXT:POSITION6,255,255
500 IF STRIG(0)=8GOSUB1000
510 S=STICK(0):IF FU=0 GOTO540
520 IF S=1 THEN V=V+2:FU=FU-1:GOTO540
530 IF S=2 THEN V=V-2:FU=FU-1
540 CX=CX+V:GOSUB3200
550 IF CX<16 THEN CX=16
560 IF CX>144 THEN CX=144
570 SPRITE0,CX,120
580 IF XPOS(6)<255 AND MOVE(6)=0 THEN ERA6:POSITION6,255,255
590 FOR I=0 TO 5
600 IF ABS(XPOS(I)-CX)<16 AND ABS(YPOS(I)-120)<16 GOSUB2500
610 IF XPOS(I)-6<XPOS(6) AND XPOS(I)+14>XPOS(6) AND YPOS(I)-8<YPOS(6) AND YPOS(I)+16>YPOS(6) GOSUB1500
620 IF XPOS(I)=0 GOSUB2000:GOTO640
630 IF NOT MOVE(I) THEN ERAI:POSITIONI,0,0
640 NEXT:GOTO500
1000 IF MOVE(6) THEN RETURN
1010 DEFMOVE(6)=SPRITE(12,1,1,51,0,0):POSITION6,CX+4,112
1020 MOVE6:RETURN
1500 IF I>3 THEN RETURN
1510 IF I>0 GOTO1530
1520 J=RND(6)*10+50:LOCATE19,14:PRINTJ;” “:SC=(SC+J-10)MOD32760
1530 ERAI,6:POSITIONI,0,0:POSITION6,255,255
1540 SC=(SC+10)MOD32760:GOSUB3000
1550 IF SC>=B THEN SH=SH+1:GOSUB3300:B=(B+2500)MOD32500
1560 RETURN
2000 ONI+1GOTO2100,2010,2010,2010,2040,2070
2010 IFRND(FL)>0 THEN RETURN
2020 DEFMOVE(I)=SPRITE(2,5,1,88,0,2):POSITIONI,RND(129)+16,24
2030 MOVEI:RETURN
2040 IFRND(SP)>0THEN RETURN
2050 DEFMOVE(I)=SPRITE(7,5,3,88,0,1):POSITIONI,RND(128)+16,24
2060 MOVEI:RETURN
2070 IFRND(FI)>0 THEN RETURN
2080 DEFMOVE(I)=SPRITE(5,1,2,88,0,3):POSITIONI,CX,200
2090 MOVEI:RETURN
2100 IF RND(NI)>0 THEN RETURN
2110 DEFMOVE(I)=SPRITE(11,7,2,64,0,3):POSITIONI,144,24
2120 MOVEI:RETURN
2500 ONI+1GOTO2510,2510,2510,2510,2520,2530
2510 FU=FU-10:IF FU<0 THEN FU=0
2515 GOSUB3200:RETURN
2520 FU=FU+50:ERAI:POSITIONI,0,0:GOSUB3200:RETURN
2530 ERA0,1,2,3,4,5:SPRITE0:SPRITE1,CX,120:SH=SH-1
2540 POSITION5,0,0:FORJ=0TO999:NEXT
2550 IF SH=0 THEN RETURN3500
2560 RETURN400
3000 LOCATE19,6:PRINTSC:RETURN
3100 LOCATE19,2:PRINTHS:RETURN
3200 LOCATE19,11:PRINTFU;” “:RETURN
3300 LOCATE20,19:PRINTSH;” “:RETURN
3500 LOCATE5,5:PRINT”GAME OVER”
3510 IF SC>HS THEN HS=SC:GOSUB3100
3520 GOTO300





