Compiling ScummVM and the Scumm Engine only
Moderator: ScummVM Team
- Windows TV
- Posts: 62
- Joined: Mon Dec 26, 2011 7:07 pm
- Contact:
Compiling ScummVM and the Scumm Engine only
So my question is simple, how do I compile ScummVM with the Scumm Engine only? I'm compiling it with Visual Studios but it always hangs because it's trying to compile every engine. I just need to build ScummVM with the Scumm engine only. Can anyone help...?
- dreammaster
- ScummVM Developer
- Posts: 559
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA
Re: Compiling ScummVM and the Scumm Engine only
Sure. What I do is to make a copy of the create_msvc.bat in the dists/msvc folder.. say call it 'scumm.bat'. Then open the file for editing, and search for the section that starts with ":stable". A couple of lines below it, replace the create_project line with something like the following:
create_project ..\.. --disable-fluidsynth --msvc --disable-all-engines --enable-engine=scumm,scumm_7_8,he
Then run the batch file
create_project ..\.. --disable-fluidsynth --msvc --disable-all-engines --enable-engine=scumm,scumm_7_8,he
Then run the batch file
- Windows TV
- Posts: 62
- Joined: Mon Dec 26, 2011 7:07 pm
- Contact:
Re: Compiling ScummVM and the Scumm Engine only
Thank you for helping me with that but now I have a new question, how long does the first compile normally take? I should mention I am trying to build ScummVM on an average Windows machine.
- dreammaster
- ScummVM Developer
- Posts: 559
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA
Re: Compiling ScummVM and the Scumm Engine only
It's highly variable. For me, on a few years old laptop running VS2019, I can do a build of a single engine and the core/backend code in about a minute.
- Windows TV
- Posts: 62
- Joined: Mon Dec 26, 2011 7:07 pm
- Contact:
Re: Compiling ScummVM and the Scumm Engine only
Wow, my computer is lame then xD the compile of scumm and scummvm is about 4-5 minutes for me. Thank you for the help in answering the questions!
- icanntspell
- Posts: 95
- Joined: Mon May 18, 2009 12:14 pm
- Location: The Netherlands
- Contact:
Re: Compiling ScummVM and the Scumm Engine only
How did you manage to get past this problem? I got this since I started using VS2019
Error C2338 Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined. (compiling source file ..\..\backends\graphics\opengl\pipelines\pipeline.cpp) scummvm C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h 2482
Error C2338 Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined. (compiling source file ..\..\backends\graphics\opengl\pipelines\pipeline.cpp) scummvm C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h 2482
- dreammaster
- ScummVM Developer
- Posts: 559
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA
Re: Compiling ScummVM and the Scumm Engine only
I'm unfamiliar with the OpenGL code, so I can't really offer any suggestion. Beyond that it works for me on my installation, so it could just be some corruption and/or invalid setup on the computer you're currently using. If possible, you might want to try installing Visual Studio 2019 on another computer and see if it works. Otherwise, you might want to try checking in the IRC/Discord channel if you don't get any further reply here.
- icanntspell
- Posts: 95
- Joined: Mon May 18, 2009 12:14 pm
- Location: The Netherlands
- Contact:
Re: Compiling ScummVM and the Scumm Engine only
I managed to fix this by retargeting the scummvm project against Windows SDK 8.1 (instead of the latest 10.x). Perhaps this info saves other people some time.
- Praetorian
- ScummVM Developer
- Posts: 882
- Joined: Tue May 08, 2007 8:54 am
- Location: Greece
- Contact:
Re: Compiling ScummVM and the Scumm Engine only
Keep in mind that some of the latest commits require to run "create_project" again for Visual Studio local builds.
Re: Compiling ScummVM and the Scumm Engine only
You can resolve this for the latest Windows SDK by updating the SDL2 libs manually.
-
- Posts: 80
- Joined: Fri Oct 19, 2007 5:48 pm
Re: Compiling ScummVM and the Scumm Engine only
Yes it does, you magnificent bastard.icanntspell wrote: ↑Sat Aug 17, 2019 9:01 am I managed to fix this by retargeting the scummvm project against Windows SDK 8.1 (instead of the latest 10.x). Perhaps this info saves other people some time.
More specifically :
- First follow all the instructions before (and from the wiki) to generate the scummVM solution
- Then, in Visual Studio : Right-cick on project (not solution) "scummvm" --> Select "Properties"
- In the properties window, on the "General" tab, change "Windows SDK Version" from "10.0 (latest install version)" (or whatever you have there) to "8.1"
- click OK
- Rebuild project scummvm
After that I got this error about fribidi.h but I ran create_project again, this time with option --disable-fribidi as explained. Because I'm lazy (and ddn't want to make any human mistake) I did so by editing file create_msvc.bat, located part ":stable" (line 65) and changed "create_project ..\.. --disable-fluidsynth --msvc" to "create_project ..\.. --disable-fluidsynth --msvc --disable-fribidi". It goes without saying that then you need to run create_msvc.bat again and select "build only stable engines" as it's the section you just modified.
- Praetorian
- ScummVM Developer
- Posts: 882
- Joined: Tue May 08, 2007 8:54 am
- Location: Greece
- Contact:
Re: Compiling ScummVM and the Scumm Engine only
In Windows 10 x64, I hadn't had any issues building ScummVM (32bit, debug) in the last few months.
I am working with Visual Studio 2019 Community Version, all updates installed for it and Windows 10, and whatever the latest version of SDK 10 is currently.
I am using the instructions from our wiki:
https://wiki.scummvm.org/index.php/Comp ... ual_Studio
However:
- I often re-build create_project and run it again, especially if I get missing files errors
- Typically I will run create_project manually (this is the same as editing the bat file), to only make a solution for a few engines.
- I do use the --disable-fluidsynth since I don't want to deal with compiling that third party lib.
- I use the prebuilt third party libraries provided in that page, with only a few exceptions where I am using more recent library versions (still pre-built). The new libraries that I'm using are:
SDL2-devel-2.0.12-VC, SDL2_net-devel-2.0.1-VC, libfribidi_v1.0.9_msvc16 and (I think) curl-7.69.1_1.
- If you want to build with fribidi support, you have to use a third party lib dependency. There are some extra instructions in this pertinent PR: https://github.com/scummvm/scummvm/pull/2208 especially if you don't want to recompile and run create_project (which is the easier way in my opinion)
I am working with Visual Studio 2019 Community Version, all updates installed for it and Windows 10, and whatever the latest version of SDK 10 is currently.
I am using the instructions from our wiki:
https://wiki.scummvm.org/index.php/Comp ... ual_Studio
However:
- I often re-build create_project and run it again, especially if I get missing files errors
- Typically I will run create_project manually (this is the same as editing the bat file), to only make a solution for a few engines.
- I do use the --disable-fluidsynth since I don't want to deal with compiling that third party lib.
- I use the prebuilt third party libraries provided in that page, with only a few exceptions where I am using more recent library versions (still pre-built). The new libraries that I'm using are:
SDL2-devel-2.0.12-VC, SDL2_net-devel-2.0.1-VC, libfribidi_v1.0.9_msvc16 and (I think) curl-7.69.1_1.
- If you want to build with fribidi support, you have to use a third party lib dependency. There are some extra instructions in this pertinent PR: https://github.com/scummvm/scummvm/pull/2208 especially if you don't want to recompile and run create_project (which is the easier way in my opinion)