User Tag List

Страница 7 из 7 ПерваяПервая ... 34567
Показано с 61 по 67 из 67

Тема: Повышаем качество эмуляции Львов ПК-01

  1. #61

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Главный момент - общий критерий в подобных случаях не задают как просто сумму, а то так можно получить и нулевое суммарное отклонение за счет сильного перекоса отдельных значений. Возможны варианты, например сумма модулей (тогда оптимальные значения 2.338 и 0.793) или сумма квадратов (2.277 и 0.745).

    - - - Добавлено - - -

    Для полноты картины. При исходном критерии (просто сумма) оптимальные значения 2.269 и 0.756

  2. #61
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #62

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    403
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, согласен, поменял на среднеквадратическое отклонение, обновил аттач.
    Оптимальное значение получается в районе 2,27-2,28...
    Последний раз редактировалось Pyk; 04.04.2021 в 19:05.

  4. #63

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    403
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поскольку мне удобнее оперировать рациональными числами, попробую, пожалуй, значения 16/7 (2.286) и 3/4...

  5. #64

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прощу прощения за занудность, но т.к. в данном случае важно не само значение, а достижение его минимума, то корень можно не извлекать (и оптимум будет совпадать с вышеозвученным {2.277 и 0.745}). С другой стороны корень не мешает находить правильное значение.
    Для аппроксимации с двумя параметрами получилось довольно хорошо, а для дальнейшего повышения точности можно перейти к большему числу параметров, например индивидуально назначить задержку каждому типу цикла (чтение 3/4/5, запись 3/5). Следующий шаг - назначение разных задержек комбинациям циклов. Тут конечно интересный вопрос - насколько сложная аппроксимация на основе статистики достигнет точности эмуляции на базе моделирования, но это вопрос скорее теоретический.

  6. #65

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    403
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, согласен, корень не обязателен, но пусть будет хотя бы ради одного порядка цифр.
    В принципе, можно было и просто сумму оставить, но тогда нужно уже стремиться не к минимуму, а к нулю - если положительные и отрицательные отклонения будут встречаться одинаково часто, в сумме получится 0, что нам и нужно. Но наверное так, как сейчас, все же правильнее...

    Насчет дальнейшего повышения точности - идею понял, но не уверен, что готов сейчас этим заниматься, тем более, что в актуальном состоянии эмулятора с этим не получится поэкспериментировать, нужно дорабатывать...

    А вот попробовать автоматизировать расчет устоявшихся циклов было бы интересно (может быть в перспективе и в эмуляторе удалось бы реализовать). Можешь немного пояснить ход рассуждений, чтобы выйти на те значения на основе осциллограмм DDp?

  7. #66

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Можешь немного пояснить ход рассуждений, чтобы выйти на те значения на основе осциллограмм DDp?
    Могу, но сначала хочу еще посчитать команды, вдруг окажется, что найденные "правила" не совсем универсальны и их нужно откорректировать.

    Цитата Сообщение от Pyk Посмотреть сообщение
    не уверен, что готов сейчас этим заниматься
    Текущий вариант в эмуляторе очень хорошо соответствует среднему по больнице, т.е. обеспечивает очень близкую среднюю скорость, да и бипер вполне хорош. Расхождения будут там, где нужна локальная точность с учетом чтения видео, например при эмуляции визуальных тестов DDp или tstsp1/2. Можно наверно сказать, что эмуляция классических программ доведена до хорошего уровня, проблема только с новодельной экзотикой.

  8. #67

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DDp Посмотреть сообщение
    ВНЕЗАПНО
    если присмотретсо
    видно что палитровый "мультиколор" получается с точностью до 4-х пикселей
    а сами палитровые "знакоместа" 4х1 смещены относительно пиксельных "знакомест" на один пиксель

    конечно может быть это изза ВНЕЗАПНОЙ кратности кода пищалки
    а может так и есть

    потом запилю какой нить тест

    или можете запилить его сами и без меня
    нужно нарисовать на экране шахматку
    1111000011110000
    1111000011110000
    1111000011110000
    1111000011110000
    0000111100001111
    0000111100001111
    0000111100001111
    0000111100001111

    и гадить в поллитру с переменной скоростью (чтоб цикл плавал с шагом 1 такт туда сюда)

    записать все на видео или несколько раз отскриншоить
    а дальше можно усреднить жменю картинок
    и посмотреть на границы палитровых "знакомест"

    еще нужно проверить не смещается ли палитровые "знакоместа" при включении питания

    нужно выключать БП нахрен включать
    и записать подобный тест раза 4

    а вот усрреденный B0000x от DDp
    с той же точностью и тем же смещением


    - - - Добавлено - - -

    так же продублирую псто с львов форума и тут

    В такты перевел, но мне кажется что их нельзя использовать точно в таком виде в любых условиях, скорее всего конкретная растактовка будет зависеть и от последнего цикла предыдущей команды.
    но во первых ты doing it wrong полностью и целиком
    и таким тестом ничего толком не определишь
    да и сильно ты округлил не к месту

    а во вторых цифры тоже интересные


    мы видим сколько команд влезет в круглое число тактов

    но тут мы вспоминаем про мерзкий ГФ24 с его никому ненужным делением на 9
    который как всегда все нам портит


    Код:
    у нас есть 5 mhz video и возможно оно же частота ram
    1--------2--------3--------4--------1--------2--------3--------4--------
    часть тактов жрет чтение видео (не уверен когда именно)
    =========2--------3--------4--------=========2--------3--------4--------
    
    а тут у нас cpu работающий практически не синхронно
    1---2---3---4---5---6---7---8---9---1---2---3---4---5---6---7---8---9---
    
    а вот как то так наверно 2 nop-а будут выполнятся за 13 тактов в среднем
    =========2--------3--------4--------=========2--------3--------4--------
    wwwwwwww1111------------wwww1111------------wwwwwwww
    1---2---3---4---5---6---7---8---9---10--11--12--13--

    не нужны принимать за чистую правду
    ибо я не все раздуплил на схеме
    и не понел полностью и точно
    ...точнее тут я сильно прозевал и сделал все на оборот


    но все ras cas-ы тактируются от кварца деленного на 2\4\8
    когда проц на свой волне с частотой кварца деленной на 9

    тоесть эмулятор должен плясать не от частоты проца
    а от частоты проца*4 *8
    нужно жестко втыкать в времянки...
    ...ну и писать чисто Львов эмулятор с нуля
    а не считать получетверти тактов и мерять время пищание (которое на записях с разных звуковух уже +-1,5% плавает)...
    и вообще времянки меряются мультиколорами и логическими анализаторами
    мерянием длины пищания много ненамеряишь...


    ну и вангую что эффективная частота проца дето в районе 1666666,6 из 2222222.2

    - - - Добавлено - - -

    и тут обращаем внимание на точное выравнивание всех out-ов по границам 4х1 пикселей
    и это в то время как проц и видео живут совершенно на некратных частотах
    может в эмуляции можно вообще плясать от частоты видео?
    покрайней мере в то время когда "луч" над экраном

    там вообще случаем не получается выравнивание до 9 тактов над экраном?


    вот поправил и переосмыслил (расположение чтения относительно chars-ов условное!)
    Код:
    2nop = 13t
    123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234	20MHz
    1---------------2---------------3---------------4---------------1---------------2---------------3---------------4---------------1---	1,25MHz chars
    1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---	5MHz pixels
    --------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx----	chars reading
    x                                   x                                   x                                   x				cpu can read
    111111111---------------------------111111111---------------------------wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
    1--------2--------3--------4--------5--------6--------7--------8--------9--------10-------11-------12-------13-------1--------2------	2,2MHz Cpu
    
    
    ld a,a ~ 7t
    123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234	20MHz
    1---------------2---------------3---------------4---------------1---------------2---------------3---------------4---------------1---	1,25MHz chars
    1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---	5MHz pixels
    ------------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx--------xxxxxxxx	chars reading
    x                                   x                                   x                                   x				cpu can read
    111111111------------------------------------wwwwwwwwwwwwwwwwwwwwwwwwwww111111111------------------------------------wwwwwwwwwwwwwwww
    1--------2--------3--------4--------5--------6--------7--------8--------9--------10-------11-------12-------13-------1--------2------	2,2MHz Cpu
    сколько длится чтение видео памяти нужно уточнить

    или так
    Код:
    2nop = 13t
    123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234	20MHz
    1---------------2---------------3---------------4---------------1---------------2---------------3---------------4---------------1---	1,25MHz chars
    1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---	5MHz pixels
    ------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx------	chars reading
    x                                   x                                   x                                   x				cpu can read
    111111111---------------------------111111111---------------------------wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
    1--------2--------3--------4--------5--------6--------7--------8--------9--------10-------11-------12-------13-------1--------2------	2,2MHz Cpu
    
    
    ld a,a ~ 7t
    123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234	20MHz
    1---------------2---------------3---------------4---------------1---------------2---------------3---------------4---------------1---	1,25MHz chars
    1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---	5MHz pixels
    ------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx------	chars reading
    x                                   x                                   x                                   x				cpu can read
    111111111------------------------------------wwwwwwwwwwwwwwwwwwwwwwwwwww111111111------------------------------------wwwwwwwwwwwwwwww
    1--------2--------3--------4--------5--------6--------7--------8--------9--------10-------11-------12-------13-------1--------2------	2,2MHz Cpu
    тк там 1/8 времени клащается video\cpu на d50 или около того?
    Последний раз редактировалось NEO SPECTRUMAN; 03.05.2021 в 07:29.

Страница 7 из 7 ПерваяПервая ... 34567

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Качество картинки с английского Spectrum (82 года)
    от c55fun в разделе Зарубежные модели
    Ответов: 11
    Последнее: 30.04.2019, 13:36
  2. Качество изображения УКНЦ
    от S_V_B в разделе ДВК, УКНЦ
    Ответов: 95
    Последнее: 23.05.2018, 11:07
  3. Качество контактов панелек PLCC...
    от SoftFelix в разделе Несортированное железо
    Ответов: 6
    Последнее: 24.04.2018, 10:21
  4. Ответов: 36
    Последнее: 23.03.2016, 22:10

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •