Jump to content
IGNORED

10LINEBLITZ fun SuperCharger game!


Mr SQL

Recommended Posts

1759212256_SuperBlitzGameScreen500x375.jpg.e85327f6c4d0cd73d47ca8109f457d3f.jpg

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:

 

10 Line Blitz is a new Atari game for the SuperCharger with many enhancements over 9 Line Blitz! ? 

 

Features:

Algorithmic Music Composition - Changing musical scores and sound Fx, interactive and computer generated during gameplay.

Ramping Difficulty - Game starts out easier to play than 9 line Blitz

Optical Illusion - Optical illusion effect which vanishes as difficulty ramps!

Advanced Play - BW switch

 

Read hardware recommended and a classic Television, if using an emulator make sure to turn off phosphor effects and merge frames!

 

BASIC just like you remember it back in the day!  - This game was written in vintage BASIC using 10 lines of 120 characters or less:

 

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 then for j=0 to 9:player1(j)=189:player0(j)=pl(j):rowcolors(j)=178:next j else goto3:data pl 0,224,127,231,252 
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:COLUP1=99
3 if f<player0y/52 and SWCHB|247=255 then f=f+1:goto 9 else AUDC1=7:AUDF1=BITIndex/5:AUDV1=BITIndex:f=0:rem Theme Music
4 COLUBK=0:AUDV0=0:scrollvirtualworldtoggle=1:BITIndex=BITIndex+1:missile0x=missile0x+2:data P 192,128,0
5 if joy0fire=1 and y>8 then AUDF0=12:AUDC0=9:SUSTAINFORFRAMES=15: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 99,84,180,164,50,68,196,148,244,84,36,9:rem Do Rainbow  
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 10LINEBLITZ
9 if CXP0FB>126 or player0y=0 then CXCLR=0:g=0:for i=0 to255:AUDF0=i:AUDV0=i:COLUBK=$34:next else missile0y=missile0y+2

 

The BASIC compiler for the SuperCharger is available free on my site here

 

Have Fun! :)


EDIT New version: 10LINEBLITZ II Waves and Mission  

 

What's new?

 

  rem --- 10LINEBLITZ II - Waves and Missions

  rem --- Insignia on your Plane is revealed after you complete your Night Mission! 
  rem --- Multiple Waves over differently colored Sky's and Cities
  rem --- More optical illusions: Some color combinations create unreal artifacting such as textured bricks - 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
  rem --- Each Wave achieved keeps it's colors in Attract mode
  rem --- Unlimited continues to complete the Missions until powering off

 

SuperBlitz Throttle Control:

SUPERBLITZ.bin

10LINEBLITZII (code in post 7) :) 

10LINEBLITZII.bin

Original version of 10LINEBLITZ: 

10LINEBLITZ.bin

 

Edited by Mr SQL
SuperBlitz
  • Like 8
Link to comment
Share on other sites


10LineBlitz inspired some lively discussion on the Facebook Homebrew games page! :) 

 

Here's my response to some of the questions and comments in the discussion:

 

Atari2600HomebrewGroup_10LineBlitz.thumb.JPG.1c784af884020d42e4e9c0d7133b8cbb.JPG

 

This is not bAtari BASIC - 

 

This game is written in SuperCharger BASIC which is similar to old-school BASIC like we used in the 80's. SuperCharger BASIC is available to download here with more BASIC games and utilities.

 

How lage is a 10 line BASIC game really once the program is compiled to binary?

 

This is a great point, the compiled size can be larger than you would expect because a single BASIC statement may generate multiple machine language statements.

 

So Here's how big 10LineBLITZ is - first some info on the SuperCharger since that is the Cart it runs on, this is a Cart with a 6K RAM board to load games - the RAM made it a lot like the RAM boards for the 1975 Altair and this enables classic BASIC programming which is RAM based:

 

supercharger_starpath_pal_cart_2.thumb.jpg.56a593f10c8d72abbc557fe45bc15c9b.jpg

 

 

Here is another picture from the SuperCharger BASIC IDE, showing the game being compiled into a ROM binary - 

 

In the picture the BASIC ROM occupies 2.2K, leaving 3.5K free to BASIC and 300 bytes of reserved space. 

 

The compiled game occupies about 1100 bytes of binary code in the ROM binary, and the BASIC runtime is 2.2k totaling just over 3K of ROM used:

 

10LineBlitz_BASIC_Program_compile_size.thumb.JPG.d02c81a097b6ae5739a3b48b8cb3344c.JPG

 

Discussion about the BASIC concatenator operator:
 
The BASIC concatenator operator ":" is actually different than just another statement because it's horizontal structure allows nested if-then-else logic blocks. There is a more detailed explanation on my site near the bottom of the page using another 10 line BASIC game as example.    

 

Question about the score:

 

There is another version of BLITZ here from the SillyVenture 2019 Atari art competition that provides a score in the form of rating your progress. This version is similar and contains the vanishing illusion demo, but interestingly it runs at twice the framerate and twice the Hz, so the faster game is more of an impossible-to-play demo. The version here with the ramping difficulty is I think the best so far... but I'm sure I'll write another version, Blitz is a fun classic to write and to play! :) 

 

More versions of Blitz! written in more versions of BASIC:

 

The colorful picture in the opening post is SuperBlitz which I wrote in Microsoft BASIC in 1986 for the Radio Shack CoCo III, for anyone who wants to type-in or just read the classic BASIC listing it is here from Dynamic Color News, an 80's Color Computer magazine.  

 

I also wrote a version of Blitz in batari BASIC here in 2011, which uses a similar random algorithm to SuperBlitz to draw the buildings.

 

Machine language versions of BLITZ - I wrote a Machine Language version in 1984 for the CoCo I/II after playing the game on the VIC-20; this version is availble in the CoCo archives here for anyone with an emulator or the classic hardware to play on:


https://colorcomputerarchive.com/repo/Disks/Games/City Bomber (The Saint John Gallery).zip

 

 

Edited by Mr SQL
SillyVenture link
  • Thanks 1
Link to comment
Share on other sites

And there is another awesome Machine Language port of BLITZ  here  by @frenchy_frogger  

 

I have a Blitz genre folder on my flashcart with all of these ports including Caynon Bomber. I like playing different ports of the same genre for the major and subtle design differences the programmer/artist creates. 

 

Does anyone know of any other homebrews or classics inspired by BLITZ? 

 

Link to comment
Share on other sites

1723295131_SuperBlitz_TD_Software_Games_Pac.thumb.jpg.3caafbfdebcb7c6379d18f854b91c8a2.jpg

Found another release of SuperBlitz in a Tape mix from T&D Subscription Software. It's available for Download here for anyone who has CoCo3 hardware or the emulator:

https://colorcomputerarchive.com/repo/Disks/Magazines/T&D Software.zip

 

Subscription Software mix Tapes:

 

T&D Subscription software was very cool sending subscribers a new mix Tape (or floppy mix) containing several games every month, the games included fantastic ports of classic Atari 2600 games like Chambers and Sailor Man, an awesome port of Popeye.

 

The screenshots for games from other issues show Draconian and LunchTime, both awesome ports.

 

Interestingly some of these excellent quality games were repros having been released years earlier by other companies and some were then repro'd again in turn to end up printed as Type-in's in magazines, like SuperBlitz.


Imagine getting a new Tape in the mail every month with classics and homebrews for the Atari 2600? :) 

 

A new Atari 2600 Mix Tape is comming out - A French company is putting together a one-off release of a Coffee Table Atari book with a SuperCharger mix Tape.

 

The unreleased SuperCharger game Berzerk Friendly Fire, and several SuperCharger homebrew repros will be included! I will also be including an unreleased version of 10 Line Blitz that plays the same except the illusion is missing for fun coffee table discussion.

 

Tape mixes are a lot of fun, it was awesome to collect a full set with all those interesting ports of the classics!  The zip download I linked above has the full set from T&D. 

 

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Interesting sound study - the algorithmic chiptunes sound very different on real hardware, here is a video of my Vader with a tube television, and the Retron77 running the community build of Stella.  The game looks good on both displays (Plasma wasn't bright enough for the Camera to pickup well) but the sound is quite different -

 

the chiptunes render pleasantly on the real hardware but not as well under emulation, so use real hardware to play this game if you have it.

 

Other interesting observation - I shot this off of a Vader model but with the Atari Junior an additional arpeggio emerges in the first tune because the algorithm is leveraging idiosyncrasies in the analog circuitry to create the music. 

 

Steps to hear both tunes:  The chiptune changes when the difficulty increases or via the bw switch.

 

 

 

  • Like 1
Link to comment
Share on other sites

10LINEBLITZ II - New version! :)

 

I must be thinking similarly to @KevKelley because I've written a new version that exploits intentional Glitches on the classic Hardware to do some really fun stuff! 

 

And most of the enhancements still work in the emulator too, just not the extra features.

 

Details: I was inspired by this article on VIC-20 Blitz and found the genre started out on the Commodore PET with a BASIC type-in in a computer magazine.

 

What's new:

 

  rem --- 10LINEBLITZ II - Waves and Missions

  rem --- Insignia on your Plane is revealed after you complete your Night Mission! 
  rem --- Multiple Waves over differently colored Sky's and Cities
  rem --- More optical illusions: Some color combinations create unreal artifacting such as textured bricks - 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
  rem --- Each Wave achieved keeps it's colors in Attract mode
  rem --- Unlimited continues to complete the Missions until powering off
 

Here is the ROM for 10LINEBLITZ II - Al or a Mod please let me have edit rights to the 1st post! :) 

 

10LINEBLITZII.bin

 

And the code - the game is still 10 lines of classic BASIC with 120 characters per line: 

 

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 SWCHB|247=255 then f=f+1:goto 9 else AUDC1=7:AUDF1=BITIndex/5:AUDV1=BITIndex:f=0:rem Theme Music 
4 AUDV0=0: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=15: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

 

I'm not sure what happens if you make it beyond 14 Waves; after that the game reads past the color arrays into the program code which may or may not create an aesthetic level. 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

PersonalComputerWorld1979AirAttack.thumb.JPG.f15fd71e3e9273e962aa9fe98de249f7.JPG

 

I found the 1979 BASIC listing for Air Attack, the original game for the Commodore PET.

It was a type-in game in the December 1979 Edition of Personal Computer World magazine:

 

https://archive.org/details/PersonalComputerWorld1979-12/page/92/mode/1up

 

PET Air Attack had a contemporary release with Atari 2600 Canyon Bomber and was similarly inspired by the earlier arcade version.

 

Another BLITZ for the Atari - this game has a colorful history in so many ports! :)

 

Also found another Batari BASIC version of BLITZ here by @SeaGtGruff:

 

Interestingly there is a discussion of another version in Assembly that was abandoned or may possibly exist as a prototype.
 

  • Like 1
Link to comment
Share on other sites

I can remember seeing many clones of Blitz on the home micros in the early 1980s.  It was also a good programming excercise for budding programmers back then.  I'm finding these posts quite nostalgic, odd as I took these program listings for granted at the time.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Voxel said:

I can remember seeing many clones of Blitz on the home micros in the early 1980s.  It was also a good programming excercise for budding programmers back then.  I'm finding these posts quite nostalgic, odd as I took these program listings for granted at the time.

X2! I feel very nostalgic for type-in BASIC games from the old computer mags, particularly the short programs like Air Attack, I'm still amazed at how small the listing is for such a fun game. The programmer could easily fit it into the 10 line x 120 char programming competition limit using the ":" concatenator to combine statements.

 

Yes typing in the code was such a fantastic way to learn! There is an interesting discussion happening on the Batari BASIC thread about these small programming examples in the old text books and magazines being increasingly inapplicable with Todays' modern BASIC's as they grow in complexity.

 

  • Like 1
Link to comment
Share on other sites

Here's a link to play 10LINEBLITZII in Javatari! :) 

 

Input Lag and emulation - 

 

Wanted to share this info with @Paulo Peccin and @JetSetIlly, this game is great for testing emu input lag.

 

It's much easier to beat the game real hardware than in Stella because of variable input lag - the game  throttles down to require 1/30 of a second accuracy to AIM and starts out with a bit more time, but the variable input lag can wreak havoc making it much harder to play.

 

From my tests, the Flashback Portable emu has the most responsive input controls with Stella comming in second and Javatari 3rd - imo this is a good area for emu's to improve to more closely match real hardware.

 

More fun stuff from the 80's...

 

Found this ad for my 80's ML version of Blitz in Rainbow Magazine surrounded by BASIC type-in's  -

what looks to be a pretty adventure game and a one line Golf game:

 

Rainbow_Magazine_all_about_BASIC_Programming.thumb.JPG.db85aaf4caf8e48ed43efacc00f308bf.JPG  

 

Also found two seemingly impossible BASIC demos Revolving Balls and TaffyBall! :)  

  

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...
On 6/13/2020 at 10:20 PM, Mr SQL said:

Here's a link to play 10LINEBLITZII in Javatari! :) 

 

Input Lag and emulation - 

 

Wanted to share this info with @Paulo Peccin and @JetSetIlly, this game is great for testing emu input lag.

 

 

I've added preliminary Supercharger support to Gopher2600. It's good enough for many Starpath games and 10LINEBLITZII.

 

Maybe you could have a look at the input lag and let me know what you think and if there is any indication that input could be improved.

  • Like 1
Link to comment
Share on other sites

23 hours ago, JetSetIlly said:

 

I've added preliminary Supercharger support to Gopher2600. It's good enough for many Starpath games and 10LINEBLITZII.

 

Maybe you could have a look at the input lag and let me know what you think and if there is any indication that input could be improved.

Very cool I will give it a try! 

  • Like 1
Link to comment
Share on other sites

  • 7 months later...

1759212256_SuperBlitzGameScreen500x375.jpg.e85327f6c4d0cd73d47ca8109f457d3f.jpg

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

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...