||5 months ago|
|.gitignore||5 months ago|
|LICENSE||5 months ago|
|Makefile||5 months ago|
|README.md||5 months ago|
|controller_firmware.ino||5 months ago|
|sega_pinout.txt||5 months ago|
|uinput-sega-genesis.c||5 months ago|
genesis2pc - connect your genesis controller to a linux box
This small project was one of the silly ideas I once had about connecting one of the fake sega genesis controllers I had to a Raspberry Pi. Obviously there were easier ways to do this, but here we are.
How to run the project
You will need a sega genesis controller, an Arduino Nano/UNO chip, a linux kernel with the uinput module, and a way to flash the .ino file to the arduino (by whichever means you prefer)
The process is done in the following order:
- Connect the pins of the controllers port to the pins on the board, as specified in sega_pinout.txt
- Flash the controller_firmware.ino file to the board
- Compile the driver part (simply run
- Connect the arduino board to your PC via a usb cable
- Run the driver as root and specify the serial device for your arduino
There are 2 variations of the driver portion -
driver_kb. The difference is that
driver attempts to simulate an actual joystick, while
driver_kb maps to keyboard buttons.
Big thanks to tldp.org for the Serial Programming manual, thanks to the Arduino community for documenting the specifics of the communication between a genesis controller and the console, and to the people behind the uinput module for the linux kernel.
Copyright © 2022 Yessiest Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.