Home  Articles  Programs 

GO-64 Commodore 64 Emulator

After the dismal performance of the Transformer IBM PC software emulator, Amiga owners should be wary of software emulators. The GO-64! Commodore 64 emulator from Software Insight Systems (SIS) is no exception. The intent of GO-64! is admirable. After all, if the hordes that now own Commodore 64s can be drawn to the Amiga product line, the Amiga will be a very popular computer.

When people started using the Transformer, they were disappointed. It worked slowly, and only a minimal subset of the IBM PC computer was emulated. Too many people believed the marketing hype of 100 percent emulation at 80 to 100 percent speed. Too many people thought loss of Commodore because of the misleading statements.

Unfortunately, the same things can be said of this incarnation of the Commodore 64 emulator. First, emulated Commodore 64 programs run slowly. The Commodore 64 was no speed demon to start with, and GO-64! is certainly no faster. A simple program written with a compiled BASIC appeared to run at about 30 to 50 percent of normal speed. An arcade game, written in pure assembly language, was tremendously slow. It ran at about 10 percent of its regular speed, even with the recommended settings from SIS.

The emulation seems inaccurate in spots, too. Updates of the screen take place at a much slower rate than the program is running, so things that should be happening simultaneously instead happen in sequence. For instance, a series of sprites on the screen in one program should have danced and changed color in synch, but did not do so.

The GO-64! package includes a small interface that connects to the parallel port. This interface provides a link to the DIN connector of Commodore peripherals, such as the 1541 disk drive. The GO-64! parallel port interface is the proper sex for the Amiga 500 and 2000, but not for the Amiga 1000. If you have an Amiga 1000, you must buy their special adapter. An ordinary gender-changing adapter will not work because of changes made in the pin assignment on the Amiga 500 and 2000 parallel ports.


ROM images

An important part of a Commodore 64 is the operating system memory, or ROM. This memory is stored in circuit chips inside the Commodore 64, similar to the way the Kickstart is stored in an Amiga 500 or 2000.

GO-64! cannot supply a copy of the Commodore 64 ROMs on disk because Commodore owns the programs in the ROM chip. They negotiated unsuccessfully with Commodore in an attempt to supply a copy with the product.

A nine-line BASIC program is supplied in a Notepad file. You must enter this program on the Commodore 64. When run, the program creates two files on the Commodore 64 disk. These files contain a copy of the system ROMs. These files must be moved from the Commodore 64 disk to an Amiga disk.

How can you do this? You could use a program such as Central Coast Software's Disk-2-Disk to transfer the Commodore 64 files to an Amiga disk, if you have a model 1020 5 1/4 inch disk drive. You could use a terminal program and modem to call another computer system and send the files there. You could then retrieve them with an Amiga and save them to Amiga format. You also could connect the two computers with a null modem cable and use telecommunications software to move the files.

The nine-line Commodore 64 program should have been supplied on a Commodore 64 disk, instead of the Amiga disk. A public domain or custom terminal program of some kind should have been provided on disk. Better still, SIS could have supplied automated, custom programs for both computers to ease the ROM image transfer process. They could then sell the null modem cable needed for the transfer, too.

A NotePad file contains several tips and corrections to the manual. It also contains the short BASIC program mentioned above. Something is wrong with the file on the disk, however - the NotePad program will not display the entire file. It stops at a certain page. Using the "type" command does not work because of the strange characters in the file. The final characters in the file erase the screen. Instead, this file must be sent to a printer or cautiously read using the "type" command and some other key to pause the listing.


Known Bugs

Many times, the GO-64! program would Guru as it was booting. According to SIS, this is a known bug - the program does not work with expansion memory, on any Amiga model. You can run the NoFastMem program that comes with the Amiga 500 to remove the expansion memory from the system; then the program will work. The GO-64! disk includes a GO64! Preferences program. Like the GO-64! program, it doesn't work with expansion memory. The imagery on the gadgets is garbaged unless the NoFastMem program is run.

"Although it is an amazing piece of programming, it is far too slow and cantankerous to use on a regular basis."

There is another known bug in the first version of the program. The German version of the Amiga 2000, as well as some of the early units from West Chester, have slightly different keyboard controllers. While this does not affect most software, it does trip up programs that access the keyboard controller directly. GO-64! is one of these programs that accesses the hardware directly.


Copy-protection

The GO-64! disk is heavily copy protected. The manual warns that your floppy drive may be damaged if you try to copy the disk. This situation is hardly possible, so why do they make the threat?

The immediate need for copy protection is not apparent. The company's fear of Commodore 64 pirates using their product to continue pirating on the Amiga is justified. At this time, though, the GO-64! hardware is necessary for using the emulator - without it, there is no way to access mass storage. Sure, you could program in BASIC all day, but you wouldn't be able to save your work. There is a chance that the GO-64! hardware may be easy to duplicate, but that idea is somewhat far-fetched and probably would not occur on a large scale.


Mouse Troubles

The mouse must be removed from the first joystick port after the emulator starts. The Commodore 64 acted somewhat strangely - if the joystick was in the game port, strange characters appeared on the screen as it was moved. However, this reaction goes against the advice of a small sticker on the Amiga 500 that warns, "To prevent damage turn power off before connecting or removing cables,"

The second mouse port is directly connected to one of the custom chips. There is potential for damage here. The hood of the Amiga 500 mouse is metal, so there is a possibility that careless insertion could short and damage the computer (not that this potential deters many Amiga owners from plugging things anytime).


Turbo Disks

To paraphrase the words of a former Amiga Los Gatos employee, "The 1541 disk drive was one of the best computers made by Commodore." It is tremendously slow, however. How slow? Its speed is comparable to a 2400 baud modem, about 200 characters per second.

After several years, experienced Commodore 64 programmers developed methods of increasing the transfer speed of the 1541 drive to almost acceptable levels. These methods were called "turbo loaders." Most of these techniques involved massive replacement of the Commodore 64 operating system software. Some of the turbo load implementations were in loadable software; others used ROM cartridges.

In the Commodore 64, these turbo load programs are very fragile. They contain many time-critical sections of code. If the interaction between hardware and software is not perfect, it will not work. In the case of the CO64! emulator, the hardware (such as the 1541 disk drive) is still working at full speed, but the software is not keeping up. Software Insight Systems has developed a method called Hyper-Code to get around these incompatibilities.

SIS claims they will have free Hyper-Code modules to replace the turbo load code for popular Commodore 64 programs, similar to the way the "brain" files work with the Marauder II copy program.

Other strange things happen on the 64. Some programs actually send program code to the 1541 drive to be executed there by the microprocessor that controls the drive.


Hyper-Code

According to SIS, the Hyper-Code files improve the performance of any Commodore 64 program. They are working with companies such as Activision, Electronic Arts, and Epyx in order to work more reliably with those companies' products. They say these companies have been very helpful so far.

The GO-64! disk contains a HyperCode file for Berkeley Software's CEOS operating system, version 1.2. This file is a windowed operating system for the Commodore 64. An update to GO-64! will have the HyperCode for GEOS version 1.3. The Hyper-Code files are freely distributable. They will be available on the SIS tech support bulletin board, as well as on the commercial networks.

At this time, there is no support for Amiga file storage; you must use a 1541 disk drive. SIS reports that they are currently working on a file transfer program for moving files from Commodore 64 format to Amiga format. They also hope to support the 1581 disk format on regular Amiga 3 1/2 drives. The 1581 is a new 3 1/2 drive for the Commodore 64 that holds 720K per disk.


Amazing Software

As programmers, we must praise the programmers at Software Insight Systems for what they have created so far, even if it is slow and inaccurate. A software emulator of a computer as complex as the Commodore 64 is a tremendous programming feat. We understand the magnitude of the program. The Amiga Transformer is a similarly astounding feat. While a program may be admirable from a programming standpoint, it may still be useless from a user standpoint.


Summary

At this time, we cannot recommend the GO-64! emulator. Although it is an amazing piece of programming, it is far loo slow and cantankerous to use on a regular basis. It may be improved in the future, but without an increase in speed, it is little more than a curiosity. We get the strong impression that the first version of GO-64! was rushed to market. The foul-up in the NotePad file is evidence.

by John Foust, Rick Wirch, and James O'Krane

Software Insight Systems
16 East International Drive East Granby, CT 06026
(203) 653-4589 S69.95


About the Authors

John Foust, Rick Wirch, and James O'Krane were once programming wizards on the Commodore 64, but now work on the Amiga. They were programmers at Sight & Sound Music Software, the makers of popular Commodore 64 software including Music Video Kit, Kawasaki Synthesizer and Rhythm Rocker, and the Incredible Music Keyboard.


ref.: Amazing Computing Magazine, December 1987, V2.12, pp.11-14

John Foust
01.12.1987

Keywords: Commodore, Amiga, C64, Commodore 64, Emulator


C64 Projects Twitter Page

İlker Fıçıcılar's CBM Page