Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Рисковый и азартный три в ряд - играйте онлайн!

Камни в ряд онлайн!

Казуальные, Три в ряд, Мультиплеер

Играть

Топ прошлой недели

  • Carson013 Carson013 23 поста
  • Animalrescueed Animalrescueed 32 поста
  • Webstrannik1 Webstrannik1 52 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
313
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
3 месяца назад

Необычный гиковский девайс: как китайский стартап сделал планшет с тремя ОС одновременно⁠⁠

Пожалуй, все мы с вами любим диковинные гаджеты из 2000-х годов, когда производители всё ещё пытались удивить пользователя некой изюминкой. Таким необычным устройством был и предок современных планшетов — MID SmartQ V7, где за цену в 150$, производитель предлагал неплохое железо, приятный дисплей и целых три предустановленных операционных системы!

Что было «под капотом» у первых планшетов и что умел «дедушка» современного iPad с Android, Ubuntu и Windows CE «на борту» — читайте в сегодняшней подробной статье!

❯ Предыстория

Планшеты — достаточно интересный класс устройств, который за всё время существования пережил недоступность, подъём и даже в какой-то степени забвение. Их история началась ещё в конце 80-х годов с выходом GRiDPad 1900, который представлял из себя небольшой x86-компьютер с полноценным HDD, резистивным тачскрином и MS-DOS на борту:

Фото с сайта <!--noindex--><a href="https://pikabu.ru/story/neobyichnyiy_gikovskiy_devays_kak_kitayskiy_startap_sdelal_planshet_s_tremya_os_odnovremenno_13008235?u=https%3A%2F%2Frandoc.wordpress.com%2F&t=https%3A%2F%2Frandoc.wordpress.com%2F&h=64aa1b6ea09a331e71818543e5c1a49b0ba9dc2c" title="https://randoc.wordpress.com/" target="_blank" rel="nofollow noopener">https://randoc.wordpress.com/</a><!--/noindex-->

Фото с сайта https://randoc.wordpress.com/

Планшет хоть и был популярен в узких кругах, но до массового рынка ему было ещё далеко — стоимость в 3 750$ была по карману далеко не каждому заинтересованному пользователю. Однако в 90-х годах концепция планшетов и приближенных к ним устройств только развивалась. Сначала вышел Apple Newton в 1993 году по цене в 990$, а в 1996 году — уже и доступный КПК Palm Pilot 1000 по 299$.

И хотя Pilot — это именно КПК, чаще всего их использовали для тех же целей, что и современные планшеты

И хотя Pilot — это именно КПК, чаще всего их использовали для тех же целей, что и современные планшеты

Но настоящий бум случился в 2005 году, когда Nokia на LinuxWorld Summit представила принципиально новое устройство — 770 Internet Tablet. Как становится ясно из названия, этот гаджет был предназначен для серфинга в интернете, однако благодаря Linux-дистрибутиву Maemo, он мог выполнять и другие функции обычного компьютера.

Дело в том, что в отличии от той же самой Motorola, которая использовала MontaVista Linux в своих телефонах на платформе EZX, Nokia сразу позиционировала свои гаджеты как открытые и созданные специально для гиков. После выхода устройства, Nokia опубликовала SDK для портирования существующих и разработки новых программ — благодаря чему список доступного софта постоянно расширялся и даже спустя 20 лет после релиза, коммьюнити Maemo всё ещё поддерживает их!

Знакомый форм-фактор, приемлемая цена в 350 долларов и умеренная популярность всей линейки N-таблетов заложили первый кирпичик в фундамент современных планшетов.

Гаджет использовал стандартный стек технологий, знакомый любому линуксоиду: X11, GTK2, D-Bus, systemd

Гаджет использовал стандартный стек технологий, знакомый любому линуксоиду: X11, GTK2, D-Bus, systemd

В 2008 году Intel представляет новое семейство энергоэффективных процессоров под названием Atom, а параллельно с ними концепцию MID — Mobile Internet Device, то есть портативных компьютеров с возможностью выхода в сеть. И вот тут-то началось!

В Китае MID очень понравилась местным производителям гаджетов и некоторые из них начали разрабатывать и выпускать самые разные, порой даже диковинные серийные устройства — нетбуки-трансформеры, нетбуки-телефоны, планшеты-слайдеры... и конечно же привычные нам планшеты без физических кнопок!

Прототип MID от Intel

Прототип MID от Intel

К 2010 году на рынке мобильных чипсетов случился бум: новые процессоры выходили буквально каждые полгода, их функционал и производительность росли обратно пропорционально цене. Чипы ОЗУ и флэш-памяти тоже стремительно дешевели, а TN-TFT дисплеи пристойного разрешения уже стоили отнюдь не как крыло от Боинга. Воспользовавшись моментом, несколько китайских компаний представили как минимум 3 модели, которые выбрались за пределы локального рынка в Китае. Одним из таких был и герой сегодняшней статьи — SmartQ V7!

В 2010 году успех Android всё ещё не был очевиден. Некоторые производители продолжали продвигать свои платформы (например Bada), да и для Android ещё было разработано не так много полезного софта. Поэтому когда перед инженерами встал выбор операционной системы, они долго не думали... и решили установить в одно устройство целых три ОС: Android, Ubuntu и Windows CE, а для переключения между ними написали собственный загрузчик!

О SmartQ V7 я узнал в начале этого года, когда исследовал китайские барахолки. Мне даже удалось раздобыть один экземпляр к себе в коллекцию, но из-за особенностей загрузчика (о которых мы поговорим позже), я окирпичил свой экземпляр... Но затем на мои поиски этого устройства откликнулся пользователь с 4pda под ником spbplus (его канал на Дзене) и согласился безвозмездно отправить мне гаджет, за что ему огромное спасибо!

Полноразмерный USB 2.0, HDMI, разъем зарядки как у Nokia и ножка — неотъемлемые атрибуты гаджетов тех лет!

Полноразмерный USB 2.0, HDMI, разъем зарядки как у Nokia и ножка — неотъемлемые атрибуты гаджетов тех лет!

Давайте же по классике разберем наше устройство и узнаем, что здесь скрывается «под капотом»!

❯ Что внутри?

В конструктивном плане гаджет выполнен очень необычно. И дело не только в дизайне и наличию ножки, но и сборке: сразу видно, что бюджеты на разработку и производство устройства были очень сильно ограничены.

Разбирается гаджет несложно, но весьма хитро: сначала необходимо открутить 4 винта с обратной стороны корпуса и расщелкнуть фронтальную панельку. А далее начинаются основные «приколы» бюджетного инжиниринга: плата с фронтальными кнопками буквально приклеена к средней части корпуса, а к ней вручную припаяны как SMD-кнопки, так и межплатный шлейф вместе с проводами питания подсветки дисплея. При этом никто даже не заморачивался с отмывкой флюса — и так сойдет!

Из-за материала плёнки, как дисплей не вытирай — всё равно будут оставаться небольшие пылинки!

Из-за материала плёнки, как дисплей не вытирай — всё равно будут оставаться небольшие пылинки!

Материнская плата отделена от дисплея той самой средней частью корпуса, которая крепится на 5 винтов и две клипсы. И самое забавное то, что по материалу средняя часть напоминает первые опыты в 3D-печати: всё очень примитивно и несимметрично, из-за чего плату немного перекашивает уже с завода. Под дисплеем спрятано 3 потайных винта и при их откручивании надо быть предельно осторожным: если дисплей зайдет уголком за ушко, то есть немалый шанс случайно порвать его шлейф.

Уже виднеется обвязка процессора!

Уже виднеется обвязка процессора!

Материнская плата также вытаскивается вместе с средней частью корпуса и аккумулятором, но с этим никаких проблем уже нет: риск что-то повредить минимален. При взгляде на плату устройства сразу приходит понимание, почему этот гаджет стоил 150 долларов: максимальная интеграция всей периферии в один чип:

В качестве сердца устройства, здесь используется система на кристалле TeleChips TCC8902, которая состоит из одного ARM1176-ядра, работающего на частоте 800МГц, контроллера DDR2-памяти, видеоускорителя Mali-200 (в отличии от Mali-400, о существовании Mali-200 слышали единицы), а также периферийных контроллеров по типу USB, SPI, I2C, UART. Помимо этого, TCC8902 поддерживает вывод видео на множество разных источников, начиная от HDMI, заканчивая NTSC/PAL.

Выше процессора расположилась микросхема EEPROM-памяти AT88 производства Atmel. Что на ней хранится — мне неизвестно, вполне возможно что ID чипа или, что гораздо хуже, конфигурация NAND-контроллера (программаторы под эти чипы очень дорогие, а у меня «запорота» именно она).

Столько всего в одном маленьком чипе!

Столько всего в одном маленьком чипе!

Чуть правее процессора расположилось два чипа оперативной памяти производства Samsung, объёмом по 128МБ каждый. В целом, 256МБ были стандартным объёмом ОЗУ почти для всех портативных гаджетов тех лет. Даже в первом iPad был именно такой объём оперативной памяти!

Почти на самом верху платы расположился чип NAND флэш-памяти производства всё той-же Samsung, объёмом в 2ГБ. В целом, это объём характерный для MP3-плееров и совсем неясно, как на таком чипе уживаются аж три операционные системы!

А вот у Galaxy Tab 7.0 было аж 512МБ оперативной памяти!

А вот у Galaxy Tab 7.0 было аж 512МБ оперативной памяти!

Слева расположился аудиокодек Wolfson WM8987G, отвечающий за вывод и запись звука, а также усилитель для стереодинамиков. Чуть ниже расположился чип M1530DM, выполняющий роль повышающего DC-DC преобразователя для подсветки дисплея, а рядом с коннектором шлейфа дисплея расположился неопознанный контроллер питания, который также выполняет функции чарджера.

В качестве дисплея используется классическая 60 pin RGB матрица. Такую можно достать с многих планшетов тех лет!

В качестве дисплея используется классическая 60 pin RGB матрица. Такую можно достать с многих планшетов тех лет!

Питает весь планшет литий-ионный аккумулятор с номинальным напряжением в 3.7В, что несвойственно для планшетов тех лет. Обычно ставили две последовательно соединенные банки. Интересно то, что аккумулятор до сих пор держит заряд и не вздулся — даже спустя 15 лет после выхода планшета на рынок. Достойный результат!

Вот и весь конструктив планшета. Как известно, всё гениальное — просто. И планшет, который в отличии от конкурентов, стоил всего 150$ — это тоже своего рода достижение и шедевр технологической мысли! Ну, что у него внутри мы узнали, а как он проявлял себя на практике? Давайте включим и узнаем!

❯ Включаем...

После включения планшета, нас встречает меню загрузчика (местный аналог BIOS) аж с тремя системами на выбор. Но помимо выбора ОС, здесь есть дополнительная менюшка с настройками загрузки системы, где можно отрегулировать объём памяти для видеоускорителя (я такого вообще больше нигде не видел на мобильных устройствах).

Однако с этим загрузчиком был определенный нюанс. Дело в том, что большинство V7'ых и V5'ых, которые можно найти сейчас на вторичке, частично окирпиченные. Из-за своеобразного механизма разметки разделов, для установки обновленных версий Android, WinCE и Linux требовалось обновление загрузчика — так называемая смена с «синего» на «фиолетовый». Однако планшет никак не был защищен от даунгрейда прошивки, что превращало его в кирпич при попытке установить старый загрузчик поверх обновленного.

На втором экземпляре SmartQ V7 у меня грузился только Android, остальные две системы не работали, но подготовка флэшки с обновленными образами WinCE и Ubuntu решила проблему (и сломала Android, а в веб-архиве архив битый). Скачать образы ОС можно здесь, для установки достаточно лишь скопировать их в корень SD-карты и включить планшет с зажатой кнопкой действия.

Изначально я решил загрузиться в Ubuntu и она сюда портирована довольно неплохо. В качестве рабочего стола используется модифицированная оболочка OpenBox с пакетом дополнительного софта. Производительность системы не впечатляет, но совсем уж «лагодромом» гаджет назвать нельзя. А вот за что его можно поругать — так это за резистивный тачскрин, который с годами начал выдавать фантомные нажатия (и дело не в грязи под рамками)...

Как сюда пропатчить KDE2?

Как сюда пропатчить KDE2?

При разработке девайса, SmartQ явно оглядывалась на идейного вдохновителя — Nokia 770 Internet Tablet. Многие элементы интерфейса повторяют Maemo, но при этом, как и в прародителе, пользователь никак не ограничен в модификации своего собственного устройства. Прямо из менюшки можно открыть терминал, запатчить sources.list и накатить deb-пакеты из репозитория с помощью apt.

Но если пользователь был новичком, он мог поставить пакеты с помощью GUI-программы. Не Ubuntu Store, но тоже ничего.

По строке Hardware в ядре, мы сразу видим куда идут корни устройства — к референсной плате Telechips!

По строке Hardware в ядре, мы сразу видим куда идут корни устройства — к референсной плате Telechips!

Впрочем, несмотря на явно гиковское направление данного гаджета, он вполне подходил и рядовому пользователю. Из коробки были доступны самые разные программы, включая просмотр документов (для чтения книг), текстовый редактор и медиаплеер VLC. Путём установки устройства на ножку и подключения хаба в полноценный USB 2.0-разъём, можно было получить почти полноценный самостоятельный компьютер, а если подключить его к телевизору с помощью HDMI — так вообще медиацентр с выходным разрешением в 1080p!

Для подключения к сети, в планшете есть Wi-Fi. Однако если возможности подключится к точке доступа не было, к планшету можно было подключить самый обычный 3G-модем и работал он не только в Linux, но и Android! Правда, аккумулятор в таком случае высаживался ещё быстрее!

Ну и куда-же без браузера! В качестве основного здесь используется Midori на базе движка WebKit. Но несмотря на то, что я успешно подключился к сети, мне не удалось открыть ни Linux.org.ru, ни OpenNet — сайт, который открывает даже PocketIE. К сожалению, сборок Chromium под ARMv6 в те годы не было, а FireFox будет слишком медленным, так что наш максимум — это Dillo.

Как перестать намеренно убирать TLS 1.2 — так это "безопасность", а как показывать заглушки доменов - так это хоть на IE 1.0!

Как перестать намеренно убирать TLS 1.2 — так это "безопасность", а как показывать заглушки доменов - так это хоть на IE 1.0!

Далее я загрузился во вторую из трёх доступных систем — Windows CE. И вот здесь картина была менее радужной, поскольку порт WinCE на Evaluation-board был ну очень кривым. Например, при переключении режима USB из Client в Host — планшет зависал, а тачскрин работал некорректно и откалибровать его возможности не было из-за кривой реализации драйвера (он эмулирует мышь, а не реализует стилус, как должно быть).

Но к теме Windows CE на планшетах мы обязательно с вами вернемся немного позже, ведь помимо SmartQ V7, был ещё один планшет с возможностью загрузки нескольких ОС. И имя ему — ePad Zenithink ZT-180!

❯ Заключение

Вот такая статья про интересный гаджет из далекого 2010 года у нас с вами получилась. И хотя на первый взгляд кажется, что установка сразу 3-х ОС — странное решение, однако в годы когда на рынке мобильных систем ещё не было однозначного лидера — это было логично, ведь производитель предоставлял пользователю полную свободу действий над своим устройством.

Если вы хотите поддержать блог материально, то это можно сделать используя форму ниже. всем большое спасибо!

А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.

Как вам SmartQ V7?
Всего голосов:

Очень важно! Разыскиваются девайсы для будущих статей!

Друзья! Я ищу подделки на брендовые смартфоны 2009-2015 года выпуска. Многие из них работают на весьма интересном железе и об их моддинге я бы мог сделать интересный контент. Особо разыскиваются подделки Apple iPhone и HTC (по типу HD2 и Touch Diamond 2) на Windows Mobile и Android, а также Samsung Galaxy. Также представляют моддерский интерес первые смартфоны Xiaomi из серии Mi, Meizu (ещё на Exynos) и телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5, о которых я хотел бы подготовить отдельные статью и видео, поскольку они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake.

Большое спасибо читателям и зрителям за подгоны, без вас контент бы не выходил! Связаться со мной можно в тг monobogdan.

Подготовлено при поддержке @Timeweb.Cloud

Показать полностью 24 1
[моё] Опрос Гаджеты Покупка Планшет Android Linux Unix Моддинг Своими руками Ретроспектива Обзор Apple Длиннопост
53
370
Rock.Wolf
Rock.Wolf
В основном делаю посты по серии игр Disciples
Библиотеки Невендаара
3 месяца назад

Disciples II Rise of the Elves - DoM's Mod v3.01, разбор фракции Империя⁠⁠

Я все таки решился написать цикл статей по разбору модов. Почему я не делал этого раньше? Дело в том, что я не видел в этом нужды у аудитории. Ведь я считал, что существует достаточно видео-обзоров, но все чаще в комментариях я вижу запрос на текстовых вариант, вместо трех/шестичасовых видео. Начать я решил с истоков. В этом есть три цели: во-первых, для пониманимя откуда растут ноги у многих правок, что унаследовались современными модами, во-вторых это дань уважение к первопроходцам и в-третьих, количество правок в первых модах не так велико, поэтому я надеюсь, что смогу набить руку и успею войти во вкус. Иначе начав с постоянно изменяющихся современных модов я рискую бесконечно актуализировать обзоры, которые никогда не увидят свет. Пожелайте мне успехов.

Начать я хотел с DoM's мода. На данный момент мод уже мертв и не актуален, но для истории мы сохраним о нем память.

DoM's MoD (Сокращение от Disciples' of Mortis Modification) - это любительская модификация которая вышла ещё до Disciples III и базируется на Disciples II Rise of the Elves. Она была создана как попытка раскрыть потенциал игры, увеличив выбор игроков относительно разных веток развития и внести в игру еще больше атмосферности, способствующей полному погружению в игру. В итоге из этого мода появился всем известный мод Норвежской Семги. Поэтому дабы знать истоки давайте рассмотрим его детально.

Что нового привнес мод?
- изменение баланса оригинальных юнитов
- новые юниты и скрытые ветки развития для каждой фракции
- правки заклинаний
- новые предметы
- новые навыки для предводителей
- новые нейтральные враги

Примечание: Большая часть правок характеристик существ для игрока заметна слабо. Было много изменений в приросте урона и здоровья за уровень, в ценах воскрешения, лечения и найма юнита, в том сколько дается опыта за убийство этого существа или сколько опыта необходимо заработать, чтоб существо получило уровень. Я не считаю, что стоит этим правкам уделять много внимания в разборе, кому будет интересно может самостоятельно сравнить их с оригинальным балансом непосредственно в моде или при помощи D2Info.

Разберем каждую фракцию по отдельности и начнем с Империи.

Герои фракции

Герои в основном подверглись лишь правкам прироста характеристик. Если ранее их урон, здоровье и т.д. росли по разному до и после 10 уровня, то теперь прирост одинаков. Как сделали, например, Архимагу.

Интересная правка есть у Рыцаря на пегасе. Ему дали 10 брони и отняли 15 здоровья. Что в целом ничего не изменило в балансе. Ибо если посчитать входящий урон, который он может выдержать, то мы получим те же самые 150 здоровья. Разве что теперь если заранее наслать проклятие понижающее броню, то рыцаря можно будет убить чуточку быстрее.

Следопыт получил 100% шанс нанести 5% дополнительного урона через критическое попадание.

А Архангел в моде лечит 2 цели вместо одной, но по 20 здоровья, вместо 40.

Ветка лучников

Если опустить ранее упомянутые правки баланса, то основное изменение в ветке лучников постигло ассасинов. Они получили защиту от Ядов и их цена при воскрешении ощутимо выросла с 400 золотых до 700.

Ветка воинов

Опять же, не стану рассматривать приросты характеристик за уровень, чтоб вы не умерли от скуки. Идем сразу к интересному.

Охотник на ведьм получил защиту от вампиризма и тауматургии (так в моде обозвали вампиризм, который ещё и лечит союзников) - при этом Инквизитор в которого он улучшается теряет эти защиты и в целом идентичен оригинальному. А Великий инквизитор получил лишь балансные правки приростов.

Рыцарь в модификации потерял 15 пунктов здоровья, но приобрел 10 брони.

Аналогичная правка есть и у Имперского рыцаря, теперь у него 160 здоровья вместо 200 и 20 брони вместо 0, что эквивалентно тем же самым 200 здоровья при пересчете на возможность впитать урон. Но есть и ещё одна интересная правка. Теперь юнит будет получать прибавку +3 к инициативе за каждый уровень до 10 уровня, если мы решим остановить его в улучшении.

Переходим к Ангелу. У него уменьшился урон со 125 до 100, но источник урона изменился на «Разум», что значит он теперь может атаковать оборотней и всяких неузявимых к оружию духов. Плюс меткость юнита стала 90 вместо 80. А также он получил иммунитет к понижению урона (дополнительный эффект атаки Тиамат).

Альтернатива Ангелу - Паладин, который почему-то в моде обозван Защитником веры не подвергся правкам.

Поэтому сразу смотрим Святого мстителя / Мастера клинка (перевод зависит от версии игры).

Во-первых, он теперь имеет защиту от понижения инициативы (доп эффект атаки Отшельника).

Во-вторых, его атаки теперь разрушают броню (доп эффект атаки Теурга) с 80% шансом.

В-третьих, его меткость возросла с 80, до 90.

Альтернативный вариант получил только правки приростов, поэтому на нем останавливаться не будем.

Ветка магов

Первые два юнита в ветке не подверглись правкам, вообще. Идем смотреть Повелителя стихий / Элементалиста.

Во-первых, ему подняли инициативу с 40, до 50, которая до 10 уровня будет еще рости на 5 пунктов за уровень.

Во-вторых, он получил защиту от всех стихий: воздух, земля, огонь и вода.

В-третьих, он теперь имеет двойную атаку, то есть может призвать двух Элементалей воздуха за ход.

Ну и по мелочи всякие правки баланса в виде приростов.

Его альтернитивный вариант не имеет изменений, поэтому посмотрим сразу Белого мага.

Белый маг потерял 25 здоровья, но приобрел 30 брони. Откуда у мага броня? Думаю модмейкеры за нее приняли вот это силовое поле, которое мелькает вокруг спрайта мага.

Но в отличие от рыцарей это ему пошло на пользу, потому, что теперь он может выдержать целых 142 урона, а не 125, как раньше. Помимо этого он получил защиту от одной атаки Воздухом и от Разрушения брони. Ну и различные правки приростов.

Титан

Основная правка Титанов, помимо баланса приростов характеристик за уровень, стало то, что её наделили дополнительным эффектом разбивания брони с 80% шансом.

Ветка поддержки

Гендерно нейтральный Аколит, он же Служка, он же Послушница не получил изменений, смотрим на Жреца / Священника.

Единственная, но важная правка коснулась его исцеления. Теперь он может подлечить сразу две цели, но по 20 здоровья вместо 40.

Аналогичная разбивка исцеления на 2 части и у его улучшения. Священник Империи в моде исцеляет две цели по 40 вместо одной по 80.

Ну и ествественно Патриарх / Иерофант теперь исцеляет и может воскресить две цели вместо одной, но исцеляет он по 60 вместо 120. Плюс небольшие правки приростов характеристик за уровень.

Альтернативная ветка целителей не подверглась правкам. Единственное, что у последнего юнита в ветке развития изменились приросты характеристик за уровень.

Скрытая ветка юнитов

Одним из самых важных нововведений Doms мода были скрытые ветки развития юнитов, которые перекочевали во многие моды наследники. Что это вообще такое? Если разместить на карте где есть Империя лагерь наемников и дать там возможность нанимать нового юнита «Боец ополчения», то взяв его к себе, игрок за Империю сможет прокачивать его по разным веткам, зависимо от того, какие основные постройки в столице он будет возводить. Вот схема зависимости:

Рассмотрим этих новых бойцов по отдельности.

Боец ополчения используется модель крестьянина, у него заметно низкое здоровье, урон, иницитива но и низкая цена вместе с низкой планкой опыта до улучшения.

Рассмотрим церковную ветку улучшения - Теней инквизиции. Боец ополчения будет улучшаться по этой ветке, если игрок выберет прокачивать Сквайра по пути Инквизитора.

Разработчики вместе с модом предлагали ознакомиться немного с лором новых существ, поэтому я вас не буду лишать такого удовольствия.

Тени инквизиции

Церковь Империи – это очень сложная по своей структуре организация, состоящая из нескольких ячеек, каждой из которых отведена своя роль. Если священники исцеляют душу и тело верующих и просвещают о том, как должен вести себя праведный человек, то инквизиторы искореняют ересь в там, где проповеди не помогут. Когда в какой-либо деревушке или в городе начинают набирать силу еретические культы, в сей населенный пункт, направляются отряды инквизиторов, дабы прогнать ересь. Откуда инквизиция знает все, простым смертным остается лишь гадать. Некоторые утверждают, мол, это сам Всевышний указывает главе инквизиции о том, что где-то в Империи зарождается ересь, другие вторят, мол, это ангелы сообщают о еретиках. Много слухов ходит, да вот все они неверны.

На самом деле обо всех проявлениях ереси докладывают «Тени Инквизиции» непосредственно главному инквизитору, который в свою очередь и раздает указания о том, куда именно нужно отправить карательные отряды. Официально «Теней Инквизиции» не существует, о них знают лишь главные чины церкви, император и глава серой гильдии. В их обязанности входит как сбор информации и слежка за простыми жителями, так и ликвидация неугодных инквизиции людей, которых официальным путем ликвидировать достаточно накладно. Эта организация состоит из людей, которые по уровню своей фанатичности могут поспорить с инквизиторами, именно поэтому они без колебаний уничтожат любого, на кого укажет их лидер, и при этом никто не будет обвинять ни церковь, ни инквизицию, а все спишут на бандитов.

Никто точно не знает, как была создана данная организация, ибо ей уже ни одна сотня лет. Но по легенде, которая ходит в самой организации, она была образована особо набожным и ортодоксальным представителем Серой Гильдии, которого звали Артур Отравитель (это прозвище он получил за свою исключительную искусность в изготовлении ядов). В те далекие времена у Церкви Всевышнего было множество культов, каждый из которых поклонялся Всевышнему по своему, но инквизиция не могла их обличить их в ереси, ибо фактически все они следовали за Всевышним. Артур был приверженцем самой ортодоксальной ветви, которая и дожила до наших дней. По легенде, именно он надоумил главу инквизиции о создании такого подразделения как «Тени Инквизиции», которое смогло бы искоренять ересь во всех её проявлениях. Благодаря образованию этой организации в течение двадцати лет были уничтожены все «неверные» культы Всевышнего. Правда оно или нет, никто не знает, но сами Тени гордятся собой и своей организацией, ибо считают себя хранителями истинной веры.

Итак, первый юнит Теней: Агент

У него есть двойная атака и урон ядом, высокая инициатива, но мало здоровья и урона.

Следующий апгрейд Гонитель ереси все также имеет двойну атаку, но урон ядом изменился на яд понижающий инициативу. Хоть вырос урон и здоровье, но оно все ещё заметно ниже, чем у других воинов Империи на этом уровне, с другой стороны он имеет целых 65 инициативы, что дает ему возможность побороться за первенство хода даже с лучниками.

И финальный, Карающий клинок имеет все те же особенности: высокая инициатива, двойная атака и сравнительно низкое здоровье и урон. Правда яд снова изменился, теперь он уменьшает урон цели.

Второй вариант развития Бойца ополчения - Орден Госпитальеров. Чтоб дойти до финального юнита в этой ветке игроку необходимо строить здания для улучшения рыцаря в Святого мстителя / Мастера клинка.

Немного лора:

В начале первых Великих Войн, когда армии демонов ступили на землю, никто в Империи не был готов к такому повороту событий. Именно тогда Август Светлейший, один из величайших паладинов, создал Орден Госпитальеров, целью которого была защита подданных Империи от демонов. Но ввиду того, что демонов было слишком много, Империи приходилось постоянно отступать, уступая все больше поселений исчадьям Бесрезена. Орден Госпитальеров составлял основную часть арьергарда Империи и ценой жизней своих послушников обеспечил безопасное отступление мирных жителей.

Сам Август Светлейший лично зарубил сотни исчадий ада, прежде чем геройски пал в бою, защищая отступающих беженцев. Нет точных свидетельств о том, что произошло, ибо никто не выжил в той схватке, ни демоны, ни люди. Но место сражения выглядело так, будто сами небеса разверзлись и поразили демонов. Что бы там не произошло, но после данной битвы все члены Ордена обрели необычный дар. Иногда во время боя их оружие обретало странные свойства и разило врагов с удвоенной силой. Некоторые говорят, что это ангелы направляют их руку, другие утверждают, что это святой дух Августа Светлейшего помогает им, как бы то ни было, во многом благодаря именно этому дару госпитальеры смогли спасти еще больше невинных душ.

Первый юнит этой ветки - Алебардист.

Этот юнит крепче рыцаря, но у него заметно ниже инициатива и немного ниже урон. Впрочем данный юнит имеет одну особенность «Праведный гнев», она дает 25% вероятность, что Алебардист нанесет дополнительно 50 урона, помимо своих 40.

Следующий апгрейд, Стражник, сохраняет ту же тендцению: у него больше здоровья, ниже инициатива и урон, чем у аналогов, но Праведный гнев может нанести дополнительные 70 урона.

Все тоже самое и у Защитника угнетенных, но его праведный гнев наносит100 урона.

И наконец, Хранитель ордена, его праведный гнев имеет все тот же шанс 25%, но может нанести целых 120 урона.

Книга заклинаний

Единственное изменение в книге заклинаний Империи это цена вызова Голема. Если раньше его применение стоило 100 маны Рун, Ада и 200 маны Жизни, то в моде оно стоит 225 маны Рун, Ада и 400 маны жизни.

Плюс разработчики добавили возможность размещать всех призываемых существ на карте в качестве членов отрядов нейтралов или даже наемников, чего не было в оригинале.

Навыки лидеров

И последнее, что хочется рассмотреть в качестве разбора Империи из Dom's мода это навыки лидеров. Если вы вдруг не знали, то новыки ваших лидеров зависят от выбранного типа Лорда в начале саги или сценария.

Некоторые навыки станут доступны раньше, некоторые позже, относительно оригинала, но я хочу заострить внимание на новых навыках 15 уровня доступных всем независимо от типа правителя.

Инквизитор: дает герою иммунитет к атакам с источником Разум.

Благословние Всевышнего: дает герою +100 максимального здоровья.

Доспех Святого: дает герою +25% брони, +25% максимального здоровья и регенерацию 25%.

Помимо этого игрок Правитель/Гильмастер сможет на 5 уровне выбрать навык «Очищающая Благодать», которая даст возможность герою водружать жезлы, игрок Полководец или Верховный маг сможет выбрать этот навык только на 10 уровне.

Для лидеров игрока Гильдмастера на 14 уровне будет доступен навык «Великий путешественник», что снимает все штрафы за передвижение через лес или по воде.

А для лидеров игрока Полководца станет доступно выбрать «критическое попадание» (как у кентавра дикаря, дополнительный урон угнорирующий броню) на 10 уровне.


Показать полностью 25
[моё] Ретро-игры Компьютерные игры Disciples 2 Стратегия Пошаговая стратегия Империя Моды Моддинг Темное фэнтези Длиннопост
55
682
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
3 месяца назад

Я купил детский ARM-ноутбук за 500 рублей, чтобы поставить на него Linux⁠⁠

Сегодня компьютером на x86-совместимом процессоре едва ли можно кого-то удивить с гиковской точки зрения. Другое дело - обучающий ноутбук для детей, который работает на интересном и необычном ARM-процессоре от небезызвестной компании VIA. И хотя для запуска произвольных программ его необязательно было хакать - всем гикам известно, надо было ставить Linux!

К чему приводит давняя детская мечта об обучающем ноутбуке, что скрывается внутри устройства за 500 рублей и как на всё это накатить Linux с дуалбутом в родную систему - читайте в сегодняшней подробной статье!

❯ Предисловие

С самых ранних лет своей жизни, я так или иначе интересовался компьютерами. Когда многие мои читатели уже заканчивали университет или жили взрослой жизнью в начале-середине 2000-х годов, ваш покорный слуга всё ещё ходил в детский сад — и уже тогда мечтал о своём собственном личном компьютере.

В те годы, даже в моём провинциальном Ейске уже можно было найти за бесценок списанный с госсектора компьютер на условном 486'ом или даже Pentium MMX. Однако у моих родителей таких знакомств не было, да и друзей с личными ПК — тоже. Даже с популярными в те годы «Денди-ноутбуками» я познакомился лишь пару лет назад, несмотря на то, что аппаратный клон NES стал моей основной игровой платформой детства.

О нём я тоже писал статью. Довольно интересный гаджет, храню его в своей коллекции.

О нём я тоже писал статью. Довольно интересный гаджет, храню его в своей коллекции.

В те времена, зажиточные семьи часто покупали своим детям так называемые детские обучающие компьютеры, которые представляли из себя ничто иное, как «Brick Game» с клавиатурой и несколькими обучающими играми/программами. Примитивность и одновременная гениальность этих устройств зашкаливала: тайваньские инженеры умудрились сделать достаточно многофункциональную машину на простейшем микроконтроллере из 90-х — по типу тех, что использовались в «Тетрисе»: 4-битный процессор на 1МГц, система команд напоминающая 8051 с отдельными инструкциями для управления звукогенератором, встроенный контроллер ЖК-дисплея, 4Кб ROM-памяти и 64 байта оперативной - в общем, это маленькое инженерное чудо не могло не привлекать к себе внимание детей с гиковскими наклонностями!

Но даже такого компьютера у меня в детстве не было, оставалось лишь смотреть и облизываться на экземпляры у соседских друзей... И я думаю многие читатели знают, что такое несбывшиеся детские мечты!

К 2010 году, в Китае и Тайване случился бум мощных и недорогих систем на кристалле. Буквально каждые полгода выходили новые чипы, которые совмещали в одном корпусе практически весь компьютер: от центрального процессора, до 3D-видеоускорителя и всё это буквально за пару долларов. Среди популярных моделей вспоминаются MIPS-чипсеты от Ingenic (использовались в плеерах и игровых консолях Dingoo и Ritmix) и ARM-чипсеты от InfoTMIC, TeleChips, Rockchip (использовались в первых Android-планшетах за 100-150$, которые в те годы назывались MID). Добавьте к этому резкое удешевление NAND-памяти объёмом в 2-4ГБ и оперативной памяти типа SDRAM/DDR1 - очевидно, что предприимчивые китайские компании захотят собрать что-нибудь массовое и при этом недорогое!

Планшет с процессором в слоте DDR2-SODIMM - это самое диковинное, что вы сегодня видели :)

Планшет с процессором в слоте DDR2-SODIMM - это самое диковинное, что вы сегодня видели :)

На волне популярности нетбуков, а конкретно — свежего Asus EeePC 700, некий китайский ODM-производитель разработал несколько очень дешевых платформ для ноутбуков, которые между собой были похожи как две капли воды, но отличались процессорами. Больше всего устройств использовало чипы разработки WonderMedia, но также встречались гаджеты на процессорах Anyka и даже Ingenic. И цена таких ноутбуков была просто невероятной: от 50$ до 100$ за штучку. Полноценный ноутбук с RJ-45, Wi-Fi модулем, 2-4ГБ встроенной памяти и лицензионной Windows всего за 2.000 рублей по тому курсу... это было что-то невероятное!

В России такие ноутбуки тоже продавались. В основном их закупали предприимчивые граждане с Таобао/Алика и затем торговали ими в павильоне на рынке или в переходе. Но были также и небольшие официальные поставки, среди которых затесался герой нашей сегодняшней статьи — некий «Бам-Бук», который стоил аж 6.500 рублей в 2010 году (~210$ по тому курсу)!

Будучи фанатом портативных гаджетов на необычных процессорах, я разместил пост о поиске подобных ноутбуков на Хабре, Пикабу и 4pda. И год спустя, Toshan с 4pda предложил мне купить тот самый «Бам-Бук» за символические 500 рублей... а мы ведь помним, что такое несбывшиеся детские мечты!

❯ Что внутри?

Ноутбук приехал в целостности и сохранности, однако Антон сразу предупредил о том, что у устройства не работает часть клавиш на клавиатуре, а также тачпад. После включения «БамБука», меня встретил рабочий стол Windows CE, но системой едва ли можно было пользоваться без клавиатуры.

Поскольку на устройстве уже были видны следы разборки, я решил его перебрать и проверить целостность шлейфов, а также пайки коннекторов. Разбирается нетбук очень просто: достаточно лишь открутить несколько винтов на поддоне, включая потайной под наклейкой EasyPC и отключить шлейф клавиатуры с тачпадом со стороны топкейса.

В процессе снятия клавиатуры, я обратил внимание на криво вставленный в коннектор шлейф. Вообще, такие устройства требуют сноровки и опыта в процессе сборки, поэтому иногда зафиксировать шлейф бывает проблематично и он начинает просто болтаться в коннекторе. Казалось бы, причина неработоспособности клавиатуры найдена!

После снятия топкейса, нас встречает «голая» в буквальном смысле плата. По сравнению с любым x86-нетбуком тех лет, это устройство выглядит таким же простым, как GameBoy по сравнению с PSP...

На плате устройства и тут и там были видны следы неотмытого флюса. Все DIP-элементы (разъёмы), а также динамики паялись вручную. Судя по маске, в плате используется не более 5-6 слоев — что очень и очень мало для ноутбука... но в чём секрет?

Переворачиваем плату устройства и всё становится предельно ясно! Дело в том, что процессор, ОЗУ и Flash-память распаяны на отдельной плате, называемой System on Module (SoM), которая припаяна к основной методом поверхностного монтажа. Такие платы служат для быстрой разработки и прототипирования устройств в условиях ограниченного техпроцесса и бюджета — по сути, на хост-плате разводят лишь питание и периферию, а используют их везде: начиная от ЧПУ-станков, заканчивая кассовыми аппаратами!

В качестве сердца устройства используется система на кристалле WonderMedia WM8505, также известная как VIA VT8505. В её основе лежит ARMv5-совместимое ядро 926EJ-S на частоте 300МГц с 16Кб кэша, кастомный 2D GPU собственной разработки VIA, контроллер DDR2-памяти, а также большое количество самой разной периферии: от шин по типу SPI, I2C и UART, до SD и USB. И всё это в миниатюрном чипе за несколько долларов!

Снизу расположилась одна банка оперативной памяти типа DDR2 объёмом в 128МБ, а справа — микросхема SPI-флэш памяти, где хранится загрузчик U-Boot (BIOS) устройства.

Многим читателям корпорация VIA знакома как производитель чипсетов, аудио-кодеков и даже x86-процессоров... кто бы мог подумать, что они будут делать и ARM-чипсеты?

Многим читателям корпорация VIA знакома как производитель чипсетов, аудио-кодеков и даже x86-процессоров... кто бы мог подумать, что они будут делать и ARM-чипсеты?

Немного выше процессора расположилась микросхема NAND-памяти производства Samsung. И как мы с вами видим по характерным потертостям и следам флюса - скорее всего этот чип сдули с MP4-плеера, который когда-то сдали в утиль. В Китае эти чипы памяти продают за бесценок сразу с частями платы устройств - их даже не всегда выпаивают!

Чуть выше SoM можно обнаружить 4 пина под колодку — это диагностический UART-разъём, который можно использовать для восстановления устройства при окирпичивании.

С левой части платы расположился USB-хаб AU6256, а рядом с ним — микроконтроллер производства Holtek (и тут процессор от «Тетриса»!) в весьма необычном корпусе. Скорее всего, он выполняет функции SMC и контроллера клавиатуры одновременно — эдакий мультиконтроллер «на коленке»!

С правой стороны платы у нас расположилась схема питания на основе чарджера SUN4001S, понижающего DC-DC преобразователя APW7145 (основная шина питания) и LDO SY8088, формирующий напряжение 3.3В. Немного правее расположился аудиокодек Wolfson WM1613G - чаще в таких ноутбуках можно найти что-то от самой VIA!

И... это всё! Вся схема ноутбука настолько простая и гениальная, что буквально состоит из SoM, микроконтроллера, USB-хаба, аудиокодека и простейших питальников...

❯ Включаем...

После сборки и включения ноутбука, я обрадовался что большая часть клавиатуры заработала нормально, но одна линия матричной клавиатуры всё же была повреждена. Осмотрев её, я обнаружил что клавиатура вся погнутая и... ну в общем, здесь явно постарались шаловливые ручки. Однако это не делает данный ноутбук бесполезным!

Помимо клавиатуры, мне не удалось отремонтировать и тачпад. Не знаю, что с ним делали, но даже GPIO-кнопки мыши не работают.

Помимо клавиатуры, мне не удалось отремонтировать и тачпад. Не знаю, что с ним делали, но даже GPIO-кнопки мыши не работают.

С завода здесь стоит Windows CE 6.0 с различным обучающим софтом для детей, но прошлый хозяин накатил сюда универсальную кастомную прошивку для устройств на WM8505 от PC_USER. Для верности я решил переустановить образ системы (благо он сохранился здесь): для этого достаточно лишь отформатировать SD-карту в FAT и скопировать папку script из архива в корень карты памяти. Поскольку в устройстве используется U-Boot, обновление прошивки реализовано за счёт использования autoscript'ов, которые заставляют загрузчик грузить ядро Linux или Windows CE с карты памяти и уже из юзерспейса копировать себя в NAND. Путем небольших манипуляций с скриптами, можно реализовать полноценный дуалбут или даже триплбут!

После установки системы, нас встречает такой родной рабочий стол... и вендор устройства сделал всё, чтобы опыт использования такого ноутбука был максимально приближен к полноценному компьютеру. Тут есть большое количество самого разного софта: начиная от офиса, заканчивая играми. И даже есть полноценный Windows Media Player вместе с TCPMP для поддержки YouTube:

Другие ревизии этого ноутбука с Wi-Fi и Ethernet могли также свободно сёрфить интернет. Из коробки был предустановлен пока ещё не совсем бесполезный PocketIE, а с помощью небольших манипуляций можно было даже установить Opera Mobile на актуальном в те годы движке Presto:

OpenNet откроет — и этого хватит!

OpenNet откроет — и этого хватит!

Помимо этого, в устройстве был предустановлен клиент ещё популярного тогда Skype. Уж не знаю как он работал на Windows CE, но учитывая что нормальный порт на Android делали года три — возможно что определенные нюансы точно в нём были.

Касательно офиса — здесь было всё необходимое: начиная от клиента почты, заканчивая эдакой вариацией на тему Excel. В целом, такие ноутбуки чаще всего и покупали для использования в качестве печатных машинок, SSH-терминалов (есть порт Putty на WinCE) и других подобных целей. Интересно что для WinCE есть частичный порт MS Office, причём даже с PowerPoint'ом, но в этой прошивке его почему-то нет.

Ну и куда-же без игр! Под ARM WinCE было достаточно много портов различной классики: начиная от эмуляторов игровых консолей, заканчивая казуалками по типу Zuma от Astraware. Однако большинство игр и программ использовали библиотеку gx.dll, которая давала прямой доступ к фреймбуферу устройства и была доступна только на коммуникаторах и КПК с PocketPC/WinMobile на борту. Энтузиаст из Германии даже разработал свою реализацию gx через GDI (заведомо более медленную), но большинство игр работает не совсем корректно, а эмуляторы по типу PocketNES банально не влезают в экран:

Внимательные читатели могли заметить, что в таскбаре запущено много программ, но при этом оперативной памяти в устройстве всего 128Мб и её всё ещё достаточно для запуска ещё нескольких приложений. В чём-же секрет? В том, что Windows CE потребляла памяти даже меньше, чем Win95, но при этом на ней был доступен .NET и часть прелестей WinAPI времен Windows XP. При этом над оптимизацией программ действительно заморачивались и поэтому софт не только экономен к ОЗУ, но ещё и шустро бегает на горяченном 300МГц ARMv5 процессоре!

Все запущенные программы в сумме занимают 30 мегабайт памяти с учетом ядра системы. Впечатляет!

Все запущенные программы в сумме занимают 30 мегабайт памяти с учетом ядра системы. Впечатляет!

❯ Ставим Linux

Эти ноутбуки появились в золотое время развития Android, когда каждый вендор чипсетов старался поддерживать все доступные на рынке операционные системы. Поскольку WonderMedia разрабатывала 8505 в том числе и для MID (планшетов), для чипсета был доступен порт Android 1.5 и исходный код ядра Linux. Имея такие вводные данные, вполне очевидно, что гики рано или поздно смогли запустить на нём какой-нибудь дистрибутив.

На WM8505 доступно два образа: с Arch и Debian Lenny. Поскольку я никогда не пользовался Арчем и всю линуксоидную жизнь я сидел либо на Debian, либо на Slackware, я решил остановиться на Дебиане. Некий добродетель выложил на archive.org уже собранное ядро + rootfs, готовое к установке: нам достаточно лишь разбить SD-карту на два раздела (первый — 32Мб, второй — остальное доступное пространство) с помощью утилиты fdisk, отформатировать первый раздел в FAT и скопировать на него папку script с ядром:

su
mkfs.fat /dev/sdb1
mkdir /mnt/wmboot
mount /dev/sdb1 /mnt/wmboot
tar -xvf ~/fatpart.tgz
sync

И отформатировать второй раздел в ext2, распаковав туда rootfs:

su
mkfs.ext2 /dev/sdb2
mkdir /mnt/wmrootfs
mount /dev/sdb2 /mnt/wmrootfs
tar -xvf ~/extpart.tgz
sync

После этого можно вставить SD-карту в ноутбук, включить его и посмотреть на надпись «Loading Windows...», которая плавно сменяется на вывод kmsg :)

Единственный нюанс — здесь собрана минимальная рутфс со всем необходимым софтом, включая dpkg и apt. Чтобы поставить XOrg и другие программы нужно искать свисток на чипе Realtek RT3070, либо же организовывать локальный файловый репозиторий на USB-флэшке (ведь в комплекте нет даже веб-сервера, который можно было бы развернуть на локалхосте)... но это мы с вами оставим уже для следующей статьи :)

В общем и целом, гиковские перспективы у таких гаджета есть. Если бы у меня было чуточку больше времени, я бы портировал в фреймбуфер эмулятор NES и SEGA, как я это делал для детского MIPS-ноутбука и мы бы с вами даже провели тесты — чьи 300МГц быстрее!

❯ Заключение

Вот такая статья об интересном детском ноутбуке у нас с вами сегодня получилось. Конечно нельзя сказать, что такой ноутбук является альтернативой старенькому ThinkPad'у с Арчем на борту, но сама концепция и понимание того, что твой гаджет работает на ARM-процессоре, как минимум достойна внимания!

А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.

Как вам такой ноутбук?
Всего голосов:
Что больше всего любите в моих статьях из рубрики обзоров и моддинга ретро-гаджетов?
Всего голосов:

Очень важно! Разыскиваются девайсы для будущих статей!

Друзья! Для подготовки статей с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я и хочу заняться и написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)

А также я ищу старые (2010-2014) подделки на брендовые смартфоны Samsung, Apple и т. п. Они зачастую работают на весьма интересных чипсетах и поддаются хорошему моддингу, парочку статей уже вышло, но у меня ещё есть идеи по их моддингу! Также может у кого-то остались самые первые смартфоны Xiaomi (серии Mi), Meizu (ещё на Exynos) или телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5 и т. п., о них я хотел бы подготовить специальную статью и видео т. к. на самом деле они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake!). Всем большое спасибо за донаты!

Подготовлено при поддержке TimeWeb.Cloud

Показать полностью 25 2
[моё] Опрос Покупка Ноутбук Нетбук Гаджеты Linux Windows Wince Via Компьютерное железо Ретроспектива Моддинг Длиннопост
57
24
Rock.Wolf
Rock.Wolf
В основном делаю посты по серии игр Disciples
Библиотеки Невендаара
3 месяца назад

Страж столицы для фракции Племена зеленокожих в Disciples II⁠⁠

А каким вы видите стража столицы фракции "Племена зеленокожих"? Первооткрыватели из проекта Revenge of greenskins хотели сделать гигантский тотем. В своих рассуждениях кому отдать роль стража столицы степей в рамках проекта Greenskins tribes мы их вариант отмели.

Страж столицы для фракции Племена зеленокожих в Disciples II

Предложи свой вариант в комментах!

Кто знает, может мы его и внедрим в игру!

Показать полностью 1
[моё] Disciples 2 Ретро-игры Темное фэнтези Компьютерные игры Disciples 2: Rise of the Elves Пошаговая стратегия Моддинг Орки
6
96
Rock.Wolf
Rock.Wolf
В основном делаю посты по серии игр Disciples
Библиотеки Невендаара
Серия Моддинг Disciples 2
4 месяца назад

Моддинг Disciples II, часть 4: добавляем новые портреты в игру⁠⁠

Прошлые части в этой серии постов - Моддинг Disciples 2.

Я знаю, что в прошлом гайде писал, что покажу, как добавить нового юнита в игру, но описание этого процесса требует больше времени, чем у меня есть. Поэтому сделаем первый шажок в эту сторону и научимся добавлять портреты для событий. Вы спросите зачем мне это, если нет юнита? Представьте себе ситуаци - вы захотели написать какой-то интересный диалог с использованием персонажа, который не представлен в игре лично (как было в оригинале с сюжетными персонажами типа Эмри, Амбриэль, Тора'ака и т.д.), то вам достаточно просто добавить нужный портрет, что куда проще, чем делать много анимаций, которые нужно внедрить в игру.

Для начала нам нужен сам портрет. Как его можно создать? В способах вас собственно никто не ограничивает. Вы можете использовать нейросети и затем дорабатывать их генерацию, можете отредактировать уже существующие портреты, как было сделано для портретов правителей при старте нового сценария/саги, можете взять изображение в интернете или с другой игры с некоторой обработкой, можете целиком отрисовать портрет в попытке попасть в стиль,а можете создать 3D модель и сделать скриншот портрета с постобработкой в фотошопе. Я пробовал первые три, увы моих навыков рисования не хватает для отрисовки или 3D скульптинга.

Покажу вам на самом быстром примере.

Я отдал ChatGPT изображение волка и медведя и попросил её сгенерировать мне в подобном стиле портрет других животных используя такой запрос:

Вот пример портретов волка и медведя. Сгенерируй на основании этих изображений портрет ТУТ_НАЗВАНИЕ_ЖИВОТНОГО, сохрани фон и рамку из оригинального изображения, сохрани тот же уровень детализации, теней и готичный стиль. Не трогай рамку и фон.

Получилось у меня следующее:

Сохранить рамку и фон не получилось, но изображение лягушки вышло достаточно хорошим. Расчехляем фотошоп. Вырезаем лягушку и вставляем в заранее подготовленную болванку пустой рамки и фона. Дело в том, что все портреты в игре не разделены на рамки + фон + портрет. Все это единое, неделимое изображение, поэтому нам необходимо взять сразу фон с рамкой и туда вставить нужное нам изображение. Размер при этом должен быть 350x450 пикселей.

Лягушка к слову получилась слишком крупная, поэтому пришлось ее масштабировать, стирать лишнее и т.д. Я не старался сделать идеально, поэтому при детальном рассмотрении могут быть видные огрехи. Сохраняем результат в PNG формате.

Ещё один шаг и изображение будет готово. Нам нужно прогнать изображение через специальную программу D2ImgEncoder.RC2, чтоб изменить кодировку изображения. По идее вы можете сами это сделать вручную через изменение на режим Индексации цветов вместо RGB, но у меня почему-то не сработало.

Через утилиту это будет выглядеть так:

Сначала делаем Open Image, ждем когда внизу появится Image processed, а затем делаем Save Image.

Итог:

Картинка готова попасть в игру, ура.

Что надо делать дальше? На этот раз нам понадобится незаменимая программа сделанная HSerg-ом D2ResExplorer v2.10.

Качаем, указываем путь к игре.

Ищем контейнер Event.ff, жмем правой кнопкой мыши по нему и нажимем Add.
После загрузки ищем в контейнере свое изображение по имени файла, ручками, да.

И жмем на него правой кнопкой мыши, надо удалить из имени расширение .PNG через переименование

Затем делаем сортировку

После этого заходим в игру и ваш портрет виден при выборе изображения для диалога.

Результат всех этих мучений:

Ещё я делал подобные фокусы с редактирование портетов, которые знаю, что многие из вас не любят. И ещё примеры зверушек, что я нагенерировал:

Разрешаю вам использовать их в своих модах :) Только пожалуйста не забудьте указать в благодарность ссылку на Библиотеки Невендаара. На этом пожалуй всё. В следующий раз ждите нового юнита.


Показать полностью 13
[моё] Disciples 2 Ретро-игры Компьютерные игры Моддинг Моды Портрет Пошаговая стратегия Темное фэнтези Длиннопост
10
9
Selevoy
Selevoy
4 месяца назад

Скины на Алису⁠⁠

Доченька очеловечила бездушную машину. Надо патентовать, а то Яндекс идею стибрит.

Скины на Алису
Показать полностью 1
[моё] Дочь Творчество Яндекс Алиса Моддинг
2
507
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
4 месяца назад

«22 года спустя»: Распаковываем Linux-мечту гика из 2003 года — новый Sharp Zaurus SL-7500C⁠⁠

Недавно я исследовал китайские онлайн-барахолки и наткнулся на лот с продажей абсолютно новых КПК Sharp Zaurus за 4.500 рублей. Будучи прожженным гиком и ярым фанатом всего, что хоть как-то похоже на ноутбук и работает на ARM-процессоре, я не смог устоять и решил приобрести его в свою коллекцию необычных Linux-гаджетов. А поскольку устройство абсолютно новое и опечатанное, я решил оформить распаковку и ретроспективу в виде ламповой статьи!

❯ Предыстория

В наше время нет никаких проблем купить себе интересный гиковский гаджет. То и дело небольшие компании по типу Planet Computers и Pine64 выпускают необычные устройства, по большей части предназначенные для доводки напильником и ковыряния ради самого процесса. Более того, в эпоху DIY, многие начинающие инженеры сами себе собирают гиковские штучки: я и сам являюсь одним из таких доморощенных маминых конструкторов.

Cosmo Communicator

Cosmo Communicator

Но в девяностых и нулевых всё было не так просто: Open Hardware-компьютеров вообще практически не существовало (кроме смартфона Neo Freerunner), а серийные Linux-устройства можно было пересчитать по пальцам. Но обширное коммьюнити не отчаивалось и пыталось портировать ядро на все гаджеты, где есть MMU и хоть какая-то документация на процессор. HP Jornada, Dingoo A320, HTC Magician, HTC Gene - на все эти устройства Linux был полноценно портирован исключительно силами коммьюнити!

RZX-50 использовал наработки сообщества по Dingoo A320.

RZX-50 использовал наработки сообщества по Dingoo A320.

Среди легендарных гиковских гаджетов, особенно выделяется серия портативных компьютеров Sharp Zaurus. Ещё в 2001 году, японская корпорация поверила в перспективы Linux и Qt и выпустила один из первых серийных КПК с «пингвином» на борту - SL-5000D. Модель отличалась полноценной QWERTY-клавиатурой, которая пряталась под выдвигающимся блоком системных клавиш, крупным цветным дисплеем с приличным разрешением 240x320, мощным процессором Intel StrongARM и наличием свободного SDK для разработки программ с использованием Qt.

Несмотря на высокую цену, устройство стало бестселлером среди гиков, которые старались выжать из устройства максимум. Кастомные прошивки, ядра с разгоном процессора, порты программ с ПК - всё это появилось задолго до Android-смартфонов! Попробуйте представить себе, насколько круто было запустить полноценный Wolfenstein3D в 2002 году на портативном гаджете...

Будучи коллекционером и одним из таких энтузиастов, мне тоже захотелось обзавестись легендарным японским КПК. Сначала я купил за копейки SL-5500D из утиля с эффектом, известным как «уксусный синдром» - когда из-за неправильного хранения поляризационная пленка дисплея начинает отслаиваться и из-за кристаллизации клея изображение начинает «плыть».

А затем мне попался лот с абсолютно новым SL-7500C для китайского рынка по весьма приятной цене в 4.500 рублей. Благодаря подписчику Роману и сервису YouCanBuy, я смог заказать гаджет и привезти в Россию, за что вам огромное спасибо!

❯ Распаковываем

Поскольку многие модели Zaurus продавались в основном на рынке Японии, в другие страны их нередко ввозили «серым» импортом. Китай, однако, был исключением - там ввозом устройств занималась корпорация CEC и буква 'C' в конце названия модели как раз говорит о том, что у нас версия для Китая. От японской она отличается упаковкой и языком прошивки.

Гаджет приехал ко мне в посылке, где находился фирменный пакет, коробка с аксессуарами и опломбированная отдельная коробка для самого гаджета. В коробке с аксессуарами лежат два огромных талмуда - один с инструкцией для устройства, а второй для внешнего CF-модема GC, который позволяет добавить устройству GPRS и даже возможность звонить! Самого модема в комплекте не было, зато был диск с софтом и драйверами, проприетарный дата-кабель, блок питания (5В с Barrel-jack, как на PSP и КПК HTC/HP), запасной стилус, аккумулятор и гарантийная информация. В общем, почти стандартный набор для тех лет.

А вот сам гаджет упакован особенно: отдельная коробочка с ленточной подпоркой, обшитая красной тканью, в которой гордо расположился SL-7500C. В подобных коробочках поставляются либо шедевры ювелирной работы... либо крутейшие гиковские гаджеты!

В качестве аккумулятора здесь используется литий-ионный элемент на 950мАч. Учитывая что АКБ хранится отдельно, мне было интересно остался ли в нём ещё хоть какой-то заряд спустя 21 год после выхода устройства. При первичном замере на клеммах было 0В (это на BMS, в самом аккумуляторе было ~2.6В), однако АКБ сразу же раскачался от лабораторного блока питания и подал признаки жизни.

На первый взгляд кажется, что литий-ионные АКБ не могут жить так долго, но при условии правильного хранения, аккумуляторы могут лежать и 10, и 15 лет, сохраняя заводской заряд. У меня лежат запечатанные аккумуляторы для сонериков и моторолл, которые всё ещё неплохо держат заряд и даже у SL-5500D, который я показывал чуточку выше, аккумулятор всё ещё жив спустя почти 25 лет!

Ну что-ж, пришло время подзарядить аккумулятор и впервые за 21 год включить нашего красавца...

❯ Знакомимся ближе

Даже спустя 22 года после релиза этот красавец включается и работает как ни в чем не бывало, причём родной аккумулятор всё ещё держит заряд минимум несколько часов. При включении нас встречает консоль Linux, затем логотип Qtopia и рабочий стол устройства, который представляет из себя вариацию на тему Windows. Изначально интерфейс у большинства «Завриков» на японском или китайском языке и возможности сменить язык на английский нет - нужно прошивать кастомную прошивку.

У Zaurus есть своя консоль восстановления, откуда можно прошить кастом, сделать бэкап и отформатировать пользовательский раздел. Вызывается она включением с зажатой кнопкой «ОК», далее можно выбрать метод обновления: с CF-карточки, SD или через USB. «Завры» очень прихотливы к SD-картам, даже обычные MMC он не видит и нормально работает только с CompactFlash!

Самой популярной кастомной прошивкой была CackoROM, предположительно от разработчиков из СНГ. В довесок к стандартной Qtopia, CackoROM добавлял менеджер пакетов, позволяя устанавливать новый софт, терминал, порты различных программ на Qt с KDE и кастомное ядро. Даже Midnight Commander портировали. Буквально LineageOS в мире Zaurus!

Прошиваемся

Прошиваемся

После прошивки, printk начинает выводить логи на экран, что прибавляло к крутости владельца 100 очков... А ведь раньше даже во времена Android убирали бутанимацию и делали вывод сообщений ядра!

SL-7500 - кровный брат-близнец модели C750, работающий на идентичном железе. Под капотом у них флагманское для своих лет железо:

  • Процессор - Intel XScale PXA255 на частоте 400МГц с одним ARMv5-совместимым ядром собственной разработки Intel. Процессор набирает почти в два раза больше очков MIPS, чем Pentium MMX и идёт на равных с Pentium II 300 - уже в 2003 году!

  • ОЗУ - 64Мб типа SDRAM. Классика для КПК тех лет, хотя в 2003 году ещё выходили модели и с 32Мб памяти.

  • Постоянная память - 64Мб типа NAND, производства Samsung. Для расширения памяти есть слот для SD, а также для карт CompatFlash.

  • Дисплей - TN-матрица разработки CG-Silicon с огромным по меркам тех лет разрешением - 640x480, диагональю в 3.7" и отличной цветопередачей с глубиной пикселя в 16-бит. У компактного КПК дисплей был не хуже, чем у некоторых актуальных для тех лет десктопов!

  • Коммуникации - USB, COM-порт, Wi-Fi и ИК-порт. CF также можно использовать для расширения функционала устройства с помощью дополнительных модулей.

После загрузки нас встречает рабочий стол Qtopia, разделенный на несколько вкладок: основные приложения, Java-приложения, настройки и проводник. Есть также фирменное меню пуск и панель задач - у «Заврика», как и у любого уважающего себя Linux-гаджета, есть многоконность!

Также здесь есть поддержка Java, но не J2ME как на телефонах, а Jeode с профилем, близким к CDC (J2SE ~1.1). По сути, это почти полноценная Java-машина с поддержкой awt - а значит на ней можно запустить различный ретро-софт. Из коробки здесь есть демо-апплеты, а также игра крестики-нолики, да и в целом поверх этой JVM можно реализовать MIDP 1.0 и запускать игры и программы для ретро-телефонов.

Zaurus отличался очень неплохими мультимедийными возможностями. Уже из коробки был предустановлен MP3-плеер, а также видеоплеер с поддержкой формата 3gp. Конечно едва ли в те годы можно было посмотреть на нём фильм, SD-карточки были ещё слишком малого объёма, но вот счастливые обладатели CF-карт на 256Мб уже могли попробовать посмотреть сильно пережатый фильмец!

Помимо этого, у Zaurus был полноценный веб-браузер NetFront 3.1 от компании Access. Это вам не урезанные WAP-сайты: миниатюрный гаджет мог просматривать настоящие WEB 2.0 страницы, а двумя движениями ноутбук превращался... в компактный планшет! В SL-7500C к сожалению нет ни WLAN, ни Bluetooth, поэтому подключить его к сети я не смог. Но уверяю у вас, OpenNet он бы точно открыл!

Поскольку Zaurus - это ещё и органайзер, в нём предустановлен различный офисный софт. Заметки, клиент E-Mail, календарь, записная книжка - всё это входит в стандартный набор программ. В целом, Zaurus можно считать прямым конкурентом тех же самых HP Jornada, LG Phenom и других WinCE-субноутбуков тех лет.

Ну и какой-же Linux-КПК обходится без возможности зайти в консоль под рутом и управлять системой как вздумается? На Zaurus легко можно было запускать консольный софт вообще без особых изменений, а также GUI-софт. Причём Qt был необязателен: многие эмуляторы рисуют сами себя либо сразу в фреймбуфер, либо используют библиотеку SDL. Возможности моддинга гаджета были неограниченными!

❯ Заключение

Вот такой необычный Linux-гаджет разработали в Японии в далёком 2003 году. На первый взгляд кажется что у него совсем нет применений в современном мире, однако на практике это вполне достойный портативный терминал, печатная машинка, игровая консоль и... телефон, если конечно у вас есть CF-радиомодуль. Подытоживая, можно сказать что Zaurus - один из самых ярких представителей ушедшей эпохи карманных портативных компьютеров.

А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статью) можно найти на моём YouTube канале.

Как вам Sharp Zaurus SL-7500C?
Всего голосов:
А что думаете о Zaurus в целом?
Всего голосов:

Очень важно! Разыскиваются девайсы для будущих статей!

Друзья! Для подготовки статей с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я и хочу заняться и написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)

А также я ищу старые (2010-2014) подделки на брендовые смартфоны Samsung, Apple и т. п. Они зачастую работают на весьма интересных чипсетах и поддаются хорошему моддингу, парочку статей уже вышло, но у меня ещё есть идеи по их моддингу! Также может у кого-то остались самые первые смартфоны Xiaomi (серии Mi), Meizu (ещё на Exynos) или телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5 и т. п., о них я хотел бы подготовить специальную статью и видео т. к. на самом деле они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake!) и устройства на Windows Mobile. Всем большое спасибо за донаты!

Показать полностью 22 2
[моё] Опрос Покупка Гаджеты Linux Гик Моддинг Прошивка Япония Sharp Кпк Ноутбук Ретроспектива Железо Intel Длиннопост
51
203
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
5 месяцев назад

Самая сложная «Змейка»: Как я отреверсил и хакнул кнопочный телефон, чтобы написать для него классическую игру⁠⁠

Осторожно: в данной серии статей я рассказываю о реверс-инжиниринге и хакинге простых кнопочных звонилок. Цель простая: расширить скудный функционал телефонов ценой до 1 000 рублей и сделать их привлекательной моддинг-платформой для самых разных гиков. Если вы когда-нибудь слышали про эльфы и патчи, и вам интересно узнать, как происходит процесс взлома и изучения прошивок, а также написания новых программ для кнопочников — приглашаю вас под кат!

❯ Предыстория

Недавно я познакомился с Ilya_ZX, человеком-легендой в моддинг сцене телефонов из нулевых. Илья рассказал мне забавную историю: ещё будучи студентом, он увидел как одногруппник играет на своём LG G1800 в легендарную мобильную игру нулевых — «Змейку». Его тогдашний Siemens A60 не умел ничего кроме игрушки Stack Attack, даже Java-игры не поддерживались, а молодому парню очень хотелось сыграть в Змейку на скучных парах!

Казалось бы, на дворе 2005 год, можно просто пойти на рынок и купить уже изрядно подешевевшую Б/У 3310 и поиграть в «трушную» змейку именно там. Но Илья был не просто студентом технаря, он с юности интересовался программированием, реверс-инжинирингом и телефонами! И он решил поспорить с одногруппником — сможет ли он реализовать Змейку на своём A60? Всего за один месяц он умудрился исследовать прошивку телефона на диковинной процессорной архитектуре, найти необходимые функции для работы с дисплеем, вводом и окнами и написать ту самую змейку. Попробуйте теперь представить лицо его одногруппника, который проиграл спор молодому реверсеру :)

Сначала Илья написал игру на Паскале для самопального «симулятора» A60, а затем переписал её на ассемблере для C166s!

Сначала Илья написал игру на Паскале для самопального «симулятора» A60, а затем переписал её на ассемблере для C166s!

На момент написания статьи мне 23 года, я лишь чуточку старше тогдашнего Ильи. После рассказанной истории, я подумал «А чем я хуже?» и принялся реверсить прошивку бюджетного кнопочника 10-й давности - Explay B240. В прошлой статье, мы с вами проделали первые шаги по хакингу телефона: загрузка прошивки в IDA Pro и поиск системных функций, хакинг файлового менеджера для запуска программ с MicroSD-флэшки, разработка загрузчика исполняемых файлов и организация таблицы функций. В целом, это весьма неплохая поучительная статья для новичков в реверс-инжиниринге.

Однако итоговый результат в виде заливки экрана желтым цветом может показаться незначительным. Поэтому в сегодняшней статье мы с вами напишем первую действительно полезную программу!

❯ «Змейка»

Напомню, что загрузчик внешних программ работает по очень простому принципу: мы нашли в дизассемблере функцию обработки сообщений окна встроенной игры и хукнули её, дабы при открытии окна она загружала программу с MicroSD-флэшки в ОЗУ и передавала ей управление. При этом загрузчик сразу интегрирован в проводник: при запуске файла с расширением .app, патч кладет строку с абсолютным путем к нему в одну из «угнанных» глобальных переменных, открывает хукнутое окно игры, а далее бинлоадер транслирует все сообщения от ОС в загруженную программу.

Наглядная демонстрация работы

Наглядная демонстрация работы

Таким образом, жизненный цикл приложений значительно упрощается по сравнению с "эльфами" на тех же Motorola и Siemens: по сути, нам остаётся лишь проинициализировать состояние программы в MSG_CREATE и освободить динамическую память в MSG_CLOSE. Читателям, которые хоть раз писали программы под Windows, такой подход может показаться очень знакомым!

Для реализации змейки, нам необходимо уметь обрабатывать кнопки и рисовать что-то на дисплей. С кнопками проблем никаких не возникает: система шлёт сообщения типа MSG_KEYDOWN_KEY и MSG_KEYUP_KEY на каждое событие с клавиатурой. А вот с графикой чуточку сложнее: поскольку встроенные в прошивку функции завязаны на работу с вшитыми ресурсами, мы напишем нужные функции сами.

UI-подсистема телефона реализована по принципу «грязных зон». Вместо перерисовки всего экрана, система хранит массив с координатами прямоугольников, где что-то изменилось с момента прошлой перерисовки: это позволяет сэкономить такты процессора на тяжелых операциях по типу альфа-блендинга.

Таким образом, сначала нам нужно получить указатель на буфер кадра, затем сделать весь экран «грязным» путем отрисовки полноэкранного прямоугольника и только потом поверх него рисовать графику нашей игры. На первый взгляд листинг ниже кажется дичью, но чуток отрефакторить — и выглядит как типичный код эмбедщика!

void Paint(LoaderContext* context)
{
LcdId lcd = { 0, 0 };
uint16* fb = ((uint16*(*)(LcdId* id)) LcdGetFrameBuffer)(&lcd); // Get framebuffer for primary screen

uint16 startEnd[4] = { 0, 0, 240, 320 }; // Rect
((void(*)(LcdId* lcdId, uint32 start, uint32 end, uint16 col)) LcdDrawRectPtr)(&lcd, ((uint32*)&startEnd[0])[0], ((uint32*)&startEnd[0])[1], 0x0); // Draw fullscreen rectangle

((void(*)()) LcdUpdateRect)(); // Update rect
}

Далее я реализовал функцию для отрисовки текста на экране. Шрифты самые примитивные — 8x8, побитовые, примерно как в знакогенераторе оригинального IBM PC. Принцип отрисовки прост: каждый символ (глиф) хранится в виде 8 байт. В каждом байте один бит представляет из себя пиксель по координате Y, если он равен нулю — значит пиксель прозрачный, в обратном же случае он должен быть закрашен нужным цветом.

Алгоритм для отрисовки шрифтов выглядит так:

int LcdDrawChar(LoaderContext* context, uint16* frameBuffer, char chr, uint32 x, uint32 y, uint16 color)
{
if(x >= 0 && y >= 0 && x + FONT_WIDTH < LCD_WIDTH && y + FONT_HEIGHT < LCD_HEIGHT)
{
int i, j;
unsigned char* glyph = (unsigned char*)(GLOBAL(context) + &embedded_font[chr * 8]);

for(i = 0; i < FONT_HEIGHT; i++)
{
short* fb = &((short*)frameBuffer)[(y + i) * LCD_WIDTH + x];

for(j = 0; j < FONT_WIDTH; j++)
{
if((*glyph >> (FONT_WIDTH - j)) & 0x1)
*fb = color;

fb++;
}

glyph++;
}

return true;
}

return false;
}

void LcdDrawString(LoaderContext* context, uint16* frameBuffer, char* str, uint32 x, uint32 y, uint16 color)
{
if(x >= 0 && y >= 0)
{
unsigned int i;

for(i = 0; i < strlen(str); i++)
{
if(!LcdDrawChar(context, frameBuffer, str[i], x, y, color))
return; // Out of screen

x += FONT_WIDTH;
}
}
}

Наверняка вы заметили страшный костыль в локальной переменной glyph с арифметикой над указателями. Дело в том, что на момент написания статьи, программа представляет из себя сырую склейку секций .text, .data, .bss и .rodata, поэтому на данный момент в ней нет релокаций, которые помогли бы сделать программу перемещаемой в памяти. В arm-none-eabi все вызовы функций без явного указателя — относительные, но при этом обращения к глобальным переменным и константам (например, строковым литералам) — абсолютные. Если попытаться напрямую использовать глобальную переменную по адресу 0x18 — программа будет пытаться читать или портить память в таблице векторов прерываний, что неизбежно приведет к HardFault. Поэтому для получения настоящего адреса переменной, к ней необходимо прибавить базовый адрес загрузки программы:

Этот костыль можно избежать, если в конец программы дописать сведения о релокациях, которые можно вытянуть путем парсинга промежуточного эльфа, а при особом желании — можно сделать так, что программа сама себя будет патчить «на лету»!

Далее мы рисуем нашу строку с текстом:

LcdDrawString(context, fb, SCONST(context, "Ya lyublu AvtoVAZ"), 0, 0, 0xFFFFFF);

И получаем следующий результат:

Для змейки, если она не ASCII, этого всё равно мало. Поэтому нам нужна функция для вывода картинок на дисплей. Написать загрузчик tga или bmp не составляет труда, но хотелось бы чтобы программа была самодостаточной и несла с собой все необходимые ресурсы. Поэтому для конвертации картинок я использую вот этот инструмент: выбираем файл, формат ставим в 16-бит 565 и преобразовываем в C-массив.

Процесс отрисовки изображения называется блиттингом, а его суть заключается в копировании пикселей с одной поверхности на другую. В нашем случае, исходная поверхность — само изображение, вторая — фреймбуфер. Также к пикселям могут применяться дополнительные операции: поворот и скейлинг (на фиксированные углы, либо же с аффинными преобразованиями), альфа-блендинг и колоркей.

void LcdDrawBitmap(uint16* frameBuffer, short* bitmap, uint32 width, uint32 height, uint32 x, uint32 y)
{
if(bitmap)
{
int i, j;
short* bmp = bitmap;

// Slow debug version
for(i = 0; i < height; i++)
{
for(j = 0; j < width; j++)
{
LCD_PLOT_565(clamp(x + j, 0, LCD_WIDTH), clamp(y + i, 0, LCD_HEIGHT), bmp[i * width + j]);
}
}
}
}

А отрисовать нашу картинку можно вот так:

LcdDrawBitmap(fb, (short*)(GLOBAL(context) + (uint32)&lada_bmp), LADA_WIDTH, LADA_HEIGHT, 0, 0);

Почему бы не спрятать дескриптор изображения в структуру?

Потому что в таком случае придется резолвить глобальный указатель два раза — первый раз на сам дескриптор, второй раз — на массив пикселей в дескрипторе, при всём этом необходимо необходимо будет разделить рантайм-изображения и ресурсы, что значительно переусложняет итоговую кодовую базу.

И вот наш результат. Не удивляйтесь тестовому изображению, просто я — прирожденный ТАЗовод!

Помощь

Помощь

Переходим к геймплею. Сама по себе «Змейка» в реализации — простая игра, где каждый уровень представляет из себя примитивную сетку. Алгоритм работы заключается в том, что раз в n-миллисекунд вызывается один игровой тик, который двигает игрока в текущем выбранном направлении. Если в момент тика нажата одна из кнопок-стрелок — направление движения меняется — тут всё очевидно:

Сама змея представляет из себя массив сегментов, который хранит свою текущую позицию в сетке уровня:

Для продвижения змейки по направлению, необходимо в обратном порядке обойти массив сегментов, переставляя текущий крайний сегмент на позицию предыдущего сегмента и так до самой головы. Позиция головы будет инкрементироваться относительно выбранного направления:

Для того, чтобы проверить скушали ли мы яблочко — достаточно сравнить координаты головы и объекта. Если они идентичны, то прибавляем очко и переносим яблоко на другую позицию:

if(state->Segments[SEGMENT_HEAD].X == state->AppleX && state->Segments[SEGMENT_HEADER].Y == state->AppleY)
{
state->Score++;
MoveApple(state);
}

Для респавна яблочка можно использовать два подхода: параметрические таблицы с заранее прописанными координатами объекта (эдакая псевдослучайность) и обычный PRNG-генератор, который путем реверса можно найти в прошивке.

Благодаря дипсику удалось определить, что в прошивке используется LCG. Вообще, нейронки очень сильно помогают при реверсе и могут легко анализировать стандартные алгоритмы: я тестировал от простых по типу memcpy, до относительно сложных как например программное деление по модулю и программная растеризация треугольника по Scanline-алгоритму.

unsigned int rand()
{
int v0; // r3
int v1; // r4
int v2; // r1

v0 = MEMORY[0x4710E80] - 1;
v1 = *(_DWORD *)(4 * MEMORY[0x4710E84] + 0x4710E88) + *(_DWORD *)(4 * MEMORY[0x4710E80] + 0x4710E88);
*(_DWORD *)(4 * MEMORY[0x4710E84] + 0x4710E88) = v1;
MEMORY[0x4710E80] = v0;
v2 = MEMORY[0x4710E84] - 1;
if ( v0 >= 0 )
{
--MEMORY[0x4710E84];
if ( v2 < 0 )
MEMORY[0x4710E84] = 54;
}
else
{
--MEMORY[0x4710E84];
MEMORY[0x4710E80] = 54;
}
return (unsigned int)(2 * v1) >> 1;
}

Если же голова оказывается в одном из сегментов или же за полем — игра окончена. Полный вес собранного приложения - 5 килобайт 644 байта! А ниже - демонстрация его работы:

❯ Заключение

Вот такой интересный моддинг бюджетного кнопочника у нас с вами сегодня получился. От слов к делу мы с вами написали первые действительно рабочие программы, которые может быть и не самые полезные, но поверьте, для гика важен сам процесс и объём получаемого от этого эндорфина...

Это приносит невероятное моральное наслаждение

Это приносит невероятное моральное наслаждение

А что ещё нужно парню в 23 года? Правильно: чтобы мотор бодро тянул любимую десятку и чтобы реверсилось всё легко и понятно! Исходный код и все что необходимо для установки бинлоадера есть в на моем гите.

А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статью) можно найти на моём YouTube канале.

Важно: друзья! Я уверен, что статью будут читать выходцы с форумов моддеров и возможно даже ребята, связанные с прошивочными боксами. Если у вас есть исходный код или объектные файлы для телефонов Siemens (S-Gold или E-Gold — не имеет значения) и вы хотели бы помочь общему моддерскому делу — напишите пожалуйста мне в Telegram. Несмотря на то, что этот код уже давно никому не нужен и E-Gold/S-Gold уже более 15 лет снят с производства, гарантирую полную анонимность и крутой контент :)

Очень важно! Разыскиваются девайсы для будущих статей!

Друзья! Если вам понравилась сегодняшняя статья про разработку эльфов, то спешу объявить: для подготовки будущих материалов с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я сейчас занимаюсь, а затем написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)

А также я ищу старые (2010-2014) подделки на брендовые смартфоны Samsung, Apple и т. п. Они зачастую работают на весьма интересных чипсетах и поддаются хорошему моддингу, парочку статей уже вышло, но у меня ещё есть идеи по их моддингу! Также может у кого-то остались самые первые смартфоны Xiaomi (серии Mi), Meizu (ещё на Exynos) или телефоны на Linux (например Motorola EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E6, ZINE ZN5 и т. п., о них я хотел бы подготовить специальную статью и видео т. к. на самом деле они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake!). Всем большое спасибо за донаты!

А ещё я держу все свои мобилы в одной корзине при себе (в смысле, все проекты у одного облачного провайдера) — Timeweb. Потому нагло рекомендую то, чем пользуюсь сам — вэлкам:

Показать полностью 19
[моё] Телефон Гаджеты Программирование Реверс-инжиниринг Хакеры Моддинг Кастомизация Игра змейка Гифка Длиннопост
24
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии