ScummVM logo Forum Index - ScummVM website - Contact us - Buy Supported Games: GOG.com Rules - Search - Register - Login curved edge
Folder Forum Index > General Discussion > SCUMMVM for Windows 64 bit Goto page 1, 2  Next
SCUMMVM for Windows 64 bit
  Author    Thread Reply to topic
carlo_bramini



Joined: 08 Aug 2015
Posts: 9
SCUMMVM for Windows 64 bit 

Hello friends,
I'm wondering if there is a reason for not making available a Windows build for 64 bit platforms.
I tried to search through the forums, but I have found nothing, or it escaped to my attention.

Actually I have been able to build both i686 and x86_64 executables, by compiling from cygwin bash and feeding "--host=i686-w64-mingw32" or "--host=x86_64-w64-mingw32", depending on the version I wanted to make.

Besides an initial error in detection of freetype2 in both versions that needs to be inspected, I have found no problems.

Sincerely.

 Reply with quote  
Post Sun Sep 04, 2016 5:08 pm 
 View user's profile Send private message
dreammaster
ScummVM Developer


Joined: 04 Nov 2005
Posts: 307
Location: Boston, Massachusetts, USA
 

The short answer is that there's no real advantage to doing so. Even Windows 10 still runs 32-bit applications quite happily, and none of the game engines would see any performance benefit from 64 bits vs 32 bits. So there's little point to providing both 32 and 64 bit executables.

 Reply with quote  
Post Mon Sep 05, 2016 3:15 am 
 View user's profile Send private message
sev
ScummVM Lead


Joined: 21 Sep 2005
Posts: 1929
 

We used to release it once, but as dreammaster mentioned, there is no real point of doing so.

Perhaps you have some specific reason why do you think it is a good idea?


Eugene

 Reply with quote  
Post Tue Sep 06, 2016 8:14 am 
 View user's profile Send private message Visit poster's website
carlo_bramini



Joined: 08 Aug 2015
Posts: 9
 

Hello,

thank you very much for the replies.

No, there is not a specific reason that would force the release of a 64 bit version... but since its creation is absolutely inexpensive because both Windows API and 64 bit exist for other platforms, then it would be a new application to be added to the library of native 64 bit applications for Windows, near 7zip, MPC-HC and many others.

Sincerely.

EDIT: if I can say my opinion, perhaps you may let the users to expose their thoughts with a poll, if they would like to have also a build for Window 64 bit or not... it won't be a final decision, but it could help to direct to the best choices to be taken.

 Reply with quote  
Post Sat Sep 10, 2016 12:12 pm 
 View user's profile Send private message
NLS



Joined: 08 Jan 2006
Posts: 110
Location: Greece
 

Well, x64 is a "moving forward" idea.
Many apps don't get a real benefit from moving to native x64, but as you can't run 8bit code and since (relatively) recently you can't run 16bit code on x64 environments (without emulation), why not explore that area? Just to be fully ready.
Also, I suspect native x64 code runs more comfortably on x64 environment, even if you don't actually make use of the extra register lengths etc.
Also for an emulator and similarly for an interpreter, looking to the future is the "must", as new engines get added, which in the future may require x64. I don't see engines emulated as dead fossils. I expect that new engines will be added that are not considered yet. After all, development in general has moved to high-level programming (all games run over a more generic "engine", either created by the developer or buying the rights to use it). "Future" scummVM will need x64 eventually.

That said, there is no rush for any real reason. True.
But if it's just a "make" parameter...

 Reply with quote  
Post Mon Sep 12, 2016 10:03 am 
 View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger ICQ Number
Reckless



Joined: 01 Nov 2005
Posts: 204
 

There's simply no reason to do so. It would just be effort for the sake of it and I'm sure we'd prefer contributors to concentrate on stuff that matters.

 Reply with quote  
Post Mon Sep 12, 2016 6:24 pm 
 View user's profile Send private message
albadross



Joined: 14 Jun 2006
Posts: 47
 

I must confess that I have not understood this thread at all so please may I ask a question. Some time ago I decided I had had enough of Microsoft operating systems on my 64-bit machines and changed all my machines to Linux. However, my experience with ScummVM Linux is that it does not do as good a job as ScummVM for Windows using Wine (e.g. I can't replay some games I have completed in the past under Windows). So I have been downloading and running under Wine a version from the official daily builds page generated by the buildbot called Windows (64-bit) latest development build. If there is apparently no need for a 64-bit version, what am I running? Or should I be downloading the 32-bit development version?

 Reply with quote  
Post Tue Sep 13, 2016 9:56 am 
 View user's profile Send private message
criezy
ScummVM Developer


Joined: 23 Sep 2006
Posts: 422
Location: West Sussex, UK
 

@albadross: The 32 bits version of ScummVM for Windows should work just as well both on 32 bits and 64 bits computers. Some applications do benefit from being 64 bits (for example if they require a lot of memory) but that is not the case of ScummVM.

Also I am somewhat interested in your claim that the Linux version does not do as good a job as the Windows version. Are some features missing, some bugs present, or is it just general performances (e.g. cursor lag, some games being slow)? This might not be the thread where to discuss this, but I think we would welcome bug reports and features request on our new shiny bug tracker. Or you could start a new thread on the forum if there is something to discuss.

 Reply with quote  
Post Tue Sep 13, 2016 10:46 am 
 View user's profile Send private message
Dark-Star



Joined: 30 Oct 2005
Posts: 123
Location: Reutlingen, GERMANY
 

At least in Visual Studio, building the 64bit version out of the box fails with the provided (generated) solution file.

There are some missing defines that are required for 64bit (FPM_64BIT for libMAD and SCUMM_64BITS for the director engine, although from reading the source code it looks like the latter might actually get added if you use the 64-bit version of the create_project tool, but it should get added for x64 builds in any case)

Also, there seems to be a compiler problem with MSVC running out of memory and/or crashing with a segfault if you turn on Optimization and Whole-Program Optimization in the project settings (which is the default).

Turning off the optimizations and adding the missing #DEFINEs makes it build just fine in MSVC (provided you have the corresponding libraries)

 Reply with quote  
Post Tue Sep 13, 2016 11:03 am 
 View user's profile Send private message
GUN



Joined: 08 Nov 2005
Posts: 44
Location: Germany
 

I'm curious,

quote:
Originally posted by carlo_bramini
[...]Actually I have been able to build both i686 and x86_64 executables, by compiling from cygwin bash and feeding "--host=i686-w64-mingw32" or "--host=x86_64-w64-mingw32", depending on the version I wanted to make.
quote:
Originally posted by carlo_bramini
[...] then it would be a new application to be added to the library of native 64 bit applications for Windows [...]


creates MinGW at the actually point native Windows executables? That would be awesome or works it like before over an MinWG Layer? Then it would be better to check if you can run it over Visual Studios.

quote:
Originally posted by carlo_bramini

[...] let the users to expose their thoughts with a poll, if they would like to have also a build for Window 64 bit or not... it won't be a final decision, but it could help to direct to the best choices to be taken.


I don't get it, everybody tells, there will no benefit of doing this. Plus new versiuons will drop support of older machines. Wheres the point of need that?
 Reply with quote  
Post Wed Sep 28, 2016 9:00 pm 
 View user's profile Send private message Visit poster's website
rootfather



Joined: 31 Mar 2015
Posts: 24
Location: Germany
 

ScummVM in general is 64bit ready - I always use the latest source code revisions and compile the builds myself using mingw-w64. Works like a charm! For the "general user", there is currently no point in using a 64bit version of ScummVM, but if you *want* it, you can still compile it yourself.

Applications built with MinGW are native Windows applications, you don't need a compatiblity layer like the Cygwin DLL. However, when compiling ScummVM with MinGW, you need a bunch of additional .dll files for the additional libraries, because most of the libraries used in ScummVM (and the GNU C++ library) are linked dynamically and not statically. See http://wiki.scummvm.org/index.php/Compiling_ScummVM/MinGW-w64#DLLs_required_for_running_ScummVM_on_a_.22non-MSYS2.22_machine for further reference.


With kind regards
rootfather

 Reply with quote  
Post Thu Sep 29, 2016 6:41 am 
 View user's profile Send private message Send e-mail Visit poster's website
carlo_bramini



Joined: 08 Aug 2015
Posts: 9
 

Hello friends,
I hope that one day we will see a 64 bit build of SCUMMVM.
After all, as someone noticed, it is just a parameter for the configure script to be added when you decide to compile and as written also in another reply, SCUMMVM is already 64 bit ready, no changes to the code are required, actually.

However:


quote:
The short answer is that there's no real advantage to doing so.
that's not true. Or at least, it depends.
Windows 64 allows you to run 32 bit code, but it does not come for free. The SysWoW64 includes almost everything, so you are actually running 2 operating systems, one at 32 bit and one at 64 bit and this is also an explanation because it consumes much more memory than the past.
In addition, for those parts not available in native 32 bit code, with my experience I can tell you that the translation layer for stack, memory and calls is not so cheap as you may think.

In few words, if you have no choice because your software really needs to be 32 bit (like using third party libraries) then ok. Otherwise, always go for 64 bit when you are going to use Windows 64. You won't regret. The 32 bit support on Windows 64 must be considered as a facilitation, nothing else.

I hope you will find this useful.

Sincerely.
 Reply with quote  
Post Sun Oct 23, 2016 12:06 pm 
 View user's profile Send private message
TMM
ScummVM Porter


Joined: 12 Jan 2006
Posts: 5
 

Hi! I'm the current ScummVM Windows maintainer/releaser (as of 1.9.0, fairly new)


quote:
that's not true. Or at least, it depends.
Windows 64 allows you to run 32 bit code, but it does not come for free. The SysWoW64 includes almost everything, so you are actually running 2 operating systems, one at 32 bit and one at 64 bit and this is also an explanation because it consumes much more memory than the past.
In addition, for those parts not available in native 32 bit code, with my experience I can tell you that the translation layer for stack, memory and calls is not so cheap as you may think.


I did some research into this and while this is true it is only true when comparing 32bit software running on a 32bit system. The overhead you are describing is identical for running a 64bit scummvm on a 64bit system.

Basically, a 32bit binary running on a 32bit Windows will use less memory than that same program compiled for 64bit windows on 64bit windows. However, the 32bit program running on a 64bit windows will use the same, or slightly less ram than the 64bit version.

Having said that, once I get the whole release process for 1.9.1 and onwards sorted out I'm willing to also create 64bit builds for Windows. There is however a non-trivial amount of work involved in making 'upgrades' from a 32bit to a 64bit installation work smoothly for all users.

I don't expect this to happen in the 1.9.x series.
 Reply with quote  
Post Fri Nov 04, 2016 6:29 pm 
 View user's profile Send private message
KuroShiro



Joined: 15 May 2008
Posts: 452
Location: Miyazaki, Japan
 

quote:
Originally posted by TMM

Having said that, once I get the whole release process for 1.9.1 and onwards sorted out I'm willing to also create 64bit builds for Windows. There is however a non-trivial amount of work involved in making 'upgrades' from a 32bit to a 64bit installation work smoothly for all users.

I don't expect this to happen in the 1.9.x series.

Forgive me if I'm being obtuse, but wouldn't getting it to work for all users simply mean making the installer install the required .dll files for all the libraries used in compilation in addition to what it already does? The actual compilation process for a 64-bit .exe in MSYS2 is fairly simple.
 Reply with quote  
Post Fri Nov 04, 2016 9:59 pm 
 View user's profile Send private message
TMM
ScummVM Porter


Joined: 12 Jan 2006
Posts: 5
 


quote:
Forgive me if I'm being obtuse, but wouldn't getting it to work for all users simply mean making the installer install the required .dll files for all the libraries used in compilation in addition to what it already does? The actual compilation process for a 64-bit .exe in MSYS2 is fairly simple.


The old installer places stuff in c:/Program Files (x86)/ScummVM, a native 64bit installer would place them in c:/Program Files/ScummVM. People upgrading from pre 1.5.0 would lose their savegames if we just clean out that old directory post install.

I have to do a lot of tests is what I'm saying.

EDIT: Also; scummvm-tools installs in the same directory, I just haven't figured out what a migration path should look like.
 Reply with quote  
Post Fri Nov 04, 2016 10:02 pm 
 View user's profile Send private message
  Display posts from previous:      
Reply to topic

Forum Jump:
 
Goto page 1, 2  Next


Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Powered by phpBB © 2001, 2006 phpBB Group
Forum design by ScummVM team, icons by raina
curved edge   curved edge