Bill Forster wrote: ↑Tue Jun 02, 2020 2:13 am
Thank you sorry I missed this comment when it was posted. It is a lot to ask, so please feel free to ignore, but I would love a confirmation check that the right move is played at a higher fixed depth, 2 or 3 for example. And finally (again feel free to ignore) I'd love to know how long the emulation takes for a known position at depth 3 versus my native code port. I expect my port to run two or maybe three even orders of magnitude faster than the original Z80 on a modern PC. Sadly I don't expect to be able to ever confirm this, I can't find any reference position plus depth plus move played plus time elapsed for the original Z80 implementation.
Hi Bill,
no worries, the gift you made us with this UCI port deserves feedback...
Here is a comparison table;
- UCI version running with Arena on my old laptop HP620, CPU T4500 @2,3Ghz (dual core), Win7 64bits, CPU & RAM win perf index = 5.8; time per move is the one reported by the Arena GUI
- TRS-80 version running with TRS32 emulator v1.27 (c) Matthew Reed
http://www.trs-80emulators.com ; TRS-80 model 1 (Z80@1,77Mhz) but for this test I set it to x10 speed-up, so 17,74Mhz. Time per move manually measured with a (nice!) vintage mechanical stopwatch, 1/10s measurement accuracy, reported times already multiplied by 10 (so 1s accuracy or so).
Code: Select all
Sargon I UCI lv2 Sargon I TRS-80 lv2
move time(s) move time(s)
1.e2e4 e7e5 0,000 e7e5 0
2.g1f3 Nb8c6 0,006 Nb8c6 27,5
3.Bf1c4 Ng8f6 0,014 Ng8f6 58
4.Nf3g5 d7d5 0,014 d7d5 67
5.e4xd5 Nf6xd5 0,004 Nf6xd5 89
6.Nb1c3 Qd8xg5 0,025 Qd8xg5 163,5
7.Bc4xd5 Bc8g4 0,005 Bc8g4 70
8.Bd5xc6 b7xc6 0,006 b7xc6 25,5
9.f2f3 Bg4e6 0,005 Bg4e6 63
10.Qd1e2 0-0-0 0,014 0-0-0 83
11.Qe2a6 Kc8b8 0,000 Kc8b8 22
12.0-0 Bf8e7 0,016 Bf8e7 98
13.d2d4 Qg5f5 0,016 Qg5f5 82
14.d4xe5 Be7c5+ 0,015 Be7c5+ 85
15.Kg1h1 Qf5xe5 0,032 Qf5xe5 233
16.Qa6xc6 Qe5d6 0,046 Qe5d6 247
17.Qc6xd6 Bc5xd6 0,004 Bc5xd6 45
18.Bc1e3 Kb8b7 0,004 Kb8b7 55
19.Ra1d1 Be6c4 0,025 Be6c4 162
20.Rf1e1 Rh8e8 0,014 Rh8e8 157,5
Total time 0,265 1833
Average time 0,013 91,7
Speed ratio 6917
Sargon I UCI lv3 Sargon I TRS-80 lv3
move time(s) move time(s)
1.e2e4 e7e5 0,000 e7e5 0
2.g1f3 Nb8c6 0,095 Nb8c6 646
3.Bf1c4 d7d6 0,135 d7d6 904
4.Nb1c3 Bc8e6 0,187 Bc8e6 1063
5.Bc4xe6 f7xe6 0,114 f7xe6 722
6.0-0 Ng8f6 0,125 Ng8f6 766
7.d2d3 d6d5 0,116 d6d5 729
8.Nf3g5 Qd8d6 0,154 Qd8d6 909
9.Nc3b5 Qd6e7 0,105 Qd6e7 629
10.Bc1e3 d5d4 0,135 d5d4 861
11.Be3d2 0-0-0 0,145 0-0-0 854
12.a2a4 a7a6 0,157 a7a6 912
13.Nb5a3 h7h6 0,125 h7h6 809
14.Ng5f3 Qe7c5 0,145 Qe7c5 876
15.Qd1e2 Bf8d6 0,205 Bf8d6 1235
16.Na3c4 Kc8d7 0,185 Kc8d7 1184
17.b2b3 Rd8b8 0,254 Rd8b8 1547
18.c2c3 d4xc3 0,216 d4xc3 1349
19.Bd2xc3 b7b5 0,455 b7b5 2718
20.a4xb5 a6xb5 0,236 a6xb5 1431
Total time 3,289 20144
Average time 0,164 1007,2
Speed ratio 6125
100% moves fit!
The original Sargon ran on a Jupiter III - faster than a TRS-80 model I, but I am not sure of its original speed - I found references with 2 or 4.3Mhz. Mame emulates it @4Mhz.
Should you like a fast check of moves similarity, you can get
this light emulator. It is not throttled for reference speed, and plays in few seconds at lv3. I replayed the fist ten moves from my above test at level 3, no move deviation as well
Cheers,
Tibono