| Эмуляция > Эмуляторы консолей 6 поколения и выше |
| Demul, эмулятор Dreamcast, Naomi etc. |
| << < (35/583) > >> |
| CaH4e3:
Вся необходимая информация находится под спойлером ниже: * Официальный сайт эмулятора * Официальный русскоязычный форум * Скачать Demul * Багтрекер для сообщений об ошибках * Часто задаваемые вопросы (FAQ) * Для работы эмулятора требуются: MSVC 2010 Redist x86 а также последний DirectX * Биосы консоли SEGA Dreamcast в формате эмулятора можно скачать здесь или там Инструкция Demul в картинках + biospack Шейдерные фильтры для режима OpenGL можно скачать здесь |
| EdHell:
--- Цитата: CaH4e3 ---Если на демуле не работает лицензия, это проблема демула. Если на демуле не работает пиратка - это проблема пиратки, и искать, почему она не работает - потеря времени. --- Конец цитаты --- Это ясно, как божий день, но если игра в виде пиратки (сценовый релиз), тем более не рипнутая (что обязательно указывается в nfo релиза) хорошо работает, то она наверняка станет так же работать и в виде GDI, разве нет? Может быть имеет смысл сделать исключение хотя бы для таких образов? Нерабочие же пиратки идут лесом пойдут лесом именно по вышеуказанной причине, тем более русефикацыи. |
| Photon9:
--- Цитата: EdHell ---Нерабочие же пиратки идут лесом пойдут лесом именно по вышеуказанной причине, тем более русефикацыи. --- Конец цитаты --- А какое есть опредиление неработоспособности? :) |
| EdHell:
Photon9, по-моему, простое - это когда пиратка НЕ работает (не запускается, непроходима, тяжелые баги и т.д.). И любая - если код/ресурсы самой игры изменены. |
| Photon9:
Ну в случае если игра не запускается то и смысла нет тестировать, но а касательно багов то как я уже писал мною переиграно довольно большое количество игр(150-170), и особо глючных встречалось штук 10. Хм, завтра интереса ради проганяю Star Lancer она у меня есть рипнутая английская и русская сравню будут ли отличия. |
| DreamZzz:
У вас открытый SVN, или разработка полностью закрытая? Пробовали ставить камеру в нулевые координаты, с ориентацией на z? Если координаты камеры не передаются, это первое, что приходит в голову. |
| Wind:
ясно дело пробывали, картинка очень сильно наезжает, плюс никто не сказал что она не передаеться, возможно на не ясно просто как и где она передаеться, не забывайте у нас нет никакой документации, и сам автомат никто из нас даже издалека не видел. Добавлено позже: Это с нулевым положением, проблемы с цветами из-за освещения, и как видно забор на переднем плане, он так понимаю должен отсекаться, но увы ... |
| DreamZzz:
--- Цитата ---картинка очень сильно наезжает --- Конец цитаты --- с fov надо поиграться --- Цитата ---и как видно забор на переднем плане, он так понимаю должен отсекаться, но увы ... --- Конец цитаты --- Если забор плоский и нормали у него повернуты внутрь ринга, то он может отсекаться не положением камеры, а либо проверкой направления нормали, либо по ориентации треугольников (расположения вершин по часовой либо против часовой). |
| Wind:
Да пробывали двигать камеру дальше ближе ручками, но получаеться совсем не то и не так, с нормалями там тоже не все ясно, вроде как на каждый вертекс их даже и нет. В вертексных массивах передаються, два флоат числа неизвестного назначения(ибо пока не используються), предполагаю коэфициенты какие-то для дифузионого и зеркального цвета, а вот самих нормалей то не видел. Но больше всего сносит крышу это эти матрицы, причем они 4*3, w координата не передаються в вертексах. И матриц этих две причем одна являеться "транспонированой" и с частично обратными даными. Предполагаю что другая как раз для освещения нужна, но вот не пойму задумки авторов железа, зачем было требовать от разработчика передавать явно лишнюю матрицу, обычно ничего не делаеться просто так, так что думаеться в этом месте какая-то собака еще зарыта. Касательно самого освещения там вообще туман сплошной, как и что передаеться понять даже близко не получаеться по даным, но есть и приятный момент, всего один блок остался совершено не раскуреный, так что хотя бы где искать известно, но я далеко не специалист в 3d математике, так что все и движеться крайне плохо и медлено. |
| CaH4e3:
gepar, Photon9, EdHell, чтобы навсегда закрыть эту тему, напомню, что бОльшая часть игр на гдромах от сеги и прочих разрабов, если не защищена, то как минимум подразумевает наличие определеных файлов по определенным адресам на диске. Соответственно, при рипе даже маленькой игрушки, сценерам приходится не просто выбрасывать, пережимать или переносить файлы на простую болванку, но и ломать екзешник, как автоматическими патчами, так и ручными хаками. И не все игры на самой приставке после этого работают безглючно - стоит только посмотреть, сколько репаков и проперов выпускалось разными группами в свое время. Опять же, запуск с сидирома - это послабление от сеги для разработчиков, а не для пиратов. Запуск с сидирома в системе происходит иначе, чем простого гдрома, соответственно это тоже приходится учитывать при пересборке образа и может быть тоже хачить. И в самую главную очередь, половина пиратки несет на борту сценерские демки, которые как раз в большинстве случаев являются причиной неработоспособности диска как такового на эмуляторе. И проблемы в демках те самые, что я указал выше - завязка на кеш, на извраты с инструкциями или аппаратной частью. Игра на пиратском диске может сколько угодно хорошо работать сама по себе, но глюк в демке ей этого сделать не даст. В пример можно привести того же принца персии, которому демка вообще на дает стартовать на эмуляторе. И того же самого DOA2LE, эшелоновская демка которого валит эмулятор после завершения своей работы. Раньше в демуле стоял хак на это и некоторые другие места в подобных демках, сейчас такого хака нет. А на счет возможности или невозможности для кого-то что-то скачивать, отсутствие толстых каналов, денег, власти и прочих радостей жизни (при том, что "мною переиграно довольно большое количество игр (150-170)") - это извините, не наши заботы. Проблемы индейцев шерифа никогда не волновали. Не надо плакать о тяжелой жизни. Если нет возможности - так и успокойся на этом. Сиди и поигрывай во что есть. Тыщщу раз уже говорить устал, мы тут не для того, чтобы кто-то мог дома откинуться в креслице и удобноенько поиграть в шенму на великолепном русском языке в эмуляторе в перфекте. Для этого есть приставки и пиратские диски на рынке. Мы тут работоспособность эмулятора проверяем, что подразумевает не "поиграть не могу", а "не запускается на такой-то конфигурации и с такими-то настройками". Сколько уже можно этих стенаний? Кому интересны нищеброды, которые плачут, что у них нет инета, нет денег на винт для хранения гдромов, нет еще какой-то-жизненно-необходимой-в-этом-мире-штуки-чтобы-не-считать-себя-обделенным. Хватит. Есть возможность - делай. Нет возможности - не надо давить на жалость. Все работает так, как задумано, эмулятор эмулирует, диски скачиваются, все остальное - это ваши личные проблемы. |
| DreamZzz:
Судя по картинке, камера стоит верно, двигать ее никуда не надо. Надо курить угол обзора. Это как в Quake 2 в свое время меняли fov, чтобы сделать эффект приближения изображения (из рельсы целиться). Если DX то курить 2-й и 3-й параметр D3DXMatrixPerspectiveFovLH. Если GL, то курить 1-й и 2-й параметр gluPerspective. Хз как там они освещение без нормалей считают, но раз нормалей пока нет, попробуй срезать забор по ориентации треуголников. Если DX то курить SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW) (либо D3DCULL_CW), если GL то курить glCullFace(GL_FRONT) (либо GL_BACK). Насчет второй матрицы там конечно глубже смотреть надо. |
| CaH4e3:
--- Цитата: DreamZzz от 12 Июнь 2009, 08:28:31 ---Если забор плоский и нормали у него повернуты внутрь ринга, то он может отсекаться не положением камеры, а либо проверкой направления нормали, либо по ориентации треугольников (расположения вершин по часовой либо против часовой). --- Конец цитаты --- Это достаточно тривиально. Этот забор по Z в далеких минусах, отрицательные Z режутся (должны) плоскостью видовой проекции. Куллинг по фейсам полигонов включен и работает (должен). Тем не менее эта геометрия все равно появляется на экране. Возможно это глюки программной трансформации (у нее нет отсечения), но перенос этой работы целиком на гпу тоже связан с определенными проблемами. Добавлено позже: Камера, кстати - это понятие чисто виртуальное. В рендерах нет такого понятия - куда поставить камеру. Ее положение определяется исключительно трансформацией/поворотом/переносом всей геометрии сцены относительно нулевой точки, соответственно, куда будет перенесена нулевая точка, там будет и камера. Игра с параметрами на гпу невозможна, по причине того, что все делается софтварно - умножение на матрицы трансформации, переносы и прочее. Куллинг и отсечение делает уже потом сам гпу, но уже по экранным координатам, посчитанным в программе, как это делает гпу дрима и рендер эмулятора. Так что это все не так просто, как ты думаешь. Все, что ты говоришь уже давно испробовано. |
| DreamZzz:
Ну если программно и камера все-же в нулях, то тупо как-то так: if (v1->z < 0 && v2->z < 0 && v3->z < 0) return нафиг --- Цитата ---Все, что ты говоришь уже давно испробовано. --- Конец цитаты --- Хтож его знает... |
| CaH4e3:
Гага... А теперь внимание, вопрос на понимание: стрип треугольников, половина вершин в положительном полупространстве, половина вершин в отрицательном полупространстве, как минимум один треугольник стрипа - пересекает плоскость отсечения. Как тогда будет выглядеть твой алгоритм? ;) |
| DreamZzz:
--- Цитата: CaH4e3 от 12 Июнь 2009, 09:16:04 ---Гага... А теперь внимание, вопрос на понимание: стрип треугольников, половина вершин в положительном полупространстве, половина вершин в отрицательном полупространстве, как минимум один треугольник стрипа - пересекает плоскость отсечения. Как тогда будет выглядеть твой алгоритм? ;) --- Конец цитаты --- Вопрос некорректный. Видимо, ты хотел спросить как будет выглядеть картинка в данном случае при проверке выложенной выше? Точно так-же как если бы оно попало в область znear/zfar при указании перспективы не софтварными методами. За исключением того, что отрезало бы треугольник целиком. Вообще все же логично. Если камера в нулях, а забор по z меньше нуля (по твоим словам), то он рисоваться не должен. Если рисуется - проблема в обрезании по znear/zfar (если это вообще используется), либо просто такой проверки нет вообще. |
| Wind:
Вообщем софтварные алгоритмы отсечения плоскостями известны, но применить их не представляеться возможным, очень много геометрии, даже не представляешь насколько много, вероятено придеться что-то вроде вертексного кеша воротить, в даном конретном случае такое возможно осуществить, для того чтобы посылать только изменившиеся вертексы. На реальной системе все вертексы храняться в T&L чипе и меняються матрицы и много реже сами вертексы, но в случае эмуляции каждый кадр вся сцена пересылаеться заново, в vf4 кое-как 50 - 60 фпсок натягиваеть в мульти-трейдинге, т.е. целое ядро проца едва-едва справляеться с декодированием всей геометрии. Плюс сам програмный код игры использует много довольно тяжелых инструкций, с null рендером скорость едва 80-90 фпсок достигает. |
| DreamZzz:
Да, проблема понятна. Теоретически надо каждый кадр заполнять вершинный буфер, а учитывая нагрузку цпу эмуляцией, расчетов получается много. Одно только не понятно, зачем вы столько софтварных расчетов используете, проц и так нагружен. Я так понял, z-buffer тоже не используется? Вы на софте преобразовываете 3d на плоскость, создав как бы смежный конвеер, чтобы не сильно менять остальной код эмулятора? |
| Wind:
Да не, мы софтварно только матрицы и считаем (причем пробывали и на шейдерах разницы в плане скорости не было никакой) на проце считаем с надеждой на то что можно будет таки как-то отсечь уже пересчитаные координаты, при желании можно и на шейдеры вернуть, но скорость в даном случае уже 10, тут бы правильную картинку получить хотя бы по проекциям, но пока увы не выходит. А наоми2 разрабатывался под железо наоми1 т.е. натягиваеться она легко на код эмулятора, просто несколько областей памяти новых, ну и дма новое, которое тока пока мы и раскурить смогли, оно не сложное но думаю пока мы не раскажем остальные не скоро додумаються как оно работает |
| CaH4e3:
--- Цитата: DreamZzz от 12 Июнь 2009, 09:24:24 ---Вопрос некорректный. Видимо, ты хотел спросить как будет выглядеть картинка в данном случае при проверке выложенной выше? Точно так-же как если бы оно попало в область znear/zfar при указании перспективы не софтварными методами. --- Конец цитаты --- Нет, я спросил именно то, что спросил. Треугольники вводятся стрипами, это значит каждый новый треугольник определяется всего одной новой вершиной и двумя старыми, отрезав одну вершину у стрипа, мы тупо сломаем всю последующую геометрию, здесь нужен алгоритм деления стрипов на части, что еще больше увеличит количество геометрии на кадре. Не говоря уже о запущеных случаях, когда скажем начало и конец стрипа лежат в положительном полупространстве, а середина - в отрицательном. Нельзя просто взять и выбросить вертекс или даже треугольник из стрипа, это приведет к сглючиванию всего объекта. |
| DreamZzz:
--- Цитата ---правильную картинку получить хотя бы по проекциям --- Конец цитаты --- Если вам придется fov на софте курить, вы укуритесь :) Вам очень желательно использовать как минимум D3DXMatrixPerspectiveFov (или gluPerspective) и z-buffer. Тогда (если камера все-же в нулях, а очень похоже что так и есть) вам останется подобрать fovy и aspect, чтобы получить правильную проекцию. --- Цитата ---это приведет к сглючиванию всего объекта --- Конец цитаты --- Ну да, но вы сами усложнили себе задачу, не используя аппаратную проекцию. Только не подумайте, что я вас пытаюсь учить или что-то в это роде. У меня просто коварные планы поиграть в VF4 ;) |
| Wind:
Да вся сцена у нас вообще в ортогональной проекции выводиться, ибо наоми2 лиши обкрутка наоми1, там добавлены вертексы и матрицы, т.е. матрицы пересчитывают вертексы в оконые координаты вот и все. Переспективная проекция как таковая не используеться |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |