Друзья! Многие ли из вас помнят такой телефон, как Nokia N-Gage? В начале нулевых финская компания сделала смелую попытку ворваться на рынок игровых консолей, создав устройство, которое сочетало в себе сразу две функции: полноценный смартфон на базе аппаратной платформы WD2 с Symbian на борту и игровая консоль с собственными картриджами! Год назад читатель подарил мне N-Gage QD с некоторыми аппаратными проблемами, которую я успешно оживил и подготовил подробную статью, в которой мы: узнаем историю появления N-Gage на свет и на чём он работал «под капотом», отремонтируем устройство и узнаем о самых частых аппаратных «болячках» смартфонов Nokia на платформе WD2, а также посмотрим на местную игровую библиотеку подробнее и выясним особенности разработки игр под Symbian! Интересно? Тогда добро пожаловать под кат!
❯ Что за N-Gage и как он появился?
Пожалуй, в истории мобильного подразделения Nokia, N-Gage один из самых желанных и неоднозначных устройств, когда либо разработанных компанией. Девайс прошёл долгий путь от смартфона, который ругали чуть ли не все, до легендарного устройства, которое ценится некоторыми людьми и сейчас.
По сути, N-Gage является уникальным смартфоном. За всё время существования мобильного рынка, по настоящему игровых телефонов почти и не выходило: можно вспомнить телефоны Sony Ericsson с геймпадом EGB-30, Xperia Play, японские и корейские телефоны, о которых мало кто слышал, да и китайские реплики Nokia с эмулятором NES на борту.
Я писал материал о Xperia Play год назад
В начале нулевых, рынок мобильных игр начинал активно развиваться. С ростом мощностей мобильных девайсов и появлением цветных дисплеев, стали появляться самые разные платформы для запуска мобильных приложений и продажи игр через операторские сети. Например, довольно большим успехом пользовалась перспективная платформа Mophun (Sony Ericsson T310, T610), которая использовала собственный платформо-независимый байткод. Помимо этого, в платформе были уже готовые библиотеки для упрощения разработки игр: вывод 2D спрайтов, 3D графики (программный рендеринг), звука и обработка ввода. Нельзя также не вспомнить о Qualcomm BREW — который использовался во многих CDMA-телефонах в США и была по настоящему нативной, позволяя использовать все ресурсы телефона. Но самой популярной стала, конечно же, J2ME, которая предустанавливалась на большинство телефонов до ~2014 года.
Sony Ericsson T610 — один из девайсов, поддерживающих Mophun
Само собой Nokia не могли упустить момент и не попытаться занять нишу на мобильном рынке игр. У Nokia было две основные платформы: S40, используемая в кнопочных телефонах и S60, платформа основанная на Symbian, которая использовалась в смартфонах компании. Уже в 2003 году, в платформах S40 и S60 была полноценная поддержка J2ME игр и Java показывала себя как достаточно перспективная платформа. Nokia даже реализовали свои собственные расширения для J2ME, дабы игры могли использовать больше возможностей устройства, чем предоставляет MIDP. В целом, телефоны Nokia были очень популярными, благодаря чему почти все J2ME игры имели собственную версию под S40 (а иногда и более навороченные под S60).
N-Gage, который должен был объединить телефон и игровую консоль, был анонсирован ещё в ноябре 2002 года, однако вышел в свет 7 октября 2003 года.
Первая версия N-Gage
Однако N-Gage был отнюдь не первым устройством в подобном дизайне. Его предком принято считать Nokia 3300 — смартфон, который в первую очередь был ориентирован для использования в качестве мультимедийного устройства и прослушивания музыки. Тем не менее, устройство тоже поддерживало J2ME и его формально можно было назвать «игровым».
N-Gage был встречен весьма неоднозначно. В устройстве было достаточно много как аппаратных, так и программных недоработок, которые вызывали недовольство среди пользователей. Первая и пожалуй самая главная для игровой консоли — отсутствие возможности горячей смены картриджей с играми. Сами игровые картриджи были реализованы в виде обычных MMC-карт памяти, однако, судя по всему в S60 не было поддержки «горячей» замены карт памяти как таковой, из-за чего для смены игры необходимо было сначала достать аккумулятор, заменить флэшку с игрой, установить аккумулятор, включить устройство и дождаться его загрузки (секунд 15) и только потом уже начинать играть. А учитывая, что это был телефон, то довольно длительное пребывание вне сети устраивало далеко не всех пользователей.
Картриджи были проблемой и для жителей отдаленных регионов. В России, насколько мне известно, картриджи можно было купить только в Москве и СПБ, хотя возможно и ещё в каких-то больших городах. Но вот, например, у меня, жителя Ейска, едва ли была возможность купить картридж «физически» — разве что только под заказ. Другое дело Java игры, которые весили по 50-100 килобайт в те годы и без проблем скачивались даже через мобильный интернет. Впрочем, судя по всему, никакого особого DRM в N-Gage играх не было и после того, как энтузиасты научились сливать игры с MMC-карточек — на N-Gage начало процветать пиратство.
Даже с точки зрения звонков у девайса были свои нарекания. Конструктивно инженеры Nokia решили расположить слуховой динамик не с лицевой части, а с боковой. Из-за этого для разговоров приходилось переворачивать телефон боком. Выглядело это весьма необычно для прохожих, незнакомых с N-Gage. :)
Тем не менее, в устройстве были и революционные решения: вспомнить хотя-бы N-Gage Arena, который объединял мобильных игроков в одну сеть с друзьями, таблицами рекордов и т. д.
Чуть меньше чем через год, в мае 2004 года вышла N-Gage QD: исправленная и доработанная версия N-Gage, в которой заметно изменили дизайн, добавили поддержку замены картриджей без выключения девайса и добавили слуховой динамик на переднюю часть корпуса. Именно эта версия N-Gage стала популярной и её чаще всего можно найти на онлайн-барахолках.
И хотя N-Gage ругали за недоработки, мобильным игрокам она полюбилась за высокий уровень игр для телефонов тех лет: графика была гораздо лучше чем на GBA и была близка по уровню к PS1, геймплей разнообразнее, чем в Java-версиях, да и сами игры имели довольно большой полноценный сюжет. Это был действительно замах на уровень таких мастодонтов, как Nintendo! Приятным бонусом была полноценная поддержка Java-игр, благодаря чему на телефоне можно было гораздо удобнее проходить уже вышедшие игры для MIDP 1.0, даже если вся библиотека игр N-Gage уже была пройдена!
Не менее интересно девайс устроен и «под капотом». Как я уже говорил выше, N-Gage был построен на базе зарекомендовавшей себя платформы Nokia WD2, которая использовалась в смартфонах 3650, 3300, 3230, 6600 и.т.д. Многие годы смартфоны Nokia работали на базе чипсетов OMAP, в случае WD2 это скорее всего (не точно, есть вероятность что UPP собственной разработки — как и в случае с S40) были специализированные версии OMAP с «перевернутыми» регистрами для предотвращения портирования Linux на устройства Nokia, поскольку OMAP были доступны рядовым энтузиастам.
Характеристики N-Gage были следующими:
- Процессор: ARMv4 ядро на частоте 104МГц, что было стандартом для многих телефонов в те годы (например Siemens на платформе S-Gold работали на той же частоте, а E-Gold — вдвое меньшей). Скорее всего, процессор собственной разработки Nokia.
- Память: 16Мб SDRAM ОЗУ и 16Мб ПЗУ, раздельно. Иногда флэш-память изнашивалась и в СЦ её нередко меняли. Мои читатели, которые в нулевых работали в СЦ наверняка вспомнят о «бутербродах» на некоторых телефонах :)
- Дисплей: 2.1" матрица с разрешением 176x208 и глубиной цвета 12-бит (4096 цветов), выполненная по технологии CSTN (хотя возможно и TN). Для тех лет, диагональ дисплея и его разрешение были оптимальными, круче были только коммуникаторы с 2.4" дисплеями 240x320. Фактически все (или почти все) смартфоны Nokia на Symbian тех лет использовали одну и ту же матрицу, с чуть разной длинной шлейфа (просто где-то её переворачивали вверх-тормашками, как на N70).
- ОС: Symbian 6.1
- Аудиовыход: 2.5мм джек (моно)
Как видите, ни о каком GPU и речи не шло. Вся отрисовка полагалась исключительно на процессор и результат того, что даже такие крутые 3D-игры как Tony Hawks и Tomb Raider идут на N-Gage — заслуга программистов, которые оптимизировали свои рендереры для работы на 104МГц ядре! А ведь некоторые телефоны тех лет (например, Motorola) использовали отдельные 2D GPU для ускорения отрисовки интерфейса и работы с камерой — ATI Imageon!
Благодаря тому, что девайс строился на смартфонной платформе, на нем можно было не только играть, но и слушать музыку, а также смотреть видео и серфить интернет. Весьма и весьма для тех лет!
Даже спустя несколько лет после выхода телефон N-Gage, сам бренд и платформа N-Gage Arena продолжила существование на флагманских смартфонах Symbian, которые уже не имели такой игровой дизайн. Одним из N-Gage 2.0 девайсов была легендарная Nokia N95, которая в плане игровой направленности была гораздо круче, поскольку в устройстве использовался GPU PowerVR MBX Lite. Да, точно такой же, как и в iPhone 2G!
❯ Как он ко мне попал?
Конечно же, рано или поздно я и сам хотел обзавестись собственной N-Gage, с чем мне помог мой читатель, причём всё как я люблю: девайс был полурабочим и требовал некоторого ремонта. Более года назад мне написал подписчик на DTF с никнеймом «Improved white bonkle» и предложил заслать N-Gage QD и ещё одну плату под ремонт с некоторыми аппаратными проблемами: первая плата висела на белом экране, а вторая просто висела на логотипе Nokia без подсветки экрана. Помимо N-Gage, читатель положил «толстую» зарядку и флэшку на 1Гб, за что ему огромное спасибо.
Читатель рассказывал, что девайс он покупал у некого коллекционера «гаг» в России и довольно много играл на ней в эксклюзивные игры для данной платформы. После поломки устройства, девайс лежал у него какое-то время, пока он не заметил мои статьи и не решил заслать устройство под ремонт в хорошие руки. :)
Ну что ж, давайте оживим девайс!
❯ Ремонтируем устройство
Я не зря отметил то, что девайс подарили мне более года назад. Мне удалось сразу продиагностировать N-Gage и обнаружить неисправности, однако фактически отремонтировать устройство у меня не вышло: в то время я откровенно «бомжевал» и у меня даже более-менее адекватной паяльной станции не было. Дабы было понятно: тогда я перепаял коннектор АКБ, сейчас я восстановил BTEMP. На данный момент мне материально активно помогаете вы, мои читатели, поэтому за год я смог обустроить небольшое рабочее место, пригодное для проведения большинства ремонтных работ.
Разбирается девайс очень просто, как и большинство телефонов Nokia тех лет: снимается передняя часть корпуса (панелька), откручиваются винты, снимается пластиковая часть с клавиатурой, дисплей и затем плата из задней части корпуса. Кстати, панельки очень часто любили менять для придания свежего вида устройству: эдакие скины тех лет. :)
Обратите внимание на то, что некоторые детские болячки пользователь и сам мог отремонтировать. Не работает разъём ЗУ, наушники, вибромотор или динамик? Пошёл, купил за 10 рублей на ближайшем радиорынке и сам поменял! Вот уж настоящий right to repair. :)
Визуально осмотрев плату, я пришёл к выводу, что плата скорее всего не копанная китайцами: компаунд UPP'а (процессор) и Mjoelner (радиотракт) был не тронут, флэша с виду тоже в норме, все элементы стояли ровно. Однако около коннектора аккумулятора, я обнаружил следы канифоли: кто-то явно вручную перепаивал коннектор АКБ. Спросив у читателя, я получил утвердительный ответ: он действительно пытался перепаять коннектор аккумулятора с помощью советского паяльника.
Но почему же тогда устройство виснет на заставке Nokia без подсветки? Давайте взглянем на схему:
У коннектора АКБ три контакта: плюс питания, масса и BSI, который уходит напрямую в UEM (контроллер питания). Смартфоны Nokia на платформе WD2 были очень капризны к сопротивлению на BSI и UEM отказывался давать разрешение на старт при установке несовместимого аккумулятора. Казалось бы, BL-4C, BL-5C и BL-5CB по размерам почти одинаковые, но имеют разное сопротивление на BSI.
Однако даже при установке совместимого АКБ, устройство отказывалось включаться. Вывод простой: линия BSI находится в обрыве. Первым делом я сдул коннектор АКБ, перепаял его и девайс наконец-то нормально включился… ненадолго.
Произошло падение в «белый экран», как и вторая плата. Причиной этому стала «стекляшка» рядом — токовый датчик LM3820: вероятно, в ходе ремонта коннектора, читатель умудрился неравномерно поплавить шары под стекляхой, из-за чего контакт нарушился. Стекляха среагировала на прогрев с флюсом и девайс снова включился…
Коннектор уже был в, скажем так, неидеальном состоянии, поэтому для точного исключения влияния коннектора я залудил пятачки. Чуть позже заменю коннектор, а то не очень красиво выглядит :)
Но не заряжался. :( При попытке зарядить девайс, система показывала сообщение «не заряжается» и потребление падало в ноль. Ремонт я проводил ещё тогда, когда у меня и станции нормальной не было, из-за чего я умудрился сколоть NTC-термистор прямо под коннектором аккумулятора (обычно он расположен либо с обратной стороны коннектора АКБ, либо с обратной стороны платы), прямо с пятачками.
Я знаю, что иногда меня читают опытные мастера с многолетним опытом, которые уже тянутся написать «Рукожоп! Мы в нулевых в ещё более тяжелых условиях умудрялись мобилки ремонтировать, а ты вон люкей себе не смог купить!». Но я лично считаю, что если косяк нормально исправлен, даже через год — то это не косяк. :) Поэтому лезем в схему и смотрим, куда у нас уходит BTEMP:
BTEMP идёт в UEM через обвязку в виде конденсатора C230, который расположен с обратной стороны платы, около КП. Найти его можно в Component finder'e, который можно найти в самом конце почти любой схемы на телефоны Nokia:
Подпаиваемся, включаем и девайс и… всё снова работает, в том числе и зарядка. :)
На этом ремонт устройства закончен.
Отдельное слово хотелось бы сказать о дисплеях: для N-Gage обычно их принято считать достаточно редкими. Однако есть нюанс: практически все смартфоны Nokia на платформе WD2 (и пару на BB5 — например, N70) использовали одну и ту же матрицу с параллельным интерфейсом. Различия были лишь в форме шлейфа. В N70, например, этот дисплей ставился «перевернутым», однако длины шлейфа не хватало для того, чтобы поставить дисплей в N-Gage. Тем не менее, теоретически можно попробовать поставить куда менее редкий дисплей от 6630.
В процессе подготовки материала и изучения схемы, я вывел небольшой мануал по базовой диагностике N-Gage и любого телефона Nokia на платформе WD2:
- Белый экран, есть звук включения и реакция кнопок. Чаще всего виноват EMIF-фильтр COM01F2: хрупкая «стекляха», которая повреждается при попадании влаги или падении устройства. Реже — обрыв сигнальных линий дисплея до коннектора дисплея, а то и отвал омапа.
- Белый экран, ноль реакции: из-за бага в первых версиях прошивки, при полном заполнении внутренней памяти девайс виснул на белом экране. Реже — проблемы с питанием на OMAP, отвал процессора. Из-за попадания воды может пострадать токовый датчик.
- Нет подсветки, лого Nokia: обрыв BSI или неподходящий аккумулятор.
- Нет реакции на кнопку включения: замерить напряжение на входе кнопки включения (должно быть близко к VBAT), дальше смотреть в сторону UEM и его обвязки. На некоторых смартфонах Nokia (уже чуть более поздней платформы — например N70) кнопка включения идёт через EMIF-фильтр вместе с клавиатурой, из-за чего убитая стекляха может стать причиной отсутствия напряжения на PWRON.
- Нет подсветки, есть изображение: проверить напряжение на C130 — если там есть 13.3В, значит бустер работает нормально. Если напряжение более 13В, то нет фидбека (т. е. катода с подсветки на самом дисплее), необходимо проверить обрыв на коннекторе дисплея. Проверить драйвер подсветки D130, при необходимости заменить (подходит с многих Nokia тех лет, иногда кустарно заменяют на драйверы подсветки с других телефонов).
❯ Знакомимся с девайсом поближе
Как я уже говорил выше, читатель задарил мне ещё и флэшку, на которой было установлено куча игр: как портов игр с других платформ, так и нативных «дампов» с картриджей, а также эмуляторов. Было ли во что поиграть на N-Gage? Давайте узнаем:
Именно на платформу N-Gage вышло не так уж и много игр: всего около 50. Однако среди них всё равно найдется во что поиграть: многие известные издатели решили рискнуть и разработать игры по собственным вселенным для N-Gage. В каких-то случаях это были порты с других платформ (например, Asphalt 2 с PSP, хотя это не совсем верно, поскольку Asphalt изначально мобильная игра), в каких-то уникальные игры, дополняющие ЛОР той или иной вселенной (например, TES Travellers). Не забываем про игры для обычных Symbian-смартфонов, порты и J2ME игры: таким образом, библиотека получается весьма и весьма обширной!
Ну и не стоит забывать и о эмуляторах! С играми для NES и SMD, игровой потенциал N-Gage увеличивается в разы. Ещё бы дисплей был чуть-чуть побольше и хотя-бы классический TN, а не немного блеклый CSTN и было бы вообще идеально.
Помимо игр, на многих Symbian-смартфонах стояли некоторые приложения, которые были must-have для тех лет: например, файловый менеджер X-Plore с диспетчером задач, а также сторонний плеер LCG JukeBox (нормальный плеер с плейлистами появился только в Symbian 8). Иногда диспетчер задач не спасал и девайс приходилось перезагружать.
Давайте же глянем на игры подробнее. Как я уже говорил ранее, все 3D-игры были софтварными: т. е. вся трансформация, обработка освещения и растеризация треугольников с текстурированием и перспективной коррекцией (если была) происходила исключительно на ЦПУ. Поскольку FPU в процессоре не было, использовались fixed-point числа.
Переходим к гоночкам. Тут у нас аж две части Asphalt, ещё тогда, когда серия не стала донатным «фритуплеем». Asphalt 2 весьма занимательная игра с оптимальной производительностью, кое-где конечно бывают просадки, но в целом более чем играбельно. Как это игралось в нулевых? Сравните скриншоты с j2me-версией, которая напоминает гоночные 2.5D игры с SMD и NES (при этом, в ней есть 3D-элементы и игра использует M3G) и версию для Symbian/PSP/NDS, думаю тут всё и так будет понятно:
Однако большинство читателей наверняка интересуют игры в известных вселенных. Взять, например, полноценный порт первой Tomb Raider. Насколько я понимаю, оригинальная TR славилась тем, что изначально разрабатывалась с расчетом на легкое портирование между разными платформами (да чего уж там говорить, игру отреверсили и переписали с нуля как минимум два раза!). Первый Pentium неплохо тянул TR в софтваре, а N-Gage справляется явно не хуже:
Не забываем и про 2D! В некоторых телефонах Motorola, Siemens и Samsung использовались внешние 2D видеоускорители ATI Imageon. В их задачи входила обработка изображения с камеры, функции контроллера дисплея, а также аппаратное ускорение некоторых 2D-операцией: блиттинг, отрисовка линий, прямоугольников и возможно ещё каких-то примитивов. Однако N-Gage, даже без помощи аппаратного блиттинга был способен выдавать приемлемый FPS и уровень графики в 2D играх. Например, в Sonic, где у нас есть параллаксовые фоны с покадровой анимацией:
Ну и нельзя не вспомнить про уникальную игру на N-Gage: TES Travels Shadowkey, которая была разработана специально для N-Gage и поиграть в неё можно только на оригинальном N-Gage, пропатченном Symbian-девайсе или EKA2L1. Вообще, это полноценная RPG от первого лица, расширяющая лор игры в Хаммерфелле и как минимум из-за этого она достойна к ознакомлению. Игра стилистически заметно напоминает Morrowind, графика близка по уровню к PS2. FPS, конечно, колеблется в районе 10, из-за чего игру можно считать пошаговой… но тем не менее, полноценная FPS RPG на мобилках — это многого стоит!
Есть также примеры отличной графики и… очень низкой производительности. Если в TES ещё можно попробовать поиграть в пошаговой манере, то как насчет шутера от первого лица в 5-6 кадров? Речь, конечно же, о Call of Duty. Игра получилась очень красочной (с трушными полигональными ландшафтами и кучей пропов), но крайне медленно работало на желез N-Gage.
❯ А как насчёт хоумбрю?
С разработкой своих приложений под N-Gage дела обстоят сложно. С одной стороны, в Symbian 6.1 ещё не было сертификатов, необходимости делать джейлбрейк и менять дату в устройстве. С другой стороны, для разработки под N-Gage требуется установка оригинального SDK для S60: приложения скомпилированные с помощью более свежих версий SDK работать не будут! Ни о каком Qt и речи не идёт и даже Carbide окажется слишком свежим для нашего устройства.
Оригинальный SDK можно скачать здесь.
Кроме того, SDK использует весьма своеобразную систему сборки, написанную на Perl, которая поддерживает только древнюю версию ActiveState Perl 5.6.1 аж от 2001 года и не работает на Windows 7/8/10! С отладкой на реальном устройстве тоже возникнут проблемы: для этого необходим относительно редкий FBus-кабель (который устанавливается вместо аккумулятора и подключается к ПК через RS232-преобразователь), либо использование программатора а-ля UFS HWK. Хотите отлаживать игру на ПК? Тут есть симулятор, прямо как при разработке под iOS: однако этих симуляторов целых два (для Visual C++ 98 и CodeWarrior) и с каждым возникают проблемы при сборке (то линкер крашнется, то разработчики забудут положить часть реализации системных либ для разных симуляторов в разные версии SDK). Хотите разрабатывать игры? С симулятором об этом можно забыть — отрисовка слишком медленная. Готовьтесь писать кроссплатформенный рантайм, который под Windows будет использовать GDI, а под Symbian нативное API для графики! Программа крашнулась на реальном устройстве и инструментов для отладки у вас нет? Ничего подробнее «приложение остановлено» вы не получите!
Ну а вишенкой на торте станет весьма своеобразный сабсет C++, который используется для написания приложений. Сама система полностью построена по принципам ООП, однако ради уменьшения размера выходного кода была полностью убрана поддержка исключений: предполагается, что программист будет вручную помещать объекты на стек (для Stack unwinding'а), полностью убран RAII как концепция с введением NewL и ConstructL, где L — означает Leave (т.е исключение может выбросить только функция-фабрика, а не фактический конструктор) и кодов ошибок, а также полное отсутствие поддержки глобальных переменных (но есть частичная поддержка констант — из преинициализированных данных, судя по всему, поддерживаются только строковые литералы). Да, никакого .data и .bss, что серьёзно усложняет портирование существующих приложений под Symbian. Спасибо что есть пакет для совместимости с POSIX и реализовали часть stdlib.
Дело улучшает кастомный SDK для хоумбрю от энтузиаста из Германии. Он портировал SDL2, Lua и адаптировал тулчейн для работы в современных системах. Но лично для меня это не трушно — нужно использовать оригинальный SDK. :)
В целом — это одно из объяснений того, почему N-Gage стала относительно провальной как платформа для игр. Конечно в своё время был жив форум разработчиков Nokia, где были как официальные сэмплы от Nokia, так и мануалы от других разработчиков, однако базовые косяки при проектировании архитектуры платформы портили всю малину. Чего уж стоит обратная совместимость: для быстрой отрисовки графики предполагалось рисовать картинку в обход графического сервера, напрямую получая указатель на фреймбуфер. В начале фреймбуфера лежала структура с описанием разных пиксельформатов, которые были отнюдь нестандартными: 12-битный, 16-битный, 18-битный. Из-за этого, игры для старых версий Symbian могли давать артефакты на 9.x, например.
Написание полноценной, пусть и небольшой игры — материал для отдельной статьи. Есть идея написать кроссплатформенную игрушку, которая работала под разными платформами кнопочных девайсов: от Motorola ROKR на Linux и китайских клонах Nokia (E71 все помнят?), до эльфов на Siemens'ах и Motorola E398. Таким образом, мы рассмотрим особенности разработки под каждую платформу (например, на моторах был 2D-ускоритель ATI Imageon).
❯ Заключение
Вот таким был легендарный N-Gage. Девайс, конечно, действительно весьма своеобразный. С одной стороны это гениальное решение: взять смартфонную платформу и сделать на её базе игровую консоль. С другой стороны, с разработкой игр под N-Gage, или, например, прямыми функциями телефона были свои проблемы. Девайс получился немного сыроватым, но лично я считаю, что концепция имеет право на жизнь, но пока ни у кого не получилось сделать действительно массовый девайс. По моему мнению, нужно сохранить как можно больше N-Gage живыми. Сложно даже представить сколько потенциально оживляемых плат уехало в чермет…
А вам понравился N-Gage?
P. S.: Друзья! Время от времени я пишу пост о поиске различных китайских девайсов (подделок, реплик, закосов на айфоны, самсунги, сони, HTC и т. п.) для будущих статей. Однако очень часто читатели пишут «где ж ты был месяц назад, мешок таких выбросил!», поэтому я решил в заключение каждой статьи вставлять объявление о поиске девайсов для контента. Есть желание что-то выкинуть или отправить в чермет? Даже нерабочую «невключайку» или полурабочую? А может, у этих девайсов есть шанс на более интересное существование! Смотрите в соответствующем посте, что я делаю с китайскими подделками на айфоны, самсунги, макбуки и айпады!
Понравился материал? У меня есть канал в Телеге, куда я публикую бэкстейдж со статей, всякие мысли и советы касательно ремонта и программирования под различные девайсы, а также вовремя публикую ссылки на свои новые статьи. 1-2 поста в день, никакого мусора!
Возможно, захочется почитать и это:
- ➤ Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?
- ➤ МС6205. Плазменный дисплей советской эпохи
- ➤ Декодер протокола RC-5 на микросхемах стандартной логики
- ➤ Брошенные идеи: консоли, которые так и не появились на свет
- ➤ Полная история игровой вселенной «Гарри Поттера» — «Золотое поколение»
Комментарии (34)
bodyawm Автор
18.01.2024 08:08+4Друзья! В декабре и январе материал стал выходить немного реже - теперь раз в две недели. Я трачу время на подготовку гораздо более подробного материала и составляю план статей на месяц-два вперед.
Что нас ждёт в следующих статьях:
-
Недавно читал статью о самопальной ОС под x86 от группы молодых ребят. Вспомнил, как в юности (лет в 14-15) тоже сидел и пытался что-то под real mode запилить, тогда же и асм подучил. Пришла в голову идея написать полноценную 2D-игрушку, которая работала бы в реальном режиме, но при этом была бы самодостаточной и не требовала API DOS для работы. т.е вся работа с железом IBM-PC полностью через вызовы BIOS (который нужен будет только для I/O с диском и установки видеорежима), порты ввода-вывода и общения с платами расширения напрямую.
т.е наша игра, помимо геймплея, будет реализовать: первичный загрузчик с дискеты (тот самый MBR, который 512 байт), софтварный блиттер (от VBIOS там будет использоваться только установка видеорежима), аппаратный звук для SoundBlaster'а, обработка ввода/вывода с PS/2 через IO порты, дисковую подсистему для загрузки с флоппика и работу с файловой системой.
Фактически, мы будем писать игру по концепции, больше применимой к консолям (т.е игры напрямую дергают биос и работают с железом), но для ПК. Сейчас активно ищу ноут на 486/586 для тестов, потому что P III ни трушна (и там в зависимости от чипсета чуток ломается совместимость с IBM-PC)!!! В ближайшее время выйдет материал о разработке собственных нативных (!) программ под китайские дешевые кнопочные телефоны. Всегда хотелось закастомайзить свой Ф+ за 500 рублей, но не было возможности? Такая возможность есть!
Подробно расскажу о различных китайских нативных аппаратных платформах, установку SDK, особенности развертывания программы на реальном устройстве и на практике напишу игру, которая работала бы почти на любом китайском кнопочнике!Сейчас ковыряю юлито в поисках журнала Vogue от Декабря 2010 года. Молодые читатели спросят "что? На кой тебе женский журнал 13 летней давности!?". А весь секрет заключается в наличии дисплейчика в таком журнале и плате с собственной флэшей, ОЗУ и MIPS-чипсетом от Ingenic!
В свое время, такие крутые дядьки как@dlinyjраскопали Vogue вдоль и поперек, но каких-то standalone-девайсов вроде так и не сделали. Я хочу исправить этот пробел :)Один крутой и секретный проект, о котором пока ничего не расскажу, но по уровню он будет не хуже прошлогоднего материала про моддинг Fly :)
dlinyj
18.01.2024 08:08+5В свое время, такие крутые дядьки как@dlinyjраскопали Vogue вдоль и поперек, но каких-то standalone-девайсов вроде так и не сделали. Я хочу исправить этот пробел :)
Лавры славы получать с Vogue не буду, там по настоящему крутые дядьки были @tronix286@ValdikSS и многие другие, которые по настоящему внесли большой вклад в этот проект. На тот момент я был скорее весёлым балагуром :)
MaFrance351
18.01.2024 08:08+1Любопытно, что компания, которая отвечала за начинку для этих журналов, всё ещё жива и даже выпускает что-то подобное, хоть и не для масс. Вот бы достать экземплярчик...
dlinyj
18.01.2024 08:08Да, я с ними сотрудничал даже. Проект новогодней открытки. Типа сверху звёздное небо, а справа ёлка новогодняя.
dlinyj
18.01.2024 08:08+2т.е наша игра, помимо геймплея, будет реализовать: первичный загрузчик с дискеты (тот самый MBR, который 512 байт), софтварный блиттер (от VBIOS там будет использоваться только установка видеорежима), аппаратный звук для SoundBlaster'а, обработка ввода/вывода с PS/2 через IO порты, дисковую подсистему для загрузки с флоппика и работу с файловой системой.
Рекомендую глянуть мою публикацию по теме: Разработка BIOS на языках высокого уровня и ещё постик в ЖЖ Проекты в стол. Stillalive-os То, о чём на хабре я видимо никогда не напишу. Там полезный материал с кучей кода от польского талантливого товарища https://github.com/maniekx86/stillalive-os .
bodyawm Автор
18.01.2024 08:08Да, первую статью читал, годнота.
У меня один из проектов, которые пока что только в планах - собрать чипсет (северный мост, "ULA", кому как удобнее) для настоящего, аппаратного Z80 своими руками. Под основу возьму какой-нить МК, скорее всего RP2040. Компьютер не будет спектрум-совместимым, но будет способен выполнять некоторые программы, выводить данные на дисплей и обрабатывать ввод. Вполне крутой проект, ящитаю!
Насчет конкретно IBM-PC, хотелось как-нибудь свою ISA-карту расширения изобрести. Но это пока что только лишь в планах :) Благо документацию легко найти в сети.
dlinyj
18.01.2024 08:08+1Насчет конкретно IBM-PC, хотелось как-нибудь свою ISA-карту расширения изобрести. Но это пока что только лишь в планах :) Благо документацию легко найти в сети.
Советую пообщаться с @MaFrance351 он тоже вынашивает такие идеи.
скорее всего RP2040.
Странное впечатление произвела этот контроллер. Колоссальная мощь, два ядра, просто разве что щи не варит. Но когда сишный проект решил разделить на два файла, как делают все нормальные люди, сразу перестало всё работать, хрен соберёшь и прочее-прочее. Ковыряться как отказаться от cmake в пользу обычного make чтобы побыренькому накалякать программу стало лень...
bodyawm Автор
18.01.2024 08:08Да, MaFrance351 частенько в комменты приходит, думаю и этот пост он заметит :) Посмотрим, может и скооперируемся.
Я лично не встречал проблем с системой сборки. Но не спорю, что какие-то косяки могут встречаться. Сам контроллер оч крутой, но иногда наоборот хочется послабее и более урезано :)
dlinyj
18.01.2024 08:08Я лично не встречал проблем с системой сборки.
Покуда монолитный файл, проблем нет. А попробуй функцию, которая вызывает таймер и работает в отдельном потоке вынести в библиотеку.
MaFrance351
18.01.2024 08:08+3Да, MaFrance351 частенько в комменты приходит, думаю и этот пост он заметит :)
Хыхых.
kox
18.01.2024 08:08+1Лучше не на контроллере чипсет разрабатывать, а на FPGA. В эту же FPGA можно и Z80 запихать, есть реализации- T80 например. Лет 8 назад баловался таким образом.
bodyawm Автор
18.01.2024 08:08На ПЛИС круто сделать ULA, но совершенно не круто запихивать туда весь проц. Да и в конце концов, для обвязки вполне и МК подойдет: вывод у нас будет на параллельный дисплей, а то и SPI, кнопки будут I/O портом с битовыми масками и.т.п.
bodyawm Автор
18.01.2024 08:08+2Ну и чуть не забыл, есть идея собрать игровую консоль а-ля тетрис "из подручных средств", с бюджетом 100 рублей.
МК - с платы-контроллера для условной стиральной машины, или еще какого-либо устройства, дисплей с Moto C350, бустер подсветки - с нерабочего телефона, кнопки тоже откуда-нить возьмем, буззер с материнки нерабочей и.т.п :) Звучит дико, а по факту интересно и напоминает опыт эмбедщиков в нулевые, когда еще не было такого широкого доступа к ардуинам/ESP32 и.т.д.
MaFrance351
18.01.2024 08:08+1дисплей с Moto C350
Ещё в те годы от Siemens экраны массово использовались. Потому что стоили дёшево, подключались легко, а имелись тогда на каждом радиорынке...
bodyawm Автор
18.01.2024 08:08Сейчас дисплеи на симаки относительно редкие, поэтому их юзать будет слишком жирно
bodyawm Автор
18.01.2024 08:08Ну и вдруг кто-то из читателей продает/отдает в хорошие руки ноутбук середины 90х, как раз для материала про игру под 486. Можно и невключайки и девайсы с диковинными БП (всё смастерю, при необходимости попробую отремонтировать и сделаю сам). Пишите в ВК или тг @monobogdan
-
yurash
18.01.2024 08:08+2Конечно помню - мой первый смартфон! Покупал когда уже было понятно, что все игры будут доступны в пиратке. Впечатления были положительные - неплохие игры, нормальная звонилка.
cypok
18.01.2024 08:08+1У меня был Nokia 6630, поддерживающий игры N-Gage. Больше всего играл в Asphalt и Tony Hawk's Pro Skater.
Когда поступил в универ в 2007-ом, даже довелось сделать кроссплатформенный студенческий проект на Python, который рисовал графики функций и на PC, и на S60.bodyawm Автор
18.01.2024 08:08+1Котлета!
cypok
18.01.2024 08:08+2А вот и нет, котлетой называли 6600, если я и гугл правильно помним.
bodyawm Автор
18.01.2024 08:08+3Они обе на котлету похожи!
HMD может сыграть на этом и сделать телефон-колонку. Формы обоих девайсов позволяет :
MoscowBrownBear
18.01.2024 08:08+1Купил себе N-Gage 1, 2004 или 2005 году (учился в институте) т.к. не хватало денег на 6600. Основная его проблема была в том что не было камеры. На сколько сейчас помню я купил его 4300 рублей, что то такое. А 6600 стоил 6-8 т.р.
MaFrance351
18.01.2024 08:08+2У коннектора АКБ три контакта: плюс питания, масса и BSI, который уходит напрямую в UEM (контроллер питания).
А ещё на многих Nokia (конкретно за этот не ручаюсь - у меня его не было и нет) этот контакт отвечал за ввод девайса в Test mode (он же Local mode). Были даже таблицы с номиналами резисторов для разных моделей.
На Symbian писать было реально сложно даже по тем меркам. И упомянутая Carbide работала отнюдь не безотказно. Веселее этого только писать под EPOC32, на которой работали КПК Psion 5 и от которой и произошла ОС Symbian.
А так интересный девайс, понравился. Хотя у самого из настолько древних Symbian только не менее легендарная "бочка".
Такие дела.
bodyawm Автор
18.01.2024 08:08+1А ещё на многих Nokia (конкретно за этот не ручаюсь - у меня его не было и нет) этот контакт отвечал за ввод девайса в Test mode (он же Local mode). Были даже таблицы с номиналами резисторов для разных моделей.
Всё верно, и WD2 это тоже касалось. На всех нокиах был тестмод, который позволял погонять телефон в селфтестах и вывести подробный отчет где и что сбоит. Доходит до того, что смартфон может проверить, есть ли контакт с дисплейным модулем, радиотрактом, КП и.т.п. Очень удобно при диагностике утопленных аппаратов.
Расскажу про тестмод в одной из статей с программным ремонтом Nokia.
На Symbian писать было реально сложно даже по тем меркам. И упомянутая Carbide работала отнюдь не безотказно. Веселее этого только писать под EPOC32, на которой работали КПК Psion 5 и от которой и произошла ОС Symbian.
Да, Symbian очень своеобразная. Думаю че нить под неё запилить, платформа то интересная. Сейчас про разработку под китайские кнопочники писать буду.
AVKinc
18.01.2024 08:08+2У меня был QD. Я никогда не играл на нем. А купил потому, что он стоил дешевле чем Нокиевский же смарт на симбиане. Видимо он не пользовался спросом и цена упала. Как смарт вполне был годным.
dlinyj
Да, я помню это устройство в студенческой молодости. Выглядело очень стильно, но на деле никто не понял зачем оно нужно. Помню, что вышла в то время 6260 с поворотным экраном, и была намного более удобной функциональной и прочее. Даже тогда было понятно, что Симбиан имеет ужасный интерфейс, убогие игры и мало пригодно для удобной работы. Хорошо помню ощущения, что телефон прикольный, других вариантов особо нет, но очень неудобно использовать.
bodyawm Автор
Ну, с точки зрения удобства N-Gage весьма неплохая. Единственный момент, присущий многим девайсам от Nokia тех лет, это износ кнопок и хрустящие корпуса: со временем резинки дпада стираются и их приходится давить сильнее, а часть кнопок может не реагировать - из-за чего играть действительно некомфортно.
Интерфейс у Symbian, действительно, весьма своеобразный... Но такой родной :) Игры там неплохие были для своих лет. Круче многих коммуников (хотя возможности коммуников были шире), но хуже игр для устройств на азиатском рынке
dlinyj
Возможно, сейчас устройств нет на руках. Но на парах мы давали помацать друг другу телефоны, и его я не понял
goodic
Я покупал первый и второй N-Gage уже сильно позже, за год до появления доступных устройств на Android. Покупал именно как портативную игровую консоль. И как консоль аппарат был ничего. Пользоваться им как смартфоном (смотреть в браузере контент или чатится в ICQ|IRC|Jabber) не пробовал. Но кажется, что доступность клавиатуры только для одной руки это действительно неудобно. Там где мог бы набирать двумя большими пальцами ты ограничен только одним
bodyawm Автор
По чем обошелся в те годы?
goodic
Не, не вспомню