{"id":29748063,"url":"https://github.com/atty303/konaste-linux","last_synced_at":"2025-07-26T09:39:11.878Z","repository":{"id":303185651,"uuid":"1014666866","full_name":"atty303/konaste-linux","owner":"atty303","description":"Helper tool for running konaste games on Linux with modern umu-launcher","archived":false,"fork":false,"pushed_at":"2025-07-20T12:13:18.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-20T14:20:55.040Z","etag":null,"topics":["gitadora","iidx","infinitas","konaste","sdvx","umu-launcher"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/atty303.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,"zenodo":null}},"created_at":"2025-07-06T07:02:49.000Z","updated_at":"2025-07-20T12:12:43.000Z","dependencies_parsed_at":"2025-07-06T08:20:26.523Z","dependency_job_id":"65e1026e-9ff6-48ee-82bf-43e369ef76be","html_url":"https://github.com/atty303/konaste-linux","commit_stats":null,"previous_names":["atty303/konaste-linux"],"tags_count":16,"template":false,"template_full_name":"atty303/repository-template","purl":"pkg:github/atty303/konaste-linux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atty303%2Fkonaste-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atty303%2Fkonaste-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atty303%2Fkonaste-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atty303%2Fkonaste-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atty303","download_url":"https://codeload.github.com/atty303/konaste-linux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atty303%2Fkonaste-linux/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267146035,"owners_count":24042657,"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","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"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":["gitadora","iidx","infinitas","konaste","sdvx","umu-launcher"],"created_at":"2025-07-26T09:39:09.818Z","updated_at":"2025-07-26T09:39:11.861Z","avatar_url":"https://github.com/atty303.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"140\" height=\"49\" alt=\"logo_header\" src=\"https://github.com/user-attachments/assets/d69237a7-152d-4d10-9b47-6cb96cefb324\" /\u003e\n\n# Running konaste games on Linux\n\n\u003e [!IMPORTANT]\n\u003e YOU MUST HAVE A LEGAL SUBSCRIPTION TO PLAY THESE GAMES. THIS TOOL DOES NOT\n\u003e ALTER ANY GAME FILES.\n\nThis is a simple, customizable helper tool for launching\n[コナステ (konaste)](https://p.eagate.573.jp/game/eacloud/re/video/video_top.html)\ngames on Linux. This tool aims to be “simple,” not “one‑click easy.” You’ll need\nto perform the required setup manually following the guide, but in return you\ngain the flexibility to customize the configuration to your liking and work with\nfuture dependencies updates.\n\nCurrently, it supports the following games:\n\n- [beatmania IIDX INFINTAS](https://p.eagate.573.jp/game/infinitas/2/index.html)\n- [SOUND VOLTEX EXCEED GEAR](https://p.eagate.573.jp/game/eacsdvx/vi/index.html)\n- [GITADORA](https://p.eagate.573.jp/game/eacgitadora/konagt/index.html)\n\n\u003e [!WARNING]\n\u003e I only regularly play INFINITAS, SDVX, and GITADORA. For other games, I’ve\n\u003e only verified that they launch.\n\nYou can also use [konaste-buddy](https://github.com/atty303/konaste-buddy) to\nautomate the login process.\n\n## How it works\n\nKonaste games authenticate your subscription in the browser, then launch the\ngame launcher via a custom URL scheme that includes an authorization token.\nSince the standalone executable won't run by itself, traditional launchers like\nLutris cannot be used. This tool automates the registration of URL schemes in\nLinux desktop environments and provides a command wrapper for launching games\nwith the necessary environment variables.\n\n## Prerequisites\n\n- Modern Linux distribution with a desktop environment\n  - Required: systemd-cat, desktop-file-install, xdg-open\n- [umu-launcher](https://github.com/Open-Wine-Components/umu-launcher) and it's\n  dependencies\n  - I recommend using Proton via umu‑launcher. Since Proton containerizes all\n    the dependencies that Wine requires, it can run reproducibly on any system.\n  - But you can also launch Wine directly if you prefer.\n- Recommended using\n  [atty303/proton-ge-custom](https://github.com/atty303/proton-ge-custom) to fix\n  audio delay issues\n- If ImageMagick is installed, use it to generate icons for the games.\n\nI’m using [Bazzite](https://bazzite.gg/), and the minimal setup in this guide\nworks out of the box without any extra system settings.\n\n## Installation\n\nDownload the latest release from the\n[GitHub releases page](https://github.com/atty303/konaste-linux/releases) and\ninstall it using the following command:\n\n```bash\ncp ~/Downloads/konaste-x86_64-unknown-linux-gnu ~/.local/bin/konaste\nchmod +x ~/.local/bin/konaste\n```\n\nor install it with [ubi](https://github.com/houseabsolute/ubi).\n\n```bash\nubi -p atty303/konaste-linux -e konaste -i ~/.local/bin\n```\n\n## Minimal steps to launch the games\n\nYou need to prepare the PulseAudio sink that configured sample rate to 44100Hz\nfor the game audio output. For example, you can use the following command to\ncreate a loopback sink temporarily:\n\n```bash\npw-loopback -m \"[ FL FR ]\" --capture-props='media.class=Audio/Sink node.name=konaste-sink node.description=Konaste audio.rate=44100'\n```\n\nTo persist the sink, you can configure PipeWire configuration.\n\n### beatmania IIDX INFINTAS\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand the steps\u003c/summary\u003e\n\n1. Run the following command to configure and create the wine prefix:\n\n```bash\nkonaste infinitas config --env.PROTONPATH=GE-Proton10-9 --env.PULSE_SINK=konaste-sink\nkonaste infinitas exec umu-run wineboot --init\n```\n\n2. Download the installer from the\n   [official website](https://p.eagate.573.jp/game/infinitas/2/download/index.html)\n   (you need to log in to your account).\n3. Run the following command to install it:\n\n```bash\nkonaste infinitas exec WINEDLLOVERRIDES=\"ieframe=d\" umu-run msiexec /i ~/Downloads/infinitas_installer_2022060800.msi\n```\n\n4. Run the following command to associate the URL scheme with the game:\n\n```bash\nkonaste infinitas associate\n```\n\n5. Run the following command to open the login page in your browser:\n\n```bash\nkonaste infinitas run\n```\n\n6. After logging in, click the `ゲーム起動` button to launch the game launcher.\n7. After the launcher is started, click the `UPDATE` button to update the game.\n8. After the update is complete, click the `SETTING` button and set audio output\n   to `WASAPI (共有モード)`(Shared Mode).\n\n\u003e [!WARNING]\n\u003e Wine does not support WASAPI Exclusive Mode on `winepulse.drv`(PulseAudio), so\n\u003e you must use Shared Mode.\n\n9. After the audio output is set, click the `ゲーム起動` button to launch the\n   game.\n\n\u003c/details\u003e\n\n### SOUND VOLTEX EXCEED GEAR\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand the steps\u003c/summary\u003e\n\n1. Run the following command to configure and create the wine prefix:\n\n```bash\nkonaste sdvx config --env.PROTONPATH=GE-Proton10-9 --env.PULSE_SINK=konaste-sink\nkonaste sdvx exec umu-run wineboot --init\n```\n\n2. Download the installer from the\n   [official website](https://p.eagate.573.jp/game/eacsdvx/vi/download/index.html)\n   (you need to log in to your account).\n\n3. Run the following command to install it:\n\n```bash\nkonaste sdvx exec WINEDLLOVERRIDES=\"ieframe=d\" umu-run msiexec /i ~/Downloads/sdvx_installer_2022011800.msi\n```\n\n4. Run the following command to associate the URL scheme with the game:\n\n```bash\nkonaste sdvx associate\n```\n\n5. Run the following command to open the login page in your browser:\n\n```bash\nkonaste sdvx run\n```\n\n\u003cimg width=\"502\" height=\"495\" alt=\"Screen Shot 2025-07-14 at 16 01 02\" src=\"https://github.com/user-attachments/assets/2eaab921-bb50-49bc-99c8-e1418125662e\" /\u003e\n\n\u003c/details\u003e\n\n### GITADORA\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand the steps\u003c/summary\u003e\n\n1. Run the following command to configure the wine prefix:\n\n```bash\nkonaste gitadora config --env.PROTONPATH=GE-Proton10-9 --env.PULSE_SINK=konaste-sink\nkonaste gitadora exec umu-run wineboot --init\n```\n\n2. Download the installer from the\n   [official website](https://p.eagate.573.jp/game/eacgitadora/konagt/download/installer.html)\n   (you need to log in to your account).\n3. Run the following command to install it:\n\n```bash\nkonaste gitadora exec WINEDLLOVERRIDES=\"ieframe=d\" umu-run msiexec /i ~/Downloads/GITADORA_installer.msi\n```\n\n4. Run the following command to associate the URL scheme with the game:\n\n```bash\nkonaste gitadora associate\n```\n\n5. Run the following command to open the login page in your browser:\n\n```bash\nkonaste gitadora run\n```\n\n4. After logging in, click the `ゲーム起動` button to launch the game.\n\n\u003c/details\u003e\n\n## Usage\n\nYou can explore the available commands by specifying the `--help` option.\n\n### `konaste ls`\n\nThis command lists the available games that can be managed by this tool.\n\nYou can add new games by creating a game definition file in the\n`~/.config/konaste/games.json` file. Format of the game definition file is as\n`defaultGames` in the [src/games.ts](src/games.ts).\n\n### `konaste \u003cgame\u003e config`\n\nThis command configures the environment for the specified game. If user\nconfiguration is not initialized, it will create with the default configuration.\n\n- `konaste infinitas config`: Shows the current configuration for the game.\n- `konaste infinitas config --env.NAME=\u003cvalue\u003e`: Sets the environment variable\n  `NAME` to `value`. Use this to set umu-launcher, Proton or Wine environment\n  variables.\n\n### `konaste \u003cgame\u003e profile`\n\nThis command manages the profiles for the specified game. Profiles are used to\nconfigure the command to run the game when launching from browser. Some default\ngame definitions have preconfigured profiles for running the game directly\nwithout launcher.\n\n- `konaste infinitas profile`: Lists the available profiles for the game.\n- `konaste infinitas profile --default`: Unsets the default profile. If no\n  profile is set as default, selection will be prompted when launching.\n- `konaste infinitas profile \u003cname\u003e --command \u003ccommand\u003e`: Creates or updates a\n  profile with the specified name and command.\n- `konaste infinitas profile \u003cname\u003e --delete`: Deletes the specified profile.\n- `konaste infinitas profile \u003cname\u003e --default`: Sets the specified profile as\n  the default profile.\n\n### `konaste \u003cgame\u003e associate`\n\nThis command registers the URL scheme for the specified game in the desktop\nenvironment. It allows you to launch the game from the browser.\n\n### `konaste \u003cgame\u003e exec \u003c...command\u003e`\n\nThis command executes the specified command with configured environment\nvariables.\n\n- `konaste infinitas exec umu-run winetricks \u003cverbs\u003e`: Runs Winetricks with the\n  specified verbs.\n- `konaste infinitas exec umu-run winecfg`: Opens the Wine configuration dialog.\n\n### `konaste \u003cgame\u003e run [url]`\n\nThis command opens the login URL in your default web browser if no URL is\nprovided.\n\nAnd this is executed by the URL scheme registered by the `associate` command. It\nwill execute the command specified in the selected profile.\n\n## Tweaks for better performance\n\n### Enable ntsync\n\n`ntsync` runs faster than the existing `esync` or `fsync` methods. It requires\nLinux kernel 6.14 or newer, and becomes available when `/dev/ntsync` exists.\n\nTo enable ntsync, run the following command:\n\n```bash\nkonaste infinitas config --env.PROTON_USE_NTSYNC=1\n```\n\n### Use gamescope\n\nTo run the game with [gamescope](https://github.com/ValveSoftware/gamescope),\nyou can use the following command to configure the profile:\n\n```bash\nkonaste infinitas profile gamescope --command \"gamescope -f -r 120 -w 1920 -h 1080 --mangoapp -- umu-run %r\\\\game\\\\app\\\\bm2dx.exe -t %t\" --default\n```\n\nTo revert this configuration when game update is required, you can run:\n\n```bash\nkonaste infinitas profile launcher --default\n```\n\n### Setup low latency audio with PipeWire\n\nUse [PipeWire](https://pipewire.org/) as the audio server for low latency audio\nwith flexible routing and maximum compatibility.\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand the setup steps\u003c/summary\u003e\n\nConfigure linux side audio settings for low latency audio:\n\n`~/.config/pipewire/pipewire.conf.d/90-low-latency.conf`:\n\n```\ncontext.properties = {\n  default.clock.rate = 48000\n\n  # If possible, switch the entire graph to 44.1 kHz to suppress resampling.\n  default.clock.allowed-rates = [ 44100, 48000 ]\n\n  # Reducing it lowers latency, but increases CPU load and makes the audio more prone to dropouts.\n  default.clock.quantum = 32\n  default.clock.min-quantum = 32\n  # Set it to twice the minimum.\n  default.clock.max-quantum = 64\n  default.clock.quantum-limit = 64\n}\n```\n\n`~/.config/pipewire/pipewire-pulse.conf.d/90-rt.conf`:\n\n```\ncontext.modules = [\n  {\n    name = libpipewire-module-rt\n    args = {\n      nice.level = -20\n      rt.prio = 99\n    }\n  }\n]\n```\n\nConfigure a dedicated virtual audio device for games:\n\n`~/.config/pipewire/pipewire.conf.d/90-infinitas.conf`:\n\n```\ncontext.modules = [\n  {\n    name = libpipewire-module-loopback\n    args = {\n      node.description = \"Konaste Loopback\"\n      audio.position = [ FL FR ]\n      capture.props = {\n        node.name = \"konaste-sink\"\n        media.class = \"Audio/Sink\"\n        node.description = \"Konaste Sink\"\n        device.description = \"Konaste Sink\"\n        device.class = \"sound\"\n        device.icon-name = \"audio-card\"\n        node.virtual = false\n        # IMPORTANT: Set the sample rate to 44100Hz for compatibility with Konaste games.\n        audio.rate = 44100\n        audio.channels = 2\n      }\n      playback.props = {\n        node.name = \"konaste-output\"\n        node.passive = true\n\n        # You can specify the target audio output device here or leave it as default.\n        # target.object = \"alsa_output.pci-0000_c4_00.6.analog-stereo\"\n      }\n    }\n  }\n]\n```\n\nApply the configuration by running:\n\n```bash\nsystemctl --user restart pipewire pipewire-pulse\n```\n\nConfigure the game side audio buffer size to reduce latency:\n\n```bash\nkonaste infinitas config --env.PULSE_LATENCY_MSEC=60\n```\n\nLowering the value will reduce latency, but may cause audio dropouts if your\nsystem cannot handle it.\n\n#### References\n\nSince I was new to Linux’s audio system, I referred to the following.\n\n- https://www.reddit.com/r/linux_gaming/comments/1gao420/low_latency_guide_for_linux_using_pipewire/\n- https://blog.thepoon.fr/osuLinuxAudioLatency/\n- https://www.benashby.com/resources/pipewire-setup-fundamentals/\n- https://forum.manjaro.org/t/howto-troubleshoot-crackling-in-pipewire/82442\n\n\u003c/details\u003e\n\n### Use ASIO in INFINITAS\n\nINFINITAS supports ASIO output as a hidden feature. On Windows, follow\n[the guide](https://iidx.org/infinitas_asio). You can enable it by adding the\n`--asio` option to `bm2dx.exe`. Wine can enable ASIO\nvia [wineasio](https://github.com/wineasio/wineasio), though I haven’t verified\nwhether this actually reduces latency.\n\n## Troubleshooting\n\n### Locale issues\n\nMaybe Koanste games expect the system to be configured for Japanese locale. If\nyou encounter issues, try setting the locale to Japanese may help.\n\n```bash\nkonaste infinitas config --env.LANG=ja_JP.UTF-8\n```\n\n### Launching the game fails\n\nAfter clicking the launch button, do not go back to the previous page. Doing so\nwill cause the game launch authorization to fail.\n\n### INIFNITAS failed to start with audio device error\n\nYou need to set the audio output to `WASAPI (共有モード)` (Shared Mode) in the\ngame settings.\n\n### INFIINITAS does not play sound\n\nYou need to provide audio output device that configured sample rate to 44100Hz.\n\n## Development\n\n1. Activate [mise](https://mise.jdx.dev/).\n2. Run `mise install` in the project root to install the dependencies.\n3. Run `hk install --mise` to install the git hooks for formatting and linting.\n\nTo install the tool from source, run the following command:\n\n```bash\ndeno install -A --global -n konaste --config ./deno.jsonc src/main.ts\n```\n\nIf you're not using the compiled binary, the tool cannot determine its own\nexecution path. You must specify the `--self-path` option when running the\n`associate` command.\n\n## Verified Configurations\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand the verified configurations\u003c/summary\u003e\n\n### All games\n\n- OS: Bazzite 42 Desktop Edition (KDE Plasma 6)\n- Browser: Firefox 140\n\n### beatmania IIDX INFINTAS\n\nAll game functionality has been tested on the following configurations:\n\n- Hardware: Minisforum UM790 Pro\n  - CPU: AMD Ryzen 9 7940HS (8C / 4.0 - 5.2 GHz)\n  - GPU: AMD Radeon 780M Integrated Graphics\n  - RAM: 64 GB\n- Audio: Sennheiser GSX1000 (7.1ch Virtual Surround)\n- Display:\n  - Primary: Hisense 43E7N 4K @120Hz via HDMI\n  - Secondary: Full HD Monitor @60Hz via USB-C\n- Controller: GAMO2 PHOENIXWAN+ LMT x2\n- Proton: GE-Proton10-9-wma\n\nAlthough I’m using displays with different refresh rates, there’s no problem\nrunning at 120 fps. CPU load is around 10% and GPU load is around 70% during\ngameplay and streaming with OBS Studio. There’s no noticeable difference\ncompared to running it on Windows 11 in a dual-boot setup.\n\n### SOUND VOLTEX EXCEED GEAR\n\nAll game functionality has been tested on the following configurations:\n\n- Hardware: Minisforum MS-A2\n  - CPU: AMD Ryzen 9 7945HX (16C / 2.5 - 5.4 GHz)\n  - GPU: AMD Radeon RX6400 (4GB)\n  - RAM: 32 GB\n- Audio: Creative Sound BlasterX G6 (7.1ch Virtual Surround)\n- Display:\n  - Primary: FHD @120Hz via HDMI\n  - Secondary: Full HD Monitor @60Hz via USB-C\n- Controller:\n  [SOUND VOLTEX CONSOLE -NEMSYS- Ultimate Model (2017)](https://www.konamistyle.jp/products/detail.php?product_id=110908)\n- Proton: GE-Proton10-9-wma\n\nThere’s no noticeable difference compared to running it on Windows 11 in a\ndual-boot setup.\n\n#### Alternative configuration for performance testing\n\n- Hardware: Minisforum UM790 Pro\n  - CPU: AMD Ryzen 9 7940HS (8C / 4.0 - 5.2 GHz)\n  - GPU: AMD Radeon 780M Integrated Graphics (UMA 6GB)\n  - RAM: 64 GB\n- Audio: Sennheiser GSX1000 (7.1ch Virtual Surround)\n- Display:\n  - Primary: Hisense 43E7N 4K @120Hz via HDMI\n  - Secondary: Full HD Monitor @60Hz via USB-C\n- Proton: GE-Proton10-9\n\nThe backgrounds in VIVID WAVE—like “NOT YOUR IDOL”—are extremely GPU-intensive,\ndriving GPU utilization up to around 95% and causing momentary drops to about\n100 fps. This happens on Windows 11 too, so it’s simply a limitation of the\nRadeon 780M.\n\n### GITADORA\n\nDrummania functionality has been tested on the following configurations:\n\n- Hardware: LENOVO ThinkCentre M715q\n  - CPU: AMD Ryzen 5 PRO 2400GE (4C / 3.2 - 3.8 GHz)\n  - GPU: AMD Radeon Vega 11 Integrated Graphics\n  - RAM: 8 GB\n- Audio: Onboard\n- MIDI Drums: Roland TD-1 (USB)\n- Proton: GE-Proton10-8\n\n\u003c/details\u003e\n\n## Game technical details\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand the game technical details that I'm observiing when developing this tool\u003c/summary\u003e\n\n### beatmania IIDX INFINTAS\n\n- Graphics API: Direct3D 9\n- Audio API: WASAPI (Shared Mode, Exclusive Mode), ASIO (Hidden feature)\n  - Requires 44100Hz sample rate\n  - Audio files are in WMAv2 format\n  - Media Foundation is used for decoding\n- Native resolution: 1920x1080\n- Maximum frame rate: 120 fps\n\n### SOUND VOLTEX EXCEED GEAR\n\n- Graphics API:\n- Audio API: WASAPI (Shared Mode, Exclusive Mode), ASIO, DirectSound\n  - Requires 44100Hz sample rate\n- Native resolution: 1920x1080\n- Maximum frame rate: 120 fps\n\n### GITADORA\n\n- Graphics API:\n  - Media Foundation for video decoding\n- Audio API: WASAPI (Shared Mode, Exclusive Mode)\n- Native resolution: 1920x1080\n- Maximum frame rate: 60 fps\n\n## References\n\n- [mizztgc/konaste-linux](https://github.com/mizztgc/konaste-linux) - Another\n  work for konaste games on Linux that uses bash scripts and doesn't use Proton.\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatty303%2Fkonaste-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatty303%2Fkonaste-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatty303%2Fkonaste-linux/lists"}