Fun facts and stories behind the Chameleon success

Caution: Non registered users only see threads and messages in the currently selected language, which is determined by their browser Please create an account and log in to see all content by default. This is a limitation of the forum software.
Don't Panic. Please wash hands.
  • Hi. I am the founder of the FB group for the TC64 and love to update it
    daily to draw a crowd and inform everybody of this fantastic cartridge.

    Could you share some fun facts with us about the product, the production process
    or something I can share with the group ?

    Keep up the great work.
  • I guess it's best to start at the beginning: How we came up with the idea, and what the original goal was:


    Some time in january or february 2006, I visited Peter in Eindhoven and - as you'd expect when two nerds meet - we had a really great time. Since I had about 90-minute drive home. I planned to leave just late enough to miss the afternoon rush hour, but be home soon enough not to mess up my sleep schedule.


    While leaving, we talked about how a C64 could be connected to a VGA monitor, because companies were starting to give them away (it was the dawn of flat screens!). The idea of "VGA64" was literally born on Peter's doorstep - out in the cold. The talk was: Can we read enough information from the C64's expansion bus to re-create the picture that the VIC chip generates? Since all data that the VIC chip reads passes by on the expansion bus, the general answer would be "yes".


    Years later, when I demonstrated the first prototype, I described it as: If you walk after someone in the super market and take note of what he/she is putting into the cart, you get a pretty good idea what kind of dinner the person will cook. Transferred to the C64: If you see what data is being fetched at what time by the VIC chip, you have enough information to make the same picture of that data as the the original chip does. Put this information into a frame buffer and output it at higher speed - done!


    Back to Peter's doorstep, we discussed the only big problem: If register-writes to the VIC chip happen ($d000 and up), we don't know if they are meant for the VIC chip, because the contents of processor register $01 are not known externally. So we agreed that it's necessary to not just re-implement the VIC chip, but also the CPU on such an external cartridge, because we agreed that it could only be a "product" if it can work without opening the computer. Both chips would run in parallel to the internal chips, and they'd re-sync themselves whenever they detect (from the data passing by on the expansion port) that they run out of sync.


    Once you start working with FPGAs, feature-creep steps in: If you are implementing a CPU, why not clock it faster? If you occupy the expansion port (and know how instable expansion port extenders are), you need to put everything into that new cartridge that will be pushed aside by the new cartridge: A Freezer, fast loader, maybe flash-card reader (MMC64 was on the market for about a year already, and the pass-through expansion port was only working with selected cartridges, so the idea of a pass-through was dropped very early).


    This is the really short version of what we talked about on that evening. We really kept talking for several hours - me stepping from one foot to the other in the snow, and Peter probably freezing because he had no jacket on. I did meet the goal of missing the evening rush hour, but I really messed up my sleep schedule :-)

  • If I would have known about all the feature creep that would be happening from here to now I would probably never have started ;-)


    This is a screenshot from 2007, where I'm debugging the differences between my VIC-II emulation and the real one.

    Don't remember the function of all the columns, but one of the major ways to verify the implementation, was to compare the 12 lower addresses of the real VIC chip against the lower 12 addresses of the emulated one. The upper 4 address lines are not available on the cartridge port. Any difference in the addresses points to a fault in the emulation.


    There was a moment where the emulation of the two disk-drives were added, which are totally not in the original plan. Like Jens wrote above the plan was just CPU + VIC-II emulation with a frame-buffer for VGA output. This also added a lot of requirements to the menu system, which was till then just a single page of configuration settings


    Now with such a large part of the machine emulated, not only CPU, VIC-II and most of the buslogic of course, but also a large part of the CIAs for PS/2 keyboard and drive-emulation (So chameleon doesn't need a IEC cable for drive emulation as it replaces part of the CIAs), it was a relative small step to make standalone mode. As many people liked the small form-factor, the next step was the docking station so you really didn't need a C64 to operate the device. Also not in the original plan, but added later due to feedback from the community. The "How can I connect joysticks in standalone mode?" type of affair almost asked daily in our yahoo group (now discontinued).


    Yeah and then it becomes obvious that the only thing missing for a complete C64 replacement is the SID emulation, so I needed to add that as well. Two SIDs of course because we like the extra feature creep, so stereo SID it had to be. Fortunately we already planned for an audio output in the design, but that was originally only meant for drive noises (which never got implemented btw) and alternative cores implementing other machines. I admit emulation it is not yet perfect (emulation of the filter is tricky), but much better as having no sound.


    And that is why the FPGA is now 90% full, keeping in mind that the first prototype only had a 16 kLE FPGA, but was increased to 25 kLE due to the "add drive emulation" idea (I think). The first prototype actually had a slot so it could act as a co-processor for the C-One, which got later re-purposed for C128 80 columns mode input, which then got dropped when we discovered the C128 doesn't implement Ultimax mode correctly. It is impossible to access the color registers from the cartridge port and some other issues I don't remember. So we dropped C128 completely as requirement. Half solutions are no solution.


    Yes, there is lots of history in this project.

  • This was very interesting reading! Especially nice to read about how it all started out and with the meeting in Eindhoven. I guess it is these memories to think back on that really makes it worth it -- even though you have put down a lot of time.


    Thank you so much for sharing this story. Feel free to share more in the future if you come up with funny stories or facts that you guys know would draw a smile on the face of your users :-)

  • Jens It would be cool if you had some cool info to share -- maybe related to the V2 or some crazy stories about ideas which was planned over a few beers or something --- we need a good Xmas Story to follow up on the one you guys shared earlier. :)

  • I've been trying to think of something funny or cool, but I can't really think of anything regarding the V2. Development was really straight forward, as we've had lots of experience with Altera FPGAs and the design around the FPGA was only changed to use LVTTL chips instead of a CPLD to communicate with the C64. Although it looks like "more chips, more complexity", it actually got less complex for the FPGA side, as the amount of multiplexing is smaller on V2 compared to V1.


    Did you share the pictures of the unit that we made before the Chameleon came out? It was originally meant to be both a product for the C64, but also an extender for the C-One to give it the desperately-needed FPGA power. It turned out to be a very nice measurement device if connected to a C64:


    ...and it was the hardware basis for the very first Chameleon core. I did show these pictures on the C-One web site in 2006 already:

    ...and our first analyzer-core screenshot for the nerds among you:


    Sadly, the "ami.ga" domain doesn't work any more :-/.

  • Thanks for the pics and the info. I've taken the liberty to put it out on the TC Facebook-group so all the users, customers and fans of the TC can enjoy it :) We just turned 600 members, and it's quite a lot more than I imagined it would be when the group was started up :) The product sure has a lot of fans and everybody we talk to loves it.