Помните заставку Prince of Persia? Песочные часы, Джаффар, принцесса и музыка, от которой в детстве шли мурашки. Мне стало интересно, как она устроена изнутри, и я залез в файлы DOS-версии игры.
Игру сделал Джордан Мехнер, а музыку к ней написал его отец, Фрэнсис Мехнер: психолог по профессии и пианист-классик родом из Вены. В DOS-версии музыка хранится не записью, а нотами: 22 MIDI-пьесы в файлах MIDISND1.DAT и MIDISND2.DAT.
Если открыть эти MIDI в любой программе, заиграют обычные пианино и скрипки из стандартного набора General MIDI, и это будет совсем не та музыка. Номера инструментов в файлах указывают на собственный банк игры: 18 тембров для звуковой карты AdLib. Причем лежат они не звуком, а набором чисел для микросхемы OPL, спрятанным в ресурсах PRINCE.DAT.
Что пришлось сделать:
вытащить эти 18 тембров и расшифровать регистры: множители частоты, обратную связь, огибающие атаки и затухания в миллисекундах;
найти в PRINCE.EXE формулу, по которой игра переводит силу нажатия (velocity) в громкость;
прогнать все через эмулятор чипа Nuked OPL3 по той же логике, что в SDLPoP, открытом порте игры;
сверить результат с записью настоящей игры из PrinceJS. Совпадение по нотам 0,95-0,97, по громкости 0,95. Это тот самый звук, а не похожий.
Десять главных тембров я перевел в рецепты для Operator в Ableton и Sytrus в FL Studio, так что этот звук можно собрать у себя.
Что получилось
Учебник из 15 шагов: от одной ноты до своей заставки. На каждом шаге пианоролл, который играет настоящим звуком AdLib, таблица нот с позициями, подсказки для Ableton и FL Studio и задание. MIDI и звук любого шага можно скачать.
Пара вещей, которые меня удивили:
Восточное звучание держится на одном интервале: между соседними нотами полтора тона (D, E♭, F#). Европейское ухо слышит в этом Персию. Почти все мелодии игры сделаны из этой клетки.
AdLib играет только 9 нот одновременно. Поэтому каждая партия удвоена, а сила нажатия работает как микшер: 96, 64, 48, 32.
Сердцебиение в заставках это бочка, настроенная в тональность. Пока Джаффар уходит, темп растет ступеньками: 70, 72, 74 и до 80.
Аккорд Джаффара это увеличенное трезвучие: у него нет устойчивой ноты, поэтому он звучит как угроза. А победа звучит квинтами без терции, как сигнал трубы.
Концовка главной темы нота в ноту повторяется в конце уровня и в заставке с Джаффаром. Мехнер собирал музыку из готовых блоков, как клипы в Ableton.
В конце учебника своя заставка «Ворота дворца»: 12 тактов, написанных только этими приемами. Таких нот в игре нет, но звучит она как музыка из Принца.
Спасибо тем, без кого ничего бы не вышло: Джордану и Фрэнсису Мехнерам за игру и музыку, проекту SDLPoP за данные и логику проигрывания, PrinceJS за запись для сверки и Nuked OPL3 за эмулятор чипа. Музыка принадлежит авторам, это фанатский разбор.
Разбирал вместе с ИИ (Claude Code): он копался в двоичных файлах и писал код, я ставил задачи и решал, что войдет в учебник.
А вы на чем играли в Принца? И кто проходил его за честные 60 минут?
Тестировал как то флукс 3 и скажу честно что для генерации нейро cgi из девяностых для игр на дос и виндовс 95 он хорош очень хорош даже крестоносца выбрал ибо мемы и эстетика Аля Блад и кастльвания
На Reddit рассказали, как Claude помог запустить Operation Neptune на старом Pentium 75. По словам автора, на разбор проблемы и исправление ушло пять минут.
Пользователь jrowberg купил компьютер, чтобы прочитать старые дискеты и заодно поиграть. Одной из любимых игр его детства была Operation Neptune. Он перенес ее на настоящий старый ПК, ненадолго запустил и решил позже показать сыну.
Когда дошло до показа, при запуске игры компьютер намертво зависал. Повторное копирование файлов, другие варианты загрузки FreeDOS и проверка BIOS не помогли. При этом остальные программы работали, в том числе со звуком.
Тогда отец передал Claude файлы игры и описал проблему. По его рассказу, модель разобрала исполняемый EXE-файл, проследила выполнение и подготовила копию с изменением трех байтов. После переноса на старый компьютер игра запустилась с первой попытки.
В приведенном ответе Claude причина выглядит так: игра принимала MIDI-порт звуковой карты за устройство Roland, отправляла неподдерживаемую команду и бесконечно ждала ответа. Патч обходил эту проверку, позволяя перейти к звуку AdLib.
В комментариях автор уточнил: винить именно игру не совсем справедливо. В компьютере стояла звуковая карта-клон, и речь, скорее, о несовместимости. Независимой проверки исправления у нас нет: это рассказ одного пользователя с фотографией и фрагментом ответа модели.
Решил задокументировать процесс по возможному восстановлению винтажного ноутбука Olivetti Philos 44. Надеюсь, не ошибся с сообществом.
Думаю, что будет 2 части, и потом уже по мере новостей, буду делать новые. Наткнулся на него на блошином рынке случайно. Продавец сказал, что экземпляр пищит, если воткнуть в розетку и все. Коллекционированием ретро-железа, равно как и восстановлением до этого не занимался, но что-то подтолкнуло спасти данную железку, тем более цена была пара тысяч рублей. Также ничего особо не знал про фирму Olivetti до этого, особенно то, что она выпускала ноутбуки.
На задней крышке была гордая надпись "Made in Italy", решено, надо брать. Плюс еще надписи на разных языках - видимо сервисные. Индикатор батарейки приветливо мигает при подключении. Не заряжает, конечно же, время не щадит аккумулятор.
Сам ноутбук выглядит интересно, ретро-железка с трекболом, и намеками на дизайн, нестандартно для безликих IBM машин или массовых системных блоков того времени. Подумал, что это будет просто красивое украшение интерьера, т.к запчастей под это дело нигде нет, и Авито даже про Olivetti не совсем знает.
Но все-же начались попытки заглянуть что с ним не так, и может как-то починить. Любопытство, одним словом. Ноутбук действительно включался, пищал, шуршал дисководом и винчестером. Экран не горел, но была полоса, а также реакция на нажатия шлейфа и левой платы. По инструкциям из интернета, прозвонил шлейфы - они в норме. Что-то видимо было в самой плате.
В какой-то момент показалось, что матрица не совсем мертвая, пошли полосы и все в таком духе, надежда есть!
Мини-плата, через которую шли кабели на матрицу и питание матрицы. По виду похоже на детектор закрывания крышки, может в нем была проблема. Видны следы пайки - заводские или нет? Китайская нейросеть подсказала, что надо бы там попаять (спойлер -не надо было слушать!).
Вот так оно выглядит с другой стороны. Видно, что шлейфы заходят в плату и уходят дальше.
К сожалению, после попыток пайки матрица перестала мигать вообще, видимо отслоились дорожки, или что-то еще похуже. Без должных деталей и знаний в ту сторону решено было больше не копать. При этом сама матрица подсвечивается и меняет яркость.
Проблема в том, что нельзя просто было подключить ноут к VGA монитору - он имеет нестандартный разъем!
Вот он, по центру. Похоже на современный Type-C, но тут 1993 год все-таки. Значит нужен переходник или паять с нестандартного разъема на VGA. После опыта прошлой пайки выбор пал в сторону переходника. Справа, кстати, память. 8мб на борту, с нестандартным разъемом.
Тут был перерыв в месяц с небольшим, на решение логистических проблем с запчастями)
Переходник/док-станция
После решения некоторых логистических проблем и при помощи друзей переходник был найден - им оказалась док-станция, которая подключается к задней части ноутбука в специальный разъем. Достаем старый монитор VGA (не зря не выбрасывал!), подключаем, и смотрим что там при загрузке.
Батарейка биоса дохлая, поэтому сбрасывается время, и все настройки. Но это большой шаг вперед, железка то оказалась живая, хоть и частично.
Дальше смотрим, что еще было в пакете запчастей вместе с переходником. Большая материнская плата, и запчасти поменьше.
Разобрав верхнюю крышку - стало понятно, что платы неидентичные.
Плату пока не переставляем, она оказалась 486DX4, а на родном - 486SX. Видимо более новая, так как SX слабее.
Нашлась плата, похожая на сетевую. И встала в подходящее для нее путое место. Совпадение? Не думаю. Просто комплектация запчастей была более жирная, скорее всего.
При этом мелкая платка с видеошлейфами оказалась немного другая и с другим шлейфом на выходе. Подменить не удастся, скорее всего.
Тут видно что шлейф другой.
На этом конец первой части. В следующей части - загрузка, попытка чистки HDD и FDD, попытка в DOS и написание операционки на дискету под Olivetti с графическим интерфейсом.
Недавно я «покатался» на машине времени: нашёл на родительском чердаке не только кучу старых игровых дисков, но и коробку с дискетами. В этой пачке дискет, помимо каких-то никому уже ненужных драйверов, сохранились дискеты с университетских времён, куда я записывал всякие рефераты, доклады и прочие работы. Однако более интересными оказались находки прямиком из 1998 года – пара дискет со времён первого появления компьютера в моей жизни. Когда старший брат привёз системный блок с монитором (мышкой и клавой), он также оставил нам коробку с дюжиной чистых дискет. Спустя время практически все они потерялись… так я думал, но в итоге кое-что с тех лет сохранилось. Получается, отдельным дискетам уже почти тридцать лет!
Что на них записано – загадка, и это нам ещё предстоит узнать. В глаза сразу же бросилась измалёванная разными цветами дискета. Сначала на её лицевой стороне появилась одна надпись, потом вторая с ошибкой, её зачеркнули, написали что-то ещё поверх, и всё завертелось. Однако сквозь эту пёструю «вязь» отчётливо угадывается слово «Загрузка». Я помню, что брат вставлял эту дискету, когда в MS-DOS возникали какие-то сбои и ошибки. Но вряд ли там записан установщик Доса, так как одной дискеты ему было бы мало. Возможно, внутри находились важные системные файлы.
Вообще, в поздние школьные и ранние университетские годы мы пользовались дискетами вместо флешек – на них легко и просто было записывать текстовые файлы. Мы так с товарищем передавали друг другу разные рассказики, которые сами сочиняли. Поэтому мне ещё более интересно посмотреть, какие всё-таки файлы там остались/сохранились.
К счастью, современная техническая мысль и маркетплейсы позволяют заказать такую дичь, которую не купить на вторичном рынке. Например – внешний дисковод для дискет. Конечно, можно найти обычный внутренний дисковод, который подключается по-старинке, однако мне хотелось чего-то простого. Месяц ожиданий, и чёрная коробочка пришла. Вот она:
Кроме самого дисковода к USB-кабелю воткнут переходник на USB-C, чтобы подключать его к современным компьютерам (или Макбуку).
Дисковод поддерживает как старые, так и современные ОС. Больше в комплекте ничего нет, ну разве что маленькая информационная брошюра. При подключении к ПК дисковод издаёт звуки, показывая, что он жив. Всовываем в него дискету, слышим щелчок, в проводнике появляется диск «А:\», на глаза наворачиваются слёзы ностальгии. Но такую приятную идиллию нарушает суровая реальность: практически ни один диск не прочитался. В основном ошибка такая:
Не удаётся определить тип диска. Вероятно он не отформатирован
Причём одна из таких дискет в первый раз открылась, там я нашёл файл под названием: «Диагностика внимания». От 15 февраля 2007 года. Кстати, а что вы делали в феврале 2007-го?
Вот тот самый файл из 2007 года - я сделал скрин
Но при попытке скопировать файл связь с дискетой оборвалась, а при повторном чтении вылезла ошибка. Сколько я ни пытался её высунуть-всунуть, ничего не помогло. Парочка дискет, кстати, прочиталась, но они оказались пустыми. Проверил работоспособность: скопировал туда файл – всё работает.
Однако я недоволен. Хотелось бы прочитать все или почти все дискеты. Попробовал разные USB-выходы (3.0 и 2.0), подключил дисковод через USB напрямую в мать – ничего. Попробую ещё одну программу (DMDE) , которая позволит сделать образ дискеты и скопировать его на комп. Но даже если и так ничего не получится – придётся покупать на вторичном рынке внутренний дисковод. Вполне возможно, что проблема не с дискетами, а в том, что эта приблуда с маркетплейса просто полное г-но. Хотя есть ещё вариант сами дискеты почистить. Буду пробовать.
А вот ещё одно фото раритетных программ:
Правильно ли я понимаю, что слева - это установочная дискета для Win 3.1?
Осторожно: это большая и развернутая статья о редком процессоре. Если вам интересен полный разбор характеристик, схемотехники референсной платы, бенчмарки — статья обязательна к прочтению! Мы давно с вами привыкли к тому, что на рынке x86-процессоров бесспорными доминантами остаются Intel и AMD, и о каких-то альтернативах не слышно уже лет 15. Единицы читателей могут вспомнить процессоры Cyrix и VIA, а кто-то возможно даже слышал о TransMeta Crusoe и Эльбрусе — VLIW-процессорах с динамической ретрансляцией x86-кода в VLIW.
Однако на рынке x86-процессоров есть ещё одна серия чипов, о которой знают единицы гиков — Vortex86 от компании DM&P. Эти процессоры выпускаются по сей день, на их базе делают новые недорогие компьютеры, и они не основаны на какой-либо уже существующей микроархитектуре. Недавно в мои руки попал компьютер eBox с таким процессором и в сегодняшней статье мы с вами изучим, протестируем и сравним эту экзотику с процессорами Intel/AMD на практике!
Содержание:
Предыстория
Что я купил?
Разбираем
Включаем
Заключение
❯ Предыстория
Вот уже более 40 лет подряд, наследники оригинального Intel 8086 продолжают использоваться в подавляющем большинстве персональных компьютеров и серверов. И если в наше время осталось всего два мейнстримных производителя — Intel и AMD (и еще Zhaoxin на технологиях VIA/Centaur, но это уже совсем недоступная экзотика), то в 80-х и 90-х ситуация была куда интереснее и x86-процессоров было куда больше...
Этот малыш 1978 года выпуска, состоящий всего из 23.000 транзисторов, положил начало всем современным компьютерам.
...взять например NEC V30: в конце 80-х годов, японские инженеры умудрились сделать куда более производительную и энергоэффективную альтернативу 8086/80186, при этом добавив в него новые команды для битовых операций, работы с BCD-числами и специальный режим совместимости с 8080. Этот процессор можно было найти в электронных органайзерах и ТСД Psion 3-ей серии: по сути, это были миниатюрные 16-битные ноутбуки, для которых можно было писать свой собственный софт и они не особо сильно уступали многим обычным компьютерам тех лет.
Psion Series 3C, моя мечта. Фото с сайта RetroIsle.
Однако главная битва x86-ых развернулась в 90-х годах, когда множество разных фирм пыталась конкурировать с Intel: AMD, UMC (те самые, что производили клоны NES и SMD в одном чипе, и именно благодаря им появилась Денди), Cyrix (под эгидой IBM и Texas Instruments), Centaur (чуть позже стали VIA) и Rise Technology. И если о Cyrix'е и об их уникальном процессоре MediaGX 1997-года, который почти в неизменном виде прожил до 2020-го я уже рассказывал недавно, то процессоры Rise Technology всё это время мы с вами обходили стороной. Пришло время исправить это недоразумение...
Логотип компании. Взято из Википедии
Rise Technology появилась в 1993 году, когда глава полупроводникового подразделения NEC Дэвид Лин привлек деньги 15-и инвесторов (в том числе VIA, UMC и Acer — а вернее ALi). Целью компании было выпустить процессор, который смог бы конкурировать с передовым Intel Pentium и при этом стоить недорого — что было важно как для бюджетных десктопных сборок, так и для ноутбуков. В результате компания выпустила всего один малотиражный процессор за 5 лет — mP6, который поддерживал инструкции MMX, но сильно уступал в производительности чипам от Intel, AMD и даже Centaur. Несмотря на технологичность процессора (предсказание ветвлений, конвейерный АЛУ, включая FPU, и даже конвейерный SIMD), в реальных задачах он проигрывал AMD K6 и IDT (Centaur) WinChip, из-за чего широкого распространения не получил и был забыт...
Rise mP6. Фото из Википедии.
...но только на десктопном рынке. В 1999 году, компания SiS, производившая чипсеты и видеокарты для x86-компьютеров, купила Rise и выпустила SIS 550 — уникальный для своего времени SoC, который интегрировал северный и южные мосты, а также mP6 в едином кристалле. Этот процессор получил распространение в мини-ПК (да, типа тех, что сейчас делает Minisforum, Ninkear и другие производители) и некоторых других устройствах типа DVD-плееров. Где-то в 2000-х, тайваньская фирма DM&P приобрела наработки по mP6 и решила создать свой собственный процессор, именуемый Vortex86.
SiS 550. Фото с сайта CPU Shack.
В своей основе, Vortex86 наследовал концепцию SiS 550 — это была единая система на кристалле, которая интегрировала в себе оба моста, процессор и кэш, не требуя для производства Windows-совместимого ПК вообще ничего, кроме нескольких DC-DC преобразователей, оперативной памяти и какого-нибудь накопителя. Даже мультиконтроллер не был нужен - для сравнения, минипк на Intel Atom даже в конце нулевых нужен был отдельный север, отдельный юг, отдельный процессор, отдельный мультиконтроллер, клок, ШИМ-контроллер - и это еще по минимуму! Правда и ориентир у DM&P был не столько на потребительский сегмент ПК, сколько на промышленный.
Неттоп от Acer на базе Atom 230.
В основном, Vortex86 используется в промышленных платах типа PC-104 (такие можно найти в платах управления станками ЧПУ и поездах к примеру) и тонких клиентах — маленьких ПК, созданных специально для работы с удаленными компьютерами. Там высокая производительность не нужна, зато важна надежность, энергоэффективность и отсутствие кулеров — благо у большинства Vortex86'ых TDP менее 1Вт и им охлаждение вообще не нужно.
Всего в семействе Vortex86 вышло 8 процессоров. Первым был Vortex86SX, который вышел в 2007 году и сочетал в себе mP6-ядро с 32КБ L1-кэша, и способное работать на частоте300МГц, DDR2-контроллер, контроллеры шин ISA, PCI, PS/2, GPIO, IDE, таймеры, UART, USB, HDA для звука, PLL для формирования внутренних клоков, и даже 256КБ встроенной флэш-памяти для хранения BIOS'а. Даже отдельная флэшка была не нужна, и всё это на техпроцессе в 130нм (да, такой в теории даже в РФ смогут производить)!
Рефборда с Vortex86SX. Даже мульта нет! Правда VGA тоже нет — в 86SX контроллера еще не было, но можно было использовать специлаьный чип Vortex86VGA!
В 2008'ом появился Vortex86DX — в нём частоту ядра подняли аж до 800МГц, он добавил возможность работы двум процессорам параллельно (если один выходит из строя — другой может выйти на подхват и отправить в ребут зависший модуль к примеру), I2C, LPC, а также добавили 256КБ L2-кэша. Еще через год появился Vortex86MX — в нём добавился 2D-видеоускоритель уровня DirectDraw с VGA-выходом, а также подняли частоту работы до 933МГц. В Vortex86DX2 2012-го года добавили PCI-E, в Vortex86EX 2013-го года поддержку DDR3 и SD-контроллер, а Vortex86DX3 2014-го года стал первым двухядерным процессором компании, где каждое ядро работает на частоте 1ГГц.
В 2018 году вышла такая экзотика, как Vortex86EX2 — это уникальный x86-процессор с двумя ядрами, где оба ядра работают независимо друг от друга и реализуют не симметричную модель многопроцессорности (то есть как все современные процессоры Intel/AMD, где каждое ядро работает в кооперации с остальными), а ассиметричную — то есть в одном процессоре могут свободно выполняться сразу две операционные системы одновременно, у них виртуализируется периферия и они могут обмениваться данными только с помощью RPC/Mailbox'ов. Такого в истории x86 вообще никогда не было, это лютая диковинка!
Самый последний процессор компании появился год назад, в 2025'ом. Это Vortex86EX3 с всё той же ассиметричной многопроцессорностью. Каждое ядро способно работать на частоте от 1.2ГГц до 1.6ГГц, чип поддерживает DDR4 с ECC и почему-то не имеет встроенного видеоядра. И да, DM&P сама является основным производителем компьютеров на своих процессорах, которые выходят под брендом eBox, и которые можно легко найти на барахолках типа Avito и Юлы за 1-2 тысячи рублей. Недавно таким обзавелся и я, и именно его мы с вами будем сегодня разбирать, изучать и тестировать!
❯ Что я купил?
В мои руки попал eBox-3550MX-AP 2013 года выпуска, который я купил на онлайн-барахолке за 1.500 рублей. На выходе он стоил около 250$ — или примерно 6-7 тысяч рублей по тому курсу. Такие устройства не продавались в магазинах типа DNS, а распространялись через дистрибьюторов промышленной техники.
В первую очередь, меня поразили габариты устройства. Оно настолько маленькое и легкое, что свободно помещается в ладошку и нагрудный карман рубашки. Гаджет весит всего 300г и имеет размеры 195x95x20мм — меньше, наверное, только Intel Compute Stick.
Давно мечтал так сделать!
Несмотря на крошечные размеры, нельзя сказать что устройство обделили внешними интерфейсами. С передней стороны скрывается два USB 2.0, два 3.5мм разъёма для наушников и микрофона, SD-кардридер и индикатор питания. Кстати у компьютера нет кнопки включения и стартует он сразу после подачи питания, а также у него вообще нет никакого встроенного накопителя и загружается он исключительно с SD-карты.
С обратной стороны скрывается еще один USB 2.0, RJ-45, VGA, а также MiniUSB, который и питает устройство. Весь корпус выполнен из цельного металла, никаких пластиковых элементов. Как вы уже понимаете, рёбра с верхней части устройства выполняют роль радиатора и отводят тепло с процессора через толстую термопрокладку. Впрочем с TDP 1Вт думаю можно было вообще обойтись без него :)
❯ Разбираем
Разбирается устройство очень просто — достаточно лишь открутить 4 винта с нижней части корпуса и снять радиаторную часть.
Внутри скрывается маленькая плата, где нет никаких навесных элементов, кроме хитро припаянного USB 2.0. Ни жестких дисков, ни IDE Flash-модулей, ничего — компьютер полностью самодостаточный. Технари уже могли обратить внимание на то, что на плате очень мало компонентов — никаких привычных мультов, мостов, ШИМ-контроллеров и прочего здесь нет.
В центре платы расположилось сердце устройства —чип PMX-1000, также известный как Vortex86MX. Внутри него скрывается:
Процессорное ядро на базе mP6 с 6-стадийным конвейером, FPU и SIMD-инструкциями. Как и полагается MX'у, ядро здесь работает на частоте 1ГГц, однако с точки зрения поддержки инструкций процессор остался во временах Pentium III/Pentium 4. У процессора всего 32КБ L1-кэша и 256КБ L2 — уровень P4 Willamette.
Контроллер DDR2, способный работать в одноканальном режиме на частоте до 400МГц (т.е по сути 800) и поддерживающий до 1ГБ памяти. Это уже уровень ранних 775-ых машин.
Двухканальный IDE-контроллер с нативной поддержкой SD-карт (т.е SD эмулируется как IDE).
Интерфейс LPC к мультиконтроллеру, если он вдруг нужен.
2D VESA-совместимый видеоускоритель с поддержкой DirectDraw — т.е у него есть аппаратный блиттер и рисование примитивов. Это уровень видеокарт из 90-х — S3 Trio, ATi Mach64 и т.д.
Контроллер PCI, HDAudio, ISA, USB, PS/2, I2C, LPT, GPIO
PLL для тактирования самого себя, а также периферии — 24/25МГц, PCI (33МГц) и DDR2. Поскольку здесь нет северного моста и соответственно FSB, множитель клока процессора можно менять прямо в BIOS.
И всё это в 720-пиновом BGA-корпусе на техпроцессе ~90нм! Уже очень круто!
Чуть правее расположилось два банка DDR2-оперативной памяти Micron, каждый объёмом в 128МБ. С обратной стороны есть ещё два чипа — что в сумме даёт 512МБ памяти. SPD тут нет, так что проапгрейдить память скорее всего не выйдет.
Чуть ниже расположился еще один банк оперативной памяти от Winbond объёмом в 64МБ. Зачем он нужен я так и не понял (возможно для видеоядра).
Под аккумулятором CMOS расположился аудиокодек Realtek ALC262 с четырьмя 24-битными ЦАПами.и тремя АЦП. Стандартный кодек, который используется во многих компьютерах.
Всего в устройстве 4 домена питания:
5В — идёт от MiniUSB. Используется только для питания подключаемых USB-устройств, больше никакой логике 5В не нужно.
3.3В — формируется крошечным ШИМ-контроллером и питает кодек, SD-карту, а также периферию в процессоре.
1.8В — формируется ШИМ-контроллером и используется для питания DDR2, а также VIO-линий процессора и является референсом для обмена данными с другими чипами.
1.0В — формируется ещё одним ШИМ-контроллером и используется для питания самого ядра процессора. Это самый мощный и прожорливый домен во всей системе.
К сожалению, маркировки ШИМок установить не удалось, но принцип работы предельно понятен. Технари уже могли заметить, что питание процессора однофазное — никаких сложных систем с двумя плечами, программируемых ШИМок с сложным фидбеком и регулировкой напряжения VCore, ничего :) Думаю при желании их можно хоть на AMS1117 заменить.
Также у RJ-45 расположился чип PHY-уровня для Ethernet от Mingtek, MAC-контроллер (т.е сетевая «карта») находится в процессоре.
С обратной стороны платы расположилась обвязка процессора, слот для SD-карты, те самые два банка DDR2, а также две 28-пиновые площадки, подозрительно похожие на оные для SOIC EEPROM-ок.
Ну а рядом с индикатором питания расположилась площадка для кнопки включения, которая присутствует в другой ревизии этой платы.
Вот так всё легко и просто! Полноценный x86-компьютер из процессора, нескольких банков памяти и трех ШИМок... такой компьютер по рефборде даже студент сможет сам развести :)
Даже в Intel Compute Stick используется сложный отдельный контроллер питания AXP209 с кучей LDO-шек и DC-DC контроллеров
❯ Запускаем
Перед запуском машинки нужно подготовить для неё флэшку с операционной системой. В качестве оной я выбрал MicroSD-карточку на 32ГБ стандарта SDHC с переходником на SD, а первой ОС я поставлю FreeDOS. Запускаем Rufus, подготавливаем флэшку и записываем:
Далее вытаскиваем флэшку, вставляем в eBox и подаем питание. Нас встречает AMI BIOS образца 2010 года — никакого UEFI тут нет.
BIOS здесь достаточно функциональный: есть и управление периферией, и частотой процессора, и даже таймингами оперативной памяти (ставим оверклокерскую DDR2?). Самой важной опцией для ретрогейминга я считаю возможность выставить делитель частоты процессора.
Частоту процессора можно снизить вплоть до 29МГц — это уровень ~386 и 486
Также в BIOS'е есть важная опция, переключающая режим работы IDE-контроллера. Нужно чтобы был включен режим эмуляции через SD-карту.
После настройки BIOS'а отправляемся в ребут и попадаем в оболочку FreeDOS. Я предустановил несколько игр и некоторый набор софта для тестирования нашего компьютера:
Первым делом мы протестируем скорость накопителя с помощью программы HDDSpeed. У меня флэшка 10 класса, поэтому программа точно показывает скорость линейного чтения в 10МБ/с.
Далее запускаем 3DBenchmark и получаем солидные 1103 очка. Процессор влегкую обгоняет Pentium III 800 на архитектуре Coppermine и уступает на 400 очков AMD Athlon Thunderbird 1400C.
Далее переходим к играм. Тестировать 2D-тайтлы времен EGA/CGA мы не будем — очевидно что они будут здесь летать без проблем, поэтому сразу перейдем к 2.5D и 3D-играм и начнём с Duke Nukem 3D. Игра в разрешении 800x600 работает в ~60 FPS, при этом без занижения клока процессора управление становится ватным.
Первая Need For Speed идёт в стабильных 60 FPS при разрешении 640x480. Прекрасный результат по меркам игры с софтрендером.
Первая Need For Speed идёт в стабильных 60 FPS при разрешении 640x480. Прекрасный результат по меркам игры с софтрендером.
Но настоящий бенчмарк для процессоров тех лет — это первая Quake. Тут тебе и рендер тяжелый по меркам процессоров тех лет, и FPU нагружен, и ещё геймплей с физикой и куллингом обрабатывать надо. И тут Vortex86MX показывает себя отлично: в разрешениях 640x480 и 800x600, игра идёт в вполне стабильные 30-35 кадров.
Однако проблемы начинаются в 1280x1024 — тут FPS падает до примерно 15. Играбельно, но... хотелось бы большего.
Интересно и то, что DM&P вместо драйверов даёт набор библиотек для написания софта — тут тебе и работа с внешними дисплеями, и сетевой стек, и последовательный порт... в общем есть всё. Помимо DOS, на Vortex86 также можно без особых проблем установить Windows CE (неожиданно!), Windows XP, Vista и 7, а также Linux. Только имейте ввиду, что у Vortex86SX нет FPU и на нем XP не запустится!
❯ Заключение
Вот такой интересный x86-процессор развивается последние 19 лет силами DM&P. И в целом нельзя сказать что он бесполезный — это классная и компактная основа для ретро-ПК, хороший процессор для обслуживания старых станков, промышленного оборудования и автоматики, а ещё это неплохой микроконтроллер для DIY-устройств. Да, да, если вы поперхнулись чаем или кофе —на базе Vortex86 делали Arduino-совместимую плату 86Duino!
Ardunio на DOS'е? Дайте две! К слову если у кого-то такая валяется и она вам не нужна — мне было бы интересно пощупать и сделать на её базе, например, игровую консоль.
К слову, мне было бы интересно пощупать что‑то ещё из семейства Nvidia ION/Radeon Xpress Graphics/VIA Chrome9 HC/Trident Blade, а в будущем возможно написать 3D‑демку под GPU. Если у кого‑то есть всякие интересные тонкие клиенты или ноутбуки на прикольном железе, или что‑то AMD'шное времен 939/462 — пишите в ЛС, обязательно сделаю контент! А если хотите поддержать материально (ради контента я частенько залезаю в долги) - то есть автоматический виджет ниже:
Ну а я надеюсь, что вам было интересно. Подписывайтесь на блог, чтобы не пропускать новые статьи каждую неделю! А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram‑канал «Клуб фанатов балдежа„, куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.“»
А если вы хотите что‑нибудь подарить из железа и увидеть о нём статью — пишите мне в Telegram. Меня очень интересуют самые разные гаджеты: начиная от игровых консолей и любых связанных с геймингом устройств, телефонов, смартфонов, КПК, заканчивая ретро‑компьютерами и ноутбуками. Кто знает, может героем следующейподобной статьи окажется ноутбук из 90-х?:‑)
Особенно сильно я люблю ковыряться в ноутбуках из начала 90-х. Источник
После обзоров устройства не продаются, а остаются в моей коллекции. Когда‑нибудь я хочу сделать музей, где к каждому устройству можно будет приложить QR и почитать мою статью. Кто знает, вдруг на следующей неделе я также подробно расскажу про девайс из вашей юности?:)
Кстати, у меня есть GameBoy Advance SP, под который я очень хочу написать игру. Однако мой экземпляр был залит водой и кофе. Может у кого‑то есть донор с дохлой платой, откуда я смог бы взять контроллер питания? У меня AGS-101.
Долгое время я был уверен в том, что Norton Commander – это и есть MS-DOS. У винды была своя графическая оболочка с окнами, и у доса – своя, синенькая. Мозг школьника отказывался признавать тот факт, что операционная система может представлять собой чёрный экран, куда вручную необходимо вводить команды. Программисты 70-х и 80-х должны были обладать мозгом уровня «сверхразум».
Когда старший брат привёз свой 486-й комп вместе с монитором, разумеется, операционной системой там была MS-DOS. Хотя что значит «разумеется»? На него потом уверенно встал и Windows 3.11, и Windows 95, но это уже другая история. К счастью, для облегчения работы с компьютером добрый брат поставил автозагрузку Norton Commander (NC) во время запуска MS-DOS – нам не приходилось копаться в чёрном экране доса. Именно поэтому данная операционная система неотрывно ассоциировалась у меня с NC, хотя он был всего лишь файловым менеджером, одним из многих. Например, некоторые ПК-пользователи выбирали Volkov Commander, на старой винде в почёте был FAR Manager. Когда я обновил комп и поставил Windows 98, там мне помогал Total Commander.
С другой стороны, зависимость от NC создала тепличные условия для меня и мешала развиваться. Именно поэтому, когда в досе происходил сбой и нортон отказывался загружаться, выводя текстовую строку для ввода команд, я тут же терялся и не знал, что делать. В моём понимании это означало поломку компьютера и необходимость звать брата, а когда брат уехал в другой город – необходимость искать мастера в городе. Возможно, ситуация и выеденного яйца не стоила – скорее всего, нужно было просто вручную запустить NC, введя соответствующую команду, а потом починить autoexec.bat либо config.sys.
Зато Norton научил меня (да и многих пользователей) работать в двухоконном файловом менеджере. В данной программе я любил просто играться с её функционалом: копаться в файлах, переименовывать каталоги, копировать программы с одного диска на другой. Хотя то была лишь верхушка айсберга, и возможностей у NC было гораздо больше. Иногда невозможно было избежать обращения к экрану DOS: когда очередная игра отказывалась запускаться, выдавая простыню текста с ошибками, мы могли свернуть файловый менеджер (или одну из его половин), чтобы внимательно изучить, на что «ругается» игрушка и что нужно, чтобы её наконец завести.
Чем мне больше всего запомнился NC, так это его знаменитыми скринсейверами, или заставками для защиты монитора от выгорания. И хотя подобные программки требовались сугубо в эпоху ЭЛТ-мониторов, на современных плазмах и OLED-экранах скринсейверы тоже вроде бы полезны. Я мог просто включить одну из множества заставок и с интересом наблюдать за ней. Среди всего списка скринсейверов вот мои самые любимые:
Screen Shuffle (Мозаика). Когда экран начинает перемещаться маленькими квадратными блоками, превращаясь в своеобразный пазл.
Star Battle («Звёздные войны»). Это было нечто! По чёрному экрану, имитирующему космос, перемещались разные космические корабли. И я представлял, что, может быть, даже существует игра, похожая на данную заставку (существует, и не одна).
Worms (Червяки). С разных краёв экрана ваш «рабочий стол» начинали съедать множество червячков, представленных в виде буквенных символов. И ведь съедали до черна – если чуть-чуть подождать.
Starry Night (Звёздная ночь). Легендарная заставка. Писать про неё нет смысла, просто покажу скрин.
На самом деле скринсейверов было около двадцати, и среди них имелись и как простые, так и вычурные, когда по экрану передвигались жуки, или летали дети, или скакали люди на конях. Такие своеобразные мультики нашего детства.
Помните компактные цифровые фотоаппараты‑«мыльницы» из нулевых? Уверен, такие девайсы были у многих, а у кого‑то есть до сих пор. Так вот. Задумывались ли вы когда‑нибудь, на каком процессоре и на какой ОС работают все эти штуки? Как оказалось, иногда всё не ограничивается проприетарными решениями, а то, что находится внутри такой железки, может, очень сильно удивить.
Итак, сегодня поговорим о том, как запускать свои приложения на, казалось бы, ничем не примечательном фотоаппарате. Узнаем, что для этого требуется и какой софт для него бывает. Как водится, будет много интересного.
Написано специально для облачного провайдера ▶️Timeweb Cloud и читателей Pikabu.
❯ Суть такова
Наверное, многие из вас испытывали это ощущение: стоило услышать про какой‑то артефакт, как немедленно захотелось его себе. Так и случилось у меня. В комментариях к статье @monobogdan про КПК Blackberry на 386EX упомянули, что существовали древние цифровые фотики Canon, работающие на базе Datalight ROM‑DOS и некоего процессора с архитектурой X86. Да, даже сама оболочка этой мыльницы вместе с пользовательским интерфейсом и всей логикой обработки изображений и управления камерой на деле всего лишь экзешник CAMERA.EXE, запускающийся из Flash. А ещё это значит, что для такого девайса можно писать свой софт и запускать его на нём. Конечно, не стоит ожидать, что можно взять абсолютно любую программу для DOS, как‑то закинуть её на фотоаппарат и надеяться на успех. На самом деле не всё так просто, из‑за некоторых отличий в организации памяти приложения для ПК не заработают на мыльнице, и наоборот. Тем не менее, потенциал у всего этого довольно крутой, в лучшие годы даже было написано несколько интересных прог.
Вообще, я не особо интересуюсь фототехникой, разве что временами подумываю купить зеркальник и пойти пытаться побивать топы всем известного сайта, но это так, не самые приоритетные мечты, так что на данный комментарий я не обратил особого внимания. Но вот, пообщавшись с товарищем @dlinyj я узнал, что, оказывается, штука эта намного более крутая, чем может сходу показаться. В общем, в коллекции того, кого очень интересуют разные девайсы на базе X86, артефакт просто незаменимый. Поэтому я решил приобщиться и раздобыл себе на опыты экземпляр.
❯ Откуда X86 в фотоаппарате?
В начале двухтысячных Canon выпустил чипсет для своих цифровых камер — DIGIC (Digital Imaging Integrated Circuit). Камеры на базе него выпускаются и в наши дни, но сейчас нас интересует самая первая версия: DIGIC I (или просто DIGIC без всяких маркировок). Помимо цифрового сигнального процессора и АЦП данный комплект включает в себя и процессор на ядре 80186.
Если разобрать такой фотик, то на плате можно увидеть тот самый чип DIGIC, а также заказной процессор NEC.
Само собой, всё это не прошло мимо исследователей, поэтому вскоре после выхода на этих фотоаппаратах научились запускать самописный софт: от простых примеров типа индикатора заряда батареи или пищалки до тетриса или анализатора цвета.
В последующих версиях (DIGIC II и позднее) всё уместилось внутри одного чипа. Впрочем, это уже совсем другая история...
❯ Про запуск своего софта на фотоаппарате
Теперь перейдём к самому интересному: к тому, как же заставить какие-то сторонние проги запускаться на фотике. Посмотрев этот ролик, подумал, что всё довольно просто:
Наиболее информативной из материалов на просторах оказалась вот эта страница (к слову, как раз упомянутая в видео). Помимо инструкции для запуска там был и небольшой архив софта.
Несмотря на то, что мыльница работает на ROM-DOS, просто так запустить софт с ПК не выйдет из-за несколько другой организации памяти.
Поэтому, к сожалению, запуска Doom или каких‑то других игр с ПК сегодня не будет: для запуска их придётся серьёзно переписывать под архитектуру фотика. Так что будем довольствоваться более простым софтом.
❯ Обзор оборудования
Для опытов понадобится всего‑ничего — сам фотик, карта памяти Compact Flash и комп с картридером. Подойдут следующие модели:
Серия PowerShot S: S45, S50, S60, S70 (включая S1 IS).
Серия Digital IXUS / IXY / SD: v2, v3, 400, 430, 500, SD10, SD20.
Премиум-компакт: PowerShot Pro1.
Зеркальные камеры (DSLR): EOS 10D, EOS 300D (Digital Rebel).
Более поздние камеры (на чипсетах DIGIC II, III, 4, 4+, 5...) нас сейчас не интересуют, поскольку построены на ARM, а не X86, а работают на RTOS, а не DOS.
Сколько же стоит самый дешёвый подходящий экземпляр? Поиск на вторичке показал, что урвать самую простую модель можно буквально за пару‑тройку тысяч. «Пару‑тройку тысяч? Дайте две!» — подумал я и раздобыл сразу два экземпляра.
Первым ко мне попал PowerShot A85.
Экземпляр неисправен, у него какие-то проблемы с механикой объектива. Прикупил его чисто ради опытов с DOS (и потому что будет не жалко случайно закосячить). Для экспериментов подойдёт даже фотик с разбитой оптикой или дохлой матрицей, главное, чтобы он загружался и пускал в меню.
Внешне это типичный фотик первой половины нулевых: довольно внушительные для мыльницы габариты, маленький экран, оптический видоискатель (окуляр его виден над дисплеем), запись на Compact Flash (мыльницы с привычными нам SD появились заметно позже), довольно узнаваемая компоновка элементов управления.
Про управление рассказывать особого смысла нет: думаю, всякий, у кого был подобный девайс, и так представляет себе, что для чего нужно и как на него снимать.
Сверху переключатель режимов, динамик и кнопка спуска затвора. Обожаю подобные элементы управления: всё очень приятно щёлкает, крутится и нажимается.
Ест девайс немало: для работы требуются аж четыре батарейки.
Эти самые батарейки в своё время у кого-то потекли, сильно загадив контакты.
Есть тут и USB для передачи данных на ПК.
Затычка разъёма отвалилась сразу же. Питать девайс можно и от внешнего БП.
Сбоку дверца отсека карты памяти.
Кроме отсека под Compact Flash там ничего нет.
А это Canon PowerShot A70, тот самый фотик из статьи того чеха.
Он очень похож на предыдущий, но, как по мне, у A85 дизайн чуть более удобный.
Помимо разъёмов сбоку разместился лоток для батарейки часов.
Сверху всё идентично.
А снизу их и вовсе почти не отличить.
❯ Внутренности
Проблемный фотик я решил разобрать и заглянуть внутрь.
Откручиваем всё, что откручивается, и снимаем переднюю панель.
Слева видим большой конденсатор вспышки, который надо разрядить, дабы не спалить электронику и не получить удар током. Лучше всего это сделать, поднеся к его ножкам мощный резистор номиналом около 1К. Закорачивать контакты нельзя: будет большой бабах, а сам конденсатор может выйти из строя. Помните, что разряжать его надо обязательно, заряд он держит несколько дней.
На шлейфе видим подтверждение того, что работает фотик на DOS.
Конструкция программного переключателя.
А это мой любимый элемент управления в подобных фотоаппаратах: двойная кнопка. Когда-то давно такая встречалась и в некоторых телефонах, но сейчас таких уже не делают.
Плата питания.
Электролит из батареек проник очень глубоко. Никогда не забывайте элементы питания в устройствах, иначе рискуете однажды увидеть примерно то, что на фото.
На этом я понял, что дальше разбирать не готов, так как опыта препарирования подобного железа у меня нет, а случайно доломать не хотелось. Поэтому максимально отчистил все окислы и следы соли и скрутил всё обратно. К моему удивлению, девайс после сборки ожил. Скорее всего, проблема была в банальном плохом контакте или каком-то попавшем в механизм мелком мусоре, который при разборке выпал.
А вот с A70 не повезло. Продавец заверял, что аппарат рабочий, но то ли он отправил дохлый экземпляр, то ли постаралась доставка (артефакт был отправлен замотанным в пару слоёв плёнки), но ничего кроме того, что выше, фотик не снимает и не реагирует ни на нажатие кнопок, ни на постукивание об стену.
Вот видео, где более детально демонстрируются внутренности.
❯ Как он в плане съёмки?
Разумеется, не мог не попробовать его по основному назначению.
Конечно, сейчас такие мыльницы давно устарели, однако всё ещё могут использоваться для попытки передать дух двухтысячных (и, если подобрать подходящую обстановку, это вполне получится) или для антуражных хипстерских фотографий в ретро-стиле.
❯ Запускаем софт
Ну что же, перейдём к опытам.
Первым делом понадобится карта памяти Compact Flash любого поддерживаемого объёма. Её надо отформатировать в ФС FAT32.
Теперь в корне карты создаём папку DC97, а в ней папку MISC. Туда-то мы и будем записывать наши приложения.
Каждое приложение состоит из экзешника и одноимённого *.ini-файла. Он нужен для того, чтобы фотик опознал этот файл как исполняемый и отобразил его в меню. Содержимое его примерно следующее:
Размер этого файла должен составлять строго 57 байт, иначе приложение не запустится. Если ещё остаётся место, лишние байты добиваем пробелами.
Никакой модификации прошивки для запуска софта не требуется. Просто закидываем проги на карту, втыкаем её в фотоаппарат, включаем его и в режиме просмотра медиа заходим в меню.
И, если всё было сделано правильно, готовые к запуску программы отобразятся среди других пунктов.
Всего можно закинуть до четырёх приложений, если загрузить больше, другие просто не будут отображаться.
❯ Что тут есть из ПО?
Как оказалось, приложений для данных фотоаппаратов существовало много.
Вот, к примеру, индикатор заряда батареи.
А вот электронная читалка *.txt.
Для этой платформы даже были свои демки.
Из игр здесь есть тетрис и пятнашки.
❯ Память
Если открыть приложение просмотра файлов, то можно увидеть и структуру папок.
На диске A единственный экзешник CAMERA.EXE — это и есть вся локика фотоаппарата.
На диске B единственная папка DATA, где хранятся ресурсные файлы типа звуков и иконок.
Диск C не используется.
И, наконец, диск D — сама карта памяти.
❯ Сборка своего софта
На прощание немного затронем то, как и каким инструментарием были сделаны все эти проги.
Как уже упоминалось, фотик работает под управлением ROM-DOS. Так что процесс сборки мало отличается от такового для DOS на обычном ПК. Так что попробуем собрать из исходников какое-нибудь простое приложение и посмотрим, что оно вообще из себя представляет.
Первым делом качаем Borland C. В данном случае по ссылке лежит готовый архив, так что установка максимально простая: распаковываем его в папку BORLANDC на системном диске, в PATH дописываем C:\BORLANDC\BIN.
Далее запускаем BC, выбираем Options\Directories и указываем пути к папкам. Всё, со средой разработки разобрались.
Теперь очередь самой программы. Для примера взял прогу, которая выводит на экран скан-коды клавиш:
/****************************************************************************/ /* Keys flag view Canon PowerShot A70 */ /****************************************************************************/ /* Created: 1.5.2005 [BORLAND C 3.1] */ /* Last modified: 1.5.2005 [BORLAND C 3.1] */ /* Copyright (C) 2004-2005 by RayeR */ /* Contact: http://www.volny.cz/rayer */ /* Compiler: Borland C++ 3.1, disable Word Alignment, set 80186 code gen. */ /****************************************************************************/ #include "psiolib.c" // PowerShot I/O library 2.0+
DWord key;
int main(void) { ps_init(); ps_cls(0,0); ps_set_pal(ps_default_palette,0);
do { key=ps_get_key_state(); ps_gotoxy(0,0); ps_clr_line(0,15); ps_printf(0,14,0,"KEYFLAG: %08X h\n",key); ps_gotoxy(0,9); ps_printf(1,14,0,"Press [MENU] key to exit",key); if (key!=0) ps_delay(1000); } while ((key&PS_KEY_MENU)==0); return(0); }
Для её сборки понадобится библиотека PSIOLIB (PowerShot I/O), которую надо скачать на всё той же странице чеха и закинуть в папку с исходником.
Собираем эту прогу, получаем готовый к закидыванию на флешку экзешник.
Теперь создаём одноимённый *.ini-файл, куда пишем примерно следующее:
То, что написано после двоеточия, и есть название нашей проги в меню. Не забываем про ранее упомянутый размер файла, если его не соблюсти, то приложение запускаться не будет.
Теперь закидываем экзешник на карту памяти, втыкаем её в фотик и смотрим, что будет. Приложение должно появиться в меню.
Отлично, всё работает!
❯ Что же в итоге?
Разумеется, это далеко не всё, что можно делать с данным девайсом. Программ для него было написано намного больше. Ну и, конечно же, никто не отменял использование аппарата непосредственно для съёмки, тем более, что фотографии на него получаются весьма антуражными.
Теперь есть интерес попробовать портировать на него какую-нибудь игру с ПК. Doom запустить получится вряд ли: ресурсов у фотика маловато. Тем не менее, будет интересно поэкспериментировать с запуском какой-нибудь игры времён XT.