Skip to content

Commit 239dc8e

Browse files
authored
Merge pull request #1006 from DrGlaucous/master
Add documentation for the doukutsu-rs core
2 parents f38ee1b + 84297ca commit 239dc8e

File tree

9 files changed

+213
-1
lines changed

9 files changed

+213
-1
lines changed

docs/development/licenses.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ See below for a summary of the licenses behind RetroArch and its cores:
9494
| Dolphin | [GPLv2](https://github.com/dolphin-emu/dolphin/blob/master/license.txt) | |
9595
| DOSBox | [GPLv2](https://github.com/libretro/dosbox-libretro/blob/master/COPYING) | |
9696
| DOSBox Pure | [GPLv2](https://github.com/libretro/dosbox-libretro/blob/master/COPYING) | |
97+
| [Doukutsu Rust](../library/doukutsu-rust.md) | [MIT](https://github.com/DrGlaucous/doukutsu-rs-nm/blob/retroarch-dev/LICENSE) | |
9798
| Dummy Core | [MIT](https://github.com/libretro/libretro-samples/blob/master/license) | |
9899
| Dungeon Crawl Stone Soup | [GPLv2+](https://github.com/libretro/crawl-ref/blob/master/crawl-ref/licence.txt) | |
99100
| EasyRPG | [GPLv3](https://github.com/libretro/easyrpg-libretro/blob/master/COPYING) | |

docs/guides/core-list.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
| 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 |
5858
| 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. |
5959
| DOSBox-SVN | DOS | This core is based on DOSBox-SVN trunk and allows on-the-fly configuration and different sync methods |
60+
| [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 |
6061
| DuckStation | Sony PlayStation | |
6162
| Dungeon Crawl Stone Soup | Game | A preliminary port of the Dungeon Crawl Stone Soup strategy game |
6263
| EasyRPG | RPG Maker 2000/2003 | |
1.12 MB
Loading
243 KB
Loading
5.49 KB
Loading

docs/library/doukutsu-rust.md

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
# Doukutsu Rust
2+
3+
*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/).*
4+
5+
<center> ![](../image/core/doukutsu-rust/drs-libretro.png) </center>
6+
7+
## Background
8+
9+
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:
10+
11+
- CS Freeware
12+
- Cave Story+
13+
- Cave Story Switch
14+
- Cave Story Wiiware
15+
- CSE2
16+
- NXEngine-Evo
17+
18+
The engine adds other Quality-of-life features like 2-player local multiplayer, lighting effects, and smooth motion interpolation.
19+
20+
## Requirements
21+
22+
Currently, this core requires at least OpenGL 2 or OpenGLES 2 to run. On MacOS systems, it requires at least OpenGL 3 support.
23+
24+
Supported platforms:
25+
26+
- Windows
27+
- Linux
28+
- Mac OS *(at least openGL 3 required)*
29+
- Android
30+
- iOS
31+
32+
33+
## How to start d-rs:
34+
35+
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).
36+
37+
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/).
38+
39+
### Freeware
40+
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:
41+
42+
1. Go to RetroArch's main menu screen and select "Online Updater". From there, select "Content Downloader".
43+
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.
44+
3. Go back to RetroArch's main menu screen. Select "Load Content", then navigate to `Downloads/Cave Story (En)/` and select `Doukutsu.exe`.
45+
4. If given the choice on what core to run, choose `Cave Story (drs)`.
46+
47+
The game should begin playing.
48+
49+
### Cave Story +
50+
51+
The process for Cave Story plus is largely the same, but you have to supply your own datafiles.
52+
53+
1. Grab your CS+ install and place it where you can navigate to it from retroarch.
54+
2. Navigate to the CS+ folder and select the `CaveStory+.exe` file.
55+
3. If given the choice on what core to run, choose `Cave Story (drs)`.
56+
57+
The game should begin playing.
58+
59+
### Cave Story + (Switch edition / Wiiware edition)
60+
61+
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.
62+
63+
<center> ![](../image/core/doukutsu-rust/dummy-target.png) </center>
64+
65+
1. Grab your CS-Switch or CS-Wiiware install and place it where you can navigate to it from retroarch.
66+
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`)
67+
3. Navigate to the containing folder and select the target file you just made.
68+
4. If given the choice on what core to run, choose `Cave Story (drs)`.
69+
70+
The game should begin playing.
71+
72+
## Extensions
73+
74+
**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)*
75+
76+
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.
77+
78+
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.
79+
80+
- .so
81+
- .dll
82+
- .exe
83+
84+
85+
The info file source can be found here:
86+
https://github.com/libretro/libretro-super/blob/master/dist/info/doukutsu_rs_libretro.info
87+
88+
89+
## Frontend Features
90+
91+
| Feature | Supported |
92+
|-------------------|:---------:|
93+
| Restart ||
94+
| Saves | X |
95+
| States | X |
96+
| Rewind | X |
97+
| Netplay | X |
98+
| Core Options ||
99+
| RetroAchievements | X |
100+
| RetroArch Cheats | X |
101+
| Native Cheats ||
102+
| Controls ||
103+
| Remapping ||
104+
| Multi-Mouse | X |
105+
| Rumble ||
106+
| Sensors | X |
107+
| Camera | X |
108+
| Location | X |
109+
| Subsystem | X |
110+
| [Softpatching](../guides/softpatching.md) | X |
111+
| Disk Control | X |
112+
| Username | X |
113+
| Language | X |
114+
| Crop Overscan | X |
115+
| LEDs | X |
116+
| Fast Forward | X |
117+
| Slow-mo ||
118+
119+
## Directories
120+
121+
122+
D-rs will modify the following files/folders:
123+
124+
- `~/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).
125+
- `~/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`.
126+
- `RetroArch/saves/d-rs` - game saves, internal settings, and operation logs will be stored in this folder.
127+
128+
129+
130+
## Geometry and timing
131+
132+
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+).
133+
134+
Screen drawing varies depending on hardware capability, but is typically around 60 FPS.
135+
136+
Depending on the `Core Options` (see below), the game's screen ratio can be changed.
137+
138+
139+
## Core options
140+
141+
- **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)`,
142+
- **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`
143+
- **Debug Outlines** - Draw onscreen markers to show where entities are and what they are colliding with. `Disabled|Enabled`
144+
- **Show FPS** - Show in-game TPS and FPS. `Disabled|Enabled`
145+
- **Show Debug GUI** - Show the IMGUI debug menu *(no real use at the moment; mouse input is disabled)*. `Disabled|Enabled`
146+
- **GOD Mode (Invincibility)** - Player cannot take damage. `Disabled|Enabled`
147+
- **Infinite Booster** - Gives the player the jetpack without a fuel limit. `Disabled|Enabled`
148+
- **Noclip** - Allows the player to float through the map without tile or NPC collision. `Disabled|Enabled`
149+
- **More Rust** - Turns Sue into the d-rs mascot (![](../image/core/doukutsu-rust/more-rust.png){ width="16" height="16" }). `Disabled|Enabled`
150+
151+
152+
## User 1-2 device types
153+
154+
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):
155+
156+
- **Retropad (Port 1)** - Player 1 controls.
157+
- **Retropad (Port 2)** - Player 2 controls.
158+
159+
These controls can be re-assigned in both the retroarch frontend and in the core itself.
160+
161+
## Rumble
162+
163+
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.
164+
Rumble can also be disabled within the core's settings menu.
165+
166+
## Joypad
167+
168+
*Note: These buttons can be re-bound in the frontend as well as within the core.*
169+
170+
| RetroPad Inputs | Input descriptors |
171+
|------------------------------------------------|--------------------------------|
172+
| ![](../image/retropad/retro_b.png) | Shoot |
173+
| ![](../image/retropad/retro_a.png) | Jump |
174+
| ![](../image/retropad/retro_y.png) | Inventory/Cutscene Fast Forward|
175+
| ![](../image/retropad/retro_start.png) | Pause |
176+
| ![](../image/retropad/retro_x.png) | Show/Hide Map |
177+
| ![](../image/retropad/retro_dpad_up.png) | Aim up |
178+
| ![](../image/retropad/retro_dpad_down.png) | Interact/Aim down |
179+
| ![](../image/retropad/retro_dpad_left.png) | Move Left |
180+
| ![](../image/retropad/retro_dpad_right.png) | Move Right |
181+
| ![](../image/retropad/retro_l1.png) | Previous Weapon |
182+
| ![](../image/retropad/retro_r1.png) | Next Weapon |
183+
| ![](../image/retropad/retro_r2.png) | Strafe |
184+
| ![](../image/retropad/retro_l3.png) | Move (d-pad equivalent) |
185+
186+
## External Links
187+
188+
- [Official doukutsu-rs source (GitHub)](https://github.com/doukutsu-rs/doukutsu-rs)
189+
- [Official doukutsu-rs website](https://doukutsu-rs.github.io/)
190+
---
191+
- [Libretro port of d-rs (backend)](https://github.com/DrGlaucous/doukutsu-rs-nm/tree/retroarch-dev)
192+
- [Libretro port of d-rs (interface layer)](https://github.com/DrGlaucous/doukutsu-rs-libretro/)
193+
---
194+
- [d-rs discord server](https://discord.gg/fbRsNNB)
195+
196+
197+
198+
## (Related cores)
199+
200+
- [NXEngine](nxengine.md)

docs/library/nxengine.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,7 @@ The NXEngine core supports the following device type(s) in the controls menu, bo
130130
- [Libretro NXEngine Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/nxengine_libretro.info)
131131
- [Libretro NXEngine Github Repository](https://github.com/libretro/nxengine-libretro)
132132
- [Report Libretro NXEngine Core Issues Here](https://github.com/libretro/nxengine-libretro/issues)
133+
134+
## (Related cores)
135+
136+
- [Doukutsu Rust](doukutsu-rust.md)

docs/meta/see-also.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,4 +165,9 @@ This is a list of cores that are related to each other in some way.
165165
## TG-16
166166

167167
- [NEC - PC Engine / CD (Beetle PCE FAST)](../library/beetle_pce_fast.md)
168-
- [NEC - PC Engine SuperGrafx (Beetle SGX)](../library/beetle_sgx.md)
168+
- [NEC - PC Engine SuperGrafx (Beetle SGX)](../library/beetle_sgx.md)
169+
170+
## Cave Story
171+
172+
- [D-RS](../library/doukutsu-rust.md)
173+
- [NXEngine](../library/nxengine.md)

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ nav:
274274
- '2048': 'library/2048.md'
275275
- '3D Engine': 'library/3d_engine.md'
276276
- 'Anarch': 'library/anarch.md'
277+
- 'Cave Story (Doukutsu Rust)': 'library/doukutsu-rust.md'
277278
- 'Cave Story (NXEngine)': 'library/nxengine.md'
278279
- 'Cannonball': 'library/cannonball.md'
279280
- 'ChaiLove': 'library/chailove.md'

0 commit comments

Comments
 (0)