Pokémon 4th Gen Mapping

I've finally gotten to know how to do map editing on the DS, although part of it is still touchy. I'll split this into several sections and cover each part of it.

Table of Contents
  • 1. What you need
  • 2. Exporting a map
  • 3. Editing a map
  • 4. Importing a map
  • 5. Movement Permissions and objects
  • 6. Headers and the Map Matrix
  • 7. Credits and Final Info
What you will need
  • Spiky's DS Map Editor (SDSME) - You can get the latest version from this thread. (Version 1.1 Min. required)
  • Nintendo NITRO SDK Plugins for either Maya or Autodesk 3DS Max (You can find these in a copy of the NITRO SDK. You'll have to Google for these, however, as they are copyright Nintendo.) and the program G3DCVTR, also in the SDK.
  • MKDS Track Editor (You can find the required version here)
  • Google Sketchup (Or another similar 3D editor that can import OBJ files. Note: If you're using Sketchup 8, download this (Click the orange Download button!) and install it, as it will allow importing of OBJ files.) Note: This is a paid program after the 8-hour limit, so it's up to you on what to do from there.
  • 3DS Max 6 OR Alias Maya versions 5.0, 6.0, 6.5 or 7.0 (Depending on what version of the SDK Plugin you want to use) (Note: These are paid programs, so it's your choice on how you plan to obtain these programs.)
Exporting a Map

To begin with your map editing, you'll want to export your map. To begin, download and open SDSME, and open your Rom of choice. Wait for it to open the Rom and simply dismiss the Headers Found messagebox. Afterwards, you're free to do whatever you wish, but for our needs, click the Matrix Editor tab, then underneath, click the Map Files sub-tab, as seen in the image below:
cWVQ1.png

Now, we must find the map you wish to edit. The map matrix is in the shape of the region of the game you're editing, so find the location that it is on that map, then double-click on the location where it is. Large locations are split into multiple maps as well, such as Jubilife City(DPPt) or Goldenrod City(HGSS). From here, we're going to export our map. Click the "Export" button underneath the 3D Model section. Save it to a location of your liking.

Note, however, that it's in .nsbmd format, something we can't really edit yet. That's where the MKDS (Mario Kart DS) Track Editor comes into play. Now, just because it's for MKDS doesn't mean we can borrow other useful parts of the program for our needs. Start MKDS Editor, then click Tools, go to NSBMD, then click "Convert to OBJ".
KGxXn.png

Browse to your NSBMD file you exported with SDSME, then click OK. Another box will pop up, a save file dialog, so choose the location where you want the OBJ to be saved. When typing in the name of the file, remember to add ".obj" to the end of it, it will save you much time later on. Click OK, then the program will export the NSBMD to OBJ. Now, close MKDS Editor, as we will not need it anymore. Now open Google Sketchup (Or whatever program you use to edit models), and import the OBJ file. Congratulations! You've successfully exported your map file!

Editing a Map This part is geared towards Google Sketchup 8. Therefore, your mileage may vary.
To import your map into Sketchup 8, ensure the plugin from fluidray is installed first. If not, click the link above to go to the download page, download and install the plugin. Then, restart Sketchup 8. From here, you'll want to start a new project, then delete the person that's standing at the origin of the 3D area, by clicking him/her, then pressing the Delete button on your keyboard. Now, go File -> Import... and select your OBJ file you exported with the MKDS editor. If Obj Files is not in your filetypes list, ensure the fluidray plugin is installed properly.

From here, a window will pop up. Leave everything as it is, except for Flip YZ. If you believe your settings are different, compare them with the settings below:

Units: Meters
Flip YZ?: Yes (Doing so will set the map in the correct orientation. You can say No, and fix this later, but to prevent pains down the road, just set this to Yes.)
Triangulate Polygons?: Yes (And please keep this to Yes. It will prevent pains later on!)
Ignore Material Library?: Set this to No.

Now, after you've clicked OK, the map file, with all it's textures, will be attached to your mouse for you to position. For simplicity's sake, place it on the Origin. You'll know it's on the origin, because it shows "Origin" in a popup window beside your mouse, like in the image below:
ri1bv.png


From here, you're free to edit your maps. To break it down, select the map, then go Edit -> Component (It's the bottom option), and in the pop-out menu, click Explode. It will break it down into components, which in themselves, can be exploded in the same way. From there, you can select polygons, move them, expand them, add them, remove them, and so on and so forth. Once you're all done, go Export, click on 3D Model in the popout menu, then save it as an OBJ file. You are now done editing the model. We now begin the long, tedious task of importing the model.

Note: When importing a model, the MKDS Editor will add a white, textureless box to the bottom of the model It is safe to remove, well, unless you wanna keep that there.

Importing a Map
(To be added later, as I need to perfect this.)

Movement Permissions and objects
Movement permissions are the most essential part of any map. They determine where grass is, where you can surf, where sandy slopes are, and more. To edit movement permissions, head back to the Map Editor tab on your chosen map of question. All the different parts represent movement permissions- whether they can be walked through, or if you can surf on it. The following spoiler contains a partial list of all the movement permissions for Diamond and Pearl (Feel free to document the rest, and for those of other games!)
00 - Any movement
01 - Any movement
02 - Grass
03 - Tall Grass
04 - Any movement
05 - Any movement
06 - Any movement
07 -
08
09
0A
0B
0C
0D
0E
0F
10 - Surf
11 - Surf
12 - Surf
13 - Waterfall (Top of)
14 - Surf
15 - Surf
16 - Splash puddle
17 - Splash Water (For Routes)
18
19
1A
1B
1C
1B
1E
1F
20
21 - Sand
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38 - Jump Right ledge
39 - Jump Left ledge
3A
3B - Jump down ledge
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C - Rock Climb paths
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F - Indoor stairs - Highest point
60
61
62
63
64
65
66
67
68
69 - Door entrance
6A
6B
6C
6D
6E
6F
70 - Top/Bottom of sandy slope (Initates movement action, Layer change)
71 - Middle sections of sandy slopes (Layer change, over/under interaction)
72
73 - Bridge with no under interaction
74
75
76 - Single-width bike paths
77
78
79 - Single-width bike paths (U-D, Sand underneath)
7A - Single-width bike paths
7B
7C - Single-width bike paths
7D - Single-width bike paths (L-R, Sand underneath)
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9C
9E
9F
A0 - Berry Soil
A1 - Snow - 1 layer deep
A2 - Snow - 2 layers deep
A3 - Snow - 3 layers deep
A4 - Swamp Walkable
A5 - Swamp Fall-in step
A6
A7
A8 - Snow
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9 - Top of Sandy Slope (Desert)
DA - Bottom of Sandy Slope (Desert)
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF

To edit a movement permission, click on a tile, then change it's value to one in the list above. Press Enter on the keyboard when you're done, and it will set the value of that tile. Of course, you can also set the ability for a tile to be passable or non-passable. To do this, select a tile, then in the top-right part of the window, choose between "Free Passage" or "No Passage". When done editing, click "Save Current" in the lower-left section of the window beside the movement permissions editor to write the changes to the map file. That's all there really is to editing movement permissions, but what about objects, like houses or fountains?

To add a new object (Or edit an existing one), click the "Edit Buildings" button under the "Buildings" header. From here, a models list and a preview window (With your movement permissions) will show up. Select a building. To change what kind of building/model it is, change the Model Index number in the numeric number changer. If you don't know what it looks like, click the View button to preview it. The Command Prompt window that appears will provide instructions on how to manipulate the program. They are as follows:

-Left Button held will rotate the model.
-Right Button hold will zoom the model.
-T toggles textures on/off
-C toggles vertex colors (Not sure what this does, but okay)
-W toggles wireframes (You can see a wireframe by disabling textures)
-B toggles backface culling (What this is, is when you view a model from the back, you won't see anything. Enable this and you can see a model from the back with a mirrored image of the texture on the front side. It's easier to see this in action though, so just try it when you use the program.)
-F toggles texture filtering (It will make the textures smoother, like it's rendered in a DS game if enabled.)
-P toggles polygons (Some parts of models will disappear/appear when toggled)

You can use that window to preview objects. If the model does not appear, that's because in the header, the textures 2 header byte does not display that object. Edit that header bit to change the model textures. (This will be explained later)

You can change the width/height/length heights as well, with the text fields at the bottom of the Buildings window, and you can change the X/Y/Z co-ordinates of an object. Note, though...

X - Move an object left or right
Y - Move an object higher or lower from the surface of the map
Z - Move an object up or down

When done, click "Save Current", then just click the X in the top corner.

Headers and the Map Matrix
Headers are what allows you to choose what song plays on a map, weather, script sets, and more. To choose the proper map's header, head to the Matrix Editor, then click the Map Headers sub-tab.
zq5qd.png

This also, like the map data tab, looks like the region of the map in your respective version. Find that map, then double-click on it. It will bring you to the headers tab with the respective header for that map highlighted.

For the weather tab, you can replace that number with any of the following values (DPPt Only!) :
01 = Dark
02 = Rain 1
03 = Rain 2
04 = Rain 3
05 = Snow 1
06 = Snow 2
07 = Snow 3
08 = White background
09 = Ash rain 1
10 = Ash rain 2
11 = Diamond rain (Birthday-Event)
12 = Earthquake
13 = Hall of beginning
14 = Fog 1
15 = Fog 2
16 = Dark cave 1
17 = Flash and lightning

Music can be any of the following DP values (I'm too lazy to translate) :
1000: Mysterious zone
1001: Nothing
1004: Twinleaf town
1005: Sandgem town
1006: Floa
1007: Trostu/Weideburg (Day)
1008: Kahlberg (Outside) Route 225/226/227 (Day)
1009: Erholungsgebiet/Kühnheitsufer/Route 213 (Day)
1010: Jubilife city (Day)
1011: Fleetburg (Day)
1012: Erzelingen (Day)
1013: Elyses/Ewigenau (Day)
1014: Herzhofen (Day)
1015: Trostu/Weideburg (Day)
1016: Schleide (Day)
1017: Sonnenwik
1018: Blizzard
1019: Pokémon league (day)
1020: Battle area/Survival area (Day)
1021: Route 201
1022: Route 203/218 (Day)
1023: Route 205/West-211 (Day)
1024: Route 206 (Day)
1025: Route (Day)
1026: Route East-211 (Day)
1027: Route 216 (Day)
1028: Route 228/229 (Day)
1029: Prof. Rowan's labor
1030: Search for the red Gyarados
1031: Ewigenau
1032: Route 205
1033: Twinleaf town
1034: Sandgem town
1035: Flori
1036: Trostu/Weideburg (Night 2)
1037: Kahlberg (outside) Route 225/226/227 (Night)
1038: Erholungsgebiet/Kühnheitsufer/Route 213 (Night)
1039: Jubilife city (Night)
1040: Fleetburg (Night)
1041: Erzlingen (Night)
1042: Elyses/Ewigenau (Night)
1043: Herzhofen (Night)
1044: Trostu/Weideburg (Night)
1045: Schleide (Night)
1046: Sonnenwik (Night)
1047: Blizzach (Night)
1048: Pokémon league (Night)
1049: Battle area/Survival area (Night)
1050: Route 201
1051: Route 203/218 (Night)
1052: Route 205/West-211/Valley windworks(Night)
1053: Route 206 (Night)
1054: Route (Night)
1055: Route Ost-211 (Night)
1056: Route 216 (Night)
1057: Route 228/229 (Night)
1058: Elyses/Ewigenau (Special)
1059: Route 205 (Special)
1060: Underground
1061: Basis-Fahne geklaut!
1062: Siegesstrasse
1063: Secret melody
1064: Grusel-song
1065: Trio cave
1066: Platz der Treue
1067: Team Galactic 1
1068: Team Galactic 2
1069: Grossmor
1070: Trio lake
1071: Kraterberg
1072: Speersäule
1073: Kahlberg
1074: Cave 1
1075: Cave 2
1076: Pokémon League(inside)
1077: Hall of fame
1084: Prof. Rowans laboratory
1085: Pokémon Center (day)
1086: Pokémon Center (Night)
1087: Gym
1088: Ruhmeshalle
1089: Knursperei/Contest hall
1090: Pokémon Mart
1091: Game Corner
1092: Duellturm
1093: Jubilife city TV station
1094: Secret laboratory (Team Galactic)
1100: Trainer spotted! (Teenager)
1101: Trainer spotted! (Planscher)
1102: Trainer spotted! (Rocker/Policeman/Psychic/Schwarzgurt)
1103: Trainer spotted! (Team galactic grunt)
1104: Trainer spotted! (Umbrella lady/Beauty)
1105: Trainer spotted! (Runemaniac/Explorer)
1106: Trainer spotted! (Gambler)
1107: Trainer spotted! (Angler/Sailer)
1108: Trainer spotted! (Forscher/PKMN-Sammler)
1109: Trainer spotted! (Ass-Trainer/PKMN-Ranger)
1113: Elite four battle!
1114: Champion Cynthia battle!
1116: Wild Pokémon
1117: Gym theme
1118: Trio
1119: Trainer
1120: Team galactic boss: Cyrus
1121: Dialga/Palkia
1122: Champion Cynthia
1123: Galactic Rüpel
1124: Rivale
1125: The god pokémon: arceus
1126: Legendary Pokémon
1127: Pokémon caught
1128: Trainer sighted
1129: Gym leader meeting
1130: Champion Cynthia meeting
1131: Team glactic Commander/Rüpel meeting
1132: Team galctit boss: Cyrus
1133: Elite four meeting
1134: Team galactic Commander: Jupiter/Mars/Saturn
1136: Elite four
1138: No Chase
1139: Rival spotted!
1140: Verbrecher!
1141: Pokémon trade
1144: Dialga/Palkia enters our Dimension 1
1145: Dialga/Palkia enters our Dimension 2
1150: Poké-Radar
1151: Surf song
1152: Bicycle Theme
1169: Knursp-House
1171: Ruhmeshalle 2
1172: Intro
1173: Titlescreen
1174: Wi-Fi 1
1175: Wi-Fi 2
1176: Contest dancing-song 1
1177: Contest dancing-song 1
1178: Contest dancing-song 1
1179: Contest dancing-song 2
1180: Contest dancing-song 2
1181: Contest Price ceremony
1182: Contest Winner
1183: Knurspe backen
1186: Credits
1187: Knurspe backen

Camera can use these values (DPPt Only) :
00 - Basic 3D
04 - Basic 2D
05 - 3D Like on Spear Pillar
08 - 3D Camera high placed, like on Stark Mountain
09 - 3D Better sight, like in the Eterna City arena
14 - 3D Little dwarfs in a world of giants, like in Hall of Origin

Note: If you use the "Music Modifier", Weather Modifier, or Motion 3D Action Replay codes, the value you input into the calculator will be the same value you can use in these tabs.

And with that, this concludes the DS Mapping Tutorial.

Credits and Final Info
I'd like to give my thanks to a few people and groups:
  • Spiky-Eared Pichu/Markitus95 for the amazing editor and for telling me some of these bits of info that got this tutorial going
  • Gericom for the MKDS Track Editor
  • The creator of the NSBMD viewer
  • Nintendo for the super-useful plugins
  • Google for Sketchup
  • Alias for Maya
  • Autodesk for 3DS Max
  • Kodewerx for the Header values
Changelist:

This tutorial was written by Team Fail. If you wish to publish this tutorial on another site, please PM or VM me and we can discuss such options. In saying so, please do not post without express permission from me. If you find any unauthorized copies of this thread on the internet, please PM me at http://gbatemp.net/index.php?app=members&module=messaging&section=send&do=form&fromMemberID=261213.
 
  • Like
Reactions: 2 people

loco365

Well-Known Member
OP
Member
Joined
Sep 1, 2010
Messages
5,457
Trophies
0
XP
2,927
the creator of MKDS Track editor is Gericom

and I would love to see where this goes from here.
Awesome! Thanks! *Adds to credits*
Damn, and here I thought it was purely tile-based.

The engine seems even more impressive now.
I totally wish they were tile-based. I find it bizarre that movement permissions are tile-based, though.
 

Rydian

Resident Furvert™
Member
Joined
Feb 4, 2010
Messages
27,880
Trophies
0
Age
36
Location
Cave Entrance, Watching Cyan Write Letters
Website
rydian.net
XP
9,111
Country
United States
Well if the movement and maps are different it opens up more artistic freedom. Kinda' like 3D games having a different collision box than the actual levels and models indicate. If all videogame characters were boxes/cylinders and all the levels had to represent the actual collision boundaries things would look a lot more bland.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: @NinStar, Who's whipping who?