{"id":21711854,"url":"https://github.com/gemarcano/gcn_adapter-driver","last_synced_at":"2025-04-12T17:41:52.269Z","repository":{"id":25284238,"uuid":"28710017","full_name":"gemarcano/GCN_Adapter-Driver","owner":"gemarcano","description":"Windows KMDF driver for the Nintendo Gamecube Controller Adapter.","archived":false,"fork":false,"pushed_at":"2015-02-07T21:06:30.000Z","size":396,"stargazers_count":13,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T12:02:58.034Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gemarcano.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"COPYING-GPL2","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-02T10:18:07.000Z","updated_at":"2023-07-25T23:04:52.000Z","dependencies_parsed_at":"2022-08-24T00:20:38.493Z","dependency_job_id":null,"html_url":"https://github.com/gemarcano/GCN_Adapter-Driver","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2FGCN_Adapter-Driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2FGCN_Adapter-Driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2FGCN_Adapter-Driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2FGCN_Adapter-Driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gemarcano","download_url":"https://codeload.github.com/gemarcano/GCN_Adapter-Driver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248608082,"owners_count":21132660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-25T23:30:09.777Z","updated_at":"2025-04-12T17:41:52.245Z","avatar_url":"https://github.com/gemarcano.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"________________________________________________________________________________\n________________________________________________________________________________\n  _____                        __      \n / ___/__ ___ _  ___ ______ __/ /  ___ \n/ (_ / _ `/  ' \\/ -_) __/ // / _ \\/ -_)\n\\___/\\_,_/_/_/_/\\__/\\__/\\_,_/_.__/\\__/ \n                                       \n  _____          __           ____          ___     __          __         \n / ___/__  ___  / /________  / / /__ ____  / _ |___/ /__ ____  / /____ ____\n/ /__/ _ \\/ _ \\/ __/ __/ _ \\/ / / -_) __/ / __ / _  / _ `/ _ \\/ __/ -_) __/\n\\___/\\___/_//_/\\__/_/  \\___/_/_/\\__/_/   /_/ |_\\_,_/\\_,_/ .__/\\__/\\__/_/   \n                                                       /_/                 \n  __  _________    ___      _             \n / / / / __/ _ )  / _ \\____(_)  _____ ____\n/ /_/ /\\ \\/ _  | / // / __/ / |/ / -_) __/\n\\____/___/____/ /____/_/ /_/|___/\\__/_/   \n________________________________________________________________________________\n________________________________________________________________________________\n\n________________________________________________________________________________\nABOUT:\n________________________________________________________________________________\n\nThis is a Windows KMDF driver, working as a filter driver installed below the\nMicrosoft supplied HID class driver. This driver should work for all Windows\nversions newer than 7 that support the KMDF framework. Earlier versions of\nWindows need a minidriver to forward HID requests and needs to be written in\nWDM.\n\n________________________________________________________________________________\nINSTALLATION:\n________________________________________________________________________________\n\nSee INSTALL.txt for installation instructions. There currently is no installer,\nso the driver must be installed manually. Also note that the driver, by default,\nis not signed, or is test signed, so it will not run in a normal run mode of\nWindows. Windows must be started in Test mode, and if the driver is unsigned,\nsignature checking must also be disabled.\n\n________________________________________________________________________________\nFEATURES:\n________________________________________________________________________________\n\n1. Support for all 4 controllers simultaneously.\n2. Simple linear deadzone handling.\n3. Supports recalibrating controllers by pressing the x-y-start button\n\tcombination for three seconds and then letting go.\n4. Device interface available for use with DeviceIoControl commands, including\n\tone for rumbling. \n\nThe driver registers itself as four USB HID controllers, which appear regardless\nof the actual state of the controllers. Now, plugging in a controller should\ncause the driver to begin to feed its data to the corresponding HID controller.\n\nBe aware, just as with the Gamecube the controller, the driver calibrates the\ncontroller when it is plugged in. If any of the analog buttons or axis are\ntouched during this process, the controller may be mis-calibrated. One can\ndisconnect and reconnect the controller to re-calibrate, or press the x-y-start\nbutton combination for three seconds and then let go to recalibrate the\ncontroller.\n\nThe driver, by default, applies a little bit of deadzone handling, but does\nlittle else in terms of processing raw input from the controllers. From\nexperimentation, it seems that the actual numbers coming in from the analog\ndevices in the controller vary from one controller to another by a decent\namount. As such, for Windows it is recommended to calibrate each controller in\nthe Game Controllers window.\n\nFor the programming inclined, the driver exposes an interface that can be\naccessed view CreateFile and accepts DeviceIoControl codes to trigger a\nrecalibration, to set parameters with regards to deadzone handling, and to\ntrigger rumbling. See the ConsoleClient project in the source code tree for\nan example of how to use the IOCTL commands. Currently, any altered settings do\nnot persist after a disconnect of the adapter.\n\nThe ConsoleClient application included in the source code allows for triggering\nrecalibration for any controller, modifying deadzone parameters (which algorithm\nto use and what value to use as a threshold for all analog inputs), and for fun\ntoggling rumble. Note that for rumble to work the gray USB connector (which\nsupplies power for rumble) must be connected.\n\n________________________________________________________________________________\nLICENSING:\n________________________________________________________________________________\n\nThis software is dual-licensed under the LGPLv3 and GPLv2 or later. See the\nCOPYING* files for copies of the licenses this driver is released under.\n\nI am not closed to the idea of licensing this software under a BSD license if\nsomeone were to present me a convincing enough argument, so ask me if there are\nany questions or concern. I can be contacted with questions about licensing at\ngabemarcano at yahoo dot com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemarcano%2Fgcn_adapter-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgemarcano%2Fgcn_adapter-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemarcano%2Fgcn_adapter-driver/lists"}