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

biospark

Quote from: Kazuto on July 08, 2016, 06:56:57 PM
I figured you'd say that, haha.  Forcing that upon you just slows down the progress of the editor itself, so I'm happy to help document the user side of MAGE so that you're able to focus on the development side of MAGE.
I'd like the guides to focus on certain tasks, like "creating an elevator" or "using room effects" rather than "how to use the spriteset editor", since my documentation should cover the latter. I'll certainly review any guides that people write.

Kazuto

Quote from: biospark on July 08, 2016, 07:03:11 PM
Quote from: Kazuto on July 08, 2016, 06:56:57 PM
I figured you'd say that, haha.  Forcing that upon you just slows down the progress of the editor itself, so I'm happy to help document the user side of MAGE so that you're able to focus on the development side of MAGE.
I'd like the guides to focus on certain tasks, like "creating an elevator" or "using room effects" rather than "how to use the spriteset editor", since my documentation should cover the latter. I'll certainly review any guides that people write.
Sounds like a plan!  If nobody else has already done so, I could write quick guides to both area connections and event connections... maybe tonight?  Possibly tomorrow, as it's been a busy week and I haven't had much chance to do much hacking.  But either way, I just wanna ensure that nobody overlaps anyone else.  No sense in wasting effort doing the same thing, twice.

biospark

#102
If you (or anyone) would like, you can write the guide in html and include images. Either way, I'll host it on the webpage for mage and make sure the author is credited.

I'll probably write the elevator guide within the next week.


Edit: Turns out the function that checks the elevator list also writes the previously used elevator to a RAM address. This value is used during the transition to determine if a cutscene should be played. Therefore, I have made two patches. One of them preserves the existing cutscenes while allowing you to add new elevators, and the other one "removes" existing cutscenes by skipping the function entirely. If someone wants to keep the cutscenes but move them to different elevators, you can ask me how.

Also, I'm pretty sure Fusion has a similar list to determine if a Samus monologue should be played, but the list isn't used for checking valid elevators.

passarbye

Would it be possible to move the "view clipdata" option to below the rest of the circle view buttons, on the main window?
It's kind of unorthodox to go to the "view" menu and then select it, because often times I'm doing this a lot during testing. Kinda slows the process down.

biospark

Quote from: passarbye on July 09, 2016, 05:01:55 PM
Would it be possible to move the "view clipdata" option to below the rest of the circle view buttons, on the main window?
It's kind of unorthodox to go to the "view" menu and then select it, because often times I'm doing this a lot during testing. Kinda slows the process down.

Actually, in the future I was considering adding more viewing options and putting them all in the view menu, to make the room view as large as possible. I'd also put the tileset in a separate window. Is the keyboard shortcut not convenient enough?

passarbye

Quote from: biospark on July 09, 2016, 06:00:17 PM
Quote from: passarbye on July 09, 2016, 05:01:55 PM
Would it be possible to move the "view clipdata" option to below the rest of the circle view buttons, on the main window?
It's kind of unorthodox to go to the "view" menu and then select it, because often times I'm doing this a lot during testing. Kinda slows the process down.
Actually, in the future I was considering adding more viewing options and putting them all in the view menu, to make the room view as large as possible. I'd also put the tileset in a separate window. Is the keyboard shortcut not convenient enough?
I actually haven't been using any keyboard shortcuts, since the work-flow of doing things is so simple, just thought it'd make it easier to toggle.
Why do you want to make the room-view window bigger? you can already resize the editor, the only thing I can think of that would grant extra screen space is another monitor lol.

biospark

Quote from: passarbye on July 09, 2016, 08:02:16 PM
Why do you want to make the room-view window bigger? you can already resize the editor, the only thing I can think of that would grant extra screen space is another monitor lol.

I like the simplicity of editors like Lunar Magic and Editroid. I suppose before I overhaul the GUI, I'll get a vote on how people want the main window laid out.

passarbye

Quote from: biospark on July 09, 2016, 08:05:15 PM
I like the simplicity of editors like Lunar Magic and Editroid. I suppose before I overhaul the GUI, I'll get a vote on how people want the main window laid out.
It's cool, just throwing it out there  :heheh:
I haven't used LM or Editroid, so maybe that's my problem


Kazuto

Quote from: biospark on July 08, 2016, 10:55:40 PM
Also, I'm pretty sure Fusion has a similar list to determine if a Samus monologue should be played, but the list isn't used for checking valid elevators.
As far as Fusion is concerned, I know it's using 03000B89 to determine whether to trigger a monologue on an elevator.  The first monologue, which occurs during event 04, triggers when 0B89 is NOT 02.  It writes 02 upon entering the upper screen.  When 0B89 is 02, the monologue won't trigger on event 04.  Similarly, it won't trigger at all on other elevators or events, only that event, and that elevator.  So there's definitely a list containing the specific elevators and the event triggers, and a "do not trigger" value that's apparently used in a beq comparison.

Some quick testing just now revealed that the cutscenes are actually dependent on the destination door.  You can move the elevator even to a room that doesn't normally have one, because the cutscene list is just looking for the correct destination door for the comparison.

Anyway, I was actually posting to mention that Area Connections will throw an error if you try to connect to a door value that doesn't exist in the current area, instead of prompting you to add the connection.  Meaning that, in that case, you have to add the area connection before you create (or edit) the door, because you'll also get an error in the Area Connections window when you try to link to a door that has a null value (which it gets after the aforementioned error).

biospark

Quote from: Kazuto on July 09, 2016, 11:53:39 PM
Anyway, I was actually posting to mention that Area Connections will throw an error if you try to connect to a door value that doesn't exist in the current area, instead of prompting you to add the connection.
That's intended, because the destination door might not exist in other areas too. Not sure what you mean by the second error.

I suppose with the way it's set up, you have to add the doors before editing them if you want to avoid errors. I guess I want to avoid people using invalid values.

Gunert

How do you change the clipdata on doors? I understand what values that the doors need to be set to in order to work, but I cant seem to figure out how to change them.

Kazuto

Quote from: biospark on July 10, 2016, 12:17:21 AM
Quote from: Kazuto on July 09, 2016, 11:53:39 PM
Anyway, I was actually posting to mention that Area Connections will throw an error if you try to connect to a door value that doesn't exist in the current area, instead of prompting you to add the connection.
That's intended, because the destination door might not exist in other areas too. Not sure what you mean by the second error.
I was only thinking, if you change the Type to an Area connection, the editor could probably prompt you to add the connection before even validating whether or not the connected door exists in the current area.  But it works fine as it is, so it's not worth worrying about it.

The second error only occurs on saving an invalid door number to a connection, even if you're intending to turn it into a valid Area connection.  Since you mentioned that adding the Area connection, first, should be the correct way of doing it, it's not worth worrying about it.  Also, I wrote the guide around this idea: the Area Connection gets added, then the doors are given correct connection data afterwards.

Speaking of which, I'm attaching the Area Connections guide I just wrote to this post.  Feedback is highly appreciated, good or bad.  Feel free to do whatever to the style of it, too.  I looked at the HTML of the MAGE documentation for a bit of guidance, but it's a lot simpler than that, so it mostly just follows the same font family.

If it's worth it, anybody else who's writing a guide can feel free to steal the layout, too.

biospark

Quote from: Gunert on July 10, 2016, 01:22:36 PM
How do you change the clipdata on doors? I understand what values that the doors need to be set to in order to work, but I cant seem to figure out how to change them.

1. Select any block from the tileset, such as the one in the top-left corner
2. Make sure edit clipdata is the only editing option selected
3. Click on the blocks that the door occupies. Make sure the clipdata changes by checking the status bar.


Quote from: Kazuto on July 10, 2016, 04:44:31 PM
I'm attaching the Area Connections guide I just wrote to this post.

Looks pretty good, thanks for writing it. Only thing I'd add is that you can also view the door's number by hovering over it. Maybe add it after the part where you check each door number, and say it could save time in the future.

Also, the default X exit distance will be 0 in the next release, so I can just add a note to your guide once it's released since it won't match the picture. I'm not sure why I made it 20 in the first place, but I'll make it 0 to be consistent with Y exit distance.

Gunert

Thanks for the help Biospark. I've got another question for you, are we able to make new rooms at all? Or do we have to work with the rooms already in the game?

biospark

Quote from: Gunert on July 10, 2016, 05:53:10 PM
I've got another question for you, are we able to make new rooms at all?

Quote from: biospark on June 21, 2016, 06:19:47 PM
Short-term plans
...
Add rooms, graphics, etc.

Not yet.

Croakomire

BioSpark, have you ever thought about posting a tutorial about how to use MAGE on your channel? Because there are probably quite a handful of people who have no idea what they are doing and would most likely be happy for a quick tutorial from the creator of the editor who knows what hes doing to teach them a little about how it works.  I've just been wondering for a little bit if this was a possibility since this editor is quite new and to my knowledge there are no videos on this as of now.
(I don't really care if you do or don't, this has just been a question floating around in my mind for quite some time now)

biospark

I'm not sure I have the time or skill to make one. I prefer spending my available time by developing the editor.

Kazuto

Quote from: biospark on July 10, 2016, 05:00:34 PMLooks pretty good, thanks for writing it. Only thing I'd add is that you can also view the door's number by hovering over it. Maybe add it after the part where you check each door number, and say it could save time in the future.

Also, the default X exit distance will be 0 in the next release, so I can just add a note to your guide once it's released since it won't match the picture. I'm not sure why I made it 20 in the first place, but I'll make it 0 to be consistent with Y exit distance.
Done.  And since this change is going to be in the next release, I simply updated the guide, now.  The worst it'll do in older versions is simply make people do a, "Huh, that's weird." when they realize that 20 is already entered in the X exit distance.

I also added a few lines for future-proofing the Connections Editor, mentioning to ensure that you're in the Area Connections tab.  ;)

biospark

#118
Thanks again. I'm looking forward to any future guides you write. Here's the link: http://arkarian.org/tdk/mage/guides/

I know the webpage for mage looks way too basic, but I'll make it look fancier in the future.

Edit: I have an event list for each game that I'd like to put on the webpage eventually, but I haven't bothered yet. In the meantime, I'll post them here. Kazuto: if you make a guide for event connections, you can link to these lists.

Fusion: https://docs.google.com/spreadsheets/d/1xtgSAgW6R93L-QcvFKGFChC2T6941411-HfjZSV3kU4/edit?usp=sharing
Zero Mission: https://docs.google.com/spreadsheets/d/1UKhlqMJfyZ6BmOxYyEB_5Xk9uK8ZbcrAwb-7wRPj688/edit?usp=sharing

Kazuto

Quote from: interdpth on July 07, 2016, 08:56:17 AM
I actually did this recently for Felixwright, I'm looking for the code to do it now.

Edit: Setting 0605E8 to 00 and 0605E9 to 00 will disable the samus gfx shit with a few bugs.

The routine isn't difficult in thumb or decompiling to C. I forgot what this exact change did, but try it out. I can recheck it out when I get home if you need more. Or hit me up on #metconst glad to help the new hackers

Well I finally got around to looking into this.  Disabling the thumb at 0605E8 still requires corrections to the loading values in order to actually trigger.  It disables the closeup graphic from appearing, but causes... different graphical glitches from the closeup.  It also requires changing (/zeroing) the freeze timer at the start of the game.  However, it's also showing me that the HUD loads sometime in the middle of that freeze...  It'll be useful for tracking down the code that actually loads the HUD.  Even better, it's probably a usable jump point to that routine, once I find it, so thanks.  =D

Side-note: if you're working on something, kids, try not to take a few days away from it...  I had to re-familiarize myself with a bunch of random Notepad scribblings, lol.

biospark: I am indeed planning on writing event connections next, and I'll be sure to link to those from the guide.  I was wondering what the Japanese in the debug menu for the events translated to, so those are pretty interesting.  It's also helpful having both the hex number and the decimal number available, since I know the events by hex, but the debug menu requires them in decimal, hah.

interdpth

#120
Quote from: Kazuto on July 12, 2016, 01:30:16 AM
Quote from: interdpth on July 07, 2016, 08:56:17 AM
I actually did this recently for Felixwright, I'm looking for the code to do it now.

Edit: Setting 0605E8 to 00 and 0605E9 to 00 will disable the samus gfx shit with a few bugs.

The routine isn't difficult in thumb or decompiling to C. I forgot what this exact change did, but try it out. I can recheck it out when I get home if you need more. Or hit me up on #metconst glad to help the new hackers

Well I finally got around to looking into this.  Disabling the thumb at 0605E8 still requires corrections to the loading values in order to actually trigger.  It disables the closeup graphic from appearing, but causes... different graphical glitches from the closeup.  It also requires changing (/zeroing) the freeze timer at the start of the game.  However, it's also showing me that the HUD loads sometime in the middle of that freeze...  It'll be useful for tracking down the code that actually loads the HUD.  Even better, it's probably a usable jump point to that routine, once I find it, so thanks.  =D

Side-note: if you're working on something, kids, try not to take a few days away from it...  I had to re-familiarize myself with a bunch of random Notepad scribblings, lol.

biospark: I am indeed planning on writing event connections next, and I'll be sure to link to those from the guide.  I was wondering what the Japanese in the debug menu for the events translated to, so those are pretty interesting.  It's also helpful having both the hex number and the decimal number available, since I know the events by hex, but the debug menu requires them in decimal, hah.

I'll see if I can document the intro function real quick when I get home. I think the door in brinstar just triggers an event in the door load code, but I could be wrong.

Also, just comment your documentation. Taking a day or three off is important.

Edit: Found the actual fix, this will spawn you at the top of Brinstar, changing the door should fix that:
8056092 = 0
8056093 = 0
8056094 = 0
8056095 = 0

Or just two nop instructions.

Have fun!


metalsonic88

Made an account to say that I love the tool, but was wondering if there's any way to edit/assign pop-up text for a room. I'd like to be able to assign a message to display when entering a room, much like SAVE ROOM does in the unedited versions of the game. I've found the text editor and altered some of the unused dummy text, but I can't find any way to assign it to a door or room or anything. Is it possible to do this or has this feature not yet been implemented?

biospark

It's not implemented yet, sorry. The code for it in the game was somewhat complicated last time I checked.

metalsonic88

Rats. Well I'll be keeping an eye on this tool to see if that changes any time soon. My boss rush hack is essentially done otherwise, but I'd rather have the game explain what to do than include a readme.

Quietus

Could you not use one of the navigation rooms to reel off the information? Since it's a boss rush, I suspect interested players would likely run through it multiple times, so having a navigation room at the start, which they can just run through if they've already read it, would work.