Todo
Prime Directive
- when adding/changing stuff that needs (G)UI items/changes, add a proper entry to the Developer_log to notify the UI maintainers.
- when changing something that needs an update to text messages (and as such, the translation), add a proper entry to the Translator_log to notify the Translators.
- when adding/changing command-line options and/or resources, adding a new feature or change the behavior of an existing feature, please update the documentation :)
- after fixing a bug or implementing a new feature, update its status on the Bug Tracker and mark it as fixed in the list below.
<@_tlr> Please at least test the issue you were trying to fix before committing.
Known Issues
This is the list of known problems. also look at Tracker: open Bugs
This list always refers to the status of the last major release version, which was 2.4. Items that have been fixed by the time of a major release will be removed, items fixed after that will be marked as fixed and stay until the next major version. New items will be added as noticed.
Documentation
MAN Pages
- the man pages are very outdated and should perhaps be generated from the infotext
- the man pages refer to the path where the html documentation can be found, this should get adjusted to whats actually used
- the following man pages are missing: vsid, cartconv
- man pages for the individual emulator binaries should get installed as symbolic links to vice.1
Manual
Technical
- many nodes are not yet linked correctly, which makes some of the exporters output garbled and/or suboptimal output (windows .hlp, unix .info).
- Workaround: use the .html or .pdf documentation, which is exported correctly.
- perhaps find a way to conditionally include arch specific stuff in vice.texi ? (in trunk)
Content
The documentation is partly outdated and/or incomplete, in particular:
- some info that was previously hidden in target specific articles on the VICE knowledge base should get merged into vice.texi - the remaining articles are here
- some descriptions of emulator formats are missing (D67, D1M, D2M, D4M...)
- descriptions of several snapshot modules are missing (Plus4, TED...)
- generate target specific documentation
- win32 documentation. (.chm format)
- amiga documentation. (.guide format)
- BeOS documentation.
- MSDOS documentation. (.txt format)
- OS/2 documentation. (.inf format)
- RiscOS documentation.
- SDL documentation.
for details look at doc/Documentation-Howto.txt
Subsystems
Translation
- Support for more languages.
- Translation support for BeOS.
- Translation support for MSDOS
- Translation support for OS/2
Keyboard
- 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.
- note: also see this knowledgebase article
- 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.
- When typing very quickly, some keypresses might get lost. This comes from the fact that the keyboard is (and can not) be scanned in real time (ie every 1mhz cycle). Even if we could remove the per frame scanning from the emulator itself, the operating system and last not least the keyboard itself would still impose a certain limit (something like 10ms for USB HID keyboards, for example). That means if a key is pressed and released within that timespan, the emulator does (and can not) know about it.
- Workaround: the only workaround is to type slower, it cant be fixed.
- Some ports do not have all required keymaps, and the general logic of the keymap resources / commandline options seems inconsistant. (one resource/option per keyboard on the emulated machine, not per keyboard/language combo! - eg -symdekeymap for c64 and associated resource should get removed) also perhaps related: https://sourceforge.net/tracker/?func=detail&aid=3127784&group_id=223021&atid=1057617
- for some ideas of how this could be solved look here: Keymaps
- Although "shift lock" can be mapped to a key, not all ports and/or emulators support it due to missing keymaps and/or implementation details.
- contact-bounce is not emulated
- TODO: make a proper test program
Joystick
- currently VICE interprets all buttons of a connected joystick as fire button ( https://sourceforge.net/tracker/?func=detail&aid=3292139&group_id=223021&atid=1057620 )
- 2nd button of C64GS joystick (cheetah annilihator) not implemented ( http://sourceforge.net/p/vice-emu/feature-requests/189/ )
- contact-bounce is not emulated
- TODO: make a proper test program
Commandline
- the "-keybuf" option lacks ascii->petscii translation. (fixed in r27923)
- escaping of arbitrary charcodes is non standard (\0d instead of \x0d) (fixed in r27923)
- some options where the available parameters depend on the machine type lack proper descriptions (-drivetype)
Monitor
- When loading a snapshot, the monitor break/watchpoints break.
History Recording
- history recording currently breaks on a lot of user actions, such as using autostart or attaching a cartridge.
- Workaround: make sure to start up with a bog standard c64, and then load/run the program in question manually
- recording/playing back histories was broken in 2.2 ( https://sourceforge.net/tracker/?func=detail&aid=2925410&group_id=223021&atid=1057617 )
note: since history recording is very error prone and hard to debug, we depend on feedback (on either failure or success) on this topic very much. if you still have problems with the current release, please report them including testcases.
Screenshots / Media Recording
- Screenshots with activated video filter (CRT emulation / Scale2x) do not deliver the expected (filtered) result.
Rendering
- some things are still shared by videochips although they shouldnt be, resulting in conflicts for eg the color generation (visible in x128 in ports that show two windows at a time, when crt emulation is enabled, eg adjusting brightness affects also the other window)
CRT Emulation
- the rf-modulator output characteristics are not emulated, which means the so called "black bleeding" effect does not work (emusux0r, http://www.csdb.dk/release/?id=81780)
- artefact color and luma/chroma crosstalk are not emulated (eg the "red/green stripes")
- the alternative "sony matrix" for decoding NTSC is not yet implemented (in trunk)
see http://hitmen.c02.at/temp/palstuff/ for some further info on this topic.
Drive Emulation
- Dual disk drive 2040/3040 support (DOS1, 670 blocks free) is not working
- when using a dual drive, and no TDE, only the first drive (0:) can be used.
- G64 image support is incomplete, the speedzone definitions are completely ignored
- Note: this is no problem in practise, so far not a single title (game) could be located that would actually require this kind of support to work. Incase you find a program that needs this kind of support, please let us know.
- RPM and Wobble settings have currently no effect when P64 images are used
virtual Devices
- handling of CBM style sub partitions is incomplete, write operations on sub partitions may give unexpected results.
- RELative files are only supported when using disk images ( https://sourceforge.net/p/vice-emu/bugs/703/ )
True Drive Emulation
- serial timing latency is not implemented. due to their physical properties, it takes about half a cycle for a value to show up at the respective output pin after it has been written to the register. and respectivly, it takes about half a cycle from changing an input pin until the value in the respective register changes.
- mechanical delays (such as head stepping and motor spinup) are not emulated yet.
- 2mhz mode of the 1571 is not handled correctly
- drive CPUs always run at 1Mhz for all drives (hardcoded 1000000 at a few places)
- 1571 has extra delay on on reading sync inside the drive, ("you cannot use BVC in 2mhz mode!")
- 1571CR emulation does not work correctly
- double sided 1571 images do not work correctly
Extensions
- when using dolphin dos 3 emulation, the state of the mc6821 is not saved to/restored from snapshots
- when using supercard+ emulation, the optional additional index hole sensor (for the IHS nibbler) is not emulated
Drive Noise
- since the current implementation is a very simple sample player, things like "drive composer" will not work
Datasette Emulation
- unlike with a real datasette, the emulated counter will stop counting when no tape/image is present
- when a t64 image is attached, the datasette status will incorrectly say "no image".
- Note: since t64 is currently only accessable via kernal traps, the datasette emulation actually treats this case as if no image is present. The respective code must be updated so the datasette emulation actually "knows" about when t64 is in use.
- motor noise is not emulated
Printer Emulation
- not really a bug: the printer output file is always created in the current working directory. ( https://sourceforge.net/tracker/?func=detail&aid=3305650&group_id=223021&atid=1057617 )
- there perhaps should be a way to explicitly set a directory for printer output files Gpz 01:24, 4 July 2011 (UTC)
- printing to a pipe (execute) is not implemented ( https://sourceforge.net/tracker/?func=detail&aid=3570824&group_id=223021&atid=1057617 ) (added in r27914)
- printer noise is not emulated
- printers don't work on the PET (or other IEEE-488 computers)
c1541
- handling of .d81 CBM sub partitions and CMD DIR subdirectories is broken due to the way disk images are handled.
- accessing files does not work ( https://sourceforge.net/tracker/?func=detail&aid=3367519&group_id=223021&atid=1057617 )
- listing directories does not work ( https://sourceforge.net/tracker/?func=detail&aid=3367517&group_id=223021&atid=1057617 )
- unfortunately to fix this a lot of c1541 will have to be rewritten (mount image only once, not for each operation) Gpz (talk) 23:57, 13 December 2012 (UTC)
- since virtual drive emulation does not support REL files on the host filesystem, c1541 can not extract them to R00 files ( https://sourceforge.net/p/vice-emu/bugs/702/ )
Chips
CIA
- the case when CIA1 port A and port B are both in output mode, port A outputs low, port B outputs high, both are connected via the keyboard matrix and a value is read from port B is not handled correctly ( testprogs/CIA/ciaports ; http://noname.c64.org/csdb/release/?id=5375 ) (has been improved but is not perfect)
- another odd special case is when some bits of a port are programmed as output, others as input. and then they are connected via the keyboard matrix by pressing several keys at once. this is not emulated yet at all. (added in r26551)
- the various analog side effects that must be considered when pressing two or more keys are not emulated correctly, so this will currently not produce the correct results in some corner cases.
- TOD clock interrupt when alarm time is 0 is broken (see this bug) (fixed in trunk)
used in: C64, C128, 1570/71
SID
- the POTX/POTY sampling period is not taken into account (512 cycles)
- POTX/POTY sampling jitter is not emulated
- only one mouse or pair of paddles can be emulated at a time
TED
- snapshots are broken
- FLI does not work ( https://sourceforge.net/tracker/?func=detail&aid=3205787&group_id=223021&atid=1057617 )
used in: Plus4
VDC
- Some basic features of the VDC are missing:
- 40 columns mode ( https://sourceforge.net/tracker/?func=detail&aid=2947582&group_id=223021&atid=1057617 ) (fixed in r27245)
- Interlaced mode ( https://sourceforge.net/tracker/?func=detail&aid=2871065&group_id=223021&atid=1057617 ) - This will require a major rewrite of the output as it is currently basically 640x200(ish) vertically stretched to keep the aspect right, but in interlaced it will have to go to 640x400ish with no vertical stretching. None of the other emulated models change output modes like this and it can break some platforms.
- Registers 34/35 (horizontal blanking position) not implemented
- $d600 bit 7 STATUS flag is always set, ie. the VDC is never 'busy'. Fixing requires emulating the internal timing of the VDC..
- Differences between 8563 and 8568 are not all emulated, eg. register 38
- Snapshot doesn't include VDC
- Clock calculation for lightpen is incorrect
- The colors of the internally generated palette are wrong. (fixed in r26653)
- Workaround: use the "default" palette.
used in: C128
VIC
- Idle fetch (or the lack of it) needs investigation
- "Screen mixup" is not emulated
- COLS=0 can lead to negative width in raster/ causing segfaults if not checked for in archdep video code
- NTSC bugs:
- raster line register values are incorrect near the end of frame (see testprogs/VIC20/split-tests/lightpen)
- lightpen values are off (see testprogs/VIC20/split-tests/lightpen, http://sleepingelephant.com/ipw-web/bulletin/bb/viewtopic.php?t=4870 )
- some glitches when XPOS is 0, breaks (at least) Vicual MMIX credits part (http://www.cs.tut.fi/~albert/Pu-239/vicual-mmix/)
used in: VIC-20
VIC-II
- the handling of MCBASE at power-on is incorrect (see testprogs/VICII/spritemcbase)
- note: this should only be visible directly after power-cycle on a 6569
- DMA delay artifacts are not emulated correctly ( https://sourceforge.net/tracker/?func=detail&aid=3325466&group_id=223021&atid=1057617 )
- Sprite fetch bugs in sideborder are not emulated correctly ( https://sourceforge.net/tracker/?func=detail&aid=3325426&group_id=223021&atid=1057617 )
used in: C64, CBM2
VIC-IIe
- The test bit is not emulated, which results in things like 'real interlace' ([1]) and the $D030 new VIC-IIe color palette hack ([2]) not working.
used in: C128
t6721a
- 48bit frames support is incorrect/broken
- synthesizer condition 2 loss-effect-, shape- and repeat- bits have no effect
- reading from the speach rom is not emulated (which is not really an issue since neither magic voice nor v364 have one)
- snapshot support is missing
used in: Magic Voice, Plus4 (V364)
mc6821
- interrupts are not implemented
- implementation of C2 output modes is incomplete
used in: Formel64, Magic Formel, Dolphin-DOS 3
CS8900a
- snapshot support is missing
used in: RR-Net/TFE
Cores
spi-sdcard
- snapshot support is missing
used in: MMC64, MMC Replay
spi-eeprom
- snapshot support is missing
used in: MMC Replay
midi
- snapshot support is missing
used in: C64, VIC-20
Machines
vsid
- at startup vsid still loads a keyboard map (not really a problem, but probably shouldnt happen anyway :)) (fixed in r26914)
x64 / x64sc
general
- "Max Machine" and "C64 Game System" models are missing (added in r26948)
- the memory layout for "Max Machine" is not yet correct
- when SX-64 is selected, the tick for the CIA TOD clocks should always be 60Hz (regardless of PAL/NTSC)
- for details see C64models
x64 issues addressed by x64sc
To clarify... these will never (as in can't) be emulated in the regular x64, unless we end up replacing x64 with x64sc.
- some VIC-II bugs present in the old VIC-II core
- inline gfx data changes are not emulated (see testprogs/VICII/gfxfetch/)
- The VIC-II implementation lacks cycle exact sprite collision support
- VIC-II shows wrong colors when switching from hires background to idle with borders open (see testprogs/VICII/border/*, Krestology)
- VIC-II fetches from cartridge in ultimax mode can not be emulated properly for all carts
note: this is also broken in xcbm2
Workaround in all cases: use x64sc :)
x64 specific problems
note: While most of the x64sc improvements/fixes are impossible to shoehorn into x64 (hence the split), a few things could still be improved:
- testprogs/VICII/spritesteal (ntscold)
- testprogs/VICII/spriteenable
- missing open border on top of testprogs/VICII/sprite0move
- testprogs/VICII/split-tests/modesplit
- switching VICII border mode resets x64 ( https://sourceforge.net/tracker/?func=detail&aid=3004255&group_id=223021&atid=1057620 )
Workaround in all cases: use x64sc :)
Cartridge System
- some carts have no snapshot support yet (still broken: MMC64, Magic Voice, MMC Replay, MIDI, RR-Net MK3, Ethernet.)
- IDE64 & ATA system can only handle "readonly" snapshots now. Somehow the image file must be matched to the snapshot to prevent corruption.
- some carts do not work 100% yet (still broken: Magic Voice, MMC Replay.)
- KCS: BLOADing a frozen program does not work (fixed in trunk)
- ISEPIC: uploading the software and making a backup does not work (fixed in trunk)
- Magic Voice: emulation of the speech chip is incomplete (see Todo#t6721a), this breaks some words included in the magic voice rom and the "a-bee-c" cartridge. Memory mapping is incomplete/broken (which however affects no known software/testcase).
- MMC Replay: only the BIOS mode works right now; the monitor may incorrectly access cartridge memory (even) if "bank cart" is explicitly set
- RR-Net MK3: to get the ethernet functionality it must be explicitly enabled too, and will appear as a "clockport" internally (which is wrong)
- IDE64 shortbus expansions not emulated
- the (very strange, and incompatible with most cartridges) passthrough port of the SFX sound expander is not emulated
- various cartridges have no support for verbose i/o dump in the monitor
- Passthrough port functionality depends on ordering of cartridge attaches, especially visible from the command line. (e.g. MMC64+RR ok, RR+MMC64 not)
note: the detailed todo list/status is here.
x128
- 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.
- support for c128 specific expansion port handling/mapping is missing in the c64/c128 cartridge system (MMC Replay, FastLoad128, MACH128, other?)
- the relative speed and details like cycle-stealing of the z80 is inaccurate ( https://sourceforge.net/tracker/?func=detail&aid=3476760&group_id=223021&atid=1057617 ) TODO: cycle accurate test programs
xvic
- programs that do not work for unknown reason:
- the naming of the VIAs in the sourcecode is mixed up, it should be VIA1 for the one at 9110 and VIA2 for the one at 9120
x64dtv
- Very inaccurate, needs to be rewritten (in progress)
- Misery 3: (http://noname.c64.org/csdb/release/?id=83196)
- fails emudetect
- plasma part is missing badlines
- switching VICII border mode resets x64dtv ( https://sourceforge.net/tracker/?func=detail&aid=3004255&group_id=223021&atid=1057620 )
xplus4
The plus4 emulator is generally work in progress and not yet "ready". Maintainer wanted!
- support for Snapshots is incomplete/broken (TED, PIA, V364 Speech, ...) ( https://sourceforge.net/tracker/?func=detail&aid=2878220&group_id=223021&atid=1057617 )
- handling of the c0/c1/c2 roms is weak
- cartridges share the same roms as internal roms
- roms are not removed from the memory map if not present (just cleared)
- emulation of the V364 speech chip is incomplete (see Todo#t6721a)
xcbm2
- 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.
- 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
- breakpoints are broken
- when a breakpoint is hit, the monitor disassembles from the wrong bank
- breakpoints will only hit in the bank which is active in the monitor (!)
- when running the burn-in diagnostic tests, the CIA is reported as bad ( https://sourceforge.net/tracker/?func=detail&aid=3102493&group_id=223021&atid=1057617 )
- note: run like this: xcbm2 -model 610 -ntsc -drive8type 8050 +truedrive -8 cbm2-burnin.d80
xcbm5x0
- The 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.
- 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.
xpet
- 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.
- some combinations of selected keymap and keyboard model do not work because of missing keymaps
Ports / UIs
- Make a list of Hotkeys used per port, compare and try to make them the same / alike. ( Hotkey cleanup )
- enable/disable menu items in drive settings menu according to Drive_options_precedence
- Fix all Keymap handling according to Keymaps
- VSID is not fully supported in all ports: (unconfirmed: dos)
- YUV rendering (used by amigaos and xaw) implementation is incomplete
- scale2x not available
- some renderers are missing
- doublesize + y-stretch (2x4) doesnt work correctly
- make datasette interface nicer (hotkeys) ( https://sourceforge.net/tracker/index.php?func=detail&aid=2525175&group_id=223021&atid=1057620 )
- allow browsing of archives (zip etc) ( https://sourceforge.net/tracker/index.php?func=detail&aid=2942868&group_id=223021&atid=1057620 )
- add dual monitor support (for x128) ( https://sourceforge.net/tracker/?func=detail&aid=2780684&group_id=223021&atid=1057620 )
- add realtime speed adjustment ui / hotkeys ( https://sourceforge.net/tracker/?func=detail&aid=2904137&group_id=223021&atid=1057620 )
- Monitor Improvements: ( also see MonitorUI )
- keep monitor window open ( https://sourceforge.net/tracker/?func=detail&aid=2311669&group_id=223021&atid=1057620 )
- enable more actions by mouse/hotkey ( https://sourceforge.net/tracker/?func=detail&aid=3134010&group_id=223021&atid=1057620 )
- use cbm font ( https://sourceforge.net/tracker/?func=detail&aid=3134010&group_id=223021&atid=1057620 )
- improve vsync / add option to sync to actual output framerate ( https://sourceforge.net/tracker/?func=detail&aid=3009846&group_id=223021&atid=1057620 )
Windows
The windows GUI has a lot of inconsistencies and really needs at least a partial re-write. Maintainers wanted!
- a gui item for "single frame advance" is missing
- single frame advance should use vsyncarch_advance_frame() from vsyncapi.h instead of the current hack
- In the win32 port keyboard input can be garbled after issuing a reset on CPU JAM.
- the device buttons in the monitor ui are broken ( https://sourceforge.net/tracker/?func=detail&aid=2478267&group_id=223021&atid=1057617 )
- when the monitor is active, popup (right click) menus open at seemingly random positions ( https://sourceforge.net/tracker/?func=detail&aid=3200977&group_id=223021&atid=1057617 ) (fixed in trunk)
- the monitor might crash if another (settings-) window is open ( https://sourceforge.net/tracker/?func=detail&aid=3196476&group_id=223021&atid=1057617 ) (fixed in trunk)
- remote monitor might hang after "x" until the mouse pointer passes the emulator window ( https://sourceforge.net/tracker/?func=detail&aid=3196471&group_id=223021&atid=1057617 ) (fixed in trunk)
- keymap selection in xpet seems to be broken ( https://sourceforge.net/tracker/?func=detail&aid=3127784&group_id=223021&atid=1057617 ) (fixed in trunk)
- a slider widget is missing to adjust "DriveSoundEmulationVolume" (integer, 0 - 4000, the volume of the drive noise emulation)
- in "save media file" dialog options for "native" screenshots (koala, doodle...) are not available
- when tfe emulation is selected and the necessary dlls are not available, a message pops up that points to some now no more existing knowledge base article. it should instead tell the actual problem :)
- vsid: menu hotkeys (alt+w, alt+p etc) do not work/are missing. some other hotkeys (cursor up/down for last/next tune) are hardcoded and not displayed as such in the menus (although menu items exist)
- vsid: sound volume can not be changed using the GUI ("SoundVolume")
- x64, xvic: menu item for "IOCollisionHandling" (remove all, remove last, AND values) is missing
- x64, xscpu64 and x128: proper setup for IEE488 cartridge is missing
- x64, xscpu64 and x128: the name of the IEE488-cartridge ROM can not be selected in the gui ("IEEE488Image", string).
- x64, xscpu64: the IEE488-cartridge ROM can not be enabled ("IEEE488", integer)
- xpet is missing a menu item for userport diagnosis pin
- xpet is missing menu item(s) for HRE hires graphics board
- xpet is missing menu item(s) to configure the (PET!) keyboard type
- xplus4: TED settings are missing model (pal/ntsc) selection (remove pal/ntsc switch in menu when added)
- xvic: VIC settings are missing model (pal/ntsc) selection (remove pal/ntsc switch in menu when added)
- xscpu64: VIC-II is missing menu item(s) to configure the glue logic type (model switching should be like x64sc!)
- add "apply" button in video settings ( https://sourceforge.net/tracker/?func=detail&aid=3354016&group_id=223021&atid=1057620 )
- add cassette control buttons/hotkeys ( https://sourceforge.net/tracker/?func=detail&aid=3203245&group_id=223021&atid=1057620 )
- make it possible to define ALT as a hotkey ( https://sourceforge.net/tracker/index.php?func=detail&aid=2909906&group_id=223021&atid=1057620 )
- add option to run vice executable with high priority ( https://sourceforge.net/tracker/?func=detail&aid=2430983&group_id=223021&atid=1057620 )
- add "run c1541" item (like in *nix port)
- gui to manage rom sets is missing
- monitor-ui should get a scrollback buffer
- popup widgets on tape- and drive-status (like in GTK) in statusbar is missing
- resid passband/filter bias/gain should be sliders and work in realtime
- move all "model" related settings that are now in seperated dialogs ("c64 model", "cia", "sid" etc) into one tabbed dialog
- "help" menubar item should be aligned to the right
- vsid has no status bar (and thus no volume control)
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.
Windows 7
- there seems to be a problem with ParSID ( https://sourceforge.net/tracker/?func=detail&aid=2981666&group_id=223021&atid=1057617 )
Mingw64
- building VICE using mingw64 (ie a fresh install of mingw on a recent PC) results in broken binaries. reason unknown :( (seems fixed in trunk)
X11 (XAW and GTK)
- 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.
- some text output may show broken characters for "foreign" UTF8 chars due to improver conversion (please report such cases!)
- the initial window and canvas should be created using its final size and not resized later
- xvic is missing menu item(s) to enable the VIC1112 IEEE488 cartridge (added in trunk)
- amount of random auto start delay can not be changed using the GUI (AutostartDelay) (added in r26682)
Vidmode
- lightpen coordinates are not accurate when using vidmode for fullscreen
- mouse warping when using vidmode for fullscreen is buggy
- the mouse pointer is incorrectly un-grabbed when switching from/to fullscreen with the mouse- or lightpen emulation enabled.
- Workaround: use XRandR for fullscreen
GTK
- Gnome/GTK+ commandline is ignored. (fixed in r27030)
Note: GTK options must come first (before any non-options)
- the event handling is buggy, which results in some more or less broken behaviour eg when holding down ALT-D or ALT-B (the later in fullscreen mode)
- lightpen (x) coordinate is broken (fixed in r27023)
- the menu structures (uimenu.c) are not properly deallocated at ui_shutdown (not really a bug, but makes finding actual memory leaks using tools like valgrind harder and thus should perhaps get fixed)
- add Session Management
- improve Tape status widget, (.TAP vs .t64 handling is lousy.)
- implement actual Monitor GUI (like in the windows port) ( https://sourceforge.net/tracker/?func=detail&aid=3317803&group_id=223021&atid=1057620 )
- start c1541 inside a VTE terminal window and not use an xterm
- improve/fix widget layout in "save media image" dialog
- improve/fix widget layout in "netplay" dialog
- create a "open cartridge image" dialog allowing selection of any (bin) cartridge type and preview of .crt file info
- doodle output driver options are missing in "save media image" dialog (DoodleCRTCTextColor, DoodleTEDLumHandling, DoodleMultiColorHandling, DoodleOversizeHandling) (added in r26901)
- in the crt setting dialog, options that are not available in the current config should be made inactive. (added in r26708)
- resizing the VTE window (which is used for the monitor) is broken. this seems to be a bug in VTE itself :( (fixed in trunk)
GTK3
- gtkglext is not ready yet for GTK3, so hardware scaling will not work yet
- the window is resizeable even when hardware scaling is not enabled
XAW
- Some DEC/Alpha machines crash due to the XAW implementation.
- Workaround: Compile VICE with GNOME support `--enable-gnomeui' instead.
- warning "Files using this header must be compiled with _SVID_SOURCE or _XOPEN_SOURCE" may show up if none is defined in the environment
- Workaround: define _XOPEN_SOURCE=600 on the commandline
- Context popup menu for drive attach is broken if more than two drives are active.
- when hardware rendering is enabled, greenish color might appear around the drawing area.
- 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.
- mouse- and lightpen emulation/coordinates are broken on the second window (VDC/x128)
- add "commandline options" help window (like in the windows port)
- hide hidden files (dot files) in the filebrowser ( https://sourceforge.net/tracker/?func=detail&aid=2878433&group_id=223021&atid=1057620 )
- implement "edit" (copy/paste) menu
- add Drag'n'Drop support
- the status bar area of the created window is larger than it should be
- ffmpeg half frame-rate setting missing in "save media image" dialog (FFMPEGVideoHalveFramerate)
- sound volume can not be changed using the GUI (SoundVolume)
- datasette status widget is not implemented
MAC OSX
the OSX port is somewhat outdated and needs fixing badly - Maintainer wanted!
- the VSID GUI is missing and needs to be implemented
- model selection for xplus4 is missing (r24285)
- look at plus4/plus4model.h for models and functions, it works just like the c64 counterpart
- model selection for x64dtv is missing (r24287)
- look at c64dtv/c64dtvmodel.h for models and functions, it works just like the c64 counterpart
- model selection for xcbm2/cbm5x0 is missing (r24326)
- look at cbm2/cbm2model.h for models and functions, it works just like the c64 counterpart
- model selection for x128 is missing (r25052)
- look at c128/c128model.h for models and functions, it works just like the c64 counterpart
- model selection for xvic is missing (r26968)
- look at vic20model_get/vic20model_set for models and functions, it works just like the c64 counterpart
- FIX: X64->Help->If you click on Contributors, you get whatever was shown last in the help menu. If nothing was shown last, it will come up with a blank screen. If the License was shown last it will show the license, or if the Warranty was shown last, it will show the warranty if you click contributors.
- FIX: ui_pause_emulation is not implemented (see r29876)
- ADD: support for HardSID USB ( https://sourceforge.net/tracker/?func=detail&aid=2714202&group_id=223021&atid=1057620 )
Linux
- ADD: support for rtkit ( https://sourceforge.net/tracker/?func=detail&aid=3088679&group_id=223021&atid=1057619 )
MS-DOS
- In the MS-DOS port you have to save the configuration and restart the emulator when changing VDC double size mode.
- ADD: real IEC device support via par port or ser port
- ADD: proper lfn detection
- FIX: X64->Video settings->VGA resolution->Mode 5: 640x480 8Bit crashes the emulator.
- FIX: X64->Video settings->VGA resolution->Mode 7: 1024x768 8Bit crashes the emulator.
- FIX: X64->Video settings->VGA resolution->Mode 11: 800x600 16Bit crashes the emulator.
- FIX: X64->Video settings->VGA resolution->Mode 12: 1024x768 16Bit crashes the emulator.
- FIX: X64->Video settings->VGA resolution->Mode 13: 640x480 32Bit crashes the emulator.
- FIX: X64->Video settings->VGA resolution->Mode 16: 800x600 32Bit crashes the emulator.
- FIX: X64->Video settings->Video Standard->Cannot select NTSC.
AROS
- VICE 2.2a has no sound on AROS ( https://sourceforge.net/tracker/?func=detail&aid=2954913&group_id=223021&atid=1057617 )
- ADD: PCI support for catweasel and hardsid
Amiga
- X64->Settings->REU settings->Enabling REU and changing the REU size crashes the emulator instead of giving any kind of error message.
- crash on Amiga OS4 when changing language ( https://sourceforge.net/tracker/?func=detail&aid=3309859&group_id=223021&atid=1057617 )
- crash on Amiga OS4 when changing to doublesize in fullscreen mode ( https://sourceforge.net/tracker/?func=detail&aid=3309865&group_id=223021&atid=1057617 )
- Lightpen/gun support (21132)
NEW: Lightpen/gun emulation in x64, x128 and xvic Resource: Lightpen (toggle) Resource: LightpenType (enum, see lightpen.h) 0=Pen with button Up (TODO: product name Atari CX75) 1=Pen with button Left (TODO: product name?) 2=Datel Pen 3=Magnum Light Phaser 4=Stack Light Rifle NOTE: see SDL or win32 for driver implementation example
*BSD
- Vice 2.2 seg faults on startup on freebsd 8 stable ( https://sourceforge.net/tracker/?func=detail&aid=2991578&group_id=223021&atid=1057617 )
- serial device hangs on open() in NetBSD 5.0.2 ( https://sourceforge.net/tracker/?func=detail&aid=3043294&group_id=223021&atid=1057617 )
BeOS
- Sometimes the application loses the keyboard focus; no keystrokes are accepted inside the emu, so the emulator has to be restarted.
- Sound problems on slower machines (P100) with a non-official driver for sb16.
- The monitor only works if you start the emulator from a terminal; if you start the emu from tracker and enter the monitor, you are "lost"
- Fullscreen mode is not implemented.
- Lightpen/gun support (21132)
NEW: Lightpen/gun emulation in x64, x128 and xvic Resource: Lightpen (toggle) Resource: LightpenType (enum, see lightpen.h) 0=Pen with button Up (TODO: product name Atari CX75) 1=Pen with button Left (TODO: product name?) 2=Datel Pen 3=Magnum Light Phaser 4=Stack Light Rifle TODO: Lightpen driver and UI items for the following ports: amiga, beos, os/2 NOTE: see SDL or win32 for driver implementation example
- Options->DirectWindow cannot be checked in all emulators.
- It is checked by default if available, but not if system video driver support is missing and currently never in Haiku. I might add an error message at some point. --Loggedoubt 23:53, 22 May 2012 (UTC)
- X64->Options->Expansion carts->magic voice options->Magic voice emulation and magic voice file cannot be checked.
- X64->Options->Expansion carts->Easy Flash options->Save .crt file now->Error message might be better if said no .crt file attached.
- X64->Expansion carts->MMC64 options->MMC64 emulation cannot be selected.
- X64->settings->Drive settings->1551 shouldn't be there. (Plus4 only)
- A symptom of a much larger problem: the drive type list isn't machine-specific at all. --Loggedoubt 15:58, 25 February 2012 (UTC)
- XPlus4->Settings->V364 Speech options->V364 Speech emulation cannot be selected.
SDL
- free scaling is broken [3] (should be fixed in trunk)
- scaling issues related to having more than one videochip [4] (should be fixed in trunk)
- there is no interface for browsing files inside (d64..) images
- Drive>Fliplist settings>Add current image to fliplist>Item needs status text to show that the action has been done.
- Drive>Fliplist settings>Remove current image from fliplist>Item needs status text to show that the action has been done.
- Drive>Fliplist settings>Attach next image in fliplist>Item needs status text to show that the action has been done.
- Drive>Fliplist settings>Attach previous image in fliplist>Item needs status text to show that the action has been done.
- A better way of showing filenames (maybe using contraction) needs to be made
- Cartridge>MMC64>Enable MMC64 can not be used unless a MMC64 ROM has been selected, it should be made inactive if not
- improve the Android port.
- Debug/fix the XBOX SDL port.
- Debug/fix the Windows-CE SDL ports.
GP2X
- The GP2X port segfaults at start.
note: this port is unmaintained and because of that subject for removal. (done in trunk)
Dingux
- uses preset sdl-vicerc files which are unmaintained and thus could fail. At least sdl-vicerc-cbm5x0 is obsolete and broken due to the config split.
note: this port is unmaintained and because of that subject for removal. (should be fixed in trunk, port now maintained by ulli)
OS/2
- Lightpen/gun support (21132)
NEW: Lightpen/gun emulation in x64, x128 and xvic Resource: Lightpen (toggle) Resource: LightpenType (enum, see lightpen.h) 0=Pen with button Up (TODO: product name Atari CX75) 1=Pen with button Left (TODO: product name?) 2=Datel Pen 3=Magnum Light Phaser 4=Stack Light Rifle NOTE: see SDL or win32 for driver implementation example
- X64->View->Video color settings->Dialog looks wrong, cannot tell what things are.
- a symptom of the changes in the palette generator (see devlog) Gpz 12:02, 21 March 2012 (UTC)
- in this case the dialog is also screwed up and needs fixing.
- Partially FIXED (rev 25626) (changes make emulator crash, cause still unknown)
- X64->Setup->Magic voice settings->Magic voice cartridge cannot be selected.
- This is because the ROM image file name is empty, this also occurs in all other ports, but might have gone unnoticed. It's true that an error message describing the fact that the ROM image name was empty would be nice, needs to be worked on.
- X64->Setup->MMC64 settings->MMC64 cartridge cannot be selected.
- This is because the ROM image file name is empty, this also occurs in all other ports, but might have gone unnoticed. It's true that an error message describing the fact that the ROM image name was empty would be nice, needs to be worked on.
- X64->Help->Commandline Options crashes the emulator.
- X128->Setup->unchecking VDC Double size crashes the emulator.
- X128->Setup->unchecking VDC Double scan crashes the emulator.
- X128->Setup->Cannot check VIC-1112 IEEE488 Interface.
- Xcbm2->Setup->Model->CBM 620 cannot be checked, also crashes the emulator.
- Xcbm2->Setup->Model->CBM 620+ cannot be checked, also crashes the emulator.
- Xcbm2->Setup->Model->CBM 710 cannot be checked, also crashes the emulator.
- Xcbm2->Setup->Model->CBM 720 cannot be checked, also crashes the emulator.
- Xcbm2->Setup->Model->CBM 720+ cannot be checked, also crashes the emulator.
- Xcbm2->Setup->Model Line->Clicking on any of the options makes the emulator crash.
- Xvic->Setup->Can check double size, but it crashes the emulator.
External Libraries
VICE uses a few external libraries of which either header files or complete sources are included in the tree:
- opencbm (src/opencbm.h) (https://sourceforge.net/p/opencbm/)
- should get moved to src/lib/..
- P64 (src/lib/P64)
- ffmpeg (src/lib/libffmpeg)
- since ffmpeg has a long history of API breaking it might be a good idea to include the entire library in the tree and link it statically (done in trunk)
besides the above, other libraries are used which are currently linked dynamically and must be supplied as dlls for the windows port
- SDL
- zlib
- hardsid
Rewrites
- 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)
- rewrite video chip modules to use:
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
general
- native screenshot support. (in progress)
- script language integration. (lua or python perhaps)
- Some more Kernal patches, for instance for changing colors and patching the reset routine to make it faster (maybe configurable).
- proper support for paddles (https://sourceforge.net/tracker/?func=detail&aid=2686763&group_id=223021&atid=1057620)
- integrate a rs232->telnet codepath (https://sourceforge.net/tracker/?func=detail&aid=3033061&group_id=223021&atid=1057620)
- option to autostart in already running instance ( https://sourceforge.net/tracker/?func=detail&aid=3201905&group_id=223021&atid=1057620 )
- option to save attached (disk/tape/cart) images at shutdown, restore at next run ( https://sourceforge.net/tracker/?func=detail&aid=3302938&group_id=223021&atid=1057620 )
- use second joystick button as auto fire ( https://sourceforge.net/tracker/index.php?func=detail&aid=2459184&group_id=223021&atid=1057620 )
History Recording
- (optionally) make quicksave filenames depend on image filename ( https://sourceforge.net/tracker/?func=detail&aid=3295768&group_id=223021&atid=1057620 )
- find a way to not include the actual game binary in a history file ( https://sourceforge.net/tracker/?func=detail&aid=3295768&group_id=223021&atid=1057620 )
Keyboard
- on first startup, if no keymap is set, try to pick one depending on locale ( https://sourceforge.net/tracker/?func=detail&aid=3002553&group_id=223021&atid=1057620 ) (in trunk)
Tape
- Allow tape loading without the virtually pressed "Play" button, which can break some programs that do not like it to be pressed (e.g. Turbo Assembler). (fixed in r26680, it is now possible to press STOP after autostarting from t64)
- support for DC2N .dmp files (cassette files) ( https://sourceforge.net/tracker/?func=detail&aid=3203248&group_id=223021&atid=1057620 )
Monitor
- (optionally) display all executed commands when in trace mode ( https://sourceforge.net/tracker/?func=detail&aid=3356800&group_id=223021&atid=1057620 )
- improve handling of memory ranges ( https://sourceforge.net/tracker/?func=detail&aid=3161941&group_id=223021&atid=1057620 )
Sound System
- some kind of generic interface to handle audio input is required to handle sampler carts (in trunk)
Video System
- implement a generic framerate converter (screen blending) ( https://sourceforge.net/tracker/?func=detail&aid=2792693&group_id=223021&atid=1057620 )
- add option to rotate / flip / mirror the output ( https://sourceforge.net/tracker/?func=detail&aid=3291057&group_id=223021&atid=1057620 )
- add an option in the CRT emulator / Palette generator to simulate b/w,amber,green monitors ( https://sourceforge.net/tracker/index.php?func=detail&aid=3052248&group_id=223021&atid=1057620 )
- some kind of generic interface to handle video input is required to handle scanner/digitizer type of carts
Hardware emulation
SID
- add support for Catweasel MK4 style playback ( https://sourceforge.net/tracker/?func=detail&aid=2962481&group_id=223021&atid=1057620 )
x64(sc)
- Cartridges
- IDE64 improvements
- Clockport improvements
- Community Information Locator Commodore 64/128 addon cartridge ([11])
- RAM Floppy (REX 9680) support
- Daisy Sound sampler audio input support. ([12])
- PS64 speech cartridge support. ([13])
- Voice Messenger speech cartridge support. ([14])
- ramlink support. ([15] [16])
- ramdrive support. ([17])
- z80 (cpm) cartridge support. (4Mhz z80) (in trunk)
- turbo master cartridge support (4Mhz 65C02). ([18] [19])
- turbo process cartridge support (4Mhz 658156). ([20] [21])
- flash-8 cartridge support (8Mhz 65816). ([22])
- SCPU cartridge support (20Mhz 65816). (in progress, has lead to a new emulator called xscpu64) ([23] [24]) (https://sourceforge.net/tracker/?func=detail&aid=2030692&group_id=223021&atid=1057620)
- The Final Chesscard (65c02) ([25])
- german BTX cartridge (6809)
- SoftPROM cartridge ([26])
- pointless, unless software specifically designed for this cart can be found. 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. ([27])
- this is exactly the same as "the final ethernet" (which is emulated) Gpz 23:27, 30 October 2010 (UTC)
- 64NIC
- again, same as TFE. also has an optional eprom, which is equivalent to using cart8
- MasC=uerade Cartridge Converter support, this cart is originally intended to use c64 carts on the vic20, but in theory could also be used the other way around. ([28])
- BI-80 cartridge support. ([29])
- Buscard II IEEE488/printer-port cartridge support. ([30])
- "GeoAction"
- pointless, equivalent to Action Replay + GeoRAM/RamCart
- "Flash Gordon"
- pointless, external kernal with flash, prototype (not released)
- "Disk Mate" (Datel)
- MAYA Software Eprom Cart
- PCC-4/PCC-8 Eprom Cart (Jason Ranheim)
- "Alien Flash"
- Userport
- CBM1660 (userport) modem300 support. ([31])
- CBM1670 (userport) modem1200 support. ([32])
- FB-RS232 (userport) support. ([33])
- c64 p64 midi interface: ([34])
- Scanntronik handyscanner (userport) support. ([35])
- Video Byte II video digitizer (userport) support. ([36]) ([37])
- Computera Eyes video digitizer (userport) support. ([38] [39])
- Userport RocketDrive support. ([40])
- CIA-IDE-HD support. ([41])
- Aprotek universal rs232 adapter support. ([42])
- Comet64 support. ([43])
- L. Pantarottos adapter support. ([44])
- Amiga mouse emulation on 4-player adapters. (http://noname.c64.org/csdb/release/?id=70238)
- Joystick Port
- BB-RTC (joystick port 2) support. ([45])
- c64/c128 numeric keypad support. ([46])
- c64/c128 pc-joystick support. ([47])
- datel 3-button mouse support. ([48])
- Koala-pad support. ([49]) (in trunk)
- Covox Sound Master audio input (joystick port) support. ([50]) (in trunk)
- animation station support. ([51])
- Power-pad support.
- super sketch support. ([52])
- add support for switching the emulated 1351 mouse to joystick mode by doing a hard reset while pressing the right mouse button ( https://sourceforge.net/tracker/?func=detail&aid=2631893&group_id=223021&atid=1057620 )
- add support for 8player joystick adapter "inception" ([53])
- Tape Port
- RTC64 support. ([54])
- Access dongle (Leaderboard/10th Frame) (https://sourceforge.net/tracker/?func=detail&aid=3030703&group_id=223021&atid=1057620)
- Video output.
- c64 LCD64 screen support. ([55])
x128
- c128 plus60k support.
- c128 plus256k support.
- c128 256K memory expansion hack support.
xvic
- VIC20 RTC cartridge support. ([56])
- vic20 iec2ata support. ([57])
- 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. ([58])
- support for modified vic20 ( https://sourceforge.net/tracker/?func=detail&aid=3315683&group_id=223021&atid=1057620 )
- .crt like cartridge format (.vrt), perhaps take it from vice-minus ( http://viceminus.git.sourceforge.net/git/gitweb.cgi?p=viceminus/viceminus;a=commit;h=29c32f2ea2d299cb40228030c355625e800a00ca )
- add Cartridge attach heuristic for image pairs
- "Behr-Bonz" cartridge support
xplus4
- plus4 digiblaster audio input support. ([59]) (in trunk)
- add support for "speedy" freezer cartridge
xpet
- PET ROM-socket RTC support. ([60])
- 8296 pet hardware ram lines connected to userport support.
- 8296 RAMdisk 2008 support. ([61])
- 8296 pet switchable 4 screens output support.
- pet IEEE488 -> IDE/RS232 support. ([62])
- High-Res Technologies Graphics Board support. ([63])
- MTU K-1002-2 DAC sound system support. ([64])
xcbm2
- cbm2 z80 support.
- cbm2 8088 support. ([65])
Drives
- (optionally) automatically enable warp mode when drives are being accessed. ( https://sourceforge.net/tracker/?func=detail&aid=2028999&group_id=223021&atid=1057620 )
- add support for dual disk drives
- IEC
- CMD harddrive support. ([66]) (https://sourceforge.net/tracker/?func=detail&aid=2786810&group_id=223021&atid=1057620)
- IEC2IEEE/RS232C adapter support. ([67])
- sd2iec / uIEC support ( https://sourceforge.net/tracker/?func=detail&aid=3287595&group_id=223021&atid=1057620 )
- somewhat pointless, since this would be very much what you get from using the virtual filesystem drive Gpz 07:02, 11 July 2011 (UTC)
- IEEE
Printers
- (optionally) make printer output pixel perfect ( https://sourceforge.net/tracker/?func=detail&aid=2476279&group_id=223021&atid=1057620 )
- IEC
- DPS1101 support.
- MPS801 support.
- MPS802/CBM1526 support.
- MPS1000 support.
- MPS1250 support.
- CBM1520 support. Rhialto is working on that. (added in trunk)
- Fidelity Impact Printer support. ([76])
- IEEE
- MPS1361 support.
- CBM4022 support.
- CBM8023 support.
- CBM8024 support.
Misc
- add/implement C65 emulator ( https://sourceforge.net/tracker/?func=detail&aid=2472096&group_id=223021&atid=1057620 )