Jump to content

Nudging options


northvibe

Recommended Posts

So after trying to get a handle on nudging options, I figured maybe it would be good to have a thread dedicated to only nudge options. We can update it with new findings, options and results.

Button

Use these standard flipper buttons with leaf switch

FlipperButtons%20copy.jpg

LeafSwitch.jpg

Images from Virtuapin's store

Just like using a keyboard you can wire a button to do the nudge. Many put that next to the flipper button.

Nanotech:

mot-ion-product.jpg

The Mot-Ion adapter is a USB adapter that allows Do It Yourself Pinball enthusiasts to build their own cabinet using real pinball controls providing analog inputs for nudging and bumping.

USB HID Device

No external drivers or programming needed. Automatically recognized by Windows and Linux systems.

Real-Time Game Interaction

Nudge, Shake & Tilt the cabinet to put "english" on the ball. 2 Axis motion sensor provides real-time x,y coordinates

Digital Plunger Support

I2C Bus supports Digital Plunger Analog Inputs on Z Axis

ESD Protected Enhanced Inputs & Outputs

Supports 16 programmable I/O connections all protected from ESD.

All inputs debounced

Software Support

Fully compatible with Visual Pinball, Future Pinball, HyperPin & more.

Expandable & Upgradeable

Firmware upgradeable via USB or on board programming port.

Mot-Ion Adapter: MSRP - $99.99

Homepage:

http://nanotechent.com/mot-ion.php

U-HID G

3 Axis Accelerometer

uhid_g_diag.jpg

The U-HID-G has a three-axis accelerometer for sensing gravity and motion acceleration, plus it has a complete U-HID-NANO expansion port, configurable for buttons, keystrokes, further analog or quadrature.

It can serve as a gaming interface for flight controls, steering wheels, joysticks, pinball nudge, or whatever else you can think of that can be accomplished by sensing the acceleration that is reported by the U-HID-G to your computer. In addition to gaming, the U-HID-G may provide motion feedback for musical instruments, exercise equipment, alarm systems, and just about anything else that works based on motion.

Motion sensing is available using two methods. The first is analog sensing. In this mode, the motion sensing appears as analog gamepad axes, X, Y and Z, to enable easy usage with standard PC applications which recognize game controllers. The sensing is fully adjustable using the calibration screen in the U-Config program.

The second mode is digital, in which a "nudge" of the sensor sends a keystroke or button signal to the PC. For each of the six nudge directions, a key or button can be configured. This mode is used, for example in pinball nudge detection. The sensitivity can be adjusted using the U-Config calibration screen, and you can set the detection so that a key or button is "pressed" for different orientations of the board if you have an application for this.

Although it is simplest and easiest to use the U-HID-G's accelerometer to sense angular orientation relative to the Earth's gravity field, it is also possible to measure the acceleration of motion or to use software that converts the acceleration data into velocity and distance information. Use two of them to make a drum machine that works without drums. Create a vehicle data logger that records acceleration, speed, and distance plus cornering g-force. Add dynamic expression to a musical instrument by varying the sound as the instrument is moved. Some example music-related applications have already been developed around this board and we will be featuring these soon.

These and a host of other applications are now possible and practical with the U-HID G.

Homepage:

http://www.u-hid.com/home/uhidg.php

Tilt Bob or Plumb bob

Some use 2 (left/right) or 3 (left/right/center) for nudging.

Here is BigBoss's tilt bob's installed, and taped off so only the direction the tilt should trigger a nudge is left as the contact.

Right side showing the right nudge and forward nudge bobs

img_0592.jpg

Left side up close showing the taping:

img_0591.jpg

http://www.vpforums.org/index.php?showtopic=12326&view=findpost&p=99949

Some of the only negative feedback I have read about these, are it sensing double nudge when you only do it once. It can take fine tuning to get it right.

Mercury Switch:

109920d1284668191-wheel-alarms-mercury-tilt-switch-pin-alarm-door-trunk-hood-new_110445124029.jpg

Many use 2 (left/right) or 3 (Left/right/center) for each direction. From what I read it seems they can be picky and need to be tweaked and adjusted right. But work well. They are also fairly cheap.

MS SideWinder Freestyle Pro w/ xpadder

microsoft-sidewinder-freestyle-pro.jpg

Xpadder simulates the keyboard and mouse using your gamepad

Xpadder

There is tilt sensing built in and make sure to get the gameport to USB adapter!

I would be happy to post my config file for XPadder

gtav xpadder code

Add information, pictures, movies. Anything to help make this a good source of information for the future :) I'm still new to this and have yet to build the cabinet, almost there though! I think I will try the sidewinder way first.

Has anyone tried a ps3 or wiimote? (need good drivers for this)

Link to comment
Share on other sites

  • Replies 261
  • Created
  • Last Reply
Great thread I think it should be a Sticky.

I ordered MS SideWinder pro and it came in yesterday.

It will be a little while before I hook it up other parts are on the way.

I would love to hear plus and minus of each of these solutions form people that are currently using them I their builds.

Which pro exactly? the freestyle pro? I'd like to order one and try it too! :)

Link to comment
Share on other sites

*lol* Saw that you got ahead of me PL... anyways, this may be good info in this thread anyways! :D

You got the right gamepad btw!

I've got mercury switches in the past, but as mine double fired a bit to much in my taste I tried the Microsoft Sidewinder Freestyle Pro (damn the long name) :D

Picked mine up for around 7us (ebay).

Make sure you get the USB convertor to the cord though.

Otherwise you have to connect it to the old school type of joystick / printer ports which is no more on modern motherboards.

I use it with XPadder which is started with windows in order to program the nudge buttons to be triggered.

It's mounted with a modified GPS holder for bikes (ebay) which make it super easy to line up and it will stay there with just a twist on the screw.

Heres some pictures of the unit mounted in the GPS holder:

Modified GPS holder

IMG_2688.jpg

mounted

IMG_2687.jpg

inside cab

IMG_2684.jpg

Works perfect for me as you can set the sensetivety/dead zone via XPadder.

Best, and maybe the cheapest solution if you ask me! :D

Cheers!

Link to comment
Share on other sites

Cool beans guys! :D

Don't know if this beats your tilt bo(o)bs, but at leats it's space efficient and cheap, and you know how cheap I want my gear Chris! :D

Interesting to hear what you think about it.

I would be happy to post my config file for XPadder ---> HERE <---

Other than that, just ask away and I try to help! :D

/Cheers!

Link to comment
Share on other sites

I've modified vp source in a way that every gamepad is recognized as pinball wizard.

Because of this I can use any gamepad's x and y axis for analog nudging - not digital like in this or tilt bob solution.

Though i think bigboss also added sidewinder analog support to vp source.

Why is analog support so important???

Because it's way better then any angle/force/counter force digital nudge - cause it detects your physical nudge and if it is small, nudge is small, if it is big, nudge is big, direction can be 0, 90, 270 or anything in between, you can move table or just bump it with the hand - everything is detected and transferred to the ball.

For my joystick i use ps2 gamepad with weight turned upside down so it detects nudging great and translates it to the ball.

Much much easyier then all the troubles with PBW calibration - every ps2 gamepad is calibrated perfectly out of the box, and much cheaper also.

Most important thing - this change in code is piece of cake - one line.

But i can't put it in mainstream code cause then all your gamepads buttons will be hardcoded like in pbw - so people would be confused. And that mapping expects 14 buttons, ps2 gamepad has only 10 or 12.

I'm thinking about extending keys config window to enable mapping of gamepad buttons - then it would be possible to put this change in mainstream code for next release.

Link to comment
Share on other sites

I posted this in my original mini pin build thread a long time ago. I figured I'd throw it out there again because this method has been all but forgotten. I can't speak as to the nanotech or the new analog options, but it is far superior to tilt bobs and mercury switches. I could never get the consistency from them that I get from this bar. I get consistent error free nudging every time, like you get with buttons, but with the feel of real nudging.

It's really just a piece of angle iron welded to the underside of a lockdown bar with spring plunger attached. Movement triggers leaf switches mounted at front and sides. Here's a picture of how I built it.

post-7061-142870573439_thumb.jpg

Link to comment
Share on other sites

Has anyone tried a ps3 or wiimote?

I haven't found any good drivers for either the SIXAXIS or the Dualshock 3. MotionInJoy works, but not terribly well. It was well worth $10 to not have to mess with it any more.

The Wiimote seems like it would be even worse since it doesn't use USB.

Link to comment
Share on other sites

I posted this in my original mini pin build thread a long time ago. I figured I'd throw it out there again because this method has been all but forgotten. I can't speak as to the nanotech or the new analog options, but it is far superior to tilt bobs and mercury switches. I could never get the consistency from them that I get from this bar. I get consistent error free nudging every time, like you get with buttons, but with the feel of real nudging.

It's really just a piece of angle iron welded to the underside of a lockdown bar with spring plunger attached. Movement triggers leaf switches mounted at front and sides. Here's a picture of how I built it.

This looks like a good solution for those unwilling to modify the VP source and recompile. For those willing, Blur's solution sounds like the best thing.

I have tilt bobs in my machine, and I find they suck. They hit so many times, you might as well just assume the machine is going to tilt if you nudge. I'm not happy with them at all.

I do have mercury switches that I haven't tried yet (they were my first choice, but then I decided tilt bobs made more sense, since they use them in real machine - and what could be better than that, right? Except they're designed for a different purpose in a real machine, so they don't work well at all). I can see mercury switches being the same issue, really.

An analog nudge like what Blur is talking about sounds like the holy grail.

Link to comment
Share on other sites

I've modified vp source in a way that every gamepad is recognized as pinball wizard.

Because of this I can use any gamepad's x and y axis for analog nudging - not digital like in this or tilt bob solution.

Though i think bigboss also added sidewinder analog support to vp source.

Why is analog support so important???

Because it's way better then any angle/force/counter force digital nudge - cause it detects your physical nudge and if it is small, nudge is small, if it is big, nudge is big, direction can be 0, 90, 270 or anything in between, you can move table or just bump it with the hand - everything is detected and transferred to the ball.

For my joystick i use ps2 gamepad with weight turned upside down so it detects nudging great and translates it to the ball.

Much much easyier then all the troubles with PBW calibration - every ps2 gamepad is calibrated perfectly out of the box, and much cheaper also.

Most important thing - this change in code is piece of cake - one line.

But i can't put it in mainstream code cause then all your gamepads buttons will be hardcoded like in pbw - so people would be confused. And that mapping expects 14 buttons, ps2 gamepad has only 10 or 12.

I'm thinking about extending keys config window to enable mapping of gamepad buttons - then it would be possible to put this change in mainstream code for next release.

That sounds awesome, Blur.

Is there a way to put together some instructions so we know what line to add, what game pad to use, where we can get the source, what tools we'll need to recompile? That'd be awesome for those of us that are adventurous and have the skill set to complete the task. At some point, someone will likely start maintaining a special binary for those using this type of nudge setup (I'd even be willing to do it, if no one else wants to).

Link to comment
Share on other sites

Thanks for comments man. I've been posting about this for a month now, and no body even comments it. Like it is forbidden subject.

I'll collect this for you from PM's. After all that's how i got the info at first place - asking around :)

You know that if you don't use this joystick for buttons you could be just fine with how it is now (for example if you have buttons over ipac).

If you use any type of gamepad (keywiz is gamepad) buttons will be recognized as pbw buttons so you have to go with pbw buttons order.

Link to comment
Share on other sites

Thanks for comments man. I've been posting about this for a month now, and no body even comments it. Like it is forbidden subject.

I'll collect this for you from PM's. After all that's how i got the info at first place - asking around :)

You know that if you don't use this joystick for buttons you could be just fine with how it is now (for example if you have buttons over iapc).

If you use any type of gamepad (keywiz is gamepad) buttons will be recognized as pbw buttons so you have to go with pbw buttons order.

No one comments on your idea? That's crazy - it sounds like the best idea ever! Analog nudging would bring Visual Pinball way closer to a real table. I mean, that would be huge! I see people talking about analog plungers all the time - and I think, "yeah, is this critical? The nudging is a real problem - let's solve that!" But you have a plan to solve both, which sounds like a dream to me.

All of my buttons are on an IPAC, so that's all good for me. I think most people with cabinets use an IPAC, don't they? I started out with the KeyWiz, but was disappointed with it not storing settings to flash and it's inability for the software to program it under Windows 7 x64 - so I put it aside for a MAME cabinet, where it'll probably do fine.

Honestly, even for those with a KeyWiz, if it meant that they'd have to rewire their KeyWiz inputs to make analog nudging work, or just get an IPAC, it'd be well worth the time and/or small expense to get amazing nudging abilities in their games. It'd make the cabinet feel so much more real. Who wouldn't want that?

Do the tables support the analog nudging at this point, or is that something authors would need to add to make work? It seems to me, that would be something that'd go into core.vbs - so if we were to have a special cab version of VP with the analog nudging, we'd need to package it with a special core.vbs, as well. Once people put the modified core.vbs in place, the analog nudging should just work in all existing tables. Does that sound correct?

Thanks, Blur - I'm excited about this whole thing now! The nudging difficulties on a cabinet have been driving me bananas. The idea that I could just tap the machine for a light nudge, or whap it hard for a heavy nudge is just awesome to me - and in any direction! For real pinball players, it opens up the ability to execute some of those fancy nudging tricks to save a ball from the gutter after it has gone down, etc. (the raise one flipper, then nudge upward hard at the last minute to bump the ball up onto the other lowered flipper, for example (apparently called a "Bang Back Save"), as seen

).
Link to comment
Share on other sites

Latest news:

Koadic has compiled optimized version of VP with support for any gamepad for nudge and plunger (x, y and z axis) and with all buttons configurable - http://www.vpforums.org/index.php?showtopic=18982

_____________ old post:

Darkfall my friend thanks again for your very kind words :), much apreciated :) Now answers.

All tables support analog nudging, only some support plunger - plunger needs a little work. Just like with PBW.

Here are instructions from my dear friend rascal who first dived into all of this, and big thanks go to him for that:

I've been compiling it with VS2008 full edition (not express).

You will need the DirectX SDK for Feb 2007. Here is the link to download.

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=9539

Grab the latest build source here.

http://vpinball.svn.sourceforge.net/viewvc/vpinball/

I download from the Download GNU tarball

Extract the tarball and go into the trunk folder and open the VBATest.net2008.vcproj file.

Happy compiling

Rascal - Al

I also used vs2008 full edition (not express) and that SDK and latest tarball, which is not the same as last compiled version 912, since it has all development after 912 was released.

After you have that all you can compile the source out of the box without any errors, just be sure to open 2008 project or solution and not some older version.

As for code changes you have to change this in pininput.cpp:

    if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "PinballWizard"))
       {
           uShockDevice = e_JoyCnt;    // remember uShock
           uShockType = 1; //set type 1 = PinballWizard
       }

   if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "UltraCade Pinball"))
       {
           uShockDevice = e_JoyCnt;    // remember uShock
           uShockType = 2; //set type 2 = UltraCade Pinball
       }

   if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "Microsoft SideWinder Freestyle Pro (USB)"))
       {
           uShockDevice = e_JoyCnt;    // remember uShock
           uShockType = 3; //set type 3 = Microsoft SideWinder Freestyle Pro
       }

with this:

    if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "PinballWizard"))
       {
           uShockDevice = e_JoyCnt;    // remember uShock
           uShockType = 1; //set type 1 = PinballWizard
       }
   else if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "UltraCade Pinball"))
       {
           uShockDevice = e_JoyCnt;    // remember uShock
           uShockType = 2; //set type 2 = UltraCade Pinball
       }
   else if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "Microsoft SideWinder Freestyle Pro (USB)"))
       {
           uShockDevice = e_JoyCnt;    // remember uShock
           uShockType = 3; //set type 3 = Microsoft SideWinder Freestyle Pro
       }
   else if ((hr == S_OK))
       {
           uShockDevice = e_JoyCnt;    // remember uShock
           uShockType = 1; //set type 1 = PinballWizard
       }

As you can see here if detected joystick is not recognized - it is used as it is PBW so everything works out of the box, nudging, plunger, buttons, ...

You could find more gamepad types inserted by now in the source but logic is the same.

Why do i need to add key config utility for PBW if every body can connect buttons in PBW style - because PBW has 16 buttons and arrangement is like this:

           FP use               VP use               Button position on PBW
Button 1    Digital Plunger      same                 Front side, by the plunger
Button 2    Right Flipper        same                 First on right side
Button 3    Right 2nd Flipper    same                 Second on right side
Button 4    Change Camera        Volume down          First on top right
Button 5    Toggle HUD           Volume up            Second on top right
Button 6    Look at Backbox      -                    Third on top right
Button 7    Pause                same                 Fourth on top right
Button 8    Exit Table           Exit after 3 sec     Top center
Button 9    Start Game           same                 Front side, on the left
Button 10   Left Flipper         same                 First on left side
Button 11   Left 2nd Flipper     same                 Second on left side
Button 12   Insert Coin 1        same                 First on top left
Button 13   Insert Coin 2        same                 Second on top left
Button 14   Test                 -                    Third on top left
Button 15   Service              -                    Fourth on top left

Last important button is 12 - insert coin - which means you need 12 keys on your gamepad and you need to connect them exactly like it is shown. What if you have gamepad with only 8 keys? You loose start button, left flipper button and coin button, so you can't play. What if you have 10? You loose insert coin and left magnasave - so again you can't play.

You can map those missing higher buttons using joy2key and some unused lower buttons but that's too much trouble, and you have to be careful not to use some used buttons, for example you can't use exit(8) for left flipper cause it will exit after you hold left flipper for 3 secs, you can't use pause key cause i think it brings pause (not sure about this in vp), you can't use volume keys cause volume slider will blink on the screen all the time and so on.

Any way i must add that this solution although it gives you great nudging is nothing special or new and is not mine - it uses code for analog nudge developed for ultracade and nanotech devices. So it's been around for some time.

And it is pretty messy - you have to hack gamepad, turn it upside down, glue some weight on joystick (so that it reacts on nudging), take other joystick away from the board - rotate it so that z axis goes in your plunger direction - connect it somehow to plunger, then if you use buttons you have to solder connections to them, ...

If you want all of this quickly - just buy pbw kit from noah or nanotech and you have it.

Link to comment
Share on other sites

Darkfall my friend thanks again for your very kind words :), much apreciated :) Now answers.

All tables support analog nudging, only some support plunger - plunger needs a little work. Just like with PBW.

Here are instructions from my dear friend rascal who first dived into all of this, and big thanks go to him for that:

I also used vs2008 full edition (not express) and that SDK and latest tarball, which is not the same as last compiled version 912, since it has all development after 912 was released.

After you have that all you can compile the source out of the box without any errors, just be sure to open 2008 project or solution and not some older version.

As for code changes you have to change this in pininput.cpp:

	if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "PinballWizard"))
	{
		uShockDevice = e_JoyCnt;	// remember uShock
		uShockType = 1; //set type 1 = PinballWizard
	}

if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "UltraCade Pinball"))
	{
		uShockDevice = e_JoyCnt;	// remember uShock
		uShockType = 2; //set type 2 = UltraCade Pinball
	}

if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "Microsoft SideWinder Freestyle Pro (USB)"))
	{
		uShockDevice = e_JoyCnt;	// remember uShock
		uShockType = 3; //set type 3 = Microsoft SideWinder Freestyle Pro
	}

with this:

	if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "PinballWizard"))
	{
		uShockDevice = e_JoyCnt;	// remember uShock
		uShockType = 1; //set type 1 = PinballWizard
	}
else if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "UltraCade Pinball"))
	{
		uShockDevice = e_JoyCnt;	// remember uShock
		uShockType = 2; //set type 2 = UltraCade Pinball
	}
else if ((hr == S_OK) && !WzSzStrCmp(dstr.wsz, "Microsoft SideWinder Freestyle Pro (USB)"))
	{
		uShockDevice = e_JoyCnt;	// remember uShock
		uShockType = 3; //set type 3 = Microsoft SideWinder Freestyle Pro
	}
else if ((hr == S_OK))
	{
		uShockDevice = e_JoyCnt;	// remember uShock
		uShockType = 1; //set type 1 = PinballWizard
	}

As you can see here if detected joystick is not recognized - it is used as it is PBW so everything works out of the box, nudging, plunger, buttons, ...

You could find more gamepade type inserted by know in the source but logic is the same.

Why do i need to add key config utility for PBW if every body can connect buttons in PBW style - because PBW has 16 buttons and arrangement is like this:

           FP use               VP use               Button position on PBW
Button 1    Digital Plunger      same                 Front side, by the plunger
Button 2    Right Flipper        same                 First on right side
Button 3    Right 2nd Flipper    same                 Second on right side
Button 4    Change Camera        Volume down          First on top right
Button 5    Toggle HUD           Volume up            Second on top right
Button 6    Look at Backbox      -                    Third on top right
Button 7    Pause                same                 Fourth on top right
Button 8    Exit Table           Exit after 3 sec     Top center
Button 9    Start Game           same                 Front side, on the left
Button 10   Left Flipper         same                 First on left side
Button 11   Left 2nd Flipper     same                 Second on left side
Button 12   Insert Coin 1        same                 First on top left
Button 13   Insert Coin 2        same                 Second on top left
Button 14   Test                 -                    Third on top left
Button 15   Service              -                    Fourth on top left

Last important button is 12 - insert coin - which means you need 12 keys on your gamepad and you need to connect them exactly like it is shown. What if you have gamepad with only 8 keys? You loose start button, left flipper button and coin button, so you can't play. What if you have 10? You loose insert coin and left magnasave - so again you can't play.

You can map those missing higher buttons using joy2key and some unused lower buttons but that's too much trouble, and you have to be careful not to use some used buttons, for example you can't use exit(8) for left flipper cause it will exit after you hold left flipper for 3 secs, you can't use pause key cause i think it brings pause (not sure about this in vp), you can't use volume keys cause volume slider will blink on the screen all the time and so on.

Any way i must add that this solution although it gives you great nudging is nothing special or new and is not mine - it uses code for analog nudge developed for ultracade and nanotech devices. So it's been around for some time.

And it is pretty messy - you have to hack gamepad, turn it upside down, glue some weight on joystick (so that it reacts on nudging), take other joystick away from the board - rotate it so that z axis goes in your plunger direction - connect it somehow to plunger, then if you use buttons you have to solder connections to them, ...

If you want all of this quickly - just buy pbw kit from noah or nanotech and you have it.

Awesome, Blur. I'm in the process of getting my hands on Visual Studio 2008 Professional so I can give this a go. I must remember to thank Rascal at the other forum, too.

Just to be clear (before I run out and buy a game pad), any pad will do - a Sidewinder, perhaps, or do you have a different suggestion that I should look for?

Thanks again, Blur.

Link to comment
Share on other sites

sidewinder freestyle pro i think has only two axis which are from nudge detector.

so nudging should work out of the box. just stick the gamepad firmly to your cab.

for plunger I'm not sure what is in the code. You can check the code before you buy it.

there is some wheel that rascal tried to use for plunger but i'm not sure if this worked.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...