Language…
13 users online: anonimzwx,  BeeKaay, codfish1002, DanMario24YT, HaruMKT, hhuxy, koffe190, lean4, margot, ModernKiwi, Pizzagamer9791,  Ringo, SysDataSoft - Guests: 308 - Bots: 320
Users: 64,795 (2,375 active)
Latest user: mathew

Modifying the Cape Feather

The Cape Feather confers 3 powers on Mario:

1: The ability to float when falling.
2: The ability to fly up after taking a running start.
3: The ability to open the cape after flying and maintain altitude essentially indefinitely.

There are a number of patches that remove one or more of these abilities from the Cape, but they all have one drawback: they permanently remove them. That's fine for some people and their hacks, but it's not what I want.

What I'm wondering is this: is it possible to conditionally remove one or more of these? What I'm thinking of is a progression of abilities.

In the beginning, the cape just allows you to float when falling. No flying, no open cape. Then, Mario does something, something similar to a Switch Palace or one of the Block Tool's "Key" blocks. This unlocks the ability of the cape to fly. This unlocking is saved in save games, much like the Block Tool's "Key" flags. Later, Mario does something else that unlocks the third ability, which confers onto him full flight powers.

What would this require? Is there some way of putting this kind of conditional logic in the appropriate bits of cape code?
Its easier that you think. Use ersanio's level asm!
All you have to do is pase the ASM code from one of the patches into the level you want and boom.
Download the tool and it'll make a bit more sense.
<TLMB> I use YY-CHR to edit DNA
Except he wants the abilities granted to be based off the passing of a particular event, not based on what level you've entered. Just like blue switch blocks don't get filled in until you beat the blue switch palace.


YouTube
Quote
Use ersanio's level asm!
All you have to do is pase the ASM code from one of the patches into the level you want and boom.


And boom... what? What would this do exactly? I downloaded ersanio's LevelASM .zip file in the Patches section, but nothing in the package actually explains what it does.
smwcentral iconIt allows you to put ASM hacks into a single level. Go to the levelcode file and put in your asm code to put the ASM hack inside the level number(representing that level). (of course, you need to patch the xkas patch to your rom.)
You know, it would be cool if someone made a sword sprite(s) and released it to the public. That would help a lot of people........ Now that I think about it, that would be perfect for C3! (Not that I could program a sword sprite)
So it turns a global patch into a level-specific one. Interesting.

However, as chainfire rightly pointed out, it's not exactly what I'm looking for. Specifically, I want to be able to go back to older levels and find new secrets/areas once the more powerful Cape is acquired.
smwcentral iconWell, you can use a patch to limit these until the player aquires this thing. You make a check seeing if this thing is aquired. If it's false, limit those powers. It's just a big hint, let's see if you can make sense of this. (hint:SRAM Address)
You know, it would be cool if someone made a sword sprite(s) and released it to the public. That would help a lot of people........ Now that I think about it, that would be perfect for C3! (Not that I could program a sword sprite)
Well, you COULD use the Layer 1 Event Editor in the Overworld map to change all levels previous to the "Switch Palace" to copys of the same level but with LevelASM enabled.

Essentially, you activate an event that overwrites level tiles to redirect them to another level.

But that's just a workaround solution if nothing else works.
Quote
Well, you can use a patch to limit these until the player aquires this thing. You make a check seeing if this thing is aquired. If it's false, limit those powers.


Yes, I understand the basic algorithm. But I don't know the specifics. To do this, I would need to:

1: Know where the assembly logic is that causes Mario to enter "Cape-open" mode.

2: Know where the assembly logic is that causes Mario to enter "flight" when he has a cape, rather than just jumping higher and farther than normal.

I took a look at all.log, and I've found a few locations that look like they could cause flight. But I can't even find the memory address that the game sets to open the cape. $1407 looks suspiciously like this, but I can't find where it gets set.

Quote
Well, you COULD use the Layer 1 Event Editor in the Overworld map to change all levels previous to the "Switch Palace" to copys of the same level but with LevelASM enabled.


Is that even possible? I thought the level tiles were written into the location on the map? That regardless of what events do, a particular tile will go to level X?

Also, that would substantially decrease the number of available stage levels for the overworld.