Commodore Vic 20 2-Rom Cartridge Files > Launch from a D64 image

Create a Commodore Vic 20 D64 Image That Launches (2) ROM Cartridge Images

This is a guide to create a Commodore D64 floppy drive image that you can load into your Commodore Vic 20 to run 2-Rom Cartridge files.
Feel free to use this guide and replace the games in the examples with those of your choosing!

Download your favorite 16k Commodore Vic 20 cartridge images. I’m assuming these are public domain and I’m not the host of these files.
http://www.zimmers.net/anonftp/pub/cbm/vic20/roms/16k/index.html

Download & Install a D64 editing program.
The one I recommend is DroiD64 because it’s java and can run in Windows/OSX/Linux.
http://droid64.sourceforge.net/

Download the CBM Filebrowser.

Download & Install Vice on your computer.
https://vice-emu.sourceforge.io/index.html#download

Gather your
*CBM Browser D64 file
*Favorite Vic 20 16k Cartridge Files

Open your
*DroiD64 java program
*Vice program

In example, we are going to create a D64 image with several 16K Cartridges.
For the example, we are going to add”
“Jungle Hunt”
“Moon Patrol”
“Centipede”
“Lode Runner”
“Seafox”
“Skyblazer”
“Mountain King”
“AE”

To get these games to run, first we have to write little programs that tell the Vic 20 (the real thing, an emulator or the Mister FPGA!) to combine both ROM images togther in memory, then do a reset.
What is the secret program that allows us to do that?!!?!
Believe me, I’ve searched the net and came up with nothing. I had written something several years ago and searched my retro gaming stash in the garage for it. After a while, I tracked it down. There was a file on a pi1541 SD card that had a D64 image with the secret sauce!

First, create a new D64 image using droiD64:
In the menu, select Disk1, then D64 as ‘image type’ and “2-ROM CARTRIDGES” for the name. Then OK
Save to your folder with the downloaded ROMs.
Second, open your CBM Filebrowser D64 image by finding in in the second pane on droiD64.
Refer to the image below for clarity.

Create a new D64 image using droiD64

Right click the “FB20-8k” file in the second pane, then select ‘copy file’.
Now, eject the disk in the second pane by selection the little folder with the up-arrow in the right corner of the second pane.
Navigate to where you have all of your ‘prg’ cartridge images. Hold ‘ctrl’ key and select all the images. Then copy over to the D64 image you created in the droiD64 first pane.

We now have the D64 menu and all of the game images on our D64 images.
Now we need to create our launch program using the Vice Vic 20 emulator.

With the Vice Vic 20 emulator, select ‘create and attach an empty disk image’ in the menu.
Name it ‘2-ROM D64 Menu.d64’ and hit ‘save’. Probably convienent to save this into the folder with your ROMs.

Go back to your Vice Vic 20 window, and from the menu, Edit/Paste the contents of this text:

1 onagoto4,5
2 dr=peek(186)
3 a=1:load”jungle hunt-6000″,dr,1
4 a=2:load”jungle hunt-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

After the ‘sys64802’ on the last line of text (in the Vic 20 emulator), hit enter.
Then:
save “junglehunt”,8,1

You have saved the first launch program to the new disk.
Now you will have to follow the same idea with each of the other Cartridge images.

Make sure everything is in lower case!

“moon patrol”
1 onagoto4,5
2 dr=peek(186)
3 a=1:load”moonpatrol-6000″,dr,1
4 a=2:load”moonpatrol-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

“centipede”
1 onagoto4,5
2 dr=peek(186)
3 a=1:load”centipede-2000″,dr,1
4 a=2:load”centipede-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

“lode runner”
1 onagoto4,5
2 dr=peek(186)
3 a=1:load”lode runner-6000″,dr,1
4 a=2:load”lode runner-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

“seafox”
1 onagoto4,5
2 dr=peek(186)
3 a=1:load”seafox-6000″,dr,1
4 a=2:load”seafox-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

“skyblazer”
1 onagoto4,5
2 dr=peek(186)
3 a=1:load”skyblazer-6000″,dr,1
4 a=2:load”skyblazer-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

“mountain king”
1 onagoto4,5
2 dr=peek(186)
3 a=1:load”mountain king-6000″,dr,1
4 a=2:load”mountain king-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

“ae”
1 onagoto4,5
2 dr=peek(186)
3 a=1:load”ae-6000″,dr,1
4 a=2:load”ae-a000″,dr,1
5 poke37138,0:poke37139,0:poke37154,0:poke37155,0:poke37150,127:poke37166,127:sys64802

Once you have finished, eject Disk 2 in droiD64, and open your new ‘2-ROM D64 Menu.d64’ Disk image with all of the new launch files.

[droiD64_2.png]

Now copy those over to Disk 1. You can use droiD64 to move the files up using the “Up” button in the bottom menu (optional).
At this point, your D64 image is done!

Copy game launchers over to Disk 1

Feel free to transfer to a real floppy image using a Zoom interface or by opening it with Vice Vic 20 emulator -or- the Mister Vic 20 Core.
Note: You will have to expand your Vic 20 memory.
The Windows & OSX version of Vice may vary but this is the RAM expansion option for Linux:

Expand Vic 20’s RAM with Vice (Linux version shown)

To launch the disk and auto-start the menu, select File/Smart Attach, then click on the “Autostart” button.

Auto-start the CMD File Browser

Virtualbox, Ubuntu and USB

Have you tried to install VirtualBox on a Debian-based system and had all kinds of problems? Typically it all starts with “sudo apt install virtualbox” and then you realize that you can’t install the Oracle VM VirtualBox Extension Pack. You can’t see any of your USB devices. You can’t update the software…UGH

Here’s a fix. If you already installed using the terminal, you can first “sudo apt remove virtualbox” and then “sudo apt autoremove”. Then bring up your web browser and go to the official Oracle VM VirtualBox website. From there, you can download the .deb package. Launch it and install.

Once your program is installed, open VirtualBox and navigate in the toolbar to File/Preferences and then to the Extensions icon. Make sure the Extension Pack is installed. If not, you can download it and install with the ‘plus’ icon on the right.

Now you can create your virtual machine using ‘New’ icon or alternatively, use the “Add” icon to add an existing machine from a folder. To get your USB device working with your virtual machine, either right click on the VM and go to settings, or select the “Settings” icon to the right of it. Toward the bottom of the icon panel on the left, you will see ‘USB’. Select that and you should see USB 1.1, 2.0, and 3.0 options. Pick the relevant one and then the “+” icon on the right. You should see a list of options. Once you add the USB device, it should be available once you boot your virtual machine. Enjoy!

4 Raspberry Pis on a mini ITX board; The Turing Pi 2

This is a fun (but expensive) project:

A cheap M1 mac would smoke it but you know…
And the M1 mac can’t run linux. Looks like a fun project but a total waste of space and money. It’s one of those “let’s put a v8 in a dodge omni” kind of “what if” things.

Incidentally, my two personal computers:

  • An ancient mac mini 2010 running Kubuntu
  • A mac mini with M1 processor

Guess which one I love more and use every day? (the 2010 version).
The funny thing is that both boxes look identical. I am smitten with the idea that I could find a computer over 10 years old to be perfect

Volumio – the DIY Media Streamer

You can have an inexpensive media streaming device connected to your TV or HiFi by using an inexpensive Raspberry Pi and an SD card.

If you visit Volumio.org, you can download an image for a Raspberry Pi, PC or ASUS Tinkerboard. Once you have the image downloaded, attach a micro SD card to your computer and use Balena Etcher to write the image to it. If you need a quick tutorial on how to image an SD using Etcher, here’s a video that images the Raspberry Pi OS to SD. You would be imaging Volumio instead…

Once your SD image is complete, you will want to put the SD into your Pi. A Raspberry Pi 2, 3 or 4 should be sufficient, though a 3B is probably the lowest I would go because the Pi 2 would be quite slow. The Pi 3B has an advantage over the Pi 4B because it runs much cooler.

Then attach an ethernet cable to the Pi – because wifi will not be setup. This is the lamest part of the project but bear with me. Power up the Pi and let it run a boot cycle. You can setup your Volumio now by either downloading the Volumio app in the Google Play Store or the Apple App Store, or by typing volumio.local in your browser. Because the browser method isn’t reliable initially, I would use the app if possible.

After you launch the app on your phone/tablet, the app will search for any installations of Volumio. Make sure you are on the same network between the Pi and the phone. Once the app finds it, you will be instructed to give your setup a name and configure wifi settings. To setup your plugins, click on the setup icon in the bottom right corner. There are several plugins that allow your Volumio setup to connect to Spotify, Pandora, a Subsonic server etc. After you add and enable the plugins, you will need to go to the “installed plugins” tab to configure them with your username/password.

There are many other nice features, like the ability to make this setup a DLNA server. When everything is done and setup to your taste, you can go back into the menu, shut down the Pi and unplug the ethernet cable.

You can plug an HDMI cable into the Pi and run it into your TV or Stereo now and turn them both on. Once your Pi boots you will hear a chime through the TV/Stereo and that tells you it’s ready. You can now use your app to control Volumio to play internet radio, Spotify, etc.

You can also add music to Volumio. If you put mp3s or FLAC files on a thumb drive, plug it in before boot and the system will index the files so that you can play them. If you are technologically inclined, you can find your IP address by going into Volumio’s network settings. Then use that address, followed by /dev (example: 10.0.0.100/dev). From there, you can enable SSH, then use Filezilla or similar SFTP/FTP program to add music and video files to the /mnt/INTERNAL directory.

Volumio allows you to create an account. Though the setup is free, there is a paid tier that allows other features like the ability to use HiRes streaming services Tidal and Qobuz among other features like connecting a CDROM to rip CDs. At one time, I did subscribe to this a few years ago, but found that the free features like internet radio, local media and my own Subsonic server were enough. So for now I’m happy to use the free version. If you end up setting this up, I hope you enjoy it! I work from home and believe me, it’s nice.

Steam – Gaming on your Debian-based Linux PC

There are so many Debian-based Linux distros to choose from that look and work great, with Ubuntu and Linux Mint being the most popular. The best feature is the easy install method and the vast amount of available software.

One of the things people often don’t discuss is the higher gaming capabilities because of Linux’ lower overhead. If you are into retro gaming, Linux is the obvious choice with options like “retropie”, which can be installed on pretty much any Linux PC or Raspberry Pi computer. Here’s an option to install retropie on your Debian-based PC.

Modern games are trickier to find in terms of compatibility and obviously more difficult to install. That is unless you are using Steam, which makes modern gaming on your Linux platform a dream! Installation and access open up. In the Steam Store, you can see which games are compatible with Windows, Mac and Linux. Windows is the obvious choice for the hardcore gamer obviously because of the higher compatibility rate, but you would be surprised at how many are compatible with Linux.

Installation on your Debian-based system:

Install Steam:
$ sudo add-apt-repository multiverse
$ sudo apt update
$ sudo apt install steam

Run steam:
steam

Look for the Steam app in your menu under “Games”. You can setup your account and start looking for games! It may take a few moments to launch initially, so be patient.

Opening Steam for the first time

You can spot the compatibility of games in several places, including the game pages:

Windows-only compatibility

You can also shop for Linux-only games by going into the menu and choosing the “Categories” tab and then “SteamOS + Linux”.

Once you buy your game, installing it is easy. Look for purchased games in the “Library” tab. Choose a game and click on the “Install” icon. It takes a little time to install so be patient. Once the game is available, you can find it under your menu’s “Games” tab.

One caveat: On every platform you install these modern games, you will need a modern PC to run the games. I am using an old 2010 (almost 11 years old!) Mac Mini with Xubuntu and some (not all) of these games run slooooow. If you are running this on a more modern, conventional PC, you will likely have much better results.

Enjoy, and let me know how it worked out for you!

Costco Concierge Service – The Ugly Truth

Open letter to Costco (I actually sent this as a real email):

Good afternoon Costco Administration,

I’m writing to you in the hopes that you could inform your organization about how the Costco Concierge service may be frustrating your customers and potentially cause harm to your brand. Feel free to forward this email to any relevant parties in your organization.

I have been a Costco member since 2004 and have been buying electronics (as well as many other goods) because of their promise to provide a concierge service and a 2-year warranty.

I haven’t had an issue with any of my electronics. They tend to work until they are obsolete. This, until my 28″ LED Acer Monitor (VG280K) gave out after 1 year. I use this monitor for my work-from-home setup, so it’s pretty critical.

I turned it on and saw colorful vertical bars, like you would see with a dropped laptop. The problem is, we are talking about a stationary monitor. I’m not sure what happened. Maybe someone threw something on my desk and the vibration caused the issue? Manufacturing issue? Not sure. I’ve never had a computer monitor die before and had no reason to believe this would happen.

So I took the monitor to my local Costco. I was told that they couldn’t return it after 90 days but was given a card with the contact information for their “concierge service”. Very reasonable. Okay.

This morning I had the day off so I called the concierge service. I was told to do some tests. Next step, I’m transferred to “Acer”. This is the first hand-off.

“Jason” with a thick Indian accent assures me that he will definitely fix the issue and apologizes for the issue. We ran through the same story that I already told Costco concierge services about the monitor. He has an answer! Call 800-999-4409. Can he help me with anything else? I say, “You said you would fix the issue. But you did not.” He’s sorry. We are at the 2nd hand-off and the third contact.

I call the number. “Captial Data Services” in Lansing Michigan. Oh. There are three people that work at this third-party. Lola, Charlotte and Mark. I’m not having a great feeling. I hit 1 for Lola. Please leave a message. Called back and tried Charlotte and Mark too. Please leave a message. This whole process is meant to wear you down. UGH. I kept calling and finally got Mark.

Mark assures me that he is going to help! How? He has another phone number! 866-695-2237. Welcome to Acer! I called the number. They want to know if I’d like to buy something. Further down the menu is an option for service. Okay. Someone answers. He is my fourth person. I explained the situation again. He asks slyly…(I can tell by his tone what is happening next), “When did you buy this monitor?” I told him August, 2020. He says, “Oooh sorrrrrrry. It’s out of warranty. We cover it for one year.” But I have an ace up my sleeve. I have Costco’s guarantee of a 2 year warranty!

No. Acer has a one year warranty. There’s nothing on record for a two year warranty. It’s been one year, I’m sorry.” I go on to tell him that all electronics at Costco have a two-year warranty. He says, “No, I’m sorry.” I ask if I can escalate and he declines. I’m so frustrated and know this process is meant to wear me down. It’s working.

I called Costco’s concierge service again. From my experience, It’s obvious that at this point I am just repeating the loop of failure. I’m now talking to the fifth person. She apologizes.

She tries to contact “Acer” (a third-party call center in India). She is given a phone number. After 20 minutes of waiting, she reaches a call-center agent who says, “the serial number does not match.” I read back the serial number. “The number is too long.” I tell her, there’s also an “SNID” number. That number is too short. The Costco concierge woman goes in circles with this. She finally tells me I can call Costco concierge back at a later time. This is the end. Nothing achieved.

Conclusion: From my perspective, and pardon my language, Costco Concierge service is COMPLETE BULLSHIT and Acer will run you in circles through a series of third-party call centers. I will not buy anything from Acer again and I’m starting to really resent Costco for the false promise of service. Instead of an actual service, Costco Concierge service appears to be a short checklist of tests (read from a script), followed by a pass-off to a manufacturer. Not good.

Maybe I had a rare experience? I’m not so sure. On another occasion, I ordered a dishwasher from Costco, which was shipped by a third-party. The dishwasher arrived smashed. I waited several weeks for another model, which also arrived smashed. I ended up canceling the order and going with a local company named ABC Warehouse, which delivered without issue.

It is my belief that the loose-network of third-rate, third-party services is damaging Costco’s reputation, frustrating your customers and costing Costco business. I could be wrong but in the meantime, I’m having better luck with BJs Warehouse with parking, customer service and product availability issues. These are things that actually matter to regular people like me.

Sincerely,

Anonymous

Raspberry Pi VPN: Try Private Internet Access (PIA)

This is not an ad. I use PIA and find it both useful and affordable.

If you have been frustrated as I have with the implementation of VPN using Debian-based Raspberry PI Linux distros, you will be happy to know that PIA has created an ARM version of their VPN client software.

Head to their download page. You might have to log in.
https://www.privateinternetaccess.com/account/client-control-panel#downloads

Under Linux ARM, look for “armhf”.

The most recent version of the program as of this writing is: pia-linux-armhf-3.1-06756.run

Once you have downloaded it, in a terminal:

Change directories to the directory you downloaded the file in. In my case:
cd Downloads
Make the file executable:
chmod u+x pia-linux-armhf-3.1-06756.run
Launch the setup program:
./chmod u+x pia-linux-armhf-3.1-06756.run

Now you can simply log in and use the VPN program. Enjoy!

OBS Studio on Raspberry Pi 4

Here is an extremely well documented guide on installing OBS Studio on your Raspberry Pi 4. I tried it and was successful in stalling. I even had the video driver error and was able to overcome it with “MESA_GL_VERSION_OVERRIDE=3.3 obs” as the guide suggested.

The only issue I found was that the icon under “Sound & Video” does not work. You have to type “MESA_GL_VERSION_OVERRIDE=3.3 obs” in a terminal for OBS Studio to work.

Alternately…you can install piKiss, which has an easy way to install OBS Studio. There’s a guide here. Once installed, navigate to “Multimedia”, and then “OBS”. With piKiss, you can also install many games, emulators, tweaks, multimedia programs and more. Very interesting program!

The MiSTer FPGA

If you are into various “retro” computer systems and video games, there’s a Hardware emulation platform using FPGA created by Terasic Technologies. An open source hardware add-on called MiSTer gives the FPGA hardware additional functionality, including an integrated USB hub, SDRAM, VGA video, analog out via headphone jack, and many other functions.
The board naively has an HDMI output and one USB port.

Specs:

  • 110K LEs; 5570 Kbits Embedded Memory; 6 PLLs; 2 Hard Memory Controllers
  • 800MHz Dual-core ARM Cortex-A9 Process; 1GB DDR3 SDRAM; 32-bit Data Bus
  • 1 Gibabit Ethernet PHY; USB Micro-AB Connect; Mirco SD Card Socket
  • Model Number : P0496
https://m.media-amazon.com/images/I/816DaH8zPhL.SL1500.jpg
Terasic DE10-Nano Kit (comes pre-assembled)

Once you set it up, you can run computer systems from the early hobbyist computers like the Apple 1 to an IBM 486. You can also run a huge list of arcade games and video game consoles with no input lag. There are filters for scan-lines and video up-scaling for raster images. They are many other options as well, including game saves, input mapping, dip switch settings and more. Imagine the possibilities! Want more RAM for you Pet computer? There’s a setting for that! The best part is that you have a system that fits in the palm of your hand that can replace the hardware for hundreds of systems. It delivers with hardware accuracy, which will be an immediate improvement from software emulation in most cases.

There are three things you can buy that will compose the entire system. The FPGA motherboard, a micro SD card and the kit (I make no $ off these links):
Kit: https://www.amazon.com/dp/B08ZC2NNW9?psc=1&ref=ppx_yo2_dt_b_product_details
Motherboard: https://www.amazon.com/dp/B07B89YHSB?psc=1&ref=ppx_yo2_dt_b_product_details

Once you obtain the hardware, the next step is to flash the MiSTer software to a micro USB card:
https://github.com/MiSTer-devel/mr-fusion/releases
Balena Etcher is a perfect program to flash ISOs (and free).

Then obtain the “update-all” script, which will download all of hardware cores, computer bios files and arcade game roms:
https://github.com/theypsilon/Update_All_MiSTer

Once you flash the “mr-fusion” iso, you will need to run the SD card in the FPGA board. The system will set itself up.
Then place the “update-all” script in the scripts folder on the SD card.
Boot the system, hit ESC on your keyboard to get to option to run scripts. You will then run the wifi script to update your wifi settings. Then go back into the scripts option and run the “update-all” script. This will automatically install all your needed bios files, roms, and hardware cores.

After the wifi is setup and the “update-all” script run, your system will report the IP address when you hit the back button. With this IP, you can later SSH into it and add new games or virtual computer disks (example: d64 files for Commodore 64). Simply add the files under the “games” folder and into the appropriate system folder. Alternately, you can remove the SD card and mount it with your PC to add files.

Reference video:

DIY Atari 7800 Arcade Joystick

DIY Atari 2600/7800 Arcade Joystick

This is an unglamorous project with great results.

You will need: an old Atari 7800 Pro Controller, a Happ Controls Joystick and 2 Arcade buttons and some kind of project box.

This is the exact project box I used (I get nothing for linking this).
Most of the Happ Style joysticks and buttons are counterfeit but the ones at Microcenter are excellent.
Any of the top-rated 28MM hole saws will work. I used one from HSS. Looks like this:

uxcell 28mm HSS Drill Bit Hole Saw Cutter for Metal Alloy Wood
28MM DIA Hole Saw

I gutted a real Atari 7800 Pro Controller because most of the cables out there are for Atari 2600, so they are missing the second button wiring. You can get them cheap off of ebay. I believe since you are going to gut it for the wires and the resistors on the circuit board, cosmetics are beside the point. I saw some controllers on ebay in the $6-$8 range.

Atari 7800 Pro Line Joystick Controller OEM CX-24|NOT TESTED
Atari 7800 Pro Controller

Here’s what I did:
Put some masking tape on the top surface of the project box and using a sharpie, layout your controls, the middle hold and mounting holes of the joystick and the center-lines of the buttons.
Drill the joystick & button holes using the 28MM Dia hole saw. Then drill your screw holes. I think a 1/8″ drill will do it. Now peel off the masking tape and mount your controls.
Then you will take apart your Atari 7800 Pro Controller and carefully remove the wires from the circuit board. You might need to clip off the terminals from the Atari 7800 joystick and crimp better terminals. If you really don’t care what this thing looks like and you are brave, you could solder the wires right to the micro-switches. Who am I to judge? (Don’t do this.)

This is a wire map of the Atari 7800 Pro Controller:
Brown / Left
Green / Right
Blue / Down
White / Up
Button 1: Top Orange, Bottom Yellow & Resistor to Black
Button 2: Top Orange, Bottom Red & Resistor to Black

Using this wire map and the picture above, solder the wires and tape it up. The tricky part: you desolder the (2) 620 OHM resistors from the Atari 7800 Pro controller circuit board but you can can also buy new ones. These go between the ground wire and the ground terminal on the two buttons. You can clearly see this in the image above. Test it out and if you get it right, put the box together and ENJOY. Atari is much, much more fun with Arcade controls IMO.

Caveat: Before you drive yourself crazy like I did when testing: the difficulty switch on the front of the 7800 actually makes a difference with the 2 button games in some cases. For instance, when testing Xevious, both buttons launched missiles AND bombs simultaneously. I remembered that one should send a bomb and the other a missile. Well…”LEFT” difficulty does that. *slaps forehead* I ended up ripping the joystick apart driving myself crazy as to what went wrong when really nothing was wrong. UGH 😉