There's something about Rodent...

82 views
Skip to first unread message

DJ Dekker

unread,
Jan 12, 2026, 3:34:36 PM (7 days ago) Jan 12
to PicoChess
Hello PicoChess players,

I have been playing against several Rodent III personalities lately (using PicoChess v4 on a RPi5) and noticed that their play is remarkably similar. Personalities that are supposed to be weak, like Amy from the Kids group, are not making any beginners' mistakes. Instead, they are playing quite as strong as personalities like Nancy (2300 Elo). All of them like to exchange pieces and they love to play the Caro-Kann after 1.e4. And a personality such as Drunk ("Huge random factor in eval and messy openings") is not at all playing as randomly as advertised. I'm wondering what's going on here. Are other PicoChess players having the same experience?

Greetings,
DJ

Randy Reade

unread,
Jan 12, 2026, 4:11:16 PM (7 days ago) Jan 12
to pico...@googlegroups.com
That does sound like an issue. I'm not sure when I can look into it but are you able to see if it works correctly in PicoChess v3.4?

Randy

--
You received this message because you are subscribed to the Google Groups "PicoChess" group.
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/picochess/00bb5e2b-26ab-4042-8d18-1cfb519d0983n%40googlegroups.com.

RandyR

unread,
Jan 13, 2026, 12:39:24 AM (6 days ago) Jan 13
to PicoChess
I had a chance to test on my x86 laptop (latest v4) and yes, there is something amiss when I tested 'Drunk'. It doesn't seem to be reading the .uci file but I'll have to find some time to check it, time that I don't have right now.

Randy

DJ Dekker

unread,
Jan 16, 2026, 3:38:03 AM (3 days ago) Jan 16
to PicoChess
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:

position.png
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:

Randy Reade

unread,
Jan 16, 2026, 11:23:32 AM (3 days ago) Jan 16
to pico...@googlegroups.com
Hi DJ,

Thanks for testing. As you can see, the full path is needed for the personality files. When compiling Rodent III I specified the BOOKPATH and PERSONALITYPATH (as /opt/picochess/engines/rodent3/books and /opt/picochess/engines/rodent3/personalities, respectively) so it would find them. (Forgive me as I’m going by memory here as I don’t have the ability to test or check). But instead, I ended up putting the personality variables directly into into the respective .uci files instead. So the variables should be passed to Rodent III. But, for some reason they are not (or Rodent III is ignoring them).

The new option:

option name Personality type combo default --- var PawnValueMg  var PawnValueEg  var KnightValueMg  var KnightValueEg  var ---

shows that Personality has a default value of --- with possible values of PawnValueMg, PawnValueEg, KnightValueMg, KnightValueEg, and ---, which is certainly not right since this would indicate that Personality should be one of those values. There is probably an issue somewhere in the compilation, basic.ini and/or default.txt, or with the path names to the personalities and books.

Randy
Reply all
Reply to author
Forward
0 new messages