Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.mathworks.com!news-xfer.netaxs.com!netnews.upenn.edu!news.voicenet.com!omni1!tsrken
From: [email protected] (tsr/hornet)
Newsgroups: comp.emulators.cbm,comp.answers,news.answers
Subject: COMP.EMULATORS.CBM: Emulation FAQ for Commodore 8bit Computers (2/4)
Followup-To: comp.emulators.cbm
Date: 5 Jan 1997 23:42:59 GMT
Organization: Voicenet - Internet Access - (215)674-9290
Lines: 461
Approved: [email protected]
Message-ID: <[email protected]>
Reply-To: [email protected]
NNTP-Posting-Host: omni1.voicenet.com
Summary: Emulation FAQ for Commodore 8bit Computers.
Keywords: cbm commodore 8bit emulation faq CBM FAQ
X-Newsreader: TIN [version 1.2 PL2]
Xref: senator-bedfellow.mit.edu comp.emulators.cbm:16264 comp.answers:23494 news.answers:91285

Archive-name: 8bit-emulation-faq/part2
Comp-answers-archive-name: commodore/8bit-emulation-faq/part2
News-answers-archive-name: commodore/8bit-emulation-faq/part2
Comp-emulators-cbm-archive-name: 8bit-emulation-faq/part2
Posting-Frequency: twice a month (monthly to news.answers)
Version: 3.5

 CBM EMULATION FAQ - (Version 3.5, 4 November 1996)
 =================

 This FAQ is usually posted twice a month on the 4th and 19th to
 comp.emulators.cbm.  Since comp.emulators.cbm was set up to remove the
 emulator discussion from comp.sys.cbm, this FAQ will not be posted there.

 Lines preceeded by a '+' have been added or modified since the last version
 was posted.

 The FAQ is in four parts due to its size.
 Part 1 is general information and a list of available emulators.
 Part 2 is questions and answers.
 Part 3 is mostly data.
 Part 4 is basically reviews of various emulators.

 ---------------------------------------------------------------------------


  3. Questions & Answers
  ----------------------

  A section to answer common questions that emulator users pose.  Please
  forward any questions or answers you think would be appropriate for this
  section to the faq maintainer, or just post to the newsgroup!

 3.1 General.


  Q: Is it legal to get copyrighted games for the C64 for free on the net?
  A: Good question.  It is true that most of the games on the net are still
     copyrighted, and will be for a long while.  However, the companies
     and authors that hold these copyrights have not taken any action
     against anyone offering games via ftp or www.
     So, it seems that most copyright holders of old C64 games do not
     especially care about what happens to those games which are not
     selling anymore.  As a result, it's mostly up to your sense
     of morality to decide whether to support sites that offer commercial
     software.

     But, keep in mind that the C64 as a viable market to sell software
     is not dead yet!  In general it's a good idea not to put on the net
     anything released very recently.  If you do, you are robbing what's
     left of the commercial scene from growing and prospering, and I hope
     you spontaneously combust.

  Q: Hey, I have this really cool game/demo/utility for emulators.  Can
     I post it on this newsgroup for all to share?
  A: No, you may not.  Firstly, it annoys people who read news offline due
     to high rates, who now have to spend over double the time d/ling
     because of your posting.  Secondly, it causes the group's traffic to
     skyrocket, which could get the group deleted from your news server.
     It does happen!

  Q: How can I use the emulator that comes with the Activision C64 Action
     Pack to play games other than those which came with it?
  A: You can't, as the emulator refuses to load anything that is not on
     the cd-rom that it comes on. The only way around this would be to
     try to 'crack' the cd-rom protection, which I have not seen a way to
     do yet. Anyone?

     On the good side, the games are on plain .d64 files, and these can be
     copied to your hard-drive and played on the emulator of your choice.

  Q: Why would you want to emulate a CBM 8 bit computer?
  A: 1. As a coding exercise, to show it can be done.
     2. Nostalgia.
     3. Takes up less space than another computer, monitor, and disk drive
     4. Don't have to worry about hardware going down or disks going bad.
     5. 'cos the software still rules :>

  Q: Is there a way to read C64 disks on an IBM PC drive?
  A: No.  The PC's disk controller is too "dumb" to be able to be
     programmed to read non-MFM disks.  The C64 uses GCR.  This limitation
     is why the PC cannot read Amiga disks either.

  Q: So, how can I get my C64 disks from the C64 to the PC, then?
  A: One possibility is to set up a null-modem cable between the 64 and
     the emulator machine, and use a serial transfer.  If you have a 1571 or
     1581, then you can use either the Big Blue Reader (BBR) or the Little
     Red Reader (LRR) to read/write DOS formatted disks.  BBR is commercial
     and can still be purchased, and LRR is a freeware version of BBR.

     A better way (if you still have access to a C64 disk drive) is to use
     the transfer utilities that come with the emulators C64S and PC64, or
     a specialized transfer utility such as X1541, Trans64, Star Commander
     and so on. These utilities require a special cable that connects the
     C64 drive to your PC's parallel port; the schematic for this cable
     comes with the emulators.

     Finally, utilities like 64NET allow you to copy files from the 64
     to the PC's disk drives, and as a matter of convenience allow you to
     access your D64 files from the 64.

  Q: Which is the best emulator?
  A: Opinions vary, naturally.  Since the majority of emulators are either
     freeware or shareware, your best bet is to download which ones interest
     you and see which you like the best.

     The two main emulators for the PC are C64S and PC64, and both have
     their own advantages and disadvantages. C64S has somewhat better
     graphics emulation and supports fastloaders, but is very slow on older
     computers when fully emulating the 1541, and is fairly expensive to
     register. PC64 has a superior user interface and can do some things
     C64S cannot, but its sound capabilities are not as good as C64S's.
     Ultimately, of course, it's your choice :)

  Q: How can I 'grab' graphic images of the screen while an emulator is
     running?
  A: In C64S, just hit the Print Screen key and a file (C64Sxxxx.bmp, xxxx
     being a number) will be outputted to your directory. Other emulators
     do not have a built-in screen grabber, so your best bet is to use a
     TSR screen-grabber such as Screen Thief to get graphic images.

  Q: How do I use more than one disk at a time on either PC64 or C64S?
  A: Have both disks in your directory, for example:
        disk-1.d64
        disk-2.d64
     When the game asks for disk 2, hit F9 in C64S (or F5 in PC64) and
     change the disk to disk-2.d64.

  Q: Can somebody post me the BASIC and KERNEL ROM code in order to get my
     C64 emulator working?
  A: ftp.funet.fi, in the dir /pub/cbm/c64/firmware, has all versions of
     the BASIC and KERNEL roms there, with a good index.


 3.2 C64S.

  Q: How do I run other .d64 files with the C64S emulator demo version 1.0c?
  A: Just rename the .d64 file you are interested in to testdisk.d64.  It
     will work just fine under c64s10cd.

  Q: OK, but how do I get multi-disk games to work in C64S shareware v1.0c?
  A: Create a number of subdirectories, containing the .d64 files of the
     game you want to play in C64S 1.0c. Rename them all to testdisk.d64,
     and then use the DOS utility 'subst' to substitute those dirs with
     drive letters.
     For example: subst e: c:\c64\disk2
     When your game asks you to change the disk, use the CD command in
     the disk menu to change the disk and press E. Then return to
     the game and press space or whatever to continue loading.

     Keep in mind that none of this is necessary with C64S v1.1b, since
     it allows you to select any disk you want.

  Q: What kind of machine is best for running C64S?
  A: C64S reaches 100% speed on a 486-33, but with a lowered frame rate.
     On a 486dx2/66 it runs at 100% with a 1/1 or 1/2 frame rate, and on a
     fast enough Pentium you can get it running at up to 600%. If C64S is
     too slow on your computer, try adjusting the frame rate, as the VGA
     card you have is probably the main bottleneck that the emulator has.

  Q: There are some objects on the screen that you will just pass through
     as if they didn't exist.  I noticed it on Miner 2049'er and Jumpman.
     Is this fixable or just a bug?
  A: Read the manual! If the screen refresh is not set to Original, some
     games may have spotty collision detection.

  Q: Why is C64S 2.0 so slow on my computer?
  A: Probably because you have "Full 1541 emulation" turned on.  In order
     for C64S to be able to emulate the 1541 100% it unfortunately has to
     devote a lot more time to the 1541 emulation; hence the slowdown.  To
     get around it, simply set the 1541 emulation to "Regular" in the
     config utility; you don't need full emulation except for fastloading/
     copy-protected programs.

  Q: So, what's in store for the next version of C64S?
  A: The next version appears to be _the one_ where Miha will go for true
     near-100% c64 emulation.  The CPU, timer, and sprites will be 100%
     correctly emulated, most if not all VIC tricks will work correctly,
     there will be several new Super VGA video modes with blends and inter-
     laces, digitized tapes will be supported, the "freeze" file format
     will be finalized, the emulator will be made a bit speedier, and in
     short, Miha will have a very busy year ahead of him. :)

  Q: Shouldn't it be possible to stick all the C64 games in one HUGE .T64
     file, and thus have easy access w/ descriptions to all the games?
  A: Theoretically it is possible; however, for practicial reasons (DOS is
     low on memory etc.) C64S limits the maximum number to 64.



 3.3 PC64.

  Q: What are the keys for the joystick?
  A: Use the arrows on the numeric keypad and Ctrl to fire. Don't forget to
     turn Num Lock off.

  Q: Can you use a printer with PC64?
  A: You can connect the devices 4..7 either to a device like PRN or a DOS
     file.  There are 4 code mappings CBM -> ASCII:
        channel 0 = big letters, channel 7 = small, rest = unchanged
        all big letters
        all small letters
        leave everything unchanged
    If you want mapping *AND* graphics, you can open 2 files with
    different channels (e.g. 7 and 1).

  Q: Can PC64 do PC speaker sound?
  A: Sorry, no. The SID voices 1 to 3 are mapped to the Adlib FM part of a
     Soundblaster compliant card, and the samples over $D018 go to the DSP.

  Q: Is there a way to get an analog IBM compatible joystick to work in pc64?
  A: IBM analog joysticks on a game card and C64 digital joysticks on the PC64
     cable are supported only in the registered version.

  Q: Do ISEPICed files work with PC64?
  A: Yes, but only if they are in .P00 format (and not on a .d64 disk image).
     The ISEPIC loader tries to read the disk via 'M-R', and if this fails
     it will load the data file with the standard routines.

  Q: How does the sound support work?
  A: PC64 maps SID voices 1 to 3 to Adlib and digitized samples to
     Soundblaster DAC. Voice synchronisation, ring modulation and filters
     aren't supported. The Adlib sounds a little different from the original,
     but the tunes are cleaner than the sample approach of C64S, C64Alive and
     SIDPlay. Digital drums and noises sound good, but digitized speech has
     timing problems if the <Options / Timing / Update screen every x.
     vertical refresh> is higher than 1.

  Q: What are all these ROMS that come with PC64?  Are these legal?
  A:   r1.64k, r2.64k, r3.64k different revisions of kernal
       original.64k           kernal r3 with load default #8 and short RAM test
       sx64.64k               kernal from SX 64
       64ersys1.64k           extended kernal from 64'er magazine
       exosv3.64k             another extended kernal from 64'er magazine
       original.64b           Microsoft Basic V2
       original.64c           4K character ROM
       vc1541.64d             16K VC1541-I floppy ROM

     As for legality.. the author of PC64 has asked both the German sites of
     Commodore and Microsoft if they would let him distribute the ROMs.
     Commodore Germany directed him to Commodore USA, and he hasn't heard
     anything from anyone at all since; so, he decided to include the ROMs
     without permission. If this situation suddenly changes, you can still
     read the ROMs from a connected C64 if you need to (the Manager/Read
     ROMs command).

  Q: Can you please list the extra commands / features of the two kernal
     replacements that come with PC64?
  A: Here are the main features of the 64'er System 1 ROM:
     - Fast loader, about 6 times (useless on the emulators (: ). You need
       a second ROM for the 1541.
     - Additional keys:
       F1 = (directory)
       F2 = sys4096*
       F3 = list[return]
       F4 = old, restores Basic programs after reset
       F5 = [cls]run[return]
       F6 = off, disables extensions
       F7 = load[return]
       F8 = device 8/9, sets default drive
       Ctrl+CursorDown = go to last screen line
       LeftShift = Stop scrolling
     - Shift+Run/Stop default is floppy
     - "Wedge", i.e. floppy commands and status with @
     - The 1541 @ replace bug has been fixed

  Q: How can I set PC64 up with Linux dosemu?
  A: This is an excerpt of the PC64 user manual (thanks to Marko Makela):
       Linux dosemu
     The emulator has been used on Linux with kernel versions 1.1.64 to 1.1.73
     and dosemu 0.53.35.  If you get a newer version of dosemu, you may need to
     upgrade the Linux kernel as well.
     This instruction assumes that dosemu is already running.  Note that the
     configuration file /etc/dosemu.conf must be edited to allow graphics.
     Disable the video BIOS shadowing and use the setting "allowvideoportaccess
     on". Uncomment the "video" line that corresponds to your display adapter.
     You should be able to start PC64 from the DOS command line, just like you
     would do in MS-DOS.  If you want to use the joysticks or the L64 link, you
     may need to edit /etc/dosemu.conf to grant access to the corresponding I/O
     ports.  The sound is not likely to work, even though you grant access to
     the AdLib or Soundblaster registers.  The SoundBlaster registers are at
     0x210-0x29f, depending on the jumper settings.
     ports { 0x201 }                      # analog joystick
     ports { 0x378 0x379 0x37a 0x37b }    # LPT1
     ports { 0x3bc 0x3bd 0x3be 0x3bf }    # LPT2
     ports { 0x278 0x279 0x27a 0x27b }    # LPT3
     ports { 0x2bc 0x2bd 0x2be 0x2bf }    # LPT4
     ports { 0x388 0x389 }                # AdLib
     Note that there is a bug in dosemu: If a DOS program is running in
     graphics mode, and you switch to another console with Ctrl+Alt+Function
     key (F1-F8) and back to dosemu, the graphics screen will not be updated.
     If you haven't set the option "VGA card on local bus" in Options /
     Desktop, you have to press ESC and F5 after switching back to PC64 in
     order to refresh the C64 screen.

  Q: How can I load the p00 files that I have converted from the tape
     images(.t64)?
  A: <Manager / New>, select the directory with the cursor keys, press <tab> to
     go into the file list, select the program and press <enter>. Or associate
     the extensions .P00, .C64 and .D64 with PC64.EXE if you are using a DOS or
     Windows shell.

  Q: How can I speed it up?  I have a dx280 and donkey kong is running a
     little slow compared to c64s.
  A: Both Donkey Kongs from Nintendo and Ocean don't use heavily scrolling so
     you should get about 200% with a 486DX2-80. PAL is about 4% slower than
     NTSC. If you have set <Options / Timing / Update screen every nth vertical
     refresh> to 1, set it back to 2. The setting 1 is only necessary for 0.5%
     of the games. You may also try to increase the <Options / Timing / Limit
     6510 performance to n percent> from 100 to 110 or somewhat.

  Q: Certain games (most EA games, for example) generate CPU jam errors
     no matter what I do. Is this a problem with fastloaders or with disk
     copy protection?
  A: There are certain illegal opcodes ($02, $22, ...) which halt the 6510
     CPU. Neither IRQ nor NMI can change this state; only a RESET works.
     When the emulators encounter such an illegal opcode, they print out
     an error message (PC64 uses some of the opcodes as ROM traps).

     If a CPU jam happens, first copy the disk image back to a 1541 and run
     the program on a real C64. If it doesn't work, it's either a copy
     protection or your disk image has been crippled. Some transfer programs
     between 1541 and PC do not use checksums.

     If the program runs on a real C64 but not on PC64, it is using C64
     features which aren't emulated yet. Try it then on C64S or C64Alive.
     The quality of the emulation in PC64 1.x will no longer be improved
     because all energy now flows into Personal C64 2.0 for Windows. The
     new versions 1.12, 1.13 and so on contain only bug fixes and
     solutions for hardware conflicts.

     You can easily detect a fast loader in PC64: Run the program and wait
     till it hangs, then press ESC once. Nothing happens? Then it has a fast
     loader. You must press ESC again to go back to the desktop. If the first
     ESC works, restart the program with SHIFT+F5. Wait 2 seconds and press
     ESC. Now watch the protocol: Are there many red lines "Userport und
     serieller IEC-Bus werden nicht unterstuetzt"? Then again, it's a fast
     loader. You can go to the next and previous error with F4 and SHIFT+F4.

     If it has no fast loader, it could hang in an endless IRQ loop. Press I
     to go to the next IRQ event. Is the command above a RTI? If yes, the
     program either uses some undocumented trick to issue an EOI or it is
     timing dependent. As the disk access on the emulator is so much faster,
     a program which expects an IRQ to clear $DC0D in the meantime will not
     always run.


  Q: What are all the timing settings(what do they do and mean?)...
  A:

                    Update screen every nth vertical refresh
     A C64 updates the screen 50 (PAL) or 60 (NTSC) times per second. One
     Update is called "vertical refresh". As the VIC consumes 80% of the
     emulation time, you can increase speed by increasing this value. If
     you set it to 60, the screen updates once per second. Then you get 500
     percent on a 486DX2-66. This is only useful for applications. For games,
     use settings between 1 and 5. The default is 2 which means 25 fps
     (frames per second).

                      Limit 6510 performance to n percent
     A C64 is always 100 percent fast. The emulator will run as fast as
     possible, e.g. 150 percent on a 486DX2-66 with schreen refresh 1:2.
     To get original C64 speed, you should set this value to 100 percent.
     The PC will then waste the 50 percent difference between 150 and 100
     with waiting.

                         Use VideoCounter algorithm #n
     If a game doesn't scroll correctly (Boulder Dash, Rambo, 1942), then
     try settings 2 or 3.

                       Start of interrupt consumes n cycles
                      VIC[12h]: Report new line at n percent
     The first setting is for Raster IRQ, the second for Raster Polling.
     Change them if there is a single wrong line at the beginning or at
     the end of a screen switch (scolling region <-> non scrolling region
     or text <-> graphics) or if there is a single flickering line. The
     shortcuts are <Ctrl+Grey+/-> and <Alt+Grey+/->.

                            Enable char and sprite DMA
     Takes away 43 cycles from the CPU on a bad line and 2 cycles for
     each visible sprite in the current line. Switch it on if a game uses
     C(h?)opper Bars, i.e. every raster line has another background. It
     will also remove ghost sprites on some games.

                                      Video
     Leave that to PAL and switch it only to NTSC if a game doesn't run.
     PAL consumes less time for VIC emulation.

                                     Real time
     If the emulation doesn't run with 100 percent, you can set certain
     IO chips to work with real time. I.e. if you run with 500 percent
     and your program uses IRQ music, you can hear it at original speed by
     selecting real time for Timer 1A.

                          Default for new emulator windows
     If you click this checkbox and press OK, the current settings will
     be the new default settings for all unknown programs, e.g. <Emulator /
     New>. Otherwise only the settings for the program in the title bar
     of the dialog box will be saved.




 3.4 Other emulator specific.

  Q: I have problems extracting the files from AMIGA .lha sidtune archives,
     which I downloaded from Ami-Net or <frodo.hiof.no>, on my PC running
     DOS ! Further I can't get SIDPLAY to accept the extracted files !
  A: Consult the FAQ to SIDPLAY. It is available in the latest SIDPLAY
     package or by asking the author <[email protected]>
     to send you the latest version (SIDPLAY v1.25b handles fixed
     *.INF/*.info files).

  Q: Has anyone been able to get the A64 emulator for the Amiga running?
     Every time I start it up, the system crashes.
  A: What version? If it's V2, then it always crashes under Kickstart 3.1.
     V2 works under Kickstart 3.0, but not if you use the OCS/ECS chips
     (using AGA scrambles the display :-P).
     To be sure of getting A64 to work you have to use Kickstart 2.0.
     If it's V3, then you may have to turn the data cache off on faster
     (68040) Amigas.

  Q: Hey, could it be possible for Frodo to take over the whole system
     like A64 does?  Would it speed up the emulation much?
  A: The author informs me that there will never be a non-multitasking
     version of Frodo, as the speed gain would be marginal enough (1-2%)
     that it wouldn't be worth it.

  Q: Anyone ever get C64 Alive working?  I can't seem to figure out what to
     call the ROM files, and the docs are of no help.
  A: (Part 1) You don't have to call ROM files, just type 'c64alive.exe' - if
     this doesn't work - for me it works fine - there must be some other
     problem like the extended video mode (on my Speedstar 24 (ET4000)) C64S
     does not run instead ...
     (Part 2) Load NO drivers except himem.sys.  It worked fine from there.
     It only loads single files, and in raw format which trans64 converted
     fine.  (from George A Neal <[email protected]>)

  Q: I'm running A64 v3 on my AGA machine and the sprites are messed up!
  A: Questronix fix: Set your sprite pointer to lo-res.
     BETTER FIX: Use the PD utility KILLAGA to trick your Amiga!
        1) From the CLI, type ED A64!     (Be sure to specify directory!)
        2) Type    KILLAGA A64            (specify directory of KILLAGA)
        3) Save A64!                      (In same place as A64)
        4) Go into ICONEDIT and save A64!.icon as a PROJECT
        5) Go to Workbench and get info on A64!. Enter ICONX as the default
           tool.

  Q: I'm having some trouble getting Trans64 to work.
  A: Don't just press the "test" button once, press it ten times and
     if any one of the test's fail then adjust your delay. I say 10 because
     if your delay is not long enough it will show up in one of the 10 tests.
     I have the delay set to 40; the machine I have is a 486 DX/2 66 and
     my parallel port comes off one of these vesa local bus ide multi i/o
     cards.
     If I drop the delay to less than 40 then sometimes I get unpredictable
     results with the test.

  ===========================================================================