Go to file
Alula 6b6e43b7f9
Merge branch 'master' into feature/controller
2020-12-07 00:48:23 +01:00
.cargo Initial Android support and some ggez rewrite 2020-10-07 16:08:12 +02:00
.github/workflows remove arm64 build since linking opengl is kinda broken 2020-11-25 15:12:33 +01:00
src Merge branch 'master' into feature/controller 2020-12-07 00:48:23 +01:00
.appveyor.yml Let CI override version displayed in menu 2020-12-06 16:41:12 +01:00
.gitignore ignore Profile.dat files 2020-09-22 21:09:51 +02:00
Cargo.toml Merge branch 'master' into feature/controller 2020-12-06 16:43:17 +01:00
LICENSE initial commit 2020-08-18 18:46:07 +02:00
README.md Update README.md 2020-12-02 15:43:18 +01:00

README.md

doukutsu-rs

Release

Download latest Nightly builds (Requires being logged in to GitHub)

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

The project is still incomplete and not fully playable yet.

Join the Discord server

Data files

This repository does not contain any copyrighted files.

For better user experience, pre-built binaries are distributed with slightly modified freeware game files.

doukutsu-rs should work fine with CSE2-Enhanced or NXEngine(-evo) freeware data files and Cave Story+ 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?

Freeware

Cave Story+

  • PC release - (Tested only with Steam version, both Windows and Linux builds) Copy data folder from installation directory (guide for Steam) to the runtime directory.
  • 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.

Gameplay support roadmap

  • Checkmarked things = fully implemented

  • Unmarked things = partially or not implemented yet.

  • Rendering

    • Backdrops
    • Tilemap
    • Player and it's animations
    • Carets
    • Bullets
    • NPCs
    • Text
    • HUD
  • Text scripts (TSC)

    • Initial implementation
    • Full implementation of gameplay opcodes
    • Shift-JIS encoding support
    • Credits opcodes
  • Audio

    • Organya BGM playback
    • Text script bindings
    • CS+ style .ogg BGM playback
    • PixTone SFX
  • NPCs/entities

    • Initial implementation
    • Miscellaneous entities (~30% done)
    • Bosses (~20% done)
    • First Cave
    • Mimiga Village
    • Egg Corridor
    • Grasstown
    • Sand Zone (~10% done)
    • Labirynth (~10% done)
    • Outer Wall
    • Plantation
    • Last Cave
    • Balcony
    • Hell
    • Cave Story+ specific NPCs
      • Dashing Gaudis (361)
      • ??? (362)
  • Weapons

    • Leveling / XP system
    • Initial implementation
    • Snake
    • Polar Star
    • Fireball
    • Machine Gun
    • Missile Launcher
    • Bubbler
    • Blade
    • Super Missile Launcher
    • Nemesis
    • Spur
  • Saving and loading game state

  • Support for different game editions

    • Vanilla
    • Modified vanilla
    • Cave Story+
      • Base mod
      • Mod loading
      • Curly Story
      • Wind Fortress (~40%)
      • Boss Run
      • Seasonal graphics
      • Co-op gameplay (~70%)
      • Remastered soundtrack

(tbd)

Mandatory screenshots

Freeware data files:

Japanese Freeware

Cave Story+ data files:

CS+ with enhanced graphics

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) we could legally revese engineer those parts to achieve interoperability.

Credits

  • Studio Pixel/Nicalis for Cave Story
  • Cave Story Tribute Site - has lots of useful resources related to the game.
  • CSE2 - widescreen fixes, more readable reference for game logic, mutual help in various things.
  • LunarLambda for organism - which is being used by us as .org playback engine.