VCMI for macOS

Here is the log. I didn’t install Disk 2, could that be my problem?

22:43:33 INFO global [0x7fff7a792180] - Creating console 1
22:43:33 INFO global [0x7fff7a792180] - Initialization: 1
22:43:33 INFO global [0x7fff7a792180] - Data loading: 1
22:43:33 INFO global [0x7fff7a792180] - Mod handler: 0
22:43:33 INFO global [0x7fff7a792180] - Mod filesystems: 86
22:43:33 INFO global [0x7fff7a792180] - Basic initialization: 89
22:43:33 WARN global [0x7fff7a792180] - File CONFIG/SETTINGS is not a valid JSON file!
22:43:33 WARN global [0x7fff7a792180] - At line 1, position 0 error: Unexpected end of file!

22:43:33 INFO global [0x7fff7a792180] - Initialized logging system based on settings successfully.
22:43:33 ERROR global [0x7fff7a792180] - Error: campaign movies was not found!
22:43:33 ERROR global [0x7fff7a792180] - Error: campaign music was not found!
22:43:33 INFO global [0x7fff7a792180] - Loading settings: 91
22:43:33 INFO global [0x7fff7a792180] - VCMI 0.93 (client)
22:43:33 INFO global [0x7fff7a792180] - New screen flags: 0
22:43:33 INFO global [0x7fff7a792180] - Initializing screen: 25
22:43:33 INFO global [0x7fff7a792180] - Initializing video: 0
22:43:33 ERROR global [0x7fff7a792180] - Error: video VIDEO/3DOLOGO was not found
22:43:33 INFO global [0x10f9a5000] - Initializing minors: 0
22:43:33 INFO global [0x10f9a5000] - Initializing sound: 53
22:43:33 INFO global [0x10f9a5000] - Initializing screen and sound handling: 53
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type ADDITIONAL_ATTACK
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type ADDITIONAL_RETALIATION
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type AIR_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type ATTACKS_ALL_ADJACENT
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type BLOCKS_RETALIATION
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type CATAPULT
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type CHANGES_SPELL_COST_FOR_ALLY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type CHANGES_SPELL_COST_FOR_ENEMY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type CHARGE_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type DAEMON_SUMMONING
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type DARKNESS
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type DEATH_STARE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type DEFENSIVE_STANCE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type DIRECT_DAMAGE_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type DOUBLE_DAMAGE_CHANCE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type DRAGON_NATURE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type EARTH_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type ENCHANTED
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type ENCHANTER
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type ENEMY_DEFENCE_REDUCTION
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type FEAR
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type FEARLESS
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type FIRE_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type FIRE_SHIELD
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type FLYING
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type FREE_SHOOTING
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type FULL_HP_REGENERATION
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type HATE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type HEALER
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type HP_REGENERATION
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type JOUSTING
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type KING1
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type KING2
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type KING3
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type LEVEL_SPELL_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type LIFE_DRAIN
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type MAGIC_MIRROR
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type MAGIC_RESISTANCE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type MANA_CHANNELING
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type MANA_DRAIN
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type MIND_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type NON_LIVING
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type NO_DISTANCE_PENALTY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type NO_MELEE_PENALTY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type NO_MORALE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type NO_WALL_PENALTY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type RANDOM_SPELLCASTER
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type REBIRTH
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type RECEPTIVE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type RETURN_AFTER_STRIKE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SECONDARY_SKILL_PREMY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SELF_LUCK
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SELF_MORALE
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SHOOTER
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SPELLCASTER
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SPELL_AFTER_ATTACK
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SPELL_BEFORE_ATTACK
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SPELL_DAMAGE_REDUCTION
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SPELL_IMMUNITY
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SPELL_LIKE_ATTACK
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type SPELL_RESISTANCE_AURA
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type THREE_HEADED_ATTACK
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type TWO_HEX_ATTACK_BREATH
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type UNDEAD
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type UNLIMITED_RETALIATIONS
22:43:33 TRACE bonus [0x10f9a5000] - Loaded bonus type WATER_IMMUNITY
22:43:33 INFO global [0x10f9a5000] - Bonus type handler: 5
22:43:33 ERROR global [0x10f9a5000] - Resource with name DATA/VCDESC and type TEXT wasn’t found.

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)