error: btn: invalid btn_btree.bt_key_count

I recognised the symptoms:

  1. Excessive disk trashing.
  2. General slow down.
  3. Backblaze and Time Machine causing the rainbow spinner.

My filesystem needed first aid. I think I can trace this back to the latest macOS update. I swear that half the updates cause filesystem corruption of some sort, but it also feels like I’m running First Aid at least once a month anyway!

Unfortunately for me, the error this time was:

error: btn: invalid btn_btree.bt_key_count

Apparently Diskutil can’t fix that error. The only thing you can do is erase the drive, reinstall MacOS and then restore your data. I was dreading it.

I have a Time Machine backup but I decided to make another backup of my home directory, while logged into another account. Lucky I did as an IO error showed up in Library/Caches/ – thankfully I think in an Apple app I don’t use.

I expected the business of restoring everything to be awful, but in the end the MacOS installer fired up Migration Assistant which let me restore my last Time Machine backup.

With that done it was time to install Brew again. The first package to go back in was coreutils but “brew reinstall” has a bug where it won’t accept parameters. I should have used “install” but “reinstall” with  “–with-default-names” doesn’t work. Also coreutils and related packages are “keg-only” now so no symlinks to /usr/local/bin are made. You have to run “brew link” to link all the commands. It was a simple job then to rename each file, removing the “g” prefix.

I’ll find more things as I go that aren’t configured I’m sure, but thankfully restoring from Time Machine made the job much easier!

Gamebase64 – instant C64 collection

If you had a Commodore 64 in your youth, or you’re simply curious about the games produced for the system then Gamebase64 is for you.

Gamebase64 is an effort to catalogue every single Commodore 64 game, along with associated media like music, tape or disk covers, adverts and magazine reviews

It’s huge! The latest version is V15 and was released in 2016 holding 25,700 games. The games themselves don’t take up too much data but the artwork, music, and associated material really take up a lot of room. The whole collection is available as 3 ISO files and an artwork zip file. You can find download links to all of those in this thread, but if you don’t want to download them you can browse the collection here (or here) too. You’ll need to download the GameBase frontend to view everything as well as the V15 database files. I use Vice to emulate the Commodore 64.

GameBase itself is a database frontend for Windows that supports multiple databases. Many systems from the Commodore Vic20 to the Amiga or the Speccy and Amstrad CPC range are covered. You can find links to them on the GameBase website as well as many other databases.

I mainly use a Mac so I use Gamebase64 Browser. It’s a very slick frontend but if you search around you’ll find frontends written in a variety of languages for various modern platforms.

Installation was as simple as copying everything out of the ISO files into a directory, installing GameBase64 Browser in the usual way and when first run, pointing it at the directory where I had copied everything else.

Single disk and tape games work perfectly fine but I’ve had trouble with multi-disk games. To play Retrograde I had to manually unzip both disks into a temporary directory and load them in Vice outside of GameBase64 Browser. Not difficult at all but worth remembering when your favourite game asks you to insert disk 2. 🙂

If you’re at all interested in retro computers then GameBase is definitely worth checking out!

Retrograde

Ah Retrograde, a Commodore 64 game released by Thalamus in 1989. The Rowland Brothers, of Creatures, Creatures 2 and Mayhem in Monsterland fame created this game and it shows. Presentation is top notch. Some would say that this is a repetitive shoot ’em up but I love it. Nice mix of flying around shooting aliens and then a bit of a break with the underground bits. I love the graphics and the sound is a delight.

The gameplay is very simplistic, especially underground but the flying weapons are super! Just make sure you have an autofire on your controller. My thumb was sore from two levels when I remember Vice can do the hard work for me. I’m also glad Vice can save a snapshot of the computer state to save my progress as this game takes some time to complete.

Here’s a video someone else made of it:

The Glorious Twelfth

Tim and Naomi of the Irish Passport Podcast visited Northern Ireland in July to experience the marching season in all it’s “glory” for their latest episode.

It’s a great episode, showing the stark contrast between the neighbourly and friendly people they met during the day on the 11th, and the hate fuelled crowd who descended on the area that night for the bonfire.

You’ll find lots of images of the bonfires that night on Google Images but this Dailymail article (yes, yes, I know) has lots of images and reporting.

I visited Northern Ireland in the summer and really enjoyed myself there. The people we met were friendly and welcoming but it was well past the marching season. Hopefully I’ll write a post about that sometime.

Jedininja

Sometimes you accidentally dive down a rabbit hole of your own making.
I came across the Retro Computer Scene search engine a few days ago and  accidentally clicked on a link to a Commodore 64 disk image. Those files are small at 175KB so I decided to keep it and look at it later.

This morning I did and found Noice Driver v3.0a, a music disk for the Commodore 64 released in 1993. There are some great tunes on there but the name JEDININJA leapt out at me. It’s a good tune too!

The filename of the disk image is sb130978-1fbef9.d64 so I guessed it might have something to do with Scene Base. I downloaded their metadata list and found it there in the c64disk set!

You can find JEDININJA on csdb and a later version of the music disk there too: Noice Driver V3.8c.

It’s quite amazing the amount of digital history that’s out there. I’m only scratching the surface.

High Sierra and coreutils

Since MacOS High Sierra has been out for a long time this is probably old news to the tiny minority using coreutils. When you upgrade you might find that “df” and other commands don’t work properly.

Every time I opened a terminal after upgrading I saw errors saying commands had been aborted. When I ran “df” it would abort immediately.

I thought the upgrade had damaged my filesystem, especially since it introduced APFS. I ran “First Aid” in Disk Utility several times, both live and in recovery.

It then occurred to me to try the MacOS df in /bin/. It worked!

Coreutils is the package that includes lots of command line tools like “df”. I installed it using brew so the following fixed the problem:

brew reinstall coreutils

I noticed it put everything in /usr/local where my original commands were in /opt/ so changing the PATH in my .zshrc was necessary too. Everything was back to normal again! 🙂

EDIT: Some other commands were messed up. “find” had changed, but then I realised it probably isn’t in coreutils and I was using the MacOS version. This page led me to the right package names and the following command line:

brew reinstall coreutils findutils gnu-tar gnu-sed gawk gnutls gnu-indent gnu-getopt --with-default-names

The “–with-default-names” parameter restores the original filenames, removing the “g” prefix. Everything outside of the coreutils went in /usr/local/bin/ which I made sure was added to the path too.

My Favourite C64 Intro Music

The version of Super Snake Simulator I used to play on the C64 was a cracked version by The Wanderer Group. I loved the game but the music in the intro was an infectious tune.

Listening to it in a Youtube video doesn’t have quite the same impact. It cuts off a bit too early as well. Perhaps rose tinted glasses and all that? It does  bring back memories of typing “left arrow” L to load games from a tape and “Turbo Tape by Jeff”, the tape loader used to pack more games on to one cassette. Piracy was rife on the C64, but I still have a box of (original) game cassettes and disks in the attic.

Want to hear the original “Wanderer”? It was originally recorded in 1961 and reached no 2 in the US charts!

Super Snake Simulator itself was a lot of fun too. It’s still worth checking out!

Lots of C64 Intros

Vice – autostart with a directory

Vice, the Commodore 64 emulator is a cross platform emulator that works on Windows, Linux, MacOS and other operating systems. It also allows you to emulate the Vic 20, C128 and other early Commodore machines.

Double clicking on a Commodore d64 disk image file will load x64, the Commodore 64 emulator and load the first programme on the disk image.

LOAD”*”,8,1

Quite often I want to look at a D64 image directory listing instead of running the first programme on the disk.

You can do this by unchecking the “autostart” box on the file open box of course but it’s not as convenient.

So, last Friday I asked on Twitter if it was possible to drag and drop a D64 image onto Vice to display the disk contents. Logiker replied and helped me by DM to handle double clicking on a C64 disk image.

What I needed to do was load the disk image and then feed the directory listing command to the C64.

LOAD"$",8
LIST
LOAD”$”,8

Getting MacOS to accept the command line was harder to achieve. In Windows you can change the start up parameters for a programme. In MacOS it should be possible to modify the emulator “package” with a script that calls the real executable but I couldn’t get that working.
In Linux I would have just created a shell script that called the emulator. 🙂

What did work in MacOS was using Automator. I created a “Run Shell Script” action and filled it in with the following. If you want to follow along at home you’ll have to change the path to x64.


/Applications/Vice64/x64.app/Contents/MacOS/x64 -8 "$@" -keybuf load\\"$\\",8\\nlist\\n

I saved that as a new app in ~/bin/ called “Vice64”, and associated all D64 images with that application. Now double clicking on a disk image shows me a directory listing!

It doesn’t work unfortunately when I have an Action Replay cartridge loaded. Maybe I need to add F3 or F7 to the keyboard buffer?

One of the advantages of looking at the directory structure is the directory art some demos have. Here’s one from Pearls for Pigs, a D64 I happened to use while testing this but there are loads of them. I saw that Logiker has a page dedicated to directory art!

Happy times! 🙂