Cactus Canyon (Bally 1998)¶
Quick VPW Mod build with strong contributions around drop target physics tuning, flasher texture preloading, ramp vertex painting, and dual-ROM support (standard VPinMAME + PROC/CCC). Built by apophis79, sixtoe, and rothbauerw.
Build Story¶
Development ran from April 2021 through July 2022 including post-release debugging. The build was a rapid Mod (physics, sound, bug fixes) rather than a full rebuild. Rothbauerw drove physics tuning including drop target glancing hit logic, sixtoe handled GI lighting overhaul, and apophis79 managed Fleep integration and PROC support.
Table-Specific Details¶
Mechanisms & Hardware¶
- PROC / CCC dual-ROM support:
PROCvariable at top of script toggles between standard VPinMAME and PROC (for Cactus Canyon Continued rules). PROC requires separate Python environment (~1.2GB). PROC uses external DMD capture rather than Freezy. - Drop target glancing hit:
GlancingHit = 37.5controls angle threshold for front-facing vs glancing hits.DTDropupUnits = 20controls target reset height. When using PROC,DTDropcalled in init can blank switch IDs -- use intermediate variables. - Autoplunger tuning: Both timing delay (ball must settle in plunger lane) and strength calibration (consistently reach top of playfield without overshooting) required for reliable ball launch.
- Fleep collections require "Fire events for this collection" enabled. Core.vbs version must be compatible -- older versions may lack functions Fleep calls.
Art & Visuals¶
- GI bulb light center points must be at the physical top of the bulb, not adjusted for camera angle. Moving centers to match POV causes incorrect appearance from other angles (VR, different desktop POVs).
- Ramp rendering used Flupper's vertex painting technique in Cinema 4D/Octane (pre-10.8) with alpha channels controlling refraction areas.
Physics & Gameplay¶
- TargetBouncer applied to targets/posts near pop bumpers can cause compounding velocity -- balls bounce between bumper and target building up speed until launching through objects. Fix: exclude targets/posts in close proximity to bumpers.
quality_smaapost-processing AA caused VR choppiness on an i7/RTX 3070/32GB system. Should default to off for VR builds.
Known Issues¶
- NVRAM corruption causing erratic table behavior (switches not registering, mechanisms firing incorrectly). Fix: delete NVRAM file (
cc_12.nv) and config file from VPinMAME's nvram directory. - UseSolenoids typo (
39instead of1) caused unintended solenoid behavior. Missing flipper constants (cSingleLFlip/cSingleRFlip) caused cross-wired solenoid firing.
Techniques Developed Here¶
- Flasher texture preloading to prevent first-use stutter -- briefly display each texture during init
- GI bulb placement at physically correct positions, not POV-adjusted
- Post-processing AA impact on VR -- SMAA should default to off for VR
- NVRAM corruption troubleshooting documented here
See Also¶
- Physics Tuning -- TargetBouncer exclusion zones
- GI and Flashers -- flasher preloading, GI placement
- VR Development -- SMAA performance, VR room stutter
- Troubleshooting -- NVRAM corruption, UseSolenoids bugs