Всем привет 👋 Вопросы будут по нашей любимой игре детства Дисайплс 2 😎 Давненько не играл уже, а тут как то вспомнил, пронастольгировал и опять нахлынуло 😌 Но просто так в винил играть не хочется, к балансу которого есть вопросики, а норвежская семга мне не зашла: перебор на мой вкус, многие добавленые юниты вторичны, слишком много одинаковых моделек, что в целом убивает весь интерес. Переборщили короче как по мне. Поэтому ковыряю винилку сам на свой вкус и цвет. Глубоко сильно не погружаюсь в виду своих скромных познаний, скорее просто правлю баланс методом тыка. Если вдруг кому интересно, могу поделиться своим виденьем баланса, какие характеристики, каким юнитам и в какую сторону меняю. Но вот возникли две интересные мыслишки, которые самому внедрить мне уже знаний не хватает, поэтому обращаюсь за помощью к про✊️
Первая. Повелитель волков Горных кланов.
Очень странный юнит, которому я никогда не мог найти места в своих сквадах. Для первой линии, для которой он и предназначен (ибо перевертыш), слишком хрупкий, с низкой инициативой. Пока до него доходит очередь, минимум половина морды у него уже отлетает. И тут встает вопрос что делать то? Кинуть атаку на 40 единичек? Ну все таки мы же не спроста его держим на первой линии. Кастуем уникальную нашу фишку и превращаемся в воина четвёртого уровня с ослабленной атакой и повышенной интциативой (и это еще в rote инициативу добавили). И все. А ударить ему дадут только на следующем ходу. И если еще дадут, свои хп то он успешно растерял в прежнем облике, ничего вообще при этом не сделав. Короче ни рыба, ни мясо. Идея то интересная, создать универсального воина-мага который в зависимости от ситуации отыгрывает свою роль. Но эксперимент очевидно не удачный. Мое мышление: концепция универсальность в замен на уменьшение статов верна, но в первую очередь Духу Фенрира необходимо сделать ход сразу же после превращения. И что бы это все вообще имело смысл, нужна высокая инициатива, пожалуй те же самые 65, которые есть у Духа Фенрира. Что бы он успел в первый ход отработать свою функцию воина, до того как ему сломают лицо. Да, для мага конечно такая инициатива не характерна, но компенсируется это ослабленным уроном. Инициативу я подправлю, а вот как сделать возможным ход сразу же после превращения не знаю. Тут нужна помощь
Вторая. Оборотень Орд нежити.
Песель конечно прикольный, но уж слишком нишевое существо при затратах на него. Тысячу денюжек за одну штуку, это прямо дорогое. Да иммун к оружию с первого взгляда штука имбовая, но только с первого взгляда. Это не ветка умертвий, которые по сути лучники, и грозящих им магов могут эффективно устранять. А пока оборотню к магам откроется доступ, как правило он уже сам отлетает, на хп то не богат лохматый. Как существо для защиты жезловиков, это слишком дорого, а его эффективность вызывает большие вопросы у имперского голема и валькирии, для них одинаково, что воин за 50 копеек, что золотой верфольф. Так же холмовой великан запросто посадит на свою дубинку. У проклятых есть гаргулья. Контры вообщем для него достаточно. Когда же есть на него ресурсы, значит основная часть карты уже захвачена и начинается баловство. Резюмируя, слишком специфичный пёсик при его цене. Когда бы он мог быть полезным, экономика не позволяет, когда экономика позволяет, он уже особо и не нужен. Что думаю: заменить собачку на другого юнита. Еще неплохая идея заменить иммун на защиту и снизить цену (так в семге вроде сделали). Но все же хочу попробовать замену. Хочется какого то разнообразия. Есть у нейтральной нежити такой чувак как оккультист, призывающий зомбарей, и он бы на этом месте смотрелся бы весьма интересно. Скажем по цене в 200-300 рублей. Далеко не имба, однако полезных применений много. И город поможет защитить на заднем ряду рядом с призраком, баньши успешно переживёт одну атаку какого нибудь Беллиарха. Короче хочу обкатать и оценить на практике. Вопрос, как изменить существо которое можно нанять при постройке особого здания? Мы где то меняем один набор цифр на другие, или все сложнее и как бы это провернуть?
Добрый день, пикабушники. Когда-то давал обещание дословно:
Когда-нибудь война закончится, и служба закончится, тогда обещаю начать постить никому не интересные посты по моддингу забытой игры.
Но война всё не кончается, и скоро уже очередная годовщина этого всего. Служба тем более не кончается несмотря на ушатанное в хлам здоровье, и есть мнение, что даже после завершения уволиться будет задачей крайне нетривиальной и проще уже до пенсии дослужить. А потому, имея некоторое свободное время между отражением налётов, можно отринуть происходящий вокруг постапокалипсис и провести экскурсию по своему хобби.
Итак, сегодня мы отправимся в путешествие по территории СССР 30-х годов. Наверняка многие слышали про игру Hearts of Iron IV. Она достаточно меметична, и как известно:
Но я начинал играть ещё в третью часть, и повинуясь синдрому утёнка именно она стала моей любимой. Хотя Hearts of Iron III (Далее - ХоИ3) несколько затерялась на фоне гораздо более успешных второй и четвёртой частей, я вижу в ней ряд серьёзных преимуществ, т.к. она делалась ещё во времена, когда военно-политический симулятор второй мировой делали именно как симулятор, а не как игрушечку для детишек с красивыми картинками, нарезанную на миллион длс. Другое дело что она была категорически не доработана. И о её доработке и пойдёт сегодня речь.
ХоИ3 уникальна прежде всего огромной детализацией и почти полной автоматизацией. То есть каждая провинция имеет своё название, характеристики и строения, и армия делится на составные части вплоть до полка. То есть вы можете приказать конкретному полку с конкретным названием передислоцироваться в конкретную провинцию, а можете отдать управление вообще всем чем можно на откуп компьютеру, занимаясь только конкретными лично вам интересными аспектами
Да, Георгий Константинович действительно был на 1.1.1936 года командиром 4-й кавалерийской дивизии, базировавшейся в Слуцке. (Но в игре так стало уже после моих правок)
Проблема же игры состоит в том, что замах был на рубль, а удар на копейку - у издателя просто не хватило трудочасов, чтобы в соответствии с историей отобразить карту размером сильно более 10000 провинций с тысячами подразделений. Например, население территорий обозначили только в крупнейших городах, оставляя все остальные провки фактически пустыми. И если с Европой, США и Японией они ещё хоть как-то старались, то карта Советского Союза представляет собой кромешный ад с точки зрения неправильности, иные областные центры или не на своих местах стоят, или вообще никак не обозначены!
Если что, то я тоже начал далеко не с СССР. Он крайне сложен в проработке даже для русскоязычного человека. Началось всё с маленьких островов в мировом океане, и постепенно наращивая сложность, прорабатывая второстепенные, а затем и основные страны, в итоге я начал работать над СССР, ну а потом прервался ввиду известных внешнеполитических событий.
Состояние работы на сейчас, где зелёным уже проработанная часть, а красным - ещё не тронутая.
На самом деле это похоже на кругосветное путешествие. Прорабатывая карту кусочек за кусочком, читая статью в богомерзкой Википедии о каждом городке и деревеньке, которые я хотел отметить на карте, со временем начинаешь подмечать некоторые закономерности развития. И в этом плане территория бывшего СССР заметно выделяется. Что ни откроешь, куда не копнёшь - везде будет примерно следующее: тут при советской власти в 30-е/40-е/50-е/60-е построен завод/школа/больница/электростанция/рудник/шахта и т.д. и т.п. Любой пример, ну вот, скажем, Эртиль
Есть конечно и всякие интересные аномалии, и касаются они в том числе и предыдущего, имперского периода.
Например, вы знали что помимо широко известного города Гусь-Хрустальный, неподалёку есть ещё городок Гусь-Железный, в котором многие десятки лет строили и таки построили совершенно не соответствующую размеру этого населённого пункта огромную церковь, в совсем не характерном для этого региона стиле?
Или изучая Атлас СССР тех годов можно заметить в Азербайджане недалеко от границы с Арменией в районе н.п. Кедабек отдельно стоящую вообще от всего железную дорогу.
Или есть множество удалённых и достаточно изолированных горных областей, в которых внезапно начинает хотеться побывать уже своими ногами: Дигория, Тушетия, Тофалария...
Огромное количество населённых пунктов, огромное количество нюансов. Разумеется невозможно всё отобразить в достаточно скромных условиях старого игрового движка, но кое что - можно. И тогда, из проработки карты начинает прорастать проработка прочих аспектов, и в итоге начинает выстраиваться полноценная в рамках игровой механики модель страны и мира того времени.
Начнём с азов. Мы хотим чтобы карта была более исторически достоверной. У каждой провинции есть аспектов, которые можно отобразить
Например - Москва и её параметры
Где:
owner = SOV - владелец провинции - СССР controller = SOV - контролирующее провинцию государство - СССР add_core = SOV - государство считающее провинцию родной территорией - СССР points = 30 - победные очки metal = 1.00 - производимый металл energy = 4.00 - производимая энергия rare_materials = 3.00 - производимые редкие материалы industry = 9 - количество заводов (единиц промышленного потенциала) anti_air = 4 - количество зенитных батарей infra = 10 - уровень инфраструктуры air_base = 10 - количество аэродромов land_fort = 1 - мощь укреплений manpower = 5.77 - население leadership = 2.87 - условное количество высокообразованного населения, которое можно использовать в дипломатии, шпионаже, науке и командном составе вооружённых сил
Понятное дело, что в большинстве провинций не будет столько атрибутов, сколько в столице. Но проблема изначальной версии заключалась в том, что в них даже население не было прописано. Не говоря уже о всяких прочих мелочах, к примеру если в н.п. Шаталово был военный аэродром, то неплохо бы указать его на карте.
На данный момент я постепенно (очень медленно) прорабатываю подступы к Сталинграду. Порядок действий такой:
В Hearts of Iron IV, которая в целом мне не нравится, есть некоторые положительные моменты, например население там расписано по регионам, а не по провинциям, и расписано в общих чертах верно.
Карта регионов из ХоИ4 с указанием населения в миллионах человек.
Поэтому мы можем разделить непроработанную карту в ХоИ3 плюс минус на те же регионы используя редактор Clausewitz Scenario Editor
для перекрашивания удобнее всего использовать параметр провинции "owner =" временно изменяя её принадлежность. Прорабатывать будем регион отмеченный розовым.
Скрином выше, в ХоИ4 можно было заметить, что один из регионов называется Волгодонск - и это один из многих анахронизмов и неточностей. Город был основан в 1950 году, и на 1936 год никак не может присутствовать на карте, как в прочем и Цимлянское водохранилище.
Современное состояние этих территорий. Если бы Цимлянское водохранилище уже существовало ко временам Сталинградской битвы - сражение на Дону выглядело бы кардинально иначе.
1/4
Атлас тех времён и карты боевых действий
Убрав такие неточности, необходимо разметить основные транспортные магистрали. Через интересующий нас регион севернее Пролетарского водохранилища такая одна - ж/д линия Тихорецк - Сальск - Красноармейск - Сталинград.
Отмечаем ж/д дорогу уровнем инфраструктуры 7, в остальных провинциях она будет ниже
Проверяем правильность наименования провинций, например город Орловский ранее был станицей Орловской
Далее проверяем правильность соединения провинций друг с другом. Например:
Расстояние между Пролетарском и Сандатой меньше, чем между Сальском и Яшалтой, но всё же из-за расположения рек и дорог из Сальска в Яшалту попасть напрямую гораздо легче, чем из Пролетарска в Сандату
Поэтому между Сальском и Яшалтой будет прямое соединение, а между Пролетарской (тогдашнее название Пролетарска) и Сандатой - Нет. Кстати Яшалта тогда называлась - Эсто-Хагинское. Редактируются границы на карте провинций provinces.bmp в обычном Paint
Далее необходимо распределить в регионе население. Из карты ХоИ4 видно, что оно равно 0.56 млн человек. Для ХоИ3 путём несложных сравнений не модифицированных версий игр было выведено что 1 млн населения в ХоИ4 приблизительно равен manpower = 1.00 в ХоИ3. Следовательно всё что нужно сделать - это вбить в калькулятор 0.56 и постепенно вычитая расставляемые в провинциях региона значения дойти до нуля. Начинать лучше с дальних малонаселённых в то время мест и остаток населения региона отмечать в самых крупных городах.
Распределения населения
Со стратегическими предприятиями и объектами в регионе по сути никак - никаких крупных заводов, аэродромов и прочего там на тот период времени нет. Соответственно остаётся только по необходимости поправить рельеф. Что можно сделать либо слегка корректируя карту terrain.bmp (только не в Paint, иначе сломается), при этом изменится и текстура карты, либо можно просто прописать провинции "terrain =" и тип местности изменится.
С рельефом тоже всё не так просто. Думаю гораздо логичней когда например Главный Кавказский хребет не проходим насквозь, а пересечь его можно только в отдельных местах. Провинции с уровнем инфраструктуры 1 и ниже игра считает непроходимыми
На карте инфраструктуры это тёмные регионы
Но игра не запрещает строить инфраструктуру где угодно, условно - хоть на вершине Эльбруса поставить железнодорожный узел.
И лечится это добавлением всего одного региона и одного эвента
Добавляем регион: region = No_Mans_Land, куда относим все провинции, которые считаем принципиально непроходимыми и недоступными к прокладке дорог в то время.
Это своеобразная дань и отсылка к одному из моих любимых аниме
И простой эвент следующего содержания:
Или переводя на русский, если инфраструктура в провинции относящейся к региону No_Mans_Land больше или равно 2, то инфраструктура теряет одну единицу.
А вот так это будет выглядеть в игре
И вот так собирая кусочек за кусочком городки и деревеньки, с их историей и особенностями, я в свободное время путешествую по миру 1930-х не выходя из блиндажа. Кстати, игра позволяет буквально каждой провинции приделать своё собственное фото и возможно когда-нибудь, я займусь и этим, благо фотографий собрано достаточно, например здесь
Это была обзорная экскурсия в самые простые приёмы модостроительства, возможно потом расскажу что-нибудь посложнее.
Играбельная на данный момент сборка Hearts of Iron III: Маил Гугл
Это распаковщик и запаковщик ресурсов мобильных J2ME RPG игр от id Mobile. Первая версия имеет полную поддержку Doom RPG и частичную Orcs & Elves и Orcs & Elves II.
В будущем планируется полноценная поддержка всех остальных игр серии RPG и встроенный редактор ресурсов.
Проект полностью бесплатный и с открытым исходным кодом. Распространяется по лицензии AGPL-3.0.
Всем снова привет :) Думаю многие пикабушники знают, что одно из моих хобби - реверс инжиниринг ретро телефонов, их хакинг и попытки впихнуть невпихуемое. Полгода назад в рамках серии статей я с нуля взломал неизвестный кнопочный телефон, отреверсил прошивку и написал для него бинлоадер (загрузчик нативных программ) и первую программу для него - игру змейку!
Две недели хакинга... это было действительно круто!
Однако телефоны на спредтруме это круто, но современные кнопочники на этом процессоре, к сожалению, используют компрессию LZMA и что-то пропатчить в них иногда проблематично. Плюс у них крайне мало памяти для написания каких-то сложных патчей. Поэтому я время от времени качаю прошивки для телефонов из своей школьной юности и ковыряю их в IDA Pro, чтобы не только иметь доказательную базу для своих статей, но и просто попытаться на них что-то запилить. Одним из таких стал легендарный Samsung SGH-C100.
Модель 2003 года базировалась на чипсете Skyworks, который условно можно назвать братиком Neptune LTE в Motorola C350 и E398 (используется идентичное ядро ARM7TDMI, только работающее на более низкой частоте). C100 стал настоящей легендой благодаря поддержке загрузки контента (хотя настоящей ФС в нём особо и не было), Java-приложений, а также очень крутому UFB-дисплею с разрешением 128x128 и конечно синтезатору Yamaha, который давал ту самую полифонию.
В процессе изучения телефона я наткнулся на то, что Samsung почему-то выкладывала прошивки вместе с map-файлами линкера. Для тех кто не в курсе, процесс компиляции прошивки упрощенно происходит в два этапа:
Компиляция отдельных модулей в объектные файлы - т.е файлы с расширением .o. Объектные файлы содержат в себе как код с данными, так и информацию о символах (функциях и переменных) в них, а также зависимостях от других модулей.
Линковка набора объектных файлов в единую прошивку. Здесь специальная программа - линкер, анализирует все входные объектные файлы и собирает из них готовую программу, исправляя ссылки на зависимости на конкретные адреса в исполняемом файле.
Так вот, с помощью специальной опции можно попросить линкер выдавать текстовый .map файл для дальнейшего анализа секций, таблицы символов и помощи при отладке кода. Как вы уже поняли, в этом файле хранятся текстовые имена всех функций и глобальных переменных в прошивке, а также карта памяти процессора:
Это настоящая находка для реверсера, поскольку по именам и коду большинства функций можно легко понять их предназначение, список аргументов (тут же все таки Plain-C) и просто понять принцип работы MMI (оболочки) в прошивке. Я написал парсер, который импортировал map-файл в базу IDA Pro и теперь у нас есть полностью отреверсенная прошивка для C100, которую можно патчить и моддить вдоль и поперек :)
На скриншоте код той самой игры из первого видео в статье
Так что делюсь базой и с вами. Базу свободно можно использовать как референс при реверсе других телефонов на Skyworks'ах с помощью поиска по паттернам, а также для реверса более поздних Swift'овских телефонов, но с ними надо поковыряться подольше. Знаю что меня читают инженеры, так что может кто-то тоже вдохновится и пойдет моддить свой C100? :)
Поковырял бы сам и запили статью, но я чет купил пару кабелей для C100 и все оказались нерабочими :(
Если вы читаете сразу пятую часть, то рекомендую сначала прочитать прошлые, чтоб мне не надо было много повторяться: Моддинг Disciples 2
Для начала разберемся, что из себя представляет юнит в Disciples 2? Это набор зааписей в DBF файлах + набор статичных картинок для портретов + набор анимаций для боев и, опциально, для передвижения на глобальной карте.
Если с DBF и статичными картинками все более-менее понятно и просто, то, как быть с анимациями?
У вас есть 3 пути.
Первый, самый простой, вытащить из игры уже имеющиеся анимации и отредактировать их в фотошопе.
Второй, самый дорогой и сложный, пойти по тому же пути, что и оригинальные разработчики. То есть создать 3D модель, сделать ей анимации, записать их в gif и импортировать в игру. Этим путем идем мы при создании нашего мода на шестую фрацию Племен Зеленокожих. (Юнит для шестой фракции в Disciples II - Племен зеленокожих)
Третий, средний вариант, который я и покажу. Взять уже готовые анимации из другой игры, при необходимости отредактировать их, и импортировать в игру.
Где достать нужные анимации? Ищите их среди старых, изометрических рпг и стратегий.
Скачиваем эту или любую другую анимацию. Оригинальные спрайты в игре в разрешении 800 на 600 пикселей, при чем сам юнит занимает лишь малую часть этого пространства, но важно расположить вашего нового юнита в той же точке, что располагаются и остальные юниты, иначе ваш новый юнит будет улетать куда-то в сторону. Как это сделать проще всего? Вытащить любую анимацию и расположить свои кадры поверх оригинальных, а оригинальные удалить.
В 4 части урока по моддингу я показывал программу D2ResExplorer v2.10, которая нам понадобиться для работы с анимациями, поэтому её качаем обязательно. Указываем путь к игре, сканируем папку и открываем контейнер BatUnits.ff. В идеале ищем статичкую "анимацию" паралича юнита, что состоит из одного кадра.
ВАЖНО!!! Измените формат в который будете извлекать анимации. Нас интересует только GIF.
Далее придется работать с анимацией покадрово. Я использую старенькую версию Photoshop, но вы можете работать с тем, что вам удобнее, если знаете аналоги.
Открываем анимацию и видим, что у нас всего 1 кадр, да ещё и режим индексирования цвета. Надо исправлять.
Меняем режим на RGB, иначе у вас не будет возможности работать с анимацией.
Далее идем нарезать кадры для скорпиона. Для начала уберем лишний черный фон. Правой кнопкой мыши кликаем на единственный фоновый слов и убираем его с заднего плана.
Затем, убираем черный фон со слоя. Дважды кликаем на получившийся слой и двигаем аккуратно ползунок, пока не пропадет фон.
Теперь можно выделять понравившийся кадр и копировать его на новый слой, а затем перетаскивать поверх анимации парализованного сквайра.
Слой со сквайром удаляем, а сами делаем новые кадры в анимации.
Для плавной анимации понадобится около 20-30 кадров. Если в оригинале кадров не хватает вы можете задублировать кадр, как это сделал я. В фоллауте у атаки "покоя" радскорпиона около 11 кадров, поэтому я каждый использовал дважды, чтоб получить 22 кадра.
Далле нам нужно сохранить для web устройств. Это и будет сохранение в gif формате.
Одна анимация готова. Но таких надо минимум 6: анимация покоя вид спереди и вид сзади, анимация атаки вид спереди и вид сзади, анимация получения урона вид спереди и вид сзади.
Все делается аналогично, поэтому показывать смысла нет. Как сделать портрет для юнита я показывал тут: Моддинг Disciples II, часть 4: добавляем новые портреты в игру Я лично взял изображения древесного скорпиона из Fallout New Vegas, отдал его Chat GPT, уменьшид контраст и насыщенность цветов, затем прогнал через энкодер для индексации цветов упомянутый в 4 части уроков по моддингу и получил на выходе это.
Но нам нужный ещё две миниатюры, чтоб было корректное отображение юнита в отряде. Иначе вы увидите заглушку.
Для начала извлекаем любую пару FACE и FACEB, чтоб было проще подогнать размеры.
Размещайте также ваши кадры поверх извлеченных и сохраняйте с другим именем. Не забываем пронать через энкодер, чтоб индексировать цвета.
По итогу должно получится как-то так (второй, квадратный фейс не дает загрузить на пикабу, видать слишком низкое разрешение у изображения, но думаю вы поняли).
Теперь нужно добавить несколько записей в DBF файлы, прежде, чем внедрять наши спрайты.
Нам понадобится создать записи в Tglobal.dbf с именем и описанием нового юнита, а также с названием его атаки.
Главное не повторяйте уже сущесствующие идентификаторы TXT_ID
Далее добавим уникальную атаку "удар жалом" для скорпиона. Для этого надо добавить запись в Gattacks.dbf. Здесь также обязательно должен быть уникальный идентификатор ATT_ID. А в полях NAME_TXT и DESC_TXT оставляем идентификатор текстового названия атаки из прошлого шага. За что отвечают другие характеристики можно прочесть в одном из прошлых уроков: Моддинг Disciples II, часть 3: меняем характеристики юнитам
И главное, добавляем запись в Gunits.dbf. Тут важно дать уникальный идентификатор UNIT_ID, а затем указываем новую атаку, описание и название юнита. Остальные характеристики можно догадаться для чего нужны или опять же обратиться к "уроку 3" по ссылке выше.
Теперь закрываем редактор DBF файлов и переходим к импорту новых спрайтов через D2ResExplorer. Сначала мы должны верно обозвать анимации и портреты, чтоб они привязались к новому юниту.
ОЧЕНЬ ВАЖНО правильно назвать файлы перед импортом. У квадратного минипортрета название это идентификатор юнита из Gunits + FACE, а у круглого идентификатор юнита из Gunits + FACEB.
Ищем контейнер Faces.ff и добавляем туда два "минипортрета"
Мои постоянные читатели наверняка знают мою особую любовь к устройствам на Windows CE и Windows Mobile. Я коллекционирую, восстанавливаю, модифицирую и стараюсь дать новую жизнь этим прекрасным гаджетам, о чём частенько пишу отдельные статьи. Одним из примеров такого моддинга был апгрейд оперативной памяти - операция, которая была очень популярна в нулевых годах!
Дело в том, что в большинстве коммуникаторов и карманных компьютеров было установлено 64 мегабайта оперативной памяти типа SDRAM. С 2003 по 2008 год этого хватало с головой вообще для всего: благодаря экономичной к памяти Windows CE и адекватно написанным программам, в оперативке можно было одновременно держать Java-приложение, клиент ICQ, электронной почты, Internet Explorer и даже какую-нибудь не сильно тяжелую игру. И при всём этом, многозадачность у устройств была полноценная: без автоматического "прибивания" приложения системой, как это реализовано в Android и iOS:
При всём этом, в ранних устройствах на WM все пользовательские данные хранились в ОЗУ, так что от 64 мегабайт обязательно откушивался небольшой процент для фотографий, видосов и прочего контента. Чаще всего это было 15-20МБ. При этом объём выделяемой памяти под контент можно было регулировать на лету с помощью специальной программы в панели управления:
А ведь были и КПК с 32МБ оперативной памяти - и на них можно было вполне нормально жить!
Но как мы с вами понимаем... времена тогда были другие, да и сами устройства на Windows Mobile пользовались популярностью по большей части у гиков, которым интересно во всём разбираться и попробовать всякий разный софт. Накатить на RoverPC оболочку Manilla с HTC? Пожалуйста! Портировать Fallout 2 и HoMM с ПК? Были и такие ребята! Установить на 5-летний коммуникатор последнюю версию Windows Mobile? Дядя Cotulla и не такое проворачивал :)
Именно на него Cotulla когда-то портировал WM 6.5... на устройство, где в оригинале была PocketPC 2003 :)
Но вот незадача: с ростом интереса у гиков, росли и потребности, и если упора в мощнейший ARM-процессор Intel PXA272 с частотой 624МГц ещё не было, то вот ОЗУ хватало далеко не всем! И поэтому гики со всей планеты начали искать возможность увеличения объёма ОЗУ.
Дело в том, что как я уже говорил ранее, КПК и коммуникаторы в основном использовали стандартные чипы оперативной памяти типа SDRAM. Такие применялись везде: как в смартфонах Nokia и Sony Ericsson на Symbian (меньших объёмов, но с почти идентичной распиновкой и корпусом), так и в обычных кнопочных телефонах (Siemens C65/C75 и т.д.). А поскольку в те годы почти все Windows Mobile устройства производила HTC по заказу других брендов (HP, Dell и многие другие), она закладывала в аппаратную платформу почти каждого устройства (Magician, Wizard, Blue Angel и т.д.) возможность установки чипов памяти большего объёма. И если где-то достать эти чипы памяти, то можно было проапгрейдить и свой девайс:
Эти самые чипы имели маркировку Infineon HYB25L256160AC и достать под заказ их можно было почти везде, правда и стояли они довольно дорого. Сейчас их можно найти по 200 рублей за штучку, но тогда, уверен, цена была не менее 400-500 рублей (при долларе по 30). Однако это-ж не обычный компьютер, где ОЗУ можно заменить плашкой, эту память нужно было сначала припаять и вот тут начинались проблемы: тогда всякие W.E.P'ы и прочие бюджетные YaXun'ы 852 не были так распространены вне мастерских по ремонту телефонов и ноутбуков, да и гайдов по перекатке шаров и пайке BGA-чипов особо не было в свободном доступе, поэтому желающим проапгрейдить память приходилось обращаться в сервисные центры, которые брались за эту задачу:
Только представьте себе: 4090 рублей! Это больше 100$ за апгрейд КПК, который мог стоить 300$!
Но во первых, ОЗУ нужно правильно припаять. Если её поставить криво, то перекатка может стать игрой в гольф с раскидыванием BGA-шариков припоя по "лункам" вручную. На универсалке такой чип не перекатаешь из-за кристалла дешифратора (?) на пузе чипа, да и я не уверен, были ли тогда трафареты на DDR2 (он совместим с SDRAM) в таком простом доступе как сейчас:
А во вторых, после такого апгрейда девайс мог и не увидеть дополнительную оперативную память... Дело в том, что корпуса для чипов памяти (как постоянной, так и ОЗУ) придумывают не от балды. Инженеры сразу закладывают в них возможность размещения нескольких чипселектов (сигналов выбора конкретного "банка" в чипе памяти) или совмещения флэш-памяти с оперативной. Благодаря этому, чипы разных серий и производителей совместимы между собой и мы имеем возможность сдуть UFS флэху с условного сяоми и пересадить в самсунг вообще без каких либо проблем (ладно, это чисто в теории, RPMB то никто не отменял :) ).
У SDRAM-памяти в КПК было также: инженеры сразу предусмотрели возможность установки как одного банка память в каждый чип (то есть 32МБ), так и сразу двух, а переключение между ними вывели на отдельный сигнал - чипселект. И вот некоторые производители (как HTC), второй чипселект зачастую не выводили, оставляя отдельный "страп" для моддеров :)
В 128-мегабайтной версии QTek S100 (т.е QTek S110), здесь должен быть резистор 0.33Ом
Однако возможность такого моддинга была доступна в основном только для устройств разработки HTC. Потому что во первых её загрузчик изначально поддерживал трейнинг и сканирование дополнительных чипов оперативной памяти (на Asus'ах требовалась установка специальной 128МБ прошивки с поправленным загрузчиком), а во вторых многие устройства других производителей использовали процессоры Samsung S3C2442 или же Texas Instruments серии OMAP. Предки Exynos'ов были на пике инженерной мысли и интегрировали в один чип не только самое современное процессорное ядро со всей периферией, но и 32/64 мегабайта оперативной памяти, а также около 64 мегабайт NOR Flash-памяти, что делало невозможным апгрейд ОЗУ (на плате ничего не было кроме самого 2442, КП и радиочасти, однако были еще S3C2440, где ОЗУ была отдельной, но о случаях апгрейда ОЗУ там я ни разу не слышал). А у OMAP'ов причина до сих пор неизвестна, но предположительно был выведен только один чипселект на каждый канал памяти, что позволяло использовать чипы максимум по 32МБ каждый.
Но уж поверьте: те, кто апгрейдил себе ОЗУ, потом не жалели. Возможности многозадачности увеличивались в разы и помимо PocketIE с аськой и Java-приложением, можно было влегкую запустить сессию в Age of Empires, параллельно с Opera Mobile и ещё и Spb Launcher в фоне держать. И всё это действительно работало в фоне одновременно!
А на КПК с GPU появлялась возможность запускать тяжелые игрушки по типу Quake 3, правда из-за зоопарка видеочипов, условный NFS Shift на X51v не идёт :(
Ну а к 2008 году, HTC начала устанавливать по 128 мегабайт оперативной памяти в свои коммуникаторы с новыми чипсетами Qualcomm MSM7200A уже штатно, на некоторых девайсах расширяя объём аж до 288 мегабайт. Такого объёма хватало вообще на всё, поэтому необходимость моддинга ОЗУ полностью отпала...
Правда уже через пару лет начали массово появляться Android-смартфоны, где начали активно использовать eMCP чипы памяти с связкой eMMC + DDR2/DDR3. И на смартфонах с чипсетами MediaTek можно было спокойно проапгрейдить память с 512'и до 1ГБ. Но это уже совсем другая история...
Ну а я проапгрейдил ОЗУ на двух КПК в 2024 году: сначала на личном HTC Magician, который вы могли видеть в статье, а затем и на Dell Axim X51v своего подписчика, который взамен подогнал мне крутейший ноутбук Compaq из 90-х с видеочипом S3 ViRGE!
Теперь я сижу и кайфую со своим коммуникатором, у которого в панели информации гордо красуется надпись "128 мегабайт оперативной памяти" 😎😎😎😎
Заключение
Недавно я решил посидеть на гречке, но купить себе парочку крутых коммуникаторов от Garmin-Asus. Они интересны тем, что построены на базе чипсета Qualcomm MSM7200A, который построен не на Imageon 130, как многие думают, а на GPU Defender3D собственной разработки "квалков", который берет корни аж с 2004 года. Я даже драйвер видеочипа реверсил, чтобы узнать о них поподробнее :)
В связи с чем к вам вопрос:
Возможно вы читали мои статьи из рубрики про ретро-гпу из 90-х. Интересно было бы вам почитать про развитие мобильных гпу на рубеже 2000-х?
Если вам понравился длиннопост - не забудьте подписаться на меня, чтобы не пропускать новые статьи каждую неделю! А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Если вам понравилась статья и вы хотите меня поддержать, у меня есть Boosty, а также виджет на Пикабу ниже. А ещё мне можноотправить какое-нибудь интересное железо: устройства на WinCE/WinMobile, китайские кнопочники, китайские подделки на iPhone/Samsung из начала 2010-х, ретро-ПК железо - всё это я очень люблю :) Всем огромное спасибо!
После статьи мне написали несколько инженеров из Тэлмы и Ронды - компаний, которые аутсорсили разработку софта для телефонов Motorola из нулевых. Теперь доподлинно известно, что в РФ разработали немалую часть прошивки Motorola E398:
Пилили софт для LG:
Добавляли в Android поддержку CDMA помимо GSM (комdпания Teleca):
Помогали пилить Maemo и Meego (которая теперь стала Sailfish и в последствии Авророй):
И по заявлению комментатора с Хабра даже Nokia X (тот самый Android-смартфон) помогали доделать :)
Никогда не слыхал о таком, полез искать информацию. Нашёл.
При чтении обзора 2007 года не смог сдержать улыбки:
Аппарат огромен, носить его можно только в сумке. Для этого в комплекте есть чехол. Он удобен, качественно сделан и, по сути, незаменим. Это следует из особенностей конструкции аппарата. В O2 XDA вам предлагается только гарнитура. В комплекте нет чехла, хотя с его помощью можно частично решить проблему переноски устройства. Аппарат едва помещается в руке. Держать его около уха во время разговора неудобно или даже скорее непривычно. Он тяжелый и большой.
А вот массо-размерные его данные:
O2 XDA Flame: 126х74х17.5 мм/вес 190 г
Для сравнения данные моей Nubia, которая не претендует на звание "лопаты"