какого хрена F8 на djnz отрабатывает как F7 ? Оно так всегда работало в анрыле и должно работать. Если хочешь пропустить цикл, ставь курсор на следующую после цикла команду и жми F4. Нашел первого пострадавшего. Вomberman сильно глючит. Есть идея как все это пофиксить, но надо много кода переписать.
А это проблема очень неприятная... С одной стороны демка должна опрашивать готовность ДМА (щас говнокод), но при этом будет заметное торможение кода з80 по сравнению с реалом, ибо не более 1 транзакции за строку. Я даже знаю код, на котором это сильно испортит жизнь - достройка игровой карты на экр...
Блок отображения по тактам сейчас эмулируется с точностью до строки, поэтому внутри строки в нем могут быть неверные данные. В дальнейшем хорошо было бы сделать его с точностью до такта, но скорость эмуляция уменьшится. Собственно поэтому сейчас до такта не эмулируется. Кстати, в связи с этим есть н...
UPDATE Добавлен контроллер прерываний. Как с ним работать можно почитать тут . Переписан код основного цикла работы процессора, а также код трассировки команд из отладчика (при трассировке теперь корректно отрабатывают прерывания). Пофикшен неприятный баг, когда, например, при переключении графичес...
Прочитал формат SPG и не нашел возможности, например, передать какие-то параметры запускаемой программе. Думаю это могло бы пригодится для написания различных утилит, например, пакеров, анпакеров, ассемлеров, вьюверов и т.п.
Я в свое время детектил глючную память, путем запуска компиляции ядра FreeBSD и сборка влилась с ошибкой, если память была глючной, в то время как другие тестилки показывали, что с ОЗУ все норм. На профике у меня был какой-то косяк с некоторыми РУ7 при нагреве, поэтому начинали плавать биты в одной ...
Вообще же, состояние флага прерываний должно проверяться во время последнего такта команды. Чем это отличается от проверки перед первым тактом команды следущей? Скажем, как это скажется на выполнении команды halt? Хм. Ну по идее разницы не должно быть, кроме случая когда эмулятор только включается ...
Я так и понял что баг в эмуляторе. Меня другое интересует. Если я сейчас все поправлю, то чем потом потестить лучше, ибо до этого данный код "подгонялся" под тесты?
В анрыле в основном цикле при начале нового фрейма первым делом стоит проверка сигнала INT и запуск ISR, т.е. сигнал INT приходит даже раньше чем выполнится какая либо инструкция. Однако в пошаговом выполнении команд из дебагера все в точности и наоборот, сперва выполняется команда, а потом идет про...
UPDATE Переписан код работы DMA. Теперь транзакции выполняются не мгновенно при записи в порт DMACtrl, а с эмуляцией использования свободных циклов драмы как в железе. Добавлено отображение циклов DMA (рисуются белым цветом) при включенном отладочном (Debug) размере экрана. Пофиксил вычисление dest...
UPDATE Реализовано наложение спрайтов/тайлов по ходу движения луча за счет введения доп.буфера, в который строка рендерится заранее (на предыдущей строке, как в железе). Добавлено отображение memcycles при просмотре экрана из отладчика по ALT+F9 (должен быть включен соответствующий размер окна - &q...
UPDATE Добавлена поддержка VDOS. Тестируем, проверяем Пофикшен баг. Теперь сигнал int не генерируется при включенном vdos. Перестали зависать софты работающие через него.
UPDATE Исправлен неприятный баг, когда записанное в порт dmactrl значение не выполняло никаких действий. Скриншоты теперь по умолчанию сохраняются в текущую папку анрыла (можно указать свою папку в ini файле в переменной ScrShotDir).
UPDATE Добавлена возможность записи видео с использованием FFMpeg. Все настройки аналогичны дестсофтовскому unreal'у версии 38.x Для использования данной возможности необходимо положить в папку с эмулятором ffmpeg.exe (взять можно тут ). Запуск и остановка записи видео производится по клавише CTRL+...