SM64 ROM Manager (Info & Download)
#1
SM64 ROM Manager
Developed by Pilzinsel64

Download:

The SM64 ROM Manager is a brand new all-in-one tool for SM64 Hacking!
You can create wonderful SM64 Hacks with it. Using the onboard Level Manager, you can create and modify custom levels, edit text using the Text Manager, and many other tools which you can explore yourself!

I've spent a lot my of time in developing this program, which is very limited.

Tell me any issue you have and please be patient for wait for the next update. I will bring updates as often as possible.

Updates will be downloaded and installed automatically after you confirmed to do that.



Here is a list of things that are already finished:
  • Level Manager
    • Create and remove Levels easily.
    • Add and remove areas in your levels easily (with up to 8 areas per level).
    • Change the level ID easily (if the level is replacing level 1, you can easily change that to e.g. Level 2).
    • Set up many level dedicated settings every time.
    • Set up many area dedicated settings every time.
    • Select objects banks for your level (Optional).
    • Import and Replace Area Modes
    • Export Level Model & Collision
    • Export Object Models
    • One-0xE-Bank-Per-Area
      • This allows you to move the model size limit from per-level to per-area.
      • That means that now you have around 1.5 times as much space for a single area as you used to have for an entire level in the past.
      • Down in this post, I explained the system of it, so the developer can add support for Levels with this system.
    • Very fast Fast3D-Converter
      Supports over 40 different 3D File formats

    • Very dynamically auto-generated levelscripts and Bank 0xE
    • Water and fog boxes
    • 2D Camera per Area: Select Camera Preset 0xE and you can switch between 3D and 2D Camera.
  • Level Editor (included in the Level Manager)
    • Edit your custom levels using the area editor.
    • Open it from the Level Manager by double-clicking on the level or the area you want to open.
    • Add and remove objects to your current area (more than 300 objects per area, can be extendable)
    • Add and remove warps to your current area (more than enough for your needs)
    • Support for More Object Patch by Kaze Emanuar.
    • History-Feauture
    • Edit your Area Collision: Add/Remove/Edit Faces, Vertices and Special Boxes
    • Scrolling Textures
    • Choose Level BG: Custom, original Image or no background
    • Choose Area BG: Use Level BG or use a clear color
  • Music Manager
    • Enable or disable "Extended Music" hack.
    • Rename sequences.
    • Change NInst set of a sequence.
    • Import Sequences (.m64)
    • Export Sequences (.m64, .mid)
    • Add unlimited number of new sequences (the game's maximum is 127)
  • Model Converter
    • Import over 40 different model formats
    • Select full colors instead of grayscale fror Shading
    • Scale your model using decimal values
  • Text Manager
    • Edit all texts and parameters in dialogs table
    • Edit all level names
    • Edit all act names
    • Edit Peach's dialogue and credits.
  • Custom Model Importer
  • Patches & Tweaks
  • Path Editor
  • Item Box Content Editor
  • Star Position Editor
  • ...


Things on which I am currently working (or are planned as next):
  • Level Manager
    • Infinite level size hack (allows you to import levels bigger than the current limit).
  • Area Editor
    • Edit the original levels.
  • Several other Editors


FAQ and Information:


"Can I use my SM64 Editor made ROM with this tool?"
It isn't supported and never will be because there are too many bugs to solve in the ROM. Like the N64 compatiblity e.g.


But there is an experimental way to import your levels to a new ROM.
Just open a new ROM and goto "Level Manager". Click the arrow on the left of "New Level" and click "Import Level ..".
Then select your ROM (used by SM64 ROM Manager or SM64 Editor) and import any Custom Level that the ROM Manager is able to read.

"What happens if I edit the levelscript, geolayout or displaylist?"
Nothing. The SM64 ROM Manager reads the edited script and keeps the changes.

Note: After you changed something on the ROM outside the ROM Manager, you need to reload your ROM .

"Where are the Objects/Warps located"?

If the One-0xE-Bank-System is enabled, then the objects and warps are located in the "special" 0xE-Bank. This "special" 0xE-Bank will be loaded at parsing the levelscript and will be cleared at loading the first area. I can do that while the objects and warps will not be needed anymore after loading them. So, we have more space in the levelscript and for the area model, yeah!
If the One-0xE-Bank-System is disabled, then they are located in Bank 0x19 directly in the levelscript.


The One-0xE-Bank System explained:
In the Levelscript is an area table. The levelscript is mainly located in Segmented 0xE. So, the data for the current area is located at 0x19005F00 + AreaID * 0x10. The first four bytes shows the ROM address where the bank 0xE for this area starts. The second four bytes shows the ROM Address where the bank 0xE of this area ends. So, it is like a 0x17 levelscript command, but without the first four bytes of such command. But how do I know that the System is enabled? Easy. Just check the four bytes at 0x19005FFC. If they equal to 0x4BC9189A then the One-0xE-Bank-System is enabled. Otherwise, the 0xE Bank is per Level (as known from the SM64 Editor).

Please note: The One-0xE-Bank-System is not supported in SM64 Editor Levels (in converted ROMs).


"My Textures are offset a bit. Is it a bug?"
No, it isn't. The SM64 ROM Manager does everything right. The problem is your video plugin in your emulator. Many popular plugins does have this bug, such as GLideN64, Glide64, Jabos Direct3D, and some others. The texture is offset a half pixel then. But on a real N64 the textures are on the right place.
Read here an issue on GLideN64 plugin repository.

Any more questions? Any Errors/Issues? Any ideas or suggestions?
Let me know!
  • Ask questions
  • Explain errors in detail


Bug Reports & Feature Requests:

For Bug Reports please fill out this forular.
For Feature Requests please fill out this formular.



Credits:
  • Big thanks to Kaze Emanuar for coding some useful ASM codes, answering my questions and motivating me.
  • Also a very big thanks to all who supported me and believed in my new tool, which motivated me a lot.
  • With the public beta, I would like to give you all my thanks!


Links:

On my website, you will find the changelog and download.
Other tools that I have made for SM64 Hacking can be downloaded on my site.
Subscribe to my channel to get information about updates or new previews.
Reply
#2
SM64 ROM Manager
Developed by Pilzinsel64
Public Beta-Builds will be available soon!

Download:

SM64 ROM Manager - Version 0.1 - Beta

Please don't forget:
This tool is still in Beta, so don't expect that all is working 100% fine.
If you find bugs, please tell them me.
Also, there are many features missing, wich will come with updates from time to time.

Also, Converting SM64 Editor ROMs IS NOT SUPPORTED yet!
Just because it 100 times better to start with a clean ROM.
But if you try anyway, you will get some errors probably.

Updates will come nearly every day.

And now, enjoy it!

For developers:
If you want to support SM64 ROM Manager levels in your applications, you just have to add support for the One-0xE-Bank-System. It is explained in the main-post.
Reply
#3
Wow! Excellent work!
"An anime is only as good as its fan service." - A wise man
Reply
#4
Damn, we making history boys.
Reply
#5
A question, it will be some kind of substitute SM64 Editor?
Reply
#6
I seem to be getting an overflow exception when I try to import a level model. The models worked fine with SM64 Editor so I'm pretty sure they're ok
Reply
#7
(05-01-2018, 10:56 AM)keanine Wrote: I seem to be getting an overflow exception when I try to import a level model. The models worked fine with SM64 Editor so I'm pretty sure they're ok

Try the new update (v0.1.2).
If it still crashes, can you send me your obj file + mtl file + texture folder please? So I can debug it and see where the problem is.
Reply
#8
(05-01-2018, 01:41 PM)Pilzinsel64 Wrote: Try the new update (v0.1.2).
If it still crashes, can you send me your obj file + mtl file + texture folder please? So I can debug it and see where the problem is.

Unfortunately it still seems to be happening with the new update, also had to disable my Anti-virus to get it to run this time for some reason.
Here are the files I'm using. They were exported using Blender 2.79b


Attached Files
.zip   ex_m_map_all.zip (Size: 111.47 KB / Downloads: 116)
Reply
#9
was your rom opened with the SM64 Editor before
Reply
#10
(05-01-2018, 11:51 PM)poudink Wrote: was your rom opened with the SM64 Editor before

No I made sure to use a clean ROM, never touched by any tools or hacks. If I had to guess I'd say the issue seems to be more to do with the obj loading & conversion. The preview just shows a blue screen too.

Just realised I probably should have given the exception details in case it couldn't be replicated. Here's that:
Code:
************** Exception Text **************
System.OverflowException: Arithmetic operation resulted in an overflow.
   at SM64Lib.SM64Convert.Fast3DWriter.(Single , )
   at SM64Lib.SM64Convert.Fast3DWriter.(Object3D )
   at SM64Lib.SM64Convert.Fast3DWriter.(Object3D )
   at SM64Lib.SM64Convert.Fast3DWriter.ConvertModel(Stream s, ConvertSettings settings, Object3D input)
   at SM64Lib.Model.Fast3D.Fast3DBuffer.FromModel(ObjInputSettings ObjSettings, Object3D model)
   at SM64Lib.Model.AreaModel.FromModel(ObjInputSettings ObjSettings, Object3D vmap, Object3D colmap, String CollisionConfiguration)
   at R=\[N(b=vEad=<u"nWD\[T"!<2 (Object , EventArgs )
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at DevComponents.DotNetBar.ButtonX.OnClick(EventArgs e)
   at DevComponents.DotNetBar.ButtonX.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at DevComponents.DotNetBar.PopupItemControl.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)
Reply
#11
Version 0.1.3 is out!

Changelog:
• Probably fixed bug that some people have problems at loading their OBJ-Models
• Updated Texture-Resizing
• Updated Collada-File-Parser (is not finished yet)
• Fixed a overflow-exception at converting model
• Fixed few other bugs
Reply
#12
(05-03-2018, 06:24 PM)Pilzinsel64 Wrote: Version 0.1.3 is out!

Changelog:
• Probably fixed bug that some people have problems at loading their OBJ-Models
• Updated Texture-Resizing
• Updated Collada-File-Parser (is not finished yet)
• Fixed a overflow-exception at converting model
• Fixed few other bugs

Hate to be that guy but I'd rather let you know than sit around and do nothing.

I tried to import 4 sets of OBJ files, all with different results:
  1. The file I already attached to a previous post no longer gives me an error, however it hangs when Convert Model is pressed indefinitely.
  2. I tried re-exporting the same model and tweaking the export settings. This file imports without errors, however in the editor it displays as a huge blob of grey polygons.
  3. I decided to try making a very simple textured cube in Sketchup, exported to .dae, and then exported the .dae to .obj using Blender. This imported and displayed in the editor. The texture was stretched strangely, but in-game it looked fine.
  4. After the last success, I decided to try creating a replica of the model from the first 2 attempts in Sketchup, and exported it to .obj using the same method. Upon clicking the file, I get an error that reads "Unknown Error at loading model" with no details on the error.
I've attached model 1, 2 & 4 to this post, and here are a couple screenshots that help demonstrate my issues too
Spoiler:


Attached Files
.zip   ModelsForPilz.zip (Size: 158.9 KB / Downloads: 111)
Reply
#13
The first Model is working for me:
https://i.imgur.com/mJmAedK.png

The second has no textures:
https://i.imgur.com/xb0xzj1.png

And the last one excuded an error.
But I fixed it and now it is working.
https://i.imgur.com/9CrGyPd.png
Update is comming soon.


Thanks for attaching the OBJ Files. I detited few problematic commands.
That helped very much!
Reply
#14
I can't Import my roms for some reason,
It just says "A unknown error happend at loading ROM."


Spoiler:

This is also for some other roms I open..


I just read the end of the post, so yet I can't Import any rom then. Ehh I will recreate the rom anyways.
"Magic does exist, it just doesn't need a explaination to figure it out."
Reply
#15
Thumbs Up 
Some Object like Stars and Doors semm to get rendered way too big. I have a warppipe in the same level and its normal, this also happend in other levels. Ofcourse its possible to make the level anyways but with a Door for example its difficult to place it correct. Also doors do not rotate in the editor.

[Image: 83421a89d4.jpg]
Reply
#16
Also that happend when opening the Editor:
Nicht negative Zahl erforderlich.
Parametername: value

   bei System.IO.FileStream.set_Position(Int64 value)
   bei 3a-P\]2'SM"\*$\.So4z=z6O#0\[0.‍‍‌‌‬‮‎‏‌‪‭‫‌‫‏‭‭‌‌‏‌‪‍‍‬‮(SegmentedBank , Stream , Dictionary`2 )
   bei 3a-P\]2'SM"\*$\.So4z=z6O#0\[0.‏‍‎‭‪‍‌‬‪‌‌‪‭‍‌‎‍‏‫‮‏‎‮(Levelscript , Dictionary`2 , Stream )
   bei 3a-P\]2'SM"\*$\.So4z=z6O#0\[0.‍‫‮‏‎‎‎‭‌‍‍‭‫‎‏‭‮‏‪‎‍‍‮()
   bei 3a-P\]2'SM"\*$\.So4z=z6O#0\[0.‫‎‬‮‍‏‫‫‮‎‏‬‪‫‭‬‭‍‎‎‫‮‌‎‫‭‮(Object , EventArgs )
   bei System.Windows.Forms.Form.OnShown(EventArgs e)
   bei System.Windows.Forms.Form.CallShownEvent()
   bei System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   bei System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   bei System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   bei System.Windows.Forms.Control.InvokeMarshaledCallbacks()
Reply
#17
No problem for the models, glad to help!

I've only just gotten around to trying 0.1.4,  model 1 and 2 still react the same way as expected, but now 4 doesn't give me the error, instead it acts like 1 and hangs indefinitely. It should also be noted that this is the only one of the models that seems to have a Model Preview. The preview is still incorrect though as seen here https://imgur.com/a/2oK1kiL . I was wondering if there was a cache stored somewhere I could try clearing?

I've tried running in compatibility mode and running the program as admin. It's just strange to me that we can have such different results with the same models

Anyways. I thought I'd provide my specs in-case there is a problem there.
Spoiler:
Reply
#18
Update! Version 0.2 is up!

Downloadlink on the main post.

Changelog:
• Fixed object rotation in Level Editor
• Improved Model Rendering
• Fixed bugs at camera control
• Improved Model Converting
• Added support for Collada, 3DS, FBX, IFX and many other formats using Assimp
• Fixed few bugs at parsing OBJ-Files
• Improved Vertex Colors
• Added support for Vertex Alpha
• Show Vertex Colors in Level Editor
• Added option in Model Converter to select the up-axis for loading model
• Some UI Improvements

Note 1:
OBJ Files will be still parsed by own code, not via Assimp.
Just because I want keep support for Extended OBJ File Format, and Assimp doesn't.

Note 2:
For load different formats then OBJ, you need Microsoft Visual C++ installed. If not, the programm will notify you and tell you the download link.
The installation would take only few seconds.
Reply
#19
Love the new model support!
Not sure if this is my workflow or something with the model importing, but every ROM Manager accepted format that Blender can output except .3ds doesn't seem to retain group positions. Every group imports correctly, but their positioning is completely off and the rotation is tilted 90, even when Up-Axis is changed. Thankfully for me, .3ds seems to work great, although due to limitations of the format, textures can't have more than 8 characters so the format isn't ideal.

Oh, and for some reason importing .blend seems to just crash ROM Manager for me. Thanks for all the work you've put into this so far!
Reply
#20
None of my models will import at all. They are OBJs and they worked perfectly with SM64 editor. I don't know why they don't import, but hopefully you can get this stuff worked out soon because I want to make this my main importer.
Reply




Users browsing this thread: 1 Guest(s)