diff --git a/docs/development/licenses.md b/docs/development/licenses.md
index 3539fca591..5cf41f47e9 100644
--- a/docs/development/licenses.md
+++ b/docs/development/licenses.md
@@ -94,6 +94,7 @@ See below for a summary of the licenses behind RetroArch and its cores:
| Dolphin | [GPLv2](https://github.com/dolphin-emu/dolphin/blob/master/license.txt) | |
| DOSBox | [GPLv2](https://github.com/libretro/dosbox-libretro/blob/master/COPYING) | |
| DOSBox Pure | [GPLv2](https://github.com/libretro/dosbox-libretro/blob/master/COPYING) | |
+| [Doukutsu Rust](../library/doukutsu-rust.md) | [MIT](https://github.com/DrGlaucous/doukutsu-rs-nm/blob/retroarch-dev/LICENSE) | |
| Dummy Core | [MIT](https://github.com/libretro/libretro-samples/blob/master/license) | |
| Dungeon Crawl Stone Soup | [GPLv2+](https://github.com/libretro/crawl-ref/blob/master/crawl-ref/licence.txt) | |
| EasyRPG | [GPLv3](https://github.com/libretro/easyrpg-libretro/blob/master/COPYING) | |
diff --git a/docs/guides/core-list.md b/docs/guides/core-list.md
index 28cf10ad7c..5fc3db7b57 100644
--- a/docs/guides/core-list.md
+++ b/docs/guides/core-list.md
@@ -57,6 +57,7 @@
| DOSBox-core | DOS | Provides some improvements over the DOSBox-SVN trunk, including native MIDI support, cycle-accurate OPL3 (YMF262) emulation, MT-32 emulation and experimental 3dfx Voodoo support |
| DOSBox-Pure | DOS | A port of DOSBox with a goal of simplicty and ease of use and gameplay. This core includes a streamlined workflow for launching games directly from ZIP archives with automated mapping of controls to gamepads and a native onscreen keyboard. |
| DOSBox-SVN | DOS | This core is based on DOSBox-SVN trunk and allows on-the-fly configuration and different sync methods |
+| [Doukutsu Rust](../library/doukutsu-rust.md) | Game engine | An open-source reimplementation of the Cave Story engine compatible with all official (and some unofficial) releases of Cave Story |
| DuckStation | Sony PlayStation | |
| Dungeon Crawl Stone Soup | Game | A preliminary port of the Dungeon Crawl Stone Soup strategy game |
| EasyRPG | RPG Maker 2000/2003 | |
diff --git a/docs/image/core/doukutsu-rust/drs-libretro.png b/docs/image/core/doukutsu-rust/drs-libretro.png
new file mode 100644
index 0000000000..049e993755
Binary files /dev/null and b/docs/image/core/doukutsu-rust/drs-libretro.png differ
diff --git a/docs/image/core/doukutsu-rust/dummy-target.png b/docs/image/core/doukutsu-rust/dummy-target.png
new file mode 100644
index 0000000000..8fa8f0f92e
Binary files /dev/null and b/docs/image/core/doukutsu-rust/dummy-target.png differ
diff --git a/docs/image/core/doukutsu-rust/more-rust.png b/docs/image/core/doukutsu-rust/more-rust.png
new file mode 100644
index 0000000000..8b279b997e
Binary files /dev/null and b/docs/image/core/doukutsu-rust/more-rust.png differ
diff --git a/docs/library/doukutsu-rust.md b/docs/library/doukutsu-rust.md
new file mode 100644
index 0000000000..4a38306ffb
--- /dev/null
+++ b/docs/library/doukutsu-rust.md
@@ -0,0 +1,200 @@
+# Doukutsu Rust
+
+*This article primarily outlines the retroarch-specific features of this core. For a general feature-list and how-to for d-rs, please see the readme in the [Upstream Repository](https://github.com/doukutsu-rs/doukutsu-rs/).*
+
+
![](../image/core/doukutsu-rust/drs-libretro.png)
+
+## Background
+
+Doukutsu Rust *(often abbreviated d-rs)* is a modern and accurate re-implementation of the Cave Story Engine designed to be a drop-in replacement for all official and most fan ports, including:
+
+- CS Freeware
+- Cave Story+
+- Cave Story Switch
+- Cave Story Wiiware
+- CSE2
+- NXEngine-Evo
+
+The engine adds other Quality-of-life features like 2-player local multiplayer, lighting effects, and smooth motion interpolation.
+
+## Requirements
+
+Currently, this core requires at least OpenGL 2 or OpenGLES 2 to run. On MacOS systems, it requires at least OpenGL 3 support.
+
+Supported platforms:
+
+- Windows
+- Linux
+- Mac OS *(at least openGL 3 required)*
+- Android
+- iOS
+
+
+## How to start d-rs:
+
+D-rs does not ship with Cave Story data. To run it, you can either supply your own datafiles or use the "Content Downloader" (for Freeware only).
+
+For more information on how to get the files from your specific Cave Story install, see the [Upstream Repository readme](https://github.com/doukutsu-rs/doukutsu-rs/).
+
+### Freeware
+Freeware files can be obtained from the [tribute site](https://www.cavestory.org/download/cave-story.php) or via the retroarch Content Downloader, in a similar manner to the NXEngine core:
+
+1. Go to RetroArch's main menu screen and select "Online Updater". From there, select "Content Downloader".
+2. In the list, there should be a folder labeled `Cave Story`. Select it, then select the `Cave Story (En).zip` file. The file should be downloaded and extracted to Retroarch's `Downloads` directory.
+3. Go back to RetroArch's main menu screen. Select "Load Content", then navigate to `Downloads/Cave Story (En)/` and select `Doukutsu.exe`.
+4. If given the choice on what core to run, choose `Cave Story (drs)`.
+
+The game should begin playing.
+
+### Cave Story +
+
+The process for Cave Story plus is largely the same, but you have to supply your own datafiles.
+
+1. Grab your CS+ install and place it where you can navigate to it from retroarch.
+2. Navigate to the CS+ folder and select the `CaveStory+.exe` file.
+3. If given the choice on what core to run, choose `Cave Story (drs)`.
+
+The game should begin playing.
+
+### Cave Story + (Switch edition / Wiiware edition)
+
+These versions of Cave Story don't have an executable bundled with the `data` folder. D-rs can load this just fine, but it needs to know *where* to find it, which requires the creation of a "dummy" executable next to the data folder.
+
+ ![](../image/core/doukutsu-rust/dummy-target.png)
+
+1. Grab your CS-Switch or CS-Wiiware install and place it where you can navigate to it from retroarch.
+2. In the folder that contains the `data` folder *(not INSIDE the data folder, but next to it)*, create an empty file with the `.exe` extension. Name doesn't matter, (example: `Target.exe`)
+3. Navigate to the containing folder and select the target file you just made.
+4. If given the choice on what core to run, choose `Cave Story (drs)`.
+
+The game should begin playing.
+
+## Extensions
+
+**With the exception of Freeware cave story**, d-rs mainly uses the target file as a reference to figure out where the data folder is. *(since at the time of writing, retroarch can't load a folder directly through the GUI)*
+
+If the core is loading from Freeware for the first time, it will open the file in order to dump its internal assets into the `data` directory. After this, the executable isn't needed beyond use as a starting "target" for the core.
+
+For CS+, Wiiware, or NXEngine, placing an empty "target" file in the same directory as the `data` folder with one of these extensions will load the game.
+
+- .so
+- .dll
+- .exe
+
+
+The info file source can be found here:
+https://github.com/libretro/libretro-super/blob/master/dist/info/doukutsu_rs_libretro.info
+
+
+## Frontend Features
+
+| Feature | Supported |
+|-------------------|:---------:|
+| Restart | ✔ |
+| Saves | X |
+| States | X |
+| Rewind | X |
+| Netplay | X |
+| Core Options | ✔ |
+| RetroAchievements | X |
+| RetroArch Cheats | X |
+| Native Cheats | ✔ |
+| Controls | ✔ |
+| Remapping | ✔ |
+| Multi-Mouse | X |
+| Rumble | ✔ |
+| Sensors | X |
+| Camera | X |
+| Location | X |
+| Subsystem | X |
+| [Softpatching](../guides/softpatching.md) | X |
+| Disk Control | X |
+| Username | X |
+| Language | X |
+| Crop Overscan | X |
+| LEDs | X |
+| Fast Forward | X |
+| Slow-mo | ✔ |
+
+## Directories
+
+
+D-rs will modify the following files/folders:
+
+- `~/data` - *(only with freeware)*, will be populated with Cave Story's internal assets the first time the game is launched (things like music and credit images).
+- `~/user` - If this folder already exists (I.E. continuing a game that was started on another port of d-rs), d-rs will use this directory instead of `RetroArch/saves/d-rs`.
+- `RetroArch/saves/d-rs` - game saves, internal settings, and operation logs will be stored in this folder.
+
+
+
+## Geometry and timing
+
+D-rs separates in-game time from screen refresh rate. The game can be either set to run at 50 TPS (mimicking Freeware CS) or 60 FPS (mimicking CS+).
+
+Screen drawing varies depending on hardware capability, but is typically around 60 FPS.
+
+Depending on the `Core Options` (see below), the game's screen ratio can be changed.
+
+
+## Core options
+
+- **Internal upscaling factor** - The size of the "screen" that the core thinks it's drawing to. Larger resolutions provide smoother visuals. For CS+, a minimum scale of x2 is needed to retain all image detail. `2x (CS+, default)|1x (freeware, fastest)|3x (smoother motion)|4x (smoothest motion)`,
+- **Screen Ratio** - Shape of the "screen" that the core thinks it's drawing to. Original CS is 4:3, but d-rs supports widescreen. `4:3 (original)|16:9 (switch)|16:10|21:9`
+- **Debug Outlines** - Draw onscreen markers to show where entities are and what they are colliding with. `Disabled|Enabled`
+- **Show FPS** - Show in-game TPS and FPS. `Disabled|Enabled`
+- **Show Debug GUI** - Show the IMGUI debug menu *(no real use at the moment; mouse input is disabled)*. `Disabled|Enabled`
+- **GOD Mode (Invincibility)** - Player cannot take damage. `Disabled|Enabled`
+- **Infinite Booster** - Gives the player the jetpack without a fuel limit. `Disabled|Enabled`
+- **Noclip** - Allows the player to float through the map without tile or NPC collision. `Disabled|Enabled`
+- **More Rust** - Turns Sue into the d-rs mascot (![](../image/core/doukutsu-rust/more-rust.png){ width="16" height="16" }). `Disabled|Enabled`
+
+
+## User 1-2 device types
+
+The d-rs core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):
+
+- **Retropad (Port 1)** - Player 1 controls.
+- **Retropad (Port 2)** - Player 2 controls.
+
+These controls can be re-assigned in both the retroarch frontend and in the core itself.
+
+## Rumble
+
+If the frontend supports rumble and is paired with a controller that has the capability, d-rs will provide vibration feedback during screen shakes and other various in-game events.
+Rumble can also be disabled within the core's settings menu.
+
+## Joypad
+
+*Note: These buttons can be re-bound in the frontend as well as within the core.*
+
+| RetroPad Inputs | Input descriptors |
+|------------------------------------------------|--------------------------------|
+| ![](../image/retropad/retro_b.png) | Shoot |
+| ![](../image/retropad/retro_a.png) | Jump |
+| ![](../image/retropad/retro_y.png) | Inventory/Cutscene Fast Forward|
+| ![](../image/retropad/retro_start.png) | Pause |
+| ![](../image/retropad/retro_x.png) | Show/Hide Map |
+| ![](../image/retropad/retro_dpad_up.png) | Aim up |
+| ![](../image/retropad/retro_dpad_down.png) | Interact/Aim down |
+| ![](../image/retropad/retro_dpad_left.png) | Move Left |
+| ![](../image/retropad/retro_dpad_right.png) | Move Right |
+| ![](../image/retropad/retro_l1.png) | Previous Weapon |
+| ![](../image/retropad/retro_r1.png) | Next Weapon |
+| ![](../image/retropad/retro_r2.png) | Strafe |
+| ![](../image/retropad/retro_l3.png) | Move (d-pad equivalent) |
+
+## External Links
+
+- [Official doukutsu-rs source (GitHub)](https://github.com/doukutsu-rs/doukutsu-rs)
+- [Official doukutsu-rs website](https://doukutsu-rs.github.io/)
+---
+- [Libretro port of d-rs (backend)](https://github.com/DrGlaucous/doukutsu-rs-nm/tree/retroarch-dev)
+- [Libretro port of d-rs (interface layer)](https://github.com/DrGlaucous/doukutsu-rs-libretro/)
+---
+- [d-rs discord server](https://discord.gg/fbRsNNB)
+
+
+
+## (Related cores)
+
+- [NXEngine](nxengine.md)
\ No newline at end of file
diff --git a/docs/library/nxengine.md b/docs/library/nxengine.md
index 8dd2b0db93..a78b286225 100644
--- a/docs/library/nxengine.md
+++ b/docs/library/nxengine.md
@@ -130,3 +130,7 @@ The NXEngine core supports the following device type(s) in the controls menu, bo
- [Libretro NXEngine Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/nxengine_libretro.info)
- [Libretro NXEngine Github Repository](https://github.com/libretro/nxengine-libretro)
- [Report Libretro NXEngine Core Issues Here](https://github.com/libretro/nxengine-libretro/issues)
+
+## (Related cores)
+
+- [Doukutsu Rust](doukutsu-rust.md)
\ No newline at end of file
diff --git a/docs/meta/see-also.md b/docs/meta/see-also.md
index 666497eae2..c676e2a85b 100644
--- a/docs/meta/see-also.md
+++ b/docs/meta/see-also.md
@@ -165,4 +165,9 @@ This is a list of cores that are related to each other in some way.
## TG-16
- [NEC - PC Engine / CD (Beetle PCE FAST)](../library/beetle_pce_fast.md)
-- [NEC - PC Engine SuperGrafx (Beetle SGX)](../library/beetle_sgx.md)
\ No newline at end of file
+- [NEC - PC Engine SuperGrafx (Beetle SGX)](../library/beetle_sgx.md)
+
+## Cave Story
+
+- [D-RS](../library/doukutsu-rust.md)
+- [NXEngine](../library/nxengine.md)
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index fe92796195..e1a9e71664 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -274,6 +274,7 @@ nav:
- '2048': 'library/2048.md'
- '3D Engine': 'library/3d_engine.md'
- 'Anarch': 'library/anarch.md'
+ - 'Cave Story (Doukutsu Rust)': 'library/doukutsu-rust.md'
- 'Cave Story (NXEngine)': 'library/nxengine.md'
- 'Cannonball': 'library/cannonball.md'
- 'ChaiLove': 'library/chailove.md'