Jump to content

Mr SQL

Members
  • Content Count

    2,642
  • Joined

  • Last visited

Community Reputation

1,041 Excellent

2 Followers

About Mr SQL

Profile Information

  • Gender
    Male

Recent Profile Visitors

22,533 profile views
  1. Mr SQL

    bB wish list

    It would be cool to see an "old-school" mode for bB where no ASCII Art or compiler directives are required (either default directives or via a keyword language intrinsic) to allow competition in classic BASIC programming languages and more importantly to make learning easier for people who have used classic BASIC from the 70's and 80's. It might be possible to add an old-school mode via the IDE. Adding a [email protected] command for printing semi-graphic bit patterns at specific playfield positions would complement the set pixel x,y commands and is great for learning concepts visually like this bitwise example. That looks similar to BBC BASIC mixing asm and BASIC statements together with the concatenator and would be really cool.
  2. Great question! There are no while/wend statements but goto can be used in an if-then-else statement block to turn it into a while. line 3 is doing this: 3 if f<player0y/52 and joy0right=0 and SWCHB|247=255 then f=f+1:goto 9 else AUDC1=7:AUDF1=BITIndex/5:AUDV1=BITIndex:f=0 It will continue to increment f and jump to line 9 while all conditions are met but once f reaches the threshold (or other conditions are met) f is reset by the second statement block and code execution falls through to run the rest of the code.
  3. Here is a programming walk through to inspire A8 BASIC coders for the basic10liner.com programming competition that bB programmers may also enjoy! Familiarity with Atari 400/800 ANTIC display lists is helpful understanding SuperCharger BASIC display lists, but not necessary unless multiple scroll zones are defined:
  4. Educational walk through of SUPERBLITZ game entry features and visual effects Hoping to inspire more Atari 2600 10 line BASIC games for 2021! There are only two small rem statements in the code but SuperCharger BASIC is a very verbose classic BASIC with listings that are easy to understand. Biggest drawback to writing 10 liners in SuperCharger BASIC is that only one if-then-else statement is allowed per line and some language intrinsics take up many precious characters. Biggest feature is probably the Camera object; a soft ANTIC that is very easy for A8 programmers to conceptualize and control transparently setting x,y coordinates in BASIC: SUPERBLITZ uses the camera in simple mode to pan the entire screen, but a8 coders will like the display lists where horizontal sections of the screen can be split into multiple camera zones and scrolled independently. rem ---------------------------------------------------------------------------- rem --- SUPERBLITZ Throttle Control 3/2021 rem --- basic10liner.com competition verison rem --- Waves and Missions rem ---------------------------------------------------------------------------- rem --- Insignia on Plane revealed after Night Mission is completed! rem --- Multiple Waves over differently colored Sky's and Cities rem --- More optical illusions: Some color combinations create unreal artifacting such as textured bricks - rem --- complete several rounds and describe what you encounter! rem --- note: Classic hardware and a CRT required to experience artifacting textures and additional illusions rem --- unique features - you control your speed and difficulty increases as you play rem --- BW switch pegs the throttle (Advanced) rem --- Each wave achieved keeps it's colors in Attract mode! rem --- Unlimited continues until powering off the console! 0 data city 5,9,6,9,7,6,7,5,9,5,5,5,5,6,6,7,5,8,5,8,7,5,8,8,5,5,6,6,7,5,7,8,9,8,8,7,8,9,5,6,8,5,9,6,6,7,5,7,5,5,8,5 1 if g=0 or CXP0FB>126 then CXCLR=0:for j=0 to 9:player1(j)=189:player0(j)=pl(j):rowcolors(j)=178+w:next j else goto 3 2 for j=20 to 71:k=j-20:k=city(k):for i=k to 9:vwpixel(j,i,on):next i,j:player0y=96:player0x=84:y=11:g=1:w=16*z 3 if f<player0y/52 and joy0right=0 and SWCHB|247=255 then f=f+1:goto 9 else AUDC1=7:AUDF1=BITIndex/5:AUDV1=BITIndex:f=0 4 AUDV0=f:scrollvirtualworldtoggle=1:BITIndex=BITIndex+1:missile0x=missile0x+2:data pl 0,224,127,231,252,192,128,0 5 if joy0fire=1 and y>8 then AUDF0=12:AUDC0=9:SUSTAINFORFRAMES=7:x=BITIndex+9:i=96-player0y:i=i/10:y=1+i:remPlayahTune 6 if y<10 then vwpixel(x,y,bindplayer1):COLUP1=M(y):y=y+1:data M 122,138,12,170,154,250,234,218,202,186,42,58,74,28 7 if y<10 and vwpixel(x,y,poll)>0 then vwpixel(x,y,flip):player1x=0:player1y=0:AUDC0=y:y=21:AUDF0=4:AUDV0=15:rem Hit! 8 if BITIndex>71 then BITIndex=0:player0y=player0y-2 else missile1x=missile1x+1:missile1y=missile1y+3:rem SUPERBLITZ 86 9 if player0y=0 then g=0:player0colors(3)=14:player0colors(4)=112+z:COLUBK=M(z)-10:z=z+1 else missile0y=missile0y+2 The interesting optical illusion that you control with the throttle is designed for CRT, but it can be seen on LCD if you fully maximize the screen: (For Stella emulation turn off phosphor and merge frames as well) Try SUPERBLITZ online in Javatari!
  5. Discussion on bitwise operators inspired me to try illustrating them on the Atari 2600 with the print command The print command in SuperCharger BASIC prints binary strings to the Television screen for visualizing bitwise transformations or for game design. It's interesting that the + and - operators can also be leveraged as bitwise operators in BASIC provided the target bits they act on are set from the first bitwise op as in the two examples in lines 10 and 30. 5 rem Fun with SuperCharger BASIC on the Atari 2600! 7 rem using the BASIC print command with binary strings 8 rem to print output to the screen using the 9 rem bitwise operators & and, ^ xor, | or , + plus, - minus 10 i=%11111111 & %00001111 + %00100000:rem expect 00101111 20 k=%11111111 | %00001111:rem expect 11111111 30 j=%11111111 ^ %00001111 - %01000000:rem expect 10110000 40 l=%11111111 50 print i(virtualworld,1) 60 print k(virtualworld,13) 70 print j(virtualworld,25):print l(virtualworld,37) 90 vwpixel(13,1,flip):rem flip or set a single pixel 100 if g=0 then g=1:scrollvirtualworldtoggle=1
  6. Great question, and many good perspectives on this thread - Video games are art and some retro designs are artistic in a way that can only be properly displayed using simple classic hardware. Here's an example of a game for the demo scene, compared to a ZPH showing using more complicated setups involving emulation and modern displays: The ZPH show has a picture of a simple hardware setup but the upper left looks to be the Retron77 and the main screen PC emulation. Neither more complicated setup shows the game as it was designed to look using the simple hardware setup.
  7. Agree, particularly when coupled with a classic Television. Phosphor trails and hexagonal pixels make games that lack realism feel more real.
  8. Get Your Interpreters Ready—This Year's BASIC 10-Liner Competition Is Open For Entries - IEEE Spectrum The BASIC competition is open to all Atari 2600 BASIC programmers using SuperCharger BASIC which is similar to bB but allows for vintage BASIC programming using line numbers. Here's the BASIC listing for my entry this year to share with bB programmers to see the similarities - 0 data city 5,9,6,9,7,6,7,5,9,5,5,5,5,6,6,7,5,8,5,8,7,5,8,8,5,5,6,6,7,5,7,8,9,8,8,7,8,9,5,6,8,5,9,6,6,7,5,7,5,5,8,5 1 if g=0 or CXP0FB>126 then CXCLR=0:for j=0 to 9:player1(j)=189:player0(j)=pl(j):rowcolors(j)=178+w:next j else goto 3 2 for j=20 to 71:k=j-20:k=city(k):for i=k to 9:vwpixel(j,i,on):next i,j:player0y=96:player0x=84:y=11:g=1:w=16*z 3 if f<player0y/52 and joy0right=0 and SWCHB|247=255 then f=f+1:goto 9 else AUDC1=7:AUDF1=BITIndex/5:AUDV1=BITIndex:f=0 4 AUDV0=f:scrollvirtualworldtoggle=1:BITIndex=BITIndex+1:missile0x=missile0x+2:data pl 0,224,127,231,252,192,128,0 5 if joy0fire=1 and y>8 then AUDF0=12:AUDC0=9:SUSTAINFORFRAMES=7:x=BITIndex+9:i=96-player0y:i=i/10:y=1+i:remPlayahTune 6 if y<10 then vwpixel(x,y,bindplayer1):COLUP1=M(y):y=y+1:data M 122,138,12,170,154,250,234,218,202,186,42,58,74,28 7 if y<10 and vwpixel(x,y,poll)>0 then vwpixel(x,y,flip):player1x=0:player1y=0:AUDC0=y:y=21:AUDF0=4:AUDV0=15:rem Hit! 8 if BITIndex>71 then BITIndex=0:player0y=player0y-2 else missile1x=missile1x+1:missile1y=missile1y+3:rem SUPERBLITZ 86 9 if player0y=0 then g=0:player0colors(3)=14:player0colors(4)=112+z:COLUBK=M(z)-10:z=z+1 else missile0y=missile0y+2 The challenge is to write a game or demo in BASIC in 10 lines of 120 characters, or 10 lines of 256 characters. Check out the fantastic BASIC creations so far! Hope more Atari 2600 programmers will join in the fun!
  9. FLUIDCITY_B_Side_PlusCartClub_ThrottleControl.bin This is a custom version of my Fluid City B side edition game and demo from SillyVenture 2019 with the Throttle Control feature from SuperBlitz back ported: 10LINEBLITZ fun SuperCharger game! - Atari 2600 - AtariAge Forums The result is the same ability to control the game pace and in-game illusion but the high speed is mode is double fast in this version. The BW switch will peg the throttle (unwise during play) and activate a 30 Hz filter on the scrolling marquee to make the text easier to read. This expanded version features progressive rating messages with classic game room recommendations for PlusCart club as you progress and a longer motivational message if you win!
  10. Atari 2600 Entry - SuperBlitz Throttle Control: Waves and Missions! I missed the competition last year, here's my Atari 2600 entry this year, another remix of an 80's port of the same game with the same name SuperBlitz is my 5th entry into the BASIC 10 liners contest and the SQL to my first competition entry, 9 Line Blitz from 2016! More info on the game thread:
  11. SuperBlitz with throttle control This enhanced military sim now let's you control the illusion! Featuring an improved Martial soundtrack, lighting strikes and Anti Aircraft missile systems. SuperBlitz is a rewrite of my 80's SuperBlitz port of Blitz that was sold on Disk and Tape and later a magazine type-in, the full history is in this thread: This game is written in just 10 lines of BASIC and there is a BASIC 10 liner contest here if anyone would like to join in! 0 data city 5,9,6,9,7,6,7,5,9,5,5,5,5,6,6,7,5,8,5,8,7,5,8,8,5,5,6,6,7,5,7,8,9,8,8,7,8,9,5,6,8,5,9,6,6,7,5,7,5,5,8,5 1 if g=0 or CXP0FB>126 then CXCLR=0:for j=0 to 9:player1(j)=189:player0(j)=pl(j):rowcolors(j)=178+w:next j else goto 3 2 for j=20 to 71:k=j-20:k=city(k):for i=k to 9:vwpixel(j,i,on):next i,j:player0y=96:player0x=84:y=11:g=1:w=16*z 3 if f<player0y/52 and joy0right=0 and SWCHB|247=255 then f=f+1:goto 9 else AUDC1=7:AUDF1=BITIndex/5:AUDV1=BITIndex:f=0 4 AUDV0=f:scrollvirtualworldtoggle=1:BITIndex=BITIndex+1:missile0x=missile0x+2:data pl 0,224,127,231,252,192,128,0 5 if joy0fire=1 and y>8 then AUDF0=12:AUDC0=9:SUSTAINFORFRAMES=7:x=BITIndex+9:i=96-player0y:i=i/10:y=1+i:remPlayahTune 6 if y<10 then vwpixel(x,y,bindplayer1):COLUP1=M(y):y=y+1:data M 122,138,12,170,154,250,234,218,202,186,42,58,74,28 7 if y<10 and vwpixel(x,y,poll)>0 then vwpixel(x,y,flip):player1x=0:player1y=0:AUDC0=y:y=21:AUDF0=4:AUDV0=15:rem Hit! 8 if BITIndex>71 then BITIndex=0:player0y=player0y-2 else missile1x=missile1x+1:missile1y=missile1y+3:rem10LINEBLITZ II 9 if player0y=0 then g=0:player0colors(3)=14:player0colors(4)=112+z:COLUBK=M(z)-10:z=z+1 else missile0y=missile0y+2
  12. Great idea! This would be a fun game for the 2600 - it would be cool to see a few different versions of this game developed. Here's an idea for a pager version based on a similar conversion for another system where Gauntlet was ported as a pager:
  13. Cool game! You might like SuperCharger BASIC for implementing a fully scrolling version of ROTO, it would be a tight squeeze though at 6K.
×
×
  • Create New...