• 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!

PSA: Simple Solutions to Common Problems Collaboration

mugwhump

Smash Journeyman
Joined
May 22, 2007
Messages
382
Param locations? You mean 0x00019234 or 0x00019508? Nah, the data there is the same in both files (by both files, I mean the original and the one where the only change is turning the external subroutine into a normal one). The modified one is 32B smaller though, which bumps all the data up after a certain point...


OK, here's all the changes caused by changing the external subroutine to a normal one:

0x00000044 and 0x00000060 change from 00026D84 to 00026D80
*(The offset of the general area containing several "statusAnimCmd_AirLasso" strings. This is explained by the address shifting that happens later.

0x0000006B changes from 3D to 3E
0x00000073 changes from 57 to 56
I was thinking perhaps that means 1 item being removed from the External Data Count, and 1 added to the data table count? (http://opensa.dantarion.com/wiki/Moveset_File_Format). Might make sense. But then I'm not sure how the stuff before fits into the Header... TBH I'm not really sure what the Moveset File Format even is lol :V

Then, at 0x000242F0, the word 00 01 92 38 is inserted, pushing everything after in the modified file DOWN (not up!) 4B
*0x00019238 is a subroutine with a lot of code in PSA. Possibly what I'm looking for?

At 0x00026178 in the original, there's 2 words : 00 01 92 38 and 00 00 0A 45 that are deleted in the modified file. Now the contents of the modified file are shifted UP 8B, and are now 4B above the original (so the address of the same data is 4B smaller.)
*Maybe adding 0x00019238 before and deleting it here is like moving it from "external data" to the "data table"? Dunno what A45 is lol.

at 0x00026DE4 in the original (it would be at 0x00026DE0 in the modified one), there's 7 words (28B) of 0's that get erased in the modified version. No idea why. The contents of the modified file are now shifted back by 32B.

Don't think there's any changes in the rest of the file.

I'm using Zamus' Brawl+ Gold .pac, if anyone wants to compare. :D
 

frostymm

Smash Journeyman
Joined
Nov 22, 2009
Messages
201
Has anyone figured out how to edit the PSA for Kirby's copy abilities yet? As of right now Smash Attacks and Tabuu either get an error upon opening or just crash
 

frostymm

Smash Journeyman
Joined
Nov 22, 2009
Messages
201
Frostymm, you can find a list of the kirby hat subactions here: http://opensa.dantarion.com/wiki/Kirby_Hats To edit the actions and hitboxes of articles in the hats, however, you need to do it through a hex editor. PSA, OSA2, and Tabuu can't open the hat files. :(
That seems a bit over my head at the moment but it's definitely something we'll need to do to finish project Klonoa, thanks ^^
 

mugwhump

Smash Journeyman
Joined
May 22, 2007
Messages
382
Hooray, I got Zamus' external subroutine back! :bee:

However that only fixed her Side B, lol. Her Up B doesn't work now.

It's identical to the working versions in other .pacs as far as I can tell, so I'm pretty stumped.

Interestingly, they all call the subroutine with an offset of 0xFFFFFFFF (I assume it's an external subroutine, since it's called with 00000002). What the heck does that do? Is the offset -1? -1 from where? Does FFFFFFFF have some special meaning as an offset? How does "00000002 FFFFFFFF" get statusAnimCmd_AirLasso to come out?

edit: aahhh, that makes more sense. I'll check what it gets changed to with my USBGecko. Must be something in the .pac that changes it though...
Also, PSA doesn't recognize which external subroutine it is, but Tabuu does.
 

frostymm

Smash Journeyman
Joined
Nov 22, 2009
Messages
201
Even after replacing Lucas' graphics with different models and textures, a lot of Lucas' old graphics still appear. After looking at the fitlucas.pac file using TheShyGuys external graphic editor I found out that it's because within each graphic are a small series of subgraphics. Does anybody know of a way to delete these subgraphics?
 

mugwhump

Smash Journeyman
Joined
May 22, 2007
Messages
382
Not sure how PSA recognizes which external subroutine it is, but those FFFFFFFF offsets are actually changed to proper offsets once the file is loaded in game.
Hmmmmmm, I'm having a lot of trouble finding what it even gets changed to. Looks like .pacs are altered really heavily after they're loaded into memory. I can't even find the right place in memory.

Still not sure how Tabuu recognizes it either.
 

mugwhump

Smash Journeyman
Joined
May 22, 2007
Messages
382
OK, it looks like the correct address is indeed being written over the FFFFFFFF (regardless of what I change the FFFFFFFF to). It's the same address that's written into the Forward-B subroutine over "00019508".

In my .pac, it doesn't write in the correct address. It writes whatever I put as the offset plus the address of Zamus' pac. Which is markedly different behaviour. I need to figure out how it decides what to write there...

edit: when I poke it to the correct address, it works. So that's definitely the problem.

Edit: yeah in case anyone was wondering I fixed it eventually.
 

NoAh MenQui

Smash Apprentice
Joined
Feb 5, 2011
Messages
107
:phone:
How to combine joystick inputs to get Diagonal inputs?

Like,
- If joystick is Up
- Another compare here with joystick Forwrad so it's diagonal forward+up joystick input

Hope I can get help with this as I really need an example.

:phone:

EDIT:

Found something thanks to Vigilante's Pointers :D

***** Fighter.pac Ftilt *****

triggers Diagonal Up (Both back and forward)
If: IC Basic[253] > IC-Basic[80]
1021
3152

triggers Diagonal Down (Both back and forward)
If: IC Basic[253] < IC-Basic[81]
1021
3153

But... this isn't what I was looking for but it could help someone else with something so I put it here.

What I want is that, but also:
Code:
If: joystick is Back+Up
-- events
Else:
-- If: joystick is Forward+Up
---- events
-- Else:
---- If: Back+Down
------ events
---- Else:
------ If: Forward+Down
-------- events
------ End if:
---- End if:
-- End if:
End if:
Hope someone can help me out with this

EDIT #?

I'm gonna try this today

Code:
If: joystick forward is pressed
-- If: joystick up is pressed
---- events
-- Else:
---- If: joystick down is pressed
------ events
---- End if:
-- End if:
Else:
-- If: joystick back is pressed
---- If: joystick up is pressed
------ events
---- Else:
------ If: joystick down is pressed
-------- events
------ End if:
---- End if:
-- End if:
End if:
If this works Imma be a happy guy :-)

Trial and error psa season 1 begins

:phone:

EDIT##?

I manage to get what I wanted I'll post the stuff if I'm asked for, thread seems quite dead :/
 

709q

Smash Rookie
Joined
May 2, 2012
Messages
4
Model Changer

How do you use the model changer command in PSA! Please Help me!
 

xDD-Master

Smash Champion
Joined
Sep 22, 2008
Messages
2,992
Location
Berlin
To use a conditional if an attack hits, 0B is the correct command. However, keep in mind, if you use condition 0B, it will check if a hitbox is hitting for only that frame. So you need something like:

Set loop X (number of frames hitbox is out for)
-If 0B
--things the attack should do if the hitbox connects
-end if
Execute loop

Additionally, there's one more thing to watch out for: 0B will only check for a special offensive collision. If you want more tips on how this works, check out Captain Falcon's sideB; it uses this very nicely.

Good thing to write about; I'll add a guide on it to the OP.
Doesn't work for me...
I try to make Marth possible to cancel his Tilts and Smashes into everything on hit.
I have tried multiple possible solutions to this, but I just can't get it done...
I am currently trying something easier, instead of allow interrupt, to heal 1% of damage...
But not even this will work.

I tried it with:
Set Loop X
-- If Hitbox Connects
---- Heal
-- End if
End Loop

The same, just with synchronous timer after the if.

I tried putting stuff (Loops or just the if block) into GFX / other too.
I tried it with subactions.

I tried almost everything, but I just cant get it too work.

So if anyone knows how to do this, pls let me know :(

Even better would be a hacked Marth who can cancel his Attacks into everything else on hit. Or specials or something would be enough.
(I could change the allow interrupt into specific interrupt later on anyway)

I basically just need to know how to make the if block properly work, as right now, it seems like the if block is completely ignored (Or in other words: The needed if case never occurs to the system)

I guess it is, because I have trouble making the hitbox hit + checking the if block at the same time, because I know it has to happen concurrent...

Thats why I also tried GFX/Other, but still no success :(

HEEEEEEEELP D:
 

ness64

Smash Rookie
Joined
Nov 23, 2013
Messages
10
How do you change the running speed and where do you find the grab-release animation?
 

HanAmes

Smash Ace
Joined
Aug 4, 2006
Messages
615
Location
San Jose, CA
I'm having a problem with Peach's UpB. During my very own project, I've changed how Peach's UpB works, and in game, when I test it out, she can't UpB in the opposite direction; she only goes forward. I can send the code of her UpB that I'm struggling with, if needed. And if you're able to help me out, thanks a lot.
 

Chompunish

Smash Rookie
Joined
Nov 30, 2014
Messages
5
@ xDD-Master xDD-Master : As for interrupting commands on hit, I am pretty sure the If should be set to 3D, not 0B. Another reason can be the fact that you accidentally changed a offset.
@ Mr.Random Mr.Random : It should be in SubActions 72, 73, 74, & 75.
@ HanAmes HanAmes : You probably deleted the "Change Character Momentum" that moves Peach upwards, or added a "Prevent Certain Movements" line somewhere; do you have a backup?
@ ness64 ness64 : Run speed can be found in attributes in PSA, but I don't understand what you mean in the second statement...
 

HanAmes

Smash Ace
Joined
Aug 4, 2006
Messages
615
Location
San Jose, CA
I sure do! Plus, I have the original as well. What I did, though, was just started all over. Now I'm on to another problem. If I mod a clean moveset in anyway, the game always freezes whenever I attack with a move; even though I changed the values in PSA correctly. The attack just goes through one frame and BAM! That annoying freezing sound penetrates my ears. So, what I'm gonna try now is, download PSA all over again, and if the same problem happens, then I don't know what to do.

On the bright side, since I started from the beginning, I no longer have that problem where I can only upB in one direction. And the funny thing is, I never had that problem before...but now, all of a sudden, it always freezes. So yeah, some insight would be nice, since I'm nearly at wit's end here.
 

Chompunish

Smash Rookie
Joined
Nov 30, 2014
Messages
5
Sounds like a tough problem... My only suggestion is that you might have overwritten the original.
Sidenote here: I also have difficulty with a project I am doing myself [On Gannondorf]. What I did was this in all of his taunts:
If Not Bit Is Set: LA-Bit[231]
Bit Variable Set: LA-Bit[231]=True
Asynchronous Timer: XX
Allow Interrupt
Else:
Bit Variable Clear: LA-Bit[231]=False
Asynchrono
us Timer: XX
Allow Interrupt


This changes his state from Regular to Finisher, where his F-Air, N-Air, and F-Smash change.
And his usual Forward-Air, Neutral-Air, and Forward Smash Hold (when he charges his F-Smash) all start like this:
If Bit Is Set: LA-Bit[231]
Change Subaction To: XX
Else:
XXXXXXXXXXXXXXXXX

So what I basically did was (using the extra spots in his .pac file; where the Animation read: NONE), when he uses his F-Air (Assuming he Taunted already), his F-Air will change into Captain Falcon's Fair (The Knee); N-Air turns into Fox's Nair; and in F-Smash (I'm still play testing and working the kinks out of this one), he'll pull out his sword, and then use a variation of Marth's F-Smash, where he does more damage when the foe is closer to the hilt (Roy's F-Smash, basically).

My problem lies in the new aerial attacks - because they don't have any "GOTO" landing animations, like normal aerials, they ALWAYS autocancel once Gannondorf lands - considering I'm trying to make this as tournament legal as possible (I'm mainly a P:M player) - no lag is a bad thing. I made a fix that looked like this (I added the landing animations from C. Falcon and Fox to Gannon's MotionEtc.pac file and used the empty slots after his Wait1, Wait2, Wait3 subactions to place the animations):
If: Change in Air/Ground State
Change Subaction: LandingKneeOfJustice (Captain's F-Air Landing Lag)/ LandingAttackAirNCombo (Fox's N-Air Landing Lag)
Else:
XXXXXXXXXXXXXX

Now whenever I try to use one of the alternative aerials, the landing animation plays in the air, and, apparently, this will also autocancel. As of right now, I rigged up a fix that (hopefully) might fix the issue, replacing the "If: Change in Air/Ground State" with "If: On Ground". I'm just about to play test this.
Sidenote Here: Happy New Years, Everybody!​
EDIT #1: I tested it, it (unfortunately) didn't work. So I tried experimenting with Bit Variables. Now at the beginning of the attack (before the hitbox starts), a Random Access Variable is Set (231 & 230 for N-Air & F-Air, respectively), and then, in both the Main of SubAction "LandingLight" & "LandingHeavy", I put this:
If Bit Is Set: LA-Bit [231]
If Bit Is Set: RA-Bit [231]
Change Subaction: LandingAirNCombo, Pass Frame: True
Else:
If Bit Is Set: RA-Bit [230]
Change SubAction: LandingKneeOfJustice, Pass Frame: True
End If:
End If:
End If:
Unfortunately, even this fix crashes the game when ever Ganondorf lands (though occasionally, I can land without any problem, but in both cases, using an aerial crashes the game).
I think this fails to work because other Random Access Variables are already active, but don't RA variables reset once they are done being used, unlike LA variables?
 
Last edited:
Top Bottom