Рубрика «портирование»

Всем доброго времени суток! Это моя история о том, как я портировал исходный код одной фанатской Windows-игры о Марио с VisualBasic 6 на C++, и с какими трудностями я столкнулся в процессе создания.

Немного об оригинальной игре

Super Mario Bros. X (или коротко SMBX) - это фанатская игра по мотивам вселенной Марио, созданная в 2009 году американцем Эндрю Спинксом (который позже прославился как создатель игры Terraria). Эта фанатская игра была его первым опытом в разработке игр. В ней он познавал азы игростроя. Игра создавалась с использованием VisualBasic 6.

Читать полностью »
Портируем Quake на iPod Classic - 1

Запускаем Quake на iPod Classic (видео).

TL;DR: мне удалось запустить Quake на MP3-плеере. В статье описывается, как это произошло.

Часть прошлого лета я потратил на пару своих любимых вещей: Rockbox и игру Quake id Software. Мне даже предоставилась возможность объединить эти два увлечения, портировав Quake на Rockbox! Большего и пожелать было нельзя!

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

Увы, настало время попрощаться с Rockbox и Quake, по крайней мере, на ближайший срок. Несколько месяцев свободное время для меня будет очень дефицитным ресурсом, поэтому прежде, чем навалится работа, я спешу изложить свои размышления.
Читать полностью »

Как не переписать проект на Rust - 1Как только вы переступаете через болевой порог Борроу-Чекера и осознаёте, что Rust позволяет вытворять невообразимые (и порой опасные) в других языках вещи, вас может постигнуть настолько же непреодолимое желание Переписать Всё на Rust. Хоть и в лучшем случае это банально непродуктивно (бессмысленное разбазаривание усилий на несколько проектов), а в худшем — приводит к уменьшению качества кода (ведь с чего вы считаете себя более опытным в области применения библиотеки, чем её изначальный автор?)

Гораздо полезнее будет предоставить безопасный интерфейс для оригинальной библиотеки, повторно используя её код.

Читать полностью »

Портирование ОС на Aarch64 - 1 Aarch64 — это 64-битная архитектура от ARM (иногда её называют arm64). В этой статье я расскажу, чем она отличается от "обычных" (32-битных) ARM и насколько сложно портировать на него свою систему.

Эта статья — не детальный гайд, скорее обзор тех модулей системы, которые придётся переделать, и насколько сильно архитектура в целом отличается от обычных 32-битных ARM-ов; всё это по моему личному опыту портирования Embox на эту архитектуру. Для непосредственного портирования конкретной системы так или иначе придётся разбираться с документацией, в конце статьи я оставил ссылки на некоторые документы, которые могут оказаться полезны.

Читать полностью »

OpenCV на STM32F7-Discovery - 1 Я один из разработчиков операционной системы Embox, и в этой статье я расскажу про то, как у меня получилось запустить OpenCV на плате STM32746G.

Если вбить в поисковик что-то вроде "OpenCV on STM32 board", можно найти довольно много тех, кто интересуется использованием этой библиотеки на платах STM32 или других микроконтроллеров.
Есть несколько видео, которые, судя по названию, должны демонстрировать то, что нужно, но обычно (во всех видео, которые я видел) на плате STM32 производилось только получение картинки с камеры и вывод результата на экран, а сама обработка изображения делалась либо на обычном компьютере, либо на платах помощнее (например, Raspberry Pi).

Читать полностью »

Лаура Саада, главный продюсер в Playdigious, поделилась историей о процессе портирования Dead Cells на мобильные платформы.

Предупреждая вопросы: да, Dead Cells будет премиумной мобильной игрой. Игра платна на PC, на консолях, такой останется и на мобилах.

Год назад Motion Twin (разработчики Dead Cells) доверили Playdigious работу по портированию Dead Cells на мобильные устройства и предоставили им полную свободу действий. Это был большой день для Playdigious, ведь Dead Cells выиграла множество престижных наград, получила потрясающее освещение и, конечно, понравилась игрокам.

О сложностях при портировании Dead Cells на мобильные платформы - 1
Читать полностью »

Как было реализовано пламя в Doom на Playstation - 1

Целая глава моей книги Game Engine Black Book: DOOM посвящена консольным портам DOOM и сложностям, с которыми сталкивались их разработчики. Можно долго рассказывать о полном провале на 3DO, о сложностях на Saturn из-за аффинного наложения текстур и о потрясающем «реверс-инжиниринге с нуля», выполненном Рэнди Линденом для Super Nintendo.

Изначально двинувшись в направлении, ведущем к катастрофе[1], разработчики порта под Playstation 1 (PSX) в дальнейшем сменить курс и создать порт, завоевавший успех у критиков и рынка. Final DOOM был первым истинным портом, сравнимым с PC-версией. Цветовые сектора с альфа-смешением не только усовершенствовали визуальное качество, но и улучшили геймплей благодаря индикации ключа нужного цвета. Также благодаря эффектам реверберации Audio Processing Unit консоли PSX был улучшен звук.

Команда разработчиков выполнила настолько качественную работу, что у неё осталось ещё немного свободных циклов ЦП, которые они решили использовать для генерации анимированного огня в интро и геймплее. Меня это настолько привело в благоговейный трепет, что я решил разобраться, как был реализован эффект. Когда первые поиски не дали ответа, я приготовился уже сдувать пыль с книги по MIPS для взлома исполняемого файла, но Сэмюэль Вильяреал вовремя ответил в Twitter, что он уже выполнил обратную разработку версии для Nintendo 64[2]. Мне достаточно было просто немного её подчистить, упростить и оптимизировать.
Читать полностью »

Осенью 1981 я поступил в вуз и пристрастился к играм Centipede и Tempest на аркадных автоматах Atari. Я немного разбирался в железе персональных компьютеров Atari 400/800 и решился совершить разорительную для студенческого бюджета покупку — Atari 400 и черно-белый телевизор (цветной я не мог себе позволить). Наигравшись с Basic'ом, я купил картридж с Assembler/Editor и принялся корпеть над клоном Centipede. У меня не было возможности опираться на опыт предыдущих игровых проектов и я вынужден был разбираться во всём самостоятельно. Прям как со школьными задачами: нужно найти решение, используя лишь небольшие подсказки из учебников и лекций.
Donkey Kong и Я - 1
Каждый, кто работал с Asm/Editor, скорее всего, несёт такие же глубокие эмоциональные шрамы на себе как и я! Редактор был невероятно медленным, отладчик работал на ладан, а мне приходилось удалять комментарии и использовать оверлеи в пару килобайт (RAM'ы было не много и все переменные не вмещались, поэтому использовалась техника оверлеев — разные группы переменных размещались по одинаковым адресам. Понятно, что одновременно переменные с разных секций использовать было нельзя, причём не только переменные с одним адресом, но и вообще переменные из разных оверлейных секций.) для того чтобы уместить весь код. Создание игры, которую я назвал Myriapede, заняло три месяца. У меня до сих пор хранятся эскизы и наброски: миллиметровка, исчерченная разноцветными ручками и с шестнадцатеричными значениями цветов, тщательно выписанных на поля. Цвета я подбирал наобум: у меня был только дешевый черно-белый экран, и я заходил к другу на пару часов в гости, чтобы проверить и подстроить значения цветов на его телевизоре.
Читать полностью »

В марте-мае этого года я потратил несколько недель (по вечерам и выходным) на портирование игрушки Lode Runner с БК-0010 на УКНЦ.
Скриншот меню портированной версии:
Портирование Lode Runner с БК на УКНЦ - 1
Читать полностью »

Ранее корпорация Apple разрабатывала продукты исключительно под iOS. Однако теперь компания не исключает возможности разработки продуктов и для Google Android OS. Все началось с портирования сервиса Apple Music для Android и выпуска приложения Move to iOS. С его помощью можно перенести данные с устройства на Android на cмартфон или планшет на iOS. 5 августа на сайте Apple появилось объявление о поиске Android-программистов для работы над новыми продуктами компании.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js