Cave Story DS

From GameBrew
Cave Story NDS
Cavestoryds2.png
General
Authorrain
TypePlatform
Version0.4
LicenseMixed
Last Updated2022/09/12
Links
Download
Website
Source

This is a homebrew port of Cave Story for the NDS, with multiplayer, modding support and many quality of life improvements. It is based on the CSE2 decompilation project, which itself is a decompilation of the freeware version of Cave Story.

Note: CSE2 is one of the open source reproduction of the Cave Story engine, except it is designed for accuracy and faithfulness to the original. Sadly, it was subject to a DMCA takedown.

User guide

The fast-paced gameplay of Cave Story revolves around Quote, a robot who wakes up suffering amnesia and who must explore and blast his way through cavernous areas in order to figure out his backstory and escape from the cave.

The character gains access to new areas as he powers up his weapons by collecting triangular experience crystals and solves various platforming puzzles.

Quote speaks to non-player characters scattered around the game world in order to learn more about the world and its inhabitants.

Note: Config.dat and Profile.dat will be saved to the root of the SD card.

Controls

In game:

L+R+Start - Access the escape menu

D-Pad - Move

A - Jump

B - Shoot

X/Y - Previous/Next Weapon

Start - Inventory

Select - Map

R - Fast Forward during cutscenes

L+R+Select - Toggle console output

During boot:

Hold Start - Start with display on the bottom screen

Hold Select - See console output

Screenshots

cavestoryds3.pngcavestoryds4.png

cavestoryds5.pngcavestoryds6.png

Online Emulator

Can use gamepad or customise in the control settings.
Nintendo DS 🎮 Keyboard
C-a.png Kb-z.png
C-b.png Kb-x.png
C-x.png Kb-a.png
C-y.png Kb-s.png
C-start.png Kb-enter.png
C-select.png Kb-v.png
C-l.png Kb-q.png
C-r.png Kb-e.png
C-pad.png Kb-dpad.png

Compatibility

On 3DS or DSi you will need the DSi version to run.

If it fails to run, you can try launching it with nds-hb-menu 0.5.0 or TWiLight Menu++.

Known issues

The game will rarely crash when closing the lid.

The game will slow down in the Plantation and Sand Zone when hitting a missile or using the Spur.

Performance will lower in multiplayer when using the Spur or missiles.

There may be a loud noise during stage transition.

Changelog

v0.4

  • 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.

v0.3a

  • Fix shooting while dead in netplay.

v0.3

  • 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.2

  • 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.

v0.1

  • Initial release.

Credits

Thanks to:

  • The CSE2 Decompilation Project, by CuckyDev and Clownacy (and optimization mascot GabrielRavier).
  • Lusty_ from GBATemp, who helped test and helped figuring out the compatibility issue with flashcarts.
  • Random people in the CSE2 Discord, who tried the port in its early stages.
  • Aeon Genesis - Shih Tzu (TranslateDoggie), and GideonZhi, whose expert translation and ROM hacking skills brought Cave Story to a boatload of people.
  • devKitPro, the homebrew toolchain that lets us make games for Nintendo consoles without anyone's permission.
  • Martin Korth, for making N0$GBA and its fantastic debugging suite, as well as the GBA/DS/3DS documentation that shaped the scene.
  • The DeSmuME developers for making an emulator with GDB debugging support making this port a lot less of a pain in the ass to develop.
  • gl2D- by Relminator, for making a pretty good 3D library saving.
  • lvandeve, for the lodepng library that lets me painlessly load pngs.
  • AntonioND, for the great BMP loading from Nitro Engine as well.
  • mackron, for the sexy dr_wav loading library.
  • graphitemaster, for the sleek incbin file embed library.
  • CUE, for the sly NDS lzss compression library.
  • Drenn1, for the WiFi code from GameYob, and the forum posts on the devKitPro forums that probably let me avoid a dozen hours of debugging the sound.
  • huiminghao, for the WiFi code from NesDS.
  • Arisutora, for MelonDS and the NiFi debugging support.
  • Ravenworks, who took on the Cave Story DS port in the first place, got destroyed by a publisher in the process, and inspired me to create the DS version that the people deserve.
  • And Pixel, who created this wonderful thing that inspired a generation of gamers.

External links

Advertising: