I wanted to share that I have a custom version of CCC that I run in my machine. As a game programmer by profession, I was intrigued by the fact that I had the source code to an entire pinball game and of course wanted to play around with it!
Now from this point forward I want it to be clear that I am in no way taking credit for any of Eric's hard work nor is this an advertisement to sell or even give away the work I've done. I often see Andre posting that he has a fix for any short comings of the CCC code to apparently peddle his own work and it's annoying to watch. This is just to make it known that I have done some work that might be worth sharing if condoned by Eric. Otherwise, this is just to tell you about the fun stuff I've done! I will NOT give any of this away without Eric's consent so please do not message me asking for any of this. I also know that Eric has never claimed to be a programmer and the work I've done is not to show him up or anything of the sort. What Eric has achieved is amazing, especially for a non-programmer, however the current code structure has it's short comings and I've spent some time to see if I can help with that. Whether anyone ends up caring is no different to me, and it's likely this has all been done before, but doing all of this work for only me to enjoy seems silly so I thought I'd share!
This is some work I did 8 months or so ago and isn't quite finished as I still have a few bugs of my own to sort out. I only put things on hold as I was utterly consumed by this project and my wife is all needy and stuff.
I'll be going from memory here so there are likely things I'm leaving out.
One of the main things I wanted was to remove the need for a Windows machine and instead be able to boot directly into CCC much like a standard pinball machine would with proprietary hardware. Could this be done on a PC? Sure, but I wanted a more integrated feel that was mounted in the back box and the PC my machine came with was bulky and wayyy overkill. I decided to try and get things running on a raspberry pi 3 for it's form factor and simply to see how it performed running the game. After a bit of work I had the game running on Linux and starting up on launch. This coming from a non-linux user took way longer than it should have! I had some issues where the dmd layers weren't rendering properly and had to mimic some of the C code from within python as well as fix up a few bits where directories didn't play nicely with Linux but other than that things worked without much else needed.
My plan was to create a custom boot loader that would boot directly into a stripped down version of Linux that loads super fast and only ever show CCC as if it we're loading from a rom.
I also was running the audio through a small form-factor amp.
I had planned to mount this all to a sheet of something-or-other that fit nicely in the stock mounting locations of the back-box.
I started out just fixing a few bugs but the further I got into it, the more I started to organize the code and began making general improvements.
At this point I've rewritten all modes, asset management, and the main game loop/resetting functionality to be more reliable and easier to work on when adding future updates/modes. I've added a logging system that makes the game easier to debug and have added a good amount of logging for failed modes, etc.. I've also made some general updates such as the HSTD DMD images scrolling in reverse when hitting the left flipper, the long hang that can occur when leaving service mode, as well as a few other odds and ends that I can't recall.
None of my work changed the general design nor flow of what Eric had setup as that wasn't the intent. I love the game as is. I did, however make it fairly easy to add new modes as I wanted to try my hand at adding something fun like cowboys vs aliens (brilliant btw!).
A few other features I wanted to add included automatic updates via WiFi, error reports that would upload to a server to make tracking down issues easier, and some general telemetry (e.g. Average/Percentage of mode completion, switch hits, etc.)
As mentioned before, my work is unfinished however I do plan to get back to it soon!
And to reiterate, this is just a project I've been working on for my own sake; Not to advertise or sell. I take no credit for the gameplay itself and want to thank Eric for taking the initiative and bringing such a great game to life!