1
0
Fork 0
mirror of https://github.com/doukutsu-rs/doukutsu-rs synced 2024-11-25 15:03:34 +00:00
Go to file
2022-03-27 00:31:10 -04:00
.cargo Initial Android support and some ggez rewrite 2020-10-07 16:08:12 +02:00
app New Android app icon by Daedliy 2022-02-15 17:22:07 -05:00
drsandroid fix android build 2022-01-16 02:57:12 +01:00
misc/json-schemas Add schema for texture_sizes.json [ci skip] 2022-03-12 12:38:58 -05:00
res add sue banner [ci skip] 2022-03-23 02:37:02 +01:00
src NPCs trigger plash effect with dynamic water (fixes #102) 2022-03-27 00:31:10 -04:00
.appveyor.yml update mac build 2022-03-22 13:18:53 -04:00
.gitignore macOS tweaks / CI builds 2021-08-13 03:46:41 +02:00
build.rs Update Sue 2022-03-22 13:49:25 -04:00
Cargo.toml switch to winres crate 2022-03-22 05:26:38 +01:00
LICENSE Relicense under modified MIT (#70) 2022-02-28 09:00:18 +01:00
README.md Update README.md 2022-03-23 02:36:46 +01:00
rustfmt.toml ogg playback and persistent settings 2021-02-12 11:05:28 +01:00

doukutsu-rs

A fully playable re-implementation of Cave Story (Doukutsu Monogatari) engine written in Rust.

Join the Discord server

https://ci.appveyor.com/api/projects/status/github/doukutsu-rs/doukutsu-rs

Data files

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 pre-extracted freeware data from this repository builds or NXEngine(-evo) or from a supported copy of Cave Story+.

Supported game editions and data file acquisition guides

Freeware

  • Vanilla freeware can't be just used without additional work, because some important data files are embedded inside the executable. An automatic extractor might be available in future.
Manual extraction guide

Tools required:

  1. Open Doukutsu.exe in Resource Hacker.
  2. Click on ORG group, select Action -> Save [ORG] group to an .RC file.
  3. Navigate to data folder and create a folder named Org and save the .RC file there.
  4. Click on BITMAP group, select Action -> Save [BITMAP] group to an .RC file.
  5. Save them in data folder (NOT in Org folder).
  6. Go to file explorer and navigate to data folder.
  7. Delete Bitmap.rc
  8. Go to Org folder.
  9. Delete Org.rc
  10. Rename extension of all files from .bin to .org - you won't have music if you don't do that!
  11. Close Resource Hacker.
  12. Open Booster's Lab
  13. Load Doukutsu.exe in Booster's Lab - you can ignore the fact it tries to apply any patches or renames .pbm to .bmp, d-rs doesn't care.
  14. Select File -> Export mapdata -> stage.tbl
  15. Close Booster's Lab, saving isn't necessary.
  16. Optionally delete leftover files and folders - .boostlab, ScriptSource, tsc_def.txt
  17. That's all, you have everything to use it with doukutsu-rs now.

If you followed the above steps, the directory structure should look like this:

data/:

files in /data/

data/Org: files in /data/Org/

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:

  1. 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
  2. Open Steam Library, select Cave Story+, press the Manage button (gear icon) and select Properties...
  3. Select Local Files and press Browse....
  4. Open the Cave Story+.app bundle and navigate to Contents/MacOS directory.
  5. Rename the Cave Story+ executable to something else or delete it.
  6. Copy the doukutsu-rs executable and rename it to Cave Story+.
  7. Launch the game from Steam and enjoy!

image

Epic Games Store

Check your default installation directory.

image

GOG

Check your default installation directory.

image

Humble Bundle

The archive from Humble Bundle contains the necessary data folder, in the same folder as CaveStory+.exe.

image

WiiWare

Tools required:

get name FILENAME
get zsize asize
comtype lz77wii
clog name 0 zsize zsize
  1. Run ShowMiiWads and open the folder containing your .wad.
  2. Right click the .wad and hit Extract > To Folder and choose an output folder.
  3. Now go to Tools > Unpack u8 Archive, find your and select 00000002.app and choose an output folder.
  4. Run QuickBMS with the following command, changing each path to where script.bms and .app output are located
quickbms.exe -D script_path\script.bms input_path\00000002_app_OUT\data output_path\data
  1. Verify output_path\data folder contains valid Cave Story assets

Remastered version (first released in 2017 on Switch)

Note that 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

(Only 1.2+ has been tested, earlier versions may not work properly due to lack of 2P/Original Graphics support.)

Your interest is only in data directory placed in romfs.

Requires a hackable/modchipped console. If you got your Switch early, it's likely that it's hackable so give it a shot - just be very careful to not get your console banned. There's tons of guides you can easily find online so we won't cover it there.

You can dump the ROM (or just dump the romfs directly but it's just a bit slow so we recommend doing it on PC instead) using nxdumptool.

Once you got the keys and ROM dumped you can use the romfs extraction feature in Ryujinx or yuzu emulators to grab the data files.

Screenshots

Freeware

JP Freeware 2

Toroko Fight Freeware

No Lighting Freeware

Original CS+

CS+ Sand Zone

CS+ Showoff Outer Wall

CS+ Challenge

Remastered CS+

Balcony Switch

Dogs Switch

Almond Switch

Hell Switch

Credits

  • 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.