From 390cc4515379fbd8acdf9c977fbc0cabb8c5749e Mon Sep 17 00:00:00 2001
From: Alula <6276139+alula@users.noreply.github.com>
Date: Mon, 28 Feb 2022 18:53:18 +0100
Subject: [PATCH] updated readme [ci skip]
---
README.md | 186 +++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 156 insertions(+), 30 deletions(-)
diff --git a/README.md b/README.md
index 924dd87..7e1b4e5 100644
--- a/README.md
+++ b/README.md
@@ -1,54 +1,180 @@
# doukutsu-rs
-![Release](https://github.com/doukutsu-rs/doukutsu-rs/workflows/Release/badge.svg)
-
-[Download latest Nightly builds](https://github.com/doukutsu-rs/doukutsu-rs/actions) (Requires being logged in to GitHub)
-
-A fully playable re-implementation of Cave Story (Doukutsu Monogatari) engine written in [Rust](https://www.rust-lang.org/).
+A fully playable re-implementation of Cave Story (Doukutsu Monogatari) engine written
+in [Rust](https://www.rust-lang.org/).
[Join the Discord server](https://discord.gg/fbRsNNB)
+![https://ci.appveyor.com/api/projects/status/github/doukutsu-rs/doukutsu-rs](https://ci.appveyor.com/api/projects/status/github/doukutsu-rs/doukutsu-rs)
+
+- [Get stable/beta builds from GitHub Releases](https://github.com/doukutsu-rs/doukutsu-rs/releases) (executables only,
+ no data files bundled, see below for instructions)
+- [Get nightly builds from AppVeyor](https://ci.appveyor.com/project/alula/doukutsu-rs) (select platform -> Artifacts ->
+ download the .zip)
+
#### Data files
-This repository does not contain any copyrighted files.
+In order to work doukutsu-rs needs to be paired with supported data files. This repository does not contain any data
+files.
-For better user experience, AppVeyor builds are distributed with slightly modified freeware game files.
+doukutsu-rs works fine with pre-extracted freeware data from [this repository](https://github.com/doukutsu-rs/game-data)
+builds or [NXEngine(-evo)](https://github.com/nxengine/nxengine-evo) or from a supported copy
+of [Cave Story+](https://www.nicalis.com/games/cavestory+).
-*doukutsu-rs* should work fine with pre-extracted and tweaked data files from [this repository](https://github.com/doukutsu-rs/game-data), [NXEngine(-evo)](https://github.com/nxengine/nxengine-evo) extracted freeware data files and [Cave Story+](https://www.nicalis.com/games/cavestory+) data files.
-
-Vanilla Cave Story does not work yet because some important data files have been embedded inside the executable. and we don't have a loader/extractor implemented yet.
-
-##### Where to get them?
+#### Supported game editions and data file acquisition guides
**Freeware**
-- https://github.com/doukutsu-rs/game-data - Freeware game data distributed with CI builds, based on those two below.
-- https://github.com/nxengine/nxengine-evo/releases/download/v2.6.4/NXEngine-v2.6.4-Win32.zip - copy `NXEngine-evo-2.6.4-xxx/data` from the archive to runtime directory
+- 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
-**Cave Story+ (not fully supported)**
+Tools required:
+- Windows version of the game (1.0.0.6), original Japanese or with Aeon Genesis patch.
+- [Resource Hacker](http://www.angusj.com/resourcehacker/#download)
+- [Booster's Lab](https://www.cavestory.org/download/editors.php)
+
+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. That's all, you have everything to use it with doukutsu-rs now.
+
+
+- https://github.com/doukutsu-rs/game-data - Pre-extracted freeware game data, graphics converted to .png, already
+ distributed with AppVeyor builds for your convenience. (recommended)
+- https://github.com/nxengine/nxengine-evo/releases/download/v2.6.5-1/NXEngine-Evo-v2.6.5-1-Win64.zip -
+ copy `NXEngine-evo-2.6.5-1-xxx/data` from the archive to runtime directory
-- Original version (first released in 2011 on Steam)
- - PC release (Steam) - Copy `data` folder from installation directory ([guide for Steam](https://steamcommunity.com/sharedfiles/filedetails/?id=760447682)) to the runtime directory.
- - PC release (Epic Games Store) - Essentially the same thing as with Steam version.
- - PC release (Humble Bundle) - Essentially the same thing as with Steam version.
- - PC release (GOG) - Essentially the same thing as with Steam version.
-- Remastered version (first released in 2017 on Switch)
- - Switch release - (tested only with eShop version) Extract `data` directory from romfs. Requires a hacked console and a recent and legal copy of the game. If you don't know how, look in Google how to exactly do that because the methods really differ.
+**Cave Story+**
-#### Mandatory screenshots
+doukutsu-rs can be used as drop-in replacement for `CaveStory+.exe`. No modifications to game files are needed.
-**Freeware data files:**
+**Original version (first released in 2011 on Steam)** - expand for instructions
-![Japanese Freeware](https://i.imgur.com/eZ0V5rK.png)
+
+Steam release (Win/Mac/Linux)
-**Cave Story+ data files:**
+The `data` folder is in the same place across all platforms.
-![CS+ with enhanced graphics](https://i.imgur.com/YaPAs70.png)
+![image](https://user-images.githubusercontent.com/53099651/155904982-eb6032d8-7a4d-4af7-ae6f-b69041ecfaa4.png)
+
+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!
+
+
+
+
+Epic Games Store
+
+Check your default installation directory.
+
+![image](https://user-images.githubusercontent.com/53099651/155905035-0080eace-bd98-4cf5-9628-c98334ea768c.png)
+
+
+
+GOG
+
+Check your default installation directory.
+
+![image](https://user-images.githubusercontent.com/53099651/155906494-1e53f174-f12f-41be-ab53-8745cdf735b5.png)
+
+
+
+Humble Bundle
+
+We haven't tested it so no screenshots, but it very likely works. Feel free to PR screenshots to this guide.
+
+
+**Remastered version (first released in 2017 on Switch)**
+
+Note that this version is **incompatible** with saves from the original version.
+
+Intercharging the save files may result in spawning in wrong locations, softlocks, etc.
+
+
+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](https://github.com/DarkMatterCore/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](https://user-images.githubusercontent.com/53099651/155924461-c63afc93-a41f-4cfd-ac9f-8f021cebcb04.png)
+
+![Toroko Fight Freeware](https://user-images.githubusercontent.com/53099651/155924215-d492907a-ed0e-4323-bd46-61745b8fb32a.png)
+
+![No Lighting Freeware](https://user-images.githubusercontent.com/53099651/155923814-621cf29e-bb20-4680-a96d-f049aaef1f88.png)
+
+
+
+
+Original CS+
+
+![CS+ Sand Zone](https://user-images.githubusercontent.com/53099651/155923620-db230077-0df5-4de4-b086-be6b4dcbc6df.png)
+
+![CS+ Showoff Outer Wall](https://user-images.githubusercontent.com/53099651/155920013-3967cd03-8d69-4fc5-8f1d-fe659ff2e953.png)
+
+![CS+ Challenge](https://user-images.githubusercontent.com/53099651/155919381-7e8159a0-a7cf-461a-8be2-2ce864631299.png)
+
+
+
+
+Remastered CS+
+
+![Balcony Switch](https://user-images.githubusercontent.com/53099651/155918810-063c0f06-2d48-485f-8367-6337525deab7.png)
+
+![Dogs Switch](https://media.discordapp.net/attachments/745322954660905103/947895408196202617/unknown.png)
+
+![Almond Switch](https://media.discordapp.net/attachments/745322954660905103/947898268631826492/unknown.png)
+
+![Hell Switch](https://user-images.githubusercontent.com/53099651/155918602-62268274-c529-41c2-a87e-0c31e7874b94.png)
+
+
#### Credits
-- Studio Pixel/Nicalis for Cave Story
-- [@Daedily](https://twitter.com/Daedliy) - brand artwork (Icon / Banner / Server)
-- [ggez](https://github.com/ggez/ggez) - parts of it are used in `crate::framework`, notably the VFS code.
+- Studio Pixel/Nicalis for Cave Story
+- [@Daedily](https://twitter.com/Daedliy) - brand artwork (Icon / Banner / Server), screenshots for this guide.
+- [ggez](https://github.com/ggez/ggez) - parts of it are used in `crate::framework`, notably the VFS code.
- [Clownacy](https://github.com/Clownacy) - widescreen camera code.
- [LunarLambda for organism](https://gitdab.com/LunarLambda/organism) - used as basis for our Organya playback engine.