# KOF Command Buffering (Read 12971 times)

Started by Messatsu, January 27, 2005, 06:36:56 pm

#### Messatsu

##### Re: KOF Command Buffering
#21  January 28, 2005, 05:08:33 pm
• In after lock
While it saves variable space, your code isn't very easy to modify.   I'd say to stick with the helper as you don't need to use your brain at all.

Many people risk their lives everyday by having Mugen.

#### Elix

##### Re: KOF Command Buffering
#22  February 03, 2007, 02:11:01 am
• "Moyashi tsuku shite yaru..."
And I'd say to stick with Abraham Lincoln's idea. But he has forgotten to explain to people who might not catch so quickly what var(1) and var(2) is. And what are those numbers - 21, 441 and 9240? And why 3 of them? If I want to use 30 ticks command buddering should I use 31, 961 and 29791 instead then? And how many moves can be used with this command buffering code? 'Cause 31^7 is already 27'512'614'111 That means it can be used with no more than 7 moves? Please, explain more!

#### Bastard Mami

##### Re: KOF Command Buffering
#23  February 03, 2007, 05:51:45 am
• [E]
this code might be similar, i use it to store how long has a key been pressed.

;____________________________
;
;____________________________
;notes
;the buttons count up to 15 ticks, when they are being pressed,
;if released they get set to0
;there are 7 buttons so that makes it 7 - 4 bits groups
;
;
;this is the base code
;
;increase the counter
;type = varSet
;trigger1 = ((var(17)&(((2**(N))*15)/2**(N))) < 15); && command = "hold_a"
;var(17) =  (var(17)&(var(17)& ((2**32)-1)-(((2**(N))*15))))+( (var(17)&(((2**(N))*15))) + (1*(2**(N)))  )
;ignorehitpause = 0
; reset the counter
;[State -2, not read a button]
;type = varSet
;trigger1 = command != "hold_a" && command != "a"
;var(17) = (var(17)&(var(17)& ((2**32)-1)-(((2**(N))*15))))
;ignorehitpause = 0
;
;
;
;
;increase the counter
type = varSet
trigger1 = (var(17)&15) < 15
var(17) =  (var(17)&(var(17)& ((2**32)-1)-15))+((var(17)&15)+1)
ignorehitpause = 0
; reset the counter
[State -2, not read a button]
type = varSet
trigger1 = command != "hold_a" && command != "a"
var(17) = (var(17)&(var(17)& ((2**32)-1)-(15)))
ignorehitpause = 0

;increase the counter
type = varSet
trigger1 = (var(17)&240) < 240
var(17) =  (var(17)&(var(17)& ((2**32)-1)-240))+((var(17)&240)+16)
ignorehitpause = 0
; reset the counter
[State -2, not read a button]
type = varSet
trigger1 = command != "hold_b" && command != "b"
var(17) = (var(17)&(var(17)& ((2**32)-1)-240))
ignorehitpause = 0

this might be much harder ot the processor but might be easier to understand.

just a question and ignore my semi-retiredness ignorance, but, what's wrong wiht mugen's built in buffering timing ?

#### Elix

##### Re: KOF Command Buffering
#24  February 03, 2007, 06:26:04 am
• "Moyashi tsuku shite yaru..."
Wow, I'll try, thanks. You've written the code only for two buttons though.
I'd like to hear more about Lincoln's method anyway
Last Edit: February 03, 2007, 06:34:42 am by Elix

#### Bastard Mami

##### Re: KOF Command Buffering
#25  February 20, 2007, 05:54:31 am
• [E]
oh, sorry about it, here is teh code for alll the buttons.

Code:
`;____________________________;;[E] reading a button;____________________________;notes;the buttons count up to 15 ticks, when they are being pressed, ;if released they get set to0;there are 7 buttons so that makes it 7 - 4 bits groups;;;this is the base code;;increase the counter;[State -2, read a button];type = varSet;trigger1 = ((var(17)&(((2**(N))*15)/2**(N))) < 15); && command = "hold_a";var(17) =  (var(17)&(var(17)& ((2**32)-1)-(((2**(N))*15))))+( (var(17)&(((2**(N))*15))) + (1*(2**(N)))  ) ;ignorehitpause = 0; reset the counter;[State -2, not read a button];type = varSet;trigger1 = command != "hold_a" && command != "a";var(17) = (var(17)&(var(17)& ((2**32)-1)-(((2**(N))*15))));ignorehitpause = 0;;;;;increase the counter[State -2, read a button]type = varSettrigger1 = (var(17)&15) < 15var(17) =  (var(17)&(var(17)& ((2**32)-1)-15))+((var(17)&15)+1) ignorehitpause = 0; reset the counter[State -2, not read a button]type = varSettrigger1 = command != "hold_a" && command != "a"var(17) = (var(17)&(var(17)& ((2**32)-1)-(15)))ignorehitpause = 0;increase the counter[State -2, read a button]type = varSettrigger1 = (var(17)&240) < 240var(17) =  (var(17)&(var(17)& ((2**32)-1)-240))+((var(17)&240)+16) ignorehitpause = 0; reset the counter[State -2, not read a button]type = varSettrigger1 = command != "hold_b" && command != "b"var(17) = (var(17)&(var(17)& ((2**32)-1)-240))ignorehitpause = 0;increase the counter[State -2, read a button]type = varSettrigger1 = (var(17)&3840) < 3840var(17) =  (var(17)&(var(17)& ((2**32)-1)-3840))+((var(17)&3840)+256) ignorehitpause = 0; reset the counter[State -2, not read a button]type = varSettrigger1 = command != "hold_c" && command != "c"var(17) = (var(17)&(var(17)& ((2**32)-1)-3840))ignorehitpause = 0;increase the counter[State -2, read a button]type = varSettrigger1 = (var(17)&61440) < 61440var(17) =  (var(17)&(var(17)& ((2**32)-1)-61440))+((var(17)&61440)+4096) ignorehitpause = 0; reset the counter[State -2, not read a button]type = varSettrigger1 = command != "hold_x" && command != "x"var(17) = (var(17)&(var(17)& ((2**32)-1)-61440))ignorehitpause = 0;increase the counter[State -2, read a button]type = varSettrigger1 = (var(17)&983040) < 983040var(17) =  (var(17)&(var(17)& ((2**32)-1)-983040))+((var(17)&983040)+65536) ignorehitpause = 0; reset the counter[State -2, not read a button]type = varSettrigger1 = command != "hold_y" && command != "y"var(17) = (var(17)&(var(17)& ((2**32)-1)-983040))ignorehitpause = 0;increase the counter[State -2, read a button]type = varSettrigger1 = (var(17)&15728640) < 15728640var(17) =  (var(17)&(var(17)& ((2**32)-1)-15728640))+((var(17)&15728640)+1048576) ignorehitpause = 0; reset the counter[State -2, not read a button]type = varSettrigger1 = command != "hold_z" && command != "z"var(17) = (var(17)&(var(17)& ((2**32)-1)-15728640))ignorehitpause = 0;increase the counter[State -2, read a button]type = varSettrigger1 = (var(17)&251658240) < 251658240var(17) =  (var(17)&(var(17)& ((2**32)-1)-251658240))+((var(17)&251658240)+16777216) ignorehitpause = 0; reset the counter[State -2, not read a button]type = varSettrigger1 = command != "hold_s" && command != "s"var(17) = (var(17)&(var(17)& ((2**32)-1)-251658240))ignorehitpause = 0`

#### Elix

##### Re: KOF Command Buffering
#26  May 07, 2007, 05:39:34 pm
• "Moyashi tsuku shite yaru..."
I desperately nedd an explanation on how to use this code Because even if I manage to implement it correctly by myself, I don't like using a code I don't understand.
What type of command buffering is it, R[E]ika? I need a command buffering method that "feels like KOF". For example, a traditional KOF XI cancel from Dragon punch (~F, D, \$F, x) to Desperation Move (D, DF, F, D, DF, F, x). Is there any method that will allow "D, DF, F, x" to read as Desperation Move command if it is inputted after Dragon punch? And the whole command for the Super Cancel is "~F, D, \$F, x, D, DF, F, x" instead of "~F, D, \$F, x, D, DF, F, DF, F, x" (which is practically impossible to input).

#### Bastard Mami

##### Re: KOF Command Buffering
#27  May 12, 2007, 11:45:18 pm
• [E]
oh, mugen works by dafault like that, you just need to play around with the .cmd paremeters.. those are what i currently use.

[Defaults]
command.time = 10
command.buffer.time = 5

;Special Attacks

[Command]
name = "QCBHCFx"
command = ~D,DB,B,DB,D,DF,F,x
time = 20

[Command]
name = "DPx"
command = ~F,D,DF,x
time = 15

but i developd those by  feeling on al older pc, so i need to readjust them now tha ti can run mugen at 100% speed.

#### Elix

##### Re: KOF Command Buffering
#28  May 13, 2007, 12:48:47 am
• "Moyashi tsuku shite yaru..."
Hm, I'll try experimenting with those values. Then, if command buffering works in MUGEN well, what is this topic about?

#### Bronko

##### Re: KOF Command Buffering
#29  May 17, 2007, 02:06:43 pm
• Just a butcher on a mission.
It's specifically formulated to generate headaches and trigger math related phobias.
All I know is that I've used this like, once, to keep a buffer of individual keypresses rather than strings of command inputs.

#### Elix

##### Re: KOF Command Buffering
#30  May 19, 2007, 05:45:42 am
• "Moyashi tsuku shite yaru..."
It's specifically formulated to generate headaches and trigger math related phobias.
All I know is that I've used this like, once, to keep a buffer of individual keypresses rather than strings of command inputs.
Strings of command inputs? What do you mean? Like VarSets and ChangeStates in .cns?

#### recruta42

##### Re: KOF Command Buffering
#31  June 04, 2007, 03:14:32 pm
• Call me Private42.
Is it possible  to sinalize that I did a motion like QCF+ a using that code? I think I really need to know this in order to finish the tag team on my project...

#### Bastard Mami

##### Re: KOF Command Buffering
#32  June 04, 2007, 09:32:48 pm
• [E]
maybe.. what are you talking about?

#### recruta42

##### Re: KOF Command Buffering
#33  June 04, 2007, 09:53:51 pm
• Call me Private42.
Well..all the chars must have the same command imput , meaning many moves...but if I could use a var to stock the command and the button pressed I could reduce the amount of different commands so intead of making a command for
QCF + a, QCF + b, QCF + c...etc..I could buffer in a var the command QCF and in another (or even in the same , if possible) the button pressed reducing the number of different commands...

#### Messatsu

##### Re: KOF Command Buffering
#34  June 04, 2007, 09:59:58 pm
• In after lock
You don't need to go that far.
[Command]
name = "QCF_PPP"
command = ~D,DF,F, x
time = 12

[Command]
name = "QCF_PPP"
command = ~D,DF,F, y
time = 12

[Command]
name = "QCF_PPP"
command = ~D,DF,F, z
time = 12

[State -1]
type = changestate
triggerall = command = "QCF_PPP" && command = "x"And I really don't think this is at all necessary for tag team codes.

Many people risk their lives everyday by having Mugen.
Last Edit: June 04, 2007, 10:02:13 pm by ç„¡é™

#### Bastard Mami

##### Re: KOF Command Buffering
#35  June 05, 2007, 09:41:49 pm
• [E]
dude, that's kinda the same, since you are using 3 commands..