---------------------------------------------------------------------
                     Input Macro driver  v0.4a

                         written by Gangta
                       gangtakun@hotmail.com
---------------------------------------------------------------------

 Credits:

  HyperYagami: External file support is based on his cheat engine

        Jyaku: For online/offline testing and reporting bugs

 Mr K aka MHz: Ideas of input macro came from Kawaks input macro

---------------------------------------------------------------------

 Version History:

  v0.1  - Primitive input macro
          Each macro is hard coded into the game driver
  v0.2  - Intput macro can be disabled or enabled
        - Added more input macro types (normal, auto, block)
  v0.3  - External macro support based on HyerYagami's cheat engine.
          Write your own intput macro for each game:)
  v0.4  - Added some shortcut moves and ~xx for holding xx frames
          Switched the style similar to Kawaks macro
  v0.4a - Fixed weird crash bug (thanks to Jyaku for testing)

---------------------------------------------------------------------

 How to define input macro:  // 趨ϼ

  Edit the fbcombo.dat with Notepad. //༭comboĿ¼µfbacombo.datļ
  fbcombo.dat must be in the /combo/ directory under
  the FBA direcotry.

---------------------------------------------------------------------

 Rules for input macro  // д

  combo type : game zip name : combo move : combo name
       ROM       ָ     ָ

---------------------------------------------------------------------

 valid combo types:

   a - autofire // 
   b - block other input until combo finishes // ֹ
   n - normal // ͨ   

--------------------------------------------------------------------

 valid short cut moves: // ָ

  (+360) -         clockwise 270 motion      // ൱ "F,FD,D,DB,B,BU,U,"
  (-360) - counter clockwise 270 motion      // ൱ "B,BD,D,DF,F,FU,U,"
  (+720) -         clockwise 630 motion      // ൱ "F,FD,D,DB,B,BU,U,UF,F,FD,D,DB,B,BU,U,"
  (-720) - counter clockwise 630 motion      // ൱ "B,BD,D,DF,F,FU,U,UB,B,BD,D,DF,F,FU,U,"
  (+DRG) - forward dragon punch motion       // ൱ "F,D,DF,"
  (-DRG) - reverse dragon punch motion       // ൱ "B,D,DB,"
  (HCF)  - half circle forward motion        // ൱ "B,BD,D,DF,F,"
  (HCB)  - half circle back motion           // ൱ "F,FD,D,DB,B,"

--------------------------------------------------------------------

 valid keys

   U   - up                      // 
   D   - down                    // 
   L   - left                    // 
   R   - right                   // 
   F   - left                    // ǰ
   D   - right                   // 
   ,   - next frame              // һָ
   1   - button 1                // 1
   2   - button 2                // 2
   3   - button 3                // 3
   4   - button 4                // 4
   5   - button 5                // 5
   6   - button 6                // 6

   ~xx - hold this for xx frames // ĳһָ֡

-------------------------------------------------------------------- 

 Examples: // 

 // forward dragon motion, weak punch
 b:sfa:F,D,DF,1:whatever               // ȭ
 
 b:sfa:(+DRG),1:whatever               <--- alternative

 // reverse dragon motion, strong punch
 b:sfa:L,D,DL:2:whatever
 b:sfa:(-DRG):2:whatever               <--- alternative

 // clockwise 360, fierce punch
 b:sfa:R,RD,D,DL,L,LU,U,2:whatever
 b:sfa:(+360),3:whatever               <--- alternative

 // counter clockwise 360, all three punch
 b:sfa:L,LD,D,DR,R,RU,U,123:whatever
 b:sfa:(-360),123:whatever             <--- alternative

 // clockwise 720, fierce punch
 b:sfa:R,RD,D,DL,L,LU,U,UR,R,RD,D,DL,L,LU,U,3:whatever
 b:sfa:(+720),3:whatever               <--- alternative

 // hold left for 60 frames(1 second), right, high punch
 b:sfa:L~60,R,3:whatever

 // weak punch, wait for 10 frames, fierce punch
 b:sfa:1,~10,3:whatever

 // fierce punch, forward dragon motion, high punch
 b:sfa:3,R,D,DR,3:whatever
 b:sfa:3,(+DRG),3:whatever             <--- alternative

 // forward dragon punch, wait 60 frames, forward dragon punch
 b:sfa:R,D,DR,1,~10,R,D,DR,1:whatever
 b:sfa:(+DRG),1,~10,(+DRG),1:whatever  <--- alternative

 // hold down for 4 frames, hold up for 4 frames, attack
 b:wof:D~4,U~4,1:whatever

 // Xmen Vs SF Wolvarine 9 hit combo (dash towards right before this)
 b:xmvsf:1,D~10,D4,D~15,D2,~10,6,RU~30,1,~10,4,~10,2,~10,5,~10,3:whatever

 // Xmen Vs SF Wolvarine 9 hit combo (dash towards left before this)
 b:xmvsf:1,D~10,D4,D~15,D2,~10,6,LU~30,1,~10,4,~10,2,~10,5,~10,3:whatever
--------------------------------------------------------------------

 Important Facts:

 Maximum of 254 characters can be used for each input macro. //ÿıдΪ254ֽ

 Each input macro can be named by maximum of 20 characters.  //20ֽ

 Input macro can be enabled or disabled from FBA->Misc menu,
 or by directly editing fba-combo.ini in the /cfg/ directory. //ͨѡ"Misc"˵µ"Enable Input Macro"ѡ߱༭fbainiļǾʹú

 Input macro can only be enabled or disabled before you start
 a game and after unloading(F6) a game.                       //ϷʼǰѡǷʹú

 ************* Game will desync if: **************

   1.  You are playing someone with official build,
       and you have input macro enabled.

   2.  You are playing someone with this build,
       but one has macro enabled; the other, disabled.

   3.  Both have macro enabled, but they do not
       have the same macro for the game

   * If you are not comfortable with this, don't
     use macro on Netplay, it will most likely desync
     if you don't know what you are doing.

--------------------------------------------------------------------