• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Dawn, Gloria, Juliana, or Summer - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Other] modeling help (NSBMD)

smurph717

Programmer
  • 22
    Posts
    15
    Years
    Hey, does anyone know what the "unknown sections" (according to kiwi.ds's spec) are for, or if they affect anything? Also, has anyone figured out what exactly the "material definitions" consist of? I've Googled and searched this forum and others for 2 days now to no avail. If it's not something you wanna disclose publicly then send me a PM, I'll keep it a secret. Any help with this would be greatly appreciated. (Right now, this is all that's stopping me from writing a new or heavily modified map back to a file.) Thanks.
     
    I can't answer that but the first thing a would do is to get lots of BMD-Files from a ROM (Pokemon for example) and to write a tool that extracts the unknown areas to compare them with a hexdumper (8 Bytes per model => 2 columns => perfect)

    Does the engine care about the "unknown area"?

    ... stopping me from writing a new or heavily modified map back to a file...

    You know where the maps are!? Tell me where.
     
    Last edited:
    if you view the filesystem in the rom, the maps are located in a/0/6/5, which is a narc format archive. my experiments with those unknown sections indicate the engine itself is agnostic to those values. I don't see any visual differences when I play with those values. however, the file format wouldn't exist if it weren't useful/efficient for the ds's hardware.... I'm still not sure if those values are just passed through the game to the graphics hardware, as some kind of controller for something. I have no clue, but a debugger would help greatly :P
     
    a/0/6/5 is a filename in the filesystem of the rom. to get to that you need another tool called dslazy, google it. then google how to extract narc files.
     
    help

    Hello all, this may be off topic a little, but can you show me how to use the .nsmbd viewer? Despite my best efforts I couldn't get it to work. Thanks.
     
    Depends on what you want to view and on which system.

    On Windows there is a precompiled version (=exe). On Linux you have to compile it yourself ( g++ -lGL -lglut -o nsbmd *.cpp ).

    If you want to view buildings and small items you need to extract the building_model.narc from fielddata. The BMD0 files inside are the models

    If you want to view maps then you need the land_data.narc and a python-script I wrote ( ww.pokecommunity.com/showpost.php?p=5724198&postcount=2 ). It can convert the map files to BMD0 files.

    When you have the model type "nsbmd balbalbl.BMD0"or drag the BMD0 on to of the exe.
     
    There is a group of 8 bytes in before each "Polygon definition". https://kiwi.ds.googlepages.com/nsbmd.html
    Seven of these bytes are fixed: 0 0 10 0 x 0 0 0 and x is a number between 2 and 7. But most models use 5.

    Here is a complete list of all build models, their names and the 8 unknown bytes from the polygon definition:

    Spoiler:


    If you find the out the meaning of this byte please post it.

    knizz
     
    Back
    Top