@grant2258 Hi Grant - yes I think I've realised that this is the problem. The default RetroArch setup creates a virtual gamepad and binds both virtual gamepad and keyboard. I think the problem with Defender is that these mappings overlap - so the virtual gamepad is triggering as well as producing a keypress, and these are both bound to different things (eg thrust AND fire).
Yes, the method to make two-handed "tank" controls work on a single 8-way joystick does not require any cheats, just a clever set of controls mapped to what is sometimes called a "tankstick". The mapping makes use of <CODE_NOT> logic where you are actually excluding certain input combinations. MAME lets you setup mappings like this by using a double-tap of an input while in the GUI menu which changes it to a <NOT>, so if you do several inputs in rapid succession, before MAME accepts an entry, you can make some combinations that work in interesting ways.
Here's a mapping for a single 8-way joystick to control two tank sticks like Battlezone:
Game Control Mapped to
Right/Up Up <not> Right or Left <not> Down
Right/Down Down <not> Right or Right <not> Up <not> Down
Left/Up Up <not> Left or Right <not> Down
Left/Down Down <not> Left or Left <not> Up <not> Down
There is an odd situation for Keyboard controller users in lr-mame2003 that requires you to first set all retroarch inputs to NUL using a per-rom config file if you want to do this. You can read about it here.