VCMI for macOS


#81

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.


#82

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?


#83

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


#84

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?


#85

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


#86

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


#87

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


#88

Thanks! :slight_smile:


#89

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?


#90

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?


#91

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:


#92

Could you please provide links to those other iso images?


#93

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


#94

Fixed. Sorry for delay.


#95

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


#96

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:


#97

Fixed in master


#98

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?


#99

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.


#100

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)