
****************************************************

Содержание:

1) Базовая информация

2) Системные требования

3) Настройка плагина

4) Советы

5) Известные проблемы

6) Лицензия

7) Контакты

****************************************************

1) Базовая информация

Blade_Arma_GPU_Soft_Plugin – видео плагин, часть проекта rbpse, портирован на 
систему PSEmuPro. (эмуляторы ePSXe, SSSPSX, PSXeven, PCSX, AdriPSX и другие.)

Введение:

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

Инсталляция:

Распаковываем архив gpuBladeSoft.tar.xz/gpuBladeSoft.7z в каталог с эмулятором.

Загружаем GTK+ runtime для работы гуи:
Windows: http://www.gtk.org/download/index.php
Linux: из репозитория вашего дистрибутива.

Устанавливаем,
перезагружаемся.

Выбираем плагин в эмуляторе.

Если есть желание установить всё ручками, то надо знать следующее:
GPU плагин «gpuBladeSoft.so»/«gpuBladeSoft.dll» должен находится в каталоге с 
плагинами («./plugins»). GUI для настройки плагина 
«gpuBladeSoftGui»/«gpuBladeSoftGui.exe» и файл настройки «gpuBladeSoft.ini» 
должны находится в каталоге с настройками («./configs»). Для снятия скриншотов 
и записи видео должны быть созданы каталоги «./captured/screenshots» и 
«./captured/videos» соответственно.

****************************************************

2) Системные требования

Программные:

– ОС Linux, ядро 2.6 или выше / ОС Windows 2000 или выше.
– GTK+ 3.8 или выше для диалога настройки.

Аппаратные:

– OpenGL-совместимая видео карта.

****************************************************

3) Настройка плагина

ЗАКЛАДКА «SETTINGS»

ЗАКЛАДКА «MAIN»

Display settings:

«Fullscreen»
Запуск эмулятора в полноэкранном режиме.
"Desktop settings" — используются параметры рабочего стола, пропорции дисплея 
устанавливаются автоматически.
"Native resolutions" — используются "родные" разрешения устанавливаемые psx, 
имеет смысл только для карт поддерживающих очень большой диапазон разрешений 
(ArcadeVGA). При изменении разрешения приложением на psx произойдёт реальная 
смена разрешения дисплея.
"Standard mode" — обычный режим, выбор нужного разрешения, глубины цвета и 
частоты обновления дисплея.

«Windowed»
Запуск эмулятора в оконном режиме.
(Поля справа позволяют указать желаемые размеры окна, от 0x0 до 8192x8192.)

«Wait for VSync»
Включить режим синхронизации переключения буферов с вертикальной синхронизацией 
монитора, это поможет уменьшить эффект "рваного" изображения. Один из важнейших 
на мой взгляд параметров. Обновление экрана без учёта вертикальной 
синхронизации приводит к рваному/дёрганному изображению на дисплее, в следствие 
чего ощущения от игры на эмуляторе/мониторе намного хуже чем при игре на 
консоли/телевизоре. Лимитирование fps при включении этого режима следует 
установить в "Disabled".
Для владельцев ЖК мониторов: ЖК мониторы имеют достаточно низкие частоты 
обновления и значительное время отклика, что позволяет просто выбирать любое 
разрешение поддерживающее 50/60 герц для PAL/NTSC соответственно, режим vsync 
нужно установить в "1 / 1".
Для владельцев ЭЛТ мониторов: Частоты 50/60 герц неприемлемы для просмотра на 
ЭЛТ мониторах из-за неприятного мерцания, поэтому следует выбирать разрешения 
поддерживающие частоты кратные 50/60 герцам, например 100/120 герц, режим vsync 
в таком случае нужно установить на "2".

Framerate:

«FPS limitation»
Ограничение количества кадров в секунду.
"Disabled" — без ограничений.
"Auto-detection" — устанавливает стандартные значения: 59.94 кадра в секунду 
для NTSC или 50 кадров для PAL игр.
"Manual" — ручной режим, позволяет установить произвольную частоту кадров.

«FPS value»
Число fps используемое режимом ограничения Manual.
(Может принимать значения в пределах: 0.10 - 9999.99.)

Processing:

«Internal resolution»
Позволяет улучшить качество картинки в 3д-играх за счёт увеличения внутреннего 
разрешения, ресурсоёмкость при этом возрастает в разы.
Большинство игр имеет разрешение 320x240, выставив внутреннее разрешение в 2x2 
мы получаем 640x480, что естественно уменьшает "пикселизацию" и "лестничный 
эффект".
(Может принимать значения в пределах: 1 - 16.)

«Use 32-bit renderer»
Использовать 32-х битный рендерер, приближает качество картинки к аппаратно 
ускоренным плагинам за счёт плавной закраски полигонов, устраняет цветовой 
"лестничный эффект".
"Disabled" — выключено.
"Primitives with dithering" — включено только для примитивов с включенным 
режимом дизеринга.
"Gouraud shaded primitives" — включено для всех примитивов закрашенных по Гуро.
"All primitives" — включено для всех примитивов.

«Dithering method»
Данная опция актуальна только при выключенном «Use 32-bit renderer».
"PSX" — оригинальный метод смешивания цветов.
"Improved" — альтернативный метод смешивания, где-то он даёт лучший результат, 
чем оригинальный, где-то хуже, выбирайте сами.

«Texture filtering»
Задействовать использование дробной части текстурных координат в виде весового 
коэффициента для смешивания соседних цветов текстуры, получаются плавные 
переходы из одного цвета в другой. Повышение качества достаточно сильное, 
особенно для полигонов, чьи размеры много превышают разрешение текстуры или при 
использовании повышенного внуреннего разрешения. Разделение на режимы сделано 
по причине невозможности идеального варианта.
"Disabled" — выключено.
"Bilinear for polygons" — включено только для полигонов.
"Bilinear for sprites" — ключено только для спрайтов.
"Bilinear for polygons and sprites" — включено и для полигонов и для спрайтов.
"Precise for polygons" — не реализовано.
"Precise for sprites, bilinear for sprites" — не реализовано.

«Hi-Res textures»
Повышение разрешения текстур "на лету" при помощи специализированных алгоритмов 
типа SaI, Hq, Scale. Неплохо повышает качество картинки, особенно при 
повышенном внутреннем разрешении. Из недостатков можно отметить некоторое 
усиление видимости швов между текстурами, при соединении которых разрабочики 
игры допустили огрехи.

«Progressive scan/rendering»
Выключить эмуляцию чересстрочной развёртки. Чересстрочная развёртка — метод 
отображения, при котором каждый кадр разбивается на два полукадра (или поля), 
составленные из строк, выбранных через одну. Поочерёдная отрисовка чётных и 
нечётных строк приводит к ухудшение качества картинки, но повышает скорость 
эмуляции, так как требование к филлрейту уменьшается в два раза. Данная опция 
выключает такой режим отрисовки и вывода, что позволяет добиться высокого 
качества картинки и соответственно замедляет скорость эмуляции, так как 
требование к филлрейту возрастает вдвое.

Postprocessing:

«Deinterlacing method»
Метод деинтерлейсинга, имеет смысл только при отключенном режиме «Progressive 
scan/rendering».
"Line doubling" — отрисовывать каждую линию дважды, вызывает некоторое дрожание 
картинки, наилучший режим для динамических игр и наиболее близко к картинке на 
ТВ.
"Field combination" — смешивать текущий и предыдущий кадр, вызывает эффект 
"гребёнки", наилучший режим для статичных игр.

«Screen filtering»
Фреймбуфер фильтруется весь целиком. Фильтр можно выбирать по вкусу, не забывая 
что некоторые из них очень ресурсоёмки. 2D игры обычно лучше выглядят с 
SuperSai2x/SuperEagle, а Hq2x/Hq3x больше подходит для 3D игр.

«Shader effect»
Применить шейдер при выводе конечного изображения, используются glsl шейдеры 
написанные к плагину gpuPeteOGL2 от Pete Bernert. Шейдеров много, есть 
полезные, есть не очень, выбирайте сами, ну во всяком случае они позволяют 
неплохо улучшить картинку без дополнительной нагрузки на цпу, что очень хорошо 
так как плагин использует программный рендерер. Шейдеры должны находиться в 
каталоге «./shaders» в корневом каталоге эмулятора, каждый в своём подкаталоге.

«Shader level»
Уровень шейдера.
(Может принимать значения: 1(Minimum), 2(More), 3(Medium), 4(Maximum).)

«Screen bilinear filtering»
Уменьшает пикселизацию картинки. Используется аппаратное ускорение, на скорость 
эмуляции влияет незначительно.

«Brightness»
Уровень яркости выводимого изображения.
(Может принимать значения в пределах: -100 - 100.)

«Gamma»
Уровень гаммы выводимого изображения.
(Может принимать значения в пределах: -100 - 100.)

«Contrast»
Уровень гаммы выводимого изображения.
(Может принимать значения в пределах: -100 - 100.)

«Aspect ratio correction»
Использовать указанные пропорции выводимого изображения, выберите в 
соответствии с пропорциями вашего дисплея.
(None, 1/1, 5/4, 4/3, 3/2, 8/5, 5/3, 16/9, 17/9.)

ЗАКЛАДКА «VISIBLE AREA»

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

Prefences:

«Prefences»
"Perfect" — лучший вариант вывода. Картинка занимает всё окно, минимум чёрных 
бордюров. Режим не позволяет производить настройки экрана в настройках игры, 
возможны нарушения пропорций картинки.
"Standard" — приближение картинки к среднестатистическому телевизору.
"Custom" — режим пользовательской настройки, позволяет настроить вывод вручную.
"Full VRAM (4-bit)" — отображение всей видеопамяти консоли в 4-х битном режиме. 
Для более точного представления следует установить размер окна в 4096х512 и 
выставить коррекцию пропорций оконного режима в «None».
"Full VRAM (8-bit)" — отображение всей видеопамяти консоли в 8-ми битном 
режиме. Для более точного представления следует установить размер окна в 
2048х512 и выставить коррекцию пропорций оконного режима в «None».
"Full VRAM (15-bit)" — отображение всей видеопамяти консоли в 15-ти битном 
режиме. Для более точного представления следует установить размер окна в 
1024х512 и выставить коррекцию пропорций оконного режима в «None».
"Full VRAM (24-bit)" — отображение всей видеопамяти консоли в 24-х битном 
режиме. Для более точного представления следует установить размер окна в 
682х512 и выставить коррекцию пропорций оконного режима в «None».

«Overscan»
Параметр позволяет отобразить большую часть картинки, которая может быть не 
видна на стандартном телевизоре.
(Может принимать значения в пределах: -10 - 10.)

«Position»
Сдвиг картинки.
Иногда бывает так, что чёрный бордюр с одной стороны больше чем с 
противоположной, используем этот параметр чтобы отцентровать картинку и затем 
увеличить используя «Zooming».
(Может принимать значения в пределах: -100 - 100.)

«Zooming»
Уменьшение/увеличение картинки.
Пропорции моего монитора 16/9 и потому в полноэкранном режиме по бокам большие 
чёрные полосы, но также достаточно часто в играх небольшие чёрные полосы сверху 
и снизу, поэтому можно задействовать большую область экрана без нарушения 
пропорций или потери части картинки.
(Может принимать значения в пределах: -100 - 100.)

«Mirroring»
Отражение экрана по горизонтали и вертикали.

«Screen rotation»
Поворот экрана на указанное количество градусов.

ЗАКЛАДКА «ADVANCED»

«Polygon renderer»
"Standard" — стандартный рендерер PSX.
"Quad" — отрисовка сдвоенных треугольников квадами. Отрисовка квадами призвана 
уменьшить искажения при текстурировании, вызываемые отсутствием 
перспективно-корректных преобразований. Качество картинки в данном случае 
зависит от конкретной игры, чем чаще используются сдвоенные треугольники, тем 
оно выше. Соответственно на игры их не использующие эта опция не окажет 
никакого влияния. Включать можно безбоязненно, так как шанс артефактов очень 
мал.
"Perspective-corrected" — отрисовка треугольников с учётом глубины и 
перспективных преобразований. При условии идеальной реализации даёт наилучшее 
качество картинки. На данный момент избавится от графических артефактов не 
удаётся.

«Improved coordinate accuracy»
Метод уменьшения эффекта "дрожания" вершин за счёт использования более точных 
координат вершин полигонов из GTE. Возможны графические артефакты в виде дыр 
между полигонами.

ЗАКЛАДКА «MISC»

Горячие клавиши:

«Configuration dialog»
Вызов диалога конфигурации плагина.
(По умолчанию: 'Ctrl+Alt+G'.)

«Show status»
Включение/выключение отображения статуса плагина.
(По умолчанию: 'Insert'.)

«Show info»
Включение/выключение отображения информации получаемой от эмулятора и плагинов.

«FPS limitation»
Переключение между режимами ограничения fps.
(По умолчанию: 'Delete'.)

«Fast forward»
Временное (на время нажатия) отключение ограничения fps.
(По умолчанию: 'End'.)

«Toggle fullscreen»
Переключение между полноэкранным и оконным режимами.
(По умолчанию: 'Alt+Enter'.)

«Show/hide cursor»
Скрытие/отображение курсора.
(По умолчанию: 'Ctrl+H'.)

«Change texture filtering mode»
Изменение метода фильтрации текстур.

«Change hi-res textures mode»
Изменение алгоритма повышения разрешения текстур.

«Toggle screen bilinear filtering»
Включение/выключение полноэкранной билинейной фильтрации.

«Decrease/increase internal resolution x/y»
Изменение внутреннего разрешения.
Не реализовано.

«Change renderer color mode»
Изменение битности рендерера.
Не реализовано.

«Change dithering method»
Изменение метода дизеринга.

«Change visible area mode»
Переключение между режимами отображения.
("Perfect", "Standard", "Custom".)

«Toggle shader state»
Включение/выключение шейдера.

«Reload shader»
Перезагрузка шейдера, для наглядности при редактировании файла шейдера "на 
лету".

«Decrease/increase shader level»
Ослабление/усиление эффекта шейдера.

«Decrease/increase brightness»
Уменьшение/увеличение яркости.

«Decrease/increase gamma»
Уменьшение/увеличение гаммы.

«Decrease/increase contrast»
Уменьшение/увеличение контраста.

«Rotate screen»
Поворот экрана.

«Move screen left/right/up/down»
Перемещение картинки.
(По умолчанию: 'Alt+D/A/S/W'.)

«Decrease/increase zoom»
Уменьшение/увеличение размера картинки.
(По умолчанию: 'Alt+Q/E'.)

«Flip the screen horizontally/verically»
Отражение картинки по горизонтали и вертикали.

«Decrease/increase overscan»
FIXME

«Reset screen settings»
Сброк настроек экрана на начальные.

«Change polygon renderer mode»
Изменение метода отрисовки полигонов.

«Toggle improved coordinate accuracy»
Включение/выключение режима повышенной точности координат.

«Toggle texture replacement collect mode»
Включение/выкючение коллекционирования текстур.

«Toggle texture replacement replace mode»
Включение/выключение подмены текстур.

«Change rendering mode»
Изменить режим отрисовки.
"Standard" — стандартно.
"Wired" — каркасный режим. Вместо закрашенных полигонов и спрайтов 
отрисовываются лишь их "рёбра". Режим нужен больше для отладки, но может 
пригодится и пользователю, например для определения положения вражины за 
стенкой. :D
"Non-textured" — без текстурирования.
"Non-textured+Wired" — без текстурирования плюс каркасный режим.
"Standard+Wired" — стандартно плюс каркасный режим.

«Toggle show frame drawing process»
Включение/выключение отображения процесса отрисовки кадра.

«Screenshot»
Установить кнопку для создания скриншота. Скриншоты сохраняются в каталоге 
«./captured/screenshots».
(По умолчанию: 'F8'.)

«Video recording start/stop»
Установить кнопку старта/остановки записи видео. Видео сохраняется в каталоге 
«./captured/videos».
(По умолчанию: 'Alt+F8'.)

Other:

«Show status»
Включить отображение статуса плагина при старте.

«Show info»
Включить отображение информации получаемой от эмулятора и плагинов при старте.

«Screen rumble»
Включить визуальное отображение эффекта dualshock.

«Hide cursor»
Скрыть курсор при старте.

«Disable screensaver and DPMS (Energy Star)»
Выключить скринсейвер и методы энергосбережения, подобные переходу в спящий 
режим, выключение монитора и т.п.

«Enable logging»
Включить запись отладочной информации в файл (logs/gpuBladeSoft.log).

«Save dialog parameters»
Сохранять размер и положения диалога при выходе. (Если выключено, диалог будет 
отображён в центре экрана с размером по умолчанию.)

«Save the settings on exit»
Сохранять изменения параметров при выходе, такие как яркость, ориентация 
дисплея, размер/координаты окна, отображение информации и т.п.

****************************************************

4) Советы

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

Читать, читать и ещё раз читать про те параметры которые хотите изменить, если 
лень читать, то опять же лучше ничего не трогать.

При использовании внутреннего ограничителя fps эмулятора ePSXe, ограничение fps 
в gpu плагине следует отключать.

Неплохое влияние на стабильность fps оказывает повышение приоритета процесса.

Некоторого прироста производительности можно достичь выбрать 16-битный режим в 
системных настройках экрана, обычно это где-то плюс 10-20%.

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

Если тормозит - купи нормальный компьютер, нету денег на компьютер - купи 
PlayStation(tm) и не заморачивайся. :P

****************************************************

5) Известные проблемы

В редких случаях квад рендерер может вызывать артефакты картинки, например при 
отрисовке ландшафта в игре Hogs of War, исправить это нельзя.

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

Gpu плагин нуждается в более тесном сотрудничестве с ядром эмулятора, текущего 
интерфейса для полноценной эмуляции не хватает.

****************************************************

6) Лицензия

This program is freeware and cannot be sold. Also this program cannot be 
distributed without written permission. This program cannot be used for any 
commercial purposes. You may not reverse engineer, decompile, or disassemble 
the enclosed software. Authors are not responsible for any damages that this 
program may cause, and are also not responsible for anything this plugin will 
be used for.

****************************************************

7) Контакты

http://forum.emu-russia.net
irc://irc.newnet.net:6667/emu-russia
mailto:edgbla@yandex.ru

****************************************************
