Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Ведь Windows любила UTF-16 (хоть и не должна была)Всё же стоит учитывать, что когда Windows NT была в разработке, UTF-8 ещё не существовало, поэтому и был выбран UTF-16, потому что на тот момент он казался лучшим стандартом будущего.
Когда в UTF-16 появились суррогатные пары и вот это всё — дороги назад уже не было совсем.Дорога назад, конечно, была и она была столь же тривиальной, как и сегодня. Нужно было cp65001 завести не в XXI веке, а в 1995м году. И, соотвественно, Office97 (первый, где есть нормальная поддержка unicode) делать не на основе UCS-2, а на основе UTF-8.
Microsoft нужно было завоёвывать рынок, и лишних 5 лет на переписывание внутренностей ещё совсем недавно созданной ОС не было.Не нужно было никаких «переписываний внутренностей». В те годы все операционки всё ещё работали со всякими ISO 2022. А софта, завязанного на UCS-2 или UTF-16 было нуль, нисколько.
UTF-8 просто перегоняется в UTF-16 и обратно тем же образом, как раньше поддерживались легаси-кодировки.А это уже как раз — личное дело Windows, что там у неё внутри. Пока приложения могут считать что ничего, кроме UTF-8, в мире нету — пусть «внутри» хоть троичную систему счисления используют.
Поэтому я воспринимаю UCS-2 и UTF-16 как нечто целое, где, так уж повелось, все по-разному обращаются с суррогатными парами.Собственно именно это и побуждает меня UTF-16 воспринимать только и исключительно как «ошибку истории». Потому что слишком много кода воспринимают UTF-16 как UCS-2, ломаются, тем или иным способом, на суррогатах — и слишком поздно это выясняется.
Учитывая эту совместимость нет проблем переводить софт под виндой на UTF-8, в хулшем случае будут кракозябры, но ничего не сломается.К сожалению всё не так просто. Вы можете вшить manifest в программу — и она будет даже использовать UTF-8 независимо от настроек системы… но вот только тот факт, что для этого требуется, чтобы ваши пользователи использовали «Windows Version 1903 (May 2019 Update)»… он так, чуть-чуть напрягает.
Very High на скриншотах не только выглядит иначе по цветам (мне не нравится). Там еще кусты пропали по пальмами. На остальных скриншотах они есть, даже в самом простом качестве.
P.S. в игру не играл, может там, конечно пришел NPC и скосил траву, на я сомневаюсь :)
Этот файл довольно хаотичен. Но после меток Geforce FX 6800 мы видим несколько идентификаторов. Скорее всего, нам нужен один из них. Давайте попробуем 00F1.
Проще всего протестировать это — воспользоваться LLDB и задать нужные точки останова. Я пропущу это этап, но скажу, что 00F1 подошёл (к счастью).
На этом этапе нам нужно ответить на вопрос: «Как сделать это изменение постоянным?» Похоже, что проще будет изменить значения var_CC и var_D0 на 0X00F1 и 0X10DE. Для этого нам всего лишь нужно получить пространство для кода.
Интересно, автор пробовал менять XMB файл вместо кода. По идее если 00F1 заменить на индификатор своей карты, то таким образом игра должна думать что у нас Geforce FX 6800… по идеи
Что карантин с людьми делает :)
На самом деле довольно интересно было почитать.
Взламываем Age of Empires III, чтобы изменить настройки качества шейдеров