В эмуляции графики дримкаста всегда было три больших проблемы. Первая это 32-битный z-буфер, который невозможно сделать 100% точным на dx9, второе это куча форматов текстур, которые надо на ходу преобразовывать в понятные для dx, правильно изменять и вовремя подчищать уже не нужные, третье это хитрая аппаратная тайлово/пиксельная сортировка, сделать которую 100% точно невозможно без жуткой потери производительности.
Проблема с z-буфером решилась в dx10/11, где позволили нормально использовать под него все 32 бита, но пришлось выпилить стенсильные тени и придумывать тени на шейдерах, что учитывая особенности модиферов дримкаста сделать правильно довольно сложно. Я не особо в курсе, но этот момент Wind вроде поборол.
Проблема с текстурами в дх9 решалась хранением массива актуальных текстур в формате дх. Преобразование текстур из формата дримкаста в формат дх происходил на CPU, соответственно в 2д играх с большим количеством анимированных спрайтах приходилось часто конвертировать и обновлять массив, что вызывало сильные просадки. В дх11 плагине все преобразования текстур происходят "на лету" в GPU, что позволило сильно разгрузить CPU, сильно улучшилась эмуляция 2д, эмуляцию 3д эта фича почти не затронула.
Теперь сортировка. Пиксельную сортировку усилиями дх9 сделать нет никакой возможности, разве что это будет делаться софтом, но тогда нас ждет 1-2 фпс. Единственный выход - сортировать треугольниками. Но сортировка треугольников выполняется на CPU, в результате даже используя самые современные алгоритмы сортировки при большом количестве накладываемых друг на друга прозрачных объектов могут наблюдаться сильные просадки. Кроме того это не дает 100% правильного результата, так как треугольники могут оказаться в кадре "крест на крест", когда отрисовка любого из них поверх другого не будет давать правильного результата. В дх10/11 появилась возможность как бы делить картинку на слои и сортировать уже эти слои. При этом используется методика предназначенная для АА. У этого метода есть вполне понятные ограничения. Во прервых это конечно невозможность использовать одновременно сортировку и аппаратный АА. Во вторых точность сортировки ограничена количеством слоев. Есть видеокарты могут использовать и 32 и 64 слоя, но в большинстве ширпотреба что уже стоят на компах пользователей будет максимум 8/16 слоев, что в сложных сценах будет явно недостаточно. Кроме того, методика сильно зависит от количества текстурных юнитов в видеокарте. Если их мало, будут явные тормоза в сложных сценах.
В данный момент GPU получается загружен тенями, преобразованием текстур в реальном времени и пиксельной сортировкой. Если использовать не нативное разрешение а в 2 раза больше, то сортировать придется в 2 раза больше пикселей, что естественно еще сильнее нагрузит видеокарту.
Итог и вывод. В данных момент графические плагины Демуля используют все возможности дх в попытке как можно точнее отобразить то что рисовал старенький дримкаст на мониторах ваших многогерцовых монстров. Никогда картинка не будет на 100% такой же как показывал дримкаст, так как те технологии были лицензированы, выкуплены конкурентами и отложены в самый далекий угол ящика, чтобы спокойно продавать нам свежие мегагерцы и порциями выдавать то что давно придумано за новые технологии. А чо, бизнес же.
P.S. Будет возможность - вернусь к проекту, извиняйте братцы.