<< Pinscape Resources Home

This page collects a few proposals for interfaces and protocols designed to help virtual pin cab components work together more smoothly. They're written in the style of technical specifications, since the aim is to make them well-defined enough they'll behave consistently, so that separate programs implementing them will work together smoothly. But they're not the products of anything like a standards committee or consortium; they're just informal proposals that document what I came up with to deal with various interoperability issues that I encountered in the course of my own projects. I'm sharing them in the hope that other developers working at similar points of contact between projects will find them useful enough to adopt, rather than inventing separate ad hoc mechanisms that serve the same purpose. The goal is to make the various components of the pin cab environment work more smoothly together, to create a better playing experience for users.

  • Open Pinball Device HID: A custom HID interface designed specifically for the sensor inputs from a virtual pin cab I/O controller (accelerometer, plunger, pushbuttons). This is meant to serve as a better alternative to the joystick/gamepad input interface that all I/O controllers up to now have used, and to eventually replace it.
  • Pin Cab Input Model Improvements: A design for some new input data types that a pin cab I/O controller can send to a simulator, to help improve the realism of the simulation, mostly related to nudging and plunger tracking.
  • PinSim::FrontEndControls: A simple Windows inter-process communications protocol, based on a registered (named) window message, designed to help front-end launcher programs better coordinate UI actions with pinball simulators. The motivation was to address some common rough edges that arise from the way Windows manages UI transitions between separate processes, by giving the front ends and simulators a way to directly communicate and thus coordinate their UI transitions.