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

kkzero

It works in Wine under Linux!



Thank you for producing this great editor and keep up the good work.

Blade

Congratulation for coming this far with Mage
I'm excited to test all new functions you have added.

Is it possible now to add BG0 data to all rooms?

NathanTech

Just a suggestion - Maybe confirmation message when adding things like BG0?
I had check to see if t worked.

lizardtroid

so I found a bug. basically, I have a patch that adds crocomire and makes him work in game (sadly without sound). in mage 0.9 it worked fine. he spawns in does his thing and its all ok. I could edit or move the sprite whenever I wanted without issues. but now in 1.0 that doesn't work anymore. if I try to edit or delete crocomires sprite I get an error. this is the details of the error. also the projectiles he fires go black if I edit the sprite set in the room before. none of this happened in earlier versions of mage.

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

************** Exception Text **************
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException()
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at mage.FormEditEnemy.Initialize()
   at mage.FormMain.contextItem_editSprite_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.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.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.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.5485 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------

FelixWright

Probably just another PEBKAC.

[spoiler=screenshot][/spoiler]

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 mage.Backgrounds.DrawTransparency(Rectangle region, BitmapData srcData, BitmapData dstData)
   at mage.Backgrounds.Draw(Rectangle region, BitmapData dstData)
   at mage.RoomView.Redraw(Rectangle rect)
   at mage.RoomView.RedrawAll()
   at mage.FormMain.ResetValues()
   at mage.FormMain.LoadRoom(Int32 a, Int32 r)
   at mage.FormAdd.AddBackground()
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.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.8762 (QFE.050727-8700)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
mage
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Cosmic/Documents/Games%20N%20stuff/Metroid/GBA/Hacking%20Devices/mage%201.0.0/mage.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5491 (Win7SP1GDR.050727-5400)
    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.8759 (QFE.050727-8700)
    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.5495 (Win7SP1GDR.050727-5400)
    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.5483 (Win7SP1GDR.050727-5400)
    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.5494 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
1ubmhodj
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.8759 (QFE.050727-8700)
    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.



Luce Seyfarth

YES!

Great job, Biospark :)

It only gets better each time.

NathanTech

How do you change the room type? I added a room in tourian (Copy of room E) and every tme the room is entered the save room message appears.

lizardtroid

I found another bug but I am not sure if it is a bug with mage or a bug with my crocomire patch. if I edit his color palette his head bugs out and becomes a really weird unstructured shape,

Miepee

Just a small nitpick: Under Tools -> Export, it still shows "BG3 Image..." instead of "LZ77 BG from Image..."

biospark

Quote from: lizardtroid on June 21, 2017, 02:11:52 PM
so I found a bug.
...

You'll have to send me a copy of your rom so I can figure out what's wrong.

Quote from: NathanTech on June 22, 2017, 11:00:49 AM
How do you change the room type? I added a room in tourian (Copy of room E) and every tme the room is entered the save room message appears.

Does the room's spriteset have a save platform in it? That will make the save room text appear.

Quote from: Miepee on June 22, 2017, 12:39:25 PM
Just a small nitpick: Under Tools -> Export, it still shows "BG3 Image..." instead of "LZ77 BG from Image..."

But there are two backgrounds that can be LZ77: BG0 and BG3. That's why they're both listed. And exporting "from image" doesn't make any sense. You're exporting the image itself.

NathanTech

The spriteset does not have a save platform. The set is 36 - the metroid and rinka set.

DarkOmega6666

Could you add the ZM debug menu from the prototype version?

biospark

Quote from: DarkOmega6666 on June 27, 2017, 06:35:41 PM
Could you add the ZM debug menu from the prototype version?

Unfortunately this would be very difficult to do. I might attempt to add it in the future, but I wouldn't count on it.

Miepee

I got an unhandled exception:
RLE graphics were corrupt.
Details:
************** Ausnahmetext **************
mage.CorruptDataException: RLE graphics were corrupt.
   bei mage.Tileset.GetRLEgfx(ByteStream bs)
   bei mage.Tileset..ctor(ByteStream bs, Byte tilesetNum)
   bei mage.FormMain.RedrawTileset()
   bei mage.FormImportRLEBG.button_ok_Click(Object sender, EventArgs e)
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll.
----------------------------------------
mage
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/Depp/Documents/Metroid%20Hacking/mage.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    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.8759 (QFE.050727-8700).
    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.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Configuration
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    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.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll.
----------------------------------------
rqjklpgy
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8759 (QFE.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
Accessibility
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll.
----------------------------------------

I achieved it by adding a copy of an existing tileset and then importing a tileset over the newly added one.
Afterwards I couldn't add new tilesets that were a copy of an existing one, because it gave me this error:
Index was outside the bounds of the array
Details:
************** Ausnahmetext **************
System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
   bei mage.ByteStream.Read32()
   bei mage.Compress.DecompLZ77(ByteStream input, ByteStream output)
   bei mage.Add.LZ77GfxCopy(Int32 offset)
   bei mage.Add.TilesetCopy(Byte tsNum)
   bei mage.FormAdd.AddTileset()
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll.
----------------------------------------
mage
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/Depp/Documents/Metroid%20Hacking/mage.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    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.8759 (QFE.050727-8700).
    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.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Configuration
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    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.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8745 (WinRel.050727-8700).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll.
----------------------------------------
o-u2mra5
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8759 (QFE.050727-8700).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------

DarkOmega6666

Quote from: biospark on June 27, 2017, 06:52:46 PM
Quote from: DarkOmega6666 on June 27, 2017, 06:35:41 PM
Could you add the ZM debug menu from the prototype version?

Unfortunately this would be very difficult to do. I might attempt to add it in the future, but I wouldn't count on it.

So could you just add the event menu or the noclip command?

NathanTech

How do you make the doors lock behind metroids and keep them from respawning?

Cpt.Glitch

Keeping them from respawning is event related as is locking the doors. Pretty sure it'll involve ASM to do outside of the original metroid rooms.

OneOf99

Found a bug, unchecking the "freezable" property on sprites does work but going back into the editor re-checks the box. The effect works, but MAGE doesn't show it.

biospark

Quote from: DarkOmega6666 on July 04, 2017, 07:18:11 PM
So could you just add the event menu or the noclip command?

No, but I might try adding the debug menu in the future.

Quote from: OneOf99 on July 08, 2017, 12:17:51 PM
Found a bug, unchecking the "freezable" property on sprites does work but going back into the editor re-checks the box. The effect works, but MAGE doesn't show it.

Thank you, I fixed the problem.

Flower

Just have to let this out: This editor looks so advanced (must be because it hacks it the "advanced" Metroid Games lol), that i am considering starting a hack using this one whenever i have my Metroid 1 Hack finished, or maybe even earlier.
I am very interested in hacking the music as well, but sadly i have no asm skills. Do you plan to add music editing? What would be a main concern for me as a musician; that's what i like so much about hacking Metroid 1, with the MetroidTuner given you are given freedom to add your own music without having to deal with asm. That would be too sweet.
Apart from that, good work with the Editor. I like what i see!!  :nod:

Flower

Quote from: biospark on June 21, 2016, 06:19:47 PM
Long-term plans
[...]
Audio editor

...um maybe this does answer my question.
Very much looking forward to this!

I very much like GBA Metroids with their controls and physics. Would like to hack that stuff!
Cheers!

biospark

#396
New version!

Download
1.1.0 - 2017-07-23
  - Fixed data management bug involving current room's data when saving ROM
  - Fixed bug where tileset copies had incorrect tile table length
  - Added Physics Editor
  - Added Minimap Tile Builder
  - Added secondary sprite previews to Sprite Editor
  - Added Zero Mission patch that skips Samus closeup during intro
  - Fixed Sprite Editor bug where "Can be frozen" was always checked
  - Changed door editing to prevent setting width or height to 0
  - Changed Palette Editor to only overwrite modified colors
  - Fixed bug where room sprite data could be corrupted
  - Added more automatic updates between editors when changes are applied

There are a couple important bug fixes related to ROM corruption, so you should definitely get this version!

OneOf99

Can you add in palette 4 for the minimap tile builder? It would help for those (like me) who changed it to a different color than 2.

DeadSkullzJr

Mage 1.1.0 First Bug Found:
Exporting any room produces this error.

biospark

#399
Quote from: OneOf99 on July 24, 2017, 04:23:45 AM
Can you add in palette 4 for the minimap tile builder? It would help for those (like me) who changed it to a different color than 2.

Sure. I guess I didn't realize people might change the palette, and it's very simple to change anyway.

Quote from: DeadSkullzJr on July 24, 2017, 05:17:31 AM
Exporting any room produces this error.

In the future, please expand the "Details" section, since it helps me find the problem. Anyway, this was reported to me by other people and I've fixed the problem. I'll probably release an update in a week or two, but for now just use 1.0 to export rooms.