From vice-emu
Revision as of 14:23, 12 January 2011 by Amatthies (talk | contribs)
Jump to navigation Jump to search

Known Issues

This is the list of known problems. also look at Tracker: open Bugs

issues addressed by x64sc

To clarify... these will never be emulated in the regular x64, unless we end up replacing x64 with x64sc.

note: this is also broken in xcbm2

note: this is also broken in xplus4, xcbm, x128, xpet, ie all emulators that do not use the new cpu core.

Workaround in all cases: use x64sc :)


  • emulator system state is always the same when starting, meaning that various methods of randomizing data will fail on vice (ie, always give the same result) when using the autostart feature.

Workaround: load the program in question manually, that will usually introduce enough randomness into the system state.

note: this could perhaps be solved (atleast partially) by inserting a random delay before "run" ? --Gpz 01:45, 11 January 2011 (UTC)


  • When a key which is shifted on the real machine but unshifted on the PC or Unix keyboard you are using is pressed, the virtual shift is pressed together (i.e. at the same clock cycle) with the main key; this could not work with some keyboard routines.

Workaround: If you have to use the function keys, press the (real) shift key manually (e.g. F2 = Shift + F1, F4 = Shift + F3 and so on); this also works with other keys.




  • VIC-II shows wrong colors when switching from hires background to idle with borders open (Krestology).


  • multiplexing between the POT inputs does not work. (input goes to both ports, which confuses some applications)


Drive Emulation

  • Dual disk drive 2040/3040 support (DOS1, 670 blocks free) is not working
  • when using a dual drive, only the first drive (0:) can be used.
  • the drive rom can not be read using "m-r" when tde is disabled (instead zeros will be returned).

note: this is actually not a missing feature but a bug - because the code _does_ return the drive rom array, its just not loaded. however, the current situation (returning zeros) should be default for most practical situations - so when this gets fixed, it should be optional. --Gpz 01:52, 11 January 2011 (UTC)


Cartridge System

  • the c64/c128 cartridge system has several limitations when multiple carts are to be attached at the same time. (in progress)
  • VIC-II fetches from cartridge in ultimax mode are incomplete (Magic Formel, Final Cartridge Plus, Stardos, Capture, MMC Replay, EXOS)
  • the monitor may incorrectly access cartridge memory (even) if "bank cart" is explicitly set (Magic Formel, Zaxxon, Final Cartridge Plus, Stardos, Capture, MMC Replay, Game Killer, EXOS)
  • some carts have no support for making snapshots (MMC64, Magic Voice, DQBB, ISEPIC, RamCart, MMC Replay, IDE64, MIDI, SFX Sound Sampler, SFX Sound Expander, Ethernet)
  • some carts do not work 100% yet (Magic Voice, MMC Replay, Snapshot64, Stardos)
    • Magic Voice: works only in basic mode right now
    • MMC Replay: only the BIOS mode works right now
    • Snapshot64: crashes on various functions
    • Stardos: file- and disk- copier seem to have problems


  • support for c128 specific control lines is missing in the c64/c128 cartridge system (MMC Replay, FastLoad128?, other?)


  • Support for fast mode (2MHz) is implemented but incomplete, detailed information about the stealing of cycles by the VICII when switching back from fast mode is missing and therefor the emulation of it is incorrect.
  • break- and watchpoints in zeropage are broken. this is because of the old cpu core, and can likely not be fixed without migrating to the new one.



  • The CBM-II emulator, when the execution bank is set to an open memory bank, sets the zeropage and stack access to unmapped, but actually existing memory. This is a bug but cannot be avoided with the current CPU code architecture.
  • Although both are emulated in the xcbm2 emulator, switching between C510 and C6x0/7x0 is not possible at runtime.

Workaround: Use command line option "xcbm -model 510" or "xcbm -model 610" respectivly.

  • break- and watchpoints in zeropage are broken. this is because of the old cpu core, and can likely not be fixed without migrating to the new one.
  • banking in the monitor is broken


  • In the C510 emulation the VIC-II timing is not exact, i.e. the stopping of the CPU during bad lines is wrong.
  • The C510 emulation uses the old VIC-II core which means no cycle exact sprite collisions, no inline gfx changes, and probably more.



  • When running the "8296d diagnostic" test of the 8296 system disk on "xpet -model 8296" some tests fail:
    • when TDE is enabled, the program will hang. when TDE is disabled, the IEEE interface status will be reported as bad
    • the userport is reported as bad (perhaps some dongle is needed?)

note: run like this: "xpet -model 8296 -drive8type 8050 -8 8296d-systemdisk.d82 -editor edit-4-80-b-50Hz.901474-04.bin". the "burnin8296" program seems to be an older version of the "8296d diagnostic" program. it runs when TDE is enabled, but the 50Hz irq test fails.

  • break- and watchpoints in zeropage are broken. this is because of the old cpu core, and can likely not be fixed without migrating to the new one.


  • Screenshots with activated PAL emulation do not deliver the expected (blurry) result.
  • In the C128 emulation VIC-II and VDC palette can not coexist currently in some ports.
  • The CBM-II emulation is not fully supported in all ports.


Win32 DX9
  • There is a bug when moving the window partly outside the left edge of the screen. The rendered contents seem to "lock" to the left border. This seems to depend on the driver of the gfx adapter as is only shows on some machines.

X11 (XAW and GTK)

  • Aspect ratio/scaling is broken in fullscreen mode when hardware rendering is enabled (canvas is always stretched to fill the entire screen)
  • the mouse pointer is incorrectly un-grabbed when switching from/to fullscreen with the mouse- or lightpen emulation enabled.
  • The custom TextField widget is buggy and can cause crashes on DEC/Alpha machines, and possibly on other systems too. If you get weird X protocol errors or the file selector makes the emulator die when you close it, this might be the cause.

Workaround: recompile with the `--disable-textfield' option. If it still does not work, please tell us.

  • lightpen coordinates are not accurate when using vidmode for fullscreen
  • Gnome/GTK+ commandline is ignored.
  • It is not possible to enter the disk name in the create empty disc image dialog.
  • Context popup menu for drive attach is broken if more than two drives are active.
  • Some DEC/Alpha machines crash due to the XAW implementation.

Workaround: Compile VICE with GNOME support `--enable-gnomeui' instead.


  • In the MS-DOS port you have to save the configuration and restart the emulator when changing VDC double size mode.

New Features

This is the place for the VICE developers to put down ideas about the future development of VICE.

Some of these ideas might never be realized, and might look completely absurd, but they could be the inspiration for other ideas.

By putting these ideas down they will be known to any other developers that would like to pick up one of the ideas and implement it.

also look at Tracker: open Feature Requests


Sound System

Video System

  • some kind of generic interface to handle video input is required to handle scanner/digitizer type of carts

Hardware emulation


  • internal (?)
    • c64/c128 1.44 MB disk drive support. ([1])
    • c64/c128 SCSI expansion support. ([2])
  • Cartridges
    • IDE64 improvements
      • IDE64 cdrom/iso support.
      • IDE64 eth64 shortbus expansion support. ([3])
      • IDE64 duart shortbus expansion support. ([4])
    • SFX sound sampler improvements
      • SFX sound sampler audio input support. ([5])
    • Clockport improvements
      • Silversurfer (UART) support ([6])
      • mp3@c64 support
    • Community Information Locator Commodore 64/128 addon cartridge ([7])
    • Pagefox cartridge ([8])
    • RAM Floppy (REX) support
    • Daisy Sound sampler audio input support. ([9])
    • PS64 speech cartridge support. ([10])
    • Voice Messenger speech cartridge support. ([11])
    • ramlink support. ([12] [13])
    • ramdrive support.
    • rtc (ds12c887) support. ([14]) (in progress).
    • z80 (cpm) cartridge support. (4Mhz z80)
    • turbo master cartridge support (4Mhz 65C02). ([15] [16])
    • turbo process cartridge support (4Mhz 658156). ([17] [18])
    • flash-8 cartridge support (8Mhz 65816). ([19])
    • SCPU cartridge support (20Mhz 65816). ([20] [21]) (
    • The Final Chesscard (65c02) ([22])
    • german BTX cartridge (6809)
    • SoftPROM cartridge ([23])
      • somewhat pointless imho, unless software specifically designed for this cart can be found (which i doubt). other than that its just an ordinary 8k game cart (with battery backed up ram instead of rom). Gpz 23:01, 30 October 2010 (UTC)
    • Net64 cartridge support. ([24])
      • this is exactly the same as "the final ethernet" (which is emulated) Gpz 23:27, 30 October 2010 (UTC)
  • Userport
    • C64 RTC 58321 (userport) ([25])
    • CBM1660 (userport) modem300 support. ([26])
    • CBM1670 (userport) modem1200 support. ([27])
    • FB-RS232 (userport) support. ([28])
    • c64 p64 midi interface: ([29])
    • Scantroniks handscanner (userport) support. ([30])
    • Video Byte II video digitizer (userport) support. ([31]) ([32])
    • Computera Eyes video digitizer (userport) support. ([33] [34])
    • Userport RocketDrive support. ([35])
    • CIA-IDE-HD support. ([36])
  • Joystick Port
    • BB-RTC (joystick port 2) support. ([37])
    • C64 smartmouse RTC support.
    • c64/c128 numeric keypad support. ([38])
    • c64/c128 pc-joystick support. ([39])
    • datel 3-button mouse support. ([40])
    • Koala-pad support. ([41])
    • Covox Sound Master audio input (joystick port) support. ([42])
    • animation station support. ([43])
    • Power-pad support.
    • super sketch support. ([44])
  • Video output.
    • c64 LCD64 screen support. ([46])


    • c128 plus60k support.
    • c128 plus256k support.
    • c128 256K memory expansion hack support.


    • VIC20 RTC cartridge support. ([47])
    • vic20 iec2ata support. ([48])
      • pointless to emulate, as it is a simple iec device, very similar to what you get when using virtual drive on the filesystem. Gpz 05:08, 15 August 2010 (UTC)
    • vic20 ethernet support. ([49])


    • plus4 digiblaster audio input support. ([50])

xpet / xcbm2


new Ports/GUI improvements

  • Make a list of GUI elements/features per port, compare and implement any missing features for the ports.
  • Debug/fix the XBOX SDL port.
  • Debug/fix the RiscOS SDL port.
  • Debug/fix the Windows-CE SDL ports.
  • Completely update the RiscOS GUI.
  • Completely update the GP2X GUI.


  • add "commandline options" help window (like in the windows port)
  • add Drag'n'Drop support
  • add Session Management
  • improve Tape status widget, (.TAP vs .t64) handling is lousy.
  • implement Monitor GUI
  • add VIC20 Cartridge attach heuristic for image pairs


  • add "commandline options" help window (like in the windows port)

new ports

  • windows-ce X11 support.
  • amiga X11 support.
  • RiscOS X11 support.
  • Port to Plan9
  • Port to win16
  • Port to win32s (maybe by using windib)
  • Port to macos classic (8.x/9.x).
  • Port to VersaDOS
  • Make OS/2 SDL port.
  • Make atari mint SDL port.
  • Make macos classic SDL port.
  • Make dreamcast SDL port.
  • Make GP32 SDL port.
  • Make PSP SDL port.
  • Make WII SDL port.
  • Make PALMOS SDL port.
  • Make GBA SDL port.
  • Make NDS SDL port.
  • Make PS2 SDL port.
  • Make GameCube SDL port.
  • Make VAX OpenVMS SDL port.
  • Make ALPHA OpenVMS SDL port.
  • Make HPPA OpenVMS SDL port.
  • Make Symbian OS SDL port.
  • Make XBOX360 SDL port.
  • Make Ipod/Iphone SDL port.


  • Split xcbm2 into a 5x0 binary and 6x0/7x0 binary.
  • Split the vsid mode off from x64, making vsid a seperate binary.
  • The "sc" rewrites. Migrate emulators to the cycle based CPU core (6510dtvcore.c, should be renamed), which allows:
    • cycle based hooks for complex hardware expansions (SCPU)
    • in-line graphics data change emulation (see testprogs/VICII/gfxfetch)
    • cycle exact Blitter/DMA vblank start and proper LinearA/B counter handling on x64dtv
    • cycle based drawing
  • ...and requires (at least):
    • rewrite video chip modules to use:
      • cycle based fetch/etc (VIC & VICII done, VICII-DTV in progress)
      • cycle based drawing (VICII done)
    • remove 1 clock write offset in CIA etc (at least CIA/VIA already handled in trunk)
    • an insane amount of regression testing (preferably with new testprogs where needed)


  • Update the *nix documentation
  • proper and specific win32 documentation. (.chm format)
  • proper and specific amiga documentation. (.guide format)
  • proper and specific BeOS documentation.
  • proper and specific MSDOS documentation. (.txt format)
  • proper and specific OS/2 documentation.
  • proper and specific RiscOS documentation.
  • proper and specific SDL documentation.


  • Support for more languages.
  • Translation support for BeOS.
  • Translation support for MSDOS
  • Translation support for OS/2
  • Translation support for RiscOS.