Рубрика «эмуляторы»

Крупные издатели ненавидят эмуляторы консолей
Крупные издатели ненавидят эмуляторы консолей

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

image

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

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

Стек TypeScript, Сanvas и веб-аудио позволяет эмулировать компьютерные системы с использованием веб-технологий. В докладе я на примере приставки NES рассказал, как устроена архитектура компьютеров — процессор, программа, периферийные устройства, отображение I/O на память.

Доклад можно разделить на три части:

  1. как устроен процессор 6502 и как его эмулировать, используя JavaScript,
  2. как работает устройство вывода графики и как игры хранят свои ресурсы,
  3. как синтезируется звук с использованием веб-аудио и как это параллелится на два потока с помощью аудиоворклета.

Я постарался дать советы по оптимизации. Всё же эмуляция — дело такое, при 60 FPS остаётся мало времени на выполнение кода.
Читать полностью »

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

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

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

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

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

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

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

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

От моделей галактик до атомов – простые уловки в реализации ИИ ускоряют симуляции в миллиарды раз - 1

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

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

Когда-то давным-давно жила игра для GBA под названием Hello Kitty Collection: Miracle Fashion Maker. Это была милая игра, основанная на знаменитой франшизе Sanrio Hello Kitty и разработанная компанией Imagineer. Но под маской кажущегося невинным названия скрывалась коварная проблема. По каким-то причинам эта простая игра не запускалась ни на одном эмуляторе GBA. Но одного этого было бы недостаточно, чтобы назвать проблему багом Святого Грааля. Как и все баги Святого Грааля, сам этот баг совершенно сбивал с толку. Объяснение было простым: на каком-то этапе последовательности запуска игры она попадала в цикл, из которого никогда не выходила, ожидая чтения определённого значения из памяти, которой не сущесвтует. Хотя подобные баги есть во многих играх, например, в интро популярной The Legend of Zelda: The Minish Cap, они полагаются на особое поведение, вызываемое чтением недействительных адресов памяти. Но этот цикл, казалось, нарушал подобное поведение. Тем не менее, на реальном оборудовании всё-таки игра работала. Более того, точно такой же баг возникал и при загрузке сохранения в Sonic Pinball Party после холодной перезагрузки. Могло ли ожидание этих недействительных адресов памяти быть каким-то образом ошибочным? Но если да, то как?

Бесконечный цикл, которого не было: история бага Святого Грааля - 1

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

«Тетрис» в роли принтера - 1

Поворачивая, переставляя и опуская вниз заранее заданную последовательность фигур, Tetris Printer Algorithm использует механику «Тетриса» для генерации произвольных битовых изображений.

Описание алгоритма

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

«Тетрис» в роли принтера - 2

«Тетрис» в роли принтера - 3

«Тетрис» в роли принтера - 4

Как показано ниже, алгоритм также может генерировать одной структурой несколько квадратов.

«Тетрис» в роли принтера - 5

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

Как работала графическая система Sega Mega Drive: Video Display Processor - 1

Описание концепции VDP

  • VDP
    • "Video Display Processor"
    • Чип видеоконтроллера, занимающийся работой с тайловой графикой, плоскостями скроллинга и спрайтами Genesis. На самом деле не является процессором.
  • VRAM
    • "Video RAM"
      • RAM (ОЗУ), используемая VDP
      • Содержит тайлы (изображения размером 8x8 пикселей)
  • Два основных типа консолей
    • Консоли NTSC
      • «Sega Genesis», 60-герцовые машины, в основном распространённые в США
      • Разрешения
        • Режим H40 — 320x224 пикселя (40x28 тайлов). Самый распространённый режим разрешения
        • Режим H32 — 256x224 пикселей (32x28 тайлов). Менее популярный режим разрешения
      • Наша студия Mega Cat выпускает NTSC-игры, поэтому использует эти разрешения!
    • Консоли PAL
      • «Sega Mega Drive», 50-герцовые машины, продавались во всём остальном мире
      • Разрешение
        • Режим H40 — 320x240 пикселей (40x30 тайлов). Самый распространённый режим разрешения
        • Режим H32 — 256x240 пикселей (32x30 тайлов). Менее популярный режим разрешения

Как работала графическая система Sega Mega Drive: Video Display Processor - 2

Слева: NTSC Model 2 Sega Genesis, справа: PAL Model 2 Mega Drive (европейская)Читать полностью »

Правильная передача цветов ретроконсолей в эмуляторах - 1 Правильная передача цветов ретроконсолей в эмуляторах - 2

Почти все игровые ретроконсоли генерируют цвета в каком-нибудь из вариантов RGB-кодирования.

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

Самым распространённым сегодня видом дисплеев являются ЖК-панели (LCD). Они известны тем, что имеют очень плохие уровни чёрного. Различия между TN, PVA и IPS не слишком на это влияют.

Отдельные фанаты играют на ЭЛТ-мониторах, и всё большую популярность набирают OLED-экраны, особенно на телефонах и планшетах. Но в этой статье мы в основном будем рассматривать ЖК-экраны, хотя данная методика важна для дисплеев любого типа.

Точность цвета

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

Например, Sega Genesis кодирует 9-битные цвета, что даёт по 3 бита на канал.

Самым наивным решением было бы поместить 3 бита в самые старшие 3 бита вывода, а младшие 5 бит оставить пустыми, но при этом белый цвет становится немного серым.
Читать полностью »


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