Git Product home page Git Product logo

Comments (9)

epigramx avatar epigramx commented on September 28, 2024

I sent a pull request for this #5
Also I edited the readme on my fork to allow to install it directly with those instructions: https://github.com/epigramx/ds4drv-cemuhook

from ds4drv-cemuhook.

epigramx avatar epigramx commented on September 28, 2024

I noticed that platforms in shrines rotate fine now just like PadTest(PadTest under wine). But the bow aiming is much slower than normal on the yaw axis. That appears to be a bug with Cemu or Cemuhook when under wine and I guess that's why you had initially multiplied it by 4.

from ds4drv-cemuhook.

epigramx avatar epigramx commented on September 28, 2024

There's a chance that something (either in this software or wine) limits the rate of the udp reception or dispatch. Motion on PadTest is not as smooth as on Windows(!) which might explain the bug with bow aiming.

from ds4drv-cemuhook.

epigramx avatar epigramx commented on September 28, 2024

Rethinking it the bug must be specific to BotW emulation on wine, because shrine motion-platforms rotate correctly and only the bow aiming is wrong, and even padtest is right as long as only one motion client runs (that last part seems to be a limitation of the server software).

from ds4drv-cemuhook.

epigramx avatar epigramx commented on September 28, 2024

After yet further investigation it seems that the problem is solely on this motion server, because a linux motion server for a Wii Remote Plus has no inconsistencies between BotW bow aiming and Shrine platform movement and I suspect an issue with either the timestamping of this server or the udp server dropping packets, but in either case I won't further look into it myself for now.

from ds4drv-cemuhook.

TheDrHax avatar TheDrHax commented on September 28, 2024

But the bow aiming is much slower than normal on the yaw axis. I guess that's why you had initially multiplied it by 4.

Yes, that was a quick fix for aiming in BotW to make the game playable.

padtest is right as long as only one motion client runs

This part is not implemented yet. The server only sends UDP packets to the last client it received a request from. Even if the last client goes offline, server will continue to send packets to the same socket.

I suspect an issue with either the timestamping of this server or the udp server dropping packets

Totally possible. I didn't change anything in the original ds4drv code, so timings may be inconsistent and incompatible with cemuhook. IIRC, ds4drv just parses raw events from DS4 and doesn't change their timing, so it might be difficult to fix.

from ds4drv-cemuhook.

epigramx avatar epigramx commented on September 28, 2024

Here it bugs if multiple clients connect to it. It's as if half of the packets go to one PadTest/Cemu and half to the other or it appears random in other cases. What is very odd about this server is that (after removing the X4 multiplier) moving a platform in a BotW Shrine that requires motion controls looks perfect just as PadTest but the bow aiming is wrong (and one could argue it's more important to do required platforms than aiming).

from ds4drv-cemuhook.

epigramx avatar epigramx commented on September 28, 2024

Some thoughts by Rajkosto (the author of Cemuhook) on the matter:

consistently dropping packets shouldnt matter as then it will just use the last sent packet for longer
but having more than one packet with same id or timestamp would be bad
ds4windows shows how to "expand" the ds4 timestamp into full microsecond timestamp

from ds4drv-cemuhook.

TheDrHax avatar TheDrHax commented on September 28, 2024

Oops! It appears that timestamps were encoded in the wrong format all this time (double instead of unsigned long long). After I changed the format, motion became much more smooth and all axes now have the same sensitivity in both motion shrines and during bow aiming.

I will push the fix in a minute. Feel free to reopen this issue if the problem still persists.

from ds4drv-cemuhook.

Related Issues (14)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.