scurest / apicula Goto Github PK
View Code? Open in Web Editor NEWConvert Nintendo DS .nsbmd models
License: BSD Zero Clause License
Convert Nintendo DS .nsbmd models
License: BSD Zero Clause License
The tracks in a pattern animation pick materials in a model and change the texture/palette they use, but I haven't figured out how they know which material to pick.
Here's an example with mi/wd/wd_al.d/al_04a.nsbmd
and mi/wd/wd_al.d/al_04a.nsbtp
from Days
Obviously the material for the torch flames is supposed to be targeted (instead of the wall material) and the non-targeted materials should all be left alone ( ̄▼ ̄*)
I feel that these models and animtion data are suppose to be for Picasso Block from the game. i dumped it twice and it came out the same. Sorry if this is normal or very simple to fix im new to dumping models.
Hey there, so I have this model which has 4 different textures (same model shared between 4 different-colored characters). I seem to be only able to extract the first textures. Though, when fiddling around in the texture/palette viewer, I can see all of them. I thought I would take a screen capture of it and use it as if, but there's this black outline which is covering a pixel all around the image, resulting in a 62x62 texture instead of a 64x64.
Is there anyway to export all different textures from a .nbstx? And optionally, would it be possible for the texture viewer not to cover part of the texture? Thanks.
So I've been trying to extract models from The Legend of Zelda: Phantom Hourglass. I extracted everything into the same folder and add apicula to that folder as well. No matter the .nsbmd I'm trying to view, it always throws an exception that it couldn't find the texture.
./apicula.exe view gd_boomerang
Found 1 model. Found 0 animations. ERROR:apicula::viewer::draw: error generating texture for material 0: Error(Msg("couldn\'t find texture named gd_Boomerang"), State { next_error: None, backtrace: None })
I imported the dae file in Blender and when I textured the model, no vertex colors or textures were shown. What should I do?
I am trying to convert roomset nsbmds but apicula will not read them. I checked the fileheaders and for some reason they are "BDL0" and not BMD0.
I suspect compression, but i can't tell.
I have included a sample.
Intro.zip
and how can i fix it (if it's an issue)
w1.nsbmd
Textures aren't fully exported when converting to COLLADA. These ones are missing:
w4_brock4.2
w4_brock4.3
w4_brock4.4
When I try to convert the .nsbtx format to a .png using the command:
"apicula convert filename.nsbtx --more-textures --output mapname"
it doesn't output the textures as png, in the commandline it does show that it found the textures and the amount of
palettes but it doesn't output them as png.
Instead of using shift to speed it up by a fixed amount, could you make it so you can use the +/- or number keys (optionally in combination with shift) to adjust the speed to how you want it?
Thanks
When I click in the program a cmd window opens for 1 second and then it closes, I have rust 1.34 installed.
Hi,
I can't convert animations from this game, tho the apicula finds them. Files attached.
DroneTactics_Unit.zip
Please help me. Maybe I'm doing smt wrong.
I keep getting this [ERROR] when I do apicula extract Nintendogs.nds
. How can I fix this?
It would be ideal if extracting and converting each model could maintain the file structure of the given game.
For example, Mario Kart DS contains the structure:
mkds/root/data/Course/airship_course.carc/airship_course.carc
So it would be great if the .nsbxx's could be found in:
extract-folder/root/data/Course/airship_course.carc/airship_course/airship_course.nsbxx
This would make it far easier to navigate and know which files are required for each nsbmd
The same could be done for converting too, making the models self contained!
Some models blow-up at the extremities (the title screen model from Heart Gold, reported here; some characters from Dark Dawn)
Think it has to do with how TRS transforms are calculated; every bone has a scale of 2, so the scale blows up exponentially with distance from the root bone. Accoridng to EveryFileExplorer, I think the TRS transform is supposed to be TS^{-1}RS when a bit in the unknown field of render command 0x26 is set. Have to see it that fixes it...
hello
at least 1 model in spirit tracks seems to use some kind of offset that apicula doesnt seem to support
the line in the grass here should be lined up with the rest of the grass to give it a smooth transition to sand
and here in the desert
it does not do this ingame
dumped model do the same
using what i know in blender i can easily fix this on exported models
but without a material editor of some kind
i dont know what is correct and what isnt without having the game right beside me
Is it possible to extract files to the same dir?
I'd like to control files storing with cmd.
I dont know if this is by design or me not doing it correctly but it seems like palettes are not used when viewing the model in the viewer or when converted
Hi scurest,
Good job for your tool and thanks for the sharing. But I'm encountering a problem when it comes to solving the UV with the mirror feature, as it is mentioned here:
https://github.com/scurest/apicula/wiki/IMPORT:-Maya
In 3ds max, I've found the same feature than in maya:
http://image.noelshack.com/fichiers/2020/16/4/1587053644-rotated.png
After that, I export the correct 3d model, but it seems the fbx format doesn't save that parameter I just changed, because when I re-open it in 3ds max, all the uv's are misplaced, while the .max format doesn't suffer of that.
I was thinking about directly editing the texture, but I don't know what transformation I have to do, I mean horizontal flip doesn't solve the problem in 3ds max. I need to change the texture, to avoid the fbx lack of saving about mirror feature. Do you know what I mean? Thanks in advance =)
Hello,
When I try convert a .nsbtx file to .png file using this command (EX):
apicula convert ww.nsbtx --more-textures -o test
or
apicula convert ww.nsbtx -o test
The program acknowledges the textures in the nsbtx file, but it won't actually extract anything to png.
It doesn't really matter what I name the file. The same result happens.
Using apicula convert *.nsbtx -o test
also outputs the same result.
Case if you need the file: https://www.mediafire.com/file/znpnv4vocdmghhj/ww.nsbtx/file
(It's original name is h_kage.110.nsbtx)
While attempting to extract the models from Pictocross 3D, I discovered that some models are exported in a slightly odd way, with multiple overlapping meshes. The one interesting feature I noticed is that they contain multiple 0x02 render commands.
My best guess for what the 0x02 render command actually does is apply an animation to the model, identified by the first parameter. The second parameter actually identifies whether this call is the final one, so every call is zero, except the final one.
I am currently working on a related tool and extracted the files myself, I then ran these on this tool.
Issue:
apicula convert
does not recognize the file-prefix "LZ77", which is used for compressed files.
It seems (did not test it), that the apicula extract
does have support for it though.
Expected behavior/suggestion:
Make the apicula convert
check if a file has the prefix "LZ77", then unpack that file and check the prefix again.
Something marginally similar has been reported before, but apicula completely bricks Windows if I minimize the viewer. It seems exponential: as soon as I minimize, all of windows drastically slows down. If I can click on the taskbar to bring apicula up again quickly enough, everything is instantly fixed. However, if I leave it minimized for more than 3 seconds, everything is halted beyond salvation. Nothing on the screen responds whatsoever and a forced restart is the only option. I've tried this on two seperate machines, one with Windows 8 and one with Windows 10, both with the exact same issue. It surprises me that this hasn't been reported before considering it effects both my machines.
It might have something to do with my tendency to open many models at once.
Hi, I've followed the build instructions and I'm getting this error:
zsh: command not found: apicula
If it helps, I get this warning when I build it:
Things seem to work if I run it like this with the file in the release folder:
Let me know if you need more details on my end, I might just be missing a step. It's not a huge deal if I have to use it like this.
Hello, I've been exporting animations to collada for blender, and having to use the daesplitter.py script. I saw in another issue that you don't really want to do this splitting yourself, but would it be possible to add a console argument to export a single, named/indexed animation into the dae?
(I'm exporting from a game that has lots of animations applied to lots of models; to get a given animation, i have to --all-animations
the entire ROM to attach them, then split the .dae to get the single animation I wanted. The first time I did this it filled up my hard drive.)
Secondly, as a game dev, it'd be amazingly helpful if you could do a general data dump exporter, that also exported the pattern and material animation data, to something like JSON, or something easy to parse into OpenGL.
Thanks for the awesome tool!
Textures come out super corrupt, or sometimes not at all like CreateASim.nsbmd they come out sometimes but are also corrupt even without using --more-textures which also doesn't work if used. https://mega.nz/#!thBGWTjJ!tKr7JB7Zo6K9Qc_3OrAM63WEEt_u4J79QEwbJBSedfo
Pokemon games usually have a separate narcs for map textures and models, however it's tedious to find them without extracting all the textures at once, which Apicula can't extract textures from just NSBTX files.
[ERROR] output directory already exists, choose a different one or pass --overwrite if you're okay with files in that dir possibly being overwritten
I tried extracting models and animations from Spider-Man: Web of Shadows (DS) and it worked beautifully. Me and my friends were amazed, but the animations weren't extracted for some reason.
I tried extracting from both the EU and US versions with no luck.
Can somebody help me?
Would it be possible if you could add a command that outputs the information about nsbxx files in a json format?
have i maybe installed it wrong or something?
$ apicula view */*.nsb*
Got 110 models, 127 textures, 127 palettes, 73 animations, 0 pattern animations.
--------
Controls
--------
WASD Forward/Left/Back/Right
EQ Up/Down
L.Shift Increase Speed
L.Ctrl Decrease Speed
L.Mouse Free Look
,. Prev/Next Model
OP Prev/Next Animation
[] Single-step Animation
KL Prev/Next Pattern Animation
Space Print Info
[INFO] Guessed window DPI factor: 1
thread 'main' panicked at 'The aspect ratio cannot be below zero, found: NaN', C:\Users\appveyor\.cargo\registry\src\github.com-1ecc6299db9ec823\cgmath-0.16.1\src\projection.rs:114:9
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
Illegal instruction
This crash occurs after minimizing and restoring the window 3 to 5 times
I'm on a Windows 7 64-bit PC
Hi,
I used apicula back around 2019 (I think) and I was able to extract the player model with its customizable hairs, clothes etc separate to the model and had polygon0 to polygon18 in blender.
But I tried to do it again to that same file (and a few others) and the entire model is combined into 1 mesh. Was just wondering if there's a way to fix this or something causing it?
I'm using blender 2.79 and always have done... thank you :)
Hey there!
Thank you for your software, it is so nice and I'm having a blast with it so far. I was wondering if there was any way of extracting only a certain animation out of a .nsbca
file. Once again, my example is with Phantom Hourglass. I am able to see all animations of a model by using view, but when converting to .dae
it only appears to give me the first one. I want the last one. Is there any way of doing that?
[...]apicula>apicula view hanabi.nsbmd
Found 1 model.
Found 0 animations.
ERROR:apicula: error: Error(
Msg(
"sanity check failed: num_terms <= 4"
),
State {
next_error: None,
backtrace: None
}
)
It'd be nice if pressing space listed every single file open for that particular model. The big one for me is showing which nsbtx is being used, since some of them don't have the same filename as the model.
hello,
I've tried Captain America Super Soldier NDS textures without success. Though apicula recognized nsbtx as textures it can't convert them.
is it possible you can take a look at them?
captain_america_super_soldier_nds.zip
In Sonic Rush, some of the different animations are compressed into one NSBCA file. I use a daesplitter python script found in this VGResource thread. Will there be native support for separating these animations?
On almost the same topic, will it be possible to export NSBVA and NSBMA files sometime in the future? Sonic rush uses a ton of it, and for some cutscenes, they're compressed like joint animations. I'm pretty sure that MKDSCM has support for these file formats that you can look into.
and i kinda need all of them, not one really specific animation lol
so like. what do i do?
I’ve noticed that all the game model I’ve tried so far had flipped uv.
It’s cod black ops/mw3, captain america, kingdom hearts.
Having “FlipUV” as an option or hard coded flip of uv wouldn’t be much of a trouble?
For a few .BTX0 files in Pokemon games (specifically overworld Pokemon Sprites, see 201-206, or 297+ on a/0/8/1 -> 1_NUM.BTX0 in Pokemon HeartGold or SoulSilver for example), they use a palette naming scheme not implemented yet:
Palette 0 is for normal pokemon, Palette 1 is used for shiny pokemon.
I've gotten around this by editing the code to accept len == 2 on line 91 of image_namer.rs, as well as a second check to force palette 1 if a new flag I added (--shiny) is used, but I know this is very case specific.
Hoping for an actual solution to be created instead of my hack, possibly an argument to specify which palette index to force?
I am on a linux mint, i lost something?
apicula> cargo b --release
Compiling arrayvec v0.4.10
Compiling stb_truetype v0.2.5
Compiling rand_isaac v0.1.1
Compiling rand_hc v0.1.0
error: Edition 2018 is unstable and only available for nightly builds of rustc.
error: Could not compile stb_truetype
.
warning: build failed, waiting for other jobs to finish...
error: build failed
Hi, you can verify othres? for example: Prince of Persia The Forgotten Sands and Battles of Prince of Persia. Thanks.
Is there a way, a plan to add it in the future, to only extract textures (sprites, textures, ui)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.