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

#75
Quote from: Hawntah on June 29, 2016, 06:40:19 AM
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
Thanks, just fixed it, so you can redownload it now. This is what happens when BG0 can be both RLE and LZ77 compressed.

Also, your RotM submission reminds me: I'd like to gather some images of rooms to use as splash screen images for the editor. If you're interested, you can send me an image or post an image here, and I'll include it if I like it.

Kazuto

Happy to report that event connections are working flawlessly!  Well done, biospark!

I'm curious, do you know of any sort of arbitrary limit on area connections?  That's probably less important since the most a hack might use is 42 (one connection between every single area), but it's certainly a possibility since the event connections had a cap placed on them.

I also just tested importing a tileset from an image... very awesome feature.  Although I'm not sure why it made it twice as tall as the tileset image I exported and then edited.  But I did the editing in Paint, so who knows how many "unique" tiles that added...

Quietus

Quote from: biospark on June 29, 2016, 01:20:26 PMI'd like to gather some images of rooms to use as splash screen images
Any preference on what size you want these?

Hawntah

Quote from: biospark on June 29, 2016, 01:20:26 PM
Also, your RotM submission reminds me: I'd like to gather some images of rooms to use as splash screen images for the editor. If you're interested, you can send me an image or post an image here, and I'll include it if I like it.
I would send you some if I actually had any that were half decent :colonrightv: . But I mean, feel free to use/copy/modify anything I post if you want.

biospark

Quote from: Kazuto on June 29, 2016, 04:04:17 PM
I'm curious, do you know of any sort of arbitrary limit on area connections?
I'm fairly certain there is none. It simply checks the data until it finds 0xFF.

Quote from: Kazuto on June 29, 2016, 04:04:17 PM
Although I'm not sure why it made it twice as tall as the tileset image I exported and then edited.
It probably has to do with the fact that there's nothing to indicate the length of tile tables. I have a manually created list for the ones already in the game, but if you add a new one, it defaults to the maximum size. That will be changed in the future when I introduce projects.

Quote from: Quietus on June 29, 2016, 06:51:23 PM
Any preference on what size you want these?
If I use images that are twice their native size, then I can fit a 24 x 13 portion of a room (in blocks).

passarbye

I'm editing zero mission, How do I change samus' x and y starting position?
I know that moving the elevator door in room 0 brinstar will change her x, but not the y position, which is bugging me.
I also know of a hack that was made which started the game with samus at the ship, is there a way to do this as well?

biospark

Quote from: passarbye on July 03, 2016, 05:32:43 PM
I'm editing zero mission, How do I change samus' x and y starting position?
0x606CC, two byte value

I could look into changing the starting room in the future.

jaysee87

#82
What is the max height a tileset can have? I tried to import a bigger image then got too many unique tiles message.

<edit>
Nevermind, I'm trying to have too many things going on. I just want Kraid in Brinstar

<edit> what affects the ridley trigger zone? Like I have gravity already, but don't see what in the room triggers the ridley cutscene to start the battle.

biospark

Quote from: jaysee87 on July 04, 2016, 01:18:37 PM
What is the max height a tileset can have? I tried to import a bigger image then got too many unique tiles message.
The "height" of a tileset (number of 16x16 tiles) is unrelated to the number of unique 8x8 tiles. You could create a tileset with the maximum number of 16x16 tiles just by using one 8x8 tile.

Quote from: jaysee87 on July 04, 2016, 01:18:37 PMwhat affects the ridley trigger zone?
Ridley's AI routine handles this.

Kazuto

Just a heads-up, I found and modified the code to load the initial area, room and door.  It technically works, but if you start anywhere besides door 0, room 0 in Brinstar, enemies are initially frozen until you move, and the HUD never loads.  I'm currently trying to find the routine that loads the closeup of her visor, which will make it functional.

If I can get it working, I'd be happy to put up a patch for you guys.

passarbye

Quote from: biospark on July 04, 2016, 02:46:46 AM
Quote from: passarbye on July 03, 2016, 05:32:43 PM
I'm editing zero mission, How do I change samus' x and y starting position?
0x606CC, two byte value

I could look into changing the starting room in the future.
One/two byte changes are my favorite  :heheh:
Changing the starting room/area would be very cool.

Quote from: Kazuto on July 04, 2016, 03:54:59 PM
If I can get it working, I'd be happy to put up a patch for you guys.
Thanks for checking it out, anything that makes MZM or MF more workable is a boon to everyone hacking/playing these.  :^_^:

Kazuto

Quote from: passarbye on July 05, 2016, 12:33:44 PM
Thanks for checking it out, anything that makes MZM or MF more workable is a boon to everyone hacking/playing these.  :^_^:

I've actually been looking into load points in both games for the past few days, now.  They both have their quirks...

In Fusion, you can easily load anywhere in the game by modifying a short bit of code and putting the ship wherever you want.  Door 0 in the area serves as her starting point, meaning they should be in the same room.  The ship even functions as a proper save.  But when you load from a ship save, it puts you up in the air where the windows are at.  I haven't yet looked into it, but I'm thinking there's a table listing the save rooms that it's failing out of when the ship isn't in area 0, room 0.

Alternatively, if you place door 0 in a room without the ship, Samus' graphics never load, and the camera won't follow her, which screws up the game on certain door scrolls.

In Zero Mission, the code that loads the starting area, room and door is a lot more straightforward (load 3 separate values and store them to those addresses).  But there's a couple different functions that expect certain values to be used, or they'll "fail."  In this case, it doesn't show the helmet close-up, and HUD graphics won't load.  The value checks are easy enough to modify, but it also uses a table with some data values for the various area loads (ship landing, game start, Chozodia start).  That shouldn't be a problem, except that the game also expects the data to occupy specific slots in that table, or it'll fail.

On top of all that, the helmet close-up only looks correct in specific tilesets, specific camera Y-offsets, with no BG2 visible in the starting screen.  So, there's certainly some requirements.

passarbye

Quote from: Kazuto on July 05, 2016, 04:58:48 PM
On top of all that, the helmet close-up only looks correct in specific tilesets, specific camera Y-offsets, with no BG2 visible in the starting screen.  So, there's certainly some requirements.
all of that sounds really crazy, but I get what you mean.
Would it be possible to skip certain sections of code (like the helmet close-up, but still load the HUD) to avoid some limitations on what the room looks like?
also, I noticed while editing those values that biospark posted, the helmet close-up looks like it tries to load either A: a different room or B: a predetermined background.
I'm not really sure what is doing what, I'm just throwing ideas/info out there.

Kazuto

I intend to find the source of writing the HUD so I can just skip to that, yeah.  I, personally, would utilize the helmet closeup, but I'm thinking in-general, it'd be most useful to allow the game to just start the same way the Chozodia section does.  But as far as the helmet goes, it's writing to a certain bg layer to display it on-screen, then overwriting that with tile data after a timer expires.  So the helmet is aligned to the screen in a way that's probably controlled by one of the bg scrolling properties.

The Monster of Surrealton

Messing around with MAGE now, and loving it.

Is there a way to change Samus' palette in either game? I can't seem to find one.

biospark

Quote from: The Monster of Surrealton on July 05, 2016, 08:54:59 PM
Is there a way to change Samus' palette in either game? I can't seem to find one.

Quote from: biospark on June 21, 2016, 06:19:47 PM
Mid-term plans
...
Samus graphics editor


interdpth

#92
Quote from: Kazuto on July 05, 2016, 04:58:48 PM
Quote from: passarbye on July 05, 2016, 12:33:44 PM
Thanks for checking it out, anything that makes MZM or MF more workable is a boon to everyone hacking/playing these.  :^_^:

I've actually been looking into load points in both games for the past few days, now.  They both have their quirks...

In Fusion, you can easily load anywhere in the game by modifying a short bit of code and putting the ship wherever you want.  Door 0 in the area serves as her starting point, meaning they should be in the same room.  The ship even functions as a proper save.  But when you load from a ship save, it puts you up in the air where the windows are at.  I haven't yet looked into it, but I'm thinking there's a table listing the save rooms that it's failing out of when the ship isn't in area 0, room 0.

Alternatively, if you place door 0 in a room without the ship, Samus' graphics never load, and the camera won't follow her, which screws up the game on certain door scrolls.

In Zero Mission, the code that loads the starting area, room and door is a lot more straightforward (load 3 separate values and store them to those addresses).  But there's a couple different functions that expect certain values to be used, or they'll "fail."  In this case, it doesn't show the helmet close-up, and HUD graphics won't load.  The value checks are easy enough to modify, but it also uses a table with some data values for the various area loads (ship landing, game start, Chozodia start).  That shouldn't be a problem, except that the game also expects the data to occupy specific slots in that table, or it'll fail.

On top of all that, the helmet close-up only looks correct in specific tilesets, specific camera Y-offsets, with no BG2 visible in the starting screen.  So, there's certainly some requirements.

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

passarbye

Is there a way to add an elevator to a room that doesn't have one? And how do I connect said elevator to a different area?
Also, I've been playing with the connections editor but it doesn't seem to let me choose the destination door when I create a new connection. I can only enter/change the source door..

Kazuto

Quote from: passarbye on July 08, 2016, 04:11:42 PM
Is there a way to add an elevator to a room that doesn't have one? And how do I connect said elevator to a different area?
Also, I've been playing with the connections editor but it doesn't seem to let me choose the destination door when I create a new connection. I can only enter/change the source door..
Elevators are sprites, so it'd require having them in the current spriteset, or choosing a proper spriteset for the room.  Though I haven't tried adding any yet, so I don't know if there's specific coding to getting them to function or not.  But that's part of it, anyway.

I assume you're talking about an area connection?  You choose a destination door for an area connection by editing the specific door you intend to use and giving it the destination number of the door in the other area.  It also has to have a door type of Area Connection, meaning it shouldn't have a hatch.  The area connections only contain the data of source and destination areas, and a source door, because the actual linkage is derived from the door itself.

biospark

#95
Quote from: passarbye on July 08, 2016, 04:11:42 PM
Is there a way to add an elevator to a room that doesn't have one?

I remember trying to add one to Fusion and it worked, but it didn't work when I tried it in ZM. I'll investigate it.

Quote from: Kazuto on July 08, 2016, 04:59:36 PM
You choose a destination door for an area connection by editing the specific door you intend to use and giving it the destination number of the door in the other area.  It also has to have a door type of Area Connection, meaning it shouldn't have a hatch.  The area connections only contain the data of source and destination areas, and a source door, because the actual linkage is derived from the door itself.

This is exactly correct, you set the destination door using the "edit door" window. If you've already added an area connection for it, then it'll show you the area and door it connects to.

Edit: Looks like ZM has a list of rooms with elevators. I'll add another tab for elevators in the connection editor. I'll also write up a guide for making elevators.

passarbye

Quote from: Kazuto on July 08, 2016, 04:59:36 PM
The area connections only contain the data of source and destination areas, and a source door, because the actual linkage is derived from the door itself.
Thanks, this helped. The only problem I'm having now is that the hatches won't open, or can area connected doors even have hatches?
I know it works because I replaced the hatches with shot blocks, but this is not exactly desirable.

Quote from: biospark on July 08, 2016, 05:37:00 PM
Edit: Looks like ZM has a list of rooms with elevators. I'll add another tab for elevators in the connection editor. I'll also write up a guide for making elevators.
Thanks  :^_^:

Kazuto

Quote from: Kazuto on July 08, 2016, 04:59:36 PMIt also has to have a door type of Area Connection, meaning it shouldn't have a hatch.

Fusion and Zero Mission never use hatches for area changes.

Edit: Biospark, do you think MAGE is far enough along that it ought to have guides on how to use it?  Should this maybe be a community sorta thing?  I'd be happy to contribute to such a project.

biospark

Quote from: passarbye on July 08, 2016, 06:29:40 PM
The only problem I'm having now is that the hatches won't open, or can area connected doors even have hatches?
I know it works because I replaced the hatches with shot blocks, but this is not exactly desirable.

Area connections cannot be hatches.

Quote from: passarbye on July 08, 2016, 06:29:40 PM
Quote from: biospark on July 08, 2016, 05:37:00 PM
Edit: Looks like ZM has a list of rooms with elevators. I'll add another tab for elevators in the connection editor. I'll also write up a guide for making elevators.
Thanks  :^_^:

Actually, I'll just include a patch that disables the room check. I'm not sure why ZM checks a list while Fusion doesn't.

Quote from: Kazuto on July 08, 2016, 06:31:20 PM
Edit: Biospark, do you think MAGE is far enough along that it ought to have guides on how to use it?  Should this maybe be a community sorta thing?  I'd be happy to contribute to such a project.

If people want to write guides, that would be nice. I don't have so much time for that, so I'll only write a few in the future.

Kazuto

Quote from: biospark on July 08, 2016, 06:41:57 PM
Actually, I'll just include a patch that disables the room check. I'm not sure why ZM checks a list while Fusion doesn't.
Because ZM is weird.  =P  There's a bunch of comparison checks involved to make sure the starting room is door 0 in room 0 in Brinstar, despite the fact that a routine that runs right before this sets the door to 0, the room to 0, and the area to Brinstar.  I think they got a little overzealous with the ROM protections for ZM.

Incidentally, I'm overwriting these checks to make it easier to change this.

Quote from: biospark on July 08, 2016, 06:41:57 PM
Quote from: Kazuto on July 08, 2016, 06:31:20 PM
Edit: Biospark, do you think MAGE is far enough along that it ought to have guides on how to use it?  Should this maybe be a community sorta thing?  I'd be happy to contribute to such a project.

If people want to write guides, that would be nice. I don't have so much time for that, so I'll only write a few in the future.
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.