| Эмуляция > Эмуляторы консолей 1-4 поколений |
| bSNES - эмулятор Super Nintendo |
| << < (33/45) > >> |
| Yaranga:
Всё туда же. Эмулируется именно консоль как компьютер, а не используется программа трансляции кода для игр по принципу NES->Windows. Добавлено позже: Последнее давно сделано и непонятно вообще наличие постов про это в сей ветке. |
| gepar:
--- Цитата: Yaranga ---Эмулируется именно консоль как компьютер, а не используется программа трансляции кода для игр по принципу NES->Windows. --- Конец цитаты --- Ну тут пожалуйста поподробнее по поводу отличия первого от второго и куда уходит столько процессорного времени. Добавлено позже: Хотел заглянуть в исходники хоть одним глазком, но автор решил и тут подвые и упаковал их в какой-то (вероятно точный ™) .xz формат. Добавлено позже: *Уже вычитал что 7-zip под виндой мне его откроет, ворчать за то что я не в курсе этого не надо. Добавлено позже: Быдлокода на первый взгляд не видно, но чтобы его заметить наверное стоит подольше покопаться. По поводу --- Цитата: Yaranga ---Всё туда же. Эмулируется именно консоль как компьютер, а не используется программа трансляции кода для игр по принципу NES->Windows. --- Конец цитаты --- По поводу этого так я совсем что-то утерял разницу, ну держат переменные как регистры, проделывают с ними операции в зависимости от содержимого и что? А если бы пытались транслировать код Nes->Windows (это кстати интересно из-за того что архитекутуры процессоров совсем разные же) так как бы всё происходило тогда? Пока копался кстати заметил что все инструкции процессора не inline, странно это, ведь теоретически какраз эмуляция инструкций процессора будет чаще всего ведь, а автор оставил чтобы это всё вызывалось каждый раз в виде функций: --- Код: ---//$01 nop void GSU::op_nop() { regs.reset(); } //$02 cache void GSU::op_cache() { if(regs.cbr != (regs.r[15] & 0xfff0)) { regs.cbr = regs.r[15] & 0xfff0; cache_flush(); } regs.reset(); } --- Конец кода --- Ну да наверняка уже до меня находились "умники" которые пробовали делать инструкции процессора inline :) |
| paul_met:
Опять вспыхнули бесполезный ажиотаж вокруг сего эмуля. Если у него плохой звук, эмуль тормозит, какого-то лешего юзает другой формат ромов, неоправданно требовательный к ресурсам и вообще абсолютно нелогичный, то возникает простой вопрос - зачем его вообще юзать? Зачем надрываться объясняя другим какой он плохой или хороший? Не нравится эмуль - не юзайте, плюйте на него и проходите мимо. ;) |
| gepar:
paul_met, так и не использую, я об этом уже писал, хочется добраться до истины и узнать чего же он такой прожорливый. Не всю же тему читать "Ох какой хороший эмулятор" и "Ах, как он прекрасно работает у меня на i7". |
| Photon9:
--- Цитата: Yaranga ---Sinеd, а по-мне - нормально прикололся. Звук хуже? Чем хуже? Доказательства? Хуже на отдельно взятой звуковой карте в непогрешимость и совершенство которой верит отдельно взятый пользователь? Не, понятно что ему обидно что он за неё отвалил хорошую сумму, а её интерфейсы застряли где-то-там? Тоже можно понять... но увы. --- Конец цитаты --- Я говорил реальном железе приставки, а не о эмуляции. Добавлено позже: --- Цитата: gepar ---paul_met, так и не использую, я об этом уже писал, хочется добраться до истины и узнать чего же он такой прожорливый. Не всю же тему читать "Ох какой хороший эмулятор" и "Ах, как он прекрасно работает у меня на i7". --- Конец цитаты --- Не повериш но на моём конфиге он как эмуль SNES меня устраивает полностью :) ну а вот касаемо NES это да тормозит, хотя если отрубить фильтры и снять галки с синхронизации видео и звука тормоза уходят и каких либо проблем из-за отключения не заметил Добавлено позже: --- Цитата: Pain ---Да. И графон хуже --- Конец цитаты --- Блин ТЫ опять со своим бредом, почитай хотябы темы о сравнении игр SMD vs SNES - графика да в большинстве случаев лучше на SNES, касаемо же звука многие склоняются к Sega и я сомневаюсь что речь тут в фанбойстве, иначе бы орали что всё лучше только на одной конкретной платформе |
| MetalliC:
gepar, попытаюсь очень вкратце. как работают всякие древние эмуляторы: берется код и "крутится" интерпретатором эмулируемого проца, назовем так - "квант времени", обычно 1 кадр, т.е. колво-тактов за 1/50 или 1/60 сек, затем считывается выдеопамять, регистры GPU и т.п. и рисуется картинка, процесс повторяется. требования у таких эмулей минимальные, но точность никудышняя из-за большого "кванта" - не учитывается то, что центраьный процессор и все остальные сопроцессор(ы) работают паралельно - то есть в любой момент один из них может куда-то записать данные влияющие на работу других, или наоборот читать какую-то ячейку памяти ожидая данные или сигнал от другого. типичный случай "растровые эффекты" - когда CPU пишет данные в видеопамять или регистры GPU во время работы последнего (изменяет палитру, карту тайлов итп), при чем в четко определенное время, например когда GPU уже отрисовал пол картинки, в старых эмуляторах мы этих эффектов не увидим, или такие игры вообще не будут работать. также обычно не учитываются задержки памяти - когда например CPU и GPU обращаются одновременно к одной и той же адресной области, и одно из устройств тормозится пока не освободится шина. и еще масса других факторов. и как с этим бороться ? - само собой напрашивается логичное решение - уменьшать этот самый квант времени, в идеале до 1 такта железа/шины. и вот тут начинается самое интересное - до этого нам достаточно было построить по тайлам и вывести картинку 1 раз в кадр, но сейчас оказывается нам нужно потактово (т.е пошагово в реальном времени) эмулировать работу графической системы так же как и процессор (т.к. см выше про растровые эффекты). и не только GPU, а и всех остальных (DMA, SPU, DSP и т.п.) сопроцессоров и компонентов что есть в системе. это повышает требования к железу в геометрической прогресии. к примеру эмули спектрума из первой категории типа древних Z80 или UKV отлично пахали на 386SX, но потактово-точные UnrealSpeccy или Spectaculator уже требуют проц чуть и не под 1Ггц. та же ситуация и с bSNES - его "профили" отичаются в первую очередь этим самым квантом времени. если я не ошибаюсь, в profile-compatibility он равен сканлайну (одной строке экрана), а в profile-accuracy - одному пикселю. если интересно - смотри сорцы (кстати Far manager схавал tar.xz архив без вопросов), \bsnes_v088-source\bsnes\snes\ profile-*****.hpp файлики - какие в том или ином профиле юзаются модули для CPU/PPU/итп, все старые "быстрые и прямые" лежат в alt\ , "новые кривые и тормозные" - в соответствующих папках. |
| gepar:
MetalliC, спасибо за подробный ответ. |
| Rainforce:
--- Цитата: Onizuka от 17 Июль 2012, 00:41:52 ---а ещё в этом точном эмуляторе SNES звук хреновый <_< как бью мог это допустить? :'( --- Конец цитаты --- нормальный звук. Как это ни странно Добавлено позже: --- Цитата: Photon9 от 17 Июль 2012, 18:08:58 --- касаемо же звука многие склоняются к Sega --- Конец цитаты --- ужас какой :'( Добавлено позже: --- Цитата: MetalliC от 17 Июль 2012, 18:24:12 ---gepar, попытаюсь очень вкратце. как работают всякие древние эмуляторы: берется код и "крутится" интерпретатором эмулируемого проца, назовем так - "квант времени", обычно 1 кадр, т.е. колво-тактов за 1/50 или 1/60 сек, затем считывается выдеопамять, регистры GPU и т.п. и рисуется картинка, процесс повторяется. требования у таких эмулей минимальные, но точность никудышняя из-за большого "кванта" - не учитывается то, что центраьный процессор и все остальные сопроцессор(ы) работают паралельно - то есть в любой момент один из них может куда-то записать данные влияющие на работу других, или наоборот читать какую-то ячейку памяти ожидая данные или сигнал от другого. типичный случай "растровые эффекты" - когда CPU пишет данные в видеопамять или регистры GPU во время работы последнего (изменяет палитру, карту тайлов итп), при чем в четко определенное время, например когда GPU уже отрисовал пол картинки, в старых эмуляторах мы этих эффектов не увидим, или такие игры вообще не будут работать. также обычно не учитываются задержки памяти - когда например CPU и GPU обращаются одновременно к одной и той же адресной области, и одно из устройств тормозится пока не освободится шина. и еще масса других факторов. и как с этим бороться ? - само собой напрашивается логичное решение - уменьшать этот самый квант времени, в идеале до 1 такта железа/шины. и вот тут начинается самое интересное - до этого нам достаточно было построить по тайлам и вывести картинку 1 раз в кадр, но сейчас оказывается нам нужно потактово (т.е пошагово в реальном времени) эмулировать работу графической системы так же как и процессор (т.к. см выше про растровые эффекты). и не только GPU, а и всех остальных (DMA, SPU, DSP и т.п.) сопроцессоров и компонентов что есть в системе. это повышает требования к железу в геометрической прогресии. к примеру эмули спектрума из первой категории типа древних Z80 или UKV отлично пахали на 386SX, но потактово-точные UnrealSpeccy или Spectaculator уже требуют проц чуть и не под 1Ггц. та же ситуация и с bSNES - его "профили" отичаются в первую очередь этим самым квантом времени. если я не ошибаюсь, в profile-compatibility он равен сканлайну (одной строке экрана), а в profile-accuracy - одному пикселю. если интересно - смотри сорцы (кстати Far manager схавал tar.xz архив без вопросов), \bsnes_v088-source\bsnes\snes\ profile-*****.hpp файлики - какие в том или ином профиле юзаются модули для CPU/PPU/итп, все старые "быстрые и прямые" лежат в alt\ , "новые кривые и тормозные" - в соответствующих папках. --- Конец цитаты --- Спасибо, узнал много нового) |
| Onizuka:
Yaranga с моей звуковушкой всё залипись! :cool: не я один заметил, что у этого точного эмулятора звук хреновый, для сравнения звука я использовал звуковой драйвер XAudio2, который находится в DirectX и в Snes9X звук лучше! :P Добавлено позже: или ты намекаешь, что звуковая карта стоимостью 40 залёных президентов фигня? <_< |
| Yaranga:
Onizuka, не намекаю, а очередной раз (как в случае с 4DO) даю понять что в определённых случаях мои встроенные реалтеки дают отличный результат там где твоя прелесть за 40 зелёных президентов (ну, не такая уж и дорогая) выдаёт хреновый звук. Эти случаи банально на неё не рассчитаны. |
| Onizuka:
Yaranga а вот это уже смисно, ладно, проверим на ноуте, там аудиокодек от Realtek и лопухи от Technics, которые позволят более чётко услышать разницу в звуке между эмуляторами, кстати, ещё зависит от качества звучания наушников, может потому ты разницы не слышишь Добавлено позже: я вообще хотел купить звуковую карту Juli@ или MAYA44, но у нас их не продают, пришлось взять ASUS Xonar DS |
| MetalliC:
--- Цитата: Onizuka ---а вот это уже смисно, ладно --- Конец цитаты --- ничего смешного, просто чем навороченее звуковушка теи больше глюков или гм.. "особенностей" в их дровах, особенно в плане объемного звука. не просто так же многие игроделы покупают и пользуют что-то типа Miles Sound System от RAD Tools а не пишут прямиком под DSound или Xaudio. |
| Onizuka:
не, в Snes9X игры звучат намного лучше, а насчёт звукового процессора SNES хочу сказать, что он хороший и хреновый звук не выдаёт, всё таки SONY этот аудио процессор разработала, если бы он был хреновый, то большая N не повелась бы на него, когда SONY им расхваливала его возможности я даже в обоих эмуляторах выставил 32KHz, как у самой консоли |
| ParagonUnits:
В топку 32, надо 48 ставить! |
| Onizuka:
а какой смысл, если у аудио процессора консоли 32KHz :? |
| ~Scorpion-:
На эмуле звук лучше. |
| MetalliC:
угу, звук надо ставить 128KHz со всякими супер-пупер-HQ интерполяциями, и картинку обязательно с фильтром HQ100500x, чтоб всё было "почти как в крузисе" :) это я к чему, если кто-то из присутствующих не представляет как можно играть игры без вышеперечисленного - может не стоит себя насиловать эмуляторами, а лучше поиграть всякие фанатские или фирменные HD ремейки для ПК ? ;) |
| ~Scorpion-:
Не знаю, после настройки меня звук устраивает в эмуляторе. Просто по мне он лучше, чем на консоли (насколько я помню звук на телике) получается, чище и громче. Или ради натурализма нужно строго не пользоваться никакими фильтрами иначе не труъ фанат ретрогейминга и эмуляции? |
| Evgeniy:
Никогда не было у меня snes, поэтому я в неведении по поводу звука. На snes изначально была интерполяция? т.е. звук snes9x 1.53 и bsnes идеально воспроизводит звук реального железа? Тут уже были недовольства по поводу того, что нельзя к примеру в snes9x отключить интерполяцию, чтобы звук не звучал как из жопы. В zsnes есть целых три варианта настройки этого самого звука. (гауса, кубиксплин, 8- поинт) |
| Combiner:
--- Цитата: Evgeniy от 24 Июль 2012, 20:50:43 ---На snes изначально была интерполяция? --- Конец цитаты --- Да. Даже на самом эмуляторе snes9x 1.51 указано рядом с галочкой интерполяции "(SNES: On)". |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |