Convert Nintendo DS .nsbmd models
Go to file
scurest 9e4900253a Rework viewer
Single-stepping is now supported for each type of animation.
We also avoid some allocations.
2019-09-06 04:19:38 -05:00
src Rework viewer 2019-09-06 04:19:38 -05:00
.editorconfig Update README 2018-03-10 14:47:35 -06:00
.gitignore It works! Commit it 2016-12-11 15:14:07 -06:00
appveyor.yml (build) Fix version number in AppVeyor builds 2017-04-16 12:37:03 -05:00
build.rs Include compile date in version info 2018-02-23 12:21:35 -06:00
BUILDING.md Update BUILDING.md 2019-08-17 22:58:12 -05:00
Cargo.lock Update error handling 2019-06-06 07:29:02 -05:00
Cargo.toml Update error handling 2019-06-06 07:29:02 -05:00
frontispiece.gif Update README 2019-01-27 00:22:15 -06:00
LICENSE Switch to 0BSD 2019-01-11 17:01:22 -06:00
README.md Viewer: initial .nsbta support 2019-09-06 04:19:38 -05:00

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
  • .nsbta, .BTA, or .BTA0 contain material animations, for eg. texture scrolling effects (EXPERIMENTAL!!)

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

Material animations are supported in the viewer and extractor, but not in the converter.

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