2020-08-18 16:46:07 +00:00
# doukutsu-rs
2020-09-23 19:44:10 +00:00
![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)
2020-10-30 02:03:41 +00:00
A re-implementation of Cave Story (Doukutsu Monogatari) engine written in [Rust ](https://www.rust-lang.org/ ).
2020-09-25 22:28:37 +00:00
2020-11-14 01:24:32 +00:00
**The project is still incomplete and not fully playable yet.**
2020-08-18 16:46:07 +00:00
2020-08-19 00:55:21 +00:00
[Join the Discord server ](https://discord.gg/fbRsNNB )
2020-08-18 16:52:28 +00:00
2020-08-18 16:46:07 +00:00
#### Data files
2020-10-30 02:03:41 +00:00
This repository does not contain any copyrighted files.
2020-11-14 01:24:32 +00:00
For better user experience, pre-built binaries are distributed with slightly modified freeware game files.
2020-08-18 16:46:07 +00:00
2020-11-14 01:24:32 +00:00
*doukutsu-rs* should work fine with [CSE2-Enhanced ](https://github.com/Clownacy/CSE2 ) or [NXEngine(-evo) ](https://github.com/nxengine/nxengine-evo ) freeware data files and [Cave Story+ ](https://www.nicalis.com/games/cavestory+ ) data files.
2020-08-18 16:46:07 +00:00
2020-10-30 02:03:41 +00:00
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.
2020-08-28 20:16:27 +00:00
##### Where to get them?
**Freeware**
2020-09-22 20:21:04 +00:00
- https://github.com/doukutsu-rs/game-data - Freeware game data distributed with CI builds, based on those two below.
2020-08-28 20:16:27 +00:00
- https://github.com/Clownacy/CSE2/archive/enhanced.zip - copy `game_english/data` from archive to the runtime directory (place you run the executable from, usually project root)
- 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
**Cave Story+**
2020-11-14 01:24:32 +00:00
- PC release - (Tested only with Steam version, both Windows and Linux builds) Copy `data` folder from installation directory ([guide for Steam](https://steamcommunity.com/sharedfiles/filedetails/?id=760447682)) to the runtime directory.
2020-11-01 19:58:33 +00:00
- Switch release - **Not supported or actively tested.** Some of release-specific opcodes have been implemented (no code
decompilation was involved, just pure data file analysis), so you should be able to play it without any major issues.
Because methods used to extract game data from cartridge vary, you have to find that out on your own.
2020-08-28 20:16:27 +00:00
2020-11-14 01:24:32 +00:00
#### Gameplay support roadmap
2020-08-18 16:46:07 +00:00
2020-10-27 01:05:49 +00:00
- [x] Checkmarked things = fully implemented
- [ ] Unmarked things = partially or not implemented yet.
2020-09-18 09:22:51 +00:00
- [x] Rendering
2020-08-27 05:10:54 +00:00
- [x] Backdrops
- [x] Tilemap
- [x] Player and it's animations
- [x] Carets
2020-09-18 09:22:51 +00:00
- [x] Bullets
2020-09-04 23:47:17 +00:00
- [x] NPCs
2020-08-29 07:44:44 +00:00
- [x] Text
2020-09-18 09:22:51 +00:00
- [x] HUD
2020-08-18 16:46:07 +00:00
- [ ] Text scripts (TSC)
2020-08-27 05:10:54 +00:00
- [x] Initial implementation
2020-11-14 01:24:32 +00:00
- [x] Full implementation of gameplay opcodes
2020-09-18 09:22:51 +00:00
- [x] Shift-JIS encoding support
2020-11-14 01:24:32 +00:00
- [ ] Credits opcodes
2020-09-03 12:28:34 +00:00
- [ ] Audio
- [x] Organya BGM playback
- [x] Text script bindings
- [ ] CS+ style .ogg BGM playback
2020-09-18 09:22:51 +00:00
- [x] PixTone SFX
2020-08-27 05:10:54 +00:00
- [ ] NPCs/entities
2020-09-04 23:47:17 +00:00
- [x] Initial implementation
2020-10-27 01:05:49 +00:00
- [ ] Miscellaneous entities (~30% done)
2020-11-14 01:24:32 +00:00
- [ ] Bosses (~20% done)
2020-09-10 11:38:17 +00:00
- [x] First Cave
2020-10-27 01:05:49 +00:00
- [x] Mimiga Village
2020-11-01 19:58:33 +00:00
- [x] Egg Corridor
2020-11-14 01:24:32 +00:00
- [ ] Grasstown (~90% done)
2020-10-27 01:05:49 +00:00
- [ ] Sand Zone (~10% done)
- [ ] Labirynth (~10% done)
2020-10-04 18:37:12 +00:00
- [ ] Outer Wall
- [ ] Plantation
- [ ] Last Cave
- [ ] Balcony
- [ ] Hell
2020-10-30 02:03:41 +00:00
- [ ] Cave Story+ specific NPCs
2020-11-14 01:24:32 +00:00
- [x] Dashing Gaudis (361)
2020-10-04 18:37:12 +00:00
- [ ] ??? (362)
2020-08-27 05:10:54 +00:00
- [ ] Weapons
2020-10-27 01:20:10 +00:00
- [x] Leveling / XP system
2020-09-12 00:46:13 +00:00
- [x] Initial implementation
2020-10-04 18:37:12 +00:00
- [x] Snake
2020-09-12 00:46:13 +00:00
- [x] Polar Star
2020-10-04 18:37:12 +00:00
- [x] Fireball
2020-09-12 00:46:13 +00:00
- [ ] Machine Gun
- [ ] Missile Launcher
- [ ] Bubbler
- [ ] Blade
- [ ] Super Missile Launcher
- [ ] Nemesis
- [ ] Spur
2020-10-30 02:03:41 +00:00
- [x] Saving and loading game state
2020-11-01 19:58:33 +00:00
- [ ] Support for different game editions
2020-10-30 02:03:41 +00:00
- [ ] Vanilla
- [x] Modified vanilla
- [ ] Cave Story+
- [x] Base mod
- [ ] Mod loading
- [ ] Curly Story
2020-11-14 01:24:32 +00:00
- [ ] Wind Fortress (~40%)
2020-10-30 02:03:41 +00:00
- [ ] Boss Run
2020-11-14 01:24:32 +00:00
- [x] Seasonal graphics
2020-10-30 02:03:41 +00:00
- [ ] Remastered soundtrack
2020-08-27 05:10:54 +00:00
*(tbd)*
2020-08-18 16:46:07 +00:00
2020-08-26 01:25:52 +00:00
#### Mandatory screenshots
2020-08-26 01:21:46 +00:00
2020-08-26 01:25:52 +00:00
**Freeware data files:**
2020-10-30 02:03:41 +00:00
![Japanese Freeware ](https://i.imgur.com/eZ0V5rK.png )
2020-08-26 01:25:52 +00:00
**Cave Story+ data files:**
2020-10-30 02:03:41 +00:00
![CS+ with enhanced graphics ](https://i.imgur.com/YaPAs70.png )
2020-08-26 01:21:46 +00:00
2020-11-14 01:24:32 +00:00
#### Legal note
This project includes reverse engineered implementations of NPC and game physics algorithms, derived from freeware Cave Story and PC Cave Story+ executables.
Since the game's (non-existent, even for CS+) EULA does not prohibit reverse engineering,
[according to Secion 103(f) ](https://www.law.cornell.edu/uscode/text/17/1201 ) we could legally revese engineer those parts
to achieve interoperability.
2020-08-18 16:46:07 +00:00
#### Credits
2020-11-14 01:24:32 +00:00
- Studio Pixel/Nicalis for Cave Story
- [Cave Story Tribute Site ](https://cavestory.org ) - has lots of useful resources related to the game.
- [CSE2 ](https://github.com/Clownacy/CSE2 ) - widescreen fixes, more readable reference for game logic, mutual help in various things.
2020-09-10 11:44:46 +00:00
- [LunarLambda for organism ](https://gitdab.com/LunarLambda/organism ) - which is being used by us as `.org` playback engine.