{"id":23438442,"url":"https://github.com/thinkaliker/dragalia-controller","last_synced_at":"2025-04-13T06:26:30.765Z","repository":{"id":71062532,"uuid":"167776377","full_name":"thinkaliker/dragalia-controller","owner":"thinkaliker","description":"Python controller for Dragalia Lost using scrcpy","archived":false,"fork":false,"pushed_at":"2020-01-13T00:21:42.000Z","size":10,"stargazers_count":16,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-26T23:02:26.890Z","etag":null,"topics":["hacktoberfest","inputs","pyautogui","python","python3","scrcpy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thinkaliker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-27T06:03:10.000Z","updated_at":"2025-03-08T18:10:52.000Z","dependencies_parsed_at":"2023-03-11T09:50:01.667Z","dependency_job_id":null,"html_url":"https://github.com/thinkaliker/dragalia-controller","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkaliker%2Fdragalia-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkaliker%2Fdragalia-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkaliker%2Fdragalia-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkaliker%2Fdragalia-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thinkaliker","download_url":"https://codeload.github.com/thinkaliker/dragalia-controller/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248672421,"owners_count":21143272,"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":["hacktoberfest","inputs","pyautogui","python","python3","scrcpy"],"created_at":"2024-12-23T14:49:35.356Z","updated_at":"2025-04-13T06:26:30.754Z","avatar_url":"https://github.com/thinkaliker.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dragalia-Controller\n\nThis is a Python 3.7 script which enables using a controller to control the mobile game Dragalia Lost on Android without an emulator by using scrcpy.\n\n[Video Demo!](https://www.youtube.com/watch?v=y3Dm4DJzWeU)\n\n## Requirements\n\n- Android device\n- Latest [scrcpy](https://github.com/Genymobile/scrcpy)\n- Xbox One/360 controller\n- Python 3.7+ (with pip)\n- PyAutoGUI\n- PyInputs\n- PyWin32\n\n## First Time Setup\n\n1. Make sure you have all of the requirements fulfilled and you know how to use/run each one.\n1. Run `pip install pyautogui`\n1. Run `pip install inputs`\n1. Run `pip install pywin32`\n1. Clone this repository to anywhere on your computer.\n1. Adjust button ratios as needed.\n1. Adjust the following constants\n\nConstant | Default value\n--|--\nWINDOW_TITLE | 'Pixel 2' (this should be the title of the scrcpy display window)\nUI_LAYOUT | 'right' ('right' or 'left' UI Layout)\nTITLE_OFFSET | 30 (Thickness of your Windows titlebar - affected by Windows scaling)\n\n## Running\n\n1. Start scrcpy, preferrably with the window title.\n1. Connect your controller of choice.\n1. Run `python dragalia-controller.py`\n1. Keep the window at the same aspect ratio without black bars if you need to resize it.\n1. Sit back and enjoy using your controller to play!\n1. Press ctrl+c a few times to quit.\n\n## Defaults (my setup)\n\n- OS: Windows 10\n- Windows Display scaling: 100%\n- Monitor size: 1920x1080, 24\"\n- Phone resolution: 1080x1920, Pixel 2\n- Dragalia Lost: Quick90 off, Quick180 off\n\n### Default Key mappings for Xbox One/360\n\nButton | Action\n--|--------\nA | Attack (tap)\nX | First skill\nY | Second skill\nB | Third skill\nLB | Dragon\nRB | Helper skill\nLeft Joystick | Move\nRight Joystick | Dodge (Swipe)\nMenu | Pause/unpause\nSelect | Minimap\nDPad Up/Down | Switch character up/down\n\n## Contributing\n\nPlease fork the repository, and make a pull request! Make sure to be as detailed as possible in your description - I'll probably accept it. All improvements are welcome!\n\n## Bugs\n\nThere are lots of them, I'm sure (see below). If you find something though, please create an issue. Be as detailed as possible!\n\n## TODO/Nice to haves\n\n- Better joystick input handling (something's off about deadzone detection, especially on X-only and Y-only axes)\n- Multiple controller support (PlayStation, etc)\n- ~~Different DPI scaling support~~\n- ~~Different devices (find an easier way? relative screen boundaries vs exact screen boundaries?)~~\n- Automatic detection of which menu you're in and switch input schemes automatically (inputs may be able to do detection)\n- Sticker menu (find a button combo)\n\n### Dragalia Lost is copyright Nintendo, Cygames.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkaliker%2Fdragalia-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthinkaliker%2Fdragalia-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkaliker%2Fdragalia-controller/lists"}