Todo

From vice-emu
Jump to navigation Jump to search

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.

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.3. 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.


general

  • 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)

fixed in r24278. (autostart optionally delays by up to 10 frames).

Documentation

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.

Content

The documentation is partly outdated and/or incomplete, in particular:

  • some descriptions of emulator formats are missing (D67, D1M, D2M, D4M...)
  • descriptions of several snapshot modules are missing (Plus4, TED...)

for details look at doc/Documentation-Howto.txt

Subsystems

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: http://vicekb.trikaliotis.net/20-006

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.

  • 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.

Joystick

Monitor

History Recording

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

CRT Emulation

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, only the first drive (0:) can be used.
virtual Devices
  • 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)

  • handling of CBM style sub partitions is incomplete, write operations on sub partitions may give unexpected results.
True Drive Emulation
  • serial timing latency is not implemented. (1 cycle per foot of cable or so) 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.
  • drive emulation can not handle a sync mark that is located on the track wraparound (ie starts at the end of a track and continues at the beginning) fixed in 2.3
  • 2mhz mode of the 1571 is not handled correctly, 1571 has extra delay on on reading sync inside the drive, ("you cannot use BVC in 2mhz mode!")
  • there exist problems handling certain G64 images:
  • 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

Printer Emulation

there perhaps should be a way to explicitly set a directory for printer output files Gpz 01:24, 4 July 2011 (UTC)

Resource system

Some appearently unused resources need further investigation:

  • "RomsetXXXName" (only appear in c64-resources.c etc) (removed in trunk)
  • "SidParSIDport" seems obsolete (only appears once in sid-resources.c) (removed in trunk)
  • "REUfirstUnusedRegister" is a hacking option that we can remove (not used by any UI or commandline) (removed in trunk)

c1541


Chips

CPU

note: This is not really a bug. The result of the opcode in question is A = ((A | CONST) & X & IMM), with CONST apparently being both chip- and temperature dependent. In other words: this particular loader will also not work on all real C64s. (see testprogs/general/ane-lax)

fixed in r24251. instead of 0xee now 0xff is used as the magic constant. see http://visual6502.org/wiki/index.php?title=6502_Opcode_8B_(XAA,_ANE)

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 ) (improved in 23609)
    note: the current implementation is correct for single key presses (port B reads 1), which should be enough for most practical situations (and to make broken keyboard routines, such as the one in nitro#16, work). the following special cases (which would make port B read 0) are not emulated yet:
    • shift-lock is pressed (fixed in r25034)
    • two or more keys of the same column are pressed (fixed in r25034)
  • 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.

SID

  • the POTX/POTY sampling period is not taken into account
  • POTX/POTY sampling jitter is not emulated
  • only one mouse or pair of paddles can be emulated at a time

TED

used in: Plus4

VDC

Workaround: use the "default" palette.
the color generator must be changed to also create a palette based on RGB colors and/or a true RGB based rendering path must be created Gpz 14:10, 19 July 2011 (UTC)

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
  • Border mode/size selection is not implemented (added in r25079)
  • NTSC bugs:

used in: VIC-20

VIC-II

used in: C64, CBM2

VIC-IIe

  • The test bit is not emulated, which results in things like 'real interlace' ([1]) 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 :))

x64 / x64sc

general
  • "Max Machine" and "C64 Game System" models are missing
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

note: this is also broken in xplus4, xcbm, x128, xpet, ie most emulators that do not use the new cpu core (works on x64dtv due to special zeropage handling) Fixed in r24448.

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:

Workaround in all cases: use x64sc :)

Cartridge System
  • some carts have no snapshot support yet (still broken: MMC64, Magic Voice, MMC Replay, MIDI, Ethernet. fixed since 2.3: SFX Sound Expander, SFX Sound Sampler.)
    • 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: KCS, Magic Voice, MMC Replay. fixed since 2.3: Snapshot 64)
    • KCS: BLOADing a frozen program does not work
    • 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
    • Snapshot 64: "format and backup" (freeze, then F5) hangs after entering name of boot file (fixed in r24247, bug was not actually cart related)
  • IDE64 shortbus expansions not emulated
  • SFX sound sampler audio input 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.

* 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. (fixed in r24448)

  • support for c128 specific expansion port handling/mapping is missing in the c64/c128 cartridge system (MMC Replay, FastLoad128, MACH128, other?)
  • if CRT emulation is enabled, it is always enabled for both the VIC-II and the VDC output, and both share the same settings. note: to fix this all "ColorXYZ" and "PalXYZ" resources and respective command-line options must be changed to be per video chip (as with other settings). at this point it is probably also a good idea to merge the "CHIPScale2x" and "PalEmulation" (boolean) resources and options into one "CHIPRenderer" enum. Gpz 15:29, 2 February 2011 (UTC) (fixed in r24298)
  • "one click" model selection is not implemented (fixed in r25052)
  • 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

x64dtv

xplus4

The plus4 emulator is generally work in progress and not yet "ready". Maintainer wanted!

* 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. (fixed in r24448)

  • SID card only supports "fast SID" (fixed in r24288)
  • "one click" model selection is not implemented (fixed in r24285)
  • emulation of the V364 speech chip is incomplete (see Todo#t6721a)

xcbm2

  • 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.

note: this will be solved by splitting the cbm2 emulator into two binaries (done in r24326)

  • 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
C510
  • 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.
C6x0/7x0

note: run like this: xcbm2 -model 610 -ntsc -drive8type 8050 +truedrive -8 cbm2-burnin.d80

xpet

  • SID card only supports "fast SID" (fixed in r24288)
  • 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 (CRTC) model and "double size" mode give not the correct/expected result. (fixed in r24284)
  • some combinations of selected keymap and keyboard model do not work because of missing keymaps

Ports / UIs

  • In the C128 emulation VIC-II and VDC palette can not coexist currently in some ports. (unconfirmed: beos, osx)
  • The CBM-II emulation is not fully supported in all ports. (unconfirmed: beos, dos, osx)
  • VSID is not fully supported in all ports: (unconfirmed: beos, dos, osx)
  • YUV rendering (used by amigaos and xaw) implementation is incomplete
    • scale2x not available
    • some renderers are missing
    • doublesize + y-stretch (2x4) doesnt work correctly

Windows

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

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!)
  • resource "RawDriveDriver" can not be changed using the GUI (fixed in trunk)
  • amount of random auto start delay can not be changed using the GUI (AutostartDelay)
  • monitor/remote monitor options missing in GUI (KeepMonitorOpen, MonitorServer, MonitorServerAddress) (fixed in trunk)
  • i/o collision setting missing in cartridge menu (IOCollisionHandling) (fixed in trunk)
  • dtv flash fs dir can not be set (FSFlashDir) (fixed in trunk)
Vidmode
  • lightpen coordinates are not accurate when using vidmode for fullscreen
  • mouse warping when using vidmode for fullscreen is buggy
    Workaround: use XRandR for fullscreen
GTK
  • Gnome/GTK+ commandline is ignored.
  • VSID shows some gtk warnings (fixed in trunk)
  • enabling CRT emulation control in fullscreen mode is buggy (fixed in trunk)
  • switching to fullscreen mode is buggy, works only every second time correctly with some window managers and/or gtk implementations. (fixed in trunk)
  • 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)
  • Aspect ratio/scaling is broken in fullscreen mode when hardware rendering is enabled (canvas is always stretched to fill the entire screen) (fixed in trunk)
  • 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) (fixed in trunk)
  • c1541 should be started inside a VTE terminal window and not use an xterm
  • doodle output driver options are missing in "save media image" dialog (DoodleCRTCTextColor, DoodleTEDLumHandling, DoodleMultiColorHandling, DoodleOversizeHandling)
  • in the crt setting dialog, options that are not available in the current config should be made inactive.
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.
  • the status bar area of the created window is larger than it should be
  • 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)
  • ffmpeg half frame-rate setting missing in "save media image" dialog (FFMPEGVideoHalveFramerate)
  • sound volume can not be changed using the GUI (SoundVolume)

MS-DOS

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

AROS

Amiga

*BSD

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.

GP2X

  • The GP2X port segfaults at start.

note: this port is unmaintained and because of that subject for removal.

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.


Rewrites

  • Split xcbm2 into a 5x0 binary and 6x0/7x0 binary. (done in r24326)
  • Split the vsid mode off from x64, making vsid a seperate binary. (done in r24321)
  • 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)

Documentation

  • Update the *nix documentation
    • perhaps find a way to conditionally include arch specific stuff in vice.texi ?
  • 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. (.inf format)
  • proper and specific RiscOS documentation.
  • proper and specific SDL documentation.

Translations

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

Ports / GUI improvements

  • Make a list of GUI elements/features per port, compare and implement any missing features for the ports. ( Gui cleanup )
  • Make a list of Hotkeys used per port, compare and try to make them the same / alike. ( Hotkey cleanup )
  • Debug/fix the XBOX SDL port.
  • Debug/fix the Windows-CE SDL ports.
  • Completely update the GP2X GUI.

General

Windows

OSX

Linux

GTK

XAW

AROS

  • add PCI support for catweasel and hardsid

MSDOS

  • add PCI support for catweasel and hardsid (implemented)
  • add real IEC device support via par port or ser port
  • add proper lfn detection

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

History Recording

Keyboard

Tape

Monitor

Sound System

  • the sound system currently only handles mono streams. it should be rewritten to work in stereo. needed to eg fix (https://sourceforge.net/tracker/?func=detail&aid=2483496&group_id=223021&atid=1057617) (done in rev 24693: the sound system can now produce both stereo and mono streams and can even be set to always produce mono and mix stereo-streams to mono, or always produce stereo where mono streams are just duplicated to play on both channels.)
  • some kind of generic interface to handle audio input is required to handle sampler carts

Video System

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

Hardware emulation

SID

x64(sc)

  • Cartridges
    • IDE64 improvements
      • IDE64 cdrom/iso support. (in 2.3.10)
      • IDE64 eth64 shortbus expansion support. ([4])
      • IDE64 duart shortbus expansion support. ([5])
    • SFX sound sampler improvements
      • SFX sound sampler audio input support. ([6])
    • Clockport improvements
      • Silversurfer (UART) support ([7])
      • mp3@c64 support
      • IDE64 based eth64-II support ([8])
    • Community Information Locator Commodore 64/128 addon cartridge ([9])
    • RAM Floppy (REX 9680) support
    • Daisy Sound sampler audio input support. ([10])
    • PS64 speech cartridge support. ([11])
    • Voice Messenger speech cartridge support. ([12])
    • ramlink support. ([13] [14])
    • ramdrive support. ([15])
    • rtc (ds12c887) support. ([16]) (in progress).
    • z80 (cpm) cartridge support. (4Mhz z80)
    • turbo master cartridge support (4Mhz 65C02). ([17] [18])
    • turbo process cartridge support (4Mhz 658156). ([19] [20])
    • flash-8 cartridge support (8Mhz 65816). ([21])
    • SCPU cartridge support (20Mhz 65816). ([22] [23]) (https://sourceforge.net/tracker/?func=detail&aid=2030692&group_id=223021&atid=1057620)
    • The Final Chesscard (65c02) ([24])
    • german BTX cartridge (6809)
    • SoftPROM cartridge ([25])
      • 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. ([26])
      • 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. ([27])
    • BI-80 cartridge support. ([28])
    • Buscard II IEEE488/printer-port cartridge support. ([29])
    • "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
    • C64 RTC 58321 (userport) ([30])
    • 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])
    • Kingsoft 4-player adapter support. ([44]) (added in r25440)
    • L. Pantarottos adapter support. ([45])
    • Amiga mouse emulation on 4-player adapters. (http://noname.c64.org/csdb/release/?id=70238)
  • Video output.
    • c64 LCD64 screen support. ([56])

x128

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

xvic

xplus4

  • plus4 digiblaster audio input support. ([61])
  • add support for "speedy" freezer cartridge

xpet

xcbm2

  • cbm2 z80 support.
  • cbm2 8088 support. ([67])

Drives

Printers

Misc

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 mips windows nt
  • Port to alpha windows nt
  • Port to ppc windows nt
  • Port to windows-ce
  • 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.
  • Make android SDL port.
  • Make pandora SDL port.
  • Make caanoo SDL port.
  • Make wiz SDL port.
  • Make GP2X SDL port with proper joystick/pad handling.
  • Make zodiac SDL port.
  • Make webOS SDL port.