{"id":13505202,"url":"https://github.com/doukutsu-rs/doukutsu-rs","last_synced_at":"2025-05-14T20:04:10.481Z","repository":{"id":37042089,"uuid":"288316523","full_name":"doukutsu-rs/doukutsu-rs","owner":"doukutsu-rs","description":"A faithful and open-source remake of Cave Story's engine written in Rust","archived":false,"fork":false,"pushed_at":"2025-04-09T13:06:37.000Z","size":10039,"stargazers_count":1045,"open_issues_count":63,"forks_count":64,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-13T15:09:21.449Z","etag":null,"topics":["cave-story","cavestory","doukutsu-monogatari","hacktoberfest","hacktoberfest2022","metroidvania","rust","rust-lang","studio-pixel"],"latest_commit_sha":null,"homepage":"https://doukutsu.rs","language":"Rust","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/doukutsu-rs.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":"2020-08-18T00:34:07.000Z","updated_at":"2025-04-12T08:12:21.000Z","dependencies_parsed_at":"2023-09-28T07:52:09.844Z","dependency_job_id":"cc83f096-6123-41a0-829b-9b2caca7bba7","html_url":"https://github.com/doukutsu-rs/doukutsu-rs","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doukutsu-rs%2Fdoukutsu-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doukutsu-rs%2Fdoukutsu-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doukutsu-rs%2Fdoukutsu-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doukutsu-rs%2Fdoukutsu-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doukutsu-rs","download_url":"https://codeload.github.com/doukutsu-rs/doukutsu-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248732486,"owners_count":21152852,"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":["cave-story","cavestory","doukutsu-monogatari","hacktoberfest","hacktoberfest2022","metroidvania","rust","rust-lang","studio-pixel"],"created_at":"2024-08-01T00:00:59.911Z","updated_at":"2025-04-13T15:09:42.076Z","avatar_url":"https://github.com/doukutsu-rs.png","language":"Rust","funding_links":[],"categories":["Legend","Rust","Applications","应用程序 Applications","Uncategorized",":video_game: Games"],"sub_categories":["Cave Story","Games","游戏 Games","Uncategorized","Mini Games"],"readme":"![doukutsu-rs](./res/sue_crab_banner_github.png)\n\nA fully playable re-implementation of the Cave Story (Doukutsu Monogatari) engine written\nin [Rust](https://www.rust-lang.org/).\n\n[Join the Discord server](https://discord.gg/fbRsNNB)\n\n[![CI](https://github.com/doukutsu-rs/doukutsu-rs/actions/workflows/ci.yml/badge.svg?branch=master)](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master?preview)\n\n- Get stable/beta builds from\n  - [get.doukutsu.rs](https://get.doukutsu.rs)\n  - [GitHub Releases](https://github.com/doukutsu-rs/doukutsu-rs/releases)\n  - [Flatpak](https://flathub.org/apps/io.github.doukutsu_rs.doukutsu-rs) (Linux only)\n\n- [Get nightly builds](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master?preview) (recommended for now, has latest fixes and improvements)\n\n  Permalinks to latest builds from `master` branch:\n\n  - [Windows (64-bit)](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master/doukutsu-rs_windows-x64.zip)\n  - [Windows (32-bit)](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master/doukutsu-rs_windows-x32.zip)\n  - [macOS (Intel, 64-bit, 10.14+)](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master/doukutsu-rs_mac-x64.zip)\n  - [macOS (Apple M1, 11.0+)](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master/doukutsu-rs_mac-arm64.zip)\n  - [Linux (64-bit)](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master/doukutsu-rs_linux-x64.zip)\n  - [Android (armv7/arm64/x86)](https://nightly.link/doukutsu-rs/doukutsu-rs/workflows/ci/master/doukutsu-rs_android.zip)\n\n\u003e [!NOTE]\n\u003e macOS note: If you get a `\"doukutsu-rs\" can't be opened` message, right-click doukutsu-rs.app and click open.\n\n\u003e [!NOTE]\n\u003e If you get issues with Epic Games Store version, scroll down for instructions.\n\n#### Data files\n\nIn order to work doukutsu-rs needs to be paired with supported data files. This repository does not contain any data\nfiles.\n\ndoukutsu-rs works fine with freeware data files or [NXEngine(-evo)](https://github.com/nxengine/nxengine-evo) or from a\nsupported copy of [Cave Story+](https://www.nicalis.com/games/cavestory+).\n\n\u003cdetails\u003e\n  \u003csummary\u003eHow to set up data files on Android\u003c/summary\u003e\n  \n  If your phone has an app called **\"Files\"**:\n\n  1. Launch this app.\n  2. Press **☰** on the top left corner.\n  3. Tap on **\"doukutsu-rs game data\"**.\n  4. Copy your game data files to the opened folder.\n\n\n  If your phone does not have this app:\n  \n  1. Install the **\"Material Files\"** app from *Hai Zhang* and launch it([Google Play](https://play.google.com/store/apps/details?id=me.zhanghai.android.files) | [F-Droid](https://f-droid.org/en/packages/me.zhanghai.android.files/) | [Github Releases](https://github.com/zhanghai/MaterialFiles/releases)).\n  2. Press **☰** on the top left corner.\n  3. Press **\"+ Add storage\"**.\n  4. In the window that pops up, press **\"External storage\"**.\n  5. Press **☰** on the top left corner.\n  6. Tap on **\"doukutsu-rs game data\"**.\n  7. Press the large blue button at the bottom labelled **\"USE THIS FOLDER\"**.\n  8. Then click on **☰** in the top left corner again and open.\n  9. Tap on **\"files\"** above **\"+ Add storage\"**.\n  10. Copy your game data files to the opened folder.\n\u003c/details\u003e\n\n#### Supported game editions and data file acquisition guides\n\n**Freeware**\n\ndoukutsu-rs works out of the box when it's placed in the same directory as the original Doukutsu.exe executable. On the initial\nstartup, doukutsu-rs will automatically extract the additional resources that are embedded in the vanilla game into the `data`\ndirectory. Until that is done, both doukutsu-rs and the vanilla executable have to exist in the directory.\n\n\u003cdetails\u003e\n\u003csummary\u003eExample root directory\u003c/summary\u003e\n\n![example root directory with doukutsu-rs and vanilla Cave Story](https://i.imgur.com/3dJ7WMB.png)\n\n\u003c/details\u003e\n\n**Cave Story+**\n\ndoukutsu-rs can be used as drop-in replacement for `CaveStory+.exe`. No modifications to game files are needed.\n\n**Original version (first released in 2011 on Steam)** - expand for instructions\n\n\u003cdetails\u003e\n\u003csummary\u003eSteam release (Win/Mac/Linux)\u003c/summary\u003e\n\nThe `data` folder is in the same place across all platforms.\n\nIf you want to use doukutsu-rs as a substitute for Mac version of Cave Story+ (which at moment of writing doesn't work\non 10.15+ anymore), do the following:\n\n1. Find the doukutsu-rs executable:\n   - In AppVeyor builds, it's in `doukutsu-rs.app/Contents/MacOS/doukutsu-rs`\n   - In your own builds, it's in `target/(release|debug)/doukutsu-rs`\n2. Open Steam Library, select `Cave Story+`, press the `Manage` button (gear icon) and select `Properties...`\n3. Select `Local Files` and press `Browse...`.\n4. Open the `Cave Story+.app` bundle and navigate to `Contents/MacOS` directory.\n5. Rename the `Cave Story+` executable to something else or delete it.\n6. Copy the doukutsu-rs executable and rename it to `Cave Story+`.\n7. Launch the game from Steam and enjoy!\n\n![image](https://user-images.githubusercontent.com/53099651/155904982-eb6032d8-7a4d-4af7-ae6f-b69041ecfaa4.png)\n\n\u003c/details\u003e\n\n\u003e  [!WARNING]\n\u003e **EPIC GAMES STORE VERSION WARNING**\n\u003e \n\u003e Nicalis for some reason ships a stray `opengl32.dll` DLL from Windows 7 with the Epic Games Store copies of Cave Story+.\n\u003e \n\u003e However as the game is 32-bit and the dll is 64-bit it has no effect on the original version, but as it's a core Windows DLL and doukutsu-rs ships 64-bit builds and uses OpenGL, it's makes the game crash on startup.\n\u003e \n\u003e The fix is to simply delete `opengl32.dll`, as it's not used anyway.\n\n\u003cdetails\u003e\n\u003csummary\u003eEpic Games Store\u003c/summary\u003e\n\nCheck your default installation directory.\n\n![image](https://user-images.githubusercontent.com/53099651/155905035-0080eace-bd98-4cf5-9628-c98334ea768c.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGOG\u003c/summary\u003e\n\nCheck your default installation directory.\n\n![image](https://user-images.githubusercontent.com/53099651/155906494-1e53f174-f12f-41be-ab53-8745cdf735b5.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHumble Bundle\u003c/summary\u003e\n\nThe archive from Humble Bundle contains the necessary `data` folder, in the same folder as `CaveStory+.exe`.\n\n![image](https://user-images.githubusercontent.com/96957561/156861929-7fa03951-442b-4277-b673-474189411103.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWiiWare\u003c/summary\u003e\n\n1. [Dump Your WiiWare `.wad`](https://wii.guide/dump-wads.html)\n2. [Extract and decompress the `data` folder](https://docs.google.com/document/d/1hDNDgNl0cUDlFOQ_BUOq3QCGb7S0xfUxRoob-hfM-DY)\n   Example of a [valid uncompressed `data` folder](https://user-images.githubusercontent.com/53099651/159585593-43fead24-b041-48f4-8332-be50d712310d.png)\n\n\u003c/details\u003e\n\n**Remastered version (first released in 2017 on Switch)**\n\n\u003e [!NOTE]\n\u003e This version is **incompatible** with saves from the original version.\n\u003e\n\u003e Interchanging the save files may result in spawning in wrong locations, softlocks, graphical glitches, or other issues.\n\n\u003cdetails\u003e\n\u003csummary\u003eNintendo Switch\u003c/summary\u003e\n\nExtract the `data` folder (contained in `romfs`) from your console using tool such as [nxdumptool](https://github.com/DarkMatterCore/nxdumptool).\n\n**Important notes:**\n\n- doukutsu-rs doesn't rely on the original ROM or executable, you just need the data files, go to `RomFS options` menu to just extract the files to SD card so you don't need to do any extra steps.\n- Ensure you're dumping the files **with update included** (`Use update/DLC` option), as 1.0 isn't supported.\n\n**Nintendo Switch homebrew port specific info**\n\nIf you're running the homebrew port (drshorizon.nro) on your Switch, you can avoid the dumping step, doukutsu-rs will\nautomatically detect and mount the data files if you run it over Cave Story+ in Title Override mode (hold `R` while starting CS+ and launch d-rs from hbmenu).\n\nYou can put your own data files in `/switch/doukutsu-rs/data` directory on SD Card, which will be overlayed over RomFS if\nyou run it in setup described above.\n\n\u003c/details\u003e\n\n#### Controls\n\nSame controls as the default for freeware and Cave Story+ keyboard.\n\nTo change, use the control customization menu or edit `doukutsu-rs\\data\\settings.json` within your user directory.\n\n|                           | P1        | P2        |\n| ------------------------- | --------- | --------- |\n| Movement                  | `← ↑ ↓ →` | `, L . /` |\n| Jump                      | `Z`       | `B`       |\n| Shoot                     | `X`       | `N`       |\n| Cycle Weapon              | `A and S` | `G and H` |\n| Inventory / Skip cutscene | `Q`       | `T`       |\n| Map                       | `W`       | `Y`       |\n| Strafe                    | `LShift`  | `RShift`  |\n\n- `Alt + Enter` - Toggle Fullscreen\n- `F2` (While paused) - Quick Restart\n\n#### Screenshots\n\n\u003cdetails\u003e\n\u003csummary\u003eFreeware\u003c/summary\u003e\n\n![JP Freeware 2](https://user-images.githubusercontent.com/53099651/155924461-c63afc93-a41f-4cfd-ac9f-8f021cebcb04.png)\n\n![Toroko Fight Freeware](https://user-images.githubusercontent.com/53099651/155924215-d492907a-ed0e-4323-bd46-61745b8fb32a.png)\n\n![No Lighting Freeware](https://user-images.githubusercontent.com/53099651/155923814-621cf29e-bb20-4680-a96d-f049aaef1f88.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eOriginal CS+\u003c/summary\u003e\n\n![CS+ Sand Zone](https://user-images.githubusercontent.com/53099651/155923620-db230077-0df5-4de4-b086-be6b4dcbc6df.png)\n\n![CS+ Showoff Outer Wall](https://user-images.githubusercontent.com/53099651/155920013-3967cd03-8d69-4fc5-8f1d-fe659ff2e953.png)\n\n![CS+ Challenge](https://user-images.githubusercontent.com/53099651/155919381-7e8159a0-a7cf-461a-8be2-2ce864631299.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eRemastered CS+\u003c/summary\u003e\n\n![Balcony Switch](https://user-images.githubusercontent.com/53099651/155918810-063c0f06-2d48-485f-8367-6337525deab7.png)\n\n![Dogs Switch](https://github.com/doukutsu-rs/doukutsu-rs/assets/6276139/30ba01ae-375d-4488-98c4-98e3e8c7f187)\n\n![Almond Switch](https://github.com/doukutsu-rs/doukutsu-rs/assets/6276139/42d4b6a3-4fc5-4aaf-9535-462c4c484dc7)\n\n![Hell Switch](https://user-images.githubusercontent.com/53099651/155918602-62268274-c529-41c2-a87e-0c31e7874b94.png)\n\n\u003c/details\u003e\n\n#### Credits\n\n- Studio Pixel/Nicalis for Cave Story\n- [AppleHair](https://github.com/AppleHair) - icon redesign for all platforms(`crabsue-icon`).\n- [@Daedily](https://twitter.com/Daedliy) - brand artwork (Icon / Banner / Server), screenshots for this guide.\n- [ggez](https://github.com/ggez/ggez) - parts of it are used in `crate::framework`, notably the VFS code.\n- [Clownacy](https://github.com/Clownacy) - widescreen camera code.\n- [LunarLambda for organism](https://github.com/doukutsu-rs/organism) - used as basis for our Organya playback engine.\n- [Zoroyoshi](http://z.apps.atjp.jp/k12x10/) - k12x10 font we use as built-in font.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoukutsu-rs%2Fdoukutsu-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoukutsu-rs%2Fdoukutsu-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoukutsu-rs%2Fdoukutsu-rs/lists"}