doukutsu-rs
A reimplementation of Cave Story's engine with many quality-of-life improvements
doukutsu-rs maintainers ✓ Verified
io.github.doukutsu_rs.doukutsu-rsdoukutsu-rs initially started as a Rust learning project, but eventually evolved into a complete and faithful reimplementation of the engine of Cave Story - a great indie game created by Studio Pixel.
It brings many quality-of-life improvements that let you enjoy the 2004 indie classic like a modern game: game logic decoupled from the frame rate with motion interpolation for high refresh rate displays, a flexible non-fixed resolution, switchable 50/60 tps game speeds, multiplayer support, cutscene skipping, and enhanced lighting effects beyond those of the Switch version.
A single executable supports game data from multiple versions: the original freeware release, Cave Story+, and the Nintendo Switch port.
NOTE: The default data files directory is under $XDG_DATA_HOME/doukutsu-rs/data. That being $HOME/.var/app/io.github.doukutsu_rs.doukutsu-rs/data/doukutsu-rs/data by default.
Screenshots
Observed history
| App | Change | Version | When ↓ |
|---|
No observed changes yet.
The initial import establishes a baseline. Future version changes will appear here.
Browse the app catalogue →Upstream releases
Release notes supplied by the developer. These dates are not Flathub package publication times.
1.0.03 Jun 2026
The engine has had full feature parity since 0.99.0-beta4, and ever since we have only been squashing bugs and perfecting game accuracy. It is stable and complete, so we are retiring the beta label and switching to standard semantic versioning, starting with 1.0.0.
- Rewrite the Android port on SDL2, adding gamepad support, co-op and a CMake-based build
- Enable native Wayland support on Linux
- Add CLI arguments to set the initial window size and fullscreen state
- Always use a hi-res logo on the title screen for CS+ data
- Add a drop-in animation when acquiring an item
- Add support for translations of different data types
- Implement declicking between measures in Organya playback
- Fix music fading out too quickly and stop noise on the <ESC opcode
- Fix CS+ soundtracks not loading
- Fix software rendering on SDL2
- Prevent the app icon from being changed on macOS
- Fix the Discord activity getting stuck
Also have been fixed many inaccuracies of bosses and NPCs.
0.102.0-beta78 Mar 2025
- Introduce new app icon
0.101.0-beta631 Dec 2024
- Fix damage and expirience number popup inaccuracies
- Add window icons for non-Windows systems
- Fix Organya sampling bug
- Fix Misery bubble going the wrong way
- Fix Player gun desync bug and inventory inconsistencies
- Add automatic cutscene skipping
- Localize difficulty name in save menu and add support for custom text encoding
- Fix button mapping icons for Nintendo controllers
- Fix Pixel Birthday easter egg
- Fix extraction of game data from vanilla executable, when the data is already extracted
- Generate the correct amount of smoke on tile change
Also have been fixed many inaccuracies of bosses and NPCs.
0.100.0-beta525 Jan 2023
- Add gamepad support for PC
- Add data extractor from the freeware executable
- Add coop menu
- Add screen shake intensity and pause on focus loss settings, add links menu
- Render "=" in dialogs as white circle
Some rendering issues and inaccuracies have also been fixed.



