ares-emulator / ares

ares is a cross-platform, open source, multi-system emulator, focusing on accuracy and preservation.
https://ares-emu.net
Other
868 stars 107 forks source link

SNES multitap support #1124

Open joshtriplett opened 1 year ago

joshtriplett commented 1 year ago

As far as I can tell, it looks like ares only supports two controllers for the SNES. Would it be possible to support the SNES multitap, which allows up to 5 controllers?

Thank you.

jeffythedragonslayer commented 1 year ago

I have a actual multitap, if anyone wants to team up and implement this.

LukeUsher commented 1 year ago

I have a actual multitap, if anyone wants to team up and implement this.

The multi tap is fully emulated but there is currently no way to select it from the ui; it’s one of the advanced features that got lost in the transition from the complex higan ui to the simple ares ui.

joshtriplett commented 1 year ago

@LukeUsher As a simplified version of the UI, would it be possible to just list 5 controller ports rather than 2, and then document that a multitap will automatically be enabled and emulated if any of controllers 3-5 are enabled in the UI?

LukeUsher commented 1 year ago

@LukeUsher As a simplified version of the UI, would it be possible to just list 5 controller ports rather than 2, and then document that a multitap will automatically be enabled and emulated if any of controllers 3-5 are enabled in the UI?

Some games refuse to boot with a multi tap attached so it’s not something we can easily automate, we would need to maintain a compatibility list so we know when we neee to force disable it

jeffythedragonslayer commented 1 year ago

Some games refuse to boot with a multi tap attached so it’s not something we can easily automate, we would need to maintain a compatibility list so we know when we neee to force disable it

The official manual warns against using the Super FX and multitap together because that would draw too much current. If we have the emulator keep track of how much current the SNES is using, would we be able to guess that list of games more easily?

joshtriplett commented 1 year ago

@LukeUsher As a simplified version of the UI, would it be possible to just list 5 controller ports rather than 2, and then document that a multitap will automatically be enabled and emulated if any of controllers 3-5 are enabled in the UI?

Some games refuse to boot with a multi tap attached so it’s not something we can easily automate, we would need to maintain a compatibility list so we know when we neee to force disable it

That's why I'm wondering if ares could automatically enable/disable it based on whether controllers 3-5 are enabled. Then, if someone wants to play a game that doesn't work with a multitap, they can just change controllers 3-5 to no longer have a gamepad connected.

jeffythedragonslayer commented 1 year ago

What about the passthrough mode/Multiplayer mode hardware switch? Are we planning on omitting that from the UI as well?

Shideravan commented 10 months ago

@LukeUsher As a simplified version of the UI, would it be possible to just list 5 controller ports rather than 2, and then document that a multitap will automatically be enabled and emulated if any of controllers 3-5 are enabled in the UI?

Some games refuse to boot with a multi tap attached so it’s not something we can easily automate, we would need to maintain a compatibility list so we know when we neee to force disable it

That's why I'm wondering if ares could automatically enable/disable it based on whether controllers 3-5 are enabled. Then, if someone wants to play a game that doesn't work with a multitap, they can just change controllers 3-5 to no longer have a gamepad connected.

The problem with this way of doing it is that the user may not be aware that this is happening due to the multitap, and may not be able to boot a valid game without knowing what is happening. It may even generate false positives.

Shideravan commented 10 months ago

IMHO, the most appropriate way, which Luke is probably considering, is to add it to the peripheral selector in Controller Port submenu. In the case of the Super Nintendo, you could select the multitap each time you play and it will use the pre-configured controls 3-5 on the input. But it will need to be reselected each time you play, which prevents the user from using the multi-tap without knowing they are using it and thus prevents false positives. They would not need to reconfigure the controls 3-5 every time, because this is previously registered in Virtual Gamepads 3-5. This type of solution is already present in the PC Engine and has worked well. image

Look at PC Engine multitap (once the multitap is choosen, it opens the new controller ports 1-5) image