ROM Hack Super Mario 64 DS editor

  • Thread starter Thread starter Arisotura
  • Start date Start date
  • Views Views 84,028
  • Replies Replies 363
  • Likes Likes 2
I did not know that the source code is written in C++/CLI, which is something I haven't learned before.

I'm unable to do anything about the code.
frown.gif


Thank you though.
 
I went and fished the link to those sources for you: Here you go

Also, I'm thinking about releasing a beta of SM64DSe v2.0 (yeah it won't be v1.1-- decided it may be confusing with v1.01, and major changes deserve this new version number). It was originally planned for that beta to have the experimental model importing, but there's a fairly high chance that it won't be in because collision is a fucking pain in the ass to handle. Instead, it will have more level edition features.

(On second thought, I may let the importer in if you guys really want it-- but with a warning that it may very well screw up as it's experimental)

Opinions?
 
I say, put it in. VL-Tone decided to hold off with his importer for the Toad's Tool Program. It got delayed years and now he put it on hold indefinitely.
frown.gif


So you never know what could happen, so for me it would be great to have at least one of the two have a good importer to play with (even if incomplete). In the unlikely event you have to stop working on the program, someone could finish it down the road since the source is available with your app too.
 
I like the Easter Egg idea. This would be great for preventing the new users from accidentally screwing up their game and running to the forums and spamming things (the main reason I think VL-Tone held back on his) but allow the more experienced users find it.
biggrin.gif


Very nice. I noticed you will have model exporting. This will would make editing existing levels like Castle Grounds and such a lot easier. That and I also have a FPS game that I mod and would love to port some levels into it. I already ported some levels from Mario Kart games from Mario Kart DD and Mario Kart Wii.
biggrin.gif



Also I had an idea of converting the first bowser level entrance from the falling trap to the actual painting. (in fact, none of the bowser levels were entered via paintings. The 1st was the falling trap and the last two were jump in holes.
tongue.gif
)

But I have a feeling the model for the room/castle area itself would require editing to the collision mapping so as to rid the invisible wall that prevents Mario from approaching the painting.
frown.gif


As for the planned buggy importer, I bet it would be most useful in adding non solid things like scenery that would be outside of the level bounds. Would the importer allow some form of editing of the collision to account for this or would this be something that won't make it till the final beta.

Oh also, would I be able to add new pipes (and in turn new warp objects) so I could use them in levels to get to secret areas and such? Pipes was the one thing that there wasn't a whole lot of in this game in respect to the classic side scrollers and I always wanted to add more of them. Perhaps in the far future, new level slots can be created and whole hidden levels can be made to be accessible through the pipes just like the classic 2D games.
biggrin.gif
 
Mega-Mario said:
It will be in, as well as some other features. There is a whole list in my latest blog post.

Also, I had an idea, for the beta release making the model importer an easter egg rather than a direct button... what d'you think?
I wouldn't say an easter egg, but make it well hidden, or make an "Advanced Option" function. I'd love to try fooling around with it for teh lulz.
 
Alright tried the new editor....nothing works. <img src="style_emoticons/<#EMO_DIR#>/frown.gif" style="vertical-align:middle" emoid=":(" border="0" alt="frown.gif" />

I can edit the level and such like the old editor, but all my attempts results in the game not booting. (tried both booting with patch mode and clean mode). First attemp, I tried adding peach to castle 1st level. No go, rom didn't boot.

Then tried adding Warp Pipe with the same set of behaviors used on Tiny Huge Island...rom didn't boot.

Then added proper entrance/exit warps to my new warp pipe and linked it to a warp pipe I placed in the General Purpose test map. However after setting up the pipe and warps in the General Purpose Test Map I then get a exception and the editor crashes when I try to load that level. So I could no longer load the level without a crash. Tried the rom anyway...didn't boot. I know it's not because I'm adding objects that aren't in the object bank for the levels. They show up in the object list and I assume the others that are highlighted in red are the ones not in the object bank for that level. The warp pipes I added were not highlighted red, nor was Princess Peach.

Also noticed that it won't load the multiplayer version of Castle Grounds. It just crashes when I try to.


Sigh and I was really looking forward to this one. <img src="style_emoticons/<#EMO_DIR#>/frown.gif" style="vertical-align:middle" emoid=":(" border="0" alt="frown.gif" />

EDIT: Here's a post of the exception text from the crash dialog after I attempt to reload my edited "General Purpose Test Map":

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->System.IndexOutOfRangeException: Index was outside the bounds of the array.
ÂÂ at SM64DSe.INitroROMBlock.Read32(UInt32 addr)
ÂÂ at SM64DSe.LevelEditorForm.AddPointer(UInt32 _ref)
ÂÂ at SM64DSe.LevelEditorForm.ReadTextureAnimations(UInt32 offset, Int32 area)
ÂÂ at SM64DSe.LevelEditorForm.LoadLevelData()
ÂÂ at SM64DSe.LevelEditorForm.glLevelView_Load(Object sender, EventArgs e)
ÂÂ at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl()
ÂÂ at System.Windows.Forms.Control.WmShowWindow(Message& m)
ÂÂ at System.Windows.Forms.Control.WndProc(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: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3623 (GDR.050727-3600)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
SM64DSe
ÂÂÂÂAssembly Version: 1.0.0.0
ÂÂÂÂWin32 Version: 1.0.0.0
ÂÂÂÂCodeBase: file:///C:/Documents%20and%20Settings/Spenser/Desktop/SFRdemo/v2/SM64DSe.exe
----------------------------------------
System.Windows.Forms
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3623 (GDR.050727-3600)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3620 (GDR.050727-3600)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
OpenTK
ÂÂÂÂAssembly Version: 1.0.0.0
ÂÂÂÂWin32 Version: 1.0.278.44921
ÂÂÂÂCodeBase: file:///C:/Documents%20and%20Settings/Spenser/Desktop/SFRdemo/v2/OpenTK.DLL
----------------------------------------
System.Xml
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3082 (QFE.050727-3000)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
OpenTK.GLControl
ÂÂÂÂAssembly Version: 1.0.0.0
ÂÂÂÂWin32 Version: 1.0.278.44921
ÂÂÂÂCodeBase: file:///C:/Documents%20and%20Settings/Spenser/Desktop/SFRdemo/v2/OpenTK.GLControl.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.<!--c2--></div><!--ec2-->


Here's the crash text I get when I tried to load the multiplayer version of castle grounds:

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
ÂÂ at SM64DSe.NitroROM.GetFileFromInternalID(UInt16 intid)
ÂÂ at SM64DSe.LevelEditorForm.LoadLevelData()
ÂÂ at SM64DSe.LevelEditorForm.glLevelView_Load(Object sender, EventArgs e)
ÂÂ at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
ÂÂ at System.Windows.Forms.Control.CreateControl()
ÂÂ at System.Windows.Forms.Control.WmShowWindow(Message& m)
ÂÂ at System.Windows.Forms.Control.WndProc(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: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3623 (GDR.050727-3600)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
SM64DSe
ÂÂÂÂAssembly Version: 1.0.0.0
ÂÂÂÂWin32 Version: 1.0.0.0
ÂÂÂÂCodeBase: file:///C:/Documents%20and%20Settings/Spenser/Desktop/SFRdemo/v2/SM64DSe.exe
----------------------------------------
System.Windows.Forms
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3623 (GDR.050727-3600)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3620 (GDR.050727-3600)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
OpenTK
ÂÂÂÂAssembly Version: 1.0.0.0
ÂÂÂÂWin32 Version: 1.0.278.44921
ÂÂÂÂCodeBase: file:///C:/Documents%20and%20Settings/Spenser/Desktop/SFRdemo/v2/OpenTK.DLL
----------------------------------------
System.Xml
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3082 (QFE.050727-3000)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
ÂÂÂÂAssembly Version: 2.0.0.0
ÂÂÂÂWin32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
ÂÂÂÂCodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
OpenTK.GLControl
ÂÂÂÂAssembly Version: 1.0.0.0
ÂÂÂÂWin32 Version: 1.0.278.44921
ÂÂÂÂCodeBase: file:///C:/Documents%20and%20Settings/Spenser/Desktop/SFRdemo/v2/OpenTK.GLControl.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.<!--c2--></div><!--ec2-->

I'm pretty sure I might need to work on figuring out how to set up the warps, but the lone warp pipe I couldn't add to the map without the rom not booting anymore. I even tried changing an existing object to the warp pipe. Seems any change done whatsoever results in the rom not booting anymore.

I am using a DSTWO as my flashcart by the way.

I will now try and see if one of my DS emulators will run the rom.

EDIT:

Ok it boots in the emulator....Something the editor is doing is not making it work on the real hardware. Please find a fix for this. It would be great to be able to play the edited rom on my real DS. (a 3DS in this case)

Warp Pipe works...sorta....White screen after the act screen. Probably linked to wrong entrance. But can't go back to the map it's linked too because the editor crashes. <img src="style_emoticons/<#EMO_DIR#>/frown.gif" style="vertical-align:middle" emoid=":(" border="0" alt="frown.gif" />

That or perhaps I just can't have warps lead to the test map. (since the test map is essentially a free level slot I can use to import a model into. <img src="style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> )

I'll continue working with the warps and perhaps set it up as a door instead.

EDIT Again:

Succesfully set up a warp pipe to send mario to Tox Box Test map. Glitched act screen appears, but does not white screen on me and the level loads. <img src="style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" /> Yay, one free level slot to use for whatever I want. <img src="style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" />

EDIT:

Found the cause of the level crash. As soon as I changed the entrance behavior (Parameter 5 in this case) from 78 to 6A0, the level no longer loads in the editor. I bet level entrance warp settings are why some of the multiplayer levels are crashing the editor?

Ok I gave up. The level editor is too unstable at this point. The moment I do any significant warp object editing, the editor crashes on the next load attempt of the level which essentially destroys the level as I no longer have access to it. It seems to crash when I edit the entrance warp or when I tie a warp pipe to it. I'll wait till a more stable version comes out.

Here's what I managed to do with the editor. I decided not to add a exit warp or warp pipe to the custom level due to the above mentioned crash issues:

<a href="http://www.youtube.com/watch?v=h2GNC4DF8yA" target="_blank">http://www.youtube.com/watch?v=h2GNC4DF8yA</a>

Here's what the custom level mesh I made looks like in the N64 version of the game to give you an idea on how it should look:

<a href="http://www.youtube.com/watch?v=b2MxSUbK2PA&NR=1" target="_blank">http://www.youtube.com/watch?v=b2MxSUbK2PA&NR=1</a>

Texture mapping is a bit off in some places in respect to the N64 version. (affects mainly the toad houses and pipes)

Note the custom terrain within the brick fence was made from scratch by me. The pipes, toad houses and the brick wall fence was ported from Mario Kart Double Dash (pieces of the Pipe Plaza map). The Bridge came from Battlefield Heroes.


Can't wait till the next version. That one will have the exporter and hopefully less crash issues. <img src="style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" />

Oh and one last thing, what size textures can I use with the importer? I used the existing 32x32 (and some are 32x64) which were the max size the N64 version of the game could handle. Does the DS game handle higher res textures? 64x64 or perhaps 128x128? Haven't seen any guidelines as to what resolutions are support for the textures.
 
* edited ROMs not loading on flashcarts
Shit. That old issue all over again. And the worst part, I have no clue at all what's causing it, and can't work on fixing it. Because ofcourse it works fine on my flashcart (Supercard One) >_<

* adding a warp pipe and an entrance causes a crash when reopening the level
Oh right. Gotta find out what's causing that one.

* multiplayer levels not loading
Gotta be the way those internal file IDs work, possibly the archive IDs are different for other ROM versions... gotta figure that out.

I hope I didn't miss other issues from your large post
tongue.gif
 
Hi mega mario, how can you import level ? I've downloaded Google Sketchup to export .obj files but when i import my .obj i see nothing on the map.

Where can i download compatible .obj map ? Can i try with your .obj files for testing the map?

Thanks
 
I used to own a Supercard DSone. I tried the v1.01 version of the editor on that and only issue I had was it not booting when trying to run the game in clean mode. Oddly it would then work after running in patch mode.

On the Supercard DSTWO and v2.0Beta, it won't boot at all in patch mode (freezes at loading screen). In Clean mode it will boot partially. I will see the nintendo logo and such, then after it fades to black nothing else ever happens.
frown.gif


Rydian said:
Gah, wanna' front-page now that it's out it but the first reply being a "doesn't work" sort of worries me, I'mma' wait on confirmation it works first.


Well as for warp editing it doesn't work very well due to crashes after warp edits. I have not tried a whole lot yet with adding other things yet. The level importer works, but the collision has bugs (as was expected).

That and it brakes the rom for the DSTWO which on top of issues with the R4 rules out a lot of people being able to play the game after it's edited. Emulators work I guess, but the only decent one has a crappy input plugin. Won't let me use the analog stick for the diagonal UP+Right, UP+Left, Down+Right, etc. (I have an adapter that allows me to use my gamecube controller on the computer. Works like a champ on Project64.
biggrin.gif
)

QUOTE(livetek @ Jun 27 2011, 08:08 AM) Hi mega mario, how can you import level ? I've downloaded Google Sketchup to export .obj files but when i import my .obj i see nothing on the map.

Where can i download compatible .obj map ? Can i try with your .obj files for testing the map?

Thanks

You may been in for a long road of trouble. It seems a lot of people over at the Toad's Tool forums run into all sorts of problems when using some of the free apps to make levels. I've been using 3DS Max 7 for my OBJ exporting. Never had any issues from it, but my modding experience with Battlefield 1942, Battlefield 2 helps I guess since I have been using 3DSMax a lot for other things like lightmapping and stuff.
biggrin.gif
 
livetek: Sounds weird... I don't quite get what's happening. Screenshot?

Also, I'm going to release a new beta today, that fixes some severe bugs, namely the aforementioned level crash/exceptions issues when editing warps. (from what I found, it could happen in any situation, really) Beta2 is out already. Fixes the bad bugs mentioned by Apache Thunder, such as possible level corruption when adding warps/objects/whatever.
 
The beta 2 have the same link of the beta 1 on your post ...
For my problem, can you upload a .obj file if it can be rendered on SM64dse ? Because on my .obj files made with Google Sketchup it doesn't work
 
Oops, my bad. Fixed.

Also, guess what'd be more helpful with that .obj issue? Upload one of your non-working models somewhere (my board's uploader can do
tongue.gif
), so that I can test 'em directly and fix the issue more efficiently
smile.gif



More generally, the R4 issue is being addressed-- I just hope I can find out what's wrong.
 

Site & Scene News

Popular threads in this forum