Макс wrote:
В 64-битной сборке для винды почему-то используется какая-то левая версия FMOD'а, хотя исходник - архив всех версий FMOD'а от zdoom, и там качаются архивы с одинаковой версией в названии и для 32 бита, и для 64 бита.
Я для тебя выяснил этот момент, а ты об этом здесь не упомянул: оказывается, что эта левая версия берётся прямиком из самого установщика. У 64-разрядной DLL там проставлена версия 4.21.0, а у 32-разрядной - 4.28.7, которая нам и нужна. Однако так случилось, что у нас есть установщик и от версии 4.28.6, непосредственно ей предшествовавшей. И вот там у
fmodex64.dll стоит тот же номер версии 4.21.0, однако сам файл библиотеки отличается. Скорее всего, просто была допущена некая ошибка с
VERSIONINFO, оставшаяся незамеченной на протяжении нескольких выпусков подряд.
Настоящая проблема здесь в другом. Во-первых, в поставку 64-разрядной сборки кладётся fmodex64.dll, тогда как ожидается по-прежнему
fmodex.dll игрой и редактором. Во-вторых, даже если переименовать файл вручную, то звука всё равно нет. И то, и другое - проблема кривых заголовков для FMOD Ex у нас сейчас. Нужно переписать их с нуля и заодно перейти на 4.44.64, последнюю версию библиотеки. Пока же, наверное, 64-разрядную сборку игры стоит собирать с OpenAL.
Макс wrote:
Потенциально, если захочется собирать под Андроиды еще старее, нужна будет поддержка старых версий SDL2. Сейчас работает только SDL >= 2.0.18.
Это в том числе из-за
SDL_WaitEventTimeout() и
SDL_GetTicks64(), которые я к нам притянул недавно:
71010454,
e376bbc2. К слову, у нас там давно уже есть определение
SDL2_NODPI, которое в ReadMe обозначено как "Build for old libSDL2". Думаю, надо это будет как-то обобщить, потому что сейчас даже даже не упомянута, какая именно версия подразумевается в качестве границы "old". Блин, не хочется писать свои заголовки для SDL и SDL2, но видимо придётся.
Ещё ты мне писал, что "есть такая магическая штука как патчинг опкодов в байткоде jvm", "чем и занимаются инструменты от гугла и имеют поддержку вплоть до андроид 1.0". Я ничего про это не слышал, поэтому было бы хорошо, если бы ты (или кто-нибудь) пояснил, о чём речь шла, так как в идеале хочется работать на всей линейке ведёр в принципе.
Jabberwock wrote:
Этот FMOD мы специально подбирали несколько лет назад, помнится. Минимальный по размеру и самый надежный по работе.
Сейчас уже собирается с другим, читай выше. И ведь я недаром просил у тебя историю переписок из IRC, потому что мне нужно было уточнить в том числе и этот момент.
Какие ещё вопросы у нас пока остались на текущий момент:
1. Надо таскать с собой в сборках лицензии для тех библиотек, которые того требуют. Где их держать - вопрос.
При этом нужно учитывать условную компиляцию, чтобы, скажем, лицензия от FMOD Ex не клалась бы в сборки с OpenAL, и наоборот.
2. По-прежнему не решён вопрос со сборкой для платформ от Apple с PowerPC.
3. Как показало тестирование, на Android игра подтормаживает при воспроизведении MIDI-музыки. Я предполагаю, что дело тут в динамической подгрузке семплов с накопителя. Надо проверить, так ли это, и если да, то есть ли способы её отрубить. С другой стороны, тупит что при OpenAL (fluidsynth), что в случае SDL_mixer (timidity). Также
Макс пробовал использовать наборы семплов попроще, но это тоже не помогло.
4. В описании ко сборкам название месяца пишется на русском вместо английского.