News:

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

Main Menu

Editroid Thread

Started by snarfblam, July 27, 2009, 09:44:57 PM

Previous topic - Next topic

DemickXII

#50
Hi everyone.

I am a newbie here, which shouldn't surprise anyone. Anyway, I am using Editroid 2.1 for something that's not quite ready yet. The levels are the same with a few minor tweaks here and there, but there is going to be a complete graphics overhaul (making everything look more 1991-ish instead of the flat '86 look we are all so accustomed to). I have lurked around here a bit and saw someone did a title screen hack (the guy who did MDbtroid) and so I expanded my ROM. Things work great, and I am beginning to get a feel for how screens work (especially in the elevator sequences - the room of the level you are going into is the screen for that level underneath; found that out the hard way). I have hacked the doorways to look more round and a bit different.

Here's a poser: is there any way to find out how to edit the sequence numbers for the screens? This[/url] seems to happen to me going in to a level, and I have added a blank room in Brinstar and Norfair to try to compensate. However, I seem to have done some deleting and have caused both Brinstar and Norfair to have duplicates at screens 01 and 02.

I apologise in advance if this is in the wrong thread, but I would like to see the explorers have an edit mode, or if not be pointed in the right direction as to how to change sequence numbers for the screen and help me find my way around the ROM and/or source code.

snarfblam

Let me make sure I understand correctly. You have two screens in a level, screen 1 and screen 2, that look identical. If you edit screen 1, the changes are reflected in screen 2, right? If this is the case, the problem is that you somehow ended up with two pointers to the same screen data. You can confirm this with the pointer explorer.
[spoiler=See?]

The two screens have the same offset.

[/spoiler]

This problem is already present in a couple of levels in the original game, and it can throw Editroid off if you try to edit these screens. Brinstar shouldn't be affected, though, so maybe you've stumbled across a bug in version 2.1. Have you used Editroid 2.0 with the ROM at all? 2.0 is sadistic and will inflict harm on your ROM, so it should be avoided at all costs.

There are a few things you can try to fix this. Whatever you do, make a backup first if you haven't already.

You could try to manually fix the pointer table in a hex editor (the "Pointer Explorer" gives you the location of the pointer table and screen data), but you need a good understanding of NES pointers as well as Metroid's screen data format. Or, if you post a screenshot of the pointer explorer showing the affected levels' screen data I can give you simple step-by-step directions.

Option two is to use Editroid 3.0. With exactly this sort of issue in mind, I completely re-wrote all the code that handles screen data. It shouldn't get tripped up by glitches in pointer tables, and should actually fix them.

Option three: if Editroid 3.0 doesn't fix it and hex editing hurts your head you can send me the ROM and I'll fix it.

DemickXII

#52
Turned out destroying the copy of the ROM. However, I am now using an expanded Editroid 3.0 Metroid ROMset because I still have the original ROM and made a copy to edit. I ported all the tile data that I had for the previous one, sans the funky door tiles (I'm those doors back in the future, though) and decided against deleting rooms entirely since I have an expanded ROMset that works great. I think I can get back on the right track and I'll be back here if any more issues arise.

BTW, GENIUS implementing CHR animations! 8) I animated some of the background already, including the faces at the very first spawn point in Brinstar. They look jack-o-lantern-esque. Made the orbs glow and changed their look around a bit to make it work. The hazardous liquid looks great with this feature.

Thank you for your patience and everything. I will now return to modifying and retooling the world of Samus Aran. ;)

Edit: When you expand the ROM in Editroid 3.0, where would be the tile data (attributes for certain patterns like the vertical and horizontal door)? Is it still in the same place and is it just the patterns that moved? I would like to bring back the doors I made, but I need to point more tiles to the doors (the door tiles are imported already and await pointing to) so I could modify the Combo Tables and thus modify structures 3 and 4 i.e. the Door and DoorHorizontal.

Edit Part 2 (the sequel): Discovered the Wiki here. Now I can add them doors and hand-apply the patch! Disregard the above edit. I finally figured it out! Sorry and thankis for everything! I will try to post activity here for my hack.

Grimlock

#53
I'm working on a mod with version 2.1.b1, would I be able to open it with the new 3.0?  If so would there be any limitations of doing so?

Also I was wondering about the door scrolling hack, is it automatically applied in 3.0 or has it been removed entirely (I noticed it mentioned a couple pots back), I made use of it pretty heavily in my mod that I am working on.

I just downloaded the new version, I haven't had a chance to try it out yet. (the new features look excellent!)

snarfblam

It should open fine in 3.0. 3.0 will also not remove the door scrolling patch if it has already been applied.

Grimlock

I've started using 3.0 which is very impressive. 

I'm having some difficulty figuring out how to create the animations, specifically how to tell where the rom is looking in the graphical data to generate the animations.  Also I'm not sure which tile would be considered the first tile in the animation.  I see the CHR Usage window but I'm not sure where the first three fields are looking in the rom data. (the fourth "frame time" is self explanatory)

Kraid as an example:

Sprite bank (2 banks)    Default = 14   /I'm not sure how to locate this bank to know I'm editing the right data
Bg Bank: First              Default = 16   /I thought maybe the block numbered "16" in the structure editor would be the
                                                     first tile referenced but that didn't seem to be the case
Bg Bank: Last              Default = 19   /Same thought as "first", I figured it would cylce to block "19" then go to "16"

I'm guessing that I am way off on how the animations work...

Can the "banks", "firsts", and "lasts" be located in Tile Layer Pro through some kind of search or location labeling?

Thanks...

snarfblam

I should probably put this information on the wiki or something but I'll put it here for now. The tiles are animated by using bank swapping. When you open the structure editor, the tile table shown on the left is one bank of graphics, also known as a CHR bank (hence the term "CHR Usage").

When you expand a ROM, you'll get four copies of each level's background graphics, which provides four frames of animation. Graphics banks start at $40010 in the ROM, and each bank is $1000 bytes, so bank 1 is at $41010, bank 2 is at $42010, bank 3 is at $43010, et cetera. So, for example, Brinstar cycles from banks 4 to 7, which are found at $44010-$4800F.

[spoiler][/spoiler]

So for each tile, the first frame of animation is in bank 4, the second frame of animation is in bank 5, the third in 6, the fourth in 7. This is a pain because you can't even see all four frames of the animation at once (tile arranger to the rescue). This is just a consequence of the way the NES works.

Grimlock

#57
Ok, so if I'm understanding you correctly we now have the ability to animate every tile..  :whoa: That is awesome!!!

That's way beyond what I expected!  I assumed the ability to create 3 or 4 animations...

EDIT:  I noticed that the enemy graphics have been duplicated as well, did you have any future plans on allowing enemy graphics cycling?   Are the duplicated enemy graphics used in some other way?

snarfblam

The enemy tiles are duplicated for Justin Bailey. For technical reasons, an expanded ROM can only swap whole banks of tiles, one for sprites and one for background. In order to have both normal Samus graphics and nakey Samus graphics, there needs to be a full bank of sprite graphics for each, so every level gets two banks of graphics that are mostly identical. If you wanted, you could have the enemies, power-ups, and any other sprites look completely different in Justin Bailey mode.

DemickXII

Quote from: snarfblam on April 24, 2012, 07:18:35 PMnakey Samus
:lol:

Anyway: I recall when, on the older releases, you had the title screen text editing option. With that same information, you could also apply that to the story screen as well. I also found out that there is more space per line for the story. Check this out:

Usually you have your "Engrish" story screen, and on each line of text you have whatever is there. I have discovered that there are spaces after each line (sometimes up to seven spaces at a time), thus allowing more room for expansion - great for custom text! Not only that, you can tell it where to appear via PPU address - which means that a shift of the PPU address per line can actually shift the string of text horizontally *(vertically too if you're brave) depending on whether the number is higher or lower (seeing as the PPU addresses themselves per line have 32 values i.e. it would be 2000-201f and so on and so forth). I don't recommend changing the data count as a personal preference as that will do naughty things with my ROM. However, the Emergency Order line and the the Space Defense Force / M510 lines do not have these extra spaces but can also be moved horizontally (see asterisk) in the same fashion. I went in with my hex editor of choice and discovered this trying to find the "Push Start Button" text to edit it.

Start of data in question: 0x678

snarfblam

The tools are already out there to do this sort of thing. Re-arranging the tiles for the logo on the title screen is a bit trickier, but when it comes to editing the story text, credits text, or anything like that I would rather see a tutorial or instructional article. All you need is a hex editor that supports tables and relative searches, and once you know how to do this for one game, you know how to do it for any game. If you have table files (or know how to make them) for Metroid, and you know the offsets of the text data, hop onto the wiki and share it with the world.

passarbye

so is there any limit to how many rooms we can make?
(new to editroid hacking)

snarfblam

128 per level, or until you run out of free space. Whichever comes first.

passarbye

#63
Quote from: snarfblam on May 11, 2012, 07:21:14 PM
128 per level, or until you run out of free space. Whichever comes first.
thanks.  :^_^:

EDIT:
hey snarfblam, i have an issue with this room.
[spoiler][/spoiler]
i can go down from the top, but i can't go up from the bottom.

i'd consult the FAQ, but i can't find one..

SpiderWaffle

#64
I saw Snarf's alignment was with metroid hacking under his avator, is he still working on this?  I know there were some things he wanted to do for next update, but hadn't seen new since 3.0b on his site, looks he did some zelda stuff.

I think we're all pretty impressed with 3.0b and really appreciate this contribution to the community.  I think some top teir hacks have been released recently, made mostly with snarf's editor.

There have been a lot of good ideas and suggestion for improvement, I think it would be nice if we could consolidate the best and most urgent ones, maybe have a running priority list updated with community input.

I think the bulk of the work is done, we're mostly looking minor tweaks and improvements such as ease of UI, and some new features.

It seems there's other members of the community that are interested in contributing meaningful coding contributions, like deciphering sprite tables for things like start menu editing or text messages, or making new patches to the game like icy wave.


Some people have already done some great sprite edits and animations, would it possible to add an ability to input pallets/sprites tables?  This would encourage more user provided content, which is a huge market we'd want to tap into.  And perhaps the same thing with patches could come to be.



One editing feature I was hoping for, was to change the values for things, via a labeled table entry menu, such as:
Enemy HP, damage samus takes from a hit in each area, damage rate of lava and acid, number of missiles for red/orange/purple doors, damage samus's different weapons do including screw attack, amount of health from health drop, amount of missiles from missile drop, amount of missile gained from missile item, amount of missiles gain for beating kraid and for beating riddley, sub-boss and boss HP, time enemies stay frozen, time temp blocks stay away.

And some other things, which might make more sense in conjunction with patches:
default jump height, high jump boots jump height or height gained, ability to stack multiple high jump boots
default horizontal move speed on land and in air, power ups to change horizontal land and/or air speed
default projectile weapon speed, powerups to change this
default weapon distance, long beam adds distance, stack multiple long beams, at some point becomes infinite
enemy move speed, combine/swap enemy AI

Ideas for patches, some mentioned before:
spring ball
wall jump (maybe require a powerup)
space jump

ability to select which beam you're using, ie toggle between default, ice, and wave via some control input or pause menu, or even better select which are active > icey wave

screw attack damage sub-boss and boss

new type of missile, like super missile, but maybe more interesting and unique from regular missile, like say the scroll weapon in TMNT.

------
Finally, a GUI feature idea, mod the structure browser and screen browser to be "brushes" like in blizzard rts editors, so you can click on the structure you want and add it to the screen, or screen you want and add it to the map; instead of having cycle through them all every time.

A similar way to select which structure you're editing with having find it on a screen that's also put into the map.

------
Bug report: Maybe it's just me, but the structure editor seems very bugy; whenever I add a block, it usually adds a partial row of non-physical sprites leading out to it from of the left of the row all the to where the block was put it.  I can only delete some of the blocks from the structure, which ones seem very random.  Trying add the 1/4 block pieces to the structure adds in shoddy blocks, it's nice to see the blocks blown up and thier 1/4th blocks, but can you edit the blocks with the 1/4th block, or dissable this 1/4th block missing up the structure?

snarfblam

I haven't touched Editroid since April. Development on Editroid has never been continuous. It's more of a "when inspiration strikes" thing. In the meantime I've been in more of a help-on-other-people's-hacks sort of mood, but lately I'm starting to feel the Metroid itch again.

Up till now, I tried to eschew features not directly related to level editing because that's just effort diverted from the main feature. That's why Editroid doesn't have a lot of "extras". I've actually removed features so I could focus on level editing instead of, say, debugging the included IPS utility when you can just use Lunar. But now I'm pretty satisfied that the level editing is complete and well rounded, so at this point I guess making tweaks and adding in those extras I've been avoiding would be the next logical step.

A sprite editor and game property editor are definitely doable. There are also plenty of possibilities for cool patches, but whether/how this should be incorporated into Editroid would require serious consideration.

One problem I've run into with adding new power-ups is the password system. There's not much (if any) room to store info for new items. I'd like to add a save system, which would easily avoid this problem, but if I did that, it would be very, very basic (one file).

Quote from: SpiderWaffle on November 17, 2012, 10:14:59 PM
Finally, a GUI feature idea, mod the structure browser and screen browser to be "brushes" like in blizzard rts editors, so you can click on the structure you want and add it to the screen, or screen you want and add it to the map; instead of having cycle through them all every time.
There's a handy feature that's not really advertised. When you have an enemy or object selected, you can type in the number for the enemy/object type you want. As I edit a level, I tend to learn the structure numbers. That might work better for some people than others. I'm very keyboard-centric. But I can look into adding something like this.


Quote from: SpiderWaffle on November 17, 2012, 10:14:59 PM
Bug report: Maybe it's just me, but the structure editor seems very bugy; whenever I add a block, it usually adds a partial row of non-physical sprites leading out to it from of the left of the row all the to where the block was put it.
I don't understand exactly what the problem is. It might help if you post some images. There are some quirks in structure editing because of limitations of the game engine, though. You can't have empty rows in a structure, and you can't have gaps within a row. If you add a block that breaks these rules, Editroid needs to insert extra blocks to fix that. It also means you can only delete the blocks on either end of a row, and you can't completely delete a row unless it is the last row.

[spoiler=Like this]
[/spoiler]

Is that what you're seeing?



All in all that's kind of a long wish list, so if you or anybody else has any input as far as which features would be the most useful or interesting, I'm open to suggestions.

SpiderWaffle

#66
Nice quick reply, and great to hear our inspirations are synced!

Well, I stumbled upon your youtube channel last night and found some great gems in there, it seems you've already made most of the patches I mentioned.  Maybe just uploading the patches and editor into one common place, and adding back in the patch activator feature, so it's easy for people to get editroid and patches, and apply them how they want to their rom.  I'm guessing this wouldn't be too much work since most of it is already done.  Would great if more users could submit their own patches seamlessly too.

sprite editor would be nice, or way to import sprite packages.  I'm guessing there's already some good sprite editors, I don't know how user friendly it is use one to mod a rom with animations and all that jazz across multiple programs, formats, ect, though.  I think it would be great if people could make their sprites and submit them for community use.  It seems some people prefer and are better at graphics mods, others level design, others music, ect.  Just need a better way for people tap into and share community talent pool, rather than the anarchy of everyone doing their own stuff, all aspects of it at once, and a few gurus like snarf helping people one at time in private.

I think once a more seemless resource and community system is in effect, and editroid gets slightly more user friendly GUI tweaks, we could see a lot more from the metroid hacking scene.

I think 'brushes', like in blizzard RTS editors would do wonders for user friendly GUI; enemy, structure, screen.  If it's a lot work though I wouldn't make it top priority.

Some of the more advanced stuff that makes games that much better would be nice to have built in edits, like title screen, maybe more related to sprite editor you mentioned, pop up text messages, music changes with events, music editor.  I still don't have a clear idea how to edit back layer sprite, do you have to put it in a structure or something?


I also saw, someone on this forum did some wondrous things with LUA script, which did most of the other ideas I mentioned, such as pause menu activating/deactivating items list, they also added Super Metroid style map system which really looked great.  I don't suppose that could be done with SMA instead of LUA to achieve it with a patched rom instead users having to download and run a LUA script on top of the rom?

Save feature like in JAP version would be neat, but I don't think it's completely necessary or should be high priority unless it's really easy to implement; since presumably everyone playing a rom made with ediotroid is using an emulator to play it, and one with save states.  There would only be a small a niche of people that would want passworded type save where you go to elevator or start location with 30 energy.

-----
I see now with structure continuity rules what works, is that part of the original rom?  It would be somewhat helpful to not need continuous structures.

snarfblam

Here's my current idea. The next version of Editroid will have a simple plug-in system. What this will allow me to do is make and distribute extras separately. Also, while I don't expect anybody else to author a plug-in, I'll make the source available from plug-ins I make so if anybody wants to tweak or add to a plug-in, they can do that and share their work.

I'll also look at how I can tweak the editor. Maybe I can replace the screen and structure browsers with a screen/structure selection pane where you scroll through screens and structures to pick and place them.

Quote from: SpiderWaffle on November 19, 2012, 07:57:32 AM
I also saw, someone on this forum did some wondrous things with LUA script, which did most of the other ideas I mentioned, such as pause menu activating/deactivating items list, they also added Super Metroid style map system which really looked great.  I don't suppose that could be done with SMA instead of LUA to achieve it with a patched rom instead users having to download and run a LUA script on top of the rom?

That would be MDbtroid by Infinity's End. There's a reason it was done in LUA, though. LUA scripts in FCEUX don't have the same kind of limitations as native NES code. By no means is it impossible to do in ASM, it's just tons and tons of work.

As far as the save system, this is as far as I would be willing to go: There would be one save file. Title screen would be unaltered.  "START" starts a new game, "CONTINUE" loads the saved game. When the player dies, instead of showing a password, the player would get a simple Zelda-like menu: CONTINUE/SAVE/RETRY.

Quote from: SpiderWaffle on November 19, 2012, 07:57:32 AM
I see now with structure continuity rules what works, is that part of the original rom?  It would be somewhat helpful to not need continuous structures.

This is a consequence of how the game stores and draws the structures. While it would be nice to have non-contiguous structures, that would be a relatively small convenience that doesn't really buy you anything in the end. The trade off is rewriting an important part of the game engine to save a few clicks in the editor.

SpiderWaffle

I figured that'd be the case with LUA and SMA, it's a shame.  Could maybe some bare-bones implementation be done?  Like on start screen, a certain button combination pressed to select which config you want, like select for regular, B for ice, A for wave, hold both B and A (don't have to press and release on same frame to work) to activate icy wave; whichever was inputted last is what you have after unpausing.

I'm guessing a bare-bones map system is out of the question since, the LUA script one is already about as bare as it gets.

Plugins seems like a nice idea.  Things like 'value editor' (I mentioned a couple past back) could be added as a plugin later.

snarfblam

A simple sprite-based equipment screen could be done in a pause menu. Still far from trivial to code, but doable. There's also a simple sprite-based minimap hack which looks pretty cool but is pretty useless in practice.
[spoiler][/spoiler]

SpiderWaffle

Sprites wouldn't really even be necessary, but could help make it a bit more intuitive.  I was thinking if the text message edit feature, which I think you had ideas for in the past and you or someone had done some stuff with this idea, could use that to display a text message when the different configs were activated.

That's impressive that that map hack has already been made, would it be much more work to expand it, to show more than 9 rooms at once, or maybe even on start screen, fill it with the map.

Another sweet idea, have 'maps' for the 5 different areas somewhere that you can pick up, to show the map for that area when your in it, kind of like LoZ dungeons.  A step further, 'compasses' to show which rooms have power-ups :D

I'm guessing an indicator of max missiles wouldn't be too hard, like in MDBmetroid LUA script, I'm sure more people have requested this before.

Flpjack

Hey everyone. I'm not an uber hacker or CS guy, but I've been playing around with the Editroid editor and have a few questions. Hopefully you can help me out or point me in the right direction.

-How do I put the little bubbles on the door frames? How do I access door options?
-How do I change an enemy to its harder variant? Can we make a new enemy type by duplicating one, changing speed, size and hp variables?
-Is there a way to change the colors/palette of specific blocks instead of the entire game? I don't think I understand the purpose of the alternate palette.
-Is there a maximum memory issue or other devastating bugs/nonos I should be aware of? Currently, I'm creating a lot of custom rooms via duplicating or making new ones. Will this be a problem on down the road?

Thank you!

snarfblam

My first and most important suggestion is to make frequent backups. Also, just make sure you're using version 3 (http://snarfblam.com/files/Editroid_3.0a.zip)

Quote
-How do I put the little bubbles on the door frames? How do I access door options?
Make sure the room is selected, and use the menu found at the left of the toolbar. I generally refer to the bubble as the "door", and the other part of the door as the "doorway". I don't know if that's the best way to differentiate, but oh well.
[spoiler][/spoiler]


Quote
-How do I change an enemy to its harder variant? Can we make a new enemy type by duplicating one, changing speed, size and hp variables?
Use the change-palette-button to swap between the easy and hard version of an enemy (seemed logical to me since the palette is how you tell them apart).
[spoiler][/spoiler]
A new enemy type would require some ASM hacking as well as modifications to Editroid to permit it (I'm all for making tweaks to the editor to suit somebody's hack, but that assumes you're willing/able to make the hack in the first place).


Quote
-Is there a way to change the colors/palette of specific blocks instead of the entire game? I don't think I understand the purpose of the alternate palette.
Use the palette button to select the palette for an entire structure. If you want a single block to use a different palette, create a new structure containing only that block, place an instance of that structure in the room, and set its palette.

You can't assign a completely different palette to every block/structure. The NES can only handle four background palettes at a time. The challenge is being creative within the constrains imposed by the system and the game.

The alternate palette is a second group of palettes for each level. When you go through a room containing a "palette swap" item, the game switches between the primary palette and the second palette. In the original game, the palette swaps occur in the "bridge" rooms.

Palette swaps are actually important. When you have an elevator from Brinstar to Norfair, or Norfair to Ridley's Hideout, the game expects the area at the top of the elevator to use the alternate palette, and the area at the bottom to use the primary palette. If you do otherwise, the player may end up seeing the wrong palettes in the wrong areas.


Quote
-Is there a maximum memory issue or other devastating bugs/nonos I should be aware of? Currently, I'm creating a lot of custom rooms via duplicating or making new ones. Will this be a problem on down the road?
Editroid will only allow you to use otherwise unused memory for the screens, structures, and items. As long as the editor permits you to add stuff, it's safe to add stuff. The free memory is shown on the right side of the info pane beneath the selected screen (in hexadecimal). Each level has its own separate memory bank, so each level has a different amount of free space, and free space from one level can't be used for another.

[spoiler][/spoiler]

If, by some chance, you see a wacky huge and/or negative number, you broke something (by which I mean I broke something in the editor but choose to blame you), and you should revert to your most recent backup.

Flpjack

#73
^Thanks for all the great information.

I'd love to make some simple new enemy types (change size, speed, hp for like a psuedo mini-boss), but I don't know the first thing about hacking or hexidecimal. I know hex is pretty low stuff and has 6 digits. That's it. Am I right in saying it's base 16? I'm just here to try to redesign the game in terms of game design theory fundamentals. Teach then test the player, difficult pacing, etc...

Roughly what percent of squares/rooms/areas over the entire map can I use before I break this memory limit? Like, if I cover Brinstar in 25% of the total possible area, would that break the limit?

Edit: I'd like to create a few elevator objects that descends Samus into the same area. (Brinstar > Brinstar) Is this possible? Also, is it possible to create multiple elevators into the same area? ie, more than one way to enter Norfair?

Edit 2: Can doors only be added in the middle? Can I offset doors/doorways up or down some?

Edit 3: How do you toggle a block from being destructible/non-destructible and solid/move through?

Edit 4: Is it possible to make an elevator from Brinstar to Brinstar, then go back up from Brinstar to Brinstar, or must I go to a different area? I'd like to add an elevator to make a transition between the blue and orange palettes. I've got it sort of working, but it's doing weird things.

Edit 5: I got the above working! But when I come back up it plays the "creepy" music. Any suggestions?

Edit 6: I have an area where a few doors have been throwing me in seemingly random other areas. I've deleted the areas it's throwing to me which seemed to temporarily fix the issue, but now a door is putting me in the Brinstar area with the palette swap, but I can't delete that room. It's not even on the map anymore but a door or two is putting me there. Any ideas?

snarfblam


  • If you want to make some small changes to the existing enemies, that's doable. Knowing some ASM would help a lot (especially since there as a complete disassembly of Metroid available). Adding additional enemies is not so easy.*
  • If your ROM is expanded I really wouldn't worry about how much memory you're using, but memory usage depends on how detailed you make things. When I make rooms they are usually more detailed than those in the original game and take up ~ 3 times the memory. If you want to know how far you can stretch available memory, just keep an eye on the free memory.
  • Yes doors can only be added in the middle. *
  • In many cases there will be multiple block types that look the same but have different behavior (solid, breakable, or air). If you want to change a block from breakable to solid, for example, you need to replace it with the same-looking-but-solid version. If the same-looking block you need isn't there, you can edit the graphics of another block that has the behavior you need, assuming there is an unused block you can sacrifice*.
  • Pertaining to edit 5, my suggestion is that you not use the Brinstar-to-Brinstar elevator. It is actually a glitch that kinda works (there is no way to place an elevator at the bottom that will bring you back up).*
  • Pertaining to edit 6, I would have to see it to understand what is happening.

* Virtually any limitation can be overcome with a good understanding of ASM, but ASM is not trivial and learning ASM takes a serious investment in time, especially if you have no programming experience.