| Эмуляция > Эмуляторы консолей 5 поколения |
| Эмуляторы консоли 3DO |
| << < (25/104) > >> |
| kupranga:
Да я это в сердцах кинул, просто очень 3DO жду, а тут такое, но насчёт совместимости, ну ту уж не надо, не намного она увеличилась, всё таки извиняюсь и всё равно спасибо вам за труд. Но честно говоря, кажется именно 3ДО нужно писать с нуля. |
| Altmer:
Неработает каких-то 3 игры из трехсот :lol: Раз надо пиши! :) |
| Wind:
Эх был бы в основе не тупой ARM6 да еще и с FPU модулем, можно было взглянуть в сторону 3до, но с таким процом лучше даже не дергатся :) |
| Altmer:
В нем нет FPU ) И не такой уж он и тупой - писать на ассемблере под ARM одно удовольствие в сравнении с x86 ))) Хотя команды имеют довольно много особенностей исполнения и в этом плане - он пожалуй посложнее будет. |
| Wind:
А что там вместо фпу? вроде что=то было же для работы с плавающей запятой, а писать под это проц на ассемблере вообще нельзя ;), а вот х86 кстати очень просто. А это феня с плавающим флагом переноса просто убийственна. ARM единственный проц динарек которого воистину сложно написать. Столько учесть нужно что застрелится можно. |
| Altmer:
К стати если проблема лишь в ARM - то в этом проекте - http://sourceforge.net/projects/fourdo/ - мое ядро - они правда там накосячили с блочными пересылками - сняли проверку на выход за пределы ОЗУ, но это легко поправить. |
| Wind:
Да видел уж, этот проект, но у сам понимаешь у меня свой проект поинтересней есть ;) Я бы еще подумал если бы это дело можно было встроить, но вот там софтом эмулить графику поди придется, а это не интересно |
| Altmer:
Ну не знаю - я много писал на асме под ARMы, и ничего - имхо, гораздо удобнее x86-го, теже условия на исполнение, и регистров много - раздолье ))) Как говорится - на вкус и цвет... Там как раз не софтом эмулить ее собирались, а путем эмуляции запросов к графической библиотеке. |
| Wind:
HLE эмуляция чтоль?, ну это совсем скучна, надо железку ручками пощупать же, не ф-ии библиотеки |
| Altmer:
Там нельзя эмулить видеоподсистему отдельно, поскольку видеопамять может использоваться для чего угодно и процессор имеет к ней полный доступ. Поэтому не через библиотеку будет довольно проблематично, но тоже вполне возможно ) А самое простое - программно, что и сделано. |
| Wind:
Хм, ну поверь в дриме, а особено в naomi2 где видепамяте 3 штуки аж, тоже прямой доступ к видео памяти и тоже часто используется как оперативка, но жить это не мешает ;) |
| Altmer:
Все зависит от конкретной архитектуры, в 3do с аппаратной отрисовкой есть сложности, которые впрочем я уже почти решил, остались нестыковки с ее пиксельным процессором, которые в полной мере на ПКшном железе без использования шейдеров реализовать не видится возможным, а шейдеры использовать не хочется )) При этом все равно приходится перехватывать вызовы графической библиотеки, поэтому без элементов HLE, честно - не уверен что можно все корявости обойти - например в VDLP фрейм буфер не обязательно с его начального адреса загоняется, а при отрисовке полигонов клиппинг делается за счет манипулирования начальным адресом фреймбуфера - опять же не получить его истинное значение, а страничные операции вообще для чего угодно используются. |
| Wind:
Ну как-то страно, чтбы нельзя было получить все что нужно, очень страно скажу. Ну а насчет шейдеров эт, зря, эмуль я так понял все равно требователен к ресурсам, так ради чего тогда мучится? Используй шейдры ибо они реално руляд, а вычислительные шейдеры последних видюх вообще круть нереальнейшая. |
| Altmer:
Фрейм-буфер нельзя никак выцепить из железа со 100% гарантией, что это начальный адрес. Цитата из документации по железу: The actual re-positioning of the screen is accomplished by changing the start address of the frame buffer in hardware. Вот такие вот пироги :'( Когда отрубаю программную отрисовку и оставляю пока еще очень глючную аппаратную - загрузка моего проца (2 ядра по 2.26 ГГц) падает до 15%-30%. Так что если всю графу перекинуть на видюху - третьего пня вполне хватит для комфортной игры. |
| topos84:
--- Цитата: Altmer ---Так что если всю графу перекинуть на видюху - третьего пня вполне хватит для комфортной игры. --- Конец цитаты --- А шейдеры все равно будут, если их добавить? При 3-м пне? |
| Altmer:
у меня на ноуте интегреный интел - проэтому хочу без шейдеров :) Добавлено позже: С фрейм буффером можно поступить тупо - но работать будет - для каждой игры прописать конкретно адрес в настройки :lol: Впрочем HLE ничем не лучше - тоже не надо забывать про разные версии ОС. Добавлено позже: На одну игру совместимость повысил :lol: Болз теперь работают - честное октябреновское! (пионером не был) |
| kupranga:
Ну вот это уже радует,,а в чём загвоздка с Phoenix 3, в чём её неэмулируемость??? Да просто охото уже эмулятор уровня той же PSX, вот и всё. У меня насчёт эмуляции частые вопросы возникают, допустим все так любят Neo Geo, а Hyper NG 64 почти не играбелен, только недавно начало, что то двигаться, но как то медленно. Не ну конечно легко так судить не умея ни хрена делать,,но если бы умел взялся бы точно :). |
| Altmer:
Если тебе это поможет - в том что DMA не корректно работает - все лень поправить ) Хотя возможно есть косяки в реализации DSP - тоже все никак не перепишу. Ни не умею, а не хочу - лучше скажи :) Думаешь я умею? :lol: Я тоже не умею, но когда хочу разобраться - получается. |
| Wind:
Если ты говоришь 3 игры не работает, то тут скорее дело в корявых таймерах, на них все системы особено древнии хорошо умирают. --- Цитата ---The actual re-positioning of the screen is accomplished by changing the start address of the frame buffer in hardware --- Конец цитаты --- Насчет этого, железо не может гадать где и что, оно это четко должно знать, значит просто неизвестен алгоритм как расчитывается начальный адрес. |
| Altmer:
С таймерами порядок - проблема в DSP или/и особых DMA флагах связанных с порядком формирования прерываний. Поправочка - уже две игры ) Оно и не гадает - оно делает что ему скажут. Алгоритм для расчета начального адреса o_0 звучит дико - он либо есть - либо его нет. С случае данного железа - он есть, но редко соответствует (0,0) пикселу экрана - потому что им делается клиппинг, скажем задается адрес пикселя (10,10) и два ограничения по x и y - (300,220) - тем самым имеем рамку в 10 пикселей с каждой стороны, а для того что бы строки не ехали дается реальная длина строки 320 - ее и прибавляют к указателю. Когда-то в 90-лохматом году экономили каждый регистр - в данном случае съэкономили на регистрах для клиппинга с левого верхнего угла, я бы тоже так сделал, если бы ресурсы микросхемы поджимали. А растеризатор (Video Display Line Processor) вообще может вести себя непредсказуемо - там каждую строку можно указать от фанаря, т.е. смешивать и перестраивать фрейм буферы как угодно )) Там еще и не такие выкрутасы были, чего только один CornerEngine стоил - рисующий тексели в форме бабочек и галочек и в процессе распаковывающий текстуры сжатые RLE-подобным алгоритмом ))) У каждой консоли свои особенности. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |