Hey all. This is not a question about MAME, it's more of an information gathering exercise to help me anticipate features that I may want in my frontend.
I'm trying to gauge what kinds of controller features are valuable for a frontend, and I'm hoping that people with alot of experience using emulators, and especially with building and using arcade cabs, can give me some feedback.
Rather than a very long diatribe about the architecture that I've designed for this so far, which nobody would want to read, I'll just ask some questions:
1) If you use 'normal' computer controllers (keyboard, mouse, analog joystick) to play MAME or another emulator, do you ever map them in weird ways? It's obvious to map keyboard keys to 'switches' (i.e. digital joystick directions and buttons), and to map mice to spinners and trackballs, and analog joysticks to paddles and lightguns ... but are there any really useful non-obvious mappings? Does anyone ever map, say, mice axis to analog joysticks, or keyboard buttons to pedals, or other mappings where the computer control type doesn't necessarily map well to the game control type? If so, why?
2) If you use arcade controls (such as trackballs, lightguns, real buttons, etc), do you use anything other than the obvious way of connecting them to your computer (the obvious way being via devices that represent those game controls as computer controllers such as keyboards, mice, and analog joysticks)? Do you do anything really weird or unexpected in this mapping, such as mapping two controllers to the same input device, or mapping a game controller via a device that normally wouldn't be used for it? If so, why?
3) What kind of configuration of mapping user input events (key press, mouse motion, etc) to game controls (buttons, joysticks, lightguns, etc) is useful for you? Is it useful to allow per-game overrides? How many per-game overrides do you have? Do you ever switch between different configurations for the same game, or do you find one configuration you like and stick with it. Why or why not?
4) Do you ever invert axis on devices that have axis? If so, why and when?
5) What kind of configuration for analog joysticks is worthwhile? Dead zone? Damping? Something else?
6) Do you do analog to digital joystick mapping? If so, how? Per game? Fixed? Do you have to manually change it when you need it to be different? Would you want an 'automatic' mode that matches the analog-to-digital joystick mapping to the game being played? Do you have multiple analog-to-digital maps, and if so, do you use different ones for different games, or do you find, e.g., a single 4-way map that you like and use it for all games?
Any thoughts about esoteric features of, or uses of, game controllers would be very interesting to me. I've designed an architecture for converting user input to game events for my frontend but I don't know if there's anything I've missed, so if anyone has any thoughts, I'd love to hear them.