Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
PheeL
Постоялец
Пол: Возраст: 45 Зарегистрирован: 10.11.2010 Сообщения: 60
Группы: Нет
|
|
Вернуться к началу |
|
|
PheeL
Постоялец
Пол: Возраст: 45 Зарегистрирован: 10.11.2010 Сообщения: 60
Группы: Нет
|
|
Раскочегарил виртуалку с SDK, пытаюсь прикрутить вывод видео на TV. Процесс идёт с изрядным скрипом. Судя по комментариям в исходниках psnes'а
Код: | // Get frame buffer address, do not hardcode them, for tv-out compatibility
|
адрес фреймбуфера нельзя хардкодить для обеспечения вывода на экран TV. Интересно почему? Линукс как-то по-своему ремапит физические адреса памяти MLC в контроллере? Я очень плохо знаю Линукс и тем более его низкоуровневое API, поэтому придётся рыться между доками на контроллер и пингвина.
Далее. Даже выполнив это условие и получив указатель на память мне совершенно непонятно как там заполнять пикселя. Судя по тому, что я вижу в итоге на мониторе там иное цветовое представление. Опять надо рыться в доках -__- Однако тогда это вполне объясняет, почему при переходе на вывод в TV во многих эмуляторах начинается дикий коматоз. |
|
Вернуться к началу |
|
|
PheeL
Постоялец
Пол: Возраст: 45 Зарегистрирован: 10.11.2010 Сообщения: 60
Группы: Нет
|
|
Чем больше я копаюсь в коде этого эмулятора, тем больше я его ненавижу. Ну зачем надо было хардкодить все дисковые операции на единственный 8-й драйв?! Поубивав бы... С аллокацией фреймбуфера для вывода на ТВ, так и не разобрался. Надо серьёзнее копать код рисовалки mame4all, потому что только там она работает адекватно без использования SDL. Была ещё надежда на PocketSNES, но она оказалась ложной. Можно попытать счастья с uae4all, оно тоже как-то с ТВ-выводом ворочается, но насколько я помню там всё-таки юзается SDL. Всё очень плохо. |
|
Вернуться к началу |
|
|
Hahahoj
Site Admin
Пол: Возраст: 51 Зарегистрирован: 08.10.2008 Сообщения: 1848
Группы:
|
|
Рад что дело потихоньку движется. _________________ Просто Вовк |
|
Вернуться к началу |
|
|
PheeL
Постоялец
Пол: Возраст: 45 Зарегистрирован: 10.11.2010 Сообщения: 60
Группы: Нет
|
|
Не движется. Очень мрачный код там внутри. С дисководами я вообще не знаю что делать. Я ставлю брейкпоинты в те места где должны обрабатываться ошибки отсутствия привода или образа диска, а он туда не попадает! 0__0 Хотя ошибку выводит на экран исправно. Т.е. где-то по коду существует либо ещё одна реализация, либо он просто эти методы не использует для данных кейсов... Найти и выяснить всё это можно, но чёрт возьми, так неохота. Упираться рогом разгребая говнокод, чтобы потом всё это забыть - очень жалко ресурсов. Попробую дальше с простого - добавить внешний джойстик. |
|
Вернуться к началу |
|
|
|