Jupiter SS Firestorm Gamma by Mr SQL
About
------
Program Design from RelationalFramework, download more examples of 10 line games and SuperCharger BASIC:
http://relationalframework.com/Atari2600gamesonline.htm
Features:
---------
This game includes parallex scrolling and color cycling in BASIC with five algorithmic interactive chiptunes that can be mixed with the gameplay.
Some interesting BASIC intrinsics used:
print %11111110(virtualworld,x)
This prints the binary string to the virtualworld, which is much larger than the screen.
A for next loop is used to cover the territory in the setup initialization section, lines 1 and 2.
Note: print can be overloaded like the BIN$ BASIC function:
print 254(virtualworld,x)
This will print the same binary string, like the BIN$ function.
(Thank you AMSDOS on AtariAge for sharing this interesting function and the example!)
Character animation frame compression technique:
data F "H88<88,<088888,<0{{ APP_CONTENT }}lt;<88,<DD$8^8,<Cd<<<8,<6d<Z<8<<Cb<Z<0<<0({{ APP_CONTENT }}lt;<<8<0x8888,<DD$8^8,<088888,<0{{ APP_CONTENT }}lt;<88,<DD$8^8,<Cd<<<"
7-bit ASCII data is stored for the sprite animation allowing many more frames than otherwise possible.
The 7-bit subset requires approximations for all 8-bit patterns.
Animation for the Firestorm:
This already was built into the program and is read back when the 7-bit pseudo graphics frames complete.
Layered Sprite animation technique:
Sprite layering animation takes 8 frames to change a sprite instead of changing the sprite in a single frame.
Program Listing:
----------------
0 data F "H88<88,<088888,<0{{ APP_CONTENT }}lt;<88,<DD$8^8,<Cd<<<8,<6d<Z<8<<Cb<Z<0<<0({{ APP_CONTENT }}lt;<<8<0x8888,<DD$8^8,<088888,<0{{ APP_CONTENT }}lt;<88,<DD$8^8,<Cd<<<" 1 if g>0 then goto 3 else g=1:e=1:player0y=30:player0x=30:NUSIZ0=16:NUSIZ1=16:COLUP1=99: rem Smart method 2 for x=50 to 120:print %11111110(virtualworld,x):for y=4 to 9:rowcolors(y)=y*16:player0colors(y)=y*48:next x,y 3 if player0y=8 then e=1:t=t+16 else scrollvirtualworldtoggle=1:rem Play as the Torch, Flame on!Jump Fjords,catch Stars! 4 if f<8 then player0(f)=F(n):rowcolors(f)=rowcolors(f)+16:n=n+1:f=f+1:return else f=0:COLUBK=t:SUSTAINFORFRAMES=7 5 if e=1 and player0y<94 then AUDC0=11:AUDC1=player0y:AUDF1=n:player0y=player0y+4 else e=0:player0y=player0y-1:rem ID 6 if joy0right=1 and player0x<156 then player0x=player0x+1:REFP0=0:AUDF0=n:AUDC0=3:AUDF1=f*4:BITIndex=BITIndex+1 7 if joy0left=1 and player0x> 8 then player0x=player0x-2:REFP0=8:AUDF0=player0x/3:AUDC0=6:BITIndex=BITIndex-1:rem doh, 8 missile1x=missile1x+1:missile1y=missile1y+3:missile0x=missile0x+2:missile0y=missile0y+1::rem dohdoh That's all folks! 9 if CXM0P&64=64 or CXM1P&128=128 then CXCLR=0:COLUBK=64:AUDC1=7:AUDF1=20:AUDF0=30:missile1y=0:missile0x=0:rem end of 9