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

NathanTech

Good to know the problem was found and fixable - I've added a few more tiles to the tileset and will be waiting for the next release to test this out.

DSO

Thanks for enabling people to finally bring Zero Mission into contest hacks, Biospark!

NathanTech

I found an interesting way to add rooms - since there doesn't seem to be a way to add a room

(BTW - This picture is from a canceled project)

passarbye

I have a question regarding level data (BG1, BG2, BG0):  does it matter if you put tiles in the 2 tile borders of a room?
it isn't ever visible in-game to my knowledge, but I was wondering if it adds extra unneeded data to the ROM or if I should even worry/care about it.

basically, should I be decorating the 2-tile, unseen borders of a room or leave them blank?

biospark

Quote from: passarbye on March 11, 2017, 01:27:47 PM
basically, should I be decorating the 2-tile, unseen borders of a room or leave them blank?

You can just leave them blank. Block data takes up hardly any space, so you can decorate them if you want. I would just make sure they're all solid blocks.

Cpt.Glitch

Quote from: NathanTech on March 11, 2017, 11:23:28 AM
I found an interesting way to add rooms - since there doesn't seem to be a way to add a room

(BTW - This picture is from a canceled project)
I figured this out recently as well. It is quite useful. Also opens up the possibility for certain puzzles.

MollyAncalime

When trying to open the Japanese Fusion rom, I get an error message that the file is not a valid ROM. Is J Fusion support not implemented?

Quietus

The first paragraph in the included documentation states:
QuoteMetroid Advance Game Editor (MAGE) is a comprehensive hacking utility for Metroid Fusion and Metroid Zero Mission created by biospark. It is a .NET 3.0 application written in C#. Currently it is only compatible with the North American (U) version of each game.

Paulinho

I know it's a really dumb question, but how can i insert sprites on the map? I was learning how to use the mage but when i go in add sprite I can't change to the sprite that I want.. for example, i want to put some missile blocks on the brinstar room 0, and i can only add the little enemy ( i don't know his name ) of the room, if i go in the sprite editor and trade for the missile block then all of them becomes missile blocks.. how i change the sprite i want to add?

biospark

Quote from: Paulinho on March 26, 2017, 08:58:41 PM
I know it's a really dumb question, but how can i insert sprites on the map? I was learning how to use the mage but when i go in add sprite I can't change to the sprite that I want.. for example, i want to put some missile blocks on the brinstar room 0, and i can only add the little enemy ( i don't know his name ) of the room, if i go in the sprite editor and trade for the missile block then all of them becomes missile blocks.. how i change the sprite i want to add?
Missile blocks are not sprites. You have to set the clipdata for missile blocks and other breakable blocks.

FelixWright

Quote from: Paulinho on March 26, 2017, 08:58:41 PM
I know it's a really dumb question, but how can i insert sprites on the map? I was learning how to use the mage but when i go in add sprite I can't change to the sprite that I want.. for example, i want to put some missile blocks on the brinstar room 0, and i can only add the little enemy ( i don't know his name ) of the room, if i go in the sprite editor and trade for the missile block then all of them becomes missile blocks.. how i change the sprite i want to add?

What do you mean? Can you show us what it looks like on your screen?

NathanTech

This question may have already been asked somewhere, but how do you enable BG0 for a room that has it disabled?

Cpt.Glitch

I don't think there is a way currently, you can copy the BG0 pointer from another room and paste it for the room you want to work with. It'll likely break the room that originally uses that pointer though.

interdpth

Quote from: Cpt.Glitch on March 31, 2017, 12:56:30 PM
I don't think there is a way currently, you can copy the BG0 pointer from another room and paste it for the room you want to work with. It'll likely break the room that originally uses that pointer though.

Just add to the room so it forces a repoint.

biospark

Quote from: interdpth on March 31, 2017, 11:11:39 PM
Just add to the room so it forces a repoint.

It only repoints for the room you edited, and it deletes the original data. This breaks the other room.

The update after next will let you add new backgrounds.

NathanTech

Its probably impossible - but would there be a way to edit the ingame music or perhaps even change it?

biospark

Quote from: NathanTech on April 08, 2017, 09:37:35 PM
Its probably impossible - but would there be a way to edit the ingame music or perhaps even change it?

MAGE can't do it yet, other than changing the music track that plays in each room. If you're inclined to try it yourself, the sound engine is called "sappy" and you can find a document about it on romhacking.net

Luce Seyfarth

Hey Biospark, how does MAGE check for free space in the ROM? Does it begin at the end and check backwards until it finds occupied bytes?

I added a couple of new routines manually and after doing that MAGE doesn't seem to write new data to anywhere before my routines, despite there being more than enough free bytes. That's a problem for me, because all these free Bytes go wasted that way. You may want to consider changing that for future updates.

Well, I guess I should just start adding new routines without leaving that much space before it...

biospark

Quote from: Luce Seyfarth on April 09, 2017, 09:22:20 AM
Hey Biospark, how does MAGE check for free space in the ROM?

There's data in the game that consists of large chunks of FF bytes, so it doesn't search for that, since there's a chance it would be overwriting actual data. When MAGE needs to relocate data, it "deletes" the original data by marking it as free space. It's marked with the word "mage" and the number of bytes available, followed by FF bytes. When writing data to a new location, MAGE first searches the entire rom for marked free space that's large enough. If it doesn't find any, it searches backwards from the end until it reaches a byte that isn't FF.

I'm not sure why you would leave a gap between the end of the data and your new routines.

Luce Seyfarth

#319
Thank you. So I indeed shoot myself in the foot by leaving gaps between the data and new routines, ha...
Well, now I can always add these marks myself to avoid space being overlooked :)

Quote from: biospark on April 09, 2017, 01:48:22 PM
I'm not sure why you would leave a gap between the end of the data and your new routines.

I like my routines to start at easily memorable addresses. That way, I don't always have to look in my notes to relocate them.

EDIT:
Well, now I've found a "mage" marking in my ROM that isn't followed by free bytes. Does that mean MAGE hasn't set the following bytes to FF in this case? You say it "deletes" old data by setting those bytes to FF, so either that isn't always the case (the marked bytes still not being used) or, worse, those bytes are in use despite being marked as free space.

I will attach an .ips file and address later to this post, if you want to see.

biospark

#320
Big update!

Download
0.9.0 - 2017-04-09
  - Reimplemented ROM data management to be more robust
  - Fixed Graphics Editor bug where importing from image didn't work properly
  - Fixed Graphics Editor bug where updating palette didn't update graphics
  - Added automatic check for newer version of MAGE
  - Added option to LZ77 (de)compress binary files (under "Tools")
  - Fixed animated tilesets not saving
  - Added more pixel formats when importing/exporting images
  - Changed Spriteset Editor to not allow adding sprites 0-F
  - Improved LZ77 compression speed
  - Added tile numbers to Tile Table Editor
  - Added Zero Mission charge beam damage amounts to Weapon Editor
  - Added import/export for backgrounds, spritesets, minimaps
  - Added status messages to all editors
  - Added option to clear recent files
  - Changed Connection Editor to remove invalid connections
  - Fixed bug when importing tileset by image
  - Added option to automatically choose palette rows when importing from image
  - Added data management option to Tile Table Editor and when importing tilesets/backgrounds
  - Fixed description of two Zero Mission endings
  - Modified Animation Editor layout (animated graphics)
  - Added drawing for all LZ77 BG0s
  - Reimplemented tileset/room importing (incompatible with previous versions)

This update only has a few new features, but it has a lot of improvements. The next update will let you add new rooms, tilesets, spritesets, etc.

biospark

Quote from: Luce Seyfarth on April 09, 2017, 04:43:40 PM
Well, now I've found a "mage" marking in my ROM that isn't followed by free bytes.

Is "mage" followed by the bytes 06 00? If so, then that's just free space that's only six bytes long. Otherwise, something went wrong. However, MAGE verifies that the correct number of FF bytes follow "mage", so there shouldn't be any risk of having something overwritten.

NathanTech

Importing tileset from image froze animated tiles like lava - how do I fix this?

biospark

#323
Quote from: NathanTech on April 11, 2017, 12:39:41 AM
Importing tileset from image froze animated tiles like lava - how do I fix this?

That's expected, since the image importer can't guess which tiles are animated. Use the tile table editor to manually replace the lava. The animated tiles are on the top two rows. You might have to use the animated tileset editor first if your tileset doesn't have the animated tiles already.

NathanTech

When fixing the lava animation in the tile table editor i cant get it back to the correct pallet. None of the other pallets match