PDA

View Full Version : Vic-20 Carts on a C64?



Raven
December 19th, 2009, 12:29 PM
We all know that the C64 is basically an extended version of the Vic-20. This said, it's backwards compatible as far as I know. Both machines used 1541 drives, so they should be compatible as far as disk software goes, and tape too. However, the cartridge format is physically different for a Vic-20 and a C64. I don't have a Vic-20 or any carts, but if there is an adapter to let the C64 run them I might look into some carts.

Anybody know?

carlsson
December 19th, 2009, 12:43 PM
Yes and no. The two machines have about 99.9% similar Basics and kernals. Most peripherals can be shared, but that ends the compatibility. The C64 uses upgraded video and sound chips that are NOT backwards compatible with the VIC-20, not even so you easily can emulate it. The C64 also uses a partly different memory map.

That said, a small amount of Basic software which doesn't use more than ~20 column wide rows and does not use any custom graphics, sprites, sounds or the eight extra colours the C64 has, can be compatible between the two machines. Quite immediately you see the level of compatibility is remarkably low. If you get into machine code, things can get even worse even if the two use the same CPU and when it comes to Kernal calls they work much the same.

Now, as a matter of fact Jim Brain is developing a cartridge device he calls Masquerade, modulo spelling. It will allow you to physically insert a C64 cartridge into a VIC-20, through remapping the I/O lines in the cartridge port. It will provide the ability to use C64 cartridge boards with EPROMs holding VIC-20 software. It will also map I/O blocks so a few custom hardware cartridges like Ethernet cartridges for the C64 can be connected to the VIC if someone writes the driver software.

You are asking for the opposite, to plug in VIC cartridges on the C64. I don't know quite why, since the C64 itself has a library of about 400 different cartridges for you to collect. That is roughly twice as many as for the VIC-20. Most of them may be rarely seen, but if you keep looking you will probably find a bunch of genuine C64 cartridge games. Not to mention utility and special hardware cartridges. People today also produce C64 cartridge boards in relatively big quantities for those who like to make their own cartridges. I'm not sure if this is something you would like to investigate. Even in moderate quantities those boards can get a bit expensive to purchase.

Raven
December 19th, 2009, 01:14 PM
Yes and no. The two machines have about 99.9% similar Basics and kernals. Most peripherals can be shared, but that ends the compatibility. The C64 uses upgraded video and sound chips that are NOT backwards compatible with the VIC-20, not even so you easily can emulate it. The C64 also uses a partly different memory map.

That said, a small amount of Basic software which doesn't use more than ~20 column wide rows and does not use any custom graphics, sprites, sounds or the eight extra colours the C64 has, can be compatible between the two machines. Quite immediately you see the level of compatibility is remarkably low. If you get into machine code, things can get even worse even if the two use the same CPU and when it comes to Kernal calls they work much the same.

Now, as a matter of fact Jim Brain is developing a cartridge device he calls Masquerade, modulo spelling. It will allow you to physically insert a C64 cartridge into a VIC-20, through remapping the I/O lines in the cartridge port. It will provide the ability to use C64 cartridge boards with EPROMs holding VIC-20 software. It will also map I/O blocks so a few custom hardware cartridges like Ethernet cartridges for the C64 can be connected to the VIC if someone writes the driver software.

You are asking for the opposite, to plug in VIC cartridges on the C64. I don't know quite why, since the C64 itself has a library of about 400 different cartridges for you to collect. That is roughly twice as many as for the VIC-20. Most of them may be rarely seen, but if you keep looking you will probably find a bunch of genuine C64 cartridge games. Not to mention utility and special hardware cartridges. People today also produce C64 cartridge boards in relatively big quantities for those who like to make their own cartridges. I'm not sure if this is something you would like to investigate. Even in moderate quantities those boards can get a bit expensive to purchase.

I have about 10 different cartridges for my C64 (a few of which are games), I just like to be able to access and run any data and games that I find. If I were to come across a Vic-20 cart on eBay one day, or a lot of them, or in person, I'd like to be able to buy and use it - and I don't have a Vic-20. I realize that it'd be nearly impossible to get C64 stuff running on a VIC, but I thought that the "VIC" chip in the C64 emulated every bit of the VIC-20's graphics functionality and such, except the processor, which was the same in a C64 but faster - perhaps I'm wrong there.

carlsson
December 19th, 2009, 02:07 PM
Actually the CPU runs at almost the same speed, at most only a few hundreds of a megahertz difference. The real difference between the CPU in a VIC-20 and C64 is the 6510 in the C64 has a built-in 8-bit I/O register which allows it to overlay ROM and I/O chips over RAM. By changing the I/O register, you can access RAM chips underneath the ROM. This was a "killer app" that allowed the C64 to actually come with 64K of RAM although most people had a hard time believing it did.

If you come across a pile of cheap VIC-20 cartridges, I strongly advice you to go looking for a cheap VIC-20 too. It is a great computer on its own, so no reason to try various (non-existing) adapters and incapable emulators.

Raven
December 19th, 2009, 03:01 PM
I assume you meant hundredths, and not hundreds, considering they only run at ~1mhz, lol. xD

Anywho it looks like the NTSC versions of the VIC-20 and the C64 both run at 1.02mhz so they are identical CPU-wise.

While I get the idea that you apparently frown on the idea of running VIC-20 software on a C64, I don't understand the logic for why you don't think it will work still. The CPUs are identical, the C64 is more powerful, it's like saying "you can't run a DX9 game on a DX10 card, go get a DX9 card..."

Is it that you don't think the VIC software will run through the more complex memory system of the C64?

carlsson
December 19th, 2009, 03:37 PM
Yes, as you may have observed English is my secondary language so on occasion there may be a missing letter or incorrect spelling. Sorry for that.

You could try the VICE emulator to emulate both a VIC-20 and a C64. Immediately you will observe the VIC has almost twice as wide characters. As a matter of fact the VIC defaults to 22 columns x 23 rows while the C64 has 40 columns x 25 rows. If you can live with the fact that some games would run in a "window" of the screen, you can fit those 22x23 inside 40x25.

For programs written in Basic that don't rely on joystick input, doesn't change any colours, plays with sound and only uses ROM graphics, VIC games will work on a C64. However the origin of this discussion was whether you could play cartridges. Almost all cartridges use one, several or all of these features.

There was a quite accomplished VIC simulator for the C64 published in the COMPUTE! magazine back in the 1980's. If I recall correctly it simulates custom graphics, some of the sound, joystick input and colours modes as far as it can. There actually are some colours and combinations on the VIC-20 that the C64 can not reproduce at all. However you would have to try each program to determine if and how well it works.

I would rather compare the two as Hercules to EGA. While EGA has colour and pretty much the same resolution as Hercules, usually you can't run programs written for Herc on your PC. I know latter VGA cards sometimes (?) can emulate Hercules, but it would be taking it one step further ahead. An Amiga to some extent can emulate both a VIC-20 and C64 display too...

Raven
December 20th, 2009, 05:09 PM
I didn't think for a moment that English was a second language, though your location now makes that obvious.

Personally the only VIC game I've ever seen was in a review online, and it was text-based with no sound - I'm sure that this particular one would work on a C64 just as easily. With no experience with VIC software or hardware, it was my assumption that most VIC games would also be text-based (or very simple graphics) - an assumption that is apparently incorrect.


Yes, as you may have observed English is my secondary language so on occasion there may be a missing letter or incorrect spelling. Sorry for that.

You could try the VICE emulator to emulate both a VIC-20 and a C64. Immediately you will observe the VIC has almost twice as wide characters. As a matter of fact the VIC defaults to 22 columns x 23 rows while the C64 has 40 columns x 25 rows. If you can live with the fact that some games would run in a "window" of the screen, you can fit those 22x23 inside 40x25.

For programs written in Basic that don't rely on joystick input, doesn't change any colours, plays with sound and only uses ROM graphics, VIC games will work on a C64. However the origin of this discussion was whether you could play cartridges. Almost all cartridges use one, several or all of these features.

There was a quite accomplished VIC simulator for the C64 published in the COMPUTE! magazine back in the 1980's. If I recall correctly it simulates custom graphics, some of the sound, joystick input and colours modes as far as it can. There actually are some colours and combinations on the VIC-20 that the C64 can not reproduce at all. However you would have to try each program to determine if and how well it works.

I would rather compare the two as Hercules to EGA. While EGA has colour and pretty much the same resolution as Hercules, usually you can't run programs written for Herc on your PC. I know latter VGA cards sometimes (?) can emulate Hercules, but it would be taking it one step further ahead. An Amiga to some extent can emulate both a VIC-20 and C64 display too...

MikeS
December 20th, 2009, 08:22 PM
Anders is actually understating the differences; they look similar, use the same serial I/O and corresponding peripherals and the BASIC interpreters are similar, but once you get to the hardware level (and most cartridges do) they are substantially different and it's almost certain that you'd have to make some changes even for a text-only cart, which is of course not so easy.

As to Vics being text-only, I suggest you run a few good programs in Vice to get an idea of what they can do.

tezza
December 20th, 2009, 10:28 PM
Yes, what Mike and Anders say above.

The VIC-20 and the C-64 have enough hardware differences to stop machine code software for one translating to the other.

There were a few text-only games for the Vic-20 released (the Scott Adams Adventure series comes to mind) but you'll find most VIC-20 games make use fo the colour, sound and graphics. These were the selling features of the machine when it first appeared in '81 after all.

Tez

carlsson
December 20th, 2009, 11:30 PM
Let's put it this way: The two computers are similar enough for a skilled programmer to be able to port his work from one to the other, at least as long as no special hardware features are used. For well-behaved machine code programs which only makes calls through the Kernal routines, it may even be able to write cross-platform programs. With a bit of smart peeking around, you could even make the program utilize custom graphics or sound, but you would have to make two sets of routines how to produce those.

Actually with the help of the upcoming MasC=uerade (http://www.jbrain.com/projects/converter/) converter, you might make a C64 cartridge game that would be playable on a VIC-20 through the converter. In the mean time, one could make a disk or even tape game using the same prerequisites.

MikeS
December 21st, 2009, 12:15 AM
Let's put it this way: The two computers are similar enough for a skilled programmer to be able to port his work from one to the other, at least as long as no special hardware features are used. For well-behaved machine code programs which only makes calls through the Kernal routines, it may even be able to write cross-platform programs. With a bit of smart peeking around, you could even make the program utilize custom graphics or sound, but you would have to make two sets of routines how to produce those.

Actually with the help of the upcoming MasC=uerade (http://www.jbrain.com/projects/converter/) converter, you might make a C64 cartridge game that would be playable on a VIC-20 through the converter. In the mean time, one could make a disk or even tape game using the same prerequisites.Well, OK, a skilled programmer could also port his work from a VIC to an Apple or an Atari, but the original query was about just simply using an adapter to stick the VIC20 cart into the 64; it would take a little more than just an adapter and it isn't exactly trivial to modify the code in the cartridge, which would almost certainly be necessary. I suspect that the OP thought it would be as straightforward as using an old DOS program in a Pentium.

carlsson
December 21st, 2009, 01:59 AM
Yup. By the way, I just ran a simple search query on eBay.com and found 29 auctions involving Commodore cartridges. Out of those, it seems 28 are C64 cartridges and one auction for a VIC-20 cartridge. If we include eBay Stores, the percentage of C64 cartridges gets even larger.

Bill_Loguidice
December 21st, 2009, 12:00 PM
I imagine the C-64 could possibly emulate the Vic-20 with a sort of "thin" emulator (translating just the stuff necessary), but since they're relatively close in capabilities, it's probably unlikely to get anything approaching full speed. While it was trivial for Commodore to produce a small PET software emulator for the C-64, that just changed a few minor pointers and merely enabled a high level of BASIC compatibility.

Instead of trying to run VIC-20 cartridges on a C-64, it's just as easy to get a VIC-20. All you'd need is the VIC-20 itself and its power supply. Everything else could pretty much be shared with the C-64. There are some tremendous things available for the VIC-20, including this and this: http://www.mega-cart.com/ and http://www.armchairarcade.com/neo/node/2999

Raven
December 21st, 2009, 12:22 PM
I will pick one up when a convenient opportunity presents itself - that Mega-Cart is super-convenient looking.. I wish I had one of those for my C64 with all known C64 carts on it... *dreams*

I can't afford another system ATM, though.



I suspect that the OP thought it would be as straightforward as using an old DOS program in a Pentium.
Yes. To be more accurate it seemed like running an 8088 program on an 8086 - "they're almost the same, but this one is more powerful damnit!", I thought. Anywho I was wrong, we've established that. :P

Bill_Loguidice
December 21st, 2009, 12:26 PM
The Mega-Cart is great, particularly since it also includes all of the RAM expansion options. The good thing for you with acquiring a VIC-20 is that it's one of the cheaper systems to acquire on places like eBay. There's not much demand. The only thing you have to really watch out are for keyboards with poor response.

carlsson
December 21st, 2009, 11:11 PM
Actually if you get a VIC-20CR you don't need an extra power supply. It will work perfectly with your C64 one. If you already use a 5-pin DIN composite video cable, you're all set to go. Since the keyboard mechanism also is compatible (irregardless what some people may tell you), if you have a spare C64(C) keyboard, you can use it instead. Another nice thing about Commodore keyboards in general are they are quite easy to clean and restore to good function.

Besides I would think the PET emulator is rather a simulator. I know the terminology has been up for debate a number of times, but for it to be called an emulator, it got to at least run the same set of ROMs and catch those few PET POKEs that goes into hardware. It was many years ago I tried that piece of software, but I tend to remember it only intercepts a few of the most common ones.

andy
December 24th, 2009, 03:45 PM
...

Instead of trying to run VIC-20 cartridges on a C-64, it's just as easy to get a VIC-20. All you'd need is the VIC-20 itself and its power supply. Everything else could pretty much be shared with the C-64. There are some tremendous things available for the VIC-20, including this and this: http://www.mega-cart.com/ and http://www.armchairarcade.com/neo/node/2999

If you get a late revision VIC-20, even the power supply from the 64 would work.

SUCCESS
January 11th, 2010, 09:40 AM
Not sure, but seeing the schems, PLA decodes de following spaces for cartridges:

8000 to 9FFF / E000 to FFFF. The last interval corresponds to the Kernal
A000 to BFFF. This interval correspond to the Basic

PLA also has TWO imputs coming from the cartridge ... not sure if the PLA usse them to guess what kind of cartridge is present and what it is bypassing (KERNAL, BASIC ...).

More than one cartridge is like more than memory on the BUS. IF they are decoded rigth, they can work together, as KERNAL/BASIC do. If the work in the same interval, conflict is likely to happen.

Pedro