What I was getting at is I'm almost positive that directx controllers don't use said labels. So then how is mame choosing which analog axis is a "pedal" these constants are listed in the source so either they are useless (which means somebody needs to comment them out) or they are magical in that I don't have aclue how they are working.
I am concluding basically what you are with the mouse vs lightgun inputs. My guess is analog Z and pedal 1 are one in the same, in which case we have some redundant constants which might be confusing in the future.
What directX calls it doesn't matter.
The question is: Does OSD code assign anything to the pedal standard code?
The answer is: No, not as of 0.85u2.
To test, use the default inputs, have pedal_device set to joystick, and play a pedal game. You'll see "N/A or J1 Y-AXIS" (or whatever your joystick driver tells dInput to call it). The default is "JOYCODE_1_ANALOG_PEDAL1 OR JOYCODE_1_ANALOG_Y". Core mame gets a null return for JOYCODE_1_ANALOG_PEDAL1. It's the OSD code to assign something to that standard code, but it doesn't assign anything ATM.
The above shows there is NO conflict between the pedal standard codes and the Y axis standard codes, because the pedal gets "N/A" and the Y axis gets "J1 Y_Axis" or whatever your joystick driver tells dInput to call it (yes, the example is intentionally different).
Notice the seperations between the dInput, mame OSD, and mame core inputs.
Now, conflicts might occur if something was assigned to the pedal standard code. This is on the OSD side; even if windows doesn't assign anything to it, the linux or dos ports might. Removing it from the core is a Bad Idea. And it's virtually removed from the windows version anyway.
FWIW, this might be one reason mame compile with dx 8.0 or up. DInput 8 introduced "action mapping", which tries to let the programs know what type of input the device is, and what device objects that device has. On paper, mame could assign physical pedals to the pedal standard codes and analog joysticks to the adstick standard codes. In practice, it's not as good as MS hyped it to be, since it relies on the joystick drivers to correctly identify themselves, and especially not over-identify themselves (claim "I can do it all!").
Related subject: Identifing lightguns vs mice:
DirectInput 5-7 can partially tell the difference (again, if the driver is doing it's job): The 5 mouse subtypes are: TRADITIONAL, FINGERSTICK, TOUCHPAD,TRACKBALL, UNKNOWN. Need to test which of the above the lightguns fall under; my guess is either touchpad or unknown.
DirectInput 8+ should be even better as it has more types: mouse and screenpointer. The mouse subtypes are also explanded:
ABSOLUTE, FINGERSTICK, TOUCHPAD, TRACKBALL, TRADITIONAL, and
UNKNOWN. While the screenpointer subtypes are:
LIGHTGUN, LIGHTPEN, TOUCH, and UNKNOWN. I bolded the one I hope the lightguns call themselves, and italiced the other possibilities. Again, need to test.