PHO - Pokémon Hackers Online
Go Back   PHO - Pokémon Hackers Online > Hacking Suite > Resources and Tutorials > Other Games


Other Games For resources regarding Gens past 3 or spinoff/side games.

User Tag List

Thread Tools Display Modes
Old 31st October 2013, 06:05 PM   #1
RHO つぃちょう
Linkandzelda's Avatar
Join Date: Apr 2012
Location: United Kingdom
Posts: 286
Linkandzelda Linkandzelda Linkandzelda
Default [NDS] Creating, Converting and Importing NDS Maps [D/P/Pt/HG/SS+]

Translated by: Linkandzelda

Creating, Converting and Importing NDS Maps

Welcome to Trifindo's guide to creating and importing maps on NDS. Here we will explain how to create your own NDS Pokémon maps. This is NOT the best method because it does not allow some options such as vertex colors, fog on the map, or the map is dark at night ... However, it's a good way to get started in DS Pokémon hacking.

This tutorial will be split into 2 parts: the first part with the instructions to create a new map and save it as .obj format followed by the conversion to Nsbmd, and the second with instructions to import it into the rom using SDSME.

To follow the tutorial, you will require strong knowledge with the following tools and resources:
  • NDS Pokémon ROM (DP, HGSS, BW ...) (I'll be using Pokémon Diamond)
  • Google Sketchup 8 Pro (Pro version to export. obj)
  • MKDS Course Modifier beta 11 (or higher)
  • SDSME v. (or higher)
  • A hex editor like Cygnus or other (Optional)

Creating The Map

Open SketchUp Pro and with the pen tool draw a square base with dimension 8x8.

Select it, right click and choose "reverse faces". This will show up the case as white. (If the faces are dark, it will not be viewed properly in game even if we change the colour).

Then select the "paint" (a paint pot) tool, this will open a new window. Then we add a new material. Another window will open in which we will import the texture for use as the map flooring. (In this case the texture "ngrass").

To match with the dimensions of the game, make sure the material size is 0.25 x0, 25m.

The face is now painted with our material and divided into 4 equal squares showing the middle point.

Next, select everything and move (with the Move Tool) so that the midpoint of the map matches the origin position in Sketchup Pro.

Now we import the graphics we want for our map (trees, mountains, grass ...). We can follow two methods:
  • Import in the .obj map taken directly from the game with the SDSME (This requires the free plugin for Sketchup FluidImporter) This way you can use the graphics of any map in game in your own maps.
  • Use the map in skp, for it is necessary to use the method 1 and save the file in .skp. For this tutorial I leave the link (See on the subject of WAH) map of Pokémon Diamond, Greenleaf Village Tileset whose textures belong to 6.

NOTE: The graphics can only be the same as whats in the tileset. (In our case we use the Pokémon Diamond Tileset 6)

Once we know which method to use, open a new window in Sketchup and open the map that contains the graphics that we want to us. The map may appear to form a single object, which we need to right click and "explode" about 3 times until it is possible to select any object on the map.

For this tutorial we will only be copying the tree, but you can copy anything you want into your map. Select the faces with the tree texture, and the faces with soil texture and copy it (Ctrl + C).

Paste the object into our own map (Ctrl + V).

We'll see listed 2 new materials with corresponding textures in the materials box: NOTE: When pasting the graphics on our map we paste 2 times the same texture as SketchUp will create 2 different materials and this will make the map fill more.

Select the tree and divide into 4 equal sides 0,5 x0, 5m and delete the faces and surplus lines, so it looks something like below.

Select all faces of the tree (including shade) and we right click "Create Group". This makes the tree self contained, and prevents it from joining onto other objects and vertices.

Divide the map up into small segments equalling 0,5 x0, 5m. (X0 0.25 On this scale, 25m equals 1 "tile" GBA). This is the same size as the tree we imported, and the size of the tile.

We then remove the faces that we created just now where we want to place our tree objects.

Copy the tree and paste it EXACTLY matching the vertices of the shadow of the tree with the vertices of the face previously deleted, so they line up perfectly with no gaps on either side.

Repeat the same process with the remaining trees and remove the soil on SOME lines, NOT all.

NOTE: In this way, by copying and pasting the tree within our map, the number of materials and textures does not change (in our case 3 materials: soil, shade tree and the tree).

When we finish the map, delete the tree we pasted originally on the outside. Select all, right click and we click "Create Group" to avoid problems with the textures and the map scale when imported later.

Well, we've finished our map, now to export it and create our map in NSBMD.

Exporting And Converting Our Map

We select our map in Sketchup, we go to "File," "Export" and the bottom bar select "File OBJ (*. Obj)".

NOTE: If there is no option to export .obj, then you are not using the Pro version of SketchUp.

We select "Options ..." and put them EXACTLY like this:

Create a new folder and export the map inside with "Export" button. We will get a message showing the results of the export. If all went well, the number of materials should match the texture (in our case 3).

If not, then something went wrong and you should start the guide over again.

Create a new file NSBMD (3D Model Format for NDS) from our map .obj file. We will use the amazing MKDS Course Modifier (Beta 11 or higher). Open the program, select "File", "New" and select "NSBMD".

Select our map .obj file.

Another window will open, select where to save the new .NSBMD file.

In the next window select "Custom" and put in the scale "64". Also create a file NSBTX with the box below. (Files are NSBTX game tilesets textures containing maps).

We've now created our map and converted it from a .obj file into an NDS 3D model file .NSBMD file, ready to be imported.

Importing Our Map Into The Game

To import the map will use the great tool from Spiky, SDSME.

I recommend sticking to the same folder that SDSME is located, putting the rom of Pokémon Diamond, the map .nsbmd and tileset .nsbtx files.

Open the rom with SDSME, it usually takes a few seconds depending on the size of the game. We select "Matrix" and "Map files". This will list a lot of complex numbers, but don't worry, it's simple. If you look closely you can see that the white color is the same route that makes up all the maps in game, ie, this is the map of the region. To simplify the tutorial edit the first map, ie Greenleaf Village, which is map number 0000.

Changing the map around, we need to make sure the numbers match up what is there for the movement permissions (for example, the edge with trees, shown in purple near map 0000, has the number 0173 .. The edge with water has the number 0174 ....).

To view the 3D map double click on it.

To find out which corresponds to the map tileset that will be replaced, we will select "Matrix" and "Headers". In the place where our map is 0000 0411 header appears, double click it. Switch to the window "Headers", where we can edit things like music, the tileset in use ... (Equivalent to the headers of GBA) We will see that the second column indicates the number using the map tileset is ie the Tileset 6.

Select "Maps", "3D view" and select to "Import". We select our map .nsbmd (which must be in the same folder as SDSME) and select the tab to tileset 6.

Adding Back Textures
Do not panic, the map will have no textures loaded and look bad, time to fix it.

To solve the problem we can use two methods:
  • The easy method. (It is useful to import only one map and try it because it will modify all maps with tileset 6) (Recommended if your first map)
  • Less easy method. (It's the best of the 2 but it takes a little more time and requires a hex editor. It doesn't modify the tileset, so it will not spoil the rest of maps)

Each method below is explained:

Easy Method
In SDSME go to "Maps" and then "Tilesets", select the appropriate tileset of our map and go to "import". We will import the file created earlier with our maps .nsbmd, which is the file .nsbtx exported earlier.

If select "3D View" and load the tileset 6 tab on the bottom, we see see the map perfectly (can be somewhat smaller, but in the rom it will correctly load):

Hard Method
For this method we will use a program like Cygnus, a hex editor. We will modify the file .nsbmd and make it use the original game tileset and not alter the appearance of other maps. To do this open the map .nsbmd with Cygnus and save it as another file that can be called mapa_tex.nsbmd. (Make a copy in case it breaks the original).

When opened you will see a combination of numbers and letters very complicated in the left column, but let's just look in the right column. Here we see 3 "blocks" that will give us useful information on the map.
  • The 1st indicates the amount of the material (3 in our case) We do NOT modify it.
  • The 2nd says the amount of the textures on our map (3 in our case).
  • The 3rd shows the amount of the pallets used in our textures (3 and above).

We will edit the 2nd and 3rd so that the name of the textures and palettes are the same as tileset 6 in game. But how do we know what texture is "0_t" or "1_t"? Very easy, open MKDS Course Modifier and open our texture file created with our map .nsbmd, the .nsbtx file.

We can now see which is which. To learn the names of these textures in the game, go to SDSME "Tilesets" section and select the tileset for the map that will be replaced. Now we can search the list of textures and palettes for these names.

Now that we know what they're called in the game and which is each, swap them out in Cygnus and write their names in this way:

NOTE: NEVER delete data in Cygnus as it can break the whole file. (This must be the same size always) Also, you can modify data other than the names of the textures and palettes. If you want to delete the name of the texture because it was wrong, write 00 in the appropriate place in left column.

Now we can import our mapa_tex.nsbmd in SDSME. It will look as follows (may be somewhat smaller, but in the rom will correctly show):

Adjust The Height Of The Map

We have imported our map correctly, now there is only a small step left: Setting the correct height map. (This is because the original map of Greenleaf Village has an elevation of 0.5 m that we have not done in Sketchup).

Go to "Matrices", "Alter edge maps" and the area which is out map, change the 00 for a 02.

We now "Save Current" and "Save ROM ...".

We're done, test the rom on an emulator and this is the result:


Linkandzelda is offline   Reply With Quote
Likes mewthree9000 liked this post
Sponsored Links
Old 31st October 2013, 06:11 PM   #2
Junior Trainer
mewthree9000's Avatar
Join Date: May 2010
Location: U.S.A.
Age: 28
Posts: 70
mewthree9000 mewthree9000

This must have taken forever to translate! This is definitely one of my favorite tutorials from Whack A Hack. :3
We all fight a war within ourselves, a war of greatness, a war to become the best.
Gotta Hack'em All!!

My current projects:
-Pokemon ChaosBlack[v2]
-!!Elite FireRed ROM Base!!
mewthree9000 is offline   Reply With Quote
Likes Linkandzelda liked this post
Old 31st May 2014, 07:25 AM   #3
Remixer/DS Music Hacker
Join Date: Sep 2013
Location: Lilycove City, Hoenn
Age: 27
Posts: 3

This will definitely come in handy on my project. Thank you for this translated tutorial as i will have to use sketchup to "build" places like cinnabar island and various other locations from the gen 2 specs. I was dreading figuring this one out lol. On another note, The ability to import parts of a map will be very useful later as i can import many parts of the b2w2 maps on existing HGSS ones to give Kanto that modern feel. Much better than having to texture edit, and very useful as the trees in b2w2 are fully rendered in 3d vs that pseudo 3d tile layer in D/P/PLT/HG/SS
3dd13 is offline   Reply With Quote
Old 26th December 2015, 05:06 AM   #4
Sliter's Avatar
Join Date: Dec 2015
Posts: 2

First of all than you! I was crazy looking how to edit maps for a idea on platinum and I can't find a complete tutorial like this or someone to helpe me!! I'm really very grateful!

Second is that FluidImporter isn't free anymore, just a limited trial :B I can't find a free bj importer as well.. but I can open OBJ in blender , so the problem would be the measures that is very precise in scketchup, but in blender :B
any idea how I can solve the .obj importing?

Now heading to look for inserting npcs and stuff on these little awesome new maps hehhe
Sliter is offline   Reply With Quote

converting, creating, d or p or pt or hg or ss, importing, maps, nds, [Tutorial]

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT. The time now is 01:23 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc. User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2019 DragonByte Technologies Ltd.
Feedback Buttons provided by Advanced Post Thanks / Like (Lite) - vBulletin Mods & Addons Copyright © 2019 DragonByte Technologies Ltd.
Pokémon characters and images belong to Pokémon USA, Inc. and Nintendo.
Pokémon Hackers Online (PHO) is in no way affiliated with or endorsed by Nintendo LLC, Creatures, GAMEFREAK inc,
The Pokémon Company, Pokémon USA, Inc., The Pokémon Company International, or Wizards of the Coast.
All forum/site content (unless noted otherwise) and site designs are © 2006-2013 Pokémon Hackers Online (PHO).
Green Charizard Christos TreeckoLv100

"Black 2" by ARTPOP. Kyurem artwork by XOUS.

no new posts