(Topic ID: 20104)

... Continued - A P-ROC project for Bally's Cactus Canyon

By epthegeek

11 years ago


Topic Heartbeat

Topic Stats

  • 1,573 posts
  • 216 Pinsiders participating
  • Latest reply 11 days ago by Nepi23
  • Topic is favorited by 106 Pinsiders

You

Linked Games

Topic Gallery

View topic image gallery

6820A0F6-8D0E-4D81-981F-110AB1844FD9 (resized).jpeg
9BD4E15A-D889-4B3E-97B7-4B84EE32B5F9 (resized).png
CE75F5B3-44F5-4AD5-9B11-BAF9FE58EFA7 (resized).png
88DF80F4-2A30-48E4-8F03-D798BBC57D60 (resized).png
FD4F9BEB-6F60-47D7-B964-942A71995C05 (resized).jpeg
01622A58-69EE-4BCB-88F4-98AC4990D686 (resized).jpeg
320D840B-6558-410D-93C4-72873D82701F (resized).jpeg
EAF75CFF-1F59-4DF5-9E34-DC17FC3C30FC (resized).jpeg
moother (resized).png
D38F2F0E-EEFC-482A-8D8C-EECCB1A4D57C (resized).jpeg
cactus-polly (resized).jpg
IMG_2396 (resized).jpg
IMG_2393 (resized).jpg
IMG_2392 (resized).jpg
ccc-pi-z2 (resized).jpg
ccc-pi4 (resized).jpg

You're currently viewing posts by Pinsider NoMonkey.
Click here to go back to viewing the entire thread.

#1195 7 years ago

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!

#1205 7 years ago
Quoted from epthegeek:

I tried a few single board computers back when I first got this going years ago - and none of them were really powerful enough to keep the loop rate up (especially after the shift to the color LCD). I wondered if a RPI3 would keep up. I've never run it on windows though, that's other people.

I've found that the RPI3 handles the game just fine in my testing. In my initial fixes for the dmd display issues I had, it definitely chugged but after some optimization it appeared to run ok.

Quoted from epthegeek:

Would have been nice if you shared fixes as you came across them.

Agreed! To be honest I can't recall exactly how I ended up approaching things, but I know I quickly decided to start restructuring things at which point any bug fixes would have been moot as they would have pertained to my setup. A lot of my time was spent updating and refitting the code to my updated structure. I wasn't necessarily looking for bugs, I was taking the approach of trying to normalize and stabilize the code and then begin bug fixing any issues after the fact.

Quoted from epthegeek:

The "long hang" coming out of the service mode is (in my setups anyway) the game fully resetting, so that if an end user applies a USB update, the changes get loaded in right away.

Ah, yes that rings a bell. It may have been that I simply disabled the USB update on my end in favor of the wifi update. I'm fairly certain I wouldn't have stripped that out though and might have been thinking of adding that as an option in the service menu to update on demand instead of scanning for the usb drive. I can't recall though, I just remember "fixing" it on my end.

Quoted from epthegeek:

Most of my will to work on it further was pretty broken by the fact that anything I make, Andre will just pervert into whatever he wants. The last 'new' thing I added was Betty Bart (still intend to clean up the audio for that some day - Kim Vanderveen said she got a better mic and would try again) and Andre stole the DMD assets for that and used it for his own garbage before I ever got it in to the game myself.

Ugh, I can't imagine how frustrating and discouraging that must be. There are things we can do to prevent that in the future however it sounds like most of the damage is already done.

#1207 7 years ago
Quoted from luvthatapex2:

I am curious if you are running CCC in color or with DMD with the rpi3? We have seen similar single board computers (cubietruck, etc) running CCC but never a rpi3 running it in color lcd. (my friend tested it with rpi, rpi2 and odroid without success If I recall correctly)

I am running the color LCD. I did have issues with overlays not rendering correctly which is what I was referring to when I mentioned that I fixed an issue with the DMD layers not displaying correctly. I had planned to integrate my fix directly into the lib (can't remember the name of it off of the top of my head) that renders the dots but for now I'm just fixing things up in the draw callback in python.
I had also done a few fixes regarding positioning of the dots as well but that was fairly simple.

Quoted from luvthatapex2:

What is the current boot time to the CCC graphic screen when you turn on the PC? My friends test was about a minute boot time to the graphics screen. We'd like to get that down to 15 seconds if possible.

When I last tested it (again going from memory) I was somewhere around 20 seconds but this was without a boot loader. I was just launching the full install of linux and starting the game then.

Quoted from luvthatapex2:

What distro are you running for linux?

I'm was running Raspbian if I recall correctly (not sure which revision).

Quoted from luvthatapex2:

Lastly, how do you prevent yaml corruption when you turn the power off? For PCs there is a shutdown controller by Scott D, but these don't work with SBCs. We have an non-elegant approach that works fine, but I'd like to hear yours

Well currently I don't! I had planned to use UPS PIco (https://www.modmypi.com/raspberry-pi/breakout-boards/pi-modules/ups-pico) which is a stackable UPS for the RPI2/3. It claims to have a GPIO API that I had planned to use to register when the power had been cut and subsequently shut down the pi safely. Whether this would work or not, I truly don't know but it was the direction I was headed.

Added over 7 years ago: Well, my memory did not serve me correctly regarding load times! It takes about 20 seconds just to get into Raspbian then another 15 for CCC to display. I'm depending on the boot loader to increase boot times and I'll work on a solution to increase the loading time of the game.

#1209 7 years ago
Quoted from epthegeek:

I should probably talk to nomonkey about co-operating on the project to get all his structure improvements involved first though,

I would totally be in on this! I'd need a little bit of time to re-familiarize myself with what I was up to when I stopped and fix the remaining bugs I was working through. Please feel free to send me a PM if you'd like to get something going.

10 months later
#1335 6 years ago
Quoted from ClarkKent:

Wow, really new pro sample for Betty?

Indeed! I'm a big fan of the project and was able to have Lani Minella, a big voice in video games, re-record the part of Betty Bart and it turned out great! Can't wait for you guys to hear it!

You can check out her IMDB here: http://www.imdb.com/name/nm0591115

4 years later
#1551 1 year ago

This may not be helpful anymore but a while back I had rewritten CCC for stability and better bug tracking. It's not something I ever completely finished although I did write a shader to allow hardware rendering of the dots to address lag issues I was having on the rpi3.

I haven't tested any of this on the rpi4 although I did buy a 4gb model when I hit some instruction limitations on the rpi3 due to its opengl-es shader model. It's totally possible it wasn't even needed on the rpi3 and I just had a bunk setup (was just running a full OS and not a custom boot loader) that was slowing things down but I did see a significant improvement in rendering speed (e.g. during attract when the dots slide across).

Anyway, it may not be needed at this point but I figured I'd at least mention it since you guys are all up in it.

Promoted items from Pinside Marketplace and Pinside Shops!
$ 119.99
Displays
FlyLand Designs
 
$ 9.95
Eproms
Pinballrom
 
From: $ 29.95
Playfield - Toys/Add-ons
RavSpec
 
$ 65.00
Boards
Pinball Haus
 
From: $ 19.99
Eproms
Matt's Basement Arcade
 
$ 1,139.00
Pinball Machine
Mircoplayfields
 
From: $ 27.00
Boards
KAHR.US Circuits
 
$ 89.99
Lighting - Led
Lighted Pinball Mods
 
$ 50.00
Playfield - Toys/Add-ons
T&T Mods
 
$ 84.99
Displays
FlyLand Designs
 
$ 89.99
Lighting - Led
Lighted Pinball Mods
 
13,500
Machine - For Sale
Seaside, OR
From: $ 20.00
Cabinet - Other
Filament Printing
 
From: $ 30.00
Cabinet - Other
Rocket City Pinball
 
$ 8,000.00
Pinball Machine
Classic Game Rooms
 
$ 399.00
Cabinet - Decals
Mircoplayfields
 
16,000 (Firm)
Machine - For Sale
Bullhead City, AZ
$ 15.00
Playfield - Protection
Pinhead mods
 
$ 9,250.00
Pinball Machine
Classic Game Rooms
 
$ 54.95
Eproms
Pinballrom
 
$ 10.00
Playfield - Other
Nezzy's Pinball Prints
 
8,995
Machine - For Sale
Lake Elsinore, CA
Great pinball charity
Pinball Edu

You're currently viewing posts by Pinsider NoMonkey.
Click here to go back to viewing the entire thread.

Reply

Wanna join the discussion? Please sign in to reply to this topic.

Hey there! Welcome to Pinside!

Donate to Pinside

Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


This page was printed from https://pinside.com/pinball/forum/topic/cactus-canyon-p-roc-project?tu=NoMonkey and we tried optimising it for printing. Some page elements may have been deliberately hidden.

Scan the QR code on the left to jump to the URL this document was printed from.