• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

fixing IDC

D

Deleted member

Guest
Since I don't want to further clutter up the BBrawl thread I'll continue brainstorming here.

IDC is achieved by going from the air to the ground during the move, and repeating this over and over.
This rings 2 bells:
1) somewhere there must be an infinite loop or something that points at an event earlier in the move.
(ie, cooldown points at startup)
2) at somepoint the game must register going from the air to the ground.

luckily, I found both parts in PSA



In part A, there are 3 distinctive blocks visible. Each block shows 4 lines, the first two are subaction IDs the other 2 I don't know yet.

listing the 6 subaction we find in order:

[0]SpecialLw
[1]SpecialAirLw

[0]SpecialLwF
[1]SpecialAirLwF

[0]SpecialLwB
[1]SpecialAirLwB
(nubers in brackets come back later)
first 2 are DownB in place, other 2 are the moving version (forward/backward)

Note the infinite loop

Parts B and C is where the actual SubAction is changed (B when on ground, C in the air). Now note the line that is selected. We are in the ground part, and it checks if a certain variable is equal to... the aerial counterpart of the subaction. My guess is that it checks the previous subaction (anyone know what IC-Basic[32] is?) to see if MK has gone from the ground to the air or vice versa.

In the case you go air->ground or ground -> air, it does an unknown command, and it passes the frames, which doesn't happen when you don't transfer.

My conclusion is that transferring between the air/ground makes it go through either of the 3 subactions again, and because the loop is infinite there is no reason to abort this.

lot of technical stuff, now for some solutions.
-Change the infinite loop to a finite loop. Not sure how this will work out since I have no clue how often it goes through this loop during normal execution. (chances are it has a relation to how fast you need to mash the C-stick)
-Remove the pass frame. This seems safest to me although it might have side effects
-Remove the unknown command. bad Idea, but if other options fail.
-combine 2 and 3. basically remove the whole "check if transfers".

reason I made this wall instead of just testing something is because my wii doesn't like the file replacement code. And to discuss alternative options.
 

Eldiran

Smash Lord
Joined
Jan 8, 2008
Messages
1,707
Location
Pennsylvania
It seems most likely that IC-Basic[32] is the current subaction. There doesn't seem to be any other possible meaning for it that would be coherent in the case of this special.

I think the looping actually takes place in Action 115; all the subactions here refer to Metaknight's actual slashes. The Start subactions are the only ones that grant intangibility -- it seems Metaknight gets stuck somewhere in those. Not to mention that it only changes action from 115 to 11B or 11C after it is determined whether MK will slash or not.

I'm going to test how well just making the move end prematurely when you use the C-stick works out.

EDIT: I can only pull off IDC for like two seconds... <.< don't think I'll do a very good job testing this.

Regardless, the solution I implemented clearly disables IDC. On the flip side, it lets Metaknight quickly cancel the Down+B into a slash at any point, which is... really cool. It's like a super weak counterattack... that doesn't protect him. BUT it certainly changes the move.

Of course I could easily change it so that pressing C-stick doesn't lead to a slash, but merely reappearing.

Here's the file that allows C-stick to cancel into the slash when RA-Bit[17] is set:
http://dl.dropbox.com/u/3408506/FitMetaknightNoIDCSlash.pac
 

shanus

Smash Hero
Joined
Nov 17, 2005
Messages
6,055
Eldiran, thanks for making a new tech for MK for P:M LOL
 

Amazing Ampharos

Balanced Brawl Designer
Writing Team
Joined
Jan 31, 2008
Messages
4,582
Location
Kansas City, MO
Eldiran's fix is fun; it definitely makes Dimensional Cape a much better move! It's a good solution if nothing else comes up for sure.

Looking at how things play out, I think the clear issue is that somehow RA-Bit[16] never gets set when doing IDC. Ideally there would be some check at the end of the infinite loop adding a conditional. Check if the current animation has been around for N frames, and if it has, set RA-Bit[16].

The reason I don't just do it and try it out is that I don't know what internal variable keeps track of the current frame count on the current animation. Obviously the game does it or else asynchronous timers wouldn't work in general. I'm assuming IDC maintains the same animation as well (as opposed to constantly restarting some animation; you can't really tell much about animations seeing as Meta Knight is invisible during IDC).

The code to add near the end of the loop would be, to be more clear:

Code:
If Compare: (unknown variable) == (constant of our choosing)
        Bit Variable Set: RA-Bit[16] = true
End If
I also am horrible at actually executing IDC so testing is difficult.

If anyone knows what internal variable is used, I could see if my method has validity or is just hopeless.
 

Isatis

If specified, this will repl[0x00000000]ce the
Premium
BRoomer
Joined
Dec 18, 2008
Messages
10,253
Location
San Francisco, CA
NNID
reverite
Not only am I trying out Eldiran's later today, but if you need me to test anything, I can do IDC fairly well to test any solutions to this.
 

Revven

FrankerZ
Joined
Apr 27, 2006
Messages
7,550
Location
Cleveland, Ohio
I can do IDC amazingly well, I've held it for like 30 seconds to a minute before, my thumb is just that amazing. :p

So I guess if Bionic isn't around I may have the time to test something in the afternoon.
 
D

Deleted member

Guest
I'll go see if I can find that variable AA mantioned, seems like a good solution.
Just wondering, maybe people with actual knowledge of PSA can answer this, do loops continue if we added an asycjronous timer?

like:
Set loop infinite
Variable A = variable A+1 (pseudocode)
Async timer: XX intervals (where XX is reasonably large)
reset loop
execute loop

would it increase A continuously, or does it wait for the timer each time?
 

Veril

Frame Savant
Joined
Jun 20, 2008
Messages
3,062
Location
Kent Lakes, New York
Regardless, the solution I implemented clearly disables IDC. On the flip side, it lets Metaknight quickly cancel the Down+B into a slash at any point, which is... really cool. It's like a super weak counterattack... that doesn't protect him. BUT it certainly changes the move.
Awesome. This is definitely something to consider for B+. The IDC is a stupid and game-breaking glitch, but its easily dealt with by just banning it. I'd rather as few things need to be banned as possible, but its arguable that the change isn't worth making. Certainly worth discussing.
 

Eldiran

Smash Lord
Joined
Jan 8, 2008
Messages
1,707
Location
Pennsylvania
Woah, hey! Somehow I managed to miss all 7 or so replies to this after I posted. I'm glad my fix is popular. Has there been any progress figuring out exactly what internal variable is screwing up?

Also, I got to thinking about Sheik's chain jacket -- is it possible that adding a mere "Terminate Collisions" at the start of the move might fix it? To be honest, I am not that familiar with its execution.

If anyone has any details or theories about the chain jacket, I'll start looking into it.
 

Veril

Frame Savant
Joined
Jun 20, 2008
Messages
3,062
Location
Kent Lakes, New York
I actually recorded frame by frame execution of the chain jacket glitch. You have to land on the frame right before the aerial chain hitbox would first appear (frame 31 iirc). Conveniently for B+ that's one frame over the SH aerial duration... otherwise that would be a HUGE problem with buffered SH chain jackets D:

Your IDC fix is great. The question really is, which is better for the c-stick to cancel the move into: slash or just reappearance. Both have strategic uses for MK. I think that the possible edgehog tactics that would become possible with it leading to reappearance could be problematic, whereas the slash is extremely underwhelming by MK standards (or anyone really, DC slash isn't anything special)
 

goodoldganon

Smash Champion
Joined
Mar 17, 2008
Messages
2,946
Location
Cleveland, Ohio
The warp could be cool for possible mind game tactics at mid level play, but I agree that it would cause edgehog problems (possibly ledge stalling problems too) at higher level of play. The slash is the way to go. It's a pretty meh move. I haven't used it since the last time we played drunk Brawl+ but I'm pretty sure it's even a pretty poor KO move strength wise. Either way, go with the slash. It's a much safer bet to not lead to problems.
 

Eldiran

Smash Lord
Joined
Jan 8, 2008
Messages
1,707
Location
Pennsylvania
So what is the current fix we have for this and is that what we are going with or what?
Here is the current fix to the best of my knowledge (someone else may have come up with something better):

Regardless, the solution I implemented clearly disables IDC. On the flip side, it lets Metaknight quickly cancel the Down+B into a slash at any point, which is... really cool. It's like a super weak counterattack... that doesn't protect him. BUT it certainly changes the move.

Of course I could easily change it so that pressing C-stick doesn't lead to a slash, but merely reappearing.

Here's the file that allows C-stick to cancel into the slash when RA-Bit[17] is set:
http://dl.dropbox.com/u/3408506/FitMetaknightNoIDCSlash.pac
 

The Cape

Smash Master
Joined
May 16, 2004
Messages
4,478
Location
Carlisle, PA
What about making the C stick just make you reappear? Did you test that out yet? Might be like an aerial sidestep (that leads to special fall).

This is also cool because it allows you to time the attack. AT all day.
 
Top Bottom