Update: prototype is working, see http://hackaday.com/2012/01/11/universal-commodore-64-cartridge-speeds-up-demo-production/¶
This is an universal C64 cartridge, with an USB port for uploading CRT files from a PC and for fast turnaround time when developing assembler programs for the C64 on a PC, work-in-progress at the moment. On the board is a 128 kByte SRAM and a CPLD, which can be programmed to emulate any cartridge type (but not the ones with DMA access, because resource usage would be a problem to implement e.g. CP/M). A small microcontroller, which I've used in my C64 joystick adapter project, receives the CRT files from the PC, configures the CPLD and writes the SRAM. A 16 Mbit flash is integrated for storing up to 31 cartridges with 64 kByte for each (some storage is needed for meta-information about the cartridge type, so it is not 32) in standalone mode without a PC.
Still some work to do, like writing the firmware for the microcontroller and the CPLD. This board is from parts I have in my junk box, the final board will be smaller, with more integrated chips for the level conversion, so that it will be like the usual C64 ROM cartridge form factor.
Eagle 3D preview of the board:
Eagle files and CPLD files for Xilinx ISE Webpack is available in the SVN repository.
For testing the pad layout of all ICs, I've printed the PCB on paper and placed the parts on it: