VCMI for macOS

Some files were not found. Not sure what’s causing this but these files must be present in H3 data.

There should be 2 CD’s:
Game CD - technically optional, contains campaign-specific data (which is also missing according to log)
Install CD - one that MUST be installed in order for VCMI to run.

Perhaps installation script failed or data was installed incorrectly?

Hi, first of all sorry for such late response.

Of course if you have 2 CD edition you must select both CD images in vcmibuilder.app

Sorry for such a late response.

I wasn’t able to create a disk image of the second CD on my Mac. Is this due to some type of copy protection?

0.94 dmg for OS X: dl.dropboxusercontent.com/u/177 … i-0.94.dmg
Launcher is missing for the moment. Working on this.

I have uploaded it and updated the release message. Thanks!

0.95 dmg for OS X: dl.dropboxusercontent.com/u/177 … i-0.95.dmg
Sorry, still without launcher

Thanks! :slight_smile:

Hello there.

I wanted to run VCMI 0.95 on my OSX Mavericks, but during the installation process it shows a message: “Failed to extract game data using unshield”. What could cause this problem? Is it invalid ISO file or something?

Hi, sorry for late response. Yes, there are probably some problems with the ISO. Could you upload your ISO somewhere so I can test it?

Thanks for your response.

Well, I checked the installer with two other ISO files downloaded from different Internet source and both failed, so I just gave up for now :stuck_out_tongue:

Could you please provide links to those other iso images?

By the way OS X prebuilt libraries link seems to be broken: download.vcmi.eu/xcode-pack.zip

Fixed. Sorry for delay.

stopiccot, same problem with iso’s from dl.rutracker.org/forum/dl.php?t=4435743
rutracker.org/forum/viewtopic.php?t=4435743

It turns out that different Heroes 3 ISO files can have different internal file layout. I’ll apply fix for your ISO but it will be released only with 0.96 version. For now I suggest to use installer from gog.com. It should be working :slight_smile:

Fixed in master

Hey, sorry to bother guys,

when I want to compile the vcmi in my air following the build note:

and get this error, sorry I am not very familiar with C++ and make build script, but I start to learn it. :stuck_out_tongue:

it seems missing sparkle path, where should i put the path?

Hi. Can’t tell OSX specifics but normally you need to either:

a) Pass paths via call to cmake, like this:
cmake -DSPARKLE_FRAMEWORK=“path/to/sparkle” -DSPARKLE_INCLUDE_DIR=“path/to/include”
(cmake remembers all variables so you only need to set them once)

b) Set variables via cmake-gui tool - start tool, search for sparkle paths, set them to correct values. Don’t know if this tool is available on OSX or this is something Linux-specific.

Hi!

On OS X sdl2 doesn’t link for me, although I have sdl2 installed with homebrew. Any help would be appreciated.

cmake:

laptop% cmake -G Xcode .. -DENABLE_LAUNCHER=OFF
-- The C compiler identification is AppleClang 6.0.0.6000051
-- The CXX compiler identification is AppleClang 6.0.0.6000051
CMake Warning at /usr/local/Cellar/cmake/3.0.2/share/cmake/Modules/Platform/Darwin.cmake:179 (message):
  Ignoring CMAKE_OSX_SYSROOT value:

   /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk

  because the directory does not exist.
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.0.2/share/cmake/Modules/CMakeSystemSpecificInformation.cmake:36 (include)
  CMakeLists.txt:1 (project)


-- Check for working C compiler using: Xcode
-- Check for working C compiler using: Xcode -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Xcode
-- Check for working CXX compiler using: Xcode -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for shm_open in rt
-- Looking for shm_open in rt - not found
-- Looking for dlopen in dl
-- Looking for dlopen in dl - found
-- Boost version: 1.51.0
-- Found the following Boost libraries:
--   filesystem
--   locale
--   program_options
--   system
--   thread
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.5")
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.28")
-- checking for module 'libavcodec'
--   found libavcodec, version 56.1.100
-- checking for module 'libavformat'
--   found libavformat, version 56.4.101
-- checking for module 'libavdevice'
--   found libavdevice, version 56.0.100
-- checking for module 'libavutil'
--   found libavutil, version 54.7.100
-- checking for module 'libswscale'
--   found libswscale, version 3.0.100
-- checking for module 'libpostproc'
--   found libpostproc, version 53.0.100
-- Found FFmpeg: /Volumes/kuglee/vcmi/lib/libavcodec.a;/Volumes/kuglee/vcmi/lib/libavformat.a;/Volumes/kuglee/vcmi/lib/libavutil.a;/Volumes/kuglee/vcmi/lib/libswscale.a;-framework VideoDecodeAcceleration -framework CoreVideo -lbz2
-- checking for module 'minizip'
--   found minizip, version 1.2.8
-- Found MINIZIP: /usr/local/Cellar/minizip/1.1/lib/libminizip.dylib (found version "1.2.8")
-- checking for module 'sdl2'
--   found sdl2, version 2.0.3
-- Found SDL2: /usr/local/lib/libSDL2.dylib;-framework Cocoa (found version "2.0.3")
-- checking for module 'SDL2_image'
--   found SDL2_image, version 2.0.0
-- Found SDL2_image: /usr/local/lib/libSDL2_image.dylib (found version "2.0.0")
-- checking for module 'SDL2_mixer'
--   found SDL2_mixer, version 2.0.0
-- Found SDL2_mixer: /usr/local/lib/libSDL2_mixer.dylib
-- checking for module 'SDL2_ttf'
--   found SDL2_ttf, version 2.0.12
-- Found SDL2_ttf: /usr/local/lib/libSDL2_ttf.dylib (found version "2.0.12")
-- cotire 1.6.6 loaded.
-- CXX target vcmi cotired without unity build.
-- C CXX target vcmiclient cotired without unity build and precompiled header. Exclusion of source files not supported for generator Xcode.
-- CXX target vcmiserver cotired without unity build.
-- CXX target BattleAI cotired without unity build.
-- CXX target StupidAI cotired without unity build.
-- CXX target VCAI cotired without unity build.
-- Configuring done
CMake Warning (dev) at client/CMakeLists.txt:79 (add_dependencies):
  Policy CMP0046 is not set: Error on non-existent dependency in
  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "minizip" of target "vcmiclient" does not exist.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   BattleAI
   EmptyAI
   StupidAI
   VCAI
   vcmi

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /Volumes/kuglee/vcmi/vcmi/build

error:

Undefined symbols for architecture x86_64:
  "_SDL_CreateYUVOverlay", referenced from:
      CVideoPlayer::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, bool, bool) in CVideoHandler.o
  "_SDL_DisplayYUVOverlay", referenced from:
      CVideoPlayer::playVideo(int, int, SDL_Surface*, bool) in CVideoHandler.o
  "_SDL_EnableKeyRepeat", referenced from:
      setScreenRes(int, int, int, bool, bool) in CMT.o
  "_SDL_EnableUNICODE", referenced from:
      setScreenRes(int, int, int, bool, bool) in CMT.o
  "_SDL_FreeYUVOverlay", referenced from:
      CVideoPlayer::close() in CVideoHandler.o
  "_SDL_GetKeyState", referenced from:
      isShiftKeyDown() in CPlayerInterface.o
      isAltKeyDown() in CPlayerInterface.o
      isCtrlKeyDown() in CPlayerInterface.o
      isCtrlKeyDown() in CAdvmapInterface.o
  "_SDL_LockYUVOverlay", referenced from:
      CVideoPlayer::nextFrame() in CVideoHandler.o
  "_SDL_SetAlpha", referenced from:
      CPicture::setAlpha(int) in Images.o
  "_SDL_SetColors", referenced from:
      Graphics::blueToPlayersAdv(SDL_Surface*, PlayerColor) in Graphics.o
      SDLImageLoader::init(Point, Point, Point, SDL_Color*) in CAnimation.o
      CSDL_Ext::setPlayerColor(SDL_Surface*, PlayerColor) in SDL_Extensions.o
      shiftColors(SDL_Surface*, int, int) in mapHandler.o
      CBuildingRect::show(SDL_Surface*) in CCastleInterface.o
  "_SDL_SetVideoMode", referenced from:
      setScreenRes(int, int, int, bool, bool) in CMT.o
      fullScreenChanged() in CMT.o
  "_SDL_UnlockYUVOverlay", referenced from:
      CVideoPlayer::nextFrame() in CVideoHandler.o
  "_SDL_UpdateRect", referenced from:
      CVideoPlayer::show(int, int, SDL_Surface*, bool) in CVideoHandler.o
      CSDL_Ext::update(SDL_Surface*) in SDL_Extensions.o
  "_SDL_VideoModeOK", referenced from:
      setScreenRes(int, int, int, bool, bool) in CMT.o
      fullScreenChanged() in CMT.o
  "_SDL_WM_SetCaption", referenced from:
      setScreenRes(int, int, int, bool, bool) in CMT.o
  "_SDL_WarpMouse", referenced from:
      CCursorHandler::centerCursor() in CCursorHandler.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I’ve figured it out, sdl1 was provided in the xcode-pack. I’ve replaced the frameworks with sdl2. It builds now. (I had to copy libminizip.dylib to the bin directory and the WoG files from 0.95 OS X build because xcode-pack doesn’t have them.)
The game loads, everything is fine until I start a game, when vcmi crashes.

VCMI_Server_log.txt
server_log.txt
VCMI_Client_log.txt