News:

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

Main Menu

Metroid Advance Game Editor (MAGE) Thread

Started by biospark, June 21, 2016, 06:19:47 PM

Previous topic - Next topic

Alukraid

If you place BG 1 with clipdata and undo, the clipdata remains behind. BUG? BUG! I find bugs.

interdpth

#51
Not sure what happened, but my doors don't work anymore. :(
Yeah, they're not showing up in MAGE, a few show up in DH. So mage overwrote a lot of my doors. Fuuugggg, I don't remeber what I presetttt

Here's some comparison pix
The door around the ship is part of the bug, the door at the top is real lol


I have no clue the case, but it seems every X amount of doors don't save or something. I can send you an IPS. Would rather use GAME so I'm consistent with the community.
I did add a new door, it seems to do things. So I guess I'll recopy the old door data unless GAME repoints? But this is a shitty thing :( Only affects area 0 tho
pls help

biospark

#52
New version:

Download
0.6.0 - June 24 2016
  - Added animation editor
  - Fixed spriteset editor crashing when loading spriteset 0
  - Fixed bug when saving area connections
  - Fixed bug when saving event based connections
  - Fixed clipdata viewer not updating when clipdata is cleared

Make sure to try out the new animation editor. Also, the previous bugs mentioned have been noted, but it's possible that this version won't cause those bug. Let me know if they come up again.

Also, I want to recommend that no one starts any serious projects yet. Since there will probably be more bugs to fix, I would wait until the editor is more stable.

Hawntah

I'm getting an ArgumentOutOfRangeException in the Animation Editor, Graphics tab when I uncheck Grayscale.

EDIT: It works when I enter a palette number. Maybe that shouldn't be empty by default.

biospark

Quote from: Hawntah on June 25, 2016, 01:41:46 AM
I'm getting an ArgumentOutOfRangeException in the Animation Editor, Graphics tab when I uncheck Grayscale.
This is the intended behavior. The important thing is that MAGE doesn't crash.

Physix

Quote from: biospark on June 25, 2016, 01:45:52 AM
Quote from: Hawntah on June 25, 2016, 01:41:46 AM
I'm getting an ArgumentOutOfRangeException in the Animation Editor, Graphics tab when I uncheck Grayscale.
This is the intended behavior. The important thing is that MAGE doesn't crash.

It fails to load my ABMXE00.gba MZM prototype rom. Is it not compatible?

biospark

Quote from: Physix on June 25, 2016, 03:32:18 AM
It fails to load my ABMXE00.gba MZM prototype rom. Is it not compatible?
It only supports the North American (U) version (did you read the documentation?)

Dark-SA-X

About the palette editor, I see you have one option to export the palette file as a .tpl ?
Since I don't use tile layer pro, is it possible you could have .pal as well ?
Makes it easier since I use paint shop pro to modify some palettes and export into yy-chr when needed.

Xyifer12

When i load a vanilla ROM and click the text editor i get this error.
Did i screw something up?
[spoiler]See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: Font 'MS Reference Sans Serif' does not support style 'Regular'.
   at System.Drawing.Font.CreateNativeFont()
   at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
   at System.Drawing.Font.Initialize(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
   at System.Drawing.Font..ctor(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet)
   at mage.FormText.InitializeComponent()
   at mage.FormText..ctor(FormMain main)
   at mage.FormMain.menuItem_textEditor_Click(Object sender, EventArgs e)
   at mage.FormMain.toolStrip_text_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.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.4253 (VistaSP2GDR.050727-4200)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
mage
    Assembly Version: 0.6.6019.37148
    Win32 Version: 0.6.0.0
    CodeBase: file:///C:/Users/robin/Desktop/editors/Metroid/mage.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4257 (VistaSP2GDR.050727-4200)
    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.4253 (VistaSP2GDR.050727-4200)
    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.4257 (VistaSP2GDR.050727-4200)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4252 (VistaSP2GDR.050727-4200)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4253 (VistaSP2GDR.050727-4200)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
smhh_dxz
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4253 (VistaSP2GDR.050727-4200)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.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.


[/spoiler]

biospark

Quote from: Dark-SA-X on June 25, 2016, 01:54:10 PM
About the palette editor, I see you have one option to export the palette file as a .tpl ?
Quote from: biospark on June 21, 2016, 06:19:47 PM
You can see all the features I plan to implement below:
...
Palette import/export options

Quote from: Xyifer12 on June 25, 2016, 09:12:24 PM
When i load a vanilla ROM and click the text editor i get this error.
Not sure what's wrong there. Maybe your computer doesn't have the correct font for some reason?

Dark-SA-X

#60
Quote from: Dark-SA-X on June 25, 2016, 01:54:10 PM
About the palette editor, I see you have one option to export the palette file as a .tpl ?
Quote from: biospark on June 21, 2016, 06:19:47 PM
You can see all the features I plan to implement below:
...
Palette import/export options

Hmm I like to see that happen then, also about the title screen tiles, will that be editable in the near future or no ?

Kazuto

Certainly something buggy yet with the Event Based Connection editor...

For reference, I'm trying to add correct connections to the large vertical room in Sector 2 where you can't reach the top of the room without High Jump, which triggers an event change.

So I have both of the top doors linked to their normal rooms, and I modified the doors in those rooms to link back to the pre-cocoon version of the room, where those two doors don't normally "exist."  Adding a single connection to the Event Based Connections modified all of the doors for the same event number.  In this test, I tried adding an event to Sector 2 with 72 as the Source door, 19 as the Event, and 71 as the Destination door.  Following is a table showing the normal door number linkage, and what they actually led to after adding the connection:


NormalBecame
1B to 681B to 44
23 to 6923 to 68
5F to 6A5F to 64
6E to 706E to 6A
2A to 222A to 69

Furthermore, the added connection never even worked.  Also, all of the affected doors now make the music start over when traversing the door in the opposite direction (68 to 1B, for example).  Not sure why it's doing that, either?

biospark

Quote from: Kazuto on June 26, 2016, 12:57:02 PM
Certainly something buggy yet with the Event Based Connection editor...
Did you start your ROM with the old version (0.5)? You should start over with the new version (0.6).

Kazuto

Quote from: Kazuto on June 26, 2016, 12:57:02 PM

NormalBecame
1B to 681B to 44
23 to 6923 to 68
5F to 6A5F to 64
6E to 706E to 6A
2A to 642A to 69

Quoting myself because I found the problem.  It's off by... two?  Take a look at the following data from the Event Based Connection editor:


Sector 2, Room 0, Door 216Sector 2, Room 1E, Door 44
Sector 2, Room B, Door 1B19Sector 2, Room 2E, Door 68
Sector 2, Room F, Door 2319Sector 2, Room 2E, Door 69
Sector 2, Room 13, Door 2A19Sector 2, Room 2C, Door 64
Sector 2, Room 2A, Door 5F19Sector 2, Room 2E, Door 6A
Sector 2, Room 2F, Door 6E19Sector 2, Room 2E, Door 70

Notice the entries are going backwards instead of forwards now?  I even tested an event connection in an entirely different area and it took me exactly where I thought it would: the previous entry's destination.  Note this is all off of a clean ROM, and I do even have the "Event Based Connection" checkbox ticked on the door I'm trying to change.  The new connection still doesn't work, but it certainly throws off all the existing ones.  Even connections earlier than the one I added.

For completeness, I just tested an Area connection, as well, and that works totally fine.  =D

biospark

So, it turns out that I missed something important in the event connection routine (at least in Fusion, I haven't checked Zero Mission yet). This is why event connections that you add don't work. As for your other problems, I suspect they were caused by using 0.5.

Kazuto

Quote from: biospark on June 27, 2016, 02:58:27 AM
So, it turns out that I missed something important in the event connection routine (at least in Fusion, I haven't checked Zero Mission yet). This is why event connections that you add don't work. As for your other problems, I suspect they were caused by using 0.5.

I don't know how 0.5 would be an issue now, since it never touched this ROM?  But I assume the correction to the function will fix the problems, anyway.  FYI, I did look at the Animation Editor as you requested people do, but I haven't actually changed anything about it yet because I'm not sure how to work it, lol.  Just so you don't think I'm only testing one thing in your editor.  ;)

biospark

If those problems arose without ever using 0.5 on the ROM, then there must be something wrong with my code. I'll look into it.

Grimlock

Awesome work Biospark, I'm definitely going to do some experimenting with ZM editing after we're done with RD!  I can tell you're really putting your all into this and that's pretty fantastic!  Your editor is going to provide pretty extensive creative freedom and that really opens a lot of doors.

biospark

Quote from: Grimlock on June 27, 2016, 08:14:53 AM
Awesome work Biospark, I'm definitely going to do some experimenting with ZM editing after we're done with RD!  I can tell you're really putting your all into this and that's pretty fantastic!  Your editor is going to provide pretty extensive creative freedom and that really opens a lot of doors.
Thank you! I hope to keep working on it for the next several years.

As for the event based connections, it turns out that Fusion and Zero Mission limit you to 64 because of the way the code works. I don't really think people will ever need more than 64, but my plan is to make a simple rewrite of the code for each game so that you can have up to 256, which would automatically be applied to your ROM.

Kazuto

Quote from: biospark on June 27, 2016, 02:42:04 PMAs for the event based connections, it turns out that Fusion and Zero Mission limit you to 64 because of the way the code works. I don't really think people will ever need more than 64, but my plan is to make a simple rewrite of the code for each game so that you can have up to 256, which would automatically be applied to your ROM.

I took a peek at the code earlier and saw the 3B index, but I just now checked it out again and I see the other limiter you're talking about.  Considering some people have made Super Metroid hacks with over 600 rooms, raising the limit to 256 connections would definitely be a good idea.  Especially considering the vanilla game already uses 60 event connections.  But of course, first priority should go to simply ensuring that things work, haha.

I was also mulling over the idea of recoding the event connection routine so that specific doors were replaced with specific rooms.  =P  If it's possible to just load a different room number after it determines where the door should drop her, it'd make the connections slightly less flexible, but a lot simpler to actually "swap out" a room that has numerous doors connecting to it.  Might not really be worth it, but I figured I'd at least give it a shot to see if it'll work, haha.

I'll let you know if I stumble onto any other bugs or interesting stuff!

Blade

How do I add a BG0 to a room which previously hadn't one? Or can I just switch the pointers with a room that has one?

Also do you plan to implement editing misc. stuff like the bomb timers or how much Energy/Missles/Bombs you get from an expansion?

Anyway, congratulations for realising this masterpiece^^
This must have taken hours of work to acomplish. Hopefully Fusion and ZM will get more attention know, cause they are great games

biospark

Quote from: Blade on June 27, 2016, 03:38:50 PM
How do I add a BG0 to a room which previously hadn't one? Or can I just switch the pointers with a room that has one?
Depends on what kind of background you want to add. If you want to add an RLE compressed one that you can edit like BG1 and BG2, then it's not possible yet. If you want to add an LZ77 compressed one, you can just copy the pointer and properties from another room, though you'd probably have to modify the tileset graphics and palette as well.

Quote from: Blade on June 27, 2016, 03:38:50 PM
Also do you plan to implement editing misc. stuff like the bomb timers or how much Energy/Missles/Bombs you get from an expansion?
It already can edit the bomb timers, check the weapon editor. As for the other things, it should be trivial to find with a debugging emulator.

Blade

#72
Oh, I didn't mean the bomb timers from bomb and such, I should express myself better^^
I meant the timers that run when the mein boiler is overheating or the timer until the B.S.L Station selfexplodes. But I think they also should be easy to find by debugging.
But it would be a nice addition^^

Also why do my newly placed doorcaps not function correctly? Even if I unlock the doorlevel in the Debug menu, they start flashing but won't open if I shoot them.

biospark

#73
New version:

Download
0.6.1 - June 29 2016
  - Added viewing for LZ77 compressed water and lava
  - Fixed new event based connections not working
  - Increased maximum number of event based connections from 64 to 256

@Hawntah You should be able to update the screenshot for your RotM submission!

Quote from: Blade on June 28, 2016, 03:31:22 AM
Also why do my newly placed doorcaps not function correctly? Even if I unlock the doorlevel in the Debug menu, they start flashing but won't open if I shoot them.
A couple possibilities: you don't have the proper clipdata for the door cap. It should say something like "Red door slot x" depending on the color. You also might have the wrong door type set. It should be "Hatch (can lock)".

Hawntah

Well that was quick, nice work! Slight issue though, whenever I try to place any tiles/clipdata in one of the rooms with water, this happens:
[spoiler][/spoiler]