Jump to content

SceneNavi - A simple Ocarina of Time level editor


xdaniel
 Share

Recommended Posts

SceneNavi v1.0 Beta 4

 

Changes since Beta 3:

    [*]Changed mouse behavior to have three different modes:

    • Camera mode: Camera movement only

    • Moveable objects mode: Select and move things considered "moveable" by the program (actors, waypoints)

    • Static objects mode: Select immobile, static things (collision polygons)

    Modes can be selected via menu or can be cycled through by clicking the mode label on the status bar

     

     

    [*]Implemented mouse-based actor and waypoint movement:

    • Left click: move object left, right, up and down (or X and Y axes with neutral camera)

    • Middle click OR left click and Ctrl key: move object forward or backward (or Z axis with neutral camera)

    • Right click: opens context menu that allows rotating the object in both directions on any supported axis

     

     

    [*]Limited collision editing enabled; collision polygons' polygon type association, and polygon types' ground type and raw 64-bit definition can be edited

    (more separate options for ex. exit triggers, damage, etc. to come)

     

     

    [*]Added preliminary support for editing of individual scene and room files

    • Note: does not yet support saving, highly WIP

     

     

    [*]Improved overall collision overlay performance

    • Might incur slight stuttering when rapid changes are done to the collision, such as changing a polygon's ground type

     

     

    [*]Added ROM byte order detection and automatic byteswapping functions

    • If an incompatible byte order is detected, the program will ask if the user wants the ROM to be converted or, if the user does not want this, cancel loading

     

     

    [*]Added update checking functionality, can be manually accessed via the menu

    • Checks online for newer version of the program and can direct the user to a download if one is found

     

     

    [*]Actual functionality for the window's status bar implemented; now shown are:

    • Current mouse mode

    • Information about the currently loaded scene and room and/or general status messages

    • Current camera coordinates

     

     

    [*]Added VSync option for FPS limiting, can be toggled from the menu

     

     

    [*]Improved OpenGL-side housekeeping functions for GL extensions, texturing and combiner emulation

    • Should hopefully improve usability with lower end graphics cards

And I really, really need feedback on this build in particular. I've added so much stuff, it's kinda hard to keep track of what I have tested thoroughly, what I couldn't test due to absence of a test case and so on. So please, mess around, try modifying collision, try running this with an Intel HD graphics chip, try checking for updates (even though there's none), try moving actors and waypoints around, try using ROMs with the wrong byte order, and most important of all: please leave comments, suggestions, bug reports, even if it's just a note that the program works fine for you. Any kind of feedback is welcome and encouraged.

  • Like 2
Link to comment
Share on other sites

I think this thread should be sticky-ed and the topic changed. This is a little more than an interest check thread now :P

 

Also xdan, I'll do some testing on linux for you.

[antidote@localhost OoTDebug]$ mono ./SceneNavi.exeFontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated.System.Configuration.ConfigurationErrorsException: Unrecognized element: userSettings (/home/antidote/.local/share/SceneNavi.exe_Url_d170b5b449b15e9e5a0cc12783e39a5ca27282b9/user.config line 6)  at System.Configuration.ConfigInfo.ThrowException (System.String text, System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0   at System.Configuration.SectionGroupInfo.ReadConfig (System.Configuration.Configuration cfg, System.String streamName, System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0   at System.Configuration.Configuration.ReadConfigFile (System.Xml.XmlReader reader, System.String fileName) [0x00000] in <filename unknown>:0   at System.Configuration.Configuration.Load () [0x00000] in <filename unknown>:0   at System.Configuration.Configuration.Init (IConfigSystem system, System.String configPath, System.Configuration.Configuration parent) [0x00000] in <filename unknown>:0   at System.Configuration.Configuration..ctor (System.Configuration.InternalConfigurationSystem system, System.String locationSubPath) [0x00000] in <filename unknown>:0   at System.Configuration.InternalConfigurationFactory.Create (System.Type typeConfigHost, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0   at System.Configuration.ConfigurationManager.OpenMappedExeConfiguration (System.Configuration.ExeConfigurationFileMap fileMap, ConfigurationUserLevel userLevel) [0x00000] in <filename unknown>:0   at System.Configuration.CustomizableFileSettingsProvider.LoadProperties (System.Configuration.ExeConfigurationFileMap exeMap, System.Configuration.SettingsPropertyCollection collection, ConfigurationUserLevel level, System.String sectionGroupName, Boolean allowOverwrite, System.String groupName) [0x00000] in <filename unknown>:0   at System.Configuration.CustomizableFileSettingsProvider.GetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection collection) [0x00000] in <filename unknown>:0   at System.Configuration.LocalFileSettingsProvider.GetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties) [0x00000] in <filename unknown>:0   at System.Configuration.ApplicationSettingsBase.CacheValuesByProvider (System.Configuration.SettingsProvider provider) [0x00000] in <filename unknown>:0   at System.Configuration.ApplicationSettingsBase.GetPropertyValue (System.String propertyName) [0x00000] in <filename unknown>:0   at System.Configuration.ApplicationSettingsBase.get_Item (System.String propertyName) [0x00000] in <filename unknown>:0   at SceneNavi.Properties.Settings.get_RenderTextures () [0x00000] in <filename unknown>:0   at SceneNavi.MainForm.MainForm_Load (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00000] in <filename unknown>:0 
Other than that, everything seems to work fine.
The Tab widget is a bit buggy but that's a mono System.Windows.Forms bug, not yours.
 
Byte order detection works, Collision works like a champ, VSync functions properly, the only thing i was unable to test was scenes, since i don't have the files,
Link to comment
Share on other sites

I get this error when I open it:

************** Exception Text **************System.EntryPointNotFoundException: Unable to find an entry point named 'glClearDepthf' in DLL 'opengl32.dll'.   at OpenTK.Graphics.OpenGL.GL.Core.ClearDepthf(Single d)   at OpenTK.Graphics.OpenGL.GL.ClearDepth(Single d)   at SceneNavi.OpenGLHelpers.Initialization.SetDefaults() in C:UsersDanieldocumentsvisual studio 2010ProjectsSceneNaviSceneNaviOpenGLHelpersInitialization.cs:line 41   at SceneNavi.MainForm.glControl1_Load(Object sender, EventArgs e) in C:UsersDanielDocumentsVisual Studio 2010ProjectsSceneNaviSceneNaviMainForm.cs:line 720   at System.Windows.Forms.UserControl.OnLoad(EventArgs e)   at System.Windows.Forms.UserControl.OnCreateControl()   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.ScrollableControl.WndProc(Message& m)   at System.Windows.Forms.Form.WmShowWindow(Message& m)   at System.Windows.Forms.Form.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)
Link to comment
Share on other sites

o.0, THAT is an odd bug, believe it or not, but try reinstalling your drivers

 

Also xdan, I noticed a small "bug", with VSync enabled the FPS isn't drawn, if that's the intent then ok, if not you may want to look into it.

 

EDIT:

Got this error when pressing the control key:

 

[antidote@localhost OoTDebug]$ mono ./SceneNavi.exeFontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated.System.IndexOutOfRangeException: Array index is out of range.  at SceneNavi.MainForm.glControl1_KeyDown (System.Object sender, System.Windows.Forms.KeyEventArgs e) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.OnKeyDown (System.Windows.Forms.KeyEventArgs e) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.ProcessKeyEventArgs (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.ProcessKeyMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.WmKeys (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ContainerControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.UserControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0   at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0  Unhandled Exception:System.ObjectDisposedException: The object was used after being disposed.  at System.Net.Sockets.Socket.Send (System.Byte[] buf) [0x00000] in <filename unknown>:0   at System.Windows.Forms.XplatUIX11.WakeupMain () [0x00000] in <filename unknown>:0   at System.Windows.Forms.XplatUIX11.SendAsyncMethod (System.Windows.Forms.AsyncMethodData method) [0x00000] in <filename unknown>:0   at System.Windows.Forms.XplatUIX11.SendMessage (IntPtr hwnd, Msg message, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0   at System.Windows.Forms.XplatUIX11.SetWindowPos (IntPtr handle, Int32 x, Int32 y, Int32 width, Int32 height) [0x00000] in <filename unknown>:0   at System.Windows.Forms.XplatUI.SetWindowPos (IntPtr handle, Int32 x, Int32 y, Int32 width, Int32 height) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ToolStrip.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ToolStripDropDown.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.SetBounds (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.set_Size (Size value) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ToolStripDropDownMenu.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00000] in <filename unknown>:0   at System.Windows.Forms.Control.PerformLayout () [0x00000] in <filename unknown>:0   at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:PerformLayout ()  at System.Windows.Forms.ToolStripItem.OnParentChanged (System.Windows.Forms.ToolStrip oldParent, System.Windows.Forms.ToolStrip newParent) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ToolStripItem.set_Parent (System.Windows.Forms.ToolStrip value) [0x00000] in <filename unknown>:0   at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStripItem:set_Parent (System.Windows.Forms.ToolStrip)  at System.Windows.Forms.ToolStripItemCollection.Remove (System.Windows.Forms.ToolStripItem value) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ToolStripItem.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ToolStripDropDownItem.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0   at System.Windows.Forms.ToolStripMenuItem.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0   at System.ComponentModel.Component.Finalize () [0x00000] in <filename unknown>:0 
Link to comment
Share on other sites

Rinku: I agree with Antidote, that's really odd... especially because that GL.ClearDepth call has always been there, and the program worked for you before, didn't it? Do try reinstalling/updating your graphics drivers, then try running it again.

 

Antidote: Ignoring that fontconfig warning (which doesn't look like a C# thing, guess Mono itself is using something that got deprecated?), that trace looks like Mono has a problem reading the application settings. If you ex. toggle VSync or rendering of collision, actors, etc., then exit and restart the program, do the settings get restored or are they reset back to default?

 

About VSync and FPS, it's intended for the FPS not to be displayed when VSync is on, as they'll just be hovering around your refresh rate anyway.

 

As for that IndexOutOfRangeException when pressing the Control key, I'll have to look into that.

 

Link to comment
Share on other sites

I had to delete the settings entirely for the program to launch, and in regards to the fontconfig thing, it's more of a linux thing than a mono thing, I have to fix that :/

 

About the FPS, yeah that's what I figured, but wasn't sure as it wasn't mentioned.

 

EDIT:

To clarify, the settings were from the last version, so there may be some incompatibility that snuck in without your knowledge.

Visual Studio has a bad habit of clearing old configuration before launching the program via F5

Link to comment
Share on other sites

The ClearDepth thing might be an issue with the later OpenTK build (opentk-2012-03-15) I switched to for Beta 4: http://www.opentk.com/node/2891

 

Try this test build, which has the workaround described at the link above, and tell me if it works: http://magicstone.de/dzd/progupdates/SceneNavi-v10-b4test.rar - I'll also look into at least getting textures to work with low-end graphic chips.

 

EDIT: Working on low-end texture support, about to look up some old combiner faking code from the OZMAV1 days to at least also get colorization via PrimColor working...

 

Posted Image

Edited by xdaniel
Link to comment
Share on other sites

http://magicstone.de/dzd/progupdates/SceneNavi-v10-b5test.rar
 
Strati, or anyone else with low-end hardware: Do you get textures with this build? Everyone else, does everything still look as it did before, ex. with multitexturing on the grass in Hyrule Field, etc?
 
Also, the levels of texturing/combiner emulation now supported, in order of screenshots in the spoiler: 1) No textures, no combiner emulation. 2) Textures without combiner emulation. 3) Textures with full combiner emulation. The first two both also fake PrimColor colorization, such as the red roofs in Kakariko.

Posted Image
Posted Image
Posted Image

Also, the menu:
Posted Image

 

  • Like 2
Link to comment
Share on other sites

Antidote: A two years old bug report and Mono still has it? Ugh... On the plus side, it's only the saving of settings in SceneNavi that doesn't work in Mono, correct?

 

Also, that last build is now the official v1.0 Beta 5 release. Either use the update function in Beta 4 (which I'd prefer for testing purposes :P) or download it directly from my last post. Changes since Beta 4:

  • Texturing support and faking of PrimColor-based colorization for lower-end hardware
  • Some bugfixes (glClearDepthf entry point, Control key IndexOutOfRangeException)

Here's hoping the bugfixes actually do fix those bugs for good...

  • Like 1
Link to comment
Share on other sites

Went bugfixing and optimizing:

    [*]Changed the display list parsing code in the Ucode interpreter to not reset certain parameters on calls to other display lists (via DL and BRANCH_Z commands), which fixes certain missing textures, most notably Death Mountain Trail's paths

    [*]Removed some (hopefully unneeded) OpenGL attribute pushes and pops, which gives a notable increase in FPS in many cases; for example, Spirit Temple was just scratching the 60 FPS mark in Beta 5 for me, now it reaches around 100 FPS, both times with collision rendering, etc. enabled, while other areas have even bigger performance jumps

    [*]Also added some more fallbacks, etc. for lower-end hardware (especially hardware that appears to lie about its capabilities or something...), although I can't be sure those work as intended, as I don't have such old hardware ready to go

Comparison screenshots for the first two bullet points in the spoiler - Beta 5 first, then the upcoming Beta 6:

 

Posted Image

Posted Image

 

  • Like 2
Link to comment
Share on other sites

Well ever since I started using this Emachines computer DeathBaskets InstEd won't work and now this with SceneNavi.. forgive me if I was supposed to download something else other than what was in the download for the latest version. There's a ton of new stuff on this and I won't be able to read mostly every post about the program until tomorrow.. I've been away from the GCN for a couple of weeks and there's a ton of stuff I'm not up to date with just yet all over the GCN. There's some textures it loads in other scenes but not many.

Posted Image

Link to comment
Share on other sites

Hm, from my experience with bug reports on earlier programs of mine, OpenGL on any Intel HD Graphics / GMA chip is... problematic to say the least. Do you get any "Extension Warning" messages when starting the program? If not, do you get proper textures if you uncheck "Enable Combiner Emulation" in the Options menu?

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.