Hare Basic for the Commodore 64

Our friend Robin at 8-Bit Show And Tell lets us know of this cool and free Commodore 64 BASIC 2.0 extension, of a sort, called Hare Basic. It’s a successor to an earlier version called Bunny Basic. Here’s the video, 48 minutes long. My comments on it follow below, which you can read either after having watched the video, or before, depending on of you have most of an hour to spare right now.

Here are the downloads, which are hosted on the creator’s Dropbox, so availability may fluctuate.

Commodore BASIC is, in many ways, the worst of all worlds. It’s a slow interpreted language, a variant of infamous Microsoft BASIC, and it has almost no machine-specific features, but it comes with the machine, and it’s burned into ROM. You can swap it out for extra RAM if you have a replacement OS or are running something in pure machine code.

I could go on for a long time about the problems with Commodore BASIC 2.0, a language I’m quite familiar with having spent much of my teens programming in it. Sometimes it feels like it was designed especially to run slowly. One example: it supports floating point math, which ordinarily would be a good thing, right? Use integer math for performance, and just use floats when you need decimals, right? But no: internally, Commodore BASIC converts integer variables into floats when doing any math with them, and converts them back to store as integers when it’s done. Wilberforce Trafalgar Franklin?! Why?! It does these unnecessary extra steps to do all arithmetic as floating point even when it doesn’t need do, and doesn’t offer a way to do performant integer math at all! Need I remind you that Microsoft BASIC is based upon software written by Bill Gates himself? I suspect that I don’t!

Hare Basic is a highly optimized subset of Commodore BASIC that can be switched on and off as needed. It has to be coded in a special way which might throw beginners for a loop: Hare Basic can’t abide whitespace, for example, only allows for variables of one letter in length, has no support for modifying strings, and contrary to Commodore BASIC can only do integer math. There’s lots of other differences too, and if you want to play around with it it’s essential that you study the manual.

But once you get used to it, it runs blazingly fast, sometimes as much as 10 times faster! And the best part is you don’t have to use it for everything. You can start out with a standard Commodore BASIC program, then enter into Hare Basic mode with a USR function call. You could write your whole program in Hare if you’re up for it, or just loops, or other places where performance is necessary.

Of course, this is ultimately an enhancement for a programming language that runs on a home computer made in 1984. It’s not what one might consider of universal interest. But it might be of interest to the kinds of people who read this site. It’s interesting to me, at least. Maybe I should dust off VICE and see what I can do with it? I haven’t coded on a ’64 in nearly three decades, maybe I should get back into that….

Commodore Free Magazine

My already distorted psyche feels pulled in multiple directions lately. In addition to packing up Dungeon for itch.io, creating the manual for it, finishing up a huge update to my Mystery Dungeon book for Limited Run games, researching (meaning: playing) Shiren the Wanderer: The Mystery Dungeon of Serpentcoil Island, and looking into other things, it’s made it difficult to keep up with the blog. But, keep up with it I am!

Keeping aligned with the C64 angle, Today’s find is COMMODORE FREE Magazine, a long-running Commodore 64 magazine in PDF format that’s been going since late 2006. It recently published its 98th issue, meaning, #100 should be bursting forth before too long! Until then issue 98 features include a history of Commodore’s 8-bit line, a comparison of versions of Commando for their favorite machines, reviews of a Commodore port of Sonic the Hedgehog and the classic title The Sentinel, and a long piece of personal non-fiction by Leonard Roach.

At 15 years running, that starts to put it in striking distance of LOADSTAR’s run! May it keep on keepin’ on.

COMMODORE FREE Issue 98Homepage

TrueType Unicode versions of the Amiga System Fonts

Strictly speaking they’re not from a game, but the Amiga was regarded as a gaming computer, so you may be interested in these modern-OS compatible versions of the Amiga system font Topaz, with extra characters done in the style of the originals! They’re made by “Screwtapello” on Mastodon!

Amiga Topaz Unicode Nerd Font (gitlab.com)

NES and Commodore 64 Games Compared

Greg’s Game Room on Youtube looked at 28 games with both NES and Commodore 64 versions. It’s not by any means all of them, but a good selection. Usually its the NES version that’s better, but there are some surprising upsets, especially if the game originated on a microcomputer platform.

The Commodore games that won out are Ballblazer, Castelian, Die Hard (but the C64 version’s really different), Ghostbusters, Ghosts ‘n’ Goblins, Q*Bert and (surprisingly) Smash T.V. Decent C64 games that nevertheless lost are Blades of Steel, Commando, Donkey Kong, Mighty Bomb Jack and Super Mario Bros. (rated were both the similar Great Giana Sisters and the recent fanmade version of SMB that uses advanced scrolling tricks). Gyruss, Mario Bros. and Pac-Man were rated at a tie.

Nintendo vs Commodore 64, 28 Games Compared (Youtube, 46 minutes)

Alien Invaders Plus for the Commodore 64

Last year we put a spotlight on a Commodore 64 remake of possibly the most popular Odyssey2 game, K.C. Munchkin. Well, here’s another, of Space Monster, a.k.a. Alien Invaders – Plus! I assure you, the exclamation point there belongs to Magnavox.

The Odyssey has gotten more talk on this site than its much-more-powerful successor, which was still kinda weak compared to its competition. People still talk about the Atari VCS/2600 even now 45 years after its introduction; the Intellivision still gets some love; but who talks about the third place system, the Odyssey2? Fourth if you count the Colecovision, but that machine, released in August 1982, was only on the scene for a relative instant, the Crash already fomenting by that time.

Alien Invaders – Plus (I’m going to leave off the bang now thanks) was Magnavox’s attempt to capitalize on the gigantic success of Space Invaders. The box didn’t hide its inspiration, outright saying: A fiendish new dimension comes to one of the most popular arcade games of all time! By that time, the market had already determined that Atari’s miraculous licensed version of Space Invaders was probably the best, a game that, while subtly different, actually improved on the original in some ways. Similarly, while everyone now can play the original Space Invaders in MAME if they’re inclined, Alien Invaders – Plus (which Craig Kubey in The Winner’s Book of Video Games derided as Space Invaders – Minus!) is more interesting for the interesting departures from the arcade game, and the Commodore 64 remake mimics them faithfully.

At first it looks vaguely similar to Taito’s arcade hit. There’s rows of aliens in the sky, there’s a roundish alien going back and forth above them, you have a base at the bottom that can move back and forth and shoot up at the enemy, and there’s even shields above it that can be dodged behind for safety.

Loading screen for C64 version of Alien Invaders Plus.

The first difference comes from the aliens themselves. In Space Invaders, while they looked different and were worth different amounts of points, they all behaved exactly the same. Here, each of the three rows of foes plays by different rules. The bottom-most are just barriers, they can’t be destroyed but they don’t shoot at you either. Any shot that hopes to hit targets higher up on the screen must get through them. The middle row are yellow laser cannons, and they shoot down at you. The top row are red humanoid robots that operate the cannons. The wandering eye-like alien at the top is called the “Merciless Monstroth,” but I’m sure its mother loves it just the same.

Like Space Invaders, the alien formation rains down bombs on you, and it’s easy to get hit. Unlike Space Invaders, there’s a limit to how far the aliens can descend, right above the shields, and you’ve never in danger of being overrun. If you wait beneath a shield you cannot be shot, but neither can you shoot the enemies. Also, in each row, all you have to do is hit either the robot or the cannon in order to stop them from shooting down at you.

To finish a level, you have to shoot all the robots and cannons on the screen. This will cause the Merciless Monstroth to get serious about you, swoop down from the top of the screen and hover just above your shields, trying to bomb you. At that range dodging its shots is very difficult, and it’s evasive of your shots, but you can still zap it safely with a well-timed shot as it reaches your base’s horizontal position.

Your reward for doing all of that is one single point. Your score is just how many boards you’ve cleared. No bonus points or anything like that are awarded.

If your ship gets hit you don’t perish immediately. A little person is revealed to have been moving it. If you can move it to beneath one of your shields and press the fire button, you’ll be given a new base! This, however, costs you that shield. The shields are basically your lives; if you run out of them, and your base gets destroyed again leaving your guy, then you’re essentially screwed. Your little base-inhabiting person has no weapons of their own. If you get down to no shields left before destroying all the aliens, M.M. will sense its opportunity and swoop down at you early. Destroying it at this time, or while its at the top of the screen, before all the other aliens are obliterated doesn’t clear the wave; the game will just send another one out, again and again, until you’ve finished the job.

If your base person is shot while outside of a base, you don’t quite die. Instead, the enemy gets a point. While you’re trying to get to ten points yourself, the enemy is also trying to get to 10, and the side that gets there first “wins the game.”

Despite all the chances the game gives you, it’s really hard! You’ll find the green circles block most of your shots, and the cannons are really good at predicting where you’ll be and aiming a shot there, and the enemy shots move quickly. Since reforming your base costs you the shield you’re beneath, often you’ll get your base back and lose it again immediately as the barrier disappears.

The Commodore version was created by demo group Second Dimension. It’s worth playing in preference to the Odyssey2 version if only because C64 emulation is understood than Odyssey2 emulation. There’s multiple Commodore emulators, at least, while only one Odyssey2 emulator that I know of.

Here is the Commodore 64 version is action, from the channel C64 Masters on Youtube.

Here is the game’s page on CSDb. Prepare be humbled!

Jason Scott Reminds Us Of Software On Cassette Tapes

I had one of these, although it got pretty decrepit later on. Images here from the article on the Internet Archive.

Commodore users of a certain intersection of class and age will remember the Datasette, a custom tape player that early Vic-20 and C64 users could use to load and save their programs on standard “Compact Cassettes.” This was a very slow process, that was so timing intensive that the C64 had to blank its screen during it, because its graphics chip demanded exclusive access to memory while it got the needed data each frame to render graphics. Of course things were rather different in Europe, where cassette tapes were a much more viable medium, and tape loading could actually be faster than the 1541 disk drive (a notably flawed and slow design).

The Atari 8-bit counterpart to the Datasette

Scott walks through this unique period of home computing history. I still have tapes of old Commodore software lying around (because I rarely can bring myself to throw such things out). Maybe some day, if I can get my old Commodores working and displaying again, I’ll try them out and see if they work.

But fortunately, for commercial cassette software archived on the Internet Archive, you don’t have to go through such lengths! Although you can still wait for software to load if you want to! The IA offers emulated software for both the Sinclair ZX-81 and Commodore 64 that are supplied on virtual tapes, so you too can experience the exciting process of waiting for programs to load. In Scott’s words: “Incomprehensible! Mysterious! Uninformative! Welcome to home computing in the 1980s!

I notice that much of the Commodore 64 software mentioned in the article actually had tape loading graphics. I can’t explain this. It kind of makes me feel cheated, from the many times I sat watching a blank light-blue screen. Presumably the UK coders who made much tape-based 64 software had, in their tape-loading bag of tricks, a way to overcome the VIC-II’s timing issues. I wouldn’t doubt it.

The Easy Roll and Slow Burn of Cassette-Based Software (Internet Archive)

On PETSCII

We’ve brought up a couple of examples of Commodore PET software lately, which as I keep saying, is interesting because the PET has no way of doing bitmapped graphics, sprites, or even definable characters. Its characters are locked in ROM and cannot be changed. So, it includes a set of multi-purpose characters that was used throughout all the Commodore 8-bit line, even as late as the C64 and C128, which having definable graphics didn’t need these kinds of generic graphics characters, but they were still useful for people who didn’t want to create their own graphics.

The PETSCII characters, as used on the Commodore 64 (image, with some editing, from Wikipedia). The graphics set also includes reverse-video versions of each character.

Back on my Commodore coding days I became very familiar with these characters. I think they’re much more universally-applicable for graphic use than the IBM equivalent, the famous Code Page 437, although that’s mostly because PETSCII doesn’t bother defining supporting so many languages. Code Page 437 also uses a lot of its space for single and double-line versions of box-drawing characters, although on the other hand it doesn’t waste characters defining reverse-video versions of every glyph.

PETSCII has:

  • A space and reversed space, of course.
  • Line drawing characters for boxes of course: vertical and horizontal lines, corners, and three- and four-way intersections. There are also curved versions of the corners.
  • More line-drawing characters for borders.
  • Still more horizontal and vertical lines, at each pixel position within their box.
  • With the reverse-video versions, enough characters to effectively do a 80×50 pixel display, as if it had a super low-res mode.
  • Different thicknesses of horizontal and vertical lines too.
  • Diagonal lines, and a big ‘X’. Note that on the PET and Vic-20 these lines were all one pixel wide, but on later computers with both better resolution and color graphics they were made thicker, which means diagonal lines have “notches” between character cells.
  • Other miscellaneous symbols: playing card symbols, filled and hollow balls, and some checkerboards for shading. On the PET and Vic, the shading characters were finer, while on the other 8-bit computers they were made of 2×2 boxes.

There are resources that let you use PETSCII to create old-school computer art, like this PETSCII editor, Petmate and Playscii, and for a bunch of examples of what you can do with it you can browse through the Twitter account PETSCIIBots. And this blog post from 2016 both makes the case for PETSCII as a medium for art and provides some great examples of it.

Some robots from PETSCIIBots

PETSCII Bros

We love games made for unlikely hardware, and PETSCII Bros. fits that bill like a duck’s dentures. Like we explained in the post about that PET demo from a while ago, the PET didn’t have changeable graphics characters and no bitmap mode at all, and so it wasn’t what we’d consider a games machine. But it did come with a set of interesting graphics characters that, among other things, had a set of 16 characters that let programmers use the screen as a super-low-res 80×50 pixel display.

PETSCII Bros is a PET action game that uses those characters (long called “PETSCII” as a cheeky reference to ASCII) for an actual game, that plays similarly to Nintendo’s classic Mario Bros. arcade game. Of course you’ll need a PET, or an emulator (such as the one that comes with VICE) to play it. Or if you’re just passing interested, you could watch this video to see how it works:

PETSCII Bros. (for the Commodore PET, itch.io, $0)

SNK vs Capcom… on a Commodore 64?!

The title is no joke, a couple of crazy people RetroGL and JoneGG, are actually doing it, and while they’re close to a final release you can also download a current alpha for free, with manual, from links in the description on their Youtube demonstration video:

It’s a great example of playing to a system’s strengths (surprisingly large sprites and a legendary sound chip) while downplaying its limitations (only eight sprites, low multicolor resolution, 16 colors, a controller with only one button). It’s much better than the arcade porters of the system’s heyday would have accomplished. I mean, just look at it! On the Commodore 128, they even plan to implement stage scrolling!

I’m not sure how it works internally, but given that it’s being distributed as a CRT file and not a disk image, my guess is on physical hardware it’d rely on a physical cartridge for expanded, bank-switched ROM space. It’s a trick that’s being used more often, like how Champ Games uses it for their Atari 2600 ports of classic arcade games.

SNK vs CAPCOM for Commodore 64 Demonstration (Youtube, 4 minutes)

Pac-Pac

From 2016 comes Pac-Pac, a Pac-Man style arcade game for an unusual platform: the Commodore Plus/4!

The Commodore 64 was famously intended to be a family computer that could also play games. The Plus/4 was intended as more of a business machine, without hardware sprites or the 64’s capable sound chip. It still had 64K of RAM though, and some productivity software included built-into the system in ROM. It could also output more colors than the C64, was clocked at a higher speed, and had a simpler design with fewer chips.

Still though, the lack of hardware sprites was a big limiter for games, which remained a driving factor for microcomputer adoption. Having no sprites, in Pac-Pac, the player’s surrogate character and the ghosts are both drawn on-screen in software, which consumes a lot of processor time. The game still runs at a decent rate though, and is fairly fun to play.

It’s best not to play Pac-Pac like Pac-Man. Despite a superficial resemblance it’s much the different game. The ghosts don’t have different personalities, and don’t coast confidently through the maze, but jitter about uncertainly, and randomly. This makes them generally easier to avoid, but it also means they’re prone to camping in the vicinity of uneaten dots. You’ll find you’ll have to lure them away from the last dots in the maze to get to them safely. You’re more likely to lose a Pac from daring their presence a little too closely.

Unlike Pac-Man there are no energizers, so there’s no way to attack the monsters yourself. On later boards the ghosts slowly get more aggressive, and they move faster. There’s also a timer to force you to go after dots. Eating randomly-appearing fruit replenishes the timer by a bit. There are also Question Mark items that appear in the maze, that can produce good or bad effects. They’re usually good though. The only ways to earn extra lives are by earning 5,000 hard-won points or, occasionally, from a Question Mark.

To play it you’ll probably need an emulator, such as the one from WinVICE. RetroArch can play it with its xplus4 core, which comes from the VICE project.

I am informed that the author of Pac-Pac, Skoro, passed away earlier this year. He made a plethora of work for the Plus/4, as shown by his page on Commodore Plus/4 World, from 2019 to all the way back in 1988. 31 years is a good long while, and I hope that the fruits of his labor will be enjoyed for decades to come.

Pac-Pac, from Commodore Plus/4 World

A 1982 Issue of Compute Introduces the Commodore 64

Overseeing the early days of computing was Compute! Magazine, properly stylized with an exclamation point. They got their start as The PET Gazette, changing over to Compute as their focus spread into more types of home microcomputers. Compute stuck around as a multi-platform for some time, but ultimately spun off a couple of manufacturer-dedicated magazines. One of these was Compute’s Gazette, whose name harkened back to those PET-exclusive days. It focused on Commodore machines, and would then outlive Compute itself by some years.

The early years of Compute magazine are joyous. They’re filled with esoteric data, geeking out over low-level coding matters, and lots and lots of type-in programs. But it is depressing to me, reading over the early issues, knowing how numbered are its days. This whole genre of computer magazine, that encouraged users to type in programs, that offered coding tips, sometimes even offered add-on disks of software, is now only a memory. We are all poorer for it.

The writing on the wall for this style of magazine could perhaps be seen as early as September 1982, when Compute published an article about a great new upcoming product from Commodore, the Commodore 64. Not because of the style of the article or anything specific about the computer. Just that, by being so greatly popular, the C64 greatly expanded the magazine’s audience, which would inevitably steer it towards becoming more “mainstream,” which ultimately would be the death knell for a publication like this.

Still, it’s fun to look back on. Here is that article in image form, or you could find it on the Internet Archive, where the archives of Compute live on, for a time.

An extra, from that issue, is an ad for one of Microsoft’s first peripherals, a memory card for the Apple II:

Demo: Back to the PET

The Commodore 64 was not Commodore’s first home computer. It wasn’t even the VIC-20. Their first machines were the line of the PET, or “Personal Electronic Transactor,” as labored an acronym as any.

The PET was a decent machine, with integrated monochome monitor and a heavy metal case. Although it had no color, no sprites, only a basic speaker for sound and no synth, it had a number of things in common with the later C64, particularly the 6502 processor that lay at the core of half of the personal computers sold at the time.

There was something else, something fairly major, that the PET lacked: customizable graphics. No hi-res mode, and no programmable character sets. The graphics were encoded on a ROM that wasn’t even mapped to the CPU’s address space. The letter ‘A’ would forever look like a letter ‘A’. It couldn’t be changed to anything else, even a slightly different ‘A’. This greatly limited what PETs could display, and basically doomed it as a gaming computer.

Commodore tried to compensate for this feature by including “PETSCII,” a set of custom characters included in the upper 128 characters of its ROM intended for makeshift graphics. PETSCII would survive throughout the rest of the Commodore 8-bit line, even featuring on machines that had programmable graphics: the VIC-20, C64 and C128 all had it included too. (The Twitter account PETSCIIBOTS (now inactive) shows off its many graphical characters in making robots.)

On the later machines PETSCII graphic characters were a fun nicety. On the PET, they were all you had, all you would ever have. This is exactly the kind of limitation that demo authors love circumventing where they can, and taking advantage of when they can’t. Hence: Back To The PET, a demo, complete somehow with chiptunes, that runs on Commodore’s ancient machine:

Every character cell of every frame of this video is one of the PET’s 256 ROM-based characters. It had no hardware scrolling, so effects are all faked or done 8 characters at a time. Yet it’s still pretty slick! The PET had quite a better selection of graphics characters than even IBM’s code page 437, including lines of single pixel differences in thickness and horizontal and vertical position. Image what the ASCII artists of the 90s could have done with this selection! Luxurious!