Search
Write a publication
Pull to refresh
4
0.7
Роман Титов @perfect_genius

Неостановимый генератор идей по улучшению мира

Send message

Как сделать ОС для микроконтроллера

Reading time33 min
Views26K

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

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

Читать далее

Реклама Creative Commons творчества русской группы Complex Numbers, что с 1996 года создает хорошую научную фантастику

Reading time3 min
Views7.6K

Здравствуйте, я давно знаком с творчеством Complex Numbers, насколько я помню сначала меня поразила их опера 2032, которая вышла за год до первого айфона, где человек общается с машиной об оптимальной социальной формации, потом волосы встали дыбом от песенки Последее Кольцо, где рассказывается о тепловой смерти вселенной, что даже если мы и станем бессмертными пост-человеками то ничего не сможем поделать с законами физики.

Интересно что главный, Виктор Аргонов, много лет занимался физикой и имеет соответствующие научные работы, а также статьи по философии сознания. Редкий феномен, когда ученый делает песенки, и большие оперы (похоже на жанр Театр у микрофона). Музыка часто похоже на ретрофутуризм, но текст и голоса девушек исполнителей доставляют. Сегодня Виктор ушел из науки и зарабатывает статьями про криптовалюты, продолжая после работы делать новые произведения про будущее человечества и работу мозга.

На Хабре не нашел ни одной статьи об этой группе, подумал что они достойны рекламы. Тем более что творчество их мало того что бесплатно, так еще и Creative Commons. 25 лет, создавая после работы, такие особенные филосовские произведения. Какбы андерграунд, но стало удивлением что в Дальневосточном федеральном университете на кафедре «Основы биологии человека и биоэтики» в программе обучения от 2017 года содержится задание по написанию эссе после прослушивания Русалочки (одна из опер группировки). Вопросы студентам предлагаются следующие:

Read more

Поиск изображений

Reading time5 min
Views13K

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

Читать далее

Multithreading

Reading time77 min
Views229K

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

Читать далее

Исправляем кривой запуск первого Mass Effect

Reading time18 min
Views20K
image

Часть 1


В последнее время я работал над собственным форком ME3Explorer [неофициальный редактор игр серии Mass Effect], содержащим множество важных улучшений и даже новые инструменты. Также я поработал над Mod Manager 5.1, который имеет удобные новые функции импорта сторонних модов, однако был отодвинут на второй план, пока я работал над новым фронтендом установщика ALOT.

ALOT Installer с манифестом 2017 года

Для его реализации я сотрудничал с CreeperLava и Aquadran; он должен упростить жизнь конечным пользователям, устанавливающим ALOT и его аддон (сторонние текстуры). Одна из моих проблем заключалась в том, что Origin не запускал игру после установки ALOT, если не запустить его с правами администратора. И поскольку запуск Origin при загрузке невозможно выполнить с правами админа, это очень раздражает. К тому же это влияет на мод MEUITM. Поэтому я начал разбираться, почему это происходит. Дело оказалось в идеальном сочетании реализации защиты, плохого кода и желания упростить жизнь других людей.

Давайте посмотрим, как работает Mass Effect с Origin в неизменённом состоянии под Windows 10.
Читать дальше →

Переобученные нейросети в дикой природе и у человека

Reading time6 min
Views83K
Представьте, что вы проектируете птенца чайки. ТЗ такое — у него довольно плохое зрение, маленький мозг, но ему нужно как можно больше есть, а то сдохнет. Еду ему приносит мама-чайка. Основная задача — распознать маму-чайку и получить у неё еды. Во входной поток зрения поступает, скажем, 320х200 px, и дальше 10 сантиметров от глаза он не умеет фокусироваться. Природа решила так — надо разметить клюв чайки ярким оранжевым округлым пятном. Вот таким:



В ходе реверс-инжиниринга чайки в 1950-х Нико Тинберген провёл 2431 опыт с 503 птенцами (часть его коллега Рита Вейдманн высидела сама). Выяснилось, что птенец реагирует и не только на клюв, но и на картонный прямоугольник с круглым оранжевым пятном. И пытается получить у него еду как у обычной чайки. Звучит логично, особенно в условиях нехватки вычислительных ресурсов птенца, правда? «Появляется сверху», «длинный» — это важно. Но самая высокая ценность сигнала «оранжевый на белом» — и она по мере эволюции завышается.

Под самый конец внезапно нашёлся ультранормальный сигнал. Если птенцу показать прямоугольник с тремя оранжевыми полосами, он распознает его куда быстрее, точнее, и среагирует в разы активнее. То есть сильнее распознаётся другой образ, которого нет в природе.

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

Как воспоминания переживают ампутацию, метаморфозы, и передаются через инъекции

Reading time7 min
Views14K

Если безголовый червь может заново отрастить память, тогда где же она хранится? А если память может восстанавливаться, можно ли её перенести?

Изучение памяти всегда было странной темой, стоявшей в науке особняком. В 1950-е годы никому не известный профессор психологии Джеймс Макконнел из Мичиганского университета попал в заголовки газет (став в итоге чем-то вроде знаменитости), проведя серию экспериментов над планариями – пресноводными плоскими червями. Они восхищали Макконнела не только потому, что обладали, по его словам «нервной системой истинно синаптического типа». Также они «имели невероятные способности к регенерации. При лучшем раскладе можно разрезать червя на множество частей, до 50 штук», и каждая из них восстановится в «нетронутый и полностью функционирующий организм».
Читать дальше →

Фильтр Калмана — это легко

Reading time18 min
Views98K


Много людей, в первый раз сталкивающихся в работе с датчиками, склонны считать, что получаемые показания — это точные значения. Некоторые вспоминают, что в показаниях всегда есть погрешности и ошибки. Чтобы ошибки в измерениях не приводили к ошибкам в функционировании системы в целом, данные датчиков необходимо обрабатывать. На ум сразу приходит словосочетание “фильтр Калмана”. Но слава этого “страшного” алгоритма, малопонятные формулы и разнообразие используемых обозначений отпугивают разработчиков. Постараемся разобраться с ним на практическом примере.
Читать дальше →

Ностальгия: роемся у «Танчиков» под капотом

Reading time12 min
Views107K
Многие из нас выросли на «Танчиках», «Марио» и прочих нетленных шедеврах времён рассвета игровой индустрии. Приятно порой вспомнить, как днями напролёт резались с друзьями у экранов телевизоров, меняя джойстики как перчатки. Но время не стоит на месте, и одни интересы сменяются другими. Однако, порой любовь к старым-добрым игрушкам не угасает.
Я отношу себя к людям именно таким, и мой интерес к старым играм пошёл в сторону реверс-инжиниринга, что и привело меня в IT-сферу, где я и осел с концами.

Я хочу рассказать вам о том, что же под капотом у железных монстров из знаменитой игры Battle City (в простонародье «Танчики») с не менее знаменитой приставки Nintendo Entertainment System (сокращённо NES, в России более известен её китайский клон «Dendy»). Мне в своё время эта информация показалась довольно любопытной — надеюсь, такой же она покажется и вам.
Читать дальше →

Ускоряем на 70% игру на процессоре в 1 МГц

Reading time16 min
Views31K

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

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

Это история об одном из таких трюков.

Я постараюсь припомнить все важные подробности, однако в чём-то могу ошибиться. Если так случится, простите меня, это было очень давно.

Исходные данные


Мой друг, одарённый программист, почти закончил свою новую игру. Каким-то образом ему удалось почти без изменений уместить в компьютер эпохи 1980-х довольно впечатляющую графически на то время игру, популярную на аркадных автоматах.

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

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

Я посмотрел. Но там нельзя было найти никакой простой оптимизации.
Читать дальше →

Ищем сокровища в исходном коде Aladdin

Reading time34 min
Views36K
image


На момент своего выхода в 1993 году Disney’s Aladdin на Sega Genesis (или Mega Drive, если в начале 90-х вы жили с другой стороны лужи) была удивительно красивой игрой.

Благодаря использованию технологии, которая позже стала известной, как Digicel, правильному выбору промежуточного ПО и впечатляющему таланту авторов Aladdin смогла выделиться на фоне других игр Genesis той эпохи. Красивая нарисованная от руки графика Aladdin установила новую планку качества для того, чего можно добиться на «железе» Genesis. Это стало возможным не с помощью особенно интересных растровых эффектов или тайных аппаратных приёмов, а благодаря сочетанию эффектной графики, дизайна и правильно выбранной технологии.

Эта уникальная смесь графики и технологий стала основной причиной, позволившей игре Aladdin занять особое место в истории видеоигр. Поэтому мне так радостно было найти архив с полным исходным кодом игры в коллекции Video Game History Foundation! Кроме бесценного источника данных, этот архив является для меня отличной возможностью создать стандарты для сохранения исходного кода, отслеживания зависимостей инструментов и многих других процессо-ориентированных аспектов в VGHF.

ISA ошибок не прощает

Reading time3 min
Views32K
–X86 – это исторически сложившееся недоразумение,– мэтр и в 80 не утратил полемического задора.
– Вообще-то ей принадлежит 95% серверного рынка, – вяло откликнулся я. Мне не хотелось вступать в спор на сто раз заезженную тему
– А я уже запутался в этих префиксах, — не унимался академик. – 15 байт на инструкцию, это немыслимо!
– Ну, не ice, конечно. Но у кого лучше-то?
– Да у кого угодно, хотя бы у ARM-a.
– Я все же не понимаю. Cложения с умножениями должны быть?
– Должны.
– И сдвиги c логическими операциями?
– Да.
– И загрузки с сохранениями тоже. Какая разница как они называются и кодируются?
Читать дальше →

#02 — И целого байта мало… | The Cross of Changes

Reading time4 min
Views11K
Честь по чести и часть за частью. Примерно так мы будем погружаться с вами в увлекательный мир демосцены. Сегодня поговорим о конкретной работе в области sizecoding. Дело в том, что некоторые релизы не только имели культовый статус в узких кругах — они прямо и явно воздействовали на умы людей, заставляя учить IDA Pro, смотреть код, проникать во все мельчайшие детали. Было просто непонятно и очень интересно, как же такая магия работает.

Речь идет о cross by Queue Members Group — 128 байт интро для PC из далекого 1996 года:

image

Вот видеозапись работы:



Защита и взлом Xbox 360 (Часть 2)

Reading time9 min
Views71K


В прошлый раз мы оставили сцену Xbox 360 на моменте, когда разработчикам стало очевидно, что защита DVD-ROM легко обходится, и с этим точно нужно что-то делать. Попытки исправить ситуацию обновлением ПО самой приставки не увенчались успехом, и на поле битвы вступила компания Philips & Lite-On, DVD-приводы которой с каждой новой моделью становились всё более продвинутыми в плане защиты. Но и методы взлома с каждым разом становились всё более и более изощрёнными. В этой части я расскажу, как в Microsoft пытались исправить ситуацию с нелицензионными дисками, и до каких методов прошивки DVD-привода можно докатиться, когда закрыто буквально всё.
Читать дальше →

Эмуляторы SNES всего в нескольких пикселях от абсолютного совершенства

Reading time20 min
Views20K

Мы так близки к созданию эмулятора, способного идеально воссоздавать все функции реального железа и ПО SNES.

В течение последних 15 лет как кодер эмулятора bsnes я пытался довести до совершенства эмуляцию Super Nintendo, но теперь мы столкнулись с последней проблемой: точным таймингом тактов видеопроцессоров SNES. Чтобы достичь этого завершающего этапа точности эмуляции, требуется помощь всего сообщества, и я надеюсь на вашу поддержку. Но для начала я расскажу, чего мы уже добились.

Текущее состояние


Сегодня ситуация с эмуляцией SNES очень хороша. Если не считать необычные периферийные устройства, которые сопротивляются эмуляции (например, клюшка для гольфа с датчиком света, велосипедный тренажёр и dial-up-модем, который в Японии использовали для ставок на конных скачкахJapan), все официально лицензированные игры для SNES полностью играбельны, и ни в одной игре нет очевидных проблем.

Эмуляция SNES стала такой точной, что мне даже пришлось разделить эмулятор на две версии: higan, которая стремится к абсолютной точности и соответствию документации железа, и bsnes, которая стремится к скорости, широким возможностям и простоте использования.
Читать дальше →

Рецепты для ELFов

Reading time16 min
Views36K

image


На русском языке довольно мало информации про то, как работать с ELF-файлами (Executable and Linkable Format — основной формат исполняемых файлов Linux и многих Unix-систем). Не претендуем на полное покрытие всех возможных сценариев работы с эльфами, но надеемся, что информация будет полезна в виде справочника и сборника рецептов для программистов и реверс-инженеров.


Подразумевается, что читатель на базовом уровне знаком с форматом ELF (в противном случае рекомендуем цикл статей Executable and Linkable Format 101).


Под катом будут перечислены инструменты для работы, описаны приемы для чтения метаинформации, модификации, проверки и размножения создания эльфов, а также приведены ссылки на полезные материалы.

Поработаем с эльфами

Защита и взлом Xbox 360 (Часть 1)

Reading time12 min
Views112K
image Вы наверняка слышали про игровую приставку Xbox 360, и что она «прошивается». Под «прошивкой» здесь имеется в виду обход встроенных механизмов защиты для запуска копий игр и самописного софта. И вот здесь возникают вопросы! Каких механизмов, как они обходятся? Что же наворотили разработчики, как это сумели обойти? На самом деле, тема очень обширная и интересная, особенно для Xbox 360 — здесь можно встретить уязвимости в ПО, аппаратные недочеты, и совсем уж магическую магию. Интересно? Заглядываем! В первой части у нас знакомство с гипервизором, приводами и прошивками…

Читать дальше →

История одного патча Apple

Reading time10 min
Views12K

image


В этом году мы с a1exdandy выступали на конференциях VolgaCTF и KazHackStan с докладом про Patch Diffing программ, написанных на Оbjective-С, и то, как с его помощью можно искать и находить 0-day и 1-day уязвимости в продуктах компании Apple. Видео выступления можно посмотреть по ссылке, а для чтения статьи добро пожаловать под кат.

Читать дальше →

Как создавался кроссплатформенный Half-Life или «Хедкрабы внутри ваших часов»

Reading time4 min
Views32K


Парочку месяцев назад на Гиктаймсе проскакивала новость о запущенной Half-Life на Android Wear. В статье ни слова не сказано было о разработчиках и тогда один из хабровчан спросил в комментариях, почему никто из них не напишет здесь?

И вот уже годовщина с того момента, как я начал порт свободного движка Xash3D на Linux, а также, поскольку несколько моих знакомых всё же интересовались подробностями, я решил написать этот пост. Кому интересна история проекта, обходы разных проблем и мои личные советы, прошу под кат.
Читать дальше →

Благодаря удивительному глитчу в Ocarina of Time удалось добавить модели из Star Fox 64

Reading time5 min
Views5K
image

За долгие годы написания статей про игры я рассказал о многих удивительных глитчах, неизвестных с давних пор кодах, трюках с выполнением произвольного кода и поисках глубоко сокрытого контента внутри классических игр и оборудования. Но ничто не смогло подготовить меня к этому видео с Twitch, в котором флот летающих Arwing из Star Fox 64 вторгаются в мир Ocarina of Time, чтобы напасть на Линка.

Подобную сцену ожидаешь увидеть только в созданном фанатом мультфильме или ROM-хаке, которые Nintendo так любит изымать из Интернета. Но самое удивительное в этом клипе то, что он демонстрирует немодифицированную версию оригинального японского ROM Ocarina of Time с использованием стандартной консоли и контроллеров N64.

Целое утро я разбирался с тем, как такое вообще возможно. Чтобы объяснить это, придётся совершить глубокое погружение в суть инструкций машинного языка Nintendo 64, управления памятью Ocarina of Time и самого процесса разработки игр середины 90-х. Если вам так же любопытно, как и мне, присоединяйтесь.

Information

Rating
2,844-th
Location
Набережные Челны, Татарстан, Россия
Date of birth
Registered
Activity