• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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
    14
    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.
     

    knizz

  • 192
    Posts
    16
    Years
    • Seen Oct 28, 2020
    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:

    smurph717

    Programmer
  • 22
    Posts
    14
    Years
    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
     

    knizz

  • 192
    Posts
    16
    Years
    • Seen Oct 28, 2020
    What do you mean by a/0/6/5?

    Edit: Oh, you mean HG/SS?
     
    Last edited:

    smurph717

    Programmer
  • 22
    Posts
    14
    Years
    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.
     

    knizz

  • 192
    Posts
    16
    Years
    • Seen Oct 28, 2020
    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.
     

    knizz

  • 192
    Posts
    16
    Years
    • Seen Oct 28, 2020
    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