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

7 thoughts on “Commodore Vic 20 2-Rom Cartridge Files > Launch from a D64 image”

  1. Does anything need to done with the dip switches on a 16k ram expansion on real hardware? Thanks for writing this up. I’m completely new to the vic 20.

    1. You know, I did run this on real hardware but it was around five or six years ago. I believe I tried the original 16 K ram cartridge and wasn’t successful. I did have a cartridge called the UltiMem and I believe I just set all of the switches to the maximum memory. I was able to get all of the games to work that way. The only negative is the slow loading times but we are talking about an ancient computer. Also many of these cartridges are very rare and expensive. So this is a fun way to play those games. And I know that emulators have a horrific time with these cartridges because of the broken images. I’m really surprised someone hasn’t written some kind of software patch. At any rate here is a link to get that memory cartridge if you were interested. I do on one and it does work really well. https://www.go4retro.com/products/ultimem/

  2. Games converted like this seem to work on VICE XVIC ok but fail to work on Retroarch VICE. I’ve tried various RAM bank settings and still they won’t work on RA. I’ve yet to try them on my C64 Maxi but I suspect they’ll load ok on that. Is there any way to convert the Scott Adams Adventure series games to single D64 images, one for each game? So that the user does not have to type the SYS command to start the game?

    1. Hi there. Can you convert the Scott Adams games to D64? I don’t see why not. But you will definitely have to do the soft reset (SYS64802). There’s no way of avoiding that. Regarding Retroarch and the VIC 20, I haven’t tried it yet. I suspect it’s a matter of setting the correct RAM settings. I have been using the MiSTer project for the Vic and it’s pretty amazing. Highly recommend.

      1. I have tried to convert the Scott Adams games using the same method you have documented except the memory addresses for the 2 files are 6000 and 4000. Tried soft reset with SYS64802 at the end of the program as with the other examples and even SYS32592 the code for Scott Adams games thats printed on the carts. None of that works. I am kicking myself because I know its possible. I’d written the code to do it straight after buying my C64 Maxi about 2 years ago. Running the programs required no user interaction or having to type a sys command because the program took care of that. I remember having to do something in the code to step down the ram from 24k to 16k using only banks 2 and 3 because some emulators do not allow selecting of those banks only 1, 2 and 3. I had all 5 Adventure games in D64 format on a usb that I was using on my Maxi and lost the USB with the only copies of the code. I’ve tried looking on the web and forums for anything that might prompt me to remember my code but the closest I’ve found is http://www.zimmers.net/anonftp/pub/cbm/vic20/games/16k/Scott%20Adams/00README . Any help you can offer would be much appreciated.

      2. Hi there! I tried to create a “Scott Adams” D64 image using the single 16k images from zimmers.net.
        No matter what I did, failure. However, I was able to attach the cartridge images directly in VICE and start the game using, “sys 32592”.

        Here’s what I was using as the load file for “The Count” (which I also had on the disk as “count”):

        0 a=a+1:if a=1 then load “count”,8,1
        1 if a=2 then load “count”,8,1
        2 sys 32592

        Maybe I’m on to the right path here…or not. But at least you can load the cartridge images directly and use the sys 32592 command. I don’t have the C64 Maxi but I do know this works with VICE.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: