Jump to content

Recommended Posts

Posted

So much great information on here, but I couldn't quite get the Pinscape accelerometers working with the Zen stuff. I finally got it working and wanted to share what's working on mine and how I did it.

 

This is for a KL25Z/Pinscape Controller and the current Steam versions of:

·      Pinball FX - Steam app 2328760

·      Pinball FX Midnight - Steam app 2337640; the install folder may still be named Pinball M

·      Pinball FX Classic - Steam app 442120; the install folder may still be named Pinball FX3

 

My cabinet also runs VPX and Future Pinball. This setup did not change their controls because the nudge adjustment is made in Steam and then tuned per Zen game.

 

The short version

I did not need x360ce. Steam can read the Pinscape directly as a generic controller.

The reason nudge originally looked dead was Steam's joystick deadzone. My normal cabinet nudge produced readings of only about -3000 to +3000, while Steam's default deadzone was 10000. Steam was throwing away the entire accelerometer signal.

The finished mapping is:

·      Pinscape accelerometer X/Y -> left joystick X/Y -> analog nudge

·      Pinscape plunger Z -> right joystick Y -> analog plunger

·      No Pinscape buttons are mapped through Steam, so my existing keyboard/cabinet controls stay as they were

 

Back up first

I strongly recommend making a rollback copy before changing Steam's controller setup, especially on a working cabinet.

1.    Completely exit Steam.

2.    Back up the entire <Steam folder>\config folder.

3.    Also back up:

<Steam folder>\userdata\<your Steam user ID>\config

and, if it exists:

<Steam folder>\steamapps\common\Steam Controller Configs\<your Steam user ID>\config

If anything goes wrong, exit Steam and restore those copies.

 

Step 1: Verify the Pinscape readings

Open the Pinscape Config Tool and choose Joystick.

Confirm that:

·      The Accelerometer X/Y display reacts when you nudge the cabinet.

·      The Plunger Z bar follows the physical plunger through its range.

If the accelerometer and plunger already work correctly in VPX or Future Pinball, I would not change their Pinscape calibration just to fix Zen. The problem in my case was on the Steam side.

 

Step 2: Add an axes-only Pinscape mapping to Steam

Copy this entire line to the Windows clipboard:

03004c8009120000eaea000000000000,mjrnet Pinscape Controller,leftx:a0,lefty:a1,righty:a2,platform:Windows,

Then go to:

Steam -> Settings -> Controller -> mjrnet Pinscape Controller -> Begin Setup

When Steam displays Press the A button, do not press a cabinet button and do not press Ctrl+C. Click Paste from Clipboard. Steam should create the controller definition from the copied line.

The mapping contains only three axes:

·      leftx:a0 = accelerometer X

·      lefty:a1 = accelerometer Y

·      righty:a2 = plunger Z

There are deliberately no A/B/X/Y, flipper, Start, Exit, or D-pad mappings. That is how I avoided disturbing my existing cabinet controls.

Steam may save a second Pinscape line that looks like this:

0300000009120000eaea000000000000,mjrnet Pinscape Controller,leftx:a0,lefty:a1,righty:a2,platform:Windows,crc:804c,

That happened on mine and is normal.

 

Step 3: Remove Steam's global deadzone

Go to:

Steam -> Settings -> Controller -> mjrnet Pinscape Controller -> Details -> Calibration & Advanced Settings

Set:

·      Left Joystick Deadzone = 0

·      Right Joystick Deadzone = 0

I did not run automatic calibration.

Now use Test Device Inputs / Begin Test.

·      Nudging the cabinet should move Left Joystick X/Y.

·      Pulling the plunger should move Right Joystick Y.

The accelerometer can be a little twitchy around center in this raw test. That is expected. We will control the useful nudge range in the individual game's controller settings.

 

Step 4: Enable Steam Input for the Zen game

In the Steam Library:

4.    Right-click Pinball FX.

5.    Select Properties -> Controller.

6.    Set Override for Pinball FX to Enable Steam Input.

7.    Confirm that Generic Controller says Enabled, per-game override.

Repeat this later for FX Midnight and FX Classic. I recommend getting one game working first.

 

Step 5: Increase nudge sensitivity for that game

Open the game's Controller Layout, then go to:

Joysticks -> Left Joystick Behavior settings -> Deadzones

These are the values that worked on my cabinet:

·      Inner deadzone: 0

·      Outer/max-output point: 18

·      Deadzone shape: Circle

·      Anti-Deadzone: 0

·      Anti-Deadzone Buffer: 0

An outer value of 18 felt about right on mine. I may eventually use 20, but 18 is my current setting.

This setting works a little backward from what some people might expect:

·      Lower outer value = stronger/more sensitive nudge

·      Higher outer value = weaker/less sensitive nudge

Steam stored my setting internally as:

"deadzone_outer_radius" "5686"

You do not need to edit that file manually; I am including the value only as a reference.

 

Step 6: Test the plunger on the right kind of table

If Steam's input test shows the plunger moving smoothly and proportionally through its range, I would leave the right-stick scaling alone at first.

Some Zen tables do not use a conventional mechanical shooter rod. A special or table-specific launcher can make a partial pull look like a full-power launch even though the controller axis is working properly. I first noticed this on a Tomb Raider table.  Worked correctly on PinBot.

Test the final plunger behavior on a table with an obvious manual shooter rod before changing the axis response.

 

Step 7: Check everything before repeating it

Before applying the per-game settings to FX Midnight and FX Classic, I checked:

·      Left/right and forward/back nudge directions

·      Nudge strength and tilt behavior

·      Smooth plunger travel in Steam's test

·      Plunger operation on a manual-plunger table

·      Flippers, Start, Exit, and the rest of the cabinet buttons

·      VPX and Future Pinball controls

Once the first Zen title works, enable Steam Input and apply the same left-stick deadzone settings separately to the other two titles.

 

What did not work for me

I initially tried x360ce 4. It could list the Pinscape, but the DirectInput source stayed offline at 0,0 and it never produced a useful virtual controller. Steam's native generic-controller support worked once I fixed the deadzone.

 

I removed x360ce from my cabinet after backing it up, but I would not recommend blindly deleting it from another cabinet. If it is already used by another emulator or game, preserve that setup. Also, ViGEmBus is a separate shared driver and does not need to be removed just because x360ce is no longer being used.

 

Summary of my working values

 

Device: mjrnet Pinscape Controller (KL25Z/Pinscape)
Steam Input: Enabled per Zen game

Axes:
a0 -> Left Stick X
a1 -> Left Stick Y
a2 -> Right Stick Y

Global Steam deadzones:
Left stick = 0
Right stick = 0

Per-game left-stick settings:
Inner deadzone = 0
Outer/max-output = 18
Shape = Circle
Anti-deadzone = 0
Anti-deadzone buffer = 0

 

Hopefully this saves someone else the trial and error. The big breakthrough for me was realizing that the Pinscape accelerometer was already reaching Steam-the default 10000 deadzone was simply hiding it.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...