Homi wrote:Do you mean 180 ?
O.k. it done but WinBoard don't recognize the setup position. I must set up it manually.
Yes, sorry, that is what I meant to write. I am not sure what you did. When I replace the 181 for m by 180 in fmax.ini in the makruk definition, and then set it to play Makruk under WinBoard, the initial position is OK. But promotion becomes a problem, as Fairy-Max then assumes promotion at last rank only, and thus does not specify a promotion suffix when it moves a Pawn to 6th rank. WinBoard apparently cannot stand this, and makes the Pawn simply disappear. This is what would have to be changed in WinBoard to make this possible. (And Fairy-Max could then be equipped with an extra option similar to the 'Cambodian Makruk rules', which is now a checkbox, but could be made a combobox to select Makruk / ASEAN / Cambodian.)
But apparently you are doing something else. If you would define a new variant, named fairy/ASEAN, which is otherwise identical to Makruk, you could select it in the Engine #N Settings combobox (you could even make it the default choice depending on where you would locate its definition in fmax.ini). Then it would be played whenever you set WB to variant fairy. This should be perfectly possible, as the only reason for making Makruk a separate variant was that the promotion zone is different. Which we don't want for ASEAN.
But in that case neither Fairy-Max nor WinBoard would realize that the Pawns start on 3rd rank. WinBoard knows this for Makruk, and considers it always played from a setup position, sending the position to the engine. At the moment this can be worked around by specifying a loadPositionFile with the engine. E.g. you could make a special install of Fairy-Max dedicated to ASEAN, by switching to variant fairy, and in the Load Engine dialog tick 'Force current variant with this engine', and specify as 'Special WinBoard options':
-lpf ASEAN.fen -testLegality false
where you prepared the ASEAN.fen file in the WinBoard folder to contain the FEN of the initial position of ASEAN Chess. As I understand it is common to play ASEAN Chess with the FIDE piece pictograms (e.g. an Elephant should look as Bishop, rather than Elephant), and also use the FIDE names (like Q for the Ferz), there would be no need to redefine the pieceToCharTable. (But you would have to adapt the naming of the pieces in the fmax.ini file accordingly.) If ASEAN is not Fairy-Max standard setting for variant fairy, you could add the option
-firstOptions "Variant fairy selects=ASEAN"
So that whenever you select this engine, it will automatically be set up for SEAN Chess.
In the longer run these complications could be solved by slightly modifying Fairy-Max: WinBoard already accepts the initial position from the engine in variant fairy, but the problem is that Fairy-Max now assumes the Pawns are always on 2nd rank, and thus sends the wrong position. So what must be done is to let Fairy-Max read the Pawn rank from the definition in the fmax.ini file somehow (optionally, to retain backward compatibility with the existing definitions).
This latter solution would still have the slight drawback that ASEAN would have to be played with legality testing off. (This could lead to unnecessary disambiguators and check/checkmate signs in the PGN.) You would not have that when ASEAN is played as Makruk, as WB know how the Makruk pieces move. (But only if you used the same non-FIDE symbols for the pieces; if you would use a Bishop for the Elephant, it would assume it moved as an ordinary Bishop. You could use external piece bitmaps or font to redefine how the pieces look, however.)