Wine64 doesn't detect 48bits bits of address space, v3.3 Lite on stock DGTPi, wine 9-17

194 views
Skip to first unread message

Michael Rohrbacher

unread,
Jul 12, 2025, 2:12:50 PMJul 12
to PicoChess
Hello,

I wanted to run Houdini 4 engine using wine64/box64 emulation. I've updated my DGTPi (RPi 3B+) to v3.3 Lite using Randy's image and installed box64 and wine64 using pi-apps. I can start the engine from the cmd successfully, but it crashes soon after I start it with go because of this error:

go
info multipv 1 depth 4 seldepth 16 score cp 22 time 248 nodes 1658 nps 6000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 d8d5 b1c3
info multipv 1 depth 5 seldepth 16 score cp 27 time 283 nodes 2751 nps 9000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6 d2d4 f6d5 b1c3 b8c6
info depth 6
info multipv 1 depth 6 seldepth 16 score cp 27 time 530 nodes 4958 nps 9000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6 d2d4 f6d5 b1c3 b8c6
info depth 7
info multipv 1 depth 7 seldepth 23 score cp 27 time 775 nodes 6943 nps 8000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6 d2d4 f6d5 b1c3 b8c6
info depth 8
info multipv 1 depth 8 seldepth 23 score cp 34 time 1000 nodes 9432 nps 9000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6 d2d4 f6d5 b1c3 b8c6 g1f3 e7e6 f1d3 b7b6
info time 1005 nodes 9513 nps 9000 tbhits 0 hashfull 0 cpuload 699 idle 26M
info depth 9
info multipv 1 depth 9 seldepth 28 score cp 34 time 1199 nodes 15558 nps 12000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6 d2d4 f6d5 b1c3 b8c6 g1f3 e7e6 f1d3 b7b6
info depth 10
info multipv 1 depth 10 seldepth 28 score cp 26 upperbound time 1582 nodes 33666 nps 21000 tbhits 0 hashfull 1 pv e2e4 e7e5
info multipv 1 depth 10 seldepth 28 score cp 32 time 1873 nodes 55876 nps 29000 tbhits 0 hashfull 2 pv e2e4 e7e6 d2d4 g8f6 e4e5 f6e4 b1c3 d7d5 c3e4 d5e4 c1e3 b8c6 c2c3 c8d7
info depth 11
info time 2002 nodes 64344 nps 32000 tbhits 0 hashfull 3 cpuload 793 idle 51M
wine: Unhandled page fault on read access to 0000000000000E8A at address 00000001404C7160 (thread 0120), starting debugger...
[BOX64] Box64 arm64 v0.3.7 1ed7609f with Dynarec built on Jul  6 2025 06:35:03
[BOX64] Dynarec for ARM64, with extension: ASIMD CRC32
[BOX64] Running on Cortex-A53 with 4 cores, pagesize: 4096
[BOX64] Will use hardware counter measured at 19.2 MHz emulating 2.4 GHz
[BOX64] Wine preloader detected, loading "/opt/wine-9.17/bin/wine" directly
[BOX64] Wine64 detected, WINEPRELOADRESERVE="000400000-0006fc000"
[BOX64] Didn't detect 48bits of address space, considering it's 39bits
[BOX64] WINE prereserve of 0x10000:0x8000 done
[BOX64] WINE prereserve of 0x110000:0x30000000 done
[BOX64] WINE prereserve of 0x7f000000:0x3000000 done
[BOX64] winedbg detected, not launching it!

I have searched the forum and it looks like this error should be fixed in the wine version 9.17 which I have. Do I miss something in the Lite image that's included in the Desktop version? From what I've read, the Desktop version is not really suitable for RPi 3B+. Thanks for any hints!

RandyR

unread,
Jul 12, 2025, 4:25:07 PMJul 12
to PicoChess
That warning is normal and can be disregarded. To get 48 bits of virtual address space would require recompiling the kernel.

It's possible you ran out of memory. You could try increasing the swap file size. I don't own Houdini and wouldn't be able to test using the DGTPi for a few weeks anyway.

Randy

Michael Rohrbacher

unread,
Jul 13, 2025, 8:16:53 AMJul 13
to PicoChess
Oh, I thought as per this thread that the custom kernel is no longer needed https://groups.google.com/g/picochess/c/G9PTan6TV-E/m/Yz6H2Ub7AQAJ

I already have 2 GB swap, but maybe the RPi 3B+ is not enough to handle wine64+box64+engine (I have 60 MB of free RAM when the engine is loaded). Luckily, the Komodo Dragon 3.1 linux binary is working fine for me with just the Box64. When I find a good deal on RPi 4B in my country, I'll swap it and re-test the Houdini engine with wine64.

Thanks Randy,

Michael

RandyR

unread,
Jul 13, 2025, 11:04:56 AMJul 13
to PicoChess
Correct. The custom kernel isn’t necessary as Wine will no longer crash if it doesn’t see the larger virtual address space, but it will still display the warning. It’s just not (shouldn’t be) what’s causing your issue. You could test using the Desktop image to see if it’s the lack of a running GUI unless you’ve already added it to the Lite image. But there are some Windows engines that still won’t run using Box/Wine.

Perhaps someone else can let you know if Houdini will run on the Pi4.

Randy

RandyR

unread,
Jul 13, 2025, 2:15:30 PMJul 13
to PicoChess
Another thing you could try is to use the 4K page file kernel by adding

kernel=kernel8.img

to the top of your config.txt file.

But, that should not be needed on the Pi3b.

Randy

Michael Rohrbacher

unread,
Jul 19, 2025, 9:02:53 AMJul 19
to PicoChess
So, I have tried that kernel option with no luck. But I have found out that if I specify the hash and threads manually, it seems to run ok.

Houdini 4 Pro x64
(c) 2013 Robert Houdart

info string 4 processor(s) found, POPCNT available
info string 128 MB Hash
set option name Hash value 32
set option name Threads value 1
go
info multipv 1 depth 4 seldepth 16 score cp 22 time 256 nodes 1658 nps 6000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 d8d5 b
1c3
info multipv 1 depth 5 seldepth 16 score cp 27 time 292 nodes 2751 nps 9000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6 d

2d4 f6d5 b1c3 b8c6
info depth 6
info multipv 1 depth 6 seldepth 16 score cp 27 time 494 nodes 4899 nps 9000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6 d

2d4 f6d5 b1c3 b8c6
info depth 7
info time 1275 nodes 6836 nps 5000 tbhits 0 hashfull 0 cpuload 713 idle 45M
info multipv 1 depth 7 seldepth 23 score cp 27 time 1337 nodes 6889 nps 5000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6

d2d4 f6d5 b1c3 b8c6
info depth 8
info multipv 1 depth 8 seldepth 23 score cp 35 lowerbound time 1626 nodes 11151 nps 6000 tbhits 0 hashfull 0 pv e2e4
info multipv 1 depth 8 seldepth 23 score cp 29 time 1693 nodes 12224 nps 7000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6
 d2d4 f6d5 b1c3 b8c6 g1f3 e7e6 f1d3 c8d7
info depth 9
info multipv 1 depth 9 seldepth 23 score cp 29 time 1880 nodes 17985 nps 9000 tbhits 0 hashfull 0 pv e2e4 d7d5 e4d5 g8f6
 d2d4 f6d5 b1c3 b8c6 g1f3 e7e6 f1d3 c8d7
info depth 10
info time 2027 nodes 26035 nps 12000 tbhits 0 hashfull 0 cpuload 506 idle 61M
info multipv 1 depth 10 seldepth 23 score cp 37 lowerbound time 2183 nodes 34369 nps 15000 tbhits 0 hashfull 2 pv e2e4
info multipv 1 depth 10 seldepth 24 score cp 21 upperbound time 2309 nodes 50929 nps 22000 tbhits 0 hashfull 4 pv e2e4 e
7e5
info multipv 1 depth 10 seldepth 25 score cp 27 time 2531 nodes 73911 nps 29000 tbhits 0 hashfull 5 pv e2e4 e7e5 g1f3 b8
c6 b1c3 g8f6 f1c4 b7b5 c4b5 c6d4 f3d4 e5d4
info depth 11
info time 3001 nodes 78453 nps 26000 tbhits 0 hashfull 6 cpuload 841 idle 89M
info time 4002 nodes 78453 nps 19000 tbhits 0 hashfull 6 cpuload 921 idle 130M
info time 5002 nodes 78453 nps 15000 tbhits 0 hashfull 6 cpuload 913 idle 172M
info time 6003 nodes 78453 nps 13000 tbhits 0 hashfull 6 cpuload 922 idle 214M
info time 7001 nodes 78453 nps 11000 tbhits 0 hashfull 6 cpuload 921 idle 256M
info time 8004 nodes 78453 nps 9000 tbhits 0 hashfull 6 cpuload 908 idle 297M
info time 9000 nodes 78453 nps 8000 tbhits 0 hashfull 6 cpuload 915 idle 338M
info time 10004 nodes 78453 nps 7000 tbhits 0 hashfull 6 cpuload 916 idle 379M
info time 11001 nodes 78453 nps 7000 tbhits 0 hashfull 6 cpuload 909 idle 420M
info time 12001 nodes 78453 nps 6000 tbhits 0 hashfull 6 cpuload 923 idle 462M
info time 13003 nodes 78453 nps 6000 tbhits 0 hashfull 6 cpuload 921 idle 503M
info time 14001 nodes 78453 nps 5000 tbhits 0 hashfull 6 cpuload 914 idle 544M
info time 15003 nodes 78453 nps 5000 tbhits 0 hashfull 6 cpuload 922 idle 586M
info time 16004 nodes 78453 nps 4000 tbhits 0 hashfull 6 cpuload 921 idle 628M
info time 17004 nodes 78453 nps 4000 tbhits 0 hashfull 6 cpuload 918 idle 669M
info time 18002 nodes 78453 nps 4000 tbhits 0 hashfull 6 cpuload 913 idle 710M
pi@picochess:/opt/picochess/engines/aarch64/windows64 $

I have this .uci file:
[DEFAULT]
Hash = 32
Threads = 1
SyzygyPath = /opt/picochess/tablebases/syzygy

[Casual]
Hash = 32
Threads = 1
MultiPV = 1
Ponder = true
Strength = 0
UCI_LimitStrength = true

pi@picochess:/opt/picochess/logs $ cd /opt/picochess/engines/aarch64/windows64/
pi@picochess:/opt/picochess/engines/aarch64/windows64 $ ll
total 6340
-rwxr-xr-x 1 pi pi     107 Jul 19 14:00 houdini4
-rw-r--r-- 1 pi pi 6482432 Jul  8 23:08 houdini4.exe
-rw-r--r-- 1 pi pi     174 Jul 19 14:04 houdini4.uci

and my engine.ini has this entry:
[windows64/houdini4]
name = Houdini 4 Pro
web = Houdini 4 Pro
small = houd4
medium = Houdini 4
large = Houdini 4
elo = 3000
ccrl = 3000
levels = level Elo@3000 2 cores
cores = 2
ponder/brain = y
fischer chess960 support = y

But whenever I try to play against the engine, it crashes after the first move. picochess.log contains only this:
2025-07-19 14:06:58.084   ERROR     engine - callback: Engine terminated

And when I tried to redirect the wine stdout/stderr to output.log to see what the engines prints, it doesn't contain any error:

Houdini 4 Pro x64
(c) 2013 Robert Houdart

info string 4 processor(s) found, POPCNT available
info string 128 MB Hash
id name Houdini 4 Pro x64
id author Robert Houdart
option name Tactical Mode type check default false
option name Hash type spin min 4 max 262144 default 128
option name Clear Hash type button
option name Threads type spin min 1 max 32 default 4
option name Split Depth type spin min 8 max 99 default 10
option name Ponder type check default false
option name Contempt type spin min 0 max 2 default 1
option name Analysis Contempt type check default false
option name MultiPV type spin min 1 max 64 default 1
option name MultiPV_cp type spin min 0 max 999 default 0
option name SyzygyPath type string default <empty>
option name EGTB Probe Depth type spin min 2 max 99 default 10
option name GaviotaTbPath type string default <empty>
option name GaviotaTbCache type spin min 4 max 1024 default 64
option name NalimovPath type string default <empty>
option name NalimovCache type spin min 4 max 1024 default 32
option name Mate Search type spin min 0 max 99 default 0
option name Numa Offset type spin min 0 max 63 default 0
option name Numa type check default true
option name Strength type spin min 0 max 100 default 100
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin min 1200 max 3000 default 3000
option name UCI_Chess960 type check default false
option name Never Clear Hash type check default false
option name Hash File type string default <empty>
option name Save Hash to File type button
option name Load Hash from File type button
option name Learning File type string default <empty>
option name Learning Threshold type spin min -100 max 200 default 10
option name Learning type check default false
option name FiftyMoveDistance type spin min 5 max 50 default 50
uciok
info string 32 MB Hash
info string 1 thread used
info string Strength 0 approximately corresponds to 1200 Elo
info string Syzygy 5 men EGTB available - 145 tablebases found
readyok
readyok

Maybe there's some communication error with picochess...

Cheers,

Michael

Randy Reade

unread,
Jul 19, 2025, 4:20:57 PMJul 19
to pico...@googlegroups.com
It's probably an issue with Box but you can check the UCI communication by setting the log level to debug in picochess.ini and editing line 2287 in picochess.py so it reads:

logging.DEBUG

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/3bca067e-504a-4892-a610-a9919852a870n%40googlegroups.com.

RandyR

unread,
Jul 20, 2025, 6:24:18 PMJul 20
to PicoChess
Just a thought - did you make the houdini4 file executable?

RandyR

unread,
Jul 20, 2025, 6:37:28 PMJul 20
to PicoChess
I think that line number should have said 2284. I was looking on a Github repo not the actual file in my image. Sorry.

Michael Rohrbacher

unread,
Aug 17, 2025, 1:37:40 PMAug 17
to PicoChess
Thanks Randy for your time and help, but I think I'm gonna give up trying Houdini 4. I've enabled the DEBUG messages and there's no error that could give me any further hints :/

cat picochess.log | grep engine
2025-08-17 19:28:23.621   DEBUG     engine - startup: setting engine with options {'Hash': '16', 'Threads': '1', 'Strength': '0', 'UCI_LimitStrength': 'true'}
2025-08-17 19:28:23.728   DEBUG     engine - startup: Loaded engine [Houdini 4 Pro x64]
2025-08-17 19:28:23.731   DEBUG     engine - startup: Supported options [OptionMap({'Tactical Mode': Option(name='Tactical Mode', type='check', default=False, min=None, max=None, var=[]), 'Hash': Option(name='Hash', type='spin', default=128, min=4, max=262144, var=[]), 'Clear Hash': Option(name='Clear Hash', type='button', default='', min=None, max=None, var=[]), 'Threads': Option(name='Threads', type='spin', default=4, min=1, max=32, var=[]), 'Split Depth': Option(name='Split Depth', type='spin', default=10, min=8, max=99, var=[]), 'Ponder': Option(name='Ponder', type='check', default=False, min=None, max=None, var=[]), 'Contempt': Option(name='Contempt', type='spin', default=1, min=0, max=2, var=[]), 'Analysis Contempt': Option(name='Analysis Contempt', type='check', default=False, min=None, max=None, var=[]), 'MultiPV': Option(name='MultiPV', type='spin', default=1, min=1, max=64, var=[]), 'MultiPV_cp': Option(name='MultiPV_cp', type='spin', default=0, min=0, max=999, var=[]), 'SyzygyPath': Option(name='SyzygyPath', type='string', default='<empty>', min=None, max=None, var=[]), 'EGTB Probe Depth': Option(name='EGTB Probe Depth', type='spin', default=10, min=2, max=99, var=[]), 'GaviotaTbPath': Option(name='GaviotaTbPath', type='string', default='<empty>', min=None, max=None, var=[]), 'GaviotaTbCache': Option(name='GaviotaTbCache', type='spin', default=64, min=4, max=1024, var=[]), 'NalimovPath': Option(name='NalimovPath', type='string', default='<empty>', min=None, max=None, var=[]), 'NalimovCache': Option(name='NalimovCache', type='spin', default=32, min=4, max=1024, var=[]), 'Mate Search': Option(name='Mate Search', type='spin', default=0, min=0, max=99, var=[]), 'Numa Offset': Option(name='Numa Offset', type='spin', default=0, min=0, max=63, var=[]), 'Numa': Option(name='Numa', type='check', default=True, min=None, max=None, var=[]), 'Strength': Option(name='Strength', type='spin', default=100, min=0, max=100, var=[]), 'UCI_LimitStrength': Option(name='UCI_LimitStrength', type='check', default=False, min=None, max=None, var=[]), 'UCI_Elo': Option(name='UCI_Elo', type='spin', default=3000, min=1200, max=3000, var=[]), 'UCI_Chess960': Option(name='UCI_Chess960', type='check', default=False, min=None, max=None, var=[]), 'Never Clear Hash': Option(name='Never Clear Hash', type='check', default=False, min=None, max=None, var=[]), 'Hash File': Option(name='Hash File', type='string', default='<empty>', min=None, max=None, var=[]), 'Save Hash to File': Option(name='Save Hash to File', type='button', default='', min=None, max=None, var=[]), 'Load Hash from File': Option(name='Load Hash from File', type='button', default='', min=None, max=None, var=[]), 'Learning File': Option(name='Learning File', type='string', default='<empty>', min=None, max=None, var=[]), 'Learning Threshold': Option(name='Learning Threshold', type='spin', default=10, min=-100, max=200, var=[]), 'Learning': Option(name='Learning', type='check', default=False, min=None, max=None, var=[]), 'FiftyMoveDistance': Option(name='FiftyMoveDistance', type='spin', default=50, min=5, max=50, var=[])})]
2025-08-17 19:28:27.705   DEBUG  picochess - get_comment_file: molli comment file: /opt/picochess/engines/aarch64/windows64/houdini4_comments_en.txt
2025-08-17 19:28:38.664    INFO  picochess - stop_search_and_clock: engine already waiting
2025-08-17 19:28:39.325   DEBUG     engine - go: molli: timedict: {'wtime': '920000', 'btime': '910000', 'winc': '10000', 'binc': '10000', 'async_callback': <bound method UciEngine.callback of <uci.engine.UciEngine object at 0x7f8c123790>>}
2025-08-17 19:28:46.388   ERROR     engine - callback: Engine terminated
2025-08-17 19:28:46.389    INFO     engine - callback: res: None
2025-08-17 19:28:46.391    INFO     engine - callback: event best_move not fired

Cheers,

Michael

Randy Reade

unread,
Aug 17, 2025, 2:00:43 PMAug 17
to pico...@googlegroups.com
You would have to edit the picochess.py file (as mentioned previously) to watch the UCI communication to see if it's even responding to PicoChess (set log level to warning in picochess.ini so you can just see the UCI commands and responses). You could also set it up to run remotely on a Windows PC and use it in PicoChess that way.

Randy

Reply all
Reply to author
Forward
0 new messages