News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Editroid Bugs

Started by snarfblam, November 07, 2009, 01:59:55 PM

Previous topic - Next topic

snarfblam

It would be nice if anyone who happens to use the newest build of Editroid 2.0 would kindly post any kind of problem. For instance, unhandled exceptions, bugs, even features that are confusing or hard to use. This thread would be for reports of problems, not discussion or general suggestions.

The newest build is available at http://ilab.ahemm.org/editroid/download/ (currently version 2.0 alpha 2).

Update (as of 4/16/2011) for version 2.1

Known bugs include:
- You tell me

RealRed

Righto. Since this'll be a big help to those metroid hackers out there that have problems, I'm gonna go ahead and sticky this.
Glad not everyone is stubborn about admitting they may might have made mistakes.  :wink:

Grimlock

I'm getting an error when I try to press "," to add another object to a room in Ridley. Let me know if you need anymore details.

Info given from the "Unhandled exception":

Unhandled exception has occured in your application.  If you click Continue, the application will ignor this error and attempt to continue.  If your quit, the application will close immediatly

Index was outside the bounds of the array.

Details:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Editroid.Screen.ReorderObject(Int32 oldIndex, Int32 newIndex)
   at Editroid.Actions.AddOrRemoveObjOrEnemy.Perform(MemoryFunction operation)
   at Editroid.Actions.AddOrRemoveObjOrEnemy.Do()
   at Editroid.UndoRedo.EditroidUndoRedoQueue.Do(EditroidAction a)
   at Editroid.frmMain.PerformAction(EditroidAction a)
   at Editroid.frmMain.OnKeyDown(KeyEventArgs e)
   at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
   at System.Windows.Forms.Form.ProcessKeyPreview(Message& m)
   at System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
   at Editroid.RomViewport.ProcessKeyMessage(Message& m)
   at System.Windows.Forms.Control.WmKeyChar(Message& m)
   at System.Windows.Forms.Control.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: 2.0.0.0
    Win32 Version: 2.0.50727.3623 (GDR.050727-3600)
    CodeBase: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Editroid
    Assembly Version: 1.2.0.0
    Win32 Version: 1.2.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/Richard/My%20Documents/Access%20Bar/Games/Console%20Systems/NES/Editors/Metroid/Editroid/Editroid.exe
----------------------------------------
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
----------------------------------------
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.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
----------------------------------------

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



Grimlock

Looks like the error isn't repeating itself anymore.  I figured it might have been the fact that I was using room 00 or 01 so I stopped tying to add objects to those rooms and I also replaced my editroid.exe & .rtf with a fresh copy from the downloaded zip file.

I'll post any details if the issue returns.

snarfblam

Quote from: Grimlock on July 22, 2011, 06:37:48 PM
I'm getting an error when I try to press "," to add another object to a room in Ridley. Let me know if you need anymore details.
I know this post is old as hell, but I just got around to checking this out. The problem, simply put, is that for Ridley's level the game points to the same memory location for screen 0 and screen 1, which can confuse Editroid, namely when adding/deleting objects in screen 0 or 1 in Ridley's level. As long as you leave these two rooms alone everything should be fine. I'll address this is the next release of Editroid.

It looks like the reason for the duplicate pointer is because Ridley's hideout is missing a "standard" screen. In every level there is a palette swap screen (screen 0) and an elevator shaft screen (screen 1), the exception being Ridley's hideout, which lacks a palette swap screen. (If you look in Editroid, even Tourian has a palette swap screen. It isn't used in the game.) They needed a pointer value for screen zero, so it looks like they just duplicated the pointer for screen 1.


Odb718

I'm using the most current version of Editroid. 3.6 I downloaded from here. http://www.romhacking.net/utilities/474/
I'm not positive if it's a bug or not, but when using the Generate Password Tracking Data, Once I get to 52 items and hit save, then reopen it, All of the changes are lost.
Is this just Metroid, or does Editroid record the switches into the rom, but load default omitted data?

snarfblam

I'm not sure if this is the same issue that you PM'd me about. I tried what you described here, though, and couldn't reproduce it.

Odb718

ok I've downloaded Metroid Mission One and patched the ips over Metroid and open it up.
Under Tools>Generate Password Tracking Data,  I see 51 items at the top.
Omitted Data is grey but has a plus sign. Under it
(11, e) LongBeam
(e, 12) IceBeam
(1c,1c) WaveBeam
are listed.
Double cllicking them send them up into Brinstar and Norfair. Hit Generate and then close it. Only being able to put one in*
Once you reopen it, all three are back at the bottom of omitted.

Also, not sure if it's a bug but item editor doesnt work without expanding the rom.

One thing I'd like to see in Editroid, under the Item Editor, I'd like to be able to switch area sets without exiting and clicking on a room. This would be good for when you want to move a power up from area to area instead of just a different room. Currently you have to remove the screen, close, click the new area, open up item editor, add screen, add item, selected item.
Maybe a drop down list of the areas, that acts similar to area items under view. The way you can switch with Shift+F5, F6, F7, F8, F9. Then you'd just drag the box to the map you'd like.

snarfblam

Quote from: Odb718 on February 15, 2014, 01:04:17 AM
Double cllicking them send them up into Brinstar and Norfair. Hit Generate and then close it. Only being able to put one in*
Once you reopen it, all three are back at the bottom of omitted.

Okay, it sounds like you may be misunderstanding exactly what is happening here. (To be fair, it's not all that simple.) When you generate password tracking data, what Editroid does is search for power-ups and red doors and creates a list of them. This list is what's shown in the dialog. By default, beam power-ups are not tracked because this is how the original game works. (Each time you die or continue, the long beam, wave beam, and ice beams re-appear.) The actual password tracking data is generated when you click "Generate Data". After you've generated password tracking data, you can view it in the map by selecting "Password Tracked Items" in the "View" menu. This is the same data the actual game code scans while generating the password to know which password bits correspond to what items in which map locations.

Now, if you click "Generate Password Tracking Data" again, you're starting the process over, and the list will be re-generated from scratch, which means any manual modifications you've made to password tracking data will be lost. Unless you're doing something really wacky, there should never be a need to manually edit password tracking data. The easiest approach is to use "Generate Password Tracking Data" each time you modify the item locations.



Quote from: Odb718 on February 15, 2014, 01:04:17 AM
One thing I'd like to see in Editroid, under the Item Editor, I'd like to be able to switch area sets without exiting and clicking on a room. This would be good for when you want to move a power up from area to area instead of just a different room. Currently you have to remove the screen, close, click the new area, open up item editor, add screen, add item, selected item.
Maybe a drop down list of the areas, that acts similar to area items under view. The way you can switch with Shift+F5, F6, F7, F8, F9. Then you'd just drag the box to the map you'd like.

It's not really all that difficult, now, is it? You're right, the item editing system could be more convenient, but as-is, it gets the job done. I just think my time could be better spent working on a hack or adding new features to Editroid.

Odb718

#9
Thanks for clearing that up.

I'm still getting problems with my passwords so I said to heck with it and decided to delete the doors.
I use the item editor in Norfair and deleted two sets of red doors. 0d,14 <-> 0e,14, and 1c,11 <-> 1d,11.
Some how that messed up one of my rooms I already had in Brinstar. I'd created a completely blank room, room 39 to the right of my Brinstar elevator to Norfair. It's there so people get used to moving in elevator rooms.
This is what happened.
http://i.imgur.com/IuoHMBb.png
I tested the rom using test room. I started in the elevator in Norfair and went up to see this.
http://i.imgur.com/2HUhV7W.png
There's only one clickable object in that jumbled screen.
When I exit into other Brinstar rooms, the blocks and enemies are completely messed up, but act normal.

I've tested this with a clean Metroid.nes that was expanded. I add the blank room to the right of the elevator room, deleted the 4 door screens, hit apply, and the room takes a second but it becomes a similar mess up to the pics I posted.
I'm not sure if this is a problem with Editroid, or with the actual rom.


I agree with you about it not being the best use of time. Was just throwing it out there.
One thing I think would be awesome is if you had 2 or 3 "bridges". Where the two statues are in different rooms and killing either Boss, then shooting the proper statue reveals that 1 bridge. Then have the classic double statue room that allows easy access to Tourain.

---- EDIT ----
One idea I just came up with. It'd be nice to be able to decide which way the elevators go. Make it so Brinstar goes up into Norfair, make Norfair go up into Ridley or which ever.

snarfblam

Well, I won't say Editroid has never corrupted a ROM. This is why there is an option to create a time-stamped backup right in the file menu. It's much less common in newer versions though. I hope you haven't lost any work. If I understand what's happening correctly, you should not have. If you have lost anything, though, PM me and I can probably help you recover whatever you lost.

What happens here is that when you close the item editor, Editroid basically saves everything to RAM and reloads it. (This is vestigial behavior, from older versions of Editroid that dealt with data very differently and had to do so. The bug also occurs if you save and re-open the ROM.) When loading room data, neither Editroid nor the Metroid game engine are particularly fond of rooms with no data, and start interpreting garbage as room data. This should only cause garbage to be thrown into the previously empty room. It shouldn't affect other rooms, so you should be able to delete the room or all of the objects in the room.

tl;dr, don't leave rooms empty, and if you do, it should only corrupt the empty room.

Quote from: Odb718 on February 19, 2014, 03:59:05 PM
---- EDIT ----
One idea I just came up with. It'd be nice to be able to decide which way the elevators go. Make it so Brinstar goes up into Norfair, make Norfair go up into Ridley or which ever.

That's not a terrible idea. In fact, it should be quite doable with the built-in assembler in Editroid. Maybe I'll write up a how-to on this at some point.

Odb718

No luck getting it back to normal. I added an object to the room, saved, closed/opened Editroid, opened new rom, made the old room, deleted it, made an all new room. Everything looks to be working normal, but when I load up Norfair and exit to Brinstar I get messed up objects. Like they're the correct basic shapes, but the pattern is jumbled.

Right now I'm just comparing a working version to the corrupt to put in my changes I'd made. Oh well.

One thing would be cool is if you made a total Elevator editor/option set. Like Make it so all 4 elevator sets could be edited to be in other areas. IE, Brinstar>Norfair>Ridley>Kraid>Tourain>Out.   OR

                            Norfair
                            ^     ^
          Tourain    Brinstar    Kraid
                ^    ^       
                Ridley   


Just throwing out ideas. Thanks for your help.   But I guess going from where-ever to Tourain would need the bridge in the new area? Would that be possible? I've always thought it'd be pretty sweet to have it so all of the elevators were next to each other, room after room.

Grimlock

#12
Editroid 3.6

Minor graphics bug in the icon/information window attached below the selected level screen.

The window stretches beyond the right side of the selected level screen and the icons and information text is moved around.

The problem isn't always there but I did see it yesterday and today while modifying Tourian.

Let me know if you need more info.

Update:

Here is a screenshot:

BTW - the bug makes it nearly impossible to click the right spot the change the texture load order.


snarfblam

Thanks for pointing this out. This looks like a font scaling issue. Easiest fix would be for me to make Editroid non-DPI-aware.

Odb718

I also get that bug. My laptop is set to two very weird DPI settings. When I hook it up to my TV I manually adjust it to be something like 1160x745. It's the only way it uses 100% of the TV's screen.

Entroper

I'm not entirely sure if this is a bug, but it seems like one, and in any case is a good excuse to ask a question that might prove illustrative. There are many finished Metroid hacks (I first noticed it when opening the classic Metroid Master in Editroid, but there are several others that have the same issue) that seem to have 'fuzzy edges' with respect to where one area ends and another begins. For instance, if you open Metroid Master up and find the starting point in Brinstar, you're looking at a proper map of the region. But then try and make sense of Tourian or Kraid. If you scroll over to where an area bumps up against another, you find a bunch of rooms in the border region that are clearly wrong. As far as I can tell, they are all rooms that are actually in one area but have been erroneously assigned to another, e.g., the actual room in the game is a normal room in Brinstar, but Editroid seems to think it's the Tourian room of the same number instead.

So, I suppose my question is, how does Editroid determine which area a given room on the map belongs in? The solution probably lies in the answer. Does it look to the surrounding rooms?

The emergent Secret World phenomenon suggests that the game itself doesn't bother making such a determination at all, though I've always wondered why this hex map views that third red room [the 05] as a hidden Norfair room rather than an ordinary Ridley room (Editroid assigns it as the latter, which in my mind is correct, but again raises the question of how it determines which area to assign a given 'border room' to). Personally, I'd have made the inaccessible 0B at the bottom of the rightmost shaft in Norfair the third and final one I highlighted in red instead...

Stinktier

#16
When creating a structure that's exactly as wide as one screen, then placing that structure in the room, saving/backupping, exiting the program, and loading the rom again, that very structure gets offset one combo-sized increment right. The screen editor then refuse to let the structure being moved back to that position in which it originally were before being saved/loaded.

Other structures remain unchanged and are handled as normal.

This occured to two separate structures in three unique screens, so it's not a one-off weirdo quirk.

I'll solve it by breaking down the structures in question into smaller pieces. But it might be worth a little investigation for the next revision.

UPDATE: The problematic point is cornered. upon opening the structure editor, i see that my once screen-wide structure has been tilted right, leaving a blank combo slot (which shouldn't be possible) and (possibly) overwriting the rightmost combo slot.

Grimlock

This has actually come up a few times for me.  It happens when you have two items on the same screen and then try to click on one and move it.  I placed 2 items together in 3 locations in Metroid - Incursion and experienced the same error.  My work around was to use the item editor options to place the item where I wanted it.  Interestingly if you exit, save, and reload the error does not appear when selecting one of the items.

I got the same error when I was experimenting to see if I could use the Rinkas in Kraids area.  I had both the Rinkas and the Mella on screen (was going to swap to the other) in editor at one point and clicked one, the error came up again.  I figured this time I would post a screenshot of it incase you wanted to look into it.  So far my experience with this error is that it appears to be harmless.


snarfblam

Quote from: Stinktier on July 16, 2014, 03:22:30 PM
When creating a structure that's exactly as wide as one screen, then placing that structure in the room, saving/backupping, exiting the program, and loading the rom again, that very structure gets offset one combo-sized increment right. The screen editor then refuse to let the structure being moved back to that position in which it originally were before being saved/loaded. 

It only took me a couple seconds to figure out what's going on here. This should be an easy fix.


Quote from: Grimlock on August 21, 2014, 01:35:32 PM
It happens when you have two items on the same screen and then try to click on one and move it.  I placed 2 items together in 3 locations in Metroid - Incursion and experienced the same error.

Not sure what's happening here, but it sounds like it shouldn't be too tough to figure out. I'll address both bugs in version 3.7, which should be ready relatively soon.

Quietus

Snarf, have a cheer, for your great support for Editroid, and your near-instantaneous response to pleas for help. :cheers:

Grimlock

I'm getting some garbled graphics with the doors in Ridley.  If I launch a test room on a screen with doors it appears to be fine.  Once I move away from the screen and return (screen reloading) the graphics error appears:

When the door opens the odd graphics remain, almost like its layered over the bubble graphic.

I checked in Brinstar and the error does not occur there.



I played through to Ridley in FCEUX and the error is still there. (Without using a test room)

snarfblam

My first guess would be that you're using the placeholder tile the game engine uses for doors. Unfortunately, Editroid in no way makes this obvious.

Check in the nametable viewer of FCEUX. If you can see the glitched tiles there, they are on the background. (Remember, the game draws sprites behind the background.) The reason this happens is because tile $4E or $4F (I can't remember which) is supposed to be blank like tile $FF, and is swapped in on the fly where door caps appear (in RAM, but not VRAM, which means you can't actually see the change when the doorcap opens/closes) to make them behave more consistently as far as collision detection is concerned.

I guess I really should have Editroid show this tile as having distinct physics so that it's more obvious that these tiles are reserved for a specific purpose. That's another thing I can throw into 3.7.

Grimlock

#22
After reading your reply I shifted a few tiles around in Tile Layer Pro.  Tile 4E and 51 were the ones displayed over the bubble door.  I moved them and replaced them with black.  That seemed to fix the problem.  Thanks for the quick reply.

EDIT: I took another look at my screenshot, it was a actually only 4E displayed over the bubble door, 51 was just the next tile over related to the offending tile (as I was using it in my structures anyway).

Grimlock

Version 4.7
(affects earlier versions as well)
Minor bug in the structure editor:

Basically the last block is not usable.  For a normal person this wouldn't be a big deal......



But then I'm not normal and I filled and used every block in Brinstar (Minus the offending block).  I'm going to live without it so no worries, just a small one to toss in there if you decide to continue working on Editroid.

Grimlock

This is not so much a bug, it's more of a convenience thing, although I don't know if you intended it to work this way so I figured I'd point it out.

When you toggle to the next CHR ("[" and "]") the structure editor tiles don't update on the leftmost side.  I found a work around by changing the "Bg: Bank: First" value from 16 to 19 (Kraid area).

Here is an image of the structure editor open, Toggled to the fourth frame, I put a "4" in one of the tiles (To make sure I was on the right CHR).  The arrows indicate where the tile originated from in the rom.