Giter Club home page Giter Club logo

melonripper's Introduction

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.

melonripper's People

Contributors

scurest avatar

Stargazers

Landon & Emma avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.