Homebrew Cave Story DS port (based on CSE2 Decompilation)


Stylish TWiLight Hero
Oct 1, 2010
United States
I don't think this has been posted here before, so let's fix that!

This recent DS port of Cave Story has been made available on December (8th?) 2020, which is based on the CSE2 decompilation project, which itself is a decompilation of the freeware version of Cave Story.
Unfortunately, despite the project being based on the freeware version, it got taken down by Nicalis, who to my knowledge, do not own the freeware version (though correct me if I'm wrong).

So, for preservation sake, and a way to play Cave Story on your DS console, I'll upload the port here as an attachment!

Latest version is v0.4
Source code

This version adds the option of the SD card ROM, which supports basic mods.
See the SD card folder readme for instructions on how to use it.
There are also many fixes and quality of life improvements.

- Added a setting to use an alternate set of percussion for songs.
- You can now fast forward during cutscenes and events by holding down the R button.
- Added a few songs to the sound test.
- 50fps mode is now smoother. (Switched to a timer system instead of adding an additional wait)
- Disabled file opening after ejecting card, so saves and config menu won't just crash.
- You can toggle the console output with L+R+Select.
- Holding down the Start button during boot will set display on the bottom screen.
- Reduced size of ROM by compressing songs.
- Added a loading progress indicator.
- Improved look of credit illustrations.
- Updated credits in the readme.
- Add version to game subtitle and config menu.
- Fixed missing tiles in Egg Corridor?.
- Fixed arms graphic being corrupted after credits.
- Fixed credits graphics corruption after viewing it twice.
- Fixed face portrait appearing for a bit before sliding.
- Reduced flicker and save a few frames when uploading texture (use DMA).
- Fixed flicker during fast forward.
- Upload face portrait and Japanese text to texture only during vblank, reducing flicker.
- Fix ending cloud parallax.
- Added an additional "fun" rom.
- Multi: Fixed NPCs targeting dead players.
- Multi: Optimized performance a bit.
- Multi: reduced flicker.
- JPN: Add some missing characters to the font. (whoops)
- JPN: Fixed credit text being cut off.
- JPN: Fixed some missing credit portraits.

Local multiplayer is here! Explore the caves with a friend over wireless.
Thanks to Drenn1 and huiminghao's wonderful Nifi code from GameYob and NesDS respectively.
If you experience lag, try selecting another channel.
Note that the client will not write the profile to the SD card during netplay
(so you can take out the flashcart after loading on one console, and put it in the other to play with only one flashcart for both DSes).
Take care not to fire the Spur in a big area.

  • Moved input processing to beginning of frame, saving 1 frame of input lag.
  • Fixed bosses damage frames not appearing half the time.
  • Fix camera position in H**l ending event.
  • Tile 0 is no longer rendered.
  • Added some "fun" ROMs to play.
  • v0.3a: Fix shooting while dead in netplay.
  • Japanese language support!
  • Reduced filesize, so it can run on more flashcarts. (ADPCM sound with waveconv.exe)
  • Minimap works now.
  • 60/50 FPS toggle.
  • Transparent textbox toggle.
  • Resize inventory screen.
  • Draw stage on inventory, teleporter, and map screen.
  • Emulators can save temporarily.
  • Fix L2/L3 missile sprite.
  • Fix camera position in Balcony heli event, and Passage.
  • Added event jump to cheat menu.
  • Text will appear when an error occurs.
  • Initial release.
  • CaveStoryDS-0.1.nds: For use with regular flashcard kernels
  • CSDSdsi.nds: For use with nds-hb-menu and/or TWiLight Menu++
    (No CIA is included, due to the ARM9 binary being too big)

Thanks to:
  • rain, who developed the port!
  • arceus on the DS(i) Mode Hacking Discord server for providing both a build and a backup of the source code including compiled builds!
Times v0.1 downloaded before the re-upload: 62


  • CaveStoryDS.7z
    1.1 MB · Views: 680
  • CaveStoryDS-v0.2.zip
    8.6 MB · Views: 441
  • CaveStoryDS-v0.3.7z
    4.7 MB · Views: 158
  • CaveStoryDS-v0.3a.7z
    4.7 MB · Views: 221
  • CaveStoryDS-0.4.7z
    6.8 MB · Views: 165
Last edited by RocketRobz,


playing around in the end of life
Nov 30, 2014
Micronesia, Federated States of
"An error has occurred" with the installed 3ds cia version. 11.14 old3ds, latest luma.
Is there some trick to getting this version working?

edit: to answer my own question, it appears the .cia installed version would need a source change to use the correct savegame filepaths, like datapub:/profile.dat for example. Anyways, running the dsi version as dsi homebrew works fine.
Last edited by zoogie,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Skelletonike @ Skelletonike: bought an old ds lite yesterday that I'll be putting a new shell on. +1