[Windows] Fess's builds (64-bit): LevelDB, DirectX, etc.

miner65536
Member
 
Posts: 41
Joined: Tue Aug 20, 2013 22:16

by miner65536 » Tue Aug 20, 2013 22:30

Hi Fess,
Really nice work, this runs really quickly on an i5 laptop with win8 (seems to rarely drop below 60hz).
Can you tell me which versions of the components you've used and where to get them from? I would like to work on my own win64 minetest build with everything enabled, IE curl, JIT, fonts & sound?
I've done a quick win32 build with vs11, but it barely works, I followed the short (and presumably out of date) compile guide in the minetest source tree but I had to fix-up too much to have confidence in it. I switched everything off that I could but still got compile errors, specifically irrilicht 1.7.1 had an ambiguous swap<> defined that confused vs11, I had to ignore libcmt to get it to link too. My exe bombs out really quickly & even if it was stable without a JIT it will never be up to full speed.
Any help with the win64 build will be greatly appreciated.

Cheers,
Rob.
 

User avatar
Inocudom
Member
 
Posts: 2889
Joined: Sat Sep 29, 2012 01:14
IRC: Inocudom
In-game: Inocudom

by Inocudom » Wed Aug 21, 2013 01:04

miner65536 wrote:Hi Fess,
Really nice work, this runs really quickly on an i5 laptop with win8 (seems to rarely drop below 60hz).
Can you tell me which versions of the components you've used and where to get them from? I would like to work on my own win64 minetest build with everything enabled, IE curl, JIT, fonts & sound?
I've done a quick win32 build with vs11, but it barely works, I followed the short (and presumably out of date) compile guide in the minetest source tree but I had to fix-up too much to have confidence in it. I switched everything off that I could but still got compile errors, specifically irrilicht 1.7.1 had an ambiguous swap<> defined that confused vs11, I had to ignore libcmt to get it to link too. My exe bombs out really quickly & even if it was stable without a JIT it will never be up to full speed.
Any help with the win64 build will be greatly appreciated.

Cheers,
Rob.


You sound like somebody who could be of great assistance to Fess should he need it.

If you have the skill to do so, you could try your hand at improving Minetest's compatibility with DirectX 9 sometime.

Add a setting for HighPrecisionFPU (fixes #763)... What effect does this have on DirectX 9? It sounds like it would make it smoother, but does it?
Last edited by Inocudom on Mon Aug 26, 2013 02:36, edited 1 time in total.
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Wed Aug 28, 2013 21:56

New build commit 439079cad8, still have the same problem with localization.
http://yadi.sk/d/AYB_NZUf8RoHW
I'm using Irrlicht 1.8, curl 7.31, luajit 2.0.1 compiled from sources from official sites, also all other libs with latest stable versions. For some frequently updated libs(like curl) not always latest, but that works without causing problems:) Compiling with VS10, Win 7 x64, also default libcmt ignored in settings.
Last edited by Fess on Wed Aug 28, 2013 22:14, edited 1 time in total.
 

User avatar
Inocudom
Member
 
Posts: 2889
Joined: Sat Sep 29, 2012 01:14
IRC: Inocudom
In-game: Inocudom

by Inocudom » Thu Aug 29, 2013 04:18

With this build, the public server list doesn't show up (the favorite server list shows up in its place.) It looks like curl is one of those libraries that needs to constantly be updated, unfortunately.
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Thu Aug 29, 2013 12:35

Inocudom wrote:With this build, the public server list doesn't show up (the favorite server list shows up in its place.) It looks like curl is one of those libraries that needs to constantly be updated, unfortunately.

I've just forgot to enable curl in that build in config file.
New build with curl enabled, latest commit 82e1ab7b2b:
http://yadi.sk/d/U-KssQUw8T55M
Last edited by Fess on Thu Aug 29, 2013 12:47, edited 1 time in total.
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Sat Aug 31, 2013 20:24

New build with latest commit 71a6ffa762, changelog:
[spoiler]
  • Normalized heat and adjusted humidity
  • Translated using Weblate(Russian) //but still bugged encoding, sadly :(
  • Fix bug in pathfinder causing endless loop in some situations
  • Use wstring for vertlabels
[/spoiler]
http://yadi.sk/d/-izeZ-PH8YIqr
Last edited by Fess on Sat Aug 31, 2013 20:26, edited 1 time in total.
 

User avatar
Inocudom
Member
 
Posts: 2889
Joined: Sat Sep 29, 2012 01:14
IRC: Inocudom
In-game: Inocudom

by Inocudom » Sat Aug 31, 2013 23:38

Thank you for this build.

RealBadAngel was in the #minetest chat room recently. If you wish to speak with him or anybody else there, you are able to chat there.

The recent commits to the development version of Minetest might be useful:
https://github.com/minetest/minetest/commits/master
Last edited by Inocudom on Wed Sep 04, 2013 21:55, edited 1 time in total.
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Thu Sep 05, 2013 11:41

New build with latest commit 8489980039
http://yadi.sk/d/ft-vbcSO8koP7
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Sun Sep 08, 2013 21:52

Updated build with latest commit 71a8769bb5
Changelog from GitHub:
[spoiler]
  • Run updatepo.sh
  • Add fallback font support for some languages
  • Add minetest.get_gametime() API function, that returns the number of seconds since the world was created.
  • Translated using Weblate (Portuguese/German/Chinese)
  • Add mapgen_stair_cobble alias to minimal
  • Standardized method of getting node info in dungeon mapgen.
[/spoiler]
http://yadi.sk/d/6y0ruCug8voph
Last edited by Fess on Sun Sep 08, 2013 21:53, edited 1 time in total.
 

User avatar
Inocudom
Member
 
Posts: 2889
Joined: Sat Sep 29, 2012 01:14
IRC: Inocudom
In-game: Inocudom

by Inocudom » Mon Sep 09, 2013 23:43

What is LevelDB used for in Minetest?
 

User avatar
jojoa1997
Member
 
Posts: 2890
Joined: Thu Dec 13, 2012 05:11

by jojoa1997 » Tue Sep 10, 2013 01:15

It allows for a bigger minetest world file I think.
Coding;
1X coding
3X debugging
12X tweaking to be just right
 

User avatar
PilzAdam
Member
 
Posts: 4026
Joined: Fri Jul 20, 2012 16:19
GitHub: PilzAdam
IRC: PilzAdam

by PilzAdam » Tue Sep 10, 2013 01:35

Inocudom wrote:What is LevelDB used for in Minetest?

sqlite has problems with worlds bigger than 4 GiB (singleplayer wont reach that limit, but big servers can reach it), the world gets corrupted in some places. leveldb doesnt have this problem, so big servers will probably use it.
Also some people say that its faster, but I dunno if that is correct.
Last edited by PilzAdam on Tue Sep 10, 2013 01:35, edited 1 time in total.
 

User avatar
Inocudom
Member
 
Posts: 2889
Joined: Sat Sep 29, 2012 01:14
IRC: Inocudom
In-game: Inocudom

by Inocudom » Tue Sep 10, 2013 02:45

PilzAdam wrote:
Inocudom wrote:What is LevelDB used for in Minetest?

sqlite has problems with worlds bigger than 4 GiB (singleplayer wont reach that limit, but big servers can reach it), the world gets corrupted in some places. leveldb doesnt have this problem, so big servers will probably use it.
Also some people say that its faster, but I dunno if that is correct.


There is one commit that says that it doesn't work with Windows operating systems, which means that servers that want to use it can't use those.
 

User avatar
sfan5
Member
 
Posts: 3636
Joined: Wed Aug 24, 2011 09:44
GitHub: sfan5
IRC: sfan5

by sfan5 » Tue Sep 10, 2013 05:15

Inocudom wrote:
PilzAdam wrote:
Inocudom wrote:What is LevelDB used for in Minetest?

sqlite has problems with worlds bigger than 4 GiB (singleplayer wont reach that limit, but big servers can reach it), the world gets corrupted in some places. leveldb doesnt have this problem, so big servers will probably use it.
Also some people say that its faster, but I dunno if that is correct.


There is one commit that says that it doesn't work with Windows operating systems, which means that servers that want to use it can't use those.

Seriously, who would use Windows for hosting servers?
Also the Add message that LevelDB is not supported on Windows is not relevant anymore since the Use system-wide LevelDB instead of bundled one removes the LevelDB source code.
You can build Minetest for Windows with LevelDB if you have a library and the header files
Last edited by sfan5 on Tue Sep 10, 2013 05:16, edited 1 time in total.
Mods: Mesecons | WorldEdit | Nuke
Minetest builds for Windows (32-bit & 64-bit)
 

User avatar
jojoa1997
Member
 
Posts: 2890
Joined: Thu Dec 13, 2012 05:11

by jojoa1997 » Tue Sep 10, 2013 10:52

sfan5 wrote:
Inocudom wrote:
PilzAdam wrote:sqlite has problems with worlds bigger than 4 GiB (singleplayer wont reach that limit, but big servers can reach it), the world gets corrupted in some places. leveldb doesnt have this problem, so big servers will probably use it.
Also some people say that its faster, but I dunno if that is correct.


There is one commit that says that it doesn't work with Windows operating systems, which means that servers that want to use it can't use those.

Seriously, who would use Windows for hosting servers?
Also the Add message that LevelDB is not supported on Windows is not relevant anymore since the Use system-wide LevelDB instead of bundled one removes the LevelDB source code.
You can build Minetest for Windows with LevelDB if you have a library and the header files
say I wanes to play minetest with my friend but he isn't at my house. BOOM! I turn on my server.
Coding;
1X coding
3X debugging
12X tweaking to be just right
 

User avatar
PilzAdam
Member
 
Posts: 4026
Joined: Fri Jul 20, 2012 16:19
GitHub: PilzAdam
IRC: PilzAdam

by PilzAdam » Tue Sep 10, 2013 11:43

jojoa1997 wrote:
sfan5 wrote:
Inocudom wrote:
There is one commit that says that it doesn't work with Windows operating systems, which means that servers that want to use it can't use those.

Seriously, who would use Windows for hosting servers?
Also the Add message that LevelDB is not supported on Windows is not relevant anymore since the Use system-wide LevelDB instead of bundled one removes the LevelDB source code.
You can build Minetest for Windows with LevelDB if you have a library and the header files
say I wanes to play minetest with my friend but he isn't at my house. BOOM! I turn on my server.

Ehm, 2 players wont reach the 4 GiB limit.
 

User avatar
sfan5
Member
 
Posts: 3636
Joined: Wed Aug 24, 2011 09:44
GitHub: sfan5
IRC: sfan5

by sfan5 » Tue Sep 10, 2013 12:10

jojoa1997 wrote:
sfan5 wrote:
Inocudom wrote:
There is one commit that says that it doesn't work with Windows operating systems, which means that servers that want to use it can't use those.

Seriously, who would use Windows for hosting servers?
Also the Add message that LevelDB is not supported on Windows is not relevant anymore since the Use system-wide LevelDB instead of bundled one removes the LevelDB source code.
You can build Minetest for Windows with LevelDB if you have a library and the header files
say I wanes to play minetest with my friend but he isn't at my house. BOOM! I turn on my server.

Hosting Servers means having a dedicated/virtual server that runs 24/7 to host something all the time
I've also succeeded in building LevelDB for Windows.
Mods: Mesecons | WorldEdit | Nuke
Minetest builds for Windows (32-bit & 64-bit)
 

User avatar
Inocudom
Member
 
Posts: 2889
Joined: Sat Sep 29, 2012 01:14
IRC: Inocudom
In-game: Inocudom

by Inocudom » Tue Sep 10, 2013 17:42

sfan5 wrote:
jojoa1997 wrote:
sfan5 wrote:Seriously, who would use Windows for hosting servers?
Also the Add message that LevelDB is not supported on Windows is not relevant anymore since the Use system-wide LevelDB instead of bundled one removes the LevelDB source code.
You can build Minetest for Windows with LevelDB if you have a library and the header files
say I wanes to play minetest with my friend but he isn't at my house. BOOM! I turn on my server.

Hosting Servers means having a dedicated/virtual server that runs 24/7 to host something all the time
I've also succeeded in building LevelDB for Windows.


If Fess asks you how to do this, will you tell him so that he can successfully make 64-bit builds with it?
Last edited by Inocudom on Tue Sep 10, 2013 17:42, edited 1 time in total.
 

User avatar
sfan5
Member
 
Posts: 3636
Joined: Wed Aug 24, 2011 09:44
GitHub: sfan5
IRC: sfan5

by sfan5 » Tue Sep 10, 2013 18:30

Inocudom wrote:
sfan5 wrote:
jojoa1997 wrote:say I wanes to play minetest with my friend but he isn't at my house. BOOM! I turn on my server.

Hosting Servers means having a dedicated/virtual server that runs 24/7 to host something all the time
I've also succeeded in building LevelDB for Windows.


If Fess asks you how to do this, will you tell him so that he can successfully make 64-bit builds with it?

https://github.com/bitcoin/bitcoin/blob/master/src/leveldb/WINDOWS.md may work for 64bit
Mods: Mesecons | WorldEdit | Nuke
Minetest builds for Windows (32-bit & 64-bit)
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Tue Sep 10, 2013 20:20

New build with latest commit e0f9f15d1d:
[spoiler="Changelog from GitHub"]Use engine.is_yes() in mainmenu
Use the Settings Lua interface to read world.mt
Allow non-string arguments for minetest.is_yes()
Add Settings interface for Lua
Handle --migrate even when compiled without leveldb support
Remove assert warning in leveldb wonderland
Fix loading leveldb worlds
Fix broken build due to missing mapsector.h include
Add --migrate to manpages and update manpage dates
Add license headers and remove useless includes
Use system-wide LevelDB instead of bundled one
Prevent ModMgr from deleting backend setting in world.mt
Make --migrate update world.mt too
Add note about --migrate only working with minetestserver or --server
Fix 'Unknown map backend' error when using Configure menu right after… …
Use STL containers instead of irr::core::list
Add message that LevelDB is not supported on Windows
Make it compile
Add dummy and LevelDB database backends
[/spoiler]
http://yadi.sk/d/P8DZVXFN94k4e
no LevelDB support included
Last edited by Fess on Tue Sep 10, 2013 20:21, edited 1 time in total.
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Sun Sep 15, 2013 15:25

New build with latest commit 3c4734d69a:
[spoiler="Changelog"]
  • Change mainmenu texture handling + small misc changes
    Texture names must now be escaped in formspec elements image[],
    background[], image_button[], image_button_exit[].
    Instead of special-case handling of texture loading (and unloading
    which was missing) in guiFormSpecMenu.cpp, use the newly created
    ISimpleTextureSource interface which is a minimal subset of
    ITextureSource. There is an implementation of this interface
    used by GUIEngine (MenuTextureSource).
    Fix an off-by-one bug in unescape_string; it caused requests for a texture called "\0".
  • Fix hotbar padding at bottom
  • Add offset to automatic_face_movement_dir
  • Fix bug: texture pack not overriding default menu textures
[/spoiler]
http://yadi.sk/d/788EMqhV9Jodr
 

User avatar
Inocudom
Member
 
Posts: 2889
Joined: Sat Sep 29, 2012 01:14
IRC: Inocudom
In-game: Inocudom

by Inocudom » Sun Sep 15, 2013 15:50

Does this have LevelDB support? Is there any way that I could tell?
 

User avatar
sfan5
Member
 
Posts: 3636
Joined: Wed Aug 24, 2011 09:44
GitHub: sfan5
IRC: sfan5

by sfan5 » Sun Sep 15, 2013 15:58

Inocudom wrote:Does this have LevelDB support? Is there any way that I could tell?

Try migrating a world from sqlite3 to leveldb, if that works there is leveldb support.
Mods: Mesecons | WorldEdit | Nuke
Minetest builds for Windows (32-bit & 64-bit)
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Sun Sep 15, 2013 16:02

Inocudom wrote:Does this have LevelDB support? Is there any way that I could tell?

No, its have no. I have tried to compile LevelDB from sfan5 link https://github.com/bitcoin/bitcoin/blob/master/src/leveldb/WINDOWS.md but it has no *.sln or *.vcxproj file, so provided instruction in .md file doesn't affect. Also i've tried to make sln for visual studio from sources, following instructions provided for windows on its sourceforge page but that solution leads to many errors while compiling, some of them was fixed but after i recieved errors at linking stage.
Last edited by Fess on Sun Sep 15, 2013 16:10, edited 1 time in total.
 

User avatar
sfan5
Member
 
Posts: 3636
Joined: Wed Aug 24, 2011 09:44
GitHub: sfan5
IRC: sfan5

by sfan5 » Sun Sep 15, 2013 16:43

I have it for 32bit if you need it:
http://sfan5.pf-control.de/libleveldb-1.12-win32.zip
You can mix 64bit builds with 32bit libs freely if you use the .dll
Mods: Mesecons | WorldEdit | Nuke
Minetest builds for Windows (32-bit & 64-bit)
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Mon Sep 16, 2013 18:27

sfan5 wrote:I have it for 32bit if you need it:
http://sfan5.pf-control.de/libleveldb-1.12-win32.zip
You can mix 64bit builds with 32bit libs freely if you use the .dll

Thx, i tried to use this library, but the problem is that its contains linux style static library(*.a), that cannot be used by visual studio( Its possible to use dll functions with explicit linking, but its need manually adds all of them to minetest sources, thats also needs much time. So i will try to find the way to compile leveldb from sources to get *.lib for implicit linking of dll library. Maybe it is some alternative ways that you can suggest me? ( I know that its possible to compile complete minetest with mingw64, but thats not a decision because mingw build are without native directx support)
 

User avatar
sfan5
Member
 
Posts: 3636
Joined: Wed Aug 24, 2011 09:44
GitHub: sfan5
IRC: sfan5

by sfan5 » Mon Sep 16, 2013 19:21

Fess wrote:
sfan5 wrote:I have it for 32bit if you need it:
http://sfan5.pf-control.de/libleveldb-1.12-win32.zip
You can mix 64bit builds with 32bit libs freely if you use the .dll

Thx, i tried to use this library, but the problem is that its contains linux style static library(*.a), that cannot be used by visual studio( Its possible to use dll functions with explicit linking, but its need manually adds all of them to minetest sources, thats also needs much time. So i will try to find the way to compile leveldb from sources to get *.lib for implicit linking of dll library. Maybe it is some alternative ways that you can suggest me? ( I know that its possible to compile complete minetest with mingw64, but thats not a decision because mingw build are without native directx support)

1) *.a is not linux specific
2) This may help
Mods: Mesecons | WorldEdit | Nuke
Minetest builds for Windows (32-bit & 64-bit)
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Mon Sep 16, 2013 19:44

sfan5 wrote:1) *.a is not linux specific
2) This may help

Yep, first that i tried to set it up like at that link, and i have recieved error j:\Games\minetest\leveldb\lib\libleveldb.a : warning LNK4003: invalid library format; library ignored. As a read that way is suitable only for C libs, not for C++(
Also i found outdated port of LevelDB (from 2011 year) for visual studio, its compiles but when i try to use it in minetest i've recieve errors at linking stage
[spoiler]
3>database-leveldb.obj : error LNK2001: unresolved external symbol ""public: static class leveldb::Status __cdecl leveldb::DB::Open(struct leveldb::Options const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class leveldb::DB * *)" (?Open@DB@leveldb@@SA?AVStatus@2@AEBUOptions@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAPEAV12@@Z)"
3>database-leveldb.obj : error LNK2001: unresolved external symbol ""public: __cdecl leveldb::Options::Options(void)" (??0Options@leveldb@@QEAA@XZ)"
[/spoiler]
Maybe you have *.def file for this library?
Last edited by Fess on Mon Sep 16, 2013 19:48, edited 1 time in total.
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Tue Sep 17, 2013 20:28

New build with latest commit c0398224ef
[spoiler="Changelog"]
  • Fix some warnings and other minor details
  • Weather: Clean up getHeat/getHumidity somewhat
  • Fix comments about length of server step - Changed the default server step from 0.05s to 0.1s
  • Use cached "weather" setting
  • Fog depend on humidity
  • Add configurable PRAGMA synchronous =
  • Always use builtin JThread library
[/spoiler]
http://yadi.sk/d/P0h2Fkf49TBhN
 

User avatar
Fess
Member
 
Posts: 159
Joined: Wed Feb 27, 2013 05:46

by Fess » Sun Sep 22, 2013 18:54

New build with latest commit 27947d85f7
[spoiler="Changelog"]
  • Add option to scale image to percentage values
  • Fix null dereference in weather update functions
[/spoiler]
http://yadi.sk/d/UGZEXKjV9iA7R
 

PreviousNext

Return to Minetest Builds

Who is online

Users browsing this forum: No registered users and 6 guests

cron