{"id":21348006,"url":"https://github.com/istador/node-ojds-nx-vigemclient","last_synced_at":"2026-07-17T21:34:22.290Z","repository":{"id":44326061,"uuid":"512049794","full_name":"Istador/node-ojds-nx-vigemclient","owner":"Istador","description":"Virtual controller via ViGEmClient, fetching inputs from OJDS-NX running on a Switch","archived":false,"fork":false,"pushed_at":"2022-07-09T00:11:27.000Z","size":11,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"public","last_synced_at":"2025-10-10T06:35:40.296Z","etag":null,"topics":["client","controller","nintendo-switch"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Istador.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-08T23:29:27.000Z","updated_at":"2024-04-11T05:18:46.000Z","dependencies_parsed_at":"2022-09-02T17:08:49.281Z","dependency_job_id":null,"html_url":"https://github.com/Istador/node-ojds-nx-vigemclient","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Istador/node-ojds-nx-vigemclient","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Istador%2Fnode-ojds-nx-vigemclient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Istador%2Fnode-ojds-nx-vigemclient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Istador%2Fnode-ojds-nx-vigemclient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Istador%2Fnode-ojds-nx-vigemclient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Istador","download_url":"https://codeload.github.com/Istador/node-ojds-nx-vigemclient/tar.gz/refs/heads/public","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Istador%2Fnode-ojds-nx-vigemclient/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35597010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-17T02:00:06.162Z","response_time":116,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","controller","nintendo-switch"],"created_at":"2024-11-22T02:17:35.027Z","updated_at":"2026-07-17T21:34:22.247Z","avatar_url":"https://github.com/Istador.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OJDS-NX ViGEm Client\n\nThis project aims to create a virtual controller on Windows that mimics the inputs from a modded Nintendo Switch.\n\nE.g. to display the controller inputs using https://gamepadviewer.com/.\n\n## Setup\n\n### On the Switch\n\nFirst the Switch needs to be [modded](https://switch.homebrew.guide/) and using the [Atmosphère](https://github.com/Atmosphere-NX/Atmosphere) custom firmware.\n\nOnce that is done we can copy over the [OJDS-NX](https://github.com/Istador/OJDS-NX/) files to the SD card (download the latest `zip` from the [releases](https://github.com/Istador/OJDS-NX/releases)).\n\nOnce put onto the SD card, the `OJDS-NX` server runs automatically in the background on port `56709/tcp` and waits for clients to connect.\nWhen a client connects and requests data, the server responds with the current controller values.\n\n### On your Windows PC\n\nFirst we need to install the latest [ViGEmBus](https://github.com/ViGEm/ViGEmBus) drivers on the Windows PC (download the latest `exe` from the [releases](https://github.com/ViGEm/ViGEmBus/releases)).\n\nIn order to run this project [Node.js](https://nodejs.org/en/download/) also needs to be installed.\n\nClone this repository and install additional dependencies with:\n```shell\ngit  clone  https://github.com/Istador/node-ojds-nx-vigemclient\ncd  node-ojds-nx-vigemclient\nnpm  install\n```\n\n## Usage\n\n### Client\n\nTo connect to the Switch we need to know its IP address in our network.\nThe IP address can be found at the connection status in the internet system settings on the Switch.\nFor example let's assume it is `192.168.0.2`.\n\nKnowing its IP we can simply run:\n```shell\nnode  client  192.168.0.2\n```\n\nThis will connect to the Switch and create a virtual controller.\nIt will then continues to request the controller states every about 50ms from the Switch and update the controller values until it is stopped (`CTRL + C`).\n\nBy default the client creates a virtual DualShock4 (PS4) controller (`DirectInput`).\nBut it can also create a virtual XBox 360 controller (`XInput`), by adding `xbox` as an additional parameter.\nThis will also remap the ABXY button layout which differs between Switch and Xbox controllers (`ABXY` \u003c=\u003e `BAYX`).\n```shell\nnode  client  192.168.0.2  xbox\n```\n\n### Test Server\n\nTo test the client without a Switch, there's also a small dummy server that responds with random controller values.\n\nIt can be started with:\n```shell\nnode  server\n```\n\nAnd the client can connect to it by simply running:\n```shell\nnode  client\n# or:\nnode  client  127.0.0.1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fistador%2Fnode-ojds-nx-vigemclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fistador%2Fnode-ojds-nx-vigemclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fistador%2Fnode-ojds-nx-vigemclient/lists"}