-
Notifications
You must be signed in to change notification settings - Fork 20
/
notes.txt
3199 lines (3050 loc) · 145 KB
/
notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
20 Jan 2021
Investigating bug report
What PGN file created V3.13a release tarrasch-base.tdb ?
Confirmed that it's file ChessDatabase\twicbase\compose\tlpgn.pgn
18/11/2020 11:41 AM 2,548,355,636 tlpgn.pgn
Piwari, Dyland Tama 2118 0:1 Xie, Felix 2003
Dive, R 2371 1/2 Van der Hoorn, Thomas 1418
Dive, R 2371 1/2-1/2 Van der Hoorn, Thomas 1418
Hart, Ralph 2235 1-0 Hague, Ben 2429
Hart, Ralph 2235 0.5 Hague, Ben 2429
Hart, Ralph 2235 0.5-0.5 Hague, Ben 2429
Hart, Ralph 2235 0.5:0.5 Hague, Ben 2429
Croad, Nicholas 2323 ½:½ Ker, Anthon F 2385
In Tarrasch's db create dialog box the date for tlpgn.pgn is different - it shows as 15/11/2020 5:33 PM 2,488,629 KB
Windows explorer agrees exactly with Tarrasch's db create dialog box --EXCEPT-- it agrees with dir's time and date
So weird !! Note that 2,548,355,636 / 1024 = 2488628.551 (so agrees after round up)
4 March 2019
Some improvements to aim for;
1) Don't keep opening a new tab for every file opened. It's okay if the current tab has been used, but if it's occupied by
and unused (no edits, still starting position) of the first game of a file that's just been opened - reuse that tab.
2) Skip over EF BB BF (unicode BOM - or something) at the start of a PGN file
3) Catch the exception that crashes Tarrasch if an open PGN file is edited behind its back by an external program.
4) Offer to open a shell/command line PGN file after the dialog box (that stopped it being opened immediately) closes.
28 November 2018
Improving HTML publishing system. Created program xpm2bmp to help create 36 pixel
squares.
Background colours White rgb=255,255,255, Grey rgb=224,223,227 (!? - we used 224,224,224) Yellow rgb=239,228,176
1 November 2018
Need to more aggressively set current window on opening new style games dialog
File Save game as leaves status in limbo
Promote rest of comment to moves fails on blank board from position zero.
We changed some mouse handlers by adding "Atomic begin" in order to get the
draw counts to update when clicking on a different move;
But why was that necessary when clicking on a different move updated the
position and the window title?
Answer> Problem was that no atomic context was running so status was updated
but ignored. Solution update Atom::StatusUpdate() so that if no atomic
context is running it updates status immediately (not at end of context) -
some (not all) of the other Atom facilities work that way. Enabled removal
of the (only one actually) Atomic begin; previously added to a mouse handler.
24 August 2018
Things on top at the moment as we struggle to get a new release out
(last release was V3.03a in early 2017)
BUG Fixed> Check what happens when human comp game ends as a repetition draw
COMPLETE> Why do we need Mouse Event atom instance when Set Manual does atom
COMPLETE> File save game as -> recent files
COMPLETE> Database file in status field
DONT DO IT>Database option in options
COMPLETE (and better than suggested)>Open database file offers to set it to default
COMPLETE> Cancel not default in pop up
COMPLETE> Copy FEN to system clipboard
COMPLETE> Start not Suggestions
Faster move generation
COMPLETE> Remove warnings
Comment before resume from branch
COMPLETE> Cancel in PGN Dialog still loads game
Able to add comment right at end of game
FIXED> Fix bug: Setup a position, play moves, go back and look at it in session
Diagram output
Game output
PGN editor preserves extra tags, let's you edit arbitrary tags
Consistency: Save overwrites or appends to existing files everywhere.
COMPLETE> Investigate Unicode issues
Bug hunt:
Things we did
Hague-Smith was missing in selection; so we pasted moves into new game, added tab to file, edited game details, sorted and saved
Gong-Ang was first game we edited, but opened another file, so tab was orphaned, so opened selection again and added tab to file. Later
we sorted by round and deleted old unannotated version.
Bug: Promote rest of comment from index 0 in a lone comment doesn't work
FIXED (actually they were modifiable, but improperly restricted)> Bug: move counts in position setup aren't modifiable
Bug: Clear text window on new game
Bug: Delete in text window doesn't delete selection
Promote comment to stalemate (checkmate?) doesn't generate same result as playing out moves.
COMPLETE> Set engine priority lower
DONE> Remove sqlite from build
Older stuff below;
Annoying engine dialog problem first reported by Laocomo / Larry Oliver on 02 Dec 2016 predated Tarrasch V3.01
Problem is that wxWidgets sacrifices the engine picker in a bid to get all 6 UCI parameters (number of UCI parameters
increased to 6 with Tarrasch 3). Larry's screen res wa 1280 x 720
This problem still pops up on V3.03a for some people! including someone with 1280 x 800 ([email protected])
For V3.05 try squeezing up the custom parameters more.
sudo apt install libwxgtk3.0-dev
wx-config --version
> 3.0.2
cannot find -lwx_gtk2u_webview-3.0
cannot find -lwx_gtk2u_media-3.0
Changes for V3.01a
Add progress gauge when writing duplicate games, also allows discoverability
Do it last - allows users to cancel if they don't need it *
Engine dialog box works on smaller screens
Arrows when number of tabs fills main screen
Heading in frame is the default option
Pattern search - Don't allow extra material no longer the default!
Avoid slowly leaking memory on meta-data as databases loaded or created
Problems with pattern and material balance searches using clipboard as temporary database - fixed
Ctrl-A = select all in game dialogs
Error handling in append database was broken - sometimes (eg bad initial format) leaving user unsure what happened
Slightly more informative can't load database message
Write duplicate pgn file last on db create or append - make it clear it can be cancelled
Never show asterisk = file modified if no current file!
Later
Use faster move generator
4/12/2016
Successfully tried a good test
Create empty.tdb with zero sized empty.pgn then append large .pgn to the new empty database
Using T3Database kingbase-lite-2016-03.pgn got a binary match to regen-v3.00a.tdb Woo hoo!
Appending to shipped .tdb
kingbase-lite-2016-03-appended-1 + sites-165.pgn doesn't work to well, only two games added, but games were identical moves and Sitexxx was used for names and Site so maybe not a good test??!!
kingbase-lite-2016-03-appended-2 + wgtn-base.pgn (2177 games, but actually a poor choice - a starting point for wellybase not an end point)
893026 games so added 2170 games looks reasonable
kingbase-lite-2016-03-appended-3 + wellybase-sites-165.pgn (165 games, from wellybase.pgn [a copy of wgtn18.pgn] with Site tag changed to Site001, Site002...Site165)
891021 games so added 165 games woohoo, all 165 SiteNNN names at the end seem okay
Restart with -v flag
891021 games, 23301 players, 13927 events, 4097 sites
15 player bits, 14 event bits, 13 site bits
So one extra site bit added as we shifted over 4096
kingbase-lite-2016-03-appended-4 ;Same as above but with last TarraschDb beta - minimal difference to kingbase-lite-2016-03-appended-4
;actually, almost bin match and says 4097 sites and 13 site bits - Site164 is ok but Site165 changes to "" (i.e. empty)
;So when only on run when append breaks limit do we get corruption - subsequent appends will be good (until next power of
;2 limit reached) - Probably a good idea to check this matches the old buggy code issue as we understand it.
Tarrasch
After 3...Nf6 Berlin 9092 54.0% +2547 -1827 =4715
ChessBase
After 3...Nf6 Berlin 9091
ChessBase is missing the following game with its eccentric start;
[Event "8. World Teams"]
[Site "Ningbo CHN"]
[Date "2011.07.20"]
[Round "4"]
[White "Almasi, Zoltan"]
[Black "Eljanov, Pavel"]
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nb8 4. Bf1 Nc6
3/12/2016
Shipped .tdb
890856 games, 23255 players, 13915 events, 3932 sites
15 player bits, 14 event bits, 12 site bits
So headroom;
9513 players
2469 events
164 sites
Regenerated .tdb
890856 games, 23399 players, 14028 events, 3956 sites
15 player bits, 14 event bits, 12 site bits
millionbase
2501692 games, 238059 players, 25133 events, 18036 sites
18 player bits, 15 event bits, 15 site bits
headroom
24085 players
7635 events
14732 sites
1/12/2016
Doing some "after the fact" testing
The kingbase-lite-2016-03.tdb file shipped *does not* match the one currently generated
from kingbase-lite-2016-03.pgn unfortunately. Try to figure out retrospectively how we
got to where we are, and whether we are in good shape.
Files
In directory Tarrasch
11/07/2016 07:49 PM 88,305,634 kingbase-lite-2016-03.tdb ;This is what we shipped
; 890856 games 54.7% +305853 -222752 =362167
; So same stats as regen-v3.00a.tdb below (good)
; Different and, importantly *improved* (good) order from regen!
; It looks like we shipped a sensible database
; To be resolved - it's order is better (good), but why is it
; 6K smaller?
In directory T3Database, in chronological order
01/07/2016 02:07 PM 710,563,627 kingbase-lite-2016-03.pgn ;Looks like we started with this
11/07/2016 03:00 PM 668,373,002 kingbase-lite-2016-03-regenerated.pgn ;
11/07/2016 03:28 PM 92,847,660 kingbase-lite-2016-03-regenerated.tdb ;Not too sure
11/07/2016 03:45 PM 92,847,660 kingbase-lite-2016-03-regenerated2.tdb ;Not too sure
11/07/2016 04:03 PM 92,847,660 kingbase-lite-2016-03-regenerated3.tdb ;Not too sure
11/07/2016 05:12 PM 88,309,025 kingbase-lite-2016-03-regenerated4.tdb ;Not too sure
11/07/2016 06:33 PM 88,311,123 aaa-kingbase-lite-2016-03.tdb ;Main version we have been testing with
11/07/2016 07:17 PM 635,434,535 kingbase-lite-2016-03-regenerated-2.pgn ;
11/07/2016 07:49 PM 88,305,634 kingbase-lite-2016-03-final.tdb ;It looks like this is what we shipped [*confirmed* with fc/b],
; it is the last dated version and has "final" appended which
; is good
In directory T3Database, last couple of days
30/11/2016 04:12 PM 88,311,123 regen-v3.00a.tdb ;Created with V3.00a from kingbase-lite-2016-03.pgn
; 890856 games 54.7% +305853 -222752 =362167
; doesn't match what we shipped but does match [*confirmed* with fc/b]
; aaa-kingbase-lite-2016-03.tdb which is encouraging
;Games are Harika-Mkrtchian
; Krush-Socko
; Dzagnidze-Socko
; .....
; Gutman-Langheinrich
; Foisor-Sibarevic
30/11/2016 05:54 PM 635,434,535 shipped.pgn ;Created from shipped kingbase-lite-2016-03.tdb
01/12/2016 04:33 PM 635,434,535 regen-regen-v3.00a.pgn ;Created from regen-v3.00a.tdb
; it would be nice if it matched shipped.pgn [but *not confirmed* with fc/b]
; order is quite different
Stats:
Shipped Regen
After 5.Bg5 Semi-Slav 5412 56.4% +1967 -1274 =2171 Same
After 3...Nf6 Berlin 9092 54.0% +2547 -1827 =4715 Same
After 5.Bg5 QGD exchange 3484 62.2% +1430 -578 =1475 Same
Loaded the first 10 games from a search into clipboard, then from Games> Clipboard into
tabs and checked that the game was found from "deep in game". Okay but *no arrows on tabs*
24/11/2016
check open pgn from file explorer
try undo xp
great players demo? not present?
OK Advise to download databases
OK tweak credits
OK title says initial position from start
OK check append database
OK check kingbase
OK check innosetup and microsoft ie connection
check virus scan
slow rubber banding
Upper case missing in setup?
void BinDbDebugShowGames( const std::vector< smart_ptr<ListableGame> > &gms, const char *msg )
{
if( gms.size() > 5 )
cprintf( "%s [too many games]\n",msg);
else
{
cprintf( "%s here are the games\n",msg);
for( size_t i=0; i<gms.size(); i++ )
{
smart_ptr<ListableGame> p = gms[i];
cprintf( "%s-%s\n", p->White(), p->Black() );
}
}
}
19/11/2016
Stockfish 8
One more look at undo limit
Check close last tab
Statistical TICK
Underlining TICK
Mac build maybe
Maria credit
check hiding moves pane
search spaces
meta
larger squares TICK
test filter TICK
kibitz help TICK woo hoo, 6 custom parameters, including kibitz
create file goes to mru TICK
Does trying to overwrite db file delete it? TICK
Another old list
YES If there is a nasty assert (eg wxALIGN_CENTRE_VERTICAL) then "Yes" to abort the program doesn't work?!
YES Get rid of edit game prefix
YES Fix bolded first line of credits etc.
YES Fix Larry Oliver's bug
YES Idea: in database next move pane asterisk moves that mimic the current game.
YES First line of help is bold for some reason (wx31)
YES Dynamic US spelling (basically because of color)
NO Add Pro-Dao
YES Delete variation menu command
NO Do database create and append on top of existing database
YES Bug: First game of 2015-summer-g.pgn not processed
NO Allocate control block frees unused blocks
NO Append adds extra blank line
YES 6 engine parms instead of 4
YES pgn column sorting - prompt to load (except col 0), handle cancelling differently
NO add stat for how many transpos pulled in when drilling down
17/11/2016
Ian's bug FIXED
edge thickness FIXED
adjust colours NO
reset app size if no pane size NO
Try on Windows XP YES
paste meta-data NO
Rewrite stockfish help YES
Fix the undo bug properly YES
Larger miniboard NO
Revisit todo list
Todo (done on 15/9/2016)
------------------------
Lose the sunken border effect
Doing scandi prep, load game (instead of use game) by mistake. Tried closing tab - crash
Swap sides swaps labels
Got into a situation with Kibitzer stopped and suggestions horizontal - looks bad
Book moves not at far right if maximise
Height of book moves should maybe set notebook width
Board minimum width is controlled by pitch=15
Add duplicate game thing
Layout is non-volatile
Get click on square working again
Improve selection of new database file in create database dialog
Add delete variation command
Improved database icon in toolbar
Show all by player not sorted sensibly within player
Save all doesn't work for show all by player - remove it
Cut, delete, paste should change nbr of games in a list
Claude: Aggressive smaller resize from top left causes crash.
Claude: Start game with engine to move - doesn't say Engine Thinking
Edit colours
Improved anti-aliasing without white jaggies around pieces
Remove small board option
Add Claude to credits.
Bug fix: Cannot initially drag pieces in board setup
Bug fix: Info boxes have weird first paragraph
Clipboard as temp*orary* database
Check all bitmaps have white pieces on left
Change Rybka to UciEngine everywhere
Idea: in database next move pane asterisk moves that mimic the current game.
Dynamic US spelling (basically because of color)
New tab button next to book moves?
Claude: Permissions error moving files to documents
Pickup ratings field from earlier in tournament when entering games.
Get rid of edit game prefix
Bring colours into preview board
Need to get click on players, clocks working again
Todo (not yet on 15/9/2016)
--------------
32 bit icons NO
Extra NAGs eg unclear NO
Can we control multiple instances? NO
Get close box on tabs YES
Efficient undo SORT OF
Highlight colours YES
Bring colours into setup board YES
Alt F underlining etc YES
6 custom commands YES
Check ANSI names in pgn YES
Select All in games dialogs NO
Add more ratings filters YES
Buttons same width NO
Ticking clock is red YES
Claude: Settings, particularly GUI layout non-volatility imperfect ?
Add Pro-Dao NO
Do database create and append on top of existing database NO
Allocate control block frees unused blocks NO
Append adds extra blank line NO
6 engine parms instead of 4 NO
pgn column sorting - prompt to load (except col 0), handle cancelling differently OKAY I THINK
Add stat for how many transpos pulled in when drilling down NO
Bug: First game of 2015-summer-g.pgn not processed YES
Check weird ChessBase pgn format supported for both preview and loaded game. NO
Bug: Make moves, save game (overwrite) - this tab not in file. YES
pgn_handle not cleared by constructor - check others NO
e8Q as well as e8=Q NO
Paste tags YES
reduce sleep in engine state machine NO
Bugs:
Ian's a-file bug YES
Training (partial blindfold - 2 move lag) bug YES
Undo and move now don't play well together YES
a) Paste current game into clipboard (incidentally - if White isn't "" don't put up game details for editing please)
b) Open a new file
c) Two bogus save requests ensue. YES
Working with a chessbase pgn with unicode intro can leave single line [Event ""] artifacts is file later NO
Paste game into current file, edit game details, save - changes not reflected? YES
Simple game, no ponder, not fixed period, "last_command_was_go_infinite" really means "last_command_was_go" 1.h4 d5 h5 e5 h6 Nxh6
*** Events after reception of 1...d5;
out: info depth 18 seldepth 25 multipv 1 score cp 13 nodes 3961512 nps 883477 hashfull 435 tbhits 0 time 4484 pv d7d5 d2d4 g8f6 c2c4 c7c5 e2e3 b8c6 c4d5 f6d5 d4c5 e7e5 e3e4 d5f6 d1d8 e8d8 c1g5 h7h6 g5f6 g7f6 b1c3 f8c5
out: bestmove d7d5 ponder d2d4
State change WAIT_EVALUATION -> READY (line_out())
Engine returns. bestmove is d7d5, ponder is 0000
State change READY -> SEND_PLAY_ENGINE1 (go (smoves))
State change SEND_PLAY_ENGINE1 -> SEND_ISREADY_P (user_hook_in()) <-+
in: stop |
State change SEND_ISREADY_P -> WAIT_READYOK_P (user_hook_in()) |
in: isready | last_command_was_go_infinite triggers a redundant stop
out: readyok |
State change WAIT_READYOK_P -> SEND_PLAY_ENGINE2 (readyok received) <-+
in: setoption name MultiPV value 1
State change SEND_PLAY_ENGINE2 -> SEND_ISREADY_P (user_hook_in())
State change SEND_ISREADY_P -> WAIT_READYOK_P (user_hook_in())
in: isready
out: readyok
State change WAIT_READYOK_P -> SEND_PLAY_ENGINE3 (readyok received)
State change SEND_PLAY_ENGINE3 -> SEND_PLAY_ENGINE4 (user_hook_in())
in: position startpos moves h2h4 d7d5 h4h5
State change SEND_PLAY_ENGINE4 -> WAIT_EVALUATION (user_hook_in())
in: go wtime 1507079 btime 175062 winc 5000 binc 1000
Read big: avail=1198, bread=1023
out: info depth 1 seldepth 1 multipv 1 score cp 109 nodes 28 nps 14000 tbhits 0 time 2 pv e7e5
out: info depth 2 seldepth 2 multipv 1 score cp 79 nodes 99 nps 49500 tbhits 0 time 2 pv e7e5 d2d4 e5d4 d1d4 b8c6
Simple game, no ponder, not fixed period, "last_command_was_go_infinite" means exactly that 1.h4 d5 h5 e5 h6 Nxh6
*** Events after reception of 1...d5;
out: info depth 18 seldepth 25 multipv 1 score cp 13 nodes 3961512 nps 891228 hashfull 435 tbhits 0 time 4445 pv d7d5 d2d4 g8f6 c2c4 c7c5 e2e3 b8c6 c4d5 f6d5 d4c5 e7e5 e3e4 d5f6 d1d8 e8d8 c1g5 h7h6 g5f6 g7f6 b1c3 f8c5
out: bestmove d7d5 ponder d2d4
State change WAIT_EVALUATION -> READY (line_out())
Engine returns. bestmove is d7d5, ponder is 0000
State change READY -> SEND_PLAY_ENGINE1 (go (smoves))
State change SEND_PLAY_ENGINE1 -> SEND_PLAY_ENGINE2 (user_hook_in()) <--- no stop, go directly from SEND_PLAY_ENGINE1 -> SEND_PLAY_ENGINE2
in: setoption name MultiPV value 1
State change SEND_PLAY_ENGINE2 -> SEND_ISREADY_P (user_hook_in())
State change SEND_ISREADY_P -> WAIT_READYOK_P (user_hook_in())
in: isready
out: readyok
State change WAIT_READYOK_P -> SEND_PLAY_ENGINE3 (readyok received)
State change SEND_PLAY_ENGINE3 -> SEND_PLAY_ENGINE4 (user_hook_in())
in: position startpos moves h2h4 d7d5 h4h5
State change SEND_PLAY_ENGINE4 -> WAIT_EVALUATION (user_hook_in())
in: go wtime 1503265 btime 175063 winc 5000 binc 1000
Peek: dbg_count=2, avail=1531, bread=1023
out: info depth 1 seldepth 1 multipv 1 score cp 109 nodes 28 nps 28000 tbhits 0 time 1 pv e7e5
out: info depth 2 seldepth 2 multipv 1 score cp 79 nodes 99 nps 49500 tbhits 0 time 2 pv e7e5 d2d4 e5d4 d1d4 b8c6
out: info depth 3 seldepth 3 multipv 1 score cp 79 nodes 161 nps 80500 tbhits 0 time 2 pv e7e5 d2d4 e5d4
out: info depth 4 seldepth 4 multipv 1 score cp 79 nodes 313 nps 156500 tbhits 0 time 2 pv e7e5 d2d4 e5d4 d1d4
out: info depth 5 seldepth 5 multipv 1 score cp 77 nodes 587 nps 293500 tbhits 0 time 2 pv e7e5 d2d4 b8c6 d4e5 c6e5
5/11/2016
Added #17714 to wxWidgets trac system.
28/9/2016
New simple test plan for testing workflow as games cycle through files and tabs
Cycle randomly through following tasks;
1. Play moves to create game
2. Load games from a file
3. Save moves to a file
4. Edit game from a file
5. Load game from a database search
6. Copy games to clipboard
7. Delete games from clipboard
8. Delete games from file
9. Paste games into file
10. Paste current game into file
11. Edit game details
12. New tab, play moves in tab
13. Add tab to file
14. Close tab
Generate 100 random numbers from 1-14 with browserling.com/tools
10*, 8*, 2*, 4*, 12*, 11*, 9*, 6*, 3*, 10*, 10*, 1*, 12, 13, 8, 10-, 10-, 12, 3, 13, 1,
7, 6, 1, 9, 14, 4, 2, 13, 4, 9, 11, 10, 7, 11, 10, 11, 6, 4, 10, 9
13, 6, 11, 11, 10, 11, 11, 5, 6, 2, 8, 10, 4, 8, 8, 2, 7, 4, 6, 11
6, 7, 14, 2, 10, 6, 5, 11, 8, 7, 12, 12, 12, 10, 1, 2, 12, 13, 3, 9
12, 11, 13, 13, 7, 13, 13, 2, 8, 12, 9, 12, 1, 4, 7, 9, 3, 8, 1, 9
bug: Save in pgn dialog doesn't change File modified in status
bug: change to tab doesn't relocate us with blue arrows
bug: change file in file dialog doesn't change tab infile status
15/9/2016
Todo (done)
-----------
Lose the sunken border effect
Doing scandi prep, load game (instead of use game) by mistake. Tried closing tab - crash
Swap sides swaps labels
Got into a situation with Kibitzer stopped and suggestions horizontal - looks bad
Book moves not at far right if maximise
Height of book moves should maybe set notebook width
Board minimum width is controlled by pitch=15
Add duplicate game thing
Layout is non-volatile
Get click on square working again
Improve selection of new database file in create database dialog
Add delete variation command
Improved database icon in toolbar
Show all by player not sorted sensibly within player
Save all doesn't work for show all by player - remove it
Cut, delete, paste should change nbr of games in a list
Claude: Aggressive smaller resize from top left causes crash.
Claude: Start game with engine to move - doesn't say Engine Thinking
Edit colours
Improved anti-aliasing without white jaggies around pieces
Remove small board option
Add Claude to credits.
Bug fix: Cannot initially drag pieces in board setup
Bug fix: Info boxes have weird first paragraph
Clipboard as temp*orary* database
Check all bitmaps have white pieces on left
Change Rybka to UciEngine everywhere
Idea: in database next move pane asterisk moves that mimic the current game.
Dynamic US spelling (basically because of color)
New tab button next to book moves?
Claude: Permissions error moving files to documents
Pickup ratings field from earlier in tournament when entering games.
Get rid of edit game prefix
Bring colours into preview board
Need to get click on players, clocks working again
Todo (not yet)
--------------
32 bit icons
Extra NAGs eg unclear
Can we control multiple instances?
Get close box on tabs
Efficient undo
Highlight colours
Bring colours into setup board
Alt F underlining etc
6 custom commands
Check ANSI names in pgn
Select All in games dialogs
Add more ratings filters
Buttons same width
Ticking clock is red
Claude: Settings, particularly GUI layout non-volatility imperfect
Add Pro-Dao
Do database create and append on top of existing database
Allocate control block frees unused blocks
Append adds extra blank line
6 engine parms instead of 4
pgn column sorting - prompt to load (except col 0), handle cancelling differently
Add stat for how many transpos pulled in when drilling down
Bug: First game of 2015-summer-g.pgn not processed
Check weird ChessBase pgn format supported for both preview and loaded game.
Bug: Make moves, save game (overwrite) - this tab not in file.
pgn_handle not cleared by constructor - check others
e8Q as well as e8=Q
Paste tags
reduce sleep in engine state machine
Bugs:
Ian's a-file bug
Training (partial blindfold - 2 move lag) bug
Undo and move now don't play well together
a) Paste current game into clipboard (incidentally - if White isn't "" don't put up game details for editing please)
b) Open a new file
c) Two bogus save requests ensue.
Working with a chessbase pgn with unicode intro can leave single line [Event ""] artifacts is file later
Paste game into current file, edit game details, save - changes not reflected?
10/9/2016
Log of conversions from .bmp -> .xpm using tools/bmp-experiments-and-transformations.cpp
batch1 were created with acrobat reader 9.4
batch2 were created with acrobat reader 5.1 after we found many of
the batch1 files weren't greyscale (greyscale = [r==g==b for all colours])
meaning they had too many colours for .xpm
File pitch-015-batch2.bmp, 16 colours found
File pitch-016-batch2.bmp, 17 colours found
File pitch-018-2-batch2.bmp, 17 colours found
File pitch-018-batch2.bmp, 17 colours found
File pitch-021-batch2.bmp, 17 colours found
File pitch-023-batch2.bmp, 17 colours found
File pitch-025-batch2.bmp, 17 colours found
File pitch-027-batch1.bmp, 1024 colours found too many!
File pitch-027-batch2.bmp, 17 colours found
File pitch-029-batch1.bmp, 1154 colours found too many!
File pitch-029-batch2.bmp, 17 colours found
File pitch-030-batch1.bmp, 1162 colours found too many!
File pitch-031-batch2.bmp, 17 colours found
File pitch-032-batch1.bmp, 1222 colours found too many!
File pitch-033-batch2.bmp, 17 colours found
File pitch-035-batch1.bmp, 1247 colours found too many!
File pitch-035-batch2.bmp, 17 colours found
File pitch-037-batch1.bmp, 1297 colours found too many!
File pitch-037-batch2.bmp, 17 colours found
File pitch-039-batch2.bmp, 17 colours found
File pitch-040-batch1.bmp, 1305 colours found too many!
File pitch-040-batch2.bmp, 17 colours found
File pitch-042-batch2.bmp, 17 colours found
File pitch-043-batch1.bmp, 1318 colours found too many!
File pitch-045-batch2.bmp, 17 colours found
File pitch-046-batch1.bmp, 1328 colours found too many!
File pitch-046-batch2.bmp, 17 colours found
File pitch-048-batch2.bmp, 17 colours found
File pitch-050-batch1.bmp, 1355 colours found too many!
File pitch-050-batch2.bmp, 17 colours found
File pitch-052-batch1.bmp, 1342 colours found too many!
File pitch-055-batch2.bmp, 17 colours found
File pitch-056-batch1.bmp, 1353 colours found too many!
File pitch-059-batch1.bmp, 1339 colours found too many!
File pitch-060-batch2.bmp, 17 colours found
File pitch-062-batch1.bmp, 1363 colours found too many!
File pitch-065-batch1.bmp, 1406 colours found too many!
File pitch-065-batch2.bmp, 17 colours found
File pitch-068-batch1.bmp, 1402 colours found too many!
File pitch-070-batch2.bmp, 17 colours found
File pitch-071-batch1.bmp, 1440 colours found too many!
File pitch-074-batch1.bmp, 1454 colours found too many!
File pitch-075-batch2.bmp, 17 colours found
File pitch-077-batch1.bmp, 1449 colours found too many!
File pitch-080-batch2.bmp, 17 colours found
File pitch-085-batch1.bmp, 1489 colours found too many!
File pitch-085-batch2.bmp, 17 colours found
File pitch-090-batch2.bmp, 17 colours found
File pitch-092-batch1.bmp, 1526 colours found too many!
File pitch-095-batch2.bmp, 17 colours found
File pitch-100-batch1.bmp, 1568 colours found too many!
File pitch-100-batch2.bmp, 17 colours found
File pitch-107-batch1.bmp, 18 colours found
File pitch-110-batch2.bmp, 18 colours found
File pitch-115-batch1.bmp, 18 colours found
File pitch-120-batch2.bmp, 18 colours found
File pitch-123-batch1.bmp, 18 colours found
File pitch-130-batch1.bmp, 18 colours found
File pitch-130-batch2.bmp, 18 colours found
File pitch-138-batch1.bmp, 18 colours found
File pitch-140-batch2.bmp, 18 colours found
File pitch-146-batch1.bmp, 18 colours found
File pitch-150-batch2.bmp, 18 colours found
File pitch-154-batch1.bmp, 18 colours found
File pitch-160-batch2.bmp, 18 colours found
File pitch-169-batch1.bmp, 18 colours found
File pitch-170-batch2.bmp, 18 colours found
File pitch-180-batch2.bmp, 18 colours found
File pitch-185-batch1.bmp, 18 colours found
File pitch-190-batch2.bmp, 18 colours found
File pitch-200-batch2.bmp, 18 colours found
File pitch-215-batch1.bmp, 18 colours found
File pitch-231-batch1.bmp, 18 colours found
File pitch-246-batch1.bmp, 18 colours found
File pitch-261-batch1.bmp, 18 colours found
File pitch-277-batch1.bmp, 18 colours found
File pitch-292-batch1.bmp, 18 colours found
File pitch-306-batch1.bmp, 18 colours found
Press enter
31/8/2016
Horizontal suggestions if no kibitz box
Vertical suggestions if kibitz box
Suggestions, Your move, Engine thinking labels
13/8/2016
git add -u is a good way to tell git to cement changes (like file deletions)
Icon work summary;
We first established that in all of the 370,070 byte icon files generated by convertico.com
the 16x16 pixel bitmap is found at offset 0x8e and comprises 256 32 bit pixels (b,g,r,a) from
bottom left to top right (we did it by blowing up a 16x16 icon from a screenshot with Paint.exe
using the colour editor to observe some adjacent pixels, then scan with a custom .cpp program.
The icon files are now Tarrasch9Squares.ico and Tarrasch4Squares.ico. The 9 Squares version is
ostensibly f5,f6,f7,g5,g6,g7,h5,h6,h7. I say those squares because a typical pattern of a
fianchettoed black bishop, presumably defending a kingside castled black king, is illustrated.
The 4 Squares version is really 2 whole squares (g6 and g7) and 4 half squares (f6,f7,h6,h7).
So g7 (black bishop), g6 (black pawn) and half of each of f7 and h7 (both black pawn).
Half of each of f6 and h6 are transparent cutouts so there is still a T shape. We embed
both icon files in the resource file, Tarrasch4Squares is for small icons, they look better
when we don't try and have the full 3x3=9 squares. We also used our knowledge of the location
of the 16x16 pixel bitmap to patch the Tarrasch4Squares 16x16 bitmap into the Tarrasch9Squares
16x16 bitmap - which is why at small size the Tarrasch9Squares.ico file only has 4 squares.
I will put icon-scan.cpp into a new tools directory so it doesn't get lost.
9/8/2016
Tidying up the 16x16 icon inside of TarraschDb.ico;
We went looking for pixels we could see in adjacent positions. The following
triples are RGB values (from MS Paint's colour editor).
TarraschDb2.ico looking for patterns
for each run of 16 and or 12
search for each triple
145,134,113
246,220,177
230,182,135
141,105,76
See program icon-scan.cpp in misc directory.
We found the pixels and determined that the 16x16 bmp is embedded as follows
offset 0x44e = top left. Then each pixel is 4 bytes B,G,R,Alpha,
top row is 0x40 bytes (16 pixels; 0x44e-0x48d
2nd row is 0x40e-0x44d
3rd row is 0x3c3-0x40d ...
15th row is 0x08e-0x12d
Wrote a little code in icon-scan.cpp to replace the "drunk insect" iconography
(caused by scaling down from 256x256 in convertico.com) with a more precise
version.
28/7/2016
Made a new icon by making a 256x256 png (use adobe acrobat 390% view of a chess mag for pieces)
Use gimp to make transparent panels (easy-peasy - select rectangle and press delete - then export)
Then use convertico.com to make a 6 size ico file from that
Some things to do
Change credit to thanks for the icon idea
move buttons up a pix or two
don't show neg numbers in clock times
3/7/2016
#Fixed/Done
Show all ordered by player - initial slow sort is a worry
Bug: Sort on # column crashes
Support reserved=hdr length, 0==8
Add stuff from other branches
including fix for Junior (actually already had this)
bell on engine move (actually already had this)
'fixed period mode' a new human v comp timer
Get rid of misleading "searching for extra games" text
Set fixed period mode sets time minutes to 0
Add fix whereby (white) etc is deleted as a suffix
Add #
Make sure searching incomplete games in clipboard handled gracefully
Bug add game from database search dialog to clipboard and check clipboard search
-stack corruption near partial after StatsCalculate - unplanned re-entrancy?
(possibly fixed by above change - observed memory corruption in search due to
running moves from a game with FEN without applying FEN)
Clipboard search shows "clipboard search" in results
game_id sensibly initialised - database and pgn/user games don't overlap
browse_map cache of positions in each game by game_id.
Identify current game after sort by game_id to replace Goto(0)
Fix ECO bug (actually - cannot reproduce)
Change sort on column0 behaviour - if forward and already forward - do reverse. If reverse and already
reversed do forward.
Remove compressed database checkbox - replace with elo level plus (ignore
or both players or one player) plus include if no elos
On create .ini file set default db to largest/latest (actually just specify a specific .tdb - not default.tdb
Better dialog box help
Separate fixed_period_mode times stored in .ini
#For Beta
#Postpone for now
If there is a nasty assert (eg wxALIGN_CENTRE_VERTICAL) then "Yes" to abort the program doesn't work?!
Get rid of edit game prefix
Fix bolded first line of credits etc.
Fix Larry Oliver's bug
Idea: in database next move pane asterisk moves that mimic the current game.
First line of help is bold for some reason (wx31)
Dynamic US spelling (basically because of color)
Add Pro-Dao
Delete variation menu command
Do database create and append on top of existing database
Bug: First game of 2015-summer-g.pgn not processed
Allocate control block frees unused blocks
Append adds extra blank line
6 engine parms instead of 4
pgn column sorting - prompt to load (except col 0), handle cancelling differently
add stat for how many transpos pulled in when drilling down
16/6/2016
Search will choke on game fragments (i.e. games with fens) from the clipboard
27/5/2016
Setting up WxWidgets 3.1 VS2015
C/C++ Preprocessor WXUSINGDLL
C/C++ Additional include directories C:\wxWidgets-3.1.0\include
C/C++ Code generation Runtime Library Mult-threaded (Debug) DLL
Linker General Additional Library Directories C:\wxWidgets-3.1.0\lib\vc140_dll
Linker Input Additional Dependencies wxmsw31u_richtext.lib;wxmsw31u_adv.lib;wxmsw31u_html.lib;wxbase31u_xml.lib;wxmsw31u_core.lib;wxbase31u.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;wxregexd.lib;wxexpatd.lib
24/5/2016 Crash analysis
In sort_scan()
$LL121@sort_scan:
00040 8b 3d 00 00 00
00 mov edi, DWORD PTR _predicate_step
$LN4@sort_scan:
; 1297 : {
; 1298 : uint32_t step = i*predicate_step; // first value of step is predicate_step
; 1299 : uint32_t prev = step - predicate_step; // first value of prev is 0
; 1300 : bool lower = (*predicate_func)( *(predicate_begin+prev), *(predicate_begin+step) );
00046 8b 0d 00 00 00
00 mov ecx, DWORD PTR _predicate_begin
0004c 8b c7 mov eax, edi
0004e 0f af c6 imul eax, esi
00051 8d 14 c1 lea edx, DWORD PTR [ecx+eax*8]
00054 2b c7 sub eax, edi
00056 8d 04 c1 lea eax, DWORD PTR [ecx+eax*8]
00059 52 push edx
0005a 50 push eax
0005b ff 15 00 00 00
00 call DWORD PTR _predicate_func
00061 83 c4 08 add esp, 8
0088C2F0 mov edi,dword ptr ds:[0B78DB4h]
0088C2F6 mov ecx,dword ptr ds:[0B78E68h]
0088C2FC mov eax,edi
0088C2FE imul eax,esi
0088C301 lea edx,[ecx+eax*8]
0088C304 sub eax,edi
0088C306 lea eax,[ecx+eax*8]
0088C309 push edx
0088C30A push eax
0088C30B call dword ptr ds:[0B78DECh] <----- Crash in called master_predicate()
0088C311 add esp,8 <----- Stack indicates returning here
In master_predicate()
; 1423 : }
; 1424 : case 4:
; 1425 : {
; 1426 : use_rev_bin = true;
; 1427 : bin1 = g1->BlackEloBin();
00106 8b 0b mov ecx, DWORD PTR [ebx]
00108 8b 11 mov edx, DWORD PTR [ecx]
0010a 8b 82 98 00 00
00 mov eax, DWORD PTR [edx+152]
00110 ff d0 call eax
0088D326 mov ecx,dword ptr [ebx]
0088D328 mov edx,dword ptr [ecx]
0088D32A mov eax,dword ptr [edx+98h]
0088D330 call eax
; 1428 : bin2 = g2->BlackEloBin();
00112 8b 0f mov ecx, DWORD PTR [edi]
00114 8b 11 mov edx, DWORD PTR [ecx]
00116 8b f0 mov esi, eax
00118 8b 82 98 00 00
00 mov eax, DWORD PTR [edx+152]
0088D332 mov ecx,dword ptr [edi]
0088D334 mov edx,dword ptr [ecx] <---- Access violation here
0088D336 mov esi,eax ;; indicates parameter g2 invalid
0088D338 mov eax,dword ptr [edx+98h]
0088D33E jmp 0088D2F3
0088D340 mov ecx,dword ptr [ebx]
0088D342 mov edx,dword ptr [ecx]
0088D344 mov eax,dword ptr [edx+8Ch]
0088D34A call eax
Old Tarrasch Chess GUI - kibitzq.h has only one form of Put(), a problem fix that only exists in
V2.03b-Orphan-xxx I think.
kingbase-2015-11
864651 games in
864560 games out without smart dup detection need matching date
862658 games out without smart dup detection don't need matching date
862670 games out before smart dup detection
862091 games out smart dup detection need matching date
859989 games out smart dup detection don't need matching date
854325 games out no tolerance dup policy
kingbase-2016-02
932965 games in
896022 games out without smart dup detection don't need matching date
888768 games out smart dup detection need matching date
885836 games out smart dup detection don't need matching date ** shipped!
879422 games out no tolerance dup policy
Amin, Bassem - Jakovenko, Dmitry
g3 d5 Bg2 c6 ... 109. Rxg7+ Kxg7
Retime MemoryPositionSearch with
4r3/3q1pk1/3p1bn1/2pP1ppQ/1p2P3/6P1/r2B1PK1/1R5R w - - 2 42
Got 810ms,811ms,818ms
Compares favourably to the original 855ms,858ms,857ms
We are now checking for promotion and passing that information using
game_attributes, so we are now really doing CORRECT_BEST_PRACTICE.
Did it again a few days later and got 840ms (ish), oh well. Hadn't really
tried any speedups.
Things to do before new alpha release;
Fix odd visualls for stats
Add use arrows comment ?
Update to new kingbase lite?
Auto detect whether to reverse pgn records ?
Use game feature works on empty game
Implement promotion check so search works beyond promotions
Update credits
Update about box
Get rid of Alt-A, Alt-B
Change to TarraschDb.ini .exe etc.
Search on initial position should be faster
Test search algorithm
Doesn't go straight to game if selected (maybe?)
Progress bar doesn't bother if super quick
Fix exception on exit if still loading database
Check game ordering
Implement match on player to move
Goto(0) needs to set focus
* Improved duplicate game algorithm (see below)
* Progress bar on database load
which requires get game count
* Publish works but Wellington website games don't show
After hooking up MemoryPositionSearch to the program proper, we retimed
4r3/3q1pk1/3p1bn1/2pP1ppQ/1p2P3/6P1/r2B1PK1/1R5R w - - 2 42
using for the moment (at least in effect because we aren't checking
for promotions) NO_PROMOTIONS_FLAWED (not a great name it means
possible false negatives if match after promotion)
We got;
988ms,1004ms,997ms
i.e significantly worse that 751ms below. Acting
on a hunch we changed DoSearch() to use a const char * parameter instead
of a string reference and then we got;
765ms,759ms,765ms
Woohoo.
Timing improvements to our fast MemoryPositionSearch algorithm;
4r3/3q1pk1/3p1bn1/2pP1ppQ/1p2P3/6P1/r2B1PK1/1R5R w - - 2 42
BASE_START_POINT 7987ms
CONSERVATIVE 2630ms
NO_PROMOTIONS_FLAWED 751ms
CORRECT_BEST_PRACTICE 855ms (858,857)
8/6p1/5p2/2kp2pr/7P/1P4P1/3RKP2/8 w - - 0 52
BASE_START_POINT 7941ms
CONSERVATIVE 2207ms
NO_PROMOTIONS_FLAWED 974ms
CORRECT_BEST_PRACTICE 1068ms (1037,1041)
Proposed duplicate game algorithm
White and Black - split into tokens, at least one common multi-char token required for both white and black
Date - non-contradictory; eg "2008.12.31" matches "" or "2008" or "2008.12" but doesn't match "2007" or "2008.11" or "2008.12.30"
All other fields - don't care
Bugs
T icon has disappeared
Publish works but Wellington website games don't show
Doesn't go straight to game if selected
Create small millionbase exceptions out
End app whilst loading games exceptions out
Ideas
Cascading ordering
In directory T3Database
The BigDatabase 2007 as .pgn, in 2 parts, original and rebuilt.
giant1.pgn
giant-base-part1-rebuilt.pgn
giant2.pgn
giant-base-part2-rebuilt.pgn
Some twic files we concatentated together to make giant3.pgn
twic_minimal_overlap.pgn
twic-948-1010.pgn
twic-1011-1050.pgn
twic-1051-1077.pgn
Finally concatenate giant1.pgn, giant2.pgn and giant3.pgn
giant123.pgn
Note all concatenations used file 'b' between each concatenated file,
file b is simply two blank lines (4 bytes, DOS format)
Finished 4591729 total games
nbr_compress_fast = 350937972
nbr_compress_slow = 57354
nbr_uncompress_fast = 350937972
nbr_uncompress_slow = 57354
nbr_pawn_swaps_histo[0] = 88574741
nbr_pawn_swaps_histo[1] = 5620389
nbr_pawn_swaps_histo[2] = 58118
nbr_pawn_swaps_histo[3] = 186
nbr_pawn_swaps_histo[4] = 0