I set out to find a way to get my SNES controller working on my NEOGEO. I first learned the NEOGEO is really just an arcade stick of sorts. each button has a wire. So a simple Arduino did the trick. I did not want to keep that board so I looked for existing stuff and yes there was a lot of it.
I then learned about supergun, its really a NEOGEO but used as a standard arcade layout with the same connector. But there are many other arcade connection types.
Then I found about about a project called the Bridge. It outputs as a console controller and takes in a protocol called LLAPI. This caused a rabbit hole of learning and it was good. It has modes for all the way up to ps4 and as far back as coleco.
The Gamer-Pro by Bliss-Box is an input adapter that reads pretty much everything. Here it is connected to a a Virtual Boy.

So nothing special there but the controller support is out of this world. This is a USB adapter but if you connect it to a Bridge it switches from USB to LLAPI. This bypasses USB timing and sends data constantly to the Bridge. It was measures to do this around every 500uS. Here is a part list, input cable, GPA, Bridge, Output cable.
I Learned that the Bridge has a Arcade mode / NeoGeo supergun mode. And the pinout for NEOGEO was easy

But for the arcade layout and better understanding this is how I set it up.

Pin 6 can be used as a thumb button but I did not use it, the layout can be remapped easily. but I liked the default. pin 14 has to be grounded to tell the Bridge what is what and 15-18 are used for other things. The Bridge needs power and ground.
The internal code in the Bridge looks at what controller is plugged in and remaps, there is software that lets you remap per controller. Or globally.
Those are GPA features and can be read about online.
Once setup, any controller the GPA accepts will output as an arcade stick, or NEOGEO