Archive-name: commodore/8bit-emulation-faq Author: Peter Weighill (stuce@csv.warwick.ac.uk) + CBM EMULATION FAQ - (Version 1.8b 23/04/94) ================= This faq is posted once a month on the 4th day of the month to comp.sys.cbm. Lines preceeded by a '+' have been added or modified since the last version was posted. --------------------------------------------------------------------------- Table of Contents ----------------- 1. Introduction. 2. What is available? 2.1 C64 Emulators. 2.2 VIC20 Emulators. 2.3 C128 Emulators. 2.4 PET Emulators. 2.5 Non-Emulators. 2.6 Other utilities & files. 2.6.1 Utilities 2.6.2 Data files. 3. A list of ftp sites where emulation programs can be obtained. 3.1 C64 Emulators. 3.2 VIC20 Emulators. 3.3 C128 Emulators. 3.4 PET Emulators. 3.5 Non-Emulators. 3.6 Other utilities & files. 3.6.1 Utilities 3.6.2 Data files. 4. Emulator File Formats. 4.1 C64 Emulators. 5. How to extract the Rom images required by the emulators. 5.1 C64 roms - Basic, Kernal & Charset. 5.2 1541 rom. 6. Other information. 6.1 Newsgroups worth reading. 6.2 C64 Kernal rom versions. 7. Credits. --------------------------------------------------------------------------- 1. Introduction --------------- Welcome to the "cbm emulation faq". This file covers any program that emulates any features of any of the 8-bit Commodore range of computers. The faq is maintained by Peter Weighill (stuce@csv.warwick.ac.uk) and may be obtained from the following ftp sites: ftp.csv.warwick.ac.uk : /tmp/c64 (try here first for newest version) ftp.funet.fi : /pub/cbm/faq watson.mbb.sfu.ca : /c64/faq ccnga.uwaterloo.ca : /pub/cbm/comp.sys.cbm 2. What is available? --------------------- The list of emulators is as comprehensive as possible, with some brief decriptions of what is emulated, and although something may be emulated it may not be 100% compatible with the original. 2.1 C64 Emulators. PROGRAM: TheA64Package.lha + VERSION: 2.0 shareware, 3.0 not. MACHINE: Commodore Amiga AUTHOR: Cliff Dugan, Christopher P. Zura & Douglas Decicco DETAILS: Sid: ? Vic: ? 6510: ? Peripherals: 1541 & printer via hardware interface with registered version. Other: Different character sets available instead of default. COMMENTS: C64 emulator. PROGRAM: PlaySID2.2.lha + VERSION: 2.2 + OLD FILES: PlaySID-2.0.lha, PlaySID2.1.dms MACHINE: Commodore Amiga AUTHORS: Hakan Sundell & Ron Birk (d89-rbi@nada.kth.se) DETAILS: Sid: Yes, all except filter, also works with multi-tasking. Vic: No. 6510: Yes with Undocumented opcodes. Peripherals: No. COMMENTS: C64 Sid chip emulator. PROGRAM: c64.zip MACHINE: IBM PC running DOS AUTHOR: Johannes Kiehl (hannes%complx.stgt.sub.org@ira.uka.de) REQUIRES: Hercules graphics card. DETAILS: Sid: No. Vic: Text mode only. 6510: No, Interpreted Basic commands only. Peripherals: 1541. COMMENTS: Very primitive. Documetation in German. PROGRAM: c64s09c.exe + VERSION: 09c + OLD FILES: c64s09a.lzh / c64emu.zip, c64s09b.arj MACHINE: IBM PC running DOS AUTHOR: Miha Peternel REQUIRES: 386 and VGA. DETAILS: Sid: Yes - To pc speaker or soundcard, but no filters Vic: Sprites, All screen modes, raster effects. 6510: Yes with Undocumented opcodes. Peripherals: Tape, 1541 & joystick emulation. via interface with registered version. COMMENTS: 100% machine language. New version in March/April 94. PROGRAM: ???? (Still in development) MACHINE: IBM PC running DOS AUTHOR: Peter Andersson (pand@kullmar.se) REQUIRES: DOS2.0, 386, 512k memory and VGA. DETAILS: Sid: Vic: 6510: Yes with Undocumented opcodes. Peripherals: COMMENTS: Alpha testing. Source code included. PROGRAM: c64alive.zip MACHINE: IBM PC running DOS AUTHOR: Frank Littmann (jochen@mubo.saar.de) REQUIRES: 386, 256k memory + 2560k XMS and VGA. DETAILS: Sid: Yes - To soundcard. Vic: Sprites, Basic raster & sprite collision 6510: Yes with Undocumented opcodes. Peripherals: Joystick, Printer, Disk2Dos drive, Reu ram expansion supported. Other: Machine code monitor. COMMENTS: 100% machine language. + PROGRAM: c64neu.zip + VERSION: + MACHINE: IBM PC running DOS + AUTHOR: Wolfgang Lorenz (CIS 100112,220) + REQUIRES: + Details: Sid Yes to Adlib. + Vic: Sprites, screen modes & basic rasters. + 6510: Yes. + Peripherals: 1541 via PC filesystem. + COMMENTS: Documentation in german, but large help file. + PROGRAM: sallyC64.zip (Sally Emulator) + MACHINE: IBM PC running DOS + AUTHOR: Morten Welinder (terra@didu.uk) + REQUIRES: 386, 280Kb memory and VGA. + Details: Sid No. + Vic: Sprites & screen modes. + 6510: Yes with Undocumented opcodes. + Peripherals: Joystick, 1541 via PC filesystem. + COMMENTS: Pascal and Assembly source included. PROGRAM: c64.lzh / c64.lha MACHINE: Atari ST AUTHOR: Uwe Seimet DETAILS: Sid: No. Vic: No, just text mode with screen at $0400 6510: Yes. Peripherals: EPSON printer, disk drive (limited 1541 emulation)/ COMMENTS: Very rough emulation. No banking, no shadow I/O. The documentation is in German only. Assembly source included. + PROGRAM: MAC64-03.HQX + VERSION: 3 + OLD FILES: mac64sea.hqx, mac64col.hqx, mac-02.hqx MACHINE: Apple Macintosh + AUTHOR: Earle F. Philhower III (st916w9r@dunx1.ocs.drexel.edu) DETAILS: Sid: No. + Vic: Hi-res gfx, sprites, scrolling. 6510: Yes. + Peripherals: 1541 emulation, hard drive & printer, tape images. COMMENTS: Source code included. PROGRAM: x64-0.2.1.tar.gz + VERSION: 0.2.1 + OLD FILES: x64-0.1.tar.gz, x64-0.2.0.tar.gz MACHINE: Unix with X windows AUTHORS: Jarkko Sonninen (sonninen@lut.fi) Jouko Valta (jopi@stekt.oulu.fi) Teemu Rantanen (tvr@cs.hut.fi) DETAILS: Sid: No. Vic: Mono Sprites, All screen modes except multi-colour. 6510: Yes with Undocumented opcodes. Peripherals: 1541 emulation with disk images. Access to filesystem via drive 9 (undocumented). Joystick #1 to cursor keys. Reu ram expansion supported. Other: Basic lister/cruncher program. Machine code monitor & runtime trace. Kernal rom patcher vers 0 & 3. COMMENTS: C source code included. 65xx/8502 CPU documentation included. 2.2 VIC20 Emulators. PROGRAM: vic-emu.lha MACHINE: Commodore Amiga AUTHOR: Pieter van Leuven (etmpile@crosby.ericsson.se) DETAILS: 6502: Yes. Ram expansions: COMMENTS: PROGRAM vic-emulatorC64.lnx + MACHINE: Commodore 64 AUTHOR: Fausto Ibarra DETAILS: Ram expansions: 3k, 8k, 16k & 24k. COMMENTS: Screen size not emulated. 2.3 C128 Emulators. Two C128 emulators are (planned/in development) at the moment. 2.4 PET Emulators. + PROGRAM: "PET EMULATOR + MACHINE: Commodore 64 + AUTHOR: + DETAILS: Emulates 2001 series, 4032 series & basic 4.0 + COMMENTS: 2.5 Non-Emulators. PROGRAM: C64Emulator.lha / C64Emul.lha MACHINE: Commodore Amiga AUTHOR: Eddy Carroll COMMENTS: Joke C64 emulator written on April 1st. Source code included. PROGRAM: 64blaz76.exe MACHINE: IBM PC running DOS AUTHOR: Mark D. Rejhon (mdrejhon@descartes.uwaterloo.ca) REQUIRES: 286 with EGA/VGA. COMMENTS: CBM modem terminal with CBM graphics in colour. 2.6 Other utilities & files. There are many different transfrer programs which you can use to transfer data from a c64 to another machine. In this section I will only be listing those which transfer who disk images. I will also be lisiting utilities for the emulators and 'ready to run' data files that are available. 2.6.1 Utilities disk64e.arj - Creates .d64 files using 1541 for IBM PC. c64uti5.zip - Disk utilities for c64s09 emulator for IBM PC. maketape.arj - A tape utility for c64s09 emulator for IBM PC. copy2d64.arj - Convert files into .d64 inmages. zip2d64.arj - Convert !*zip files into .d64 images. d64.lha - Utility for AMIGA. maketape.arj - Makes .t64 files, includes source. dir_d64.zip - List catalog of .d64 files for IBM PC. + d64util.zip - .d64 utils. + d64_10.zip - Transfer files between standard, .t64 & .d64 on IMB PC. + d64zipcode.c - Convert d64 files back to zipcode files. + unt.lzh - Tape utility for Amiga. 2.6.2 Data files. The ftp site watson.mbb.sfu.ca has a selection of .t64 * .d64 disk images. Also available for PlaySID for the AMIGA are a number of music collections: C64MusicShow-1.lha C64MusicShow-2.lha Addition.lha C64Sounds.lha 3. A list of ftp sites where emulation programs can be obtained. ---------------------------------------------------------------- Some of the emulation programs are duplicated at other sites. I have not listed every site that has a certain emulator, although I may have listed more than one site that has that emulator. If you would like to more about other cbm ftp sites the read the ftp list which is posted to this comp.sys.cbm regularly by Howard Herman (72560.3467@CompuServe.COM). Format for listing: Site.Name /Directory MACHINE - program name 3.1 C64 Emulators. watson.mbb.sfu.ca /c64/emulator IBM PC - c64.zip - c64s09a.zip c64s09b.arj c64s09c.exe - c64alive.zip - sallyc64.zip - c64neu.zip AMIGA - thea64package.lha - PlaySID-2.0.lha PlaySID2.2.lha ATARI ST - c64-st.lzh + APPLE MAC - MAC64-03.HQX UNIX/X - x64-0.1.tar.gz x64-0.2.1.tar.gz faui43.informatik.uni-erlangen.de /mounts/faui45/atari/applications/ emulators/c64 ATARI ST - c64.lha ftp.funet.fi /pub/cbm/c64/emulation IBM PC - c64.zip - c64emu.zip c64s09b.arj AMIGA - TheA64Package.lha ATARI ST - c64.lzh UNIX/X - x64-0.2.1.tar.gz ftp.funet.fi /pub/amiga/audio/apps/playback AMIGA - PlaySID-2.0.lha cnam.cnam.fr /pub/Amiga/mus/play AMIGA - PlaySID2.2.lha ftp.germany.eu.net /pub/comp/amiga/music AMIGA - PlaySID2.1.dms ccnga.uwaterloo.ca /pub/cbm/emulation IBM PC - c64.zip AMIGA - thea64package.lha UNIX/X - x64-0.1.tar.Z x64-0.2.0.tar.Z wilbur.stanford.edu /pub/emulators/c64 IBM PC - c64.zip UNIX/X - x64-0.1.tar.gz x64-0.2.0.tar.gz x64-0.2.1.tar.gz src.doc.ic.ac.uk /packages/aminet/misc/emu AMIGA - C64Emulator.lha ftp.uni-passau.de /pub/ibmpc/msdos/emulator IBM PC - C64S09B.ZIP - c64alive.zip ftp.uni-giessen.de /pub/incoming/pc IBM PC - c64s09b.arj - c64alive.zip ftp.wustl.edu /systems/amiga/boing/utilities/emulators/c64 AMIGA - a64v2d1.lzh & a64v2d2.lzh (TheA64Package.lha) 3.2 VIC20 Emulators. ftp.hrz.uni-kassel.de /pub/machines/vic-20/vic-emulator AMIGA - vic-emu.lha src.doc.ic.ac.uk /packages/aminet/misc/emu AMIGA - vic-emu.lha ccnga.uwaterloo.ca /pub/cbm/util64 C64 - vic-emulatorC64.lnx 3.3 C128 Emulators. No emulators availble yet. 3.4 PET Emulators. No sites known. 3.5 Non-Emulators. nic.funet.fi /pub/cbm/c64/emulation AMIGA - C64Emulator.lha ftp.cnam.fr /pub2/Amiga/emu AMIGA - C64Emulator.lha ftp.germany.eu.net /pub/newsarchive/comp.sources.amiga/ volume89/fun AMIGA - c64.1.Z (C64Emulator.lha) watson.mbb.sfu.ca /c64/emulator IBM PC - 64blaz76.exe 3.6 Other utilities & files. 3.6.1 Utilities watson.mbb.sfu.ca /c64/emulator IBM PC - disk64e.arj c64uti5.zip maketape.arj copy2d64.arj zip2d64.arj + d64util.zip + d64_10.zip + d64zipcode.c AMIGA - maketape.arj + unt.lzh ftp.funet.fi /pub/msdos/utilities/diskutil IBM PC - copy2d64.arj zip2d64.arj ftp.funet.fi /pub/cbm/emulation AMIGA - d64.lha IBM PC - dir_d64.zip cnam.cnam.fr /pub2/Amiga/emu AMIGA - d64.lha 3.6.2 Data files. watson.mbb.sfu.ca /c64/games/ (.t64 * .d64 files) watson.mbb.sfu.ca /c64/misc/ (.t64 * .d64 files) watson.mbb.sfu.ca /c64/sidmusic/ (PlaySID music) AMIGA - C64MusicShow-1.lha C64MusicShow-2.lha Addition.lha nic.funet.fi /pub/amiga/audio/misc/sid-tunes AMIGA - C64MusicShow-1.lha (for use with PlaySID) C64MusicShow-2.lha Addition.lha ftp.cnam.fr /pub2/Amiga/mods/PlaySid AMIGA - C64MusicShow-1.lha (for use with PlaySID) C64MusicShow-2.lha Addition.lha ftp.cs.tu-berlin.de /pub/amiga/audio/mods-c64 AMIGA - C64Sounds.lha (for use with PlaySid) 4. Emulator File Formats. ------------------------- 4.1 C64 Emulators. Program File type Identification Contents (name or method) + c64.zip (PC) disk image VC1541.000 683 pcs 256-byte sectors + tape image - not used c64s09 (PC) basic rom } contains binary data for: kernel rom }- romcode.c64 VC1541 (16386 bytes), chargen chargen rom } (4096),basic (8192) and kernel disk drive rom} (8192) = total 36864 bytes program - not used disk image 09c *.d64 683 pcs 256-byte sectors 09a,b testdisk.d64 tape image *.t64 ? + sallyc64.zip basic rom A000BFFF.64F 8194 bytes of binary data (1) + (PC) kernel rom D000DFFF.64P 8194 bytes of binary data (1) + chargen rom E000FFFF.64P 4098 bytes of binary data (1) + disk drive rom - not used + program *.64P C64 program with load address + also SEQ files via *.64S + disk image - not used + tape image - not used + c64neu.zip basic rom *.64B 8192 bytes of binary data + (PC) kernel rom *.64C 8192 bytes of binary data + chargen rom *.64K 4096 bytes of binary data + disk drive rom - not used + program *.P00 C64 program with load address + preceded by 24 byte header. + disk image - not used + tape image - not used c64.lzh (ST) basic rom c64/_basic 8192 bytes of binary data kernel rom c64/_kernal 8192 bytes of binary data chargen rom c64/_font 4096 bytes of binary data disk drive rom - not used program - C64 program with load address disk image - not used tape image - not used + x64 (UNIX) basic rom basic 8192 bytes of binary data (2) + kernel rom kernel 8192 bytes of binary data (2) chargen rom - not used disk drive rom - not used program - C64 program with load address disk image magic header 64 byte magic header and 683 pcs 256-byte sectors tape image - not used + (1) Includes load address. + (2) Default load address allowed. 5. How to extract the Rom images required by the emulators. ----------------------------------------------------------- Type in the following files on your C64 and run them to get the rom image files. Then transfer those files onto the machine that you require. See the comp.sys.cbm FAQ section 7 for some details on transfers. Alternatively, You colud get TheA64Package.lha and extract the file called TheA64Package/64Prgs/SaveROMs. This will extract the basic and kernal roms from a C64. 5.1 C64 roms - Basic, Kernal & Charset. C64 BASIC and Kernal ROM extractor: 10 OPEN5,8,5,"0:C64ROM,S,W" 20 FOR X=40960 TO 49151 30 A$=CHR$(PEEK(X)) 40 PRINT#5,A$;:NEXT 50 FOR X=57344 TO 65535 60 A$=CHR$(PEEK(X)) 70 PRINT#5,A$;:NEXT 90 CLOSE5 C64 Character ROM extractor: 10 D=36864:POKE56334,0:POKE1,51 20 FORX=16384 TO 18431 30 POKE X,PEEK(X+D):NEXT 40 POKE1,55:POKE56334,1 50 OPEN5,8,5,"0:CHRROM,S,W" 60 FOR X=16384 TO 18431 70 A$=CHR$(PEEK(X)) 80 PRINT#5,A$;:NEXT 90 CLOSE5 5.2 1541 rom. C1541 ROM extractor: Extract area $C000-$FFFF 100 B=16384:I=B:Z$=CHR$(0) 110 OPEN1,8,15 120 FORH=192 TO 255:PRINT H; 130 FORL=0 TO 255 140 PRINT#1,"M-R";CHR$(L);CHR$(H) 150 GET#1,A$:X=ASC(A$+Z$) + 155 Z=FRE(0) 160 POKE I,X:I=I+1:NEXTL 170 NEXTH 180 CLOSE1 200 OPEN5,8,5,"0:C1541ROM,S,W" 210 FORX=B TO I-1 220 A$=CHR$(PEEK(X)) + 225 Z=FRE(0) 230 PRINT#5,A$;:NEXT 240 CLOSE5 If you just want the rom without the extra $100 bytes of baggage (the area from $C100-$FFFF only) then change the 192 in line 120 to 193. 6. Other information. --------------------- 6.1 Newsgroups worth reading. If you are wanting as a question about an emulator or read what other people are saying. Then I recommend that you read comp.sys.cbm :) Also worth a quick look is comp.sys.amiga.emulations, but this covers any emulator for the Amiga, not just cbm ones. 6.2 C64 Kernal rom versions. Below is the information on differences between kernal revsions 0 & 3. Are there any others? I would also be interested in looking at the rom from an SX64 if anyone has that. Format for list: Address: E4AC: 5C 81 E4D3: AA, AA, AA, AA, AA, AA, AA, AD, 21, D0 85, A9, A9, 01, 85, AB, 60, AD, 86, 02 E57C: B5, D9, 29, 03, 0D, 88, 02, 85, D2, BD, F0, EC, 85, D1, A9, 27, E8, 20, F0, E9, A9, 27, E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 85, -: B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 85, D5, 60 D5, 4C, 24, EA, E4, C9, F0, 03, 4C, ED, E6, 60, EA E622: ED, E6 91, E5 EA07: A9, 20, 91, D1, 20, DA, E4, EA, 88, 10, F5, 60 20, DA, E4, A9, 20, 91, D1, 88, 10, F6, 60, EA EF94: 85, A9, 60 4C, D3, E4 FF80: 00 (revision number) 03 7. Credits. ----------- If anyone has a better description for any of these emulators then send me a copy, also if you know of any other emulators or ftp sites then send me them as well so that I can update the information. Is any one out there thinking of making an emulator for a machine other than a C64. (eg C128, VIC20, Plus4, C16, PET) I will add this to the list also. Thanks to: All the emulator authors - For writing your emulator. ftp.funet.fi : ftp site - For having a large selection of emulators available. watson.mbb.sfu.ca : ftp site - For having a large selection of emulators available. Jim Sloan : jsloan@u.washington.edu - For posting the rom extraction routines on comp.sys.cbm. Jouko Valta : jopi@stekt.oulu.fi - For sending me some documentation on the ATARI-ST emulator, the rom extraction routines, and comments. - For "4. Emulator File Formats" section. Jim Brain : brain@msen.com - For his comments & questions on version number. Jens-Uwe Rumstich : rumstich@informatik.hu-berlin.de - For pointing out some German ftp sites & c64alive emu. Eli Mackenzie : eli.mackenzie@fleming.edu - For noticing some mistyped words and additions for 2.6. + Fredrik Ekman : D91FE@rby.hk-r.se + - For info on Pet emulators Bye, Peter Weighill - stuce@csv.warwick.ac.uk ---------------------------------------------------------------------------