RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.38k stars 1.91k forks source link

RPSC3 - non gun, needs DEMULSHOOTER integration #13895

Closed bro007-eng closed 7 months ago

bro007-eng commented 1 year ago

Quick summary

Two Light Guns CANNOT be used in games like Time Crisis or Raizing Storm. The operate as one. Like the RPSC3-gun.exe the standard one should have full demulshooter access so the two guns can operate independantly.

Details

Two Light Guns CANNOT be used in games like Time Crisis or Raizing Storm. The operate as one. Like the RPSC3-gun.exe the standard one should have full demulshooter access so the two guns can operate independantly.

Attach a log file

NO LOG - its a pure function that won't get picked up in a log.

Attach capture files for visual issues

No response

System configuration

No response

Other details

No response

Megamouse commented 1 year ago

Missing log file

Megamouse commented 1 year ago

closing since it doesn't provide any useful information

legend800 commented 1 year ago

What more info is needed exactly? Demulshooter adds support for dual lightguns which is impossible currently.

Unless rawinput is planned soon, adding support for DS integration will provide rpcs3 users dual lightguns, like the 357 branch (provided that argonlefou also enables it from the tool).

https://github.com/argonlefou/DemulShooter/wiki/System-357

bro007-eng commented 1 year ago

I cant provide a log file because its a feature that doesnt exist - but agree fully with legend800 - if it could be done like rpc3-gun/357 it would be excellent and a game changer

Megamouse commented 1 year ago

The problem is that no one understands what the problem is as there is no explanation to anything. The OP doesn't explain whether this is something that works on a PS3 or not. It mentions some weird exe and branch without context. It doesn't even explain what you currently do to play with a single light gun. It doesn't even mention which light gun you use. It also doesn't explain what demulshooter is and how it works.

MSuih commented 1 year ago

If "RPSC3-gun.exe" means the Project OMED/RPCS357 thing, then you should ask for help from the developers of it. We are not associated with that project in any way and it violates our license.

legend800 commented 1 year ago

The OP doesn't explain whether this is something that works on a PS3 or not.

This is a PC tool that has been around for many years that (mostly) focuses on adding support for multiple wiimotes/lightguns to emus and arcade loaders.

It mentions some weird exe and branch without context.

They forgot to mention this was from Project OMED, a rpcs3 branch which added 357 support so arcade games like Dark Escape and Tekken Tag Tourn 2 (whose support was added to main rpcs3 branch a couple months back).

It doesn't even explain what you currently do to play with a single light gun.

It just uses the only way for mice to play with simulating the ps move. All lightguns just use the mouse input. But since there's no rawinput (and all ps move emu buttons are hard coded), there's no 2p lightguns (or wiimotes like me!)

It doesn't even mention which light gun you use.

Any lightgun or wiimote.

It also doesn't explain what demulshooter is and how it works.

DS is a very popular tool as I mentioned earlier. More info here: https://github.com/argonlefou/DemulShooter/wiki/System-357

If "RPSC3-gun.exe" means the Project OMED/RPCS357 thing, then you should ask for help from the developers of it. We are not associated with that project in any way and it violates our license.

That's not what we're asking. DS is already fully compatable with that branch as I posted before. But that branch only loads arcade games. We want 2 player lightgun support for the console games like TC4, TC Razing Storm, HOD4, HOD Overkill, Deadstorm Pirates, etc.

Megamouse commented 1 year ago

You still haven't explained how you use a light gun on a PS3, but I'll reopen this anyway.

legend800 commented 1 year ago

Thanks! Here's how you enable lightgun today. Just set this config in rpcs3:

2023-09-06 00_09_29-Settings_  BLUS30528  TIME CRISIS_ RAZING STORM

Then just connect x lightgun or wiimote to your pc and play game. The device will simulate mouse movement/btn input.

Current (hard coded) mappings (only 1p input): o Left click: T o Right click: ~/Move button o Back: Circle o Left + Middle click (or 7): Start o Middle + Right click (or 8): Triangle o Middle click: X o Forward: Square o Left + Right click (or button 6): Select

nixxou commented 9 months ago

Light Gun move simulate an hardware mouse, it can also simulate joystick if needed. Often, to play two players games, an emulator needs to recognize multiple mouse separately (using rawinput) and not just use the mouse cursor.

Demulshooter is a wildly popular tool, that hook some emulator functions to add multiple mouse input support to games that don't have it. It also hack outputs on some game to get specifics events (to get the recoil on your gun when you are firing a shot) So yeah, ignore demulshooter, it does not use 'special access', it's just pure hacking (in the good sense of the term) into inputs.

What we need is two player support on games like Time Crisis, for that we need to bind multiple mouse using rawinput and recognize them as distinct mouse. An alternative to multiple raw mouse would be to be able to bind multiple ps mouse to joysticks as most lightgun are also able to simulate joysticks (and that's what is doing PCSX2)

SeongGino commented 7 months ago

Not going to lie, this issue thread is pretty confusing given the title and things like DemulShooter being thrown around.

Since DemulShooter uses injection for interoperability rather than applications being designed around it, it really shouldn't be brought up in this discussion - that's up to DS's dev, and not RPCS3's responsibility.

However, aside from having Windows' Rawinput as an option for reading multiple mouse devices (which would leave out Linux support), it would be nice if the normal "Fake" Move handler could support using any gamepad - modern Lightgun solutions like GUN4ALL will cheerfully allow sending the screen coordinates as either the left or right joystick on a gamepad, and have the buttons on the PC lightgun output as gamepad buttons. PCSX2 does this currently, where a joystick axis can essentially be mapped to and scale with the screen size to simulate a mouse.

No idea if this should be moved to a separate issue admittedly, but it would be useful for PC lightgun users to have more than one Move controller be mapped--either that, or at least expose the "Gun" Move handler for Linux users to be configurable by the end user, as currently it's even more limiting than just using the generic "Mouse" Move handler.

nixxou commented 7 months ago

Not going to lie, this issue thread is pretty confusing given the title and things like DemulShooter being thrown around.

Since DemulShooter uses injection for interoperability rather than applications being designed around it, it really shouldn't be brought up in this discussion - that's up to DS's dev, and not RPCS3's responsibility.

However, aside from having Windows' Rawinput as an option for reading multiple mouse devices (which would leave out Linux support), it would be nice if the normal "Fake" Move handler could support using any gamepad - modern Lightgun solutions like GUN4ALL will cheerfully allow sending the screen coordinates as either the left or right joystick on a gamepad, and have the buttons on the PC lightgun output as gamepad buttons. PCSX2 does this currently, where a joystick axis can essentially be mapped to and scale with the screen size to simulate a mouse.

No idea if this should be moved to a separate issue admittedly, but it would be useful for PC lightgun users to have more than one Move controller be mapped--either that, or at least expose the "Gun" Move handler for Linux users to be configurable by the end user, as currently it's even more limiting than just using the generic "Mouse" Move handler.

Correct me if i'm wrong, but that's already the case, fake move handler is binded to ps3 controllers (from the last one, and then downward) https://github.com/RPCS3/rpcs3/pull/15130

SeongGino commented 7 months ago

Correct me if i'm wrong, but that's already the case, fake move handler is binded to ps3 controllers (from the last one, and then downward) #15130

Seems like that is the case, so apologies for the necro--though in my defense, while it makes sense from an "emulating how the PS3 works" standpoint, the lack of tooltips in-app on how this works makes it very confusing for a user who hasn't seen this PR beforehand.

UX aside, it also seems to have a legitimate problem: the game (Deadstorm Pirates as part of RAZING STORM) also sees the Wireless Controller (emulated DS3) that the Fake Move Controller (Motion Controller) is latched to, in the same port. 2024_03-25 195959 Both "player's" inputs are being seen from the same singular controller, which causes many an unintended side effect - namely starting a game in co-op even when there's only a single gun/controller plugged in.

And for reference: this is with the game's specific controller configuration having Port 7 mapped as a Navigation Controller (but also happens when the controller type is set to a Standard (Pad)/PS3 Controller). 2024_03-25 200848-Gamepad Settings:  BLUS30528  TIME CRISIS: RAZING STORM

I'm... going to assume this isn't intentional, right? Would this be more appropriate in a separate issue?

Megamouse commented 7 months ago

The fake move stuff is just a barebones convenience implementation and will never truly work. There's no real interest in putting any development time into it to be honest, as it's basically nonsense from a technical POV. It only really works for the couple of lightgun games, since they don't care about the motion stuff. Currently we just piggyback on the pad handlers for the fake move, so of course it's up to the game to decide how to assign the stuff (in theory it's a bug in the game if it uses the same port for both pad and move, but that doesn't happen on a real console, so they probably never added any logic for this edge case) It's probably best to just automatically assign the last 4 controllers to the move instead of the pads when enabled. Otherwise I'd have to add a toggle to the last 4 players in the UI, which only makes things even more messy and adding more possibilites for user error.

Anyway, since raw mouse input is basically implemented, i'll close this issue.

Megamouse commented 7 months ago

@SeongGino can you try to set the device class of the ps move pad to Navigation ? maybe that fixes your issue

SeongGino commented 7 months ago

@SeongGino can you try to set the device class of the ps move pad to Navigation ? maybe that fixes your issue

The PS Move pad was set to Navigation->PS Move Navigation - as well as tried a few of the other controller types, but all the same result and the underlying pad is still active in-game.

If you prefer, I'll happily open a new issue thread since it's a different problem from the OP.

nixxou commented 7 months ago

As a side note, if the new rawinput is great (and thanks a lot for that), i still prefer the fake using joystick and from my point of view, it still hold value. To start, it mean we can directly bind keys to joystick instead of having some weird Middle + Right Mouse Buttons or usage of Mouse Back Button (Button 4) that require some weird ahk code since most gun (at least sinden) don't have binding for combo or mouse button 4/5. Also, some lightgun, like wiimote using https://geekonarium.de/en/lichtknarre-lightgun/ use vjoy to move the cursor.

Megamouse commented 7 months ago

@SeongGino can you try to set the device class of the ps move pad to Navigation ? maybe that fixes your issue

The PS Move pad was set to Navigation->PS Move Navigation - as well as tried a few of the other controller types, but all the same result and the underlying pad is still active in-game.

If you prefer, I'll happily open a new issue thread since it's a different problem from the OP.

Yes, please.