/apicula

Rip models from DS games.

Primary LanguageRustBSD Zero Clause License0BSD

Ore ga Omae o Mamoru model in Blender

apicula

Build status Lines of code license 0BSD
Rip models from DS games.


apicula is a tool for the NSBMD 3D model files found in many Nintendo DS games, eg. .nsbmd for models, .nsbca for animations, .nsbtx for textures, etc. Models can be extracted from ROMs, viewed, and converted to COLLADA.

Downloads

Pre-built binaries are provided for Windows:

These are built automatically off the latest master. You may need one of the Visual Studio Redistributable packages installed.

Building

Make sure Rust (1.34+) is installed and build the usual way

$ git clone https://github.com/scurest/apicula.git
$ cd apicula
$ cargo b --release
$ target/release/apciula -V

Usage

To search a ROM or other packed file for .nsbXX files and extract them

apicula extract <INPUT FILE> -o <OUTPUT DIR>

To view models

apicula view <NITRO FILES>

To convert models to COLLADA .dae files

apicula convert <NITRO FILES> -o <OUTPUT DIR>

To convert models to glTF .glb files

apicula convert -f=glb <NITRO FILES> -o <OUTPUT DIR>

To get technical information about the given .nsbXX files

apicula info <NITRO FILES>

To receive further help

apicula help

See also the tutorial on the process of extracting .nsbXX files from a ROM, converting them to COLLADA, and importing them into Blender.

Compatibility

apicula recognized these file formats

  • .nsbmd, .BMD, or .BMD0 contain 3D models, and often their textures and palettes
  • .nsbca, .BCA, or .BCA0 contain skeletal animations
  • .nsbtx, .BTX, or .BTX0 contain textures and palettes
  • .nsbtp, .BTP, or .BTP0 contain pattern animations, which change the textures in a material

Pattern animations are supported in the viewer and extractor, but not in the converter (neither COLLADA nor glTF support animations that change a material's textures).

Importing apicula's COLLADA files has been tested in Blender and Maya.

Special Thanks

  • kiwi.ds, for models and documentation for Nitro formats. All NDS model viewers seem to be derived from this one. Now defunct.

  • Gericom and MKDS Course Modifier, for animation information, especially for the meaning of the basis rotations.

  • Lowlines and Console Tool, for animations and documentation for Nitro formats. I also used Console Tool for extracting files from ROMs.

  • Barubary's DSDecmp for NDS decompression algorithms.

  • GBATEK, for DS hardware documentation.

  • deSmuME, for the DS debugger. _3D_LOG_EXEC and the GDB stub were invaluable.

License

0BSD