Тогда согласен. Забыл про BASE, не посмотрел реализацию...
Посмотрю, спасибо! Возможно это из-за отсутствия эмуляции джойстика, который в emu дублируется стрелками. Интересно, на реале стрелка вниз работает?
- - - Добавлено - - -
BASE посмотрел - все соответствует документации, поправлю.
В warp движение вниз назначено на "5" на доп. клавиатуре. В sdl-версии эмулятора это работает, в Qt почему-то нет, разберусь (вообще, в qt неудобно сделана работа с клавиатурой, нет надежного способа определить какая именно клавиша нажата). Думаю, для удобства нужно все-таки сделать джойстик...
Последний раз редактировалось Pyk; 21.12.2018 в 09:32.
Попробовал sdlный вариант emu80 и там свой прикол. Не могу загрузить cas. Пишет FOUND с совпадающим именем и не грузит. В Qt нормально грузит те же файлы.
ivagor, действительно
Посмотрю сегодня чуть позже, пока же можно по Alt-F3 грузить встроенным загрузчиком - работает на большинстве файлов.
Багфикс-релиз
Добавил джойстик, исправил numpad, загрузку файлов в sdl-версии, порты 92 и 93, изменил работу прерываний.
После правок стало хорошо, пора портить праздник
Проблема с игрой PASKHA. Там даже две проблемы - управление и отображение главгероя.
Управление поломалось в исправленной версии из-за джоя, если в конфиге отключить второй джойстик, то все нормализуется.
Отображение главгероя в этой и предыдущей версии не менялось. Как я понимаю (и в emu так) главгерой должен постоянно мигать, чтобы обеспечить 3 цвета в знакоместе, иначе никак. Но в emu80 странно - то показывает один цвет из двух спрайтовых, то другой, а то правильно моргает. Отсюда вопрос (исходник я не смотрел) - вывод видео в emu80 привязан к прерыванию, т.е. стабильно производится с одинаковым смещением относительно прерывания? Я пробовал свой бордюрный тестик, который Mick прогонял на реале, и не понял, что он выдает. Понятно, что без вейтов и "родной" тактовой как на реале не будет, но я просто не смог понять, где же момент прерывания относительно активной области изображения. В PAIRS и ROTORS пропадают спрайты в некоторых частях экрана, возможно тоже связано с моментом прихода прерывания. Но есть и плюс относительно emu - ROTORS заработал без правок конфига.
- - - Добавлено - - -
Кстати, насчет области отображения по Alt-V. То, что бордюр есть сверху и снизу - определенно так, счастливые обладатели реалов поделились фотками. Но вот бордюра слева нет, кажется DemonID7 приводил картинку, там чернота. Куда уж там бордюр, если ширина активной области изображения 51.2 мкс, в обычные тв даже вся активная область (256 точек) не влезает, показывает примерно 48 мкс (240 точек).
Последний раз редактировалось ivagor; 22.12.2018 в 07:11.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
ivagor, спасибо за тестирование.
К сожалению, до эмулятора и кода скорее всего доберусь только завтра, пока просто прокомментирую.
Джойстик реализован только первый, не совсем понял насчет отключения второго.
Насчет мигания героя посмотрю. Вывод видео привязан к прерыванию. Экран пока отрисовывается сразу весь, с бордюрами, целиком, после чего возникает прерывание. Можно сделать привязку к растру, синхронизироваться с каждой скан-линией или хотя бы с основными областями (верхний бордюр, изображение, (прерывание,) нижний бордюр), но не был уверен, нужно ли это при отсутствии вейтов.
Посмотрел картинки DemonID7 - действительно, бордюр слева черный, я упустил этот момент. По Alt-V показывается активная область в 52 мс (точнее 52,148), как это определено ТВ-стандартами. При пиксельклоке видео 13,5 МГц это пиксели со 140 по 843 относительно начала строчного синхроимпульса, итого 704 пикселя частоты 13,5 МГц, что соответствует 261 пикселю ПК8000. Неплохо бы посмотреть точные тайминги, но судя по кадрам DemonID7, активная часть изображения сдвинута вправо относительно этой области, пришлось немного покривить душой и сдвинуть ее чуть влево, чтобы отображалась полностью. Ну и на бордюр остается около 5 пикселей ПК8000. То, что он всегда черный, я упустил, поправлю.
Другое дело, что на многих современных ТВ присутствует overscan, и вместо области 704х576 фактически отображается примерно 660х540 - где-то чуть больше, где-то чуть меньше. На некоторых телевизорах (на моем, например), overscan отключается в настройках, на некоторых - нет. ТВ-тюнеры захватывают обычно полностью и даже чуть больше - до 720х576. Так что, если подключить ПК8000 к ТВ без оверскана, думаю, что небольшой бордюрчик слева будет, хотя и черный, а справа часть картинки скорее всего будет обрезана. Неплохо бы посмотреть на разных ТВ и особенно ТВ-тюнерах (к сожалению, не знаю, чем DemonID7 захватывал).
Детально не разбирался, просто закомментил в конфиге строки относящиеся ко второму джойстику и герой стал нормально управляться.
В какой момент в эмуляторе приходит прерывание относительно активной области? Мой бордюрный тестик в эмуляторе показывает ерунду, делать специальный тест под эмулятор нет желания, да это и не нужно.
Сейчас прерывание приходит (или по крайней мере должно приходить в конце кадра, условно - в момент кадрового синхроимпульса.
- - - Добавлено - - -
ivagor, а о каком тесте речь?
Я сильно подозреваю, что он и должен показывать ерунду, учитывая то, как оно у меня сейчас реализовано...
извините, а где взять программки PASKHA, PAIRS и ROTORS упомянутые в этой теме ?
у меня такого нет.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)