Hi! I'm encountering an issue while trying to run openage with Age of Empires 2: Definitive Edition. After successfully building the project, I initiated the game launch, but the conversion process fails with a KeyError related to the effect_apply_type during metadata conversion.
I downloaded AoE2DE through the SteamCMD command app_update 813780 validate according to the documentation.
Operating system: macOS 14
System architecture: ARM64 (Apple Silicon M2)
C++ Compiler: AppleClang 16.0.0
Python Version: Python 3.11.5
❯ ./run main
INFO [py] launching openage v0.5.3-460-ga3df3071
INFO [py] compiled by AppleClang 16.0.0.16000026
INFO [py] running in DEVMODE
INFO [py] openage nyan API modpack is up to date
Do you want to convert assets? [Y/n]
> Y
openage requires a local game installation for conversion
but no local installation could be found automatically.
Do you want to download the AoC trial version? [Y/n]
> N
Could not find any installation directory automatically.
Please enter an AOE2 install path manually.
> /Users/Programming/Steam/AoE2
converting from '/Users/Programming/Steam/AoE2'
INFO [py] Looking for compatible games to convert...
INFO [py] Compatible game edition detected:
INFO [py] * Age of Empires 2: Definitive Edition
INFO [py] converting metadata
Traceback (most recent call last):
File "run.py", line 20, in init run
main()
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/__main__.py", line 168, in main
return args.entrypoint(args, cli.error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/main/main.py", line 84, in main
convert_assets(asset_path, args)
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/main.py", line 121, in convert_assets
convert(args)
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/tool/driver.py", line 35, in convert
convert_metadata(args)
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/tool/driver.py", line 72, in convert_metadata
gamespec = get_gamespec(args.srcdir, args.game_version, not args.flag("no_pickle_cache"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/service/read/gamedata.py", line 47, in get_gamespec
gamespec = load_gamespec(empiresdat_file,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/service/read/gamedata.py", line 102, in load_gamespec
_, gamespec = wrapper.read(file_data, 0, game_version, dynamic_load=dynamic_load)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 133, in read
offset, gen_members = self._read_multisubtye(
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 309, in _read_multisubtye
offset, gen_members = new_data.read(raw, offset, game_version, new_data_class)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 133, in read
offset, gen_members = self._read_multisubtye(
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 309, in _read_multisubtye
offset, gen_members = new_data.read(raw, offset, game_version, new_data_class)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 133, in read
offset, gen_members = self._read_multisubtye(
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 309, in _read_multisubtye
offset, gen_members = new_data.read(raw, offset, game_version, new_data_class)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 140, in read
offset, gen_members, stop_reading_members = self._read_primitive(
^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/genie_structure.py", line 513, in _read_primitive
lookup_result = var_type.entry_hook(result)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Programming/GitRepo/openage/.bin/usr-bin-clang++-release-Oauto-sanitize-none/openage/convert/value_object/read/read_members.py", line 314, in entry_hook
raise KeyError("failed to find %s%s in lookup dict %s!" %
KeyError: 'failed to find -55 = -0x37 in lookup dict effect_apply_type!'
Hi! I'm encountering an issue while trying to run openage with Age of Empires 2: Definitive Edition. After successfully building the project, I initiated the game launch, but the conversion process fails with a
KeyError
related to theeffect_apply_type
during metadata conversion.I downloaded AoE2DE through the SteamCMD command
app_update 813780 validate
according to the documentation.Operating system: macOS 14 System architecture: ARM64 (Apple Silicon M2) C++ Compiler: AppleClang 16.0.0 Python Version: Python 3.11.5