slashinfty / nincid

Cross platform Electron-based controller input display for Nintendo devices
https://slashinfty.github.io/nincid/
MIT License
0 stars 1 forks source link

Doesn't seem to work at all in both Windows and Linux #5

Open tyisafk opened 3 years ago

tyisafk commented 3 years ago

I'm trying to get an input viewer working on Linux since I can't get RetroSpy working in Wine and OpenJoystickDisplay doesn't work with N64 controller properly (messed up joystick and missing C Buttons), plus OJD isn't being developed anymore. I'm using ElectroModder's ESS adapter but I've also tested with my Arduino with RetroSpy and NintendoSpy firmwares. RetroSpy on Windows works perfectly fine for both Gamecube and N64, Gamecube works on OJD but not properly on N64 on both Windows and Linux, NinCID simply doesn't work at all, both in regular and administrator on Windows and user and sudo on Linux (Including --no-sandbox)

On Linux, I'm using Manjaro through the AppImage

slashinfty commented 3 years ago

Interesting. I'm in the process of putting together my own Arduino-based input device, so I'll hopefully be able to test out more than just the ones my friend made me, to see if it's any different.

kamenomagic commented 3 years ago

I also tried on mac, couldn't get it working. Port showed up correctly etc. In the dev tools it showed this: -1616777825171.log My device and input display works with nintendo spy (on VM on mac even, or on windows machine).

Happy to help get this to work if you point me in the right direction

slashinfty commented 3 years ago

I also tried on mac, couldn't get it working. Port showed up correctly etc. In the dev tools it showed this: -1616777825171.log My device and input display works with nintendo spy (on VM on mac even, or on windows machine).

Happy to help get this to work if you point me in the right direction

Can you try cloning the repository on your Mac and trying it? I don't understand why it won't find upath, unless my Mac build was bad.

kamenomagic commented 3 years ago

Ok I finally got around to trying this out haha.

It doesn't list any ports, but Arduino IDE does list the serial port

kamenomagic commented 3 years ago

Ok I opened the dev tools in the window and it shows that binding/version error or whatever that you mention in the cloning directions. Also I was using like node 10 so I upped that to node 12 something.

And it works!! Very nice.

So I'm guessing there's some discrepancy between the build artifact and running the repo directly?

slashinfty commented 3 years ago

I'm not surprised there's issues with building Electron. Heck, the issue with needing to rebuild is one I read about with posts dating back a few years.

kamenomagic commented 3 years ago

I haven't developed anything with electron myself but that sounds like a typical thing with this kind of deal haha

Roadhog360 commented 3 years ago

I'm not able to get this working on my Ubuntu machine. Nothing happens when I plug in my input viewer when NintendoSpy worked just fine with it. The GameCube display is there but it ignores anything I do on the controller.

I don't know what node 10 or node 12 means or how to change that.

I'm hoping someone here can help, I really have been turning the internet upside-down for a proper solution. NintendoWiSpy just doesn't work at all and this is the closest thing to working, and it's cleanest-looking solution. I absolutely love the default skins and will do anything I can do get this working!

EDIT: I've run the application in the terminal, even as sudo nothing changes. However every time I start the application this error immediately pops up: (node:22639) Electron: Loading non-context-aware native module in renderer: '/tmp/.org.chromium.Chromium.iyWyZ2'. This is deprecated, see https://github.com/electron/electron/issues/18397.

I hope I can get this working, this application looks really neat and I thank you for your amazing work. I hope this is still active and supported. I see that one of the devs posted here 5 days ago which is a good sign. Fingers crossed...!!

Roadhog360 commented 3 years ago

I'm not surprised there's issues with building Electron. Heck, the issue with needing to rebuild is one I read about with posts dating back a few years.

Hey sorry for the bother but I was hoping to poke you about the above. I'm still experiencing this issue and have laid in detail what I don't know how to solve and what I've tried to get it working.

slashinfty commented 3 years ago

@Roadhog360

Since the builds aren't working properly, your best bet is to build it yourself.

  1. Install Node.js, if you need it. I suggest installing nvm first.
  2. Install node with nvm install node and yarn with sudo apt update && sudo apt install --no-install-recommends yarn.
  3. Follow these directions to run nincid.
Roadhog360 commented 3 years ago

00h00m00s 0/0: : ERROR: [Errno 2] No such file or directory: 'install'

Is what I get when trying to run the yarn install command in the build instructions. It seems there is supposed to be an "install" folder in the GitHub, but since it is not on GitHub, Git doesn't download it and the process cannot be continued.

EDIT: I noticed even if the --no-install-recommends argument is added, it still insists I install cmdtest instead of Yarn.

EDIT 2: Had to claw with the package manager and ended up installing Yarn manually because it wouldn't stop giving me cmdtest...

So, it installs, launches and there are still errors, and the same thing happens as with the prebuilds. No input detected.

There's some errors about bindings and node from what it looks like when installing, but trying out the fix in the guide didn't do anything. Here's my exact console output from me attempting the Yarn fix commands to me running it again and getting the same error. Excuse me running Yarn install twice by mistake. I promise it doesn't make a difference though as I tried this yarn fix method two times and the first time I didn't make the mistake. This is my second attempt.

✔ Rebuild Complete
roadhog360@roadhog360-Strix-GL504GV-GL504GV:~/Applications/nincid$ yarn install
yarn install v1.22.5
info No lockfile found.
[1/4] Resolving packages...
warning electron-rebuild > node-gyp > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning electron-rebuild > node-gyp > request > har-validator@5.1.5: this library is no longer supported
warning electron-rebuild > node-gyp > request > uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
[2/4] Fetching packages...
info dmg-license@1.0.9: The platform "linux" is incompatible with this module.
info "dmg-license@1.0.9" is an optional dependency and failed compatibility check. Excluding it from installation.
info iconv-corefoundation@1.1.6: The platform "linux" is incompatible with this module.
info "iconv-corefoundation@1.1.6" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 4.71s.
roadhog360@roadhog360-Strix-GL504GV-GL504GV:~/Applications/nincid$ ./node_modules/.bin/electron-rebuild
✔ Rebuild Complete
roadhog360@roadhog360-Strix-GL504GV-GL504GV:~/Applications/nincid$ yarn install
yarn install v1.22.5
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.18s.
roadhog360@roadhog360-Strix-GL504GV-GL504GV:~/Applications/nincid$ yarn start
yarn run v1.22.5
$ electron .
(node:41429) Electron: Loading non-context-aware native module in renderer: '/home/roadhog360/Applications/nincid/node_modules/@serialport/bindings/build/Release/bindings.node'. This is deprecated, see https://github.com/electron/electron/issues/18397.
Done in 2.33s.
slashinfty commented 3 years ago

The reason you do --no-install-recommends with yarn is so it won't try to install node/npm.

Here is a video of going through the instructions. Notice that before I run ./node_modules/.bin/electron-rebuild there is an error in the dev console about bindings and node versions, and after I run the rebuild, that error is gone.

Maybe you're having an issue with the chrome-sandbox (which is also listed in the directions in the readme).

Roadhog360 commented 3 years ago

Both fixes were tested and neither worked. I'll try the video today.

Roadhog360 commented 3 years ago

I've followed exactly what you did in the video to a T, ensured there are no more console errors and it still isn't responding to my controller.

I was wondering if my NintendoSpy adapter might no longer be functional, but I tested by plugging the adapter into a console, with my controller plugged into the adapter to test and it worked there.

EDIT: I saw a single error I initially missed. Right as I start the display it says it doesn't have permission to open the usb device. However running as sudo just removes the error, still no response.

slashinfty commented 3 years ago

Unfortunately I don't know what the issue may be at this point.

Roadhog360 commented 3 years ago

Damn, well, the hunt for an alternative continues, then... That sucked, the default themes on this one are really clean too...

Roadhog360 commented 3 years ago

Just to make sure I understood the page description properly, this application is for the Input Displays LLC adapter that is originally used with NintendoSpy, right?

If that's right, I'd like to give one more option a go. Someone said changing their 'node' version fixed it for them. How do I do this?

Roadhog360 commented 3 years ago

OK, I made some progress, I didn't know it actually had to be plugged into a running game which was quite stupid of me, I thought plugging it into an adapter that was in my active computer was enough.

So-- it works, but the analog inputs on the shoulder buttons do not work, it's either fully lit up when the button clicks down, or not lit at all.

And despite both sticks working in-game, NinCID seems to not detect and stick movement.

tim-win commented 2 years ago

Same experience here- need to use nvm / node 16 to get it to run, but once a working node 16 / yarn / nincid environment is up and running, neither GC analog stick registers correctly.

However, it was a nice step forward getting at least this far on ubuntu 20.04.

tim-win commented 2 years ago

Using the electron debugger, I can see that the gamecube analog stick and cstick are both working fine. Well, "fine" is relative to how far off true my beat up GC controllers are, but still, I'm getting solid readings from both:

image

tim-win commented 2 years ago

Oh gad dang it. The last commit may have introduced the bug where the default settings don't work anymore:

https://github.com/slashinfty/nincid/commit/0967d913d9d2f5ad1606f0445f6e367d05a9add5

All I know for sure is that el.dataset is empty for both sticks, leading to NaN calculations for analog stick placement!

I fixed it in my local version by setting up some dummy values.

Roadhog360 commented 2 years ago

Will your version make the application read my stick inputs correctly?

Roadhog360 commented 2 years ago

Oh gad dang it. The last commit may have introduced the bug where the default settings don't work anymore:

0967d91

All I know for sure is that el.dataset is empty for both sticks, leading to NaN calculations for analog stick placement!

I fixed it in my local version by setting up some dummy values.

Can I try your el.dataset?

slashinfty commented 2 years ago

Oh gad dang it. The last commit may have introduced the bug where the default settings don't work anymore:

0967d91

All I know for sure is that el.dataset is empty for both sticks, leading to NaN calculations for analog stick placement!

I fixed it in my local version by setting up some dummy values.

If you have some fixes, please feel free to open a pull request.

Roadhog360 commented 2 years ago

Just realized how long ago the last post was. Sorry for necro-ing this old issue.

Roadhog360 commented 2 years ago

Same experience here- need to use nvm / node 16 to get it to run, but once a working node 16 / yarn / nincid environment is up and running, neither GC analog stick registers correctly.

However, it was a nice step forward getting at least this far on ubuntu 20.04.

Sorry for the old post but I'm STILL struggling with this. I still don't know what "node" is or how to change the version. As for the new update that apparently broke stick and analogue ranges, so I reverted to the previous one and now I get this error in the console.

display_interface.js:217 Uncaught ReferenceError: skinJson is not defined at display_interface.js:217 at Array.forEach (<anonymous>) at readPort (display_interface.js:213) at loadDisplay (display_interface.js:137) at HTMLButtonElement.onclick (index.html:54)

slashinfty commented 2 years ago

I will attempt to get some sort of fix in place soon. Been busy with work and other projects.

Roadhog360 commented 2 years ago

Don't feel pressured, do take your time.

Oh gad dang it. The last commit may have introduced the bug where the default settings don't work anymore:

0967d91

All I know for sure is that el.dataset is empty for both sticks, leading to NaN calculations for analog stick placement!

I fixed it in my local version by setting up some dummy values.

This reply makes me think an already-fixed version exists, but as seen above I asked to try out that version and wasn't given a response. This would probably save both of our time.

Roadhog360 commented 2 years ago

@tim-win I'm sorry to ping you but I am starting to feel like the only mileage I am going to get out of my adapter at this rate is by selling it. This is the ONLY Linux alternative that has come anywhere CLOSE to working whatsoever. Nothing else has worked, period.

Please, what exactly did you modify here? How did you get it to work?

tim-win commented 2 years ago

Daaaaamn. Happy to help. Will try to post something later today with details of what I had to break to get it working.

Edit: the good news is I still use this somewhat regularly so I can share working (if riddled with debug info) code

Roadhog360 commented 2 years ago

Daaaaamn. Happy to help. Will try to post something later today with details of what I had to break to get it working.

Edit: the good news is I still use this somewhat regularly so I can share working (if riddled with debug info) code

@tim-win I'm glad that my ping worked, thanks for considering me. If you made a PR with your changes incorporated I'd definitely download it. Can you please share the aforementioned code?

tim-win commented 2 years ago

For those who follow, I posted my working (debug) version of the code to here:

https://github.com/slashinfty/nincid/pull/19

slashinfty commented 2 years ago

Thanks! I'll try to get it very soon, and maybe do some updates myself this summer.

jamielovesgames commented 2 years ago

Hi Everyone! I'm experiencing similar issues when trying to run NinCID on my Mac: application launches, my device is found under the "select port" drop down, but then I get a blank screen when clicking "load input display." I ran the clone repository and updated my node to 18.7.0. I'm getting the "upath" error under "Console" when running the dev tools

Screen Shot 2022-08-10 at 5 57 49 PM

.