Skip to content

scurest/MelonRipper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

MelonRipper

This repo has some stuff for ripping 3D models from the Nintendo DS. It works Ninja Ripper-style, where to rip a model, you play in an emulator until the model is on screen, then press a key to dump everything drawn in one frame to a file. A Blender addon can import the dump.

If you want to convert an .nsbmd model file instead, I have another project for that.

How it works

MelonRipper consists of two parts: a patched melonDS for ripping dump files, and a Blender addon for importing them.

melonDS

First, you need to build the patched melonDS. Windows users can download a precompiled EXE. Otherwise, compile the scurest:MelonRipper branch from my copy of melonDS. Build instructions are in melonDS's ReadMe.

Open the emulator. There should be a new hotkey for ripping a frame. Go to Config ‣ Input and hotkeys ‣ Add-ons and assign a hotkey to "[MelonRipper] Rip" (I used [F]).

Now when you're playing a game you can press the hotkey to rip the next frame to a .dump file in the current directory.

Blender

Blender 2.82 is required. Last tested with Blender 3.5.

To install the addon, open import_melon_rip.py and save it to your computer. Then in Blender, go to Edit ‣ Preferences ‣ Add-ons ‣ Install... and select the file you just saved. Enable the addon by clicking the checkbox next to "Import: MelonRipper NDS Dumps" in the addon list (use the search box to find it). See the Blender Manual or this question for more help installing addons.

Then go to File ‣ Import ‣ MelonRipper NDS Dump and pick the .dump file you ripped with melonDS to import it.

Tips & Tricks

  • If the colors are washed out, try switching Blender's color space from "Filmic" to "Standard". See this answer.

  • If you're having trouble finding the model in the viewport, try View ‣ Frame Selected.

  • Sometimes different parts of the scene are displaced relative to each other. I think that's because they're drawn with different "cameras". (Dumped vertex position are all after the ModelView matrix but before the Projection.)

  • Normals aren't ripped. The calculated lighting is baked into the vertex colors.

  • Strip connectivity is not preserved. All faces in Blender are totally separate from each other, even if they were originally part of a polygon strip.

  • Vertex colors in the middle of a quad will look different in Blender than on the DS because quads on a PC are rendered as two tris, while the DS renders quads as real quads. The melonDS blog has a great explanation for this.

  • Translucent (partially transparent) faces are imported with "Alpha Blend". This may have sorting problems in the Eevee renderer. If you have sorting issues, try Cycles.

  • Some DS effects aren't implemented: fog, highlight, shadow, wireframe, edgemarking, depth equal, rear plane.

  • Exporting to .gltf sort of works (use Blender ≥2.92 for best results). You will probably need to modify the materials to export to other formats.

About

3D screenshots in melonDS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages