I found a wonderful workaround, no thanks to EA. Make no mistake this is not easy or "supported" in any way.
BF2 has gamepad / controller support. Unfortunately my HOTAS (Logitech x56) does not support mapping to controller presses, only keyboard and mouse.
I found this tutorial for Ace Combat 7 for mapping the HOTAS to a virtual xbox controller. This emulates the output to a controller, which will give you analog input (rather than trying to map your stick to mouse input or something crazy).
Be warned: There are a few finicky things. Thank goodness there are some in-game controller settings to fix most of it.
In your HOTAS settings:
- (image attached) make sure your roll axis has a significant curve. You need this, because the roll "deadzone" in this game causes roll not to kick in until like the 75% mark on the controller's analog stick. "Deadzone" in quotes because this is even with stick deadzones set to 0.
In BF2 settings:
- turn on advanced flight. otherwise they constantly reorient your ship for some kind of training wheels experience.
- set stick deadzone to 0%. You're probably already controlling deadzones with your HOTAS software.
- (subjective maybe?) set starfighter response curve to 0%. I believe this makes your input linear, which you probably want. You probably already edit curves in your HOTAS software.
Software / driver setup instructions:
https://steamcommunity.com/sharedfiles/filedetails/?id=1644325268