Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing SysMouse, cursor sync, etc. #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

john-peterson
Copy link
Member

System mouse

Fixing mouse selection so that SysMouse isn't selected for all mice

RawInput SysMouse is always selected for both mice, making a 2p game impossible. The acquire function so that device 0 can never be detected, until a more proper fix can be made. I think it's unnecessary to pick up the sysmouse with init_raw_mouse() since I don't see why you would use it, but if you want to pick it up you'll have to fix get_guncon_hid_device()

Sync cursor with system cursor

Fixes to SnapCursor() and SetCursorPos() so that both mice can move the cursor. It's hard to calibrate the guncon otherwise.

The SnapCursor() and SetCursorPos() section in PADpoll_guncon is fixed so that both mice can move the cursor. It's hard to calibrate the guncon otherwise

Off screen shot

The off screen shots function set the shot position to (0,0) when the cursor is at the edges, i.e. when aiming is as far out as possible because

  • it can unintentionally be used when aiming close to the edge of the screen
  • this is unnecessary for games like time crisis that don't utilize offscreen shots an option to disable it is added

Guncon calibration profiles

I've attached guncon calibration profiles for TC2 and TC3 that are perfect and final since they are set with guncon calibration values hacked to zero with the attached cheats.

Unfortunately the calibration that is accurate in single player mode in TC3 is not accurate in split-screen mode, the split screen mode therefore has separate calibration values if you want the most accurate calibration. The y-axis calibration isn't perfect in TC3 split-screen since the y-axis values aren't treated consistent by the game, the values are set so that the aim is too high and too low as little as possible. If you want to play TC2 and TC3 split screen at all you have to use this patch mirror/pcsx2#1

The guncon calibration screen is only a nuisance that obstruct accurate calibration, but i couldn't find a patch to skip it without disabling the guncons too.

In Time Crisis 3 NTSC (7290669C) "patch=1,EE,128780,word,03e00008" skips it, with disabled guncons, and in Time Crisis 2 NTSC (D5D560FF) "patch=1,EE,0020fec0,word,03e00008" has the same effect, so for now the calibration screen must be clicked past, but the calibration values should be fixed to zero with the patch

Unfortunately for guncon2 the x calibration is stored in the plugin so they can't be patched with .pnatch files, but i've attached ArtMoney tables with pointers to the plugin below, notice that they are revision specific as there are no fixed pointers between revisions. Running ArtMoney is some additional work, but it's the only way when the .pnatch files can't do it, if you want accurate calibration that doesn't change from game to game.

90.25 97.5 422 134
namco 640 240

time_crisis3_1p "Time Crisis 3 (U) 1P"
78.5 90 403 130
namco 640 240

time_crisis3_2p "Time Crisis 3 (U) 2P"
78.5 90 440 130
namco 640 240

time_crisis2 "Time Crisis 2 (U)"
76.25 90.25 249 145
custom 512 256

PCSX2 0.98 SVN r4944;pcsx2.exe;1725a67f7b1baa0308c3f9ee3ca9969c
;RAM 32MB;00000000;20000000;2000000
;nuvee_ps2_pad.dll;10000000;pcsx2.exe+P01FA5AB0,88h,0;d0000
PCSX2 0.98 SVN r4600;pcsx2.exe;cb95ad252951e432ece01ae2a33726a4
;RAM 32MB;00000000;20000000;2000000
;nuvee_ps2_usb.dll;10000000;pcsx2.exe+P015A9F9C,6b0h,0;d0000

Summary

These changes are located at #1

  • enabling multi player by fixing the the mouse detection so that the system mouse isn't detected for all mice
  • the SnapCursor() and SetCursorPos() section in PADpoll_guncon is fixed so that both mice can move the cursor because it's hard to calibrate the guncon otherwise
  • adding option to disable off screen shot fixing for off screen shot because it can unintentionally be used when aiming close to the edge of the screen

Files

Fixes to SnapCursor() and SetCursorPos() so that both mice can move the cursor. It's hard to calibrate the guncon otherwise.

The offscreen shots function set the shot position to (0,0) when the cursor is at the edges, i.e. when aiming is as far out as possible, since this is unnecessary for games like time crisis that don't utilize offscreen shots an option to disable it is added.
@BevP90
Copy link

BevP90 commented Mar 6, 2021

@john-peterson Do you still have the patch for Time Crisis 2 and 3 split screen?

@carolis15
Copy link

Could it be possible to re-upload the files? The dropbox links are not working. Thank you

@BevP90
Copy link

BevP90 commented Apr 2, 2021

Could it be possible to re-upload the files? The dropbox links are not working. Thank you

I don't have the files, I couldn't get them either. Instead I grabbed the source and made changes to the values to get the aiming to be more accurate, it's now actually playable. I did this for my discord, where we are aiming to play TC2 and TC3 online over PCSX2 netplay.

@carolis15
Copy link

Thanks for the answer, do you think it is possible for you to share the compiled files?

@BevP90
Copy link

BevP90 commented Apr 2, 2021

Thanks for the answer, do you think it is possible for you to share the compiled files?

I could do I guess. Though because of what we needed it uses the GunCon 1 version of the plugin, limiting the games you can play. Like I said, we only wanted TC 2 and 3 so this works for us. Also on the menus the aiming will be messed up, but in game it's fixed as much as it can be. So you'd have to bear that in mind. I done this specifically for us doing 2 player stuff online. It wasn't intended for single player.

@gniche
Copy link

gniche commented Jan 5, 2023

This looks like a good fix as far as I can see. Is there any reason why this has not been merged in to the master branch?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants