Comments (82)
Updated executables branch with the latest binaries.
from asmfish.
Needless to say (I've said it before somewhere else with a different nick) you've done and are continuing to do a fabulous job.
from asmfish.
(i.e. with the _mf suffix).
@CounterPly, this confuses me. Why not renaming to mFish...?
from asmfish.
Hi @CounterPly. @tthsqe12 came back to github and updated cas! I hope he will come soon.
from asmfish.
Hi @TasicV,
The path must be FULL and include the TTFILE filename. For example: D:\TTFILE\**TT.hsh**
. Then, press TTSave. When you want to load it to the same. I don't know if I am true 🤔 , but this works in my computer. @CounterPly will confirm that! 🌞
from asmfish.
Hi double-beep,
Thanks for staying on top of these action items. I added support to make.bat for Matefinder base executables in the latest commit and included mateFish_base executables for all operating systems. I'll also take a look at the other executables branch shortly to see if I can get it caught up to the master branch.
I am certain Lyudmil will get around to updating the description. The last I heard, he was under some non chess-related work deadlines, but I have no doubt he will be back soon.
from asmfish.
Hi @CounterPly,
I saw that you did large changes in the make.bat; (timings are very good) and you added support to base matefinder executables. Thanks!
I am certain Lyudmil will get around to updating the description. The last I heard, he was under some non chess-related work deadlines, but I have no doubt he will be back soon.
I hope that he will come soon. I hope the same with @tthsqe12, also, who has left(?) github about a month ago. @tthsqe12 is very good in assembly and asmfish will catch Stockfish soon!
from asmfish.
Don't worry, neither of them has left. Moha will be back eventually. He contributed a lot of invaluable commits during his last activity streak, so he is on a well-deserved break at the moment.
from asmfish.
Matefish is based on the branch "mate_finder" by @jhellis3. It is ideal for analyzing complex and/or tactical positions where your intuition tells you: "there is probably a mate here."
For a more clear idea of what this entails, check out the following branch-comparison:
official-stockfish/Stockfish@master...jhellis3:mate_finder
from asmfish.
There are several ways to prevent this from happening.
-
Delete the corresponding ".uci" file on your system and make a new engine. I would recommend this program. Simply type in "*.uci" (without the quotes) and it should bring you directly to the location of the file on your system.
-
Assemble your own mateFinder with a different name of your choosing.
-
In the name field of your engine in the picture you provided (preferably, after you have set the parameters), add in "_mf" in order to give matefinder a distinct identity. Note: this must come after the engine name (i.e. you cannot edit the engine's name itself; you can only append to it).
One thing to keep in mind is that engines beginning with the word "mate" are not allowed in Fritz/Chessbase. I have no idea why this is, but that's the way it used to be. Perhaps they have fixed this bug in newer editions of Fritz, but I have not checked.
from asmfish.
Hi double-beep,
I'm glad (3) worked; it is the most straight-forward method.
What do you mean and how this can be done?
I mean, delete the .uci file physically from disk and then use Fritz to set-up a new engine. This is a particularly useful trick only if you have to phase-out a lot of old/obsolete engines.
How can I do this? With the make.bat?
No, that would just change the executable name, not the engine's internal name. You would need to modify the source first and then reassemble (with make.bat).
The lines you need to change are in MainData.asm (lines 38-47).
I think that this is not related with already exists, but ok.
I know, I was just warning you. I once wasted a lot of time trying to figure out why mateFinder wasn't loading, and it was ultimately ChessBase's problem and not the engine's.
But how do you explain the name asmFishW*_base.exe in the matefinder file?
Most likely a mistake on my end. I'll take a look and fix it with my next commit. Thanks for letting me know.
from asmfish.
I have done all the executables since "Tweak time management" here. Should I open a pull request? Or you will update?
Thank you, this was very helpful. I created a PR for you and merged it to the executables branch.
from asmfish.
No worries. Sure, I made a note to fix that as well in the next commit. Could you verify for me that "mateFinder" (as an engine name) is functional in Fritz and/or Chessbase?
from asmfish.
Yes that is what I was referring to 3 days ago with the following messages:
Counterply: "One thing to keep in mind is that engines beginning with the word "mate" are not allowed in Fritz/Chessbase. I have no idea why this is, but that's the way it used to be. Perhaps they have fixed this bug in newer editions of Fritz, but I have not checked."
double-beep: "I think that this is not related with already exists, but ok."
Counterply: I know, I was just warning you. I once wasted a lot of time trying to figure out why mateFinder wasn't loading, and it was ultimately ChessBase's problem and not the engine's.
from asmfish.
So seeing as that bug isn't fixed yet by ChessBase, I will leave the names as they currently are (i.e. with the _mf suffix). Perhaps consider contacting the ChessBase team and asking them to fix this bug.
from asmfish.
For the CB bug I got an the following answer:
Peter Schreiner (ChessBase)
11 Juni, 09:03 EEST
Hello,
thank you very much for your email.
I forward a copy of your email to our developer team!
Kind regards
-Peter Schreiner
I will notice you if newer.
from asmfish.
Starting from line 40:
db 'mFish'
db VERSION_OS
db '_'
BuildTimeData
db '_'
db VERSION_POST
else
db VERSION_PRE
db VERSION_OS
db '_'
BuildTimeData
db '_'
db VERSION_POST
end if
and ending in line 53.
If this is correct, could you commit it with my notes in pull request #183?
from asmfish.
BuildTimeData
is a custom macro. It is defined in BasicMacros.asm, starting at line 72.
from asmfish.
Hi @CounterPly,
I have to offer something, just for your time and your computer. Why not letting AppVeyor do the work for you? I have tried it in my repository and it's amazing! AppVeyor builds the executables quickly and then presents them. Ah, yeah, you can also customize it to give the bench after the build without downloading it.! I have created a file named appveyor.yml
in my repository which says AppVeyor how to build the repository. You are free to edit it and add it to your fork. If you want any help, I am here.
@double-beep
from asmfish.
UTC -5
from asmfish.
Updated change-log to your last version.
from asmfish.
@CounterPly,
there is again a newer version of fasmg.exe, g.i8nim. I am testing at the moment.
EDIT
Newest version is about 50 seconds faster.
from asmfish.
Hello, there is a newer version of fasmg once again:
flat assembler g i8q67
Results of my testing:
flat assembler g i8q67 is slower that g.i8nim -> ~4seconds per build and totally 2minutes(!) slower, so I think this version should not be included in asmFish.
from asmfish.
flat assembler g i960e is the newest version of fasmg. Testing at the moment and will respond later.
Results
At total, version i960e is ~10secs faster. I think this version should be included.
Will patches:
- Use cycle detection to bound search value and
- Simplyfying away the progressKey
be implementer???
If not, when asmFish's and stockfish's benches will realign?
from asmfish.
@CounterPly
@lantonov came back to github and updated his fork of stockfish. Hope he has the time to 'see' asmFish.
from asmfish.
Ok @CounterPly, I don't worry!
from asmfish.
Opened a pull request (see above (#176)) which compares @CounterPly's branch and @lantonov's branch.
from asmfish.
@CounterPly, can you explain me what's exactly the difference between asmfish and matefish?
from asmfish.
Hello, @CounterPly, thanks for the explanation. I asked because when I open the mateFishW*.exe file I get:
asmFishW_2018-06-05_base
which is the same with asmFishW*.exe.
I know that benches are different, but ChessBase cannot understand that asmFish and mateFish are different.
I press Create UCI engine
and I select the asmFish*.exe. I set the parameters and press OK
. When I do the same with mateFish*.exe ChessBase shows a message tht says: asmFishW_2018-06-05_base already exists
!
Analytically (with screenshots) we have:
How can be this solved?
Thanks!
@double-beep
from asmfish.
Hello @CounterPly
Delete the corresponding ".uci" file on your system and make a new engine.
What do you mean and how this can be done?
Compile your own mateFinder with a different name of your choosing
How can I do this? With the make.bat?
One thing to keep in mind is that engines beginning with the word "mate" are not allowed in Fritz/Chessbase. I have no idea why this is, but that's the way it used to be. Perhaps they have fixed this bug in newer editions of Fritz, but I have not checked.
I think that this is not related with already exists
, but ok.
from asmfish.
But how do you explain the name asmFishW*_base.exe
in the matefinder file?
Anyway, the 3rd way worked!
Thanks!
from asmfish.
@CounterPly, I have done all the executables since "Tweak time management" here. Should I open a pull request? Or you will update?
from asmfish.
Hi Justin!
Thanks for the explanation and the pull request, your welcome for the executables!
The lines you need to change are in MainData.asm (lines 38-47).
"image"
Could you give me an example?
I mean, delete the .uci file physically from disk and then use Fritz to set-up a new engine. This is a particularly useful trick only if you have to phase-out a lot of old/obsolete engines.
Do you know the usual location of the *.uci?
from asmfish.
The only things that keep this issue open are the update of the description, the wiki (which means that @lantonov will come to help) and also @tthsqe12 come, also!
Asmfish is very fast (🥇 ), but assembly is hard. So asmfish is back. I don't feel good with that!
from asmfish.
Hello @CounterPly,
In your previous comment with the example, you showed me how I can add sth to the end of the engine's internal name. I mean that you showed me how to change a name from asmFish_%datestamp%_%VERSION_POST%
to asmFish_%datestamp%_%VERSION_POST%_mf
. Is there a way to change name from asmFish_%datestamp%_%VERSION_POST%
to another name? e.g. mateFish_%datestamp%_%VERSION_POST%
? I would be happy if possible! 👍 :))
from asmfish.
Do you know when @lantonov and @tthsqe12 will return, @CounterPly?
from asmfish.
"Do you know the usual location of .uci?"
For me it is located at: C:\Program Files (x86)\Common Files\ChessBase\Engines.uci
"Asmfish is very fast, but assembly is hard. So asmfish is back. I don't feel good with that!"
Sorry, I am not sure what you are trying to say here. Do you have concerns about a certain commit?
"Is there a way to change name from [...] to another name?"
This modification in MainData.asm should do what you want:
"Do you know when @lantonov and @tthsqe12 will return, @CounterPly?"
No, I do not know when Lyudmil and Moha will be back. I imagine they are both busy with other endeavors, but they'll be back eventually.
from asmfish.
For me it is located at: C:\Program Files (x86)\Common Files\ChessBase\Engines.uci
I couldn't find any *.uci files. There are only *.engine files
It works! Could you do it in next commit?
No, I do not know when Lyudmil and Moha will be back. I imagine they are both busy with other endeavors, but they'll be back eventually.
Sorry, I thought you knew them.
from asmfish.
Hello Justin,
Something strange happens with the code you showed me in the last comment. (Note that this 'bug' happens only with that code [not the previous one at commit cb7c53d]).
I press Create UCI Engine
. I insert the executable and press OK
. (The name is ok, [mateFish]). When I press Add kibitzer
no engine named matefish exists! But if I press Engine Management
I can see mateFish in active engines!
Does this seem strange to you, also?
from asmfish.
I have reported this to ChessBase. Maybe that bug is fixed but in ChessBase 14.
from asmfish.
Thanks for applying. This issues has changed the things in asmFish a lot!
from asmfish.
@CounterPly, BuildTimeData
is standard or changeable? If I can change it where can I do it?
[Note: No newer from ChessBase 👎 ]
from asmfish.
ThanksALot! I hope that it ends at line 101 at the command end macro
.
from asmfish.
Hi,
I have question about TTFILE. I see this file crate engine, but where and how. Is this file temporary, or like arhive file. Also in parameters you have SAVETTFILE, but I cant see any hash or other file in folder. Can you explain this parameter please?
from asmfish.
I make it alone to save file before you told me, but thank you very much. Also I must ask you then why this file in start is 4 GB?? Is this normal?
from asmfish.
Yes that is normal. For example, if your hash setting was 4 GB and you allowed it to fill to 100% prior to saving, then your .hsh file will be 4 GB in size. If you set it to 32 GB, it will be 32 GB. Etc.
from asmfish.
Hi @CounterPly,
There's a problem after commit d8ad316 in the gh-pages
branch only as you stored all the files in *.7z and now website lantonov.githu.io/asmFish isn't working.
As you also stored the old binaries in the executables branch I will put the in the 7-zip file or in the folder?
from asmfish.
I'll fix gh-pages, thanks for letting me know.
7-zip file would be ideal. Git isn't meant to be hosting so many binaries (it slows things down).
from asmfish.
Yes, your idea was great, but where should I put the executables?
from asmfish.
Putting them in a 7-zip file would be ideal.
from asmfish.
Thanks! I opened #198
from asmfish.
@CounterPly Can you edit wikis?
from asmfish.
I am asking that as I have ready the wikis here. I am preparing an another version at the moment. You can review them when you have time.
from asmfish.
I have prepared the version here. I think I have put some extra details. What do you think?
from asmfish.
@double-beep This looks phenomenal; thank you for taking the time to do that. I am traveling at the moment, but I will update the wiki with your contributions as soon as I am back later this evening.
from asmfish.
@CounterPly your welcome! :)
You said you 'll have return by the evening and in my country now it's night! Just curious, what is your time zone? Mine is UTC + 3
from asmfish.
Hi, @CounterPly,
thanks for the wiki update. I think here, you should add a suggestion label to this issue :).
Sorry for the "inertia" the last ~3-4 days; I am in a hotel with poor internet connection playing a national chess tournament. I should never forget my chess obligations :-).
I really think that option U - Update fasmg.exe
is not required. The thing you can do, is to tell make.bat to automatically update fasmg.exe in the beginning.
Question: Only fasmg.exe
is updated with the download.vbs
file or both fasmg
and fasmg.exe
?
Could you let me prepare the easy patch Tuned some values...
or you can do it?
I will prepare wiki's change-log soon. How did you make the latest 'updater' me? (double-beep)
By the way, the title seems great to me :-) and your idea about benching armFish with TRAVIS which supports qemu. You could make a script after, to bench Mac and Linux, as Travis supports them, also.
@double-beep
from asmfish.
-
I initially had it as updating fasmg at the beginning like you suggested, but I quickly found that to be annoying and unnecessary considering fasmg is only updated once every few months (usually). I think leaving it as an option for the user is an effective compromise that doesn't waste time every round of assembly.
-
As written in the output message, only fasmg.exe is updated.
-
Yes, please be my guest if you want to help contribute to the patches. It is very hard being the only one working on asmFish at the moment, so all help is VERY appreciated.
-
All patches on the lantonov repository must be in order but bit.ly/asmFishCP can be updated at anytime, in any order. We will get to them here eventually, too, so no effort is wasted.
from asmfish.
-
I used
git commit --amend --author="Author Name <[email protected]>"
-
I have been thinking about qemu, and I think the best way to go about doing this is via Docker. Someone posted a thread a while back in which they sucessfully set up a Docker container for asmFish so that could be a great starting point.
-
Good luck in your chess tournament!
from asmfish.
Hi @CounterPly, I saw your messages, I was busy with training. I will complete the patch today as the tournament ends! Instead of waiting please try what you said above about benching armFish with a dockerfile.
from asmfish.
It is fine. I already completed the patch along with 7 others. I will commit them here once the arm versions are complete.
from asmfish.
Hello @CounterPly,
- make.bat is broken. No reason to remove the 1 of 2
start /min /wait
in:allBinaries
. - I have prepared the wiki.
- Newest fasmg is faster after a test in AppVeyor console.
- I think we should ask @ksylvan for a docker command to bench the engines if you do not know any. You can see my work in the dockerhub and generally explore the repository (you can join hub.docker.com if you haven't done it and I will make you a collaborator) and in branch docker in my fork.
@double-beep
from asmfish.
I deleted those lines because it saves several seconds when I assemble locally. Since it breaks make.bat for your system, however, I will put it back during the next commit.
from asmfish.
Thanks for looking into Docker. I will create an account soon.
from asmfish.
Hi @CounterPly, when I look code at move_do_null, I see in line 25 "mov edx, dword[rbx+State.epSquare]", why just "movzx edx, byte[rbx.State.epSquare]", this line neglect value of capturedpiece that we used on updatestat, other than we keep copying it new State with different possidetomove.
from asmfish.
Hi @cirebonb, this is not correct:
flat assembler version g.i88rw
x86\fish.asm [173] x86\Move_DoNull.asm [25]:
movzx edx, byte[rbx.State.epSquare]
macro movzx [2] macro parse_operand [5] macro parse_operand_value [21] macro parse_address [13]:
ns.address = +addr
Processed: @src.address = +rbx.State.epSquare
Error: symbol 'epSquare' is undefined or out of scope.
This is a problem in compilation after command:
fasmg.exe "x86\fish.asm" "asmFishW_base.exe" -e 1000000 -i "VERSION_OS='W'" -i "PEDANTIC = 1" -i "VERSION_POST = 'base'" %debug%
from asmfish.
hi @doublebeep not [rbx.State.epSquare] but [rbx+State.epSquare]
from asmfish.
not @doublebeep but @double-beep
from asmfish.
Unless I misunderstood your original question, zero-extending byte[rbx+State+epSquare] into rdx alters the bench from the correct value of 4777674 to an incorrect value of 4843129. This is due to partial-hammering of the edx register, which I don't think is particularly desirable here. Even if it was, however, this branch is for official bench-match versions only.
from asmfish.
@cirebonb, sorry for that, of course we cannot say rbx.State.epSquare
; I didn't take a further look.
@CounterPly as about the dockerfile, I am experimenting with it the last 4 days, but I could not find a command to bench the executables. Any ideas? And by the way what is your username in dockerhub?
from asmfish.
yes, sorry my mistake
from asmfish.
Thank you very much for looking into it. Sorry for being unresponsive these past few days; I have been under several work-deadlines and have not had much free time.
I made an account on DockerHub -- CounterPly.
from asmfish.
Hello, @CounterPly it is ok.
I have created a repository here. I use as SOURCE_REPO
my fork as there I got the dockerfile. You have admin access, you can change it when you want.
The last days I was trying to find a command to bench the executables. [Note: Server there, assembles the executables very slow (~60-80secs). You can see the logs.] The one that had to work was:
&& ./armFishL_v8 bench
Unfortunately, I got a message: Access is denied
and build failed. If you know docker well, as I do not know, can you help?
from asmfish.
Hello, Justin
Based on your work I have prepared patches until
Simply reset statScore to zero at beta cutoff
. You can merge this to master. Also, I have fixed make.bat.
Will you implement the "cuckoo" patches?
Fasmg.exe when is open with start /min build ALL the executables or just first e.g. 4 per time?
I may not have the time to upload my work on the latest patch as I am going on holiday in a mountain. I will not have access to my laptop for the next 7days.
from asmfish.
Sorry for the late reply.
Thank you for testing. I will update fasmg with the next functional patch.
Yes, the cuckoo patches will be implemented eventually. I have been working on them over the past week whenever possible, but I have been very busy lately at work and have not had much time to do patches. (I may or may not need @tthsqe12 's help on this one, but honestly, I haven't given it a complete enough of an attempt to say for sure).
Since the cuckoo patches will probably take a while to get right, I've decided to also continue implementing subsequent functional patches on my asmFish fork while official progress is on pause (for those users who would be interested in these). Currently, it is a few patches ahead of the official branch and should be at least marginally stronger.
from asmfish.
Hi,
Except the change I offered for make.bat in issue #211, I have some more simplifications. Especially in :allBinaries (and in other labels of course) you always specify
set include=x86\include\
Why just
:allBinaries
set include=x86\include\
and delete the same command in this label? (except when you specify set include=arm\include). This can be done with other labels of course.
Some move
commands need simplification in make.bat also. Take a look please if you can.
from asmfish.
Noted. I will look at it during the next asmFish commit.
A general comment though: I don't think make.bat is important enough to justify rigorous optimization. It is fine if you want to spend your spare time tweaking it, but remember that most people shouldn't even need to use it anyway since binaries are assembled with every commit.
Remember, it isn't a chess engine that evaluates millions of nodes per second. It is a batch file. Eliminating an extra move command here or there will probably only save nanoseconds -- if that.
Thank you for your dedication, though. It is much appreciated.
from asmfish.
Hello Asmfish Team,
Could you please update us if it is time to mourn the death of AsmFish?
I hope it is not
from asmfish.
no its not dead. they posted an update on other forums and counterplys branch is still a bit active with some extra patches every once in a while
source:
http://immortalchess.net/forum/showthread.php?t=32349&page=29
http://mzchessforum.altervista.org/viewtopic.php?f=31&p=28810#p28810
from asmfish.
this project is falling more and more behind sadly. ah well.
/edit: see below.
from asmfish.
@mausalimi As previously stated by others here, please refer to my fork for the time being until I can get the cuckoo tables working properly. It contains all patches through early July 2018 and will soon be caught up to the month of August. As soon as the cuckoo patch is complete, the benches will be once again perfectly realigned and I will begin moving patches back over to this repository.
from asmfish.
I am closing this thread since it has grown quite long and difficult to navigate. Special thanks to @double-beep for all of the excellent topics/questions/responses provided here.
(Moving forward, it will probably be easiest for everyone to maintain all questions/concerns as separate issues/topics).
from asmfish.
Related Issues (20)
- armFish: Implementation of the arctan function HOT 1
- Action Items
- Cannot find FASMG to make a compile HOT 6
- what is bmi1 & bmi2 (question) HOT 5
- how to use big large pages file (question)
- Flat assembler g
- BMI1 better then BMI2 HOT 7
- Question: does project is dead? HOT 2
- Latest asmFish versions and progress update HOT 9
- Lc0 beat SF decisively at two tournaments HOT 2
- Update: Commit migration in progress. HOT 2
- Android binary (armFish) HOT 1
- Syzygy 7men support HOT 3
- question asmfish support the Nalimov format ?? HOT 1
- crashes on computers with more than 1 processor groups HOT 27
- brain2polyglot HOT 1
- Is it possible to embed assembly in official Stockfish's C++ code? HOT 3
- How is asmFish doing these days? HOT 5
- Memory usage
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asmfish.