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

AI: (Get Well Soon Bero!)

Clai

Smash Lord
Joined
Dec 9, 2007
Messages
1,254
Location
Where men are born and champions are raised
I'd like to test it more, so I will be able to release by the end of this week.
Do you think we should have a new collaboration thread? I think it will be necessary when everyone starts experiment with the editor. But I also think it's good that we don't release anything until we make entirely new AI as a surprise like phoenix mario:)(that way, I'm not sure whether I can release by my end of life...)
I'd like to get a copy of this to test it out as well, that would be incredible if you can do this. Thank you all so much for your efforts and determination, being able to playtest and look for bugs is the least I can do to pay back for all your work.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
Something came up and I can't release AIScriptpad for a week...
If there are people who are waiting my program,I'm sorry. Please be patient.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I'm sorry. I'm in a hospital. I have to stay there for more than two weeks... So the release date will be the middle of this month...
 

Clai

Smash Lord
Joined
Dec 9, 2007
Messages
1,254
Location
Where men are born and champions are raised
Best wishes and get well Bero. Take as much time as you need, your health is more important than anything.

If there is any information that any of the other developers want me to place on the OP, I will scrap the OP and update it to reflect the current state.
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
Go for it!
Unfortunetly, I think this will be extremely hard to use until we get EVERYTHING labeled properly.
Unless Bero has figured out a lot more of the commands than I have.
 

bleyva

Smash Ace
Joined
Feb 17, 2009
Messages
511
i just noticed your location says Japan....were you affected by that earthquake? are you okay?
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I heard that earthquake was EXTREMELY strong, but I don't live near there, so I'm OK.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I think 14 is related to 03,04,05,1C.
03 and 05,1C pushes certain address into location r26+6C(sometimes r29 directly) and 14 pops the address.

By the way,how is the editor? Is that good or bad? I think we can already do such things:
*Disable air dodge near the stage edge.
*Change attacks of CP.
*Find out other meanings of commands.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I think 03,04,05 aren't only loop related things. New definition:
03 "Label" Sometimes it has LabelID.
04 "Return"(to the 05 jumped from)
05,1C-with no arguments "SearchLabel"(unable to return,jump using 14)
with an argument "Goto"(able to return by 04)
14 "Jump" (to the 03 which is found by 05)

Using command04 twice,you can quit the routine.

And new 00 definition:
00 "Finish"
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
http://opensa.dantarion.com/ai_dumps/3090.txt

The labels seem to almost define subroutines in a lot of the files.
http://opensa.dantarion.com/ai_dumps/0070.txt

This one is a good example. If you see the Sub() call, it jumps down to the next subroutine block


BTW, found something weird about the block structure.
Code:
If
.....
EndIf
This looks right
Code:
If
.....
Else
.....
EndIf
This looks right

Code:
 If
 .....
Else
If
.....
 EndIf
But wait, wheres the endif for the else? There isn't one.
Apparently Else->If only creates one block, therefore elif like in python. After accounting for that, the indentation on all of my scripts magically fixed itself.


Also!
http://opensa.dantarion.com/ai_dumps/x.png


EDIT:
0x22,0x23 are interesting.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
That picture is interesting! But why do some AI have no links?...

I found 1F has something to do with controling articles. I don't know how they are used though.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
02 Store two floating point. Not exactly.

I found major commands of AIScripts had already been analyzed.
I think we should get knowledge of functions(0x10XX) and requirements.
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
Heres what I think of these commands.
0x05 = SetJump
0x04 = Jump

If you step through the AI, whenever the game calls 0x04, the next command is the one after the label found by 0x05. Also, Jump seems to allow for a frame to pass in game?


For example....
http://opensa.dantarion.com/ai_dumps/0070.txt
The first block in this one runs once.

It runs SetJump, then Jump, which brings it to the second block.
That block presses Shield, and if its frame 3, it SetJumps so that instead of looping, it jumps to the next block. If its NOT frame 3, the section will loop, as the Jump command will just jump to the beginning of that block.

The last block is simple. It presses Shield...then, depending of if its being called as 0071 or 0072, it presses the stick either left or right. Then...it Finish's, which ends the routine.

The Jump at the end seems to be unneeded.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I think my theory of 04 is weird,but this is the ASM
Code:
mr      r30, r29      # 04
li      r29, 0
Code:
mr      r29, r30 #05
mr      r30, r5
Your theory seems to be correct though.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
Good work,but I'm not surprised. What do you think about Stick()?
What are its arguments?

I think 04 is "Return". When there's an address on callstack,04 is used to return.
When there's nothing on callstack,04 stops current AI.
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I looked into ASM again and found you were correct...
05 is "set next routine",actually.

By the way, findings:
function 0x1003-get direction of opponent. Returns 1,if the opponent is in front,-1 if the opponent is in back.
requirement 0x1003-returns true if the character is not attacked.
command 1F: input direction directly?
1E: converts value to abstract value.
 

Dantarion

Smash Champion
Joined
May 21, 2007
Messages
2,492
Location
Santa Barbara, CA
1E is absolute value, isn't it

The difference between Stick and TargetStick(1F) (too lazy to look up what stick is) is that Stick seems to have some random element applied to it. I noticed that when I had my above script except with -1 for the fastfall, it sometimes wouldn't fastfall.

I think it may have to do with AI level
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
Oh,I'm ashamed...

I'll try to make iceclimbers chain grab tommorow.
 

standardtoaster

Tubacabra
Joined
Nov 26, 2009
Messages
9,253
Location
Eau Claire, Wisconsin
I can't wait for the ice climber AI, Bero.

[12:26:43 PM] Standardtoaster: Bero's going to make a frame perfect ice climber CG AI
[12:27:19 PM] GHNeko: grab = death always
[12:27:23 PM] GHNeko: Genesis 3
[12:27:27 PM] GHNeko: M2K vs CPU by Bero
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
I can read process of AI,but there are too many unknown functions and requirements.
I can hardly make the chaingrab AI,so I'll learn about them first.
 

Life

Smash Hero
Joined
Jul 19, 2010
Messages
5,264
Location
Grieving No Longer
I can't wait for the ice climber AI, Bero.

[12:26:43 PM] Standardtoaster: Bero's going to make a frame perfect ice climber CG AI
[12:27:19 PM] GHNeko: grab = death always
[12:27:23 PM] GHNeko: Genesis 3
[12:27:27 PM] GHNeko: M2K vs CPU by Bero
And this is the reason why AI gets me hyped.

Thank you so much Bero/Dant
 

Bero

Smash Journeyman
Joined
Jan 10, 2010
Messages
409
Location
Japan
0x2A Set CallAI destination
This is why sometimes CallAI command doesn't have any arguments.
 
Top Bottom