Автор Тема: FCEUX c Dendy-режимом  (Прочитано 30810 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #120 : 14 Май 2021, 21:39:30 »
Sharpnull, evgs, все понял, спасибо.

"Fire Hawk" адаптировал под MMC3

он говорил, что думает и миг адаптировать

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #121 : 19 Май 2021, 15:16:09 »
GUI FCEUX'a понемногу переписывают на мультиплатформенную QT, и скоро обещают релиз 2.4.0
Цель - сделать единую оболочку, чтобы не писать под каждую систему свой собственный интерфейс.
Если есть желание, можно протестировать как под виндой, так и под линуксами, делая акцент на отлов багов GUI:

багтрекер:
https://github.com/TASVideos/fceux/issues/332

бинарники последних автосборок:
Win64 Qt/SDL
Ubuntu
OSX

Проект находится в стадии активной разработки, большая часть функционала уже готова, но некоторые вещи пока отсутствуют.
Стандартная win32-версия также пока жива и будет поддерживаться.
« Последнее редактирование: 19 Май 2021, 15:27:52 от evgs »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5097
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #122 : 19 Май 2021, 16:45:38 »
Если есть желание, можно протестировать как под виндой
Под виндой как была проблема с открытием ромов с путём из иероглифов, так и сейчас в Qt версии проблема с путями:
Скорее всего исправят когда-нибудь и так. Сейчас не хватает Drag'n'Drop. Стандартная тема страшная как Win98, но в опциях можно выбрать стиль и окно выбора файла на нативный. Из-за расширения области Breakpoints у Status Flags стало много, если их переместить и расположить компактно, то у окна Breakpoints будет больше места по высоте.

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #123 : 20 Май 2021, 08:50:37 »
GUI FCEUX'a понемногу переписывают на мультиплатформенную QT, и скоро обещают релиз 2.4.0
Цель - сделать единую оболочку, чтобы не писать под каждую систему свой собственный интерфейс.
Если есть желание, можно протестировать как под виндой, так и под линуксами, делая акцент на отлов багов GUI:

багтрекер:
https://github.com/TASVideos/fceux/issues/332

бинарники последних автосборок:
Win64 Qt/SDL
Ubuntu
OSX

Проект находится в стадии активной разработки, большая часть функционала уже готова, но некоторые вещи пока отсутствуют.
Стандартная win32-версия также пока жива и будет поддерживаться.

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

evgs, если не трудно попроси на гите, что бы добавили возможность растягивать это окно:

237207-0

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #124 : 20 Май 2021, 10:29:39 »
Попросил.
В QT-версии, кстати, это окно растягиваемое.

Оффлайн Psycho-A

  • Пользователь
  • Сообщений: 384
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #125 : 22 Май 2021, 00:20:28 »
все...трындец всеуху... обернут в упаковку для домохозяек, наберет в весе, а функционал останется тем же. очень жаль((
Тоже не поддерживаю. Как будто интерфейс в эмуле так часто редактируется; тем более, что он уже написан. Лучше бы рендер нормальный завезли под винду, хотя бы Direct3D 9 или OpenGL.

Цитата
evgs, если не трудно попроси на гите, что бы добавили возможность растягивать это окно:
А если пойти дальше, то хорошо бы добавить поддержку и отображение папок из архивов. Если в архиве есть папки типа Hacks, Versions, то выводить иерархично, а не все ромы в одной каше.

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #126 : 22 Май 2021, 13:08:33 »
Лучше бы рендер нормальный завезли под винду, хотя бы Direct3D 9 или OpenGL.

Что касается старой win32, то там следующий  косяк.
По-хорошему, ускорение/интерполяция должны включаться при выборе
config -> video -> directdraw: "hardware acceleration"Но в современных Nvidia и Amd дровах поддержка ddraw лишь частичная, и сглаживание нифига не работет.
Только на интеловских встройках пока всё нормально. По-хорошему, надо бы win32-билд на D3D9 увести, но никто не хочет.

А вот полноценный OpenGL доступен в QT-версии на всех системах.

Оффлайн Skay

  • Пользователь
  • Сообщений: 4120
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #127 : 23 Май 2021, 07:32:09 »
Как будто интерфейс в эмуле так часто редактируется; тем более, что он уже написан.
А что в словое "мультиплатформенный" не понятно? каждый раз править интерфейс под все платформы - это бред. Онозначно перетаскивание интерфейса это только плюс.
Под виндой как была проблема с открытием ромов с путём из иероглифов, так и сейчас в Qt версии проблема с путями
Ну а с чего бы ей пропасть. если занимаются именно новым интерфейсом %) я данную проблему что то у них в issue даже не вижу, так что с чего бы ей быть исправленой?

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #128 : 04 Июнь 2021, 13:07:31 »
Пока всё весьма жестоко по багам гуя.
Очень много было серьезных багов, связанных с выводом/масштабированием графики.

Так что все, кому интересно, ищите тоже.
Желательно писать прямо в эту ветку о QT-билде:
https://github.com/TASVideos/fceux/issues/332#issuecomment-843888724

Проверяем логику работы GUI, всех чекбоксов и прочего.
Debug-инструменты не тестировал, в этой теме плаваю.

бинарники последних автосборок:
Win64 Qt/SDL
Ubuntu
OSX
« Последнее редактирование: 04 Июнь 2021, 13:19:09 от evgs »

Оффлайн Psycho-A

  • Пользователь
  • Сообщений: 384
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #129 : 04 Июнь 2021, 13:54:08 »
Win64 Qt/SDL
Оно ещё и только под 64 бита? Да уж, обалденная "мультиплатформенность"...

Оффлайн Skay

  • Пользователь
  • Сообщений: 4120
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #130 : 04 Июнь 2021, 19:02:12 »
Psycho-A, а заем тебе х32?) скорее всего никому ненадо было вот и не собирают. Ну и выше рассказано про косяк с х32 на венде.
« Последнее редактирование: 04 Июнь 2021, 19:08:42 от Skay »

Оффлайн feos

  • Пользователь
  • Сообщений: 786
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #131 : 05 Июнь 2021, 13:23:14 »
Оно ещё и только под 64 бита? Да уж, обалденная "мультиплатформенность"...
https://ci.appveyor.com/project/zeromus/fceux/builds/39474235/job/tuitsg95m1gsl5es/artifacts

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #132 : 05 Июнь 2021, 14:12:04 »
feos, наверно он имел введу на qt

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #133 : 06 Июнь 2021, 16:41:33 »
PAL-фильтр доступен снова, можно пользоваться.
Но имейте в виду, что ему необходим включенный hardware acceleration (linear filter) в настройках фсеуха.

Win32-билд осуществляет интерполяцию через устаревший DirectDraw, вместо современного Direct3D.
Переписывать это дело никто не будет.
Современные Nvidia (и AMD?) драйвера, начиная с Win7, кастрировали поддержку DirectDraw.
Хрен знает почему, ибо на интеловских встройках (даже свежих) интерполяция работает.
Если hardware acceleration (linear filter) не работает на вашем железе, используйте OpenGL/SDL QT билд.

PAL-фильтр более не будет дорабатываться феосом. Пусть остается в том виде, в котором есть. Иначе совсем пропадет и навсегда останется выключенным.
Он вполне симпатично имитирует некоторые артефакты PAL-декодера, но не умеет генерировать аутентичную PAL NES/Dendy палитру.
Для этих целей рекомендуется использовать внешние *.pal-файлы.

-----

Я более чем уверен, что Невидия меня нафиг пошлёт, однако написал им в тему 13-летней давности:
https://www.nvidia.com/en-us/geforce/forums/discover/33537/pixalisation-with-directdraw-blt-under-vista-pixel-replication-instead-interpolation/

Хотя чем больше народу попросят, тем (теоретически) выше шансы на фикс.
Последний раз у меня была GF FX5200 на WinXP, и там всё работало.
Потом 10 лет на интелах сидел - тоже все прекрасно, и по сей день. Не только на Win7, но и на десятке.
« Последнее редактирование: 06 Июнь 2021, 17:37:58 от evgs »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #134 : 06 Июнь 2021, 17:41:44 »
Современные Nvidia (и AMD?) драйвера, начиная с Win7, кастрировали поддержку DirectDraw.Хрен знает, почему
потому что
Цитата
DirectDraw has been deprecated since version 7
https://en.wikipedia.org/wiki/DirectDraw
этот API является устаревшим и рудиментарным уже более двух десятков лет

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #135 : 06 Июнь 2021, 17:46:13 »
Я знаю, что этот API давно устарел и был заменен на D3D. В посте об этом сказано.
Но зачем было выпиливать, коль никому не мешало.
На интеловских современных встройках до сих пор всё работает, в т.ч. на новых виндах

Оффлайн Psycho-A

  • Пользователь
  • Сообщений: 384
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #136 : 06 Июнь 2021, 20:39:59 »
Psycho-A, а заем тебе х32?)
Наверное, потому что эмулятор технически не имеет ограничений по запуску на 32 битах, и искусственные ограничения - это не очень хороший тон.
Косяк тот относится не к Qt-версии, а к легаси. Как раз на Qt его нет, поэтому 32-битные билды очень даже нужны.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #137 : 06 Июнь 2021, 21:51:06 »
Но зачем было выпиливать, коль никому не мешало.
в смысле выпиливать ? его нужно делать, для каждого поколения чипов, а помимо этого еще тестировать при любых изменениях.
если что-то где-то работает это не происходит само-собой, а результат того что люди это сделали и непрерывно занимаются поддержкой.

Psycho-A, может быть немало причин. к примеру новые версии С++ компиляторов вообще могут не иметь версии для x86, а какие-либо из используемых библиотек или фреймворков (возможно Qt) могут использовать новые фишки языка С, которые старые компиляторы не умеют.

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #138 : 08 Июнь 2021, 01:24:15 »
Существует DirectDraw->D3D враппер под названием DDrawCompat:

https://github.com/narzoul/DDrawCompat/issues/104

Автор грит, что теоретически эта проблема решается через костыль:

Hooking the user-mode display driver's Blt routine would also be an option, though I'm not aware of any wrapper doing that (besides DDrawCompat).
If you want to experiment with the driver hook approach, you could try to set data.Flags.Linear = 1; at the start of this function: https://github.com/narzoul/DDrawCompat/blob/v0.3.1/DDrawCompat/D3dDdi/Resource.cpp#L190

И это сработало, что лишний раз доказывает - проблема на стороне невидии, см. скриншоты.

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

...This option is not exposed through the DirectDraw API (both flags will always be set to 0), so it's up to the driver to choose whatever it wants.
I'm surprised that any modern driver would default to point filtering instead of linear, but I haven't used NVIDIA drivers in a long time...

То есть, по сути, проблема решается одним флагом со стороны драйвера.
Разработчики невидии зачем-то решили, что лучше использовать point вместо linear.
Враппер перехватывает и подменяет этот флаг, и все работает.

Хорошо бы кто-нибудь проверил, как на соврменных AMD дела обстоят.
У меня нету ни одной AMD-машины к сожалению, ни дома, ни на работе.
« Последнее редактирование: 08 Июнь 2021, 11:14:01 от evgs »

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #139 : 08 Июнь 2021, 08:30:06 »
Хорошо бы кто-нибудь проверил, как на соврменных AMD дела обстоят.

rx480, что надо делать?

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #140 : 08 Июнь 2021, 09:03:44 »
Берем эмуляторы на базе DirectDraw, навскидку FCEUltra/FCEUX, NNNesterJ 0.23, VirtuaNES 0.97 и делаем настройки как на скринах из этого поста.
Можно еще megasis 0.06a, Jnes начиная с v0.6 и заканчивая v1.1.1 (не новее)
Если будет мыльцо, как на скриншоте intel.png - значит интерполяция работает,
Если абсолютный шарп, как на скриншоте nvidia.png - значит нифига.
« Последнее редактирование: 09 Июнь 2021, 09:45:02 от evgs »

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #141 : 08 Июнь 2021, 18:37:15 »
237686-0

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #142 : 08 Июнь 2021, 18:41:53 »
Ну в общем - не работает.
А теперь попробуй костыль положить в папку к эмуляторам.
Что-то изменится?
Это временный билд, пока нормально работает только на win10, на 7 дико тормозит.

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #143 : 08 Июнь 2021, 18:46:13 »
только в NNNesterJ поменялась картинка, и в папке появился лог: DDrawCompat-nnnesterJ.log

237689-0

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #144 : 08 Июнь 2021, 18:53:13 »
Хм, у меня сработало для FCEUX, VirtuaNES, NNNesterJ и megasis. Я на 1050Ti.
Ладно, странная это история.

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #145 : 08 Июнь 2021, 18:55:11 »
я же взял 64битный всеух))
тоже работает, вот:

237693-0

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #146 : 08 Июнь 2021, 18:59:38 »
Ну здорово.
Разраб черным по белому мне сказал что DirectDraw не выбирает как блиттить, пойнтом или линеаром, это выбирает драйвер.
И невидия/амд начиная с какого-то момента, выбрали поинт вместо линеар. Это реально решается одним долбаным флагом.

Костыль перехватывает и подменяет этот флаг - в итоге всё мылится, как и было по задумке. Мдэ.
По идее проблема решается небольшой правкой кода в дровах.
Но ни Nvidia, ни AMD не будeт заморачиваться этой ерундой для устаревшего API.

Более того: во времена Win9x-XP все драйвера выбирали linear-флаг (мыло) для блиттера DirectDraw.
а начиная с Win7 невидия и амд выбирают point-флаг (шарп). Интел же работает по прежнему и по сей день.
Это явно зачем-то было сделано. Не похоже на совпадение.
« Последнее редактирование: 08 Июнь 2021, 19:19:18 от evgs »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5097
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #147 : 08 Июнь 2021, 19:27:37 »
evgs, для квадратных пикселей FCEUX тоже должен мыло добавлять? Я использую квадратные пиксели, без фильтров, поэтому для меня это не проблема.
У меня на Radeon тоже без мыла, но одна опция - "Морфологическое сглаживание" - работает и выдаёт странное сглаживание (видимо для 3D), которое чуть лучше при использовании Special Filter: Prescale4x.
237697-0 237699-1
Помню, что раньше от разработчиков требовали убрать сглаживание для старых игр, потому что картинка убогая становится и приходится использовать врапперы, а здесь наоборот, требуют добавить :)

Оффлайн evgs

  • Пользователь
  • Сообщений: 1042
  • Пол: Мужской
    • Просмотр профиля
FCEUX c Dendy-режимом
« Ответ #148 : 08 Июнь 2021, 19:37:03 »
Цитата
для квадратных пикселей FCEUX тоже должен мыло добавлять?
угу
Цитата
Помню, что раньше от разработчиков требовали убрать сглаживание для старых игр, потому что картинка убогая становится и приходится использовать врапперы, а здесь наоборот, требуют добавить
А наверное в этом ответ и кроется. Невидию и АМД просили, так как большая часть народа на них и сидит.
А интеловские затычки геймерам нафиг не сдались, вот они и работают по изначальной схеме.

Проблема в самом DirectDraw, который не умел рулить этими флагами, и управление ими отдано на откуп дровам.
Драйвер при блиттинге может либо всегда мылить, либо всегда шарпить - в нём строго прописано что-то одно.
А каждому приложению не угодишь.

Из всех еле ныне живых эмуляторов на DirectDraw'е остался лишь FCEUX. Но никто не будет переписывать win32-билд под D3D.
Я просил на гитхабе, чтобы к win32-билду прикрутили программный глобальный linear-фильтр, умеющий смешиваться с другими фильтрами.
Но у разработчиков другие приоритеты. Их линуксоид щас пилит QT-версию, использующую OpenGL.
А основные разрабы win32-билда уже забили на проект, переключившить на более свежий и перспективный BizHawk.

Вот как-то так. Значит всем любителям древностей придется костылями пользоваться.
« Последнее редактирование: 09 Июнь 2021, 10:28:34 от evgs »

Оффлайн ElectrixX

  • Пользователь
  • Сообщений: 799
  • Єдиний на світі є такий КітПес)
    • Просмотр профиля
Re: FCEUX c Dendy-режимом
« Ответ #149 : 15 Июнь 2021, 20:08:07 »
Кластер красавчик, и изменяемое окно открытия архива сделал и иконку поменял.
« Последнее редактирование: 16 Июнь 2021, 14:46:20 от ElectrixX »