Содержание
- Mount and blade 2 bannerlord mono exception occurred
- Mods using «Harmony» crash on startup.
- #1
- (Guide) The application has faced a problem
- SyncWolf
- FAQ по ошибкам Mount & Blade II: Bannerlord: не запускается, черный экран, тормоза, вылеты, error, DLL
- Необходимое ПО для Mount & Blade II: Bannerlord
- Низкий FPS, Mount & Blade II: Bannerlord тормозит, фризит или лагает
- Mount & Blade II: Bannerlord вылетает в случайный момент или при запуске
- Отсутствует DLL-файл или ошибка DLL
- Распространённые сетевые ошибки
- Не вижу друзей / друзья в Mount & Blade II: Bannerlord не отображаются
- Создателю сервера нужно открыть порты в брандмауэре
- Ошибка DirectX в Mount & Blade II: Bannerlord
- Ошибка 0xc000007b в Mount & Blade II: Bannerlord
- Ошибка 0xc0000142 / 0xe06d7363 / 0xc0000906
- Отключите антивирусную программу
- Отключите «Защитник Windows»
- Проверьте путь на наличие кириллицы
- Воспользуйтесь чистой загрузкой
- Проверьте целостность файлов
- Измените значение в реестре
- Запустите восстановление системы
- Другие способы
- Ошибка «Недостаточно памяти»
- Звук в Mount & Blade II: Bannerlord отсутствует или пропадает в заставках
- Появляется чёрный экран в Mount & Blade II: Bannerlord
- Появляется цветной экран
- Изображение в Mount & Blade II: Bannerlord мерцает
- Не работает мышь, клавиатура или контроллер
I’m not sure if this is strictly a proton issue, and it seems unlikely that a lot of people are running Native.exe amongst windows users — so given that:
The new save system seems to have broken saving in Bannerlord.Native.exe.
It works fine, still, in Bannerlord.exe using the net framework.
In the mono framework it will simply give a popup ingame saying unable to create save file.
A remnant ‘whatever_name.tmp’ «save» is created, it cannot be loaded.
Can someone on windows confirm/test whether this is solely an issue happening for wine/proton users or not? (run Bannerlord.Native.exe, in 1.4.2 Beta, make a new campaign/character, try to save)
Having the same issue using windows. Can’t save since the patch, even auto-saves cause the ‘Couldn’t create Save file’ massage to pop up.
? Or are you getting this launching it regularly (via launcher, which’ll invoke Bannerlord.exe) (just to clarify)
And yep any save including the autosaves fail.
Bannerlord.exe works fine, though (but in this case it’s particularly annoying since the current workaround for extremely long save times on linux via proton included using Bannerlord.Native for the full benefit).
As of current hotfix/patch (date of this post), this is still an issue, but I’d still like to get some verification/testing from more people?
Источник
Mods using «Harmony» crash on startup.
#1
It seems for a minority of users including myself, mods that contain 0Harmony.dll cause the game to crash before the main menu appears. Every mod that doesn’t use Harmony works for me. There is no option to «unblock» dlls, running admin doesn’t help and running these mods without other mods does not work. It’s not an issue with missing lines in an xml file.
I suspect there is a hardware compatibility issue with Harmony itself, I wouldn’t be surprised if it was a CPU with more than the usual amount of Cores causing the issue.
Are there any developers more intimately familiar with Harmony? So far no one including Harmony in their mods has been able to to troubleshoot the issue.
EDIT: Possible Fix that worked for me. Put 0Harmony.dll into your main bannerlordbinwin64_shipping_client folder and delete it from the mod folder. Thanks to brandonm37211 who created the Tournament XP Enabler.
Here are my system Specs:
Edited by LordCorDox, 05 April 2020 — 11:18 pm.
Источник
(Guide) The application has faced a problem
SyncWolf
Veteran
You’re trying to update or launch Bannerlord Online and you’ve received this error message? Then read this post on how to resolve this.
Error: The application faced a problem.
Please note that crashes can originate from a number of different sources. They might be related to the base game or modification you have installed or can be related to your hardware.
Test if you can run native Single Player and Multiplayer without crashes.
Being able to isolate whether the issue only occurs in Bannerlord Online, or also in the base game, can help point in the right direction.
Making sure that your OS, GPU drivers and Bannerlord are up to date.
- More information about how to update your Windows OS can be found here.
- If you are a Windows 7 user please make sure that you have installed the Platform Update for Windows 7.
- Please make sure that your game is up-to-date. You can follow the latest patch version in here. Steam will automatically download the latest version. If you are not in the latest version you can force the update by prioritizing Bannerlord updates on Steam and restarting your Steam clients.
- Please make sure that your GPU drivers are up to date. NVIDIA — AMD — Intel
Installing Missing Necessary Dependencies
These dependencies are installed through Steam with the first time installation. But there are some players that these dependencies were missing even though they launch the game from Steam. To install missing necessary dependencies try downloading and running the following executables:
- Visual C++ Redistributable for Visual Studio 2015
- .net Core
- .net FrameWork
- Visual C++ Redistributable for Visual Studio 2017
Verify your game files through Steam of the Epic Store.
- Epic Store: Open the Library and click on the 3 dots below Bannerlord. Then choose «Verify».
- Steam: Right-click on Bannerlord and choose «Properties». Go to «Local Files» and choose «Verify Integrity of game files. «
Re-install Bannerlord Online
- Select Start.
- Then select Settings
- Select Apps
- Select Apps & features.
- Select Bannerlord Online, then select Uninstall.
- Verify all files are gone in both the folder in which you’ve had the launcher located and the Modules folder in the Bannerlord installation.
- Download and install Bannerlord Online from this website.
If your game is still crashing after these steps, you can try deleting the folders below:
- Mount and Blade II Bannerlord folder located in the Documents folder (C:UsersusernameDocumentsMount and Blade II Bannerlord)
- Mount and Blade II Bannerlord folder located in ProgramData folder. (C:ProgramDataMount and Blade II Bannerlord) (Please note that, you’ll need to allow Windows to display hidden folders and files to see the ProgramData folder and its contents.)
Please back up these folders before deleting. The game will create these files again when launching again. If your problem still occurs at this stage we suggest doing a clean install.
Clean Install
The clean install is removing every single game-related file from your computer and installing the game again. Why do you need to remove the game while you just want to remove the modifications? Unfortunately, some of the modifications do not just add a new modules folder but also change or adds contents to the existent modules folder. Without a reinstall, we can’t be sure those files are unchanged.
To perform a Clean Install, Uninstall the game. You can do that by right-clicking the game on Steam Library and selecting Delete Local Content. Delete all folders related to the game that remains after the uninstallation. The folders that might have files inside:
Steam: C:Program Files (x86)SteamsteamappscommonMount & Blade II Bannerlord
Epic: C:Program FilesEpic GamesMount & Blade II Bannerlord
C:UsersUSERNAMEDocumentsMount and Blade II Bannerlord
C:ProgramDataMount and Blade II Bannerlord
Note: You’ll need to allow Windows to display hidden folders and files to see the ProgramData folder and its contents.
Источник
Иногда при запуске Mount & Blade II: Bannerlord появляются ошибки. Неприятно, но установленная вами игра может не запускаться, вылетая, зависая, показывая чёрный экран и выдавая ошибки в окнах. Поэтому возникают вполне логичные вопросы: «Что делать?», «Из-за чего это происходит?» и «Как решить проблему?». Мы постарались собрать всю необходимую информацию с универсальными инструкциями, советами, различными программами и библиотеками, которые призваны помочь решить наиболее распространённые ошибки, связанные с Mount & Blade II: Bannerlord и другими играми на ПК.
Мы настоятельно рекомендуем ознакомиться со ссылками на различные полезные программы. Зачем? Огромное количество ошибок и проблем в Mount & Blade II: Bannerlord связаны с не установленными/не обновлёнными драйверами и с отсутствием необходимых библиотек.
Современные игры крайне ресурсозатратные, поэтому, даже если вы обладаете современным компьютером, всё-таки лучше отключить лишние/ненужные фоновые процессы (чтобы повысить мощность процессора) и воспользоваться нижеописанным методами, которые помогут избавиться от лагов и тормозов.
- Запустите диспетчер задач и в процессах найдите строку с названием игры (Mount & Blade II: Bannerlord). Кликайте ПКМ по ней и в меню выбирайте «Приоритеты» , после чего установите значение «Высокое» . Теперь остаётся лишь перезапустить игру.
Уберите всё лишнее из автозагрузки. Для этого все в том же диспетчере задач нужно перейти во вкладку «Автозагрузка» , где нужно отключить лишние процессы при запуске системы. Незнакомые приложения лучше не трогать, если не знаете, за что они отвечают, иначе рискуете испортить запуск системы.
Следует удалить временные папки, ненужные файлы и кэш. На просторах интернета можно найти кучу самых разных программ, которые помогают это сделать. Мы рекомендуем воспользоваться для этого программой BleachBit или CCleaner .
Проведите дефрагментацию или оптимизацию жёсткого диска. Для этого перейти в «Свойства жёсткого диска» вкладка «Сервис» «Дефрагментация» или «Оптимизация» . Кроме того, там же можно провести проверку/очистку диска, что в некоторых случаях помогает.
Лучшие видеокарты для комфортной игры в 1080p в 2022-2023
Ниже приведено несколько простых способов решения проблемы, но нужно понимать, что вылеты могут быть связаны как с ошибками игры, так и с ошибками, связанными с чем-то определённым на компьютере. Поэтому некоторые случаи вылетов индивидуальны, а значит, если ни одно решение проблемы не помогло, следует написать об этом в комментариях и, возможно, мы поможем разобраться с проблемой.
- Первым делом попробуйте наиболее простой вариант – перезапустите Mount & Blade II: Bannerlord, но уже с правами администратора.
Обязательно следует проверить, не возникает ли конфликтов у Mount & Blade II: Bannerlord с другими приложениями на компьютере. Например, многие игроки часто ругаются на утилиту под названием MSI AfterBurner , поэтому, если пользуетесь такой или любой другой похожей, отключайте и пробуйте запустить игру повторно.
Как увеличить объём памяти видеокарты? Запускаем любые игры
Отсутствует DLL-файл или ошибка DLL
Для начала следует объяснить, как вообще возникают ошибки, связанные с DLL-файлами: во время запуска Mount & Blade II: Bannerlord обращается к определённым DLL-файлам, и если игре не удаётся их отыскать, тогда она моментально вылетает с ошибкой. Причём ошибки могут быть самыми разными, в зависимости от потерянного файла, но любая из них будет иметь приставку «DLL» .
Для решения проблемы необходимо отыскать и вернуть в папку пропавшую DLL-библиотеку. И проще всего это сделать, используя специально созданную для таких случаев программу DLL-fixer – она отсканирует вашу систему и поможет отыскать недостающую библиотеку. Конечно, так можно решить далеко не любую DLL-ошибку, поэтому ниже мы предлагаем ознакомиться с более конкретными случаями.
Ошибка d3dx9_43.dll, xinput1_2.dll, x3daudio1_7.dll, xrsound.dll и др.
Все ошибки, в названии которых можно увидеть «d3dx» , «xinput» , «dxgi» , «d3dcompiler» и «x3daudio» лечатся одним и тем же способом – воспользуйтесь веб-установщиком исполняемых библиотек DirectX .
Ошибка MSVCR120.dll, VCRUNTIME140.dll, runtime-x32.dll и др.
Ошибки с названием «MSVCR» или «RUNTIME» лечатся установкой библиотек Microsoft Visual C++ (узнать, какая именно библиотека нужна можно в системных требованиях).
Избавляемся от ошибки MSVCR140.dll / msvcr120.dll / MSVCR110.dll и других DLL раз и навсегда
Распространённые сетевые ошибки
Неприятное недоразумение, а в некоторых случаях даже баг или ошибка (в таких случаях ни один способ ниже не поможет, поскольку проблема связана с серверами). Любопытно, что с подобным сталкиваются многие игроки, причём неважно, в каком лаунчере приходится играть. Мы не просто так отметили, что это «недоразумение», поскольку, как правило, проблема решается простыми нижеописанными способами:
- Убедитесь в том, что вы вместе с друзьями собираетесь играть в одном игровом регионе, в лаунчере установлен одинаковый регион загрузки.
Если вышеописанный способ не помог, тогда самое время очистить кэш и запустить проверку целостности файлов.
Самый радикальный способ решения проблемы – необходимо полностью переустановить лаунчер. При этом в обязательном порядке удалите все файлы, связанные с лаунчером, чтобы ничего не осталось на компьютере.
Создателю сервера нужно открыть порты в брандмауэре
Многие проблемы в сетевых играх связаны как раз с тем, что порты закрыты. Нет ни одной живой души, друг не видит игру (или наоборот) и возникают проблемы с соединением? Самое время открыть порты в брандмауэре, но перед этим следует понимать как «это» работает. Дело в том, что программы и компьютерные игры, использующие интернет, для работы требуют не только беспроблемный доступ к сети, но и вдобавок открытые порты. Это особенно важно, если вы хотите поиграть в какую-нибудь сетевую игру.
Часто порты на компьютере закрыты, поэтому их следует открыть. Кроме того, перед настройкой нужно узнать номера портов, а для этого для начала потребуется узнать IP-адрес роутера.
Закрытые порты, или что делать, если игр не видно/не подключается?
- Открываете окошко с командной строкой (открывается командой «cmd» в Пуске).
- Прописываете команду «ipconfig» (без кавычек).
- IP-адрес отобразится в строчке «Основной шлюз» .
- Открываете командную строку с помощью команды «cmd» в Пуске.
- Вновь прописываете команду «ipconfig » без кавычек.
- Запускаете команду «netstat -а» , после чего отобразится полный список с номерами портов.
- Обязательно следует убедиться в том, что вы обладаете правами администратора Windows.
Необходимо перейти в настройки брандмауэра: «Пуск» «Панель управления» «Брандмауэр» . Также можно воспользоваться сочетанием клавиш «Win+R» , после чего в окошке ввести команду «firewall.cpl» (этот способ лучше тем, что актуален для любой версии ОС Windows, так что если нет кнопочки «Пуск» , используйте его).
Переходите во вкладку «Дополнительные параметры» В колонке слева выбираете «Правила для подходящих подключений» В колонке справа выбираете «Создать правило» .
В открывшемся окне с правила следует выбрать то, где написано «Для порта» , жмёте «Далее» .
В следующем окне необходимо определиться с протоколом: 1 – «TCP» , 2 – «UPD» . В поле ниже выбирайте пункт «Определённые локальные порты» и вписываете свои порты. Если вдруг портов будет несколько, тогда необходимо перечислить их либо используя запятую, либо указывая диапазон этих портов, используя тире. Жмёте «Далее» .
Ошибки, связанные с DirectX, могу возникать конкретно при запуске Mount & Blade II: Bannerlord. Не удивляйтесь, если одна игра работает адекватно, а другая выдаёт ошибку. Подобных ошибок, как правило, довольно много, поэтому мы собрали наиболее распространённые среди пользователей. Так что если у вас вдруг появилось сообщение «DirectX Runtime Error» , «DXGI_ERROR_DEVICE_RESET» , «DXGI_ERROR_DEVICE_HUNG» или же «DXGI_ERROR_DEVICE_REMOVED» , воспользуйтесь ниже описанными инструкциями по устранению данных ошибок.
- Первым делом необходимо установить «чистую» версию драйвера вашей видеокарты (то есть не стоит сразу спешить устанавливать тот же GeForce Experience, ничего лишнего от AMD и аудио).
При наличии второго монитора попробуйте отключить его, а также отключите G-Sync и любые другие виды дополнительных/вспомогательных устройств.
Воспользуйтесь средством проверки системных файлов для восстановления повреждённых или отсутствующих системных файлов.
В случае если используете видеокарту от Nvidia, тогда попробуйте включить «Режим отладки» в панели управления видеокартой.
Часто причиной ошибки служит перегретая видеокарта, поэтому для проверки её работоспособности рекомендуем воспользоваться программой FurMark . Если это оказалось действительно так, тогда следует понизить частоту видеокарты.
В худшем случае ошибка 0xc000007b или «This application was unable to start correctly» связана с повреждёнными системными файлами ОС, а в лучшем – с драйверами видеокарт от Nvidia.
Обычные способы решения проблемы:
- Самый очевидный и наиболее простой способ разобраться с ошибкой – переустановить драйверы для видеокарты, а после запустить игру от имени администратора.
Далее попробуйте обновить или установить .Net Framework, DirectX и Visual C++.
Как вариант, воспользуйтесь командной строкой («Пуск» «Выполнить»), где нужно прописать команду «sfc /scannow» (система просканирует всё и по возможности попытается заменить повреждённые файлы, если существуют кэшированные копии).
Второй способ – бесплатная программа Dependency Walker 64bit:
- После установки Dependency Walker 64bit , запускайте утилиту и переходите по следующему адресу: «View» «Full Patch» «.exe-файл проблемной игры» (в некоторых случаях после это появляется окно с ошибками, но на него не стоит обращать внимания, просто закройте окно). Переключитесь на раздел «Module» , крутите до конца ошибки, смотрите на значения в столбиках.
Колонка CPU включает в себя все DLL-библиотеки, все они должны быть 64-битные для видеоигры. Поэтому если заметили DLL-файл с x86 архитектурой в красном столбике колонки CPU, тогда это значит, что именно из-за этого файла возникает ошибка 0xc000007b.
Ошибка 0xc0000142 / 0xe06d7363 / 0xc0000906
Эти ошибки относятся не только к одним из наиболее часто встречаемых проблем, но и к наиболее сложным в процессе исправления. Потому что никогда сразу непонятно, почему они появляются. С другой стороны, известно, что подобное происходит только в двух случаях: 1 – в процессе запуска какой-нибудь программы или игры, 2 – буквально сразу после того, как удалось войти в систему.
Причём в первом случае чаще всего это касается недавно установленного приложения, поскольку ни одна из этих ошибок никогда сама по себе не появляется. В любом случае существует несколько способов, которые помогают избавиться от них. Рекомендуем внимательно ознакомиться с каждым.
Отключите антивирусную программу
Ни для кого не секрет, что часто всему виной является антивирус. Только вот в случае с перечисленными ошибками лучше программу не просто отключить, а временно удалить. После чего попробовать запустить приложение. Однако если это не поможет, тогда сделайте следующее:
- Полностью удаляете приложение, чтобы не осталось никаких папок и остаточных файлов.
Отключаете или лучше удаляете в системе антивирусную программу.
Отключите «Защитник Windows»
Помимо антивирусной программы, также следует попробовать отключить «Защитник Windows». Поскольку он тоже запросто может быть причиной появления этих ошибок. Для этого нужно сделать следующее:
- Открыть «Центр безопасности Защитника Windows» выбрать настройки нажать на раздел «Защита от вирусов и угроз».
После нужно нажать на «Управление настройки» в открывшемся разделе спуститься до пункта «Параметры защиты от вирусов и других угроз».
В новом окне отключаете «Защиту в режиме реального времени» и следом «Облачную защиту» чуть позже система вновь включить защитник, но у вас будет время проверить игру на наличие ошибки.
Проверьте путь на наличие кириллицы
Обязательно проверьте, что путь к приложению не содержал наличие кириллицы. Причём стоит отметить, что наличие в адресе «Пользователи» никак не влияет на это. Так что если после «Пользователи» идёт кириллица, тогда придётся создавать нового локального пользователя, у которого имя будет иметь латинские буквы. В таком случае также, возможно, придётся переустановить и само приложение на новом пользователе.
Воспользуйтесь чистой загрузкой
Решить проблему в таком случае можно чистой загрузкой. Как правило, это помогает в тех случаях, когда ошибка появляется при запуске Windows 10. Поскольку причина практически всегда связана с какой-то определённой программой или службой, что находятся в автозагрузках.
Чтобы понять, какая именно программа вызывает проблемы, необходимо во время появления сообщения об ошибке посмотреть на заголовок – там всегда указан exe-файл. Именно из-за него появляется ошибка. Поэтому файл следует отключить в автозагрузке Windows. Сделать это можно следующим наиболее простым способом:
- Открываете в Windows 10 окно «Параметры», используя меню
или сочетание клавиш
Далее открываете раздел под названием «Приложения» переключаетесь на вкладку «Автозагрузка», где необходимо проблемный exe-файл и отключить его.
Проверьте целостность файлов
Вполне возможно, ошибка возникает из-за того что была повреждена целостность системных файлов. И для их проверки у Windows 10 существа два инструмента – DISM.exe с командой Repair-WindowsImage для PowerShell и SFC.exe. Мы рекомендуем воспользоваться последним, поскольку он наиболее привычный и простой. А осуществить проверку можно следующим образом:
- Откройте «Командную строку» от имени администратора (для этого в поиске просто введите «Командная строка).
И как только откроется соответствующее, окно введите команду sfc /scannow после чего нажмите
все найденные ошибки будут автоматически исправлены.
Измените значение в реестре
Реестр в операционной системе Windows 10 – это большая база данных. И именно эти данные определяют свойства и поведение системы. Поэтому редактирование в нём иногда помогает избавиться от ошибок. Только вот без должного опыта или надёжной инструкции лезть туда самостоятельно крайне не рекомендуется.
Поэтому предлагаем воспользоваться нижеописанной инструкцией. Только перед тем, как начнёте что-то менять, убедитесь в наличие нужного раздела. Сделать это можно следующим образом:
в окне «Выполнить» введите команду regedit нажмите
после чего в окне «Редактор реестра» отыщите раздел, представленный ниже.
И если он присутствует, тогда необходимо следом отыскать параметр LoadAppinit_DLLs – далее в нём нужно изменить значение опции с 1 на 0 после необходимо применить настройки и перезагрузить систему.
Запустите восстановление системы
Это касается тех случаев, когда игра работала адекватно, но в определённый момент начала неожиданно появляться ошибка. Хотя игра не подвергалась никаким посторонним действиям. К примеру, не устанавливались моды, патчи и многое другое. В общем, тогда можно запустить процесс восстановления системы.
Другие способы
- В обязательном порядке попробуйте вручную установить драйверы для графического процессора. Причём это касается не только интегрированной видеокарты, но и дискретной.
Проверьте наличие всех актуальных распространяемых пакетов «Visual C++», поскольку это программное обеспечение влияет на многие процессы.
Ошибка «Недостаточно памяти»
Возникает ошибка, связанная с недостатком памяти, практически по десятку причин. Конечно, наиболее распространённые – это либо нехватка оперативной памяти «железа», либо маленький размер файла подкачки. В последнем случае, даже если вы ничего настраивали, всё запросто мог испортить сторонний софт или банальное отключение файла подкачки.
- Необходимо попробовать увеличить файл подкачки ( «Пуск» «Параметры системы» в строке наверху вводите «Производительность» выбирайте «Настройку представления и производительности системы» «Дополнительно» «Изменить» убираете галочку с функции «Автоматически выбирать…» выбираете размер ).
Как исправить ошибку «Память не может быть read written»
Чаще всего проблема связана с высоким звуковым разрешением в параметрах Windows, а именно – с частотой разрядности и дискретизации. Поэтому избавиться от проблемы можно лишь одним способом – понизить это разрешение.
Проблему, которая связана с отсутствием звука в заставках, решить первым способом не получится, поэтому сделайте следующее:
- Вновь в трее ПКМ по значку динамика;
- В меню отыщите функцию под названием «Пространственный звук» , чтобы отключить;
- Остаётся лишь перезапустить Mount & Blade II: Bannerlord и проверить результат.
И главное, не забывайте определить, где именно отсутствует звук – везде на компьютере или только в игре. Существуют и другие маловероятные, но вполне возможные причины отсутствия звука: звуковая карта слишком старая, поэтому не поддерживает DirectX; неправильные настройки; неправильно установленные драйверы для звуковой карты или какая-нибудь специфическая ошибка в операционной системе. В таких случаях обязательно пишите в комментариях, а мы постараемся помочь исправить ошибки!
Появляется чёрный экран в Mount & Blade II: Bannerlord
Появление чёрного экрана часто связано с конфликтом видеодрайверов и ПО. И реже всего с определёнными файлами Mount & Blade II: Bannerlord. Впрочем, существует довольно много других причин, связанных с появлением «чёрного экрана смерти».
Первым делом при появлении проблемы следует обновить видеодрайвер. Многие пренебрегают этим совсем, но мы настоятельно рекомендуем сделать это, потому что для многих современных игр следом выходят и важные обновления, которые помогают запустить ту или иную игру.
- Драйверы установлены/обновлены, но Mount & Blade II: Bannerlord всё равно отказывается работать нормально? Тогда нужно проверить ПО, установлены ли вообще необходимые библиотеки? В первую очередь проверьте наличие библиотек Microsoft Visual C++ и .Net Framework , а также наличие «свежего» DirectX .
Если ничего из вышеописанного не дало нужного результата, тогда пора прибегнуть к радикальному способу решения проблемы: запускаете Mount & Blade II: Bannerlord и при появлении чёрного экрана нажимаете сочетание клавиш «Alt+Enter», чтобы игра переключилась на оконный режим. Так, возможно, откроется главное меню игры и удастся определить проблема в игре или нет. Если удалось перейти в оконный режим, тогда переходите в игровые настройки Mount & Blade II: Bannerlord и меняйте разрешение (часто получается так, что несоответствие разрешения игры и рабочего стола приводит к конфликту, из-за которого появляется чёрный экран).
Причиной этой ошибки также могут послужить различные программы, предназначенные для захвата видео и другие приложения, связанные с видеоэффектами. А причина простая – появляются конфликты.
Появляется цветной экран
Появление цветастого экрана часто связано с тем, что используются сразу две видеокарты. Если в материнской плате присутствует встроенный графический процессор, но играете на дискретном, игра в любом случае запустится на встроенном. Поэтому и возникают «цветные» проблемы, поскольку монитор подключён по умолчанию к дискретной видеокарте.
Не менее часто цветной экран появляется в том случае, если появились проблемы с выводом изображения. Подобное вызывает самые разные причины, но существуют две наиболее распространённые: 1 – стоят устаревшие драйвера; 2 – ваша видеокарта не поддерживается. Поэтому рекомендуем обновить в первую очередь драйвера.
Как правило, проблема связана с перегретой видеокартой. Первым делом следует проверить провода, вдруг они перекрыли вентиляторы системы охлаждения, но если там полный порядок, тогда самое время сбросить разгон видеокарты: нужно войти в приложение MSI Afterburner (или подобное) и нажать на «Reset» .
Не работает мышь, клавиатура или контроллер
Чаще всего, если такие проблемы и возникают, то строго на стороне игрока. В процессе подключения нового девайса ОС моментально пытается установить необходимый пакет драйверов, но проблема в том, что он стандартный, а значит, будет совместим далеко не с каждым устройством, поэтому проверьте наличие необходимых драйверов. Кроме того, на управление могут повлиять вирусы, так что обязательно проверьте систему.
Источник
-
#1
Summary:I updated my game to full release which I believe is named 1.0.0 but I’m not sure. I had a very old save I wanted to update to 1.7 in order to play it on full release. I believe it was 1.5.4 Anyways I changed the beta branch on steam to 1.7.0. and updated the game yesterday or so. Today I launched the game and hit «Play». It pretty much immedietly crashes. No lag spike, no frozen screen Just a immediate error message. I tried sending a crash report 3 times but all it tells me is that «something went wrong, try again.»
How to Reproduce: Update game to full release. Change game to 1.7.0 on steam beta branch. Try starting the game using the «Play» button.
Have you used cheats and if so which: No
Scene Name (if related):
Media (Screenshots & Video):
Computer Specs:
OS:Windows 10
GPU:RX 590
GPU Driver Version: 22.5.1 released on 4/28/2022
CPU: Ryzen 7 5800x 8 cores.
RAM: 16GB DDr4
Motherboard: I don’t remember
Storage Device (HDD/SSD): HDD
-
#2
Have you tried these workarounds before?
‘Launcher not Launching’ / Game is not launching Workarounds
If you experiencing any issues with the launcher, you can try the workarounds below to fix it:
- The first thing to do when experiencing any issue with the game is verifying the game files. After an update, there is always a chance of some of the game files being corrupted or missing. Doing this will verify that the game files are installed correctly. You can also check our guide regarding this here.
- Deleting the configs folder of the game located in the Documents folder. Please keep in mind that this will also delete your saved options of the game. Don’t forget to back up the files if you don’t want to lose them. (C:Usersuser.nameDocumentsMount and Blade II BannerlordConfigs)
- You can try to delete the contents of the folder below and verify the game files afterward. «steamappscommonMount & Blade II Bannerlordbin»
- If you have installed a mod called Fixed Launcher in the past, you need to make sure that you have deleted its files. These files can block the launcher from launching. The files of the aforementioned mod.
- Check your Windows Defender settings for Ransomware Protection. You should add Bannerlord to the list under the Controlled Folder Access. To do that:
- — Open Windows Defender Security Center.
— Click on Virus & threat protection.
— Click the Virus & threat protection settings option.
— Under «Controlled folder access,» click the Allow an app through the Controlled folder access link.
— Click the Add an allowed app button to add Bannerlord.- Deleting the “spriteData.xml” file located in the «steamappscommonMount & Blade II BannerlordGUIGauntletUI” folder can fix the issue. This is an obsolete xml file that the game is not using. However, if a mod is installed before changing this file, the game tries to use it and crashes.
- Deleting the logs folder located under the «C:ProgramDataMount and Blade II Bannerlord» folder. Please note that the ProgramData folder is a hidden folder by default.
- If none of the workarounds above helped you, you can try to launch the game via the TaleWorlds.MountAndBlade.Launcher.Singleplayer.exe and TaleWorlds.MountAndBlade.Launcher.Multiplayer.exe files located in the folder below:
“…:SteamLibrarysteamappscommonMount & Blade II BannerlordbinWin64_Shipping_Client”- Check your OneDrive folder contents. Even if it is disabled we have seen users post that their files have been changed with the previous OneDrive synced files. You should try deleting your OneDrive files. More info about that can be found here.
-
#3
Have you tried these workarounds before?
I was at the last step of going to SteamLibrarysteamappscommonMount and Blade 2 BannerlordBinWind64_Shipping_client. The «Bannerlord» launcher gave me the same error however launching «Bannerlord.Native» gave me the error «Mono exception occurred». Hopefully that is of some help to you. I do not understand what it means.
-
#4
I was at the last step of going to SteamLibrarysteamappscommonMount and Blade 2 BannerlordBinWind64_Shipping_client. The «Bannerlord» launcher gave me the same error however launching «Bannerlord.Native» gave me the error «Mono exception occurred». Hopefully that is of some help to you. I do not understand what it means.
I did try launching through Taleworlds.MountandBlade.Launcher.Singleplayer.exe and it crashed. 2022-10-27_19.54.35_0160a40aded2e6e8e61a4c18daecab41. I can launch the multiplayer version fine. However it says I have the wrong version.
I believe this is my crash report. I didn’t copy and paste it but I think it did that automatically. 2022-10-27_19.54.35_0160a40aded2e6e8e61a4c18daecab41.
I also want to clarify that before you replied I wanted to see if changing from 1.7 to 1.7.1 would fix the issue so all of this was tried on the 1.7.1 version of the game.
-
#5
The crash id suggest that the game is crashing while reading XML files. You could try a clean install.
Clean Install
The clean install is removing every single game-related file from your computer and installing the game again. Why do you need to remove the game while you just want to remove the modifications? Unfortunately, some of the modifications do not just add a new modules folder but also change or adds contents to the existent modules folder. Without a reinstall,we can’t be sure those files are unchanged
.
To perform a Clean Install, Uninstall the game. You can do that by right-clicking the game on Steam Library and selecting Delete Local Content. Delete all folders related to the game
that remains after the uninstallation
. The folders that might have files inside:
Steam: C:Program Files (x86)SteamsteamappscommonMount & Blade II Bannerlord
Epic: C:Program FilesEpic GamesMount & Blade II Bannerlord
C:UsersUSERNAMEDocumentsMount and Blade II Bannerlord
C:ProgramDataMount and Blade II BannerlordNote: You’ll need to allow Windows to display hidden folders and files to see the ProgramData folder and its contents.
-
#6
The crash id suggest that the game is crashing while reading XML files. You could try a clean install.
Will I have to store my save files on a backup folder or will they be fine?
-
#7
I just found out. They are in documents>Mount and Blade 2 Bannerlord>Games saves>Native. So I just copied them and put them on a folder on my desktop.
-
#8
The crash id suggest that the game is crashing while reading XML files. You could try a clean install.
So I have no idea what «Delete Local Content» is so I just went; rightclick on bannerlord>manage>Uninstall. Then I went through the folders and deleted any game files I found. Now I’m re-installing it.
-
#9
The crash id suggest that the game is crashing while reading XML files. You could try a clean install.
Suprisingly and disapointingly it still crashed. Here is the ID for the crash report 2022-10-28_02.27.21_0160a40aded2e6e8e61a4c18daecab41
-
#10
Can I please get a response? I tried the clean install and it still didn’t work.
-
#11
I don’t want to make a new post because it will clog up the system but this is a issue I have so please help. I have provided whatever information asked and I tried all the steps and it did not work.
I’m working on a Spring webflux project and I want to understand the difference between throwing an exception vs using Mono.error().
If there is a validation class like this for example:
public class NameValidator {
public static boolean isValid(String name) {
if(StringUtils.isEmpty(name)) {throw new RuntimeException("Invalid name");}
return true;
}
}
public class NameValidator2 {
public static Mono<Object> isValid(String name) {
if(StringUtils.isEmpty(name)) {
return Mono.error(new RuntimeException("Invalid name"));}
return Mono.just(true);
}
}
What are the pros & cons with each approach. When to use one over the other while working with reactive streams using spring webflux?
asked Sep 14, 2021 at 13:39
justAnotherDevjustAnotherDev
1831 gold badge2 silver badges15 bronze badges
As @Joao already stated, the recommended way to deal with an error is to call the error
method on a Publisher
(Mono.error
/Flux.error
).
I would like to show you an example in which the traditional throw
does not work as you may expect:
public void testErrorHandling() {
Flux.just("a", "b", "c")
.flatMap(e -> performAction()
.onErrorResume(t -> {
System.out.println("Error occurred");
return Mono.empty();
}))
.subscribe();
}
Mono<Void> performAction() {
throw new RuntimeException();
}
The onErrorResume
operator will never be executed because the exception is thrown before Mono
is assembled.
answered Sep 14, 2021 at 21:15
3
Basically you will have the same result in the end and no difference between the two options (maybe performance wise but I have not found anything backing this opinion so I guess it can be negligible.
The only “difference” is that Mono.error follows the Reactive Streams specification and throwing an exception as is does not (read more at https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.3/README.md#2.13). However it is not prohibited, but if you like to follow standards and specifications (I guess you do) you should consider using Mono.error.
answered Sep 14, 2021 at 18:34
João DiasJoão Dias
15.5k6 gold badges31 silver badges44 bronze badges
1
MonoError
MonoError is the latest attempt at cleaning up and sanitizing error handling in the runtime. This document highlights some of the design goals and decisions, the implementation and the migration strategy.
Design goals
-
Replace the majority of the adhoc error handling subsystems present today in the runtime. Each one is broken in a subtle way, has slightly different semantics and error conversion between them is spot, at best.
-
Map well to the final destination of all runtime errors: managed exceptions. This includes being compatible with .net when it comes to the kind of exception produced by a given error condition.
-
Be explicit, lack any magic. The loader-error setup does control flow happens in the background through a TLS variable, which made it very brittle and error prone.
-
Explicit and multiple error scopes. Make it possible to have multiple error scopes and make them explicit. We need to support nested scopes during type loading, even if reporting is flat.
-
Be as simple as possible. Error handling is the hardest part of the runtime to test so it must be simple. Which means complex error reporting, such as chaining, is out of question.
Current implementation
The current implementation exists in mono-error.h and mono-error-internals.h. The split is so API users can consume errors, but they are not supported to be able to produce them — such use case has yet to arise.
Writing a function that produces errors
/**
*
* @returns NULL on error
*/
void*
my_function (int a, MonoError *error)
{
if (a <= 0) {//
mono_error_set_argument (error, "a", "argument a must be bigger than zero, it was %d", a);
return NULL;
}
return malloc (a);
}
Important points from the above:
- Add a “MonoError *error” argument as the last to your function
- Call one of the mono_error_set functions based on what managed exception this should produce and the available information
- Document that a NULL returns means an error
Writing a function that consumes errors
void
other_function (void)
{
ERROR_DECL (error);
void *res;
res = my_function (10, error);
//handling the error:
//1st option: set the pending exception. Only safe to do in icalls
if (mono_error_set_pending_exception (error)) //returns TRUE if an exception was set
return;
//2nd option: legacy code that can't handle failures:
mono_error_assert_ok (error);
//3rd option (deprecated): raise an exception and write a FIXME note
// (implicit cleanup, no-op if there was no error)
mono_error_raise_exception (error); /* FIXME don't raise here */
//4th option: ignore
mono_error_cleanup (error);
}
Important points from the above:
- Use
ERROR_DECL (error)
to declare and initialize aMonoError *error
variable. (Under the hood, it declares a localMonoError error_value
usingERROR_DECL_VALUE (error_value)
. You may useERROR_DECL_VALUE (e)
to declare a variable local variable yourself. It’s pretty unusual to need to do that, however.) - Pass it to the required function and always do something with the result
- Given we’re still transitioning, not all code can handle in the same ways
Handling the transition
The transition work is not complete and we’re doing it piece-by-piece to ensure we don’t introduce massive regressions in the runtime. The idea is to move the least amount of code a time to use the new error machinery.
Here are the rules for code conversion:
-
Mono API functions that need to call functions which take a MonoError should assert on failure or cleanup the error as there’s no adequate alternative at this point. They must not use
mono_error_raise_exception
ormono_error_set_pending_exception
-
When possible, change the function signature. If not, add a _checked variant and add the
MONO_RT_EXTERNAL_ONLY
to the non-checked version if it’s in the Mono API. That symbol will prevent the rest of the Mono runtime from calling the non-checked version.
Advanced technique: using a local error to raise a different exception
Suppose you want to call a function foo_checked()
but you want to raise a different exception if it fails. In this case, it makes sense to create a local error variable to handle the call to foo_checked
:
int
my_function (MonoObject *arg, MonoError *error)
{
ERROR_DECL (local_error);
int result = foo_checked (arg, local_error);
if (!is_ok (local_error)) {
mono_error_set_execution_engine (error, "Could not successfully call foo_checked, due to: %s", mono_error_get_message (local_error));
mono_error_cleanup (local_error);
}
return result;
- Pass
local_error
tofoo_checked
- Check the result and if it wasn’t okay, set a different error code on
error
It is common to usemono_error_get_message
to include the message from the local failure as part of the new exception - Cleanup
local_error
to release its resources
Advanced technique: MonoErrorBoxed and mono_class_set_failure
Normally we store a MonoError
on the stack. The usual scenario is that managed code calls into the runtime, we perform some operations, and then we either return a result or convert a MonoError
into a pending exception. So a stack lifetime for a MonoError
makes sense.
There is one scenario where we need a heap-allocated MonoError
whose lifetime is tied to a MonoImage
: the initialization of a managed class. MonoErrorBoxed
is a thin wrapper around a MonoError
that identifies a MonoError
that is allocated in the mempool of a MonoImage
. It is created using mono_error_box()
and converted back to an ordinary MonoError
using mono_error_unbox()
.
static int
some_class_init_helper (MonoClass *k)
{
if (mono_class_has_failure (k))
return -1; /* Already a failure, don't bother trying to init it */
ERROR_DECL (local_error);
int result = foo_checked (k, local_error);
if (!is_ok (error)) {
mono_class_set_failure (k, mono_error_box (local_error, k->image));
mono_error_cleanup (local_error);
}
return result;
}
- Check whether the class is already marked as a failure
- Pass a
local_error
tofoo_checked
- Check the result and if it wasn’t okay, allocate a boxed
MonoError
in the mempool of the class’s image - Mark the class that failed with the boxed error
- Cleanup the
local_error
to release its resources
Design issues
- Memory management of the error setting functions is not consistent or clear
- Use a static initializer in the declaration site instead of mono_error_init?
- Force an error to always be set or only when there’s an exception situation? I.E. mono_class_from_name failing to find the class X finding the class but it failed to load.
- g_assert (mono_errork_ok (&error)) could be replaced by a macro that uses g_error so we can see the error contents on crashes.
@dantesun If you take a look at the wire log you will see that there is no response body. The server returns only headers.
So your code should utilise switchIfEmpty
case 1
HttpClient.create()
.wiretap(true)
.addressSupplier(() -> new InetSocketAddress("httpbin.org", 80))
.post()
.uri("/status/400")
.send((req, out) -> out.sendString(Mono.just("Test")))
.responseSingle((resp, byteBufMono) -> {
if (resp.status() != HttpResponseStatus.OK) {
return byteBufMono.asString()
.switchIfEmpty(Mono.just(resp.status().reasonPhrase()))
.flatMap(text -> Mono.error(new RuntimeException(text)));
}
return byteBufMono.asString();
})
.doOnError(Throwable::printStackTrace)
.block();
case 2
HttpClient.create()
.wiretap(true)
.baseUrl("http://httpbin.org")
.post()
.uri("/status/400")
.send((req, out) -> out.sendString(Mono.just("Test")))
.responseSingle((resp, byteBuf) ->
Mono.zip(byteBuf.asString(StandardCharsets.UTF_8)
.switchIfEmpty(Mono.just(resp.status().reasonPhrase())),
Mono.just(resp)))
.map(tuple -> {
if (tuple.getT2().status() != HttpResponseStatus.OK) {
throw new RuntimeException(tuple.getT1());
}
return tuple.getT1();
})
.block();
case 3
HttpClient.create()
.wiretap(true)
.baseUrl("http://httpbin.org")
.post()
.uri("/status/500")
.send((req, out) -> out.sendString(Mono.just("Test")))
.responseSingle((resp, byteBuf) -> byteBuf.asString(StandardCharsets.UTF_8)
.switchIfEmpty(Mono.just(resp.status().reasonPhrase()))
.map(respBody -> {
if (resp.status() != HttpResponseStatus.OK) {
throw new RuntimeException(respBody);
}
return respBody;
}))
.block();