• 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.

Tool: Spiky's DS Map Editor (NOW OPEN-SOURCE)

168
Posts
12
Years
  • Seen Oct 10, 2013
I have a small update for you. I have been working on a native 3D renderer based on PG4Map and MKDS Course Modifier. Currently, maps can't be loaded with textures, only untextured or wireframed. Here's a picture of it:

Spoiler:


Next version will include that renderer (hopefully with texture support), a text viewer and a wild pokémon editor. Some glitches will be fixed as well ;)

Are you gonna be able to edit maps in next update??
 
58
Posts
11
Years
  • Seen Mar 4, 2024
I registered here just so I can tell you how awesome this is! You are doing something that will be appreciated by all Pokemon fans.
Will we be able to fully edit maps in a 3d viewer? I hope so! I would love to see that! Adding models, removing models and such would be very cool.
 

arpeejajo

King Of Muay Thai
36
Posts
16
Years
I have a small update for you. I have been working on a native 3D renderer based on PG4Map and MKDS Course Modifier. Currently, maps can't be loaded with textures, only untextured or wireframed. Here's a picture of it:

Spoiler:


Next version will include that renderer (hopefully with texture support), a text viewer and a wild pokémon editor. Some glitches will be fixed as well ;)

Wow that's wicked! Great work with the progress your making here. One thing that bugs me right now about the program is the map names. They're labeled as Map 0 and Map 1 and Map 2 and so on. It gets difficult to find the maps I'm looking for. Is it possible to put actual map names in a future update?
 

IStreamSandwich

[b][i]Returning to be your Shield[/i][/b]
126
Posts
11
Years
You are making extraordinary progress with this program ! I give you 5 *'s (If PC had the ability to.. so i'll just like your first post)
I think i'll hold off on this at the moment though as I'm not the type of person to keep up with updates and new features !
Good luck to you though !
 

VERGUNDAI

RomHacker, Unity 3D Maker
112
Posts
14
Years
After transferring my romhacking files to my laptop which had better 3D render-er and graphics card, my HGSS ROM doesn't work anymore when you load up the ROM you can play only to the name change. So i'm going to use a new HG ROM. In the meantime good luck to all those who are hacking 3D NDS Rom. I'm hoping in 2 weeks I might release Pokemon Hoen.nds! :) I've only loaded some maps through hex editing, but some maps are still white textured.
 
168
Posts
12
Years
  • Seen Oct 10, 2013
After transferring my romhacking files to my laptop which had better 3D render-er and graphics card, my HGSS ROM doesn't work anymore when you load up the ROM you can play only to the name change. So i'm going to use a new HG ROM. In the meantime good luck to all those who are hacking 3D NDS Rom. I'm hoping in 2 weeks I might release Pokemon Hoen.nds! :) I've only loaded some maps through hex editing, but some maps are still white textured.

In two weeks will we have a hoenn remake then?? Or wil it just be some changes??
 

Spiky-Eared Pichu

NDS Hacker/Researcher
257
Posts
14
Years
  • Seen Oct 2, 2019
Wow that's wicked! Great work with the progress your making here. One thing that bugs me right now about the program is the map names. They're labeled as Map 0 and Map 1 and Map 2 and so on. It gets difficult to find the maps I'm looking for. Is it possible to put actual map names in a future update?

Displaying map names in the map editor combobox is impossible, because maps are just files, which are later connected to a header that defines their in-game name. The closest workaround I could make is to display the map files' internal names. It would be shown in the format "Map Index: Internal Name". What do you say?
 

Spiky-Eared Pichu

NDS Hacker/Researcher
257
Posts
14
Years
  • Seen Oct 2, 2019
I've just finished adding internal names to map list. I tried my best. Here's a picture of it working:

maplistnames.png


Spiky when are you gonna upload the update??

The update will be uploaded when it's stable enough. That means:

  • Fixing the event editor
  • Adding wild support to HGSS
  • Adding something new to the matrix editor that I can't reveal yet
It will include the new 3D renderer in wireframe mode, as well as the old nsbmd viewer. When texture support is finished, the old viewer will be discarded.
 
168
Posts
12
Years
  • Seen Oct 10, 2013
I've just finished adding internal names to map list. I tried my best. Here's a picture of it working:

maplistnames.png




The update will be uploaded when it's stable enough. That means:

  • Fixing the event editor
  • Adding wild support to HGSS
  • Adding something new to the matrix editor that I can't reveal yet
It will include the new 3D renderer in wireframe mode, as well as the old nsbmd viewer. When texture support is finished, the old viewer will be discarded.

Ok are you gonna be able to edit the map then??
 

arpeejajo

King Of Muay Thai
36
Posts
16
Years
Displaying map names in the map editor combobox is impossible, because maps are just files, which are later connected to a header that defines their in-game name. The closest workaround I could make is to display the map files' internal names. It would be shown in the format "Map Index: Internal Name". What do you say?

If it isn't too much trouble for you, I'd definitely like this. Thanks so much for this program and the recent update is excellent!
 

thanethane98

Self Proclaimed Expert
82
Posts
11
Years
  • Seen Nov 16, 2013
Great, I'm glad to see that the event editor is fixed! I'm still working on a Firered ROM hack right now, but I'll be taking a look at this for future hacks.

Once again Spiky, this is an awesome tool, and the updates are making it even better!
 

Platinum Lucario

The Legendary Master of [color=#D8D48C]Light[/colo
1,607
Posts
16
Years
Yay! A brand new version of SDSME has emerged! Now it has it's very own map viewer based on MKDS Course Modifier. It makes me wonder if next version will have support for the beta textures in D/P/Pt, 'cause those textures caused NSBMD.exe to crash whenever NSBMD.exe loaded them onto the map.

Edit: I just found a bug in the editor. Whenever you save the header data, it messes all the other values up with other numbers and is uneven.

Simply open up Diamond/Pearl/Platinum, change any value such as the weather, click save and then your ROM will no longer be able to play, due to invalid header values.

I think I know what the problem might be, I think it has something to do with not adding the zeros to the decimal numbers like "1" instead of being "01", or it might be because it fails to put in the values. But I'm not sure, I'll check and see if this occurs in earlier versions of SDSME.
 
Last edited:

Spiky-Eared Pichu

NDS Hacker/Researcher
257
Posts
14
Years
  • Seen Oct 2, 2019
I just found a bug in the editor. Whenever you save the header data, it messes all the other values up with other numbers and is uneven.

Simply open up Diamond/Pearl/Platinum, change any value such as the weather, click save and then your ROM will no longer be able to play, due to invalid header values.

I think I know what the problem might be, I think it has something to do with not adding the zeros to the decimal numbers like "1" instead of being "01", or it might be because it fails to put in the values. But I'm not sure, I'll check and see if this occurs in earlier versions of SDSME.

I have never experienced such a problem before. I'll take a look at it, because I have no idea about what could be causing it. But try redownloading the tool again, because the first downloads of version 1.2.0 had a small bug with saving that was fixed 15 minutes later :P

EDIT: I haven't been able to recreate the bug. Pokémon DPPt just save headers fine, and HGSS save as well. However, the only possible issue I see could be related to binary compression. Binary files are compressed in HGSS, and SDSME decompressed them, but then doesn't compress them again. This shouldn't be a problem for the game, because I've done it many times and it still works (the game doesn't care if it's compressed or not). You should note that the game will be A BIT SLOWER at startup, so if you're getting a blank screen when the game loads, just wait a bit.

Yesterday night I made the permissions editor faster with the addition of a "Paint" button similar to that in Advance Map. Now you can edit tiles with a simple click :)
 
Last edited:

thanethane98

Self Proclaimed Expert
82
Posts
11
Years
  • Seen Nov 16, 2013
He's referring to movenent permissions - you no longer need to click a tile and set it's value. You can now pick a value from a list, then drag around on the map to place them, just like Advance Map.
Yeah, I know that. :)

It sounds like he's asking if you can use models from Black/White 2 in Diamond/Pearl ROMs though.
 

Platinum Lucario

The Legendary Master of [color=#D8D48C]Light[/colo
1,607
Posts
16
Years
I have never experienced such a problem before. I'll take a look at it, because I have no idea about what could be causing it. But try redownloading the tool again, because the first downloads of version 1.2.0 had a small bug with saving that was fixed 15 minutes later :P

EDIT: I haven't been able to recreate the bug. Pokémon DPPt just save headers fine, and HGSS save as well. However, the only possible issue I see could be related to binary compression. Binary files are compressed in HGSS, and SDSME decompressed them, but then doesn't compress them again. This shouldn't be a problem for the game, because I've done it many times and it still works (the game doesn't care if it's compressed or not). You should note that the game will be A BIT SLOWER at startup, so if you're getting a blank screen when the game loads, just wait a bit.

Yesterday night I made the permissions editor faster with the addition of a "Paint" button similar to that in Advance Map. Now you can edit tiles with a simple click :)
Ah, alright. I'll re-download it again and use the newer version to see if that could've been the issue.

Edit: Hm... odd, on Platinum it still has that problem. What I did was edit the weather header and then clicked "Save Header Data" then saved the ROM as header-test.nds

But when I tried editing the weather header in Diamond, then "Save Header Data" then saved the ROM as header-test.nds... it came up with this error:
Code:
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.DirectoryNotFoundException: Could not find a part of the path 'I:\Emulation\ROM Hacking\Nintendo Systems\Handheld\Nintendo DS\Tools\SDSME120\Data\NDS\data\fielddata\land_data\land_data\'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileSystemEnumerableIterator`1.CommonInit()
   at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler)
   at System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption)
   at NarcAPI.Narc.FromFolder(String folderPath)
   at WindowsFormsApplication1.Form1.saveROMToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.269 (RTMGDR.030319-2600)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
SDSME
    Assembly Version: 1.1.1.0
    Win32 Version: 1.1.1.0
    CodeBase: file:///I:/Emulation/ROM%20Hacking/Nintendo%20Systems/Handheld/Nintendo%20DS/Tools/SDSME120/SDSME.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.278 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.282 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.269 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
Tao.Platform.Windows
    Assembly Version: 1.0.0.5
    Win32 Version: 1.0.0.5
    CodeBase: file:///I:/Emulation/ROM%20Hacking/Nintendo%20Systems/Handheld/Nintendo%20DS/Tools/SDSME120/Tao.Platform.Windows.DLL
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
Tao.OpenGl
    Assembly Version: 2.1.0.12
    Win32 Version: 2.1.0.12
    CodeBase: file:///I:/Emulation/ROM%20Hacking/Nintendo%20Systems/Handheld/Nintendo%20DS/Tools/SDSME120/Tao.OpenGl.DLL
----------------------------------------
PresentationCore
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.275 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
WindowsBase
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.275 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Nice spiky. So you should be able to have bw 2 tiles in dp??
Yep, as long as you import the BMD0 and BTX0 files from B2/W2 into D/P/Pt, then you'll be able to have those models in the game.

Remember, in D/P/Pt... the building model data is stored in "./fielddata/areadata/area_build_model/area_build.narc", and the textures for building models are in "./fielddata/areadata/area_build_model/areabm_texset.narc". And so I realized something, "build" is a short word for "building". However earlier I was thinking it was meaning build as in "programming build". xD

Edit: Just remember, the building data is stored in a similar way to the map models in land_data.narc, so it shouldn't be any problem finding them in other games such as B2/W2 in the same way, just open them up with Tinke and use it's hexadecimal function to see if there's any "BMD0" data in them. If there is, extract whichever binary file and open it up in a hex editor such as HxD and do the same highlighting and pasting the BMD0 data onto a new file and saving as .nsbmd in the same way as you extract the data manually in this tutorial.
 
Last edited:
168
Posts
12
Years
  • Seen Oct 10, 2013
ok all this sound great. But i am really wondering when you gonna be able to actually edit the maps with only this tool.
 
Back
Top