| home . Synthesizers . ... FPGAs ... . Software . Hardwware . Pinball |
| C-One . FPGA-64 . Turbo Chameleon |
Hi All,
This is not the official support page for Chameleon. I have created this page as main developer, so I can easily share some documentation and information about the cartridge. I've also collected and answered some common questions people (might) have about the product. For additional information or questions visit the Individual Computers website or join the chameleon_64 mailing list at http://tech.groups.yahoo.com/group/chameleon_64
Peter
This project started somewhere in the beginning of 2006 after talking with Jens of Individual Computers. Initially it was called VGA-64, a simple cartrige with VGA connector for duplicating the VIC-II screen on a VGA monitor. However when you have a FPGA on a cartridge, "feature creep" kicks in as these chips are quite flexible (too much sometimes :-). So more possibilities and ideas for extensions came while the cartridge was in development. Even if the goal is not making a new platform, it kinda silly not to take advantage of 25 years of chip innovation. The list of ideas grew faster as I could connect FPGA building blocks together, so some ideas have been dropped, others delayed for future upgrades.
The current feature list is as follows:
No downloads available at this time.
There will be three buttons on the Chameleon. The function of the buttons can be redefined in the configuration menu or with (custom) software. The defaul assignments are as follows:
| Button | Short press | Long press (> 1½ sec) |
|---|---|---|
| button 1 (Reset) | Show config menu | Reset Machine |
| button 2 (Freeze) | AR/RR Freezer | Toggle turbo mode |
| button 3 (Disk) | Mount next D64 image in 1541 emu | Mount first D64 image in 1541 emu |
The following functions can be mapped onto the buttons:
There is quite a bit of FPGA logic and software written. I'm still using prototype hardware that is missing some features. The main focus is implementing VGA output and getting the turbo faster as the current 1.8x speed.
The REU emulation is working, the memory windows are working (access >64Kbyte), config registers are working. VGA is fixed at 4 bits/pixel at the moment but working otherwise. MMC isn't connected, drive emu is missing, clockport is not yet in DExx/DFxx and the Chameleon can only boot with a JTAG probe. You see, only a few small things remaining to be fixed ;-)
I still use a tv or svideo monitor, can the Chameleon be used without a VGA monitor?
Yes, although a few features of the cart will be unavailable. The 1541 drive emulation, freezer, clockport, REU and even the turbo are usable. Even with turbo mode enabled the VIC-II screen will be active and usable.
VIC-II on VGA is nice, but what about VDC emulation?
Not planned for the initial release. I doubt there are many C64 programs that use the VDC. Using it for the additional 16 or 64 Kbyte storage space is largly irrelevant with the REU emulation available.
How does the Chameleon deal with C128 machines?
Very poorly, it forces C64 mode and doesn't understand the VDC, MMU and extra registers in the VIC-II chip. Also many C128 have signal quality issues on the cartridge port, which can result in poor stability. In other words using the Chameleon with a C128 machine is not recommended!
How does the Chameleon deal with C-One machines?
Unknown, we will try to make it compatible so atleast the REU, RR and MMC functionality can be used on the C-One. The VGA connector is not necessary as it already is provided by the C-One. Dual monitor will not be supported. The prototype PCB fits in the PCI connector, this functionality will be dropped in the final product to have more room for additional connectors like PS/2.
Is there SCPU / Flash-8 compatibility planned for the turbo mode?
No, the 6510 code comes from my FPGA-64 project. We don't have a 65816 compatible emulator yet. Also getting reliable 20Mhz cycle-exact operation with SDRAM is not easy. Especially as the VGA frame buffers, diskdrive emulation and REU are also using the SDRAM at the same time. The other issue is software support. The SCPU has additional ROMS that can't be copied without a license.
How fast is the 6510 based turbo?
Currently 1.8 times on average. This will be improved significantly in the near future. We aim for 8 Mhz with all features enabled, faster if unused parts of Chameleon are switched off (like VIC-II fetches, if enhanced VGA resolutions are used)). The 6510 core itself can run VERY fast, so it all depends on memory bandwidth. Less emulated devices equals faster speed.
Isn't the 6510 a bit limiting with its 64 Kbyte memory range, making the Chameleon a bankswitching nightmare?
Bankswitching is indeed supported (and sometimes necessary). You can for example map different kernals in the E000-FFFF area. Also rom cartridges at 8000-9FFF can be emulated with the bankswitching logic. Bankswitching gives access to 2 Mbyte of memory, but some areas are reserved for the freezer cartridge emulator and Chameleon configuration menu. The emulated REU can access large amounts of memory very quickly and transfer it into the lowest 64 Kbytes where the 6510 can access it. Additionaly there are three "memory windows" that allow direct access to any location in the SDRAM.
Is there DTV compatibility planned for Chameleon?
No, unlikely to ever happen. The DTV started life as a C64 emulator. So then we are emulating an emulator (not a real good one either). Not all the quirks of the DTV are yet known and documented. Also it neither has a true 6510 cpu emulation nor is it 65816 like. So that would require designing a complete new processor based on reversed engineerd DTV specs.
If the 6510 CPU is emulated, can the tape still work? Can the original CPU work next to the emulated one?
No, the tape drive is inoperable when the Chameleon is used. The 6510-chip in the C64 is completely switched off. Although technically it is possible to run both CPUs at the same time, there is no software support yet that makes this possible.
Is the VGA reprogrammable for more colors or higher resolutions?
Yes, Chameleon supports upto 8 bit color (256 different colors) and screen resolutions upto 1024x768. After flipping a configuration bit, the REU logic can be used to copy blocks of bytes to/from the VGA buffer quickly. The VGA controller supports dual-playfield and smooth scrolling. Each of the two playfields can have a different size, pixel resolution and color depth.
Is dual monitor supported (C64 video port and VGA showing a different picture)?
The hardware can do this and the required register settings will be documented, but there is at the moment no software that supports this mode.
Are there bigger/more/hires sprites, a blitter, a copper or 3d support (matrix calculations), etc?
The REU can be used as a simple blitter. The aim is not to develop a new platform so for other enhancements it is not decided yet...