Thanks Randy, so we need to investigate further here.
I'm trying to get a better understanding of the way Rodent III processes its options. When loading Rodent III from the command line, these UCI options are available:
pi@raspberrypi:/opt/picochess/engines/aarch64 $ ./rodent3
uci
id name Rodent III 0.289 aarch64/GCC 12.2.0
id author Pawel Koziol (based on Sungorus 1.4 by Pablo Vazquez)
option name Clear Hash type button
option name Hash type spin default 16 min 1 max 4096
option name Threads type spin default 1 min 1 max 48
option name MultiPV type spin default 1 min 1 max 12
option name TimeBuffer type spin default 10 min 0 max 1000
option name PersonalityFile type string default default.txt
option name Verbose type check default false
option name Ponder type check default false
option name UseBook type check default true
option name VerboseBook type check default false
option name TimeTricks type check default false
uciok
I tried a little experiment. I wanted to make Rodent III hang on to pawns but be careless about knights. So I made a test personality file called test.txt in the same directory as the rodent3 executable (in my case that is /opt/picochess/engines/aarch64/). The personality file contains only these four lines:
PawnValueMg = 9000
PawnValueEg = 9000
KnightValueMg = -300
KnightValueEg = -300
Next, I constructed the following position to test whether Rodent III would capture the black pawn or the black knight:
FEN 1rbqk1nr/1ppp1p1p/p5pb/2n1p3/3P4/2N1P1P1/PPP2PBP/R1BQK1NR w KQk - 0 1
I expected that with the four settings in test.txt, White would play 1.dxe5 rather than 1.dxc5 – preferring a valuable pawn to a worthless knight.
Now I loaded rodent3, set Verbose to True, loaded the personality file, loaded the position and let Rodent think:
pi@raspberrypi:/opt/picochess/engines/aarch64 $ ./rodent3
uci
id name Rodent III 0.289 aarch64/GCC 12.2.0
id author Pawel Koziol (based on Sungorus 1.4 by Pablo Vazquez)
option name Clear Hash type button
option name Hash type spin default 16 min 1 max 4096
option name Threads type spin default 1 min 1 max 48
option name MultiPV type spin default 1 min 1 max 12
option name TimeBuffer type spin default 10 min 0 max 1000
option name PersonalityFile type string default default.txt
option name Verbose type check default false
option name Ponder type check default false
option name UseBook type check default true
option name VerboseBook type check default false
option name TimeTricks type check default false
uciok
setoption name Verbose value True
setoption name PersonalityFile value test.txt
info string reading personality 'test.txt' (failure)
setoption name PersonalityFile value /opt/picochess/engines/aarch64/test.txt
info string reading personality '/opt/picochess/engines/aarch64/test.txt' (success)
position fen 1rbqk1nr/1ppp1p1p/p5pb/2n1p3/3P4/2N1P1P1/PPP2PBP/R1BQK1NR w KQk - 0 1
go movetime 1000
Unfortunately, Rodent III still preferred to capture the knight, not the pawn: it played 1.dxc5. These are the last lines of the engine output:
info depth 16 time 572 nodes 517316 nps 904398 score cp 352 pv d4c5 d8e7 g1f3 e7c5 d1d5 c5d5 c3d5 c7c6 d5c7 e8d8 f3e5 d8c7 e5f7 h6g7 e3e4 d7d6 f7h8 g7h8 e1g1
info depth 17
info currmove d4c5 currmovenumber 1
info depth 17 time 851 nodes 783057 nps 920160 score cp 360 pv d4c5
info currmove d4c5 currmovenumber 1
info depth 17 time 998 nodes 921318 nps 923164 score cp 368 pv d4c5
info currmove d4c5 currmovenumber 1
bestmove d4c5
This makes clear:
* the personality file is loaded successfully using the full path;
* there are more parameters than those specified in the personality file.
So which parameters are being used and where are they stored? The next question would be how PicoChess passes the UCI options and the personality parameters on to the engine.
On a side note: after loading a personality file, the uci command shows a new option called Personality, which I don't quite understand yet:
option name Personality type combo default --- var PawnValueMg var PawnValueEg var KnightValueMg var KnightValueEg var ---
Why is it saying "type combo" and "default ----"? Does this mean (my guess) that the personality file was loaded, but that the settings still have to be activated?
Greetings,
DJ
Op dinsdag 13 januari 2026 om 06:39:24 UTC+1 schreef RandyR: