This branch adds several Quality-Of-Life improvements to the game's backend to make it easier to mod. If you're reading this and you're not a modder, this stuff probably doesn't interest you, since it changes nothing flashy about the game itself.
- Modular background support with
<BKG
and its sub-commands, which allow for the creation of dynamic backgrounds with offsets and animations. - NOXID-type layer support, (where NOXID is the first user to implement this type of layering system), allowing for multiple tile layers to be drawn on top of each other
- Animated tiles
- Desktop support for the glutin backend (primarily useful if the game needs to be resized without halting the program, which SDL doesn't do)
- Libxmp-lite support for tracker music
- Additional helper TSC commands (see the documentation page)
- Framework for bitmap and NPC rotation
To see how to use these features for modifying the game, please take a look at the the Documentation page.
Also, for more info for modding Cave Story in general, please see the Community Wiki page.
The rest of this readme is unchanged.
A fully playable re-implementation of the Cave Story (Doukutsu Monogatari) engine written in Rust.
-
Get nightly builds (recommended for now, has latest fixes and improvements)
Permalinks to latest builds from
master
branch:
Note
macOS note: If you get a "doukutsu-rs" can't be opened
message, right-click doukutsu-rs.app and click open.
Note
If you get issues with Epic Games Store version, scroll down for instructions.
In order to work doukutsu-rs needs to be paired with supported data files. This repository does not contain any data files.
doukutsu-rs works fine with freeware data files or NXEngine(-evo) or from a supported copy of Cave Story+.
How to set up data files on Android
If your phone has an app called "Files":
- Launch this app.
- Press ☰ on the top left corner.
- Tap on "doukutsu-rs game data".
- Copy your game data files to the opened folder.
If your phone does not have this app:
- Install the "Material Files" app from Hai Zhang and launch it(Google Play | F-Droid | Github Releases).
- Press ☰ on the top left corner.
- Press "+ Add storage".
- In the window that pops up, press "External storage".
- Press ☰ on the top left corner.
- Tap on "doukutsu-rs game data".
- Press the large blue button at the bottom labelled "USE THIS FOLDER".
- Then click on ☰ in the top left corner again and open.
- Tap on "files" above "+ Add storage".
- Copy your game data files to the opened folder.
Freeware
doukutsu-rs works out of the box when it's placed in the same directory as the original Doukutsu.exe executable. On the initial
startup, doukutsu-rs will automatically extract the additional resources that are embedded in the vanilla game into the data
directory. Until that is done, both doukutsu-rs and the vanilla executable have to exist in the directory.
Cave Story+
doukutsu-rs can be used as drop-in replacement for CaveStory+.exe
. No modifications to game files are needed.
Original version (first released in 2011 on Steam) - expand for instructions
Steam release (Win/Mac/Linux)
The data
folder is in the same place across all platforms.
If you want to use doukutsu-rs as a substitute for Mac version of Cave Story+ (which at moment of writing doesn't work on 10.15+ anymore), do the following:
- Find the doukutsu-rs executable:
- In AppVeyor builds, it's in
doukutsu-rs.app/Contents/MacOS/doukutsu-rs
- In your own builds, it's in
target/(release|debug)/doukutsu-rs
- In AppVeyor builds, it's in
- Open Steam Library, select
Cave Story+
, press theManage
button (gear icon) and selectProperties...
- Select
Local Files
and pressBrowse...
. - Open the
Cave Story+.app
bundle and navigate toContents/MacOS
directory. - Rename the
Cave Story+
executable to something else or delete it. - Copy the doukutsu-rs executable and rename it to
Cave Story+
. - Launch the game from Steam and enjoy!
Warning
EPIC GAMES STORE VERSION WARNING
Nicalis for some reason ships a stray opengl32.dll
DLL from Windows 7 with the Epic Games Store copies of Cave Story+.
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.
The fix is to simply delete opengl32.dll
, as it's not used anyway.
Humble Bundle
The archive from Humble Bundle contains the necessary data
folder, in the same folder as CaveStory+.exe
.
WiiWare
Remastered version (first released in 2017 on Switch)
Note
This version is incompatible with saves from the original version.
Interchanging the save files may result in spawning in wrong locations, softlocks, graphical glitches, or other issues.
Nintendo Switch
Extract the data
folder (contained in romfs
) from your console using tool such as nxdumptool.
Important notes:
- 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. - Ensure you're dumping the files with update included (
Use update/DLC
option), as 1.0 isn't supported.
Nintendo Switch homebrew port specific info
If you're running the homebrew port (drshorizon.nro) on your Switch, you can avoid the dumping step, doukutsu-rs will
automatically 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).
You can put your own data files in /switch/doukutsu-rs/data
directory on SD Card, which will be overlayed over RomFS if
you run it in setup described above.
Same controls as the default for freeware and Cave Story+ keyboard.
To change, use the control customization menu or edit doukutsu-rs\data\settings.json
within your user directory.
P1 | P2 | |
---|---|---|
Movement | ← ↑ ↓ → |
, L . / |
Jump | Z |
B |
Shoot | X |
N |
Cycle Weapon | A and S |
G and H |
Inventory / Skip cutscene | Q |
T |
Map | W |
Y |
Strafe | LShift |
RShift |
Alt + Enter
- Toggle FullscreenF2
(While paused) - Quick Restart
- Studio Pixel/Nicalis for Cave Story
- @Daedily - brand artwork (Icon / Banner / Server), screenshots for this guide.
- ggez - parts of it are used in
crate::framework
, notably the VFS code. - Clownacy - widescreen camera code.
- LunarLambda for organism - used as basis for our Organya playback engine.
- Zoroyoshi - k12x10 font we use as built-in font.