Автор Тема: Эмулятор Dendy - Nestopia  (Прочитано 176167 раз)

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

Оффлайн samum

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #360 : 17 Октябрь 2016, 18:02:13 »
Спасибо за подсказку! Я поначалу так и пробовал, но он у меня упорно видел один. Перезагрузил программу - появилось оба.

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #361 : 21 Январь 2017, 11:17:41 »
Я оставлю это здесь для истории.
Ни один из разработчиков современных эмуляторов NES даже близко не подошел к подобным результатам.
Смотрите сами:
Цитата: Eugene.S
Hi, Marty.

Just want to tell thank you again
for great nestopia emulation core.

I did the test compare performance of modern cycle-accurate
emulators (written on C and C++) vs nestopia
on old intel-atom D525 1.50 GHz machine.

Results is amazing.

- puNES 0.100
- nintendulator 0.975b
- mesen 0.7.0
- bizHawk 1.11.9
- rockNES 5.41

All of them eats 100% of CPU core and cannot
run fullspeed on the old low-powered netbook CPU. It gives only 30-40 FPS without frameskipping.
(real performance of Atom D525 is about good Pentuim 3~1000MHz)

Nestopia result is only 40-45% CPU load, and it run at 60FPS fullspeed!
FCEUX with old inaccurate scanline-based PPU render + low sound quality have the same performance.

For now, nestopia-libretro core (in fact it's your core with minimal modifications by Rdanbrook)
work perfect on the Raspberry Pi 3.

I wonder how you did so _heavy_ optimization of your cycle accurate emulator!

Цитата: MartinFreij
Thanks Eugene. Nice to hear from you again, hope you are well.
Doing code optimizations without sacrifizing accuracy can be
real fun and I'm happy to see it payed off.

As for the various optimizations I did to Nestopia at the time,
I heavily used Intel Vtune and AMD CodeAnalyst profiler to
find hotspots in the code and also let the compiled IA-32 assembly
code guide me through it.

I also made heavy use of (or abused if you will) C++ template style
programming, or concept-oriented programming as I'd like to call it,
to let the compiler do as much work for me as possible and allowing
me to not needing to repeat myself in code.

Using the Intel C++ Compiler and Microsoft Visual Studio at the time, I
also fine-tuned many parts of the code through compiler directives to give
hints to the compiler on what to optimize for speed and what to optimize for
size.

As a programmer, having a knowledge of low level stuff such as branch-prediction, cache-lines
and other things helped a lot during development. Even if you're developing  something in a high-level
language such as Java, C#, Python, I believe you can still influence performance a great deal in the way
you structure and arrange your code.

For reference and maybe not surprisingly, the most critical method for performance in the whole Nestopia code
base I remember was Ppu::renderPixel(). That one I remember optimizing to be ~20FPS faster just by re-arranging
some statements. That was surely a branch-condition killer, but by allowing the CPU to not stall and do other work in parallell made it almost free.

Оффлайн s1nka

  • Пользователь
  • Сообщений: 1570
  • Пол: Мужской
    • Steam
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #362 : 21 Январь 2017, 12:40:17 »
evg.s, Сейчас Cah4e3 прочитает и пойдет назло всем оптимизировать fceux.
Автор молодец. Помню как-то на стареньком android PC поставил линуксы и собрал там fceux. В итоге на том железе почти нормально работал в маленьком окошке, без фильтров и звуке и то переодически лагал.

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #363 : 27 Апрель 2017, 12:14:18 »
Возможно, уже спрашивали, но всё же... Касательно директорий, в которых Nestopia ищет файлы.
Есть ли хоть какая-то возможность считывать путь к папке в которой находится EXE-шник?
Прочитал где-то на этом форуме (если инфа ещё в силе), что надо поставить ".\" без кавычек перед необходим названием папки (1-ый скрин).
Но после перезагрузки всё равно пути приходится переназначать (2-ой скрин).

Оффлайн black jaguar

  • Пользователь
  • Сообщений: 1865
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #364 : 27 Апрель 2017, 12:22:25 »
nestopia.xml
        <images>
            <directory>.\</directory>

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #365 : 27 Апрель 2017, 12:35:30 »
nestopia.xml
        <images>
            <directory>.\</directory>

Вроде как заработало, благодарыч!  :D

Оффлайн MayBe

  • Пользователь
  • Сообщений: 7
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #366 : 02 Май 2017, 10:14:07 »
Ребят подскажите как бороться с лагами (проседание фпс) когда много движущихся объектов на экране.
Даже первый мегамен или первые черепахи лагают при 4 и более юнитах на экране, не говоря о том,когда начинаешь стрелять (мегамен)
Win7
« Последнее редактирование: 02 Май 2017, 10:24:53 от MayBe »

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #367 : 02 Май 2017, 11:39:23 »
Это нормальное поведение железа NES.
Для борьбы с лагами необходимо использовать эмуляторы с поддержкой оверклока (FCEUX, puNES, Mesen)

Оффлайн MayBe

  • Пользователь
  • Сообщений: 7
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #368 : 02 Май 2017, 13:52:53 »
Это нормальное поведение железа NES.
Для борьбы с лагами необходимо использовать эмуляторы с поддержкой оверклока (FCEUX, puNES, Mesen)
Благодарю, а оверлок по дефолту включен или надо его руками подключать? На FCEUX

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #369 : 02 Май 2017, 14:23:18 »
Или в "Vblank" или в "Postrender" (в зависимости от игры, бывает глючит) нужно добавить примерно 300 линий.
FCEUX не ниже 2.2.3
http://www.emu-land.net/forum/index.php/topic,9494.msg1232795.html#msg1232795

« Последнее редактирование: 02 Май 2017, 14:41:55 от evg.s »

Оффлайн Zenkai

  • Пользователь
  • Сообщений: 620
  • Пол: Мужской
  • TurboGrafx and FM Towns Fan
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #370 : 04 Май 2017, 11:44:40 »
Nestopia эмулирует световой пистик? Что-то в Duck Hunt не могу включить.

Оффлайн Ryukenden

  • Пользователь
  • Сообщений: 1016
  • Пол: Мужской
  • Хрю-хрю
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #371 : 04 Май 2017, 16:51:03 »
Там компьютерная мышка в роли пистика.

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #372 : 04 Май 2017, 18:17:25 »
Nestopia эмулирует световой пистик? Что-то в Duck Hunt не могу включить.
Там компьютерная мышка в роли пистика.

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


Оффлайн Zenkai

  • Пользователь
  • Сообщений: 620
  • Пол: Мужской
  • TurboGrafx and FM Towns Fan
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #373 : 04 Май 2017, 20:06:17 »
Ryukenden,
Я как бы в курсе. Например в Mechanized Attack это работает,а в Duck Hunt нет.



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

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #374 : 21 Июнь 2017, 13:53:07 »
FDS и NSF теперь поддерживают денди-режим:
https://forums.nesdev.com/viewtopic.php?f=3&t=15352

« Последнее редактирование: 31 Июль 2017, 10:56:12 от evg.s »

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #375 : 08 Сентябрь 2017, 23:19:17 »
На прошлой неделе вышла NestopiaUE 1.48:
http://0ldsk00l.ca/nestopia/
Правда код там от мая 2017, поэтому FDS/NSF фикс на денди будет только в следующем релизе.

----------------------------------------------------------------
1.48
----------------------------------------------------------------
Shell:

 Additions:
  - Remember previous ROM directory (fabiengb)
  - Added an option to disable the cursor
  - Added ability to load custom palettes
  - Added many palettes to extras (FirebrandX, BMF, others)
  - Added monochrome blargg NTSC filter
  - Added new build systems: CMake and Autotools (David Seifert)

 Changes:
  - TV Aspect Ratio changes depending on region

 Fixes:
  - Made the region selector more coherent
  - Fixed a bug that switches video modes rapidly
  - Revamped region selector code
  - Fixed fullscreen switching too fast
  - Fixed region selector when the XML database is not present

libretro:

 Additions:
  - Added ability to load custom palettes
  - Added turbo buttons
  - Added many palettes (Monroe88)
  - Added monochrome blargg NTSC filter (dalter)
  - Added Turbo A/B buttons

Core:

 Additions:
  - RAM Power-on State setting
  - Support for mapper 23.10

 Fixes:
  - VRC2 Mirroring bug (koitsu, lidnariq)
  - Dendy timing and audio fixes (FHorse, Eugene.S)
  - Removed unused code in APU
  - Properly initialize RAM - fixes F-1 Race (koitsu)
  - Silenced many build warnings (orbea)
Origins

Много улучшений для linux и libretro-порта.
Linux-версия (к сожалению) теперь требует OpenGL не ниже 3.2
Windows версия осталась без изменений с прошлого релиза, за исключением фиксов ядра
« Последнее редактирование: 08 Сентябрь 2017, 23:29:28 от evg.s »

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #376 : 20 Сентябрь 2017, 22:41:53 »
На прошлой неделе вышла Nestopia UE 1.48: http://0ldsk00l.ca/nestopia/
Правда код там от мая 2017, поэтому FDS / NSF фикс на денди будет только в следующем релизе.

Evg.s, есть ли различия касательно работы Dendy-режима, или вообще хоть какие-то различия между 1.40 (fixed 2017) и 1.48 UE?

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #377 : 21 Сентябрь 2017, 11:15:42 »
Касаемо денди режима, который работает для *.NES-ромов, различий нет.
Но в 1.40 (fixed 2017) денди-режим также работает на *.FDS-ромах и *.NSF-файлах,
а в 1.48 этого пока нет (если выставим денди, то для FDS и NSF она будет определяться как PAL NES)

Касаемо различий между оригинальной нестопией 1.40 и 1.48 UE - они минимальны.
Из серьёзного - исправлен глюк в Indiana Jones Chronicles (чтение $2007 во время рендера).
Эту особенность PPU нашли только в 2010, уже после ухода Мартина
Также по-мелочи добавлены новые мапперы и сабмапперы, фиксы VRC2, фиксы инициализации RAM и т.д.

Основное отличие 1.48UE от 1.40 - наличие полноценного линукс-порта с удобным GUI, и наличие ядра nestopia-libretro.
Большую часть своего времени разработчик тратит именно на линукс-порт.

А в ядре эмулятора ковыряться довольно непросто.
Sour, FHorse и feos в один голос сказали, что ядро нестопии это "та ещё" штучка в плане перегруженного C++ кода.
Поэтому и rdanbrook особо не лезет туда, где сам чёрт ногу сломит.

Вот репа с 1.40 (fixed 2017):
https://github.com/eugene-s-nesdev/Nestopia140/commits/master
там по-минимуму изменений. Это чистая 1.40 с фиксами денди. И вылечен баг, из-за которого звук щёлкал.
« Последнее редактирование: 21 Сентябрь 2017, 11:33:25 от evg.s »

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #378 : 21 Сентябрь 2017, 21:59:53 »
Большую часть своего времени разработчик тратит именно на линукс-порт.
А в ядре эмулятора ковыряться довольно непросто.
Sour, FHorse и feos в один голос сказали, что ядро нестопии это "та ещё" штучка в плане перегруженного C++ кода.
Поэтому и rdanbrook особо не лезет туда, где сам чёрт ногу сломит.

М-да... значит Винда немного "отошла" на второй план? Что ж, что есть, то есть...

Вот репа с 1.40 (fixed 2017):
https://github.com/eugene-s-nesdev/Nestopia140/commits/master
там по-минимуму изменений. Это чистая 1.40 с фиксами денди. И вылечен баг, из-за которого звук щёлкал.

А, вообще-то, в любом случае спасибо. Буду сидеть пока что на обеих дистрибутивах (а что делать?), гляди, что-то и прояснится попозже. Ждём-с апдейтов. :drinks:

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #379 : 22 Сентябрь 2017, 13:05:49 »
Не то, чтобы винда отошла на второй план, проблема скорее вот в чем:
Оригинальная нестопия была только под винду, а линукс-порт от баннистера находился в зачаточном состоянии.

Новый автор решил полностью переписать GUI, сделав его изначально мультиплатформенным.
Пока только под линукс, но в будущем и под винду тоже.

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #380 : 08 Октябрь 2017, 12:44:24 »
Буквально сегодня только заметил в Nestopia 1.48.
При запуске Duck Hunt / Hogan's Alley / Wild Gunman курсор мыши не меняется на прицел пистолета. При переключении на пункт Zapper вообще не работает.
Как это понимать?
« Последнее редактирование: 12 Октябрь 2017, 12:56:44 от Midnight Kid »

Оффлайн Black Tulip

  • Пользователь
  • Сообщений: 37
  • Пол: Женский
  • Безумие, отвага и немного цыганских фокусов.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #381 : 25 Октябрь 2017, 19:39:15 »
При переключении на пункт Zapper вообще не работает.
Попробуй в слот расширения включить не заппер, а гипер-шот (в настройках их два - Бандай и Конами).
« Последнее редактирование: 25 Октябрь 2017, 23:40:48 от Black Tulip »

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #382 : 30 Октябрь 2017, 18:30:17 »
Попробуй в слот расширения включить не заппер, а гипер-шот (в настройках их два - Бандай и Конами).
Премного благодарен, кстати нашел причину, слетела внешняя база NSTDatabase (почему-то), а я использовал именно ее. Перекачал, теперь все OK.  :D

Оффлайн Astronavigator

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #383 : 10 Ноябрь 2017, 01:03:38 »
Блин, ну парни, программисты, знающие люди, помогите разобраться с дурацкой проблемой!
У меня ноутбук, на котором частота обновления экрана, в настройках пользовательского разрешения, от Nvidia, выбрана = 50 герц. Я смотрю фильмы 25 кадровые, как по телеку - так же плавно, без подергивания и рывков. А в Nestopiи у меня не получается это сделать именно в полноэкранном режиме. В оконном режиме все отлично, игры идут как будто бы я играю в Dendy на ЭЛТ телеке - все плавно, синхронно... Как только  нажимаю alt+enter, Nestopia переключается в 1366х768, но уже с 60 герцами. Вот лог:


Подскажите как сделать так, чтоб Direct3D: entering 1366x768x32 60hz full-screen mode было вот таким Direct3D: entering 1366x768x32 50hz full-screen mode, да что бы при этом Direct3D: enabling VSYNC ?

Скриншоты настроек эмуля и видеокарты:

К слову, на стационарном компе, в Windows 8.1 все работает отлично. Там на Nvidia так же стоит 50 герц частота, но Nestopia нормально переключает в full screen. Вот лог:

Оффлайн Psycho-A

  • Пользователь
  • Сообщений: 384
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #384 : 11 Ноябрь 2017, 18:24:01 »
Astronavigator, попробуйте пользовательское разрешение, например, 1152x768 или 960x768 - т.е. то, которого нет в списке режимов по умолчанию. Будут срабатывать ваши настройки. Да и для NES картинка в 4:3 предпочтительнее, так что можно будет растянуть всю картинку на это разрешение, и по бокам останутся чёрные полосы. Я себе для эмуляторов делаю 1440x1080.

Оффлайн Astronavigator

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #385 : 13 Ноябрь 2017, 14:36:39 »
Psycho-A, спасибо за ответ. Создал разрешение 1152х768 50 гц. Nestopia его не видела. Прописал в реестре Windows, перезагрузил ноутбук, разрешение в списке режимов Nestopia появилось. Но при переходе в full screen та же проблема.
Пробовал в панели управления Nvidia включать сразу это разрешение, но все равно та же проблема:

Direct3D: disabling VSYNC
Direct3D: entering 1152x768x32 60hz full-screen mode
Direct3D: entering 1152x768x32 50hz window mode
Direct3D: enabling VSYNC

Я предполагаю, что проблема заключается в считывании данных из DDC(Display Data Channel) экрана. Если на стационарном компе, который с Windows 8.1, все нормально, так как в логе эмулятора видно, что:

Direct3D: found 19 display modes
Direct3D: supported monitor frequencies: 25hz, 29hz, 30hz, 50hz, 59hz, 60hz, 75hz,
 которые поддерживает мой монитор Dell S2440L, то в логе Nestopiи на ноутбуке видно:

Direct3D: found 20 display modes
Direct3D: supported monitor frequencies: 60hz
То есть, только 60 герц, в EDID матрицы ноутбука больше никаких частот нет.
Как то не очень хотелось бы редактировать EDID.
Может есть какой то другой способ заставить Nestopia Direct3D думать, что, все таки, матрица может работать и на 50 герцах?
Ведь Kega Fusion отлично работает на этом ноутбуке...

Оффлайн Asha

  • Пользователь
  • Сообщений: 2536
  • Кейн жив...
    • ВКонтакте
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #386 : 02 Декабрь 2017, 21:02:25 »
Нет звука, все пробовал крутил в настройках - ничего не помогает
Версия 1.46.2 Linux

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #387 : 04 Декабрь 2017, 10:14:00 »
Народ, хотел посоветоваться вот по какому вопросу.
Не секрет, что в нестопии неудобный селектор регионов, однако он не лишен логики.
На выбор (Machine -> Region) доступны Auto, NTSC и PAL.
Каждому региону можно задать предпочитаемые тайминги оборудования в доп.настройках.

Немного переделанная менюшка будет понятнее?

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #388 : 04 Декабрь 2017, 11:42:04 »
Народ, хотел посоветоваться вот по какому вопросу.
Не секрет, что в нестопии неудобный селектор регионов, однако он не лишен логики.
На выбор (Machine -> Region) доступны Auto, NTSC и PAL.
Каждому региону можно задать предпочитаемые тайминги оборудования в доп.настройках.

Немного переделанная менюшка будет понятнее?

Теперь удобно!
Кстати, на какую версию?

Оффлайн evgs

  • Пользователь
  • Сообщений: 1040
  • Пол: Мужской
    • Просмотр профиля
Эмулятор Dendy - Nestopia
« Ответ #389 : 04 Декабрь 2017, 12:22:50 »
По сути это просто косметическое изменение *.lng-файла, делал для 1.40 из подписи.
Подходит и для обычной официальной 1.40, но её уж нет смысла использовать, там денди глючная.