Search
Write a publication
Pull to refresh
54
0

Пользователь

Send message

Зашёл ли похититель ROM аркадного автомата слишком далеко в сохранении наследия Atari?

Reading time7 min
Views15K
image

В начале этого месяца команда The Dumping Union, занимающаяся сохранением цифрового наследия, сделала важное для мира эмуляции аркадных автоматов заявление. В руки этому коллективу попал ROM-образ Akka Arrh — чрезвычайно редкого прототипа игры Atari для аркадных автоматов, а также один из немногих оставшихся автоматов, который до недавнего времени не эмулировался в MAME (Multiple Arcade Machine Emulator).

Эта новость сама по себе могла стать примечательным событием в мире истории игр, и Dumping Union соответствующим образом озаглавила своё объявление на форуме. Но это ещё не всё — история, поначалу казавшаяся открытием редкой игры, превратилась в правдоподобный рассказ об «ограблении», предпринятом «народным мстителем».

Innovation SSI-2001: история одной из самых редких звуковых карт для IBM PC (и её реплики)

Reading time4 min
Views11K
В прошлый раз мы рассказывали о DIY-проекте Snark Barker, автор которого создал реплику винтажной звуковой карты Sound Blaster 1.0. Тот материал набрал 70 плюсов и уже готовится пройти отметку в 50 тысяч просмотров. Сегодня мы продолжаем тему и обсуждаем еще одно устройство, которое вернулось из прошлого. Это — Innovation SSI-2001 и её реплика.

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

Адаптивные антенные решётки: как это работает? (Основы)

Reading time12 min
Views45K
Доброго времени суток.

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

Что такое адаптивная антенная решётка?


Антенная решётка – это набор антенных элементов, некоторым образом размещённых в пространстве. Упрощённо структуру адаптивной антенной решётки, которую мы будем рассматривать, можно представить в следующем виде:
imag

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

Внутри секретной лаборатории Ledger

Reading time6 min
Views14K


«Донжон» — это лаборатория информационной безопасности французской компании Ledger. Ledger производит аппаратные кошельки, на которых хранятся приватные ключи владельцев криптовалют. Злоумышленники охотятся на эти ключи, а аппаратный кошелек, соответственно, защищает ключи от утечки. Насколько надежно? В «Донжоне» прикладывают все усилия, чтобы такой вопрос даже не возникал.
Читать дальше →

Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов

Reading time5 min
Views22K

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

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

Разработка hexapod с нуля (часть 5) — электроника

Reading time4 min
Views18K

WARNING: Данная статья устарела и носит исключительно исторический характер!

Всем привет! Разработка гексапода близится к завершению первой боевой версии и вот настало время для описания всей его электронной начинки. Так же я добавил HC-SR04 для обнаружения препятствий, которого так не хватало для визуальной удовлетворенности во внешнем виде гексапода. Будет немного нового видео и у Вас есть шанс меня отпинать по электронике.

Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
Читать дальше →

Обработка аппаратных прерываний в архитектуре intel. i8080 — i80486, PIC, ISA, conventional PCI

Reading time6 min
Views11K
В топике даётся обзор в исторической перспективе механизмов, используемых для сопряжения внешних устройств с CPU архитектуры x86.

Спойлер
Я понял, что никогда уже не допишу этот грандиозный обзор во всей его полноте, поэтому я просто убрал «часть 1» из названия. Возможно эта часть всё же будет кому-нибудь полезна.
Читать дальше →

Основы формата GLTF и GLB, часть 2

Reading time7 min
Views17K

Данная статья является продолжением рассмотра основ GLTF и GLB форматов. Вы можете найти первую часть статьи здесь. В первой части мы рассмотрели с вами зачем изначально планировался формат, а также такие артефакты и их атрибуты GLTF формата как Scene, Node, Buffer, BufferView, Accessor и Mesh. В данной же статье мы рассмотрим Material, Texture, Animations, Skin, Camera, а также закончим формировать минимальный валидный GLTF файл.


image

Material и Texture


С мешем неразрывно связаны материалы и текстуры. При необходимости меш может быть анимирован. Материал хранит информацию о том, как модель будет отрендерена движком. GLTF определяет материалы, используя общий набор параметров, которые основаны на Physical-Based Rendering (PBR). PBR модель позволяет создавать “физически корректное” отображение объекта в разных световых условиях благодаря тому, что шейдинговая модель должна работать с “физическими” свойствами поверхности. Есть несколько способов описания PBR. Самая распространенная модель — это metallic-roughness model, которая и используется по умолчанию в GLTF. Также можно использовать и specular-glosiness модель, но только при помощи отдельного расширения (extenstion). Основные атрибуты материала следующие:


  1. name — имя меша.
  2. baseColorFactor/baseColorTexture — хранит инфомрацию о цвете. В случае атрибута Factor информация хранится в числовом значении для RGBA, в случае Texture — хранится ссылка на текстуру в объекте textures.
  3. metallicFactor — хранит информцию о Metallic
  4. roughnessFactor — хранит информцию об Roughness
  5. doubleSided — имеет значение true либо false (значение по умолчанию) и указывает на то, будет ли меш рендериться с обоих сторон или только с "лицевой" стороны.
Читать дальше →

АЛУ на 12 транзисторах (на самом деле нет)

Reading time3 min
Views25K


Что можно сделать на 12 транзисторах? Если схема аналоговая, это может быть, например, радиоприёмник или усилитель с достойными характеристиками. Для цифровой же схемы это катастрофически мало. Даже в такой простой микросхеме, как АЛУ К155ИП3 (74181), их значительно больше.

На самом деле транзисторов и здесь не 12, а 27, но из них в собственно АЛУ используются только 11 (двенадцатый транзистор, принудительно подающий логический нуль на вход переноса при выборе логических операций, не установлен). Остальные транзисторы задействованы в формирователе сигналов, подаваемых на входы АЛУ. При включении АЛУ в состав транзисторного процессора формирователь может и не понадобиться, если все необходимые сигналы там уже сформированы.

Как уложиться в это количество? Во-первых, сделать АЛУ однобитным, во-вторых, сократить количество операций до двух арифметических и пяти логических (у К155ИП3 и тех и других по 16, но и здесь их на самом деле больше), в третьих…
Читать дальше →

GHIDRA, исполняемые файлы Playstation 1, FLIRT-сигнатуры и PsyQ

Reading time13 min
Views13K

Привет всем,



Не знаю как вам, а мне всегда хотелось пореверсить старые приставочные игры, имея в запасе ещё и декомпилятор. И вот, этот радостный момент в моей жизни настал — вышла GHIDRA. О том, что это такое, писать не буду, можно легко загуглить. И, отзывы настолько разные (особенно от ретроградов), что новичку будет сложно даже решиться на запуск этого чуда… Вот вам пример: "20 лет работал в иде, и смотрю я на вашу Гидру с большим недоверием, потому что АНБ. Но когда-нибудь запущу и проверю её в деле".

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

Введение в реверс-инжиниринг: взламываем формат данных игры

Reading time48 min
Views27K

Введение


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

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

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

Небольшая предыстория


Всё это началось, когда я пытался воссоздать игру Chip's Challenge на Linux.

Изначально Chip's Challenge была выпущена в 1989 году для ныне забытой портативной консоли Atari Lynx. Для того времени Atari Lynx была впечатляющей машиной, но она вышла в одно время с Nintendo Game Boy, которая в конце концов захватила рынок.

Chip's Challenge — это игра-головоломка с видом сверху и тайловой картой. Как и в большинстве таких игр, цель каждого уровня заключается в том, чтобы добраться до выхода. В большей части уровней выход охраняется разъёмом для чипа, который можно миновать, только собрав определённое количество компьютерных чипов.
Читать дальше →

Конструкция выходного дня: простой MIDI-адаптер

Reading time3 min
Views20K

Приобрёл я как-то своим детям синтезатор Yamaha PSR-550. Инструмент был уже не первой молодости, но исправный. Дети проявили энтузиазм и с синтезатором освоились быстро: разобрались с управлением, научились «писать банки» и т.п. Мне же не давало покоя наличие на задней стенке синтезатора разъёмов «MIDI IN» и «MIDI OUT».
Читать дальше →

Особенности рендеринга в игре Metro: Exodus c raytracing

Reading time11 min
Views23K
image

Предисловие


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

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

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

Первые шаги


На поиск среды, способной работать с этой игрой, у меня ушло несколько дней. Протестировав несколько версий RenderDoc и PIX, я остановился на изучении результатов трассировки лучей с помощью Nvidia NSight. Я хотел изучать рендеринг без функций raytracing, но NSight позволял исследовать подробности и этой функции, поэтому я решил оставить её включённой. Для всего остального рендеринга вполне подошёл PIX. Скриншоты сделаны с помощью обоих приложений.
Читать дальше →

Энциклопедия освещения художника Naughty Dog

Reading time8 min
Views7.6K
Джои Ленц из Naughty Dog подробно рассказал нам об освещении в UE4: о значениях, источниках, световой температуре, освещении в PBR, ресурсах, по которым можно изучать освещение, а также обо многом другом. На официальном сайте Джои polyplant.co есть множество полезных советов о работе с освещением.


Про PBR


PBR (physically-based rendering, основанный на физике рендеринг) благодаря использованию замеренных данных реального мира предоставляет удобные средства для создания материалов/освещения с предсказуемыми, неизменными результатами при разных условиях освещения. Для студий разработки игр это означает, что их художники могут тратить меньше времени на итерации создания контента и его переработку для создания «корректного» внешнего вида в разных уровнях. В свою очередь, это экономит студиям деньги. На освоение PBR художникам, привыкшим к старым методологиям, потребуется какое-то время. Иногда сложнее всего им избавиться от привычки добавления в albedo-текстуры информации об освещении/затенении. Однако как только они освоятся с этим рабочим процессом, то быстро понимают, что им гораздо проще управлять, чем традиционными средствами рендеринга текстур.

Союз Arduino и классического процессора

Reading time9 min
Views34K

Ретрокомпьютерщики бывают различной степени привередливости. Одни довольствуются эмуляцией. Другие предпочитают ПЛИС, потому что тогда получается не эмуляция, а воссоздание. Наконец, третьим подавай настоящий процессор.

Но процессору для работы нужно столько всего! Снова дилемма: взять настоящие микросхемы тех же лет, или поместить всё в ПЛИС, оставив снаружи процессор? Впрочем, почему обязательно ПЛИС? Да здравствует союз Arduino и классического процессора!
Читать дальше →

Реверс-инжиниринг приложений после обфускации (Часть 2)

Reading time12 min
Views6.1K

Введение


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

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

Предмет исследования


Продолжаем изучать код плагина к Visual Studio Atomineer Pro Documentation (далее APD). Давайте познакомимся поближе с инструментом и с его возможностями.
Читать дальше →

20 лет RollerCoaster Tycoon: интервью с создателем игры

Reading time13 min
Views16K
image

31 марта 1999 года была выпущена игра RollerCoaster Tycoon, полностью созданная одним человеком и написанная на языке ассемблера x86. В честь юбилея игры мы публикуем перевод интервью с автором, записанное в 2016 году.

Сегодня мало кто помнит имя шотландского программиста и дизайнера видеоигр Криса Сойера. Похоже, что изобретатель RollerCoaster Tycoon с радостью позволил Atari создавать новые игры в любимой многими серии стратегий, а сам занялся более важными теперь для него делами. И тем не менее, несмотря на радиомолчание, игры Сойера до сих пор многие помнят и почитают больше, чем 20 лет назад.

Занимаясь в начале 90-х переносом с Amiga на PC таких игр, как Elite Plus, Frontier Elite 2, Birds of Prey и Dino Dini's Goal, Сойер создал свою первый симулятор руководителя под названием Transport Tycoon. Он хотел развить идеи Sid Meier's Railroad Tycoon, скомбинировав её геймплейные элементы со своим кодом изометрической графики, и создать новый тип карт. MicroProse одобрила Transport Tycoon, выпустила её в 1994 году, и игра стала хитом. Её расширенная и улучшенная версия Transport Tycoon Deluxe была выпущена всего годом позже.

В процессе планирования сиквела Transport Tycoon Сойер влюбился в американские горки (roller coasters). И так его следующий проект превратился в игру RollerCoaster Tycoon, выпущенную в 1999 году. Она тоже стала хитом. За ней в 2002 году последовала RollerCoaster Tycoon 2. Она стала ещё бОльшим хитом. Несмотря на партнёрские соглашения с такими издателями, как Hasbro, Сойер сохранил за собой право владения франшизой RollerCoaster Tycoon, и, судя по всему, благодаря успеху, оно себя оправдало.

В дальнейшем Сойер решил выпустить из своих рук бразды правления разработкой RollerCoaster Tycoon и позволил другим управлять вагонеткой. Выпущенная в 2004 году RollerCoaster Tycoon 3 разрабатывалась автором Elite: Dangerous, компанией Frontier. В том же году Сойер выпустил Locomotion, которую назвал духовным преемником Transport Tycoon.

Сравниваем yandex и mail: студенческий опыт

Reading time3 min
Views27K

Синопсис


Сейчас прохожу собеседование в Tarantool в Mail.ru и накануне произошел разговор с другом по этому поводу.

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

Как фрагмент CSS разметки сломал C++ компилятор

Reading time3 min
Views14K

Picture 1

В методологии статического анализа применяются разные технологии. Одна из них — препроцессирование файлов непосредственно перед их анализом. Препроцессированные файлы создаёт компилятор, запускаемый в специальном режиме работы. К сожалению, этот режим не очень хорошо тестируется, как показывает наш многолетний опыт разработки статического анализатора кода. В этой заметке приведу пример свеженайденного бага в С++ компиляторе от Microsoft.
Читать дальше →

Реверс-инжиниринг приложений после обфускации

Reading time3 min
Views11K

Введение


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


Предмет исследования


В качестве примера будем изучать код Atomineer Pro Documentation (далее APD). Это плагин для Visual Studio предназначенный для автоматической генерации комментариев в исходных кодах. Для начала установим данный плагин и проверим его работу. Бесплатная версия имеет триальный период и ряд ограничений использования в течении этого времени. Так при добавлении комментариев в файл пользователю выдается сообщение о том, что в течении дня можно обработать только 10 файлов
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity