User Tag List

Страница 54 из 112 ПерваяПервая ... 505152535455565758 ... ПоследняяПоследняя
Показано с 531 по 540 из 1115

Тема: Эмулятор УКНЦ - UKNCBTL

  1. #531

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию QtUkncBtl beta32 for Windows

    http://ukncbtl.googlecode.com/files/...32-Windows.zip

    В этом релизе добавлена первичная поддержка скриптинга. Командой File > Run Script выбирается .JS-файл и запускается на выполнение. Язык файла -- ECMAScript, по сути это JavaScript. В тексте программы может использоваться объект emulator, имеющий методы:

    emulator.reset(); -- сброс машины
    emulator.run(100); -- работа эмулятора в течение 100 фреймов, каждый фрейм это 1/25 секунды
    emulator.saveScreenshot("test.png"); -- сохранение скриншота в формате PNG

    Пример скрипта:
    Код:
    emulator.reset();
    
    for (i = 0; i < 10; i++)
    {
      emulator.run(10);
      emulator.saveScreenshot('test' + i + '.png');
    }
    Справочник по ECMAScript: http://qt-project.org/doc/qt-4.8/ecmascript.html

    В дальнейшем набор методов объекта emulator будет расширятся.

  2. #532

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тоже хотел нечто подобное добавить в свой эмуль, но меня опередили

  3. #533

    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,830
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    247
    Поблагодарили
    106 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Но savestate никогда никто не добавит. Зато свистелок уже тыщу внедрили. Анимацию сохранять в apng это конечно важнее.

    PS: Ну да, надоел уже всем, я в курсе.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  4. #534

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Но savestate никогда никто не добавит. Зато свистелок уже тыщу внедрили. Анимацию сохранять в apng это конечно важнее.

    PS: Ну да, надоел уже всем, я в курсе.
    Все правильно, мнение народа важно) Отстаивай свою позицию.

  5. #535

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию QtUkncBtl beta33 for Windows

    http://ukncbtl.googlecode.com/files/...33-Windows.zip

    Ещё одна порция свистелок и перделок.
    Собственно в этом релизе скриптовое API несколько доработано.

    Напомню, было всего три метода:
    emulator.reset(); -- сброс машины
    emulator.run(100); -- работа эмулятора в течение 100 фреймов, каждый фрейм это 1/25 секунды
    emulator.saveScreenshot("test.png"); -- сохранение скриншота в формате PNG

    Дальше что добавилось:

    emulator.attachCartridge(1, 'romctr_basic.bin'); -- подключение картриджа
    emulator.detachCartridge(1); -- отключение картриджа
    emulator.attachFloppy(0, 'sys1002.dsk'); -- подключение диска
    emulator.detachFloppy(0); -- отключение диска
    emulator.attachHard(1, 'WDC170inv.img'); -- подключение харда, работает только если уже подключена прошивка через emulator.attachCartridge
    emulator.detachHard(1);

    emulator.getUptime(); либо свойство emulator.uptime -- возвращает number количество секунд работы эмулируемой машины, по emulator.reset() сбрасывается в 0

    emulator.keyScan(0153); -- нажимает клавишу (задаётся скан-код), прогон 3 фрейма, отпускает, прогон 3 фрейма
    emulator.keyScan(0153, 6); -- то же но задаётся интервал (фреймов) от нажатия до отжатия
    emulator.keyScanShift(0013); -- нажатие SHIFT, 2 фрейма, нажатие клавиши, 3 фрейма, отжатие клавиши, 2 фрейма, отжатие SHIFT, 3 фрейма -- т.е. комбинация для ввода символа в другом регистре
    emulator.keyString('1\n'); -- ввод серии символов; для каждого ASCII-символа ищется скан-код, если нужно используется нажатие SHIFT

    emulator.getCPU() либо emulator.cpu -- получение объекта для ЦП
    emulator.getPPU() либо emulator.ppu -- получение объекта для ПП

    Дальше описываю в примерах для ПП, для ЦП то же самое:
    emulator.ppu.getName() либо emulator.ppu.name -- название процессора, "CPU" либо "PPU"
    emulator.ppu.getReg(0) либо emulator.ppu.r(0) -- значение в регистре 0..7
    emulator.ppu.getPC() либо emulator.ppu.pc -- значение в регистре 7
    emulator.ppu.getSP() либо emulator.ppu.sp -- значение в регистре 6
    emulator.ppu.getPSW() либо emulator.ppu.psw -- значение в PSW
    emulator.ppu.isHalt() либо emulator.ppu.halt -- признак HALT/USER режима

    emulator.ppu.readWord(0160304) -- прочитать слово из памяти процессора

    emulator.ppu.disassemble(0160304) -- дизассемблирует одну инструкцию по заданному адресу, возвращает массив из четырёх элементов: { address, instruction, arguments, instruction length }

    Актуальный справочник по скриптовому API лежит здесь: http://code.google.com/p/ukncbtl/wiki/Scripting
    Последний раз редактировалось nzeemin; 21.08.2012 в 18:55.

  6. #536

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Тоже хотел нечто подобное добавить в свой эмуль, но меня опередили
    Под Qt скриптинг прикручивается довольно легко -- движок есть в самом фреймворке.

    Меня тоже интересует как бы его попроще прикрутить к Win32-программе. JavaScript движков много но все какие-то сложные: http://en.wikipedia.org/wiki/List_of_ECMAScript_engines

    Ещё видимо популярно использовать скриптинг на Lua:
    http://code.google.com/p/psxjin/wiki...ptingFunctions
    http://code.google.com/p/snes9x-rr/w...ptingFunctions

  7. #537

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    еще довольно часто питон прикручивают

  8. #538

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию beta 34

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Но savestate никогда никто не добавит. Зато свистелок уже тыщу внедрили. Анимацию сохранять в apng это конечно важнее.

    PS: Ну да, надоел уже всем, я в курсе.
    На самом деле сейвстейтами я занимался, но успехов особых не было.

    Во вложении первая версия в которой сейвы хоть как-то заработали -- по крайней мере, простейший Save/Load на загрузочном меню работает, в сложных случаях пока не тестировал.

    Сейвы от предыдущих версий НЕ будут работать точно.
    Информация от флоппи НЕ сохраняется, поэтому не рекомендую делать сейвы в моменты обмена с дисками.
    В сейве (пока) НЕ сохраняется информация о подключенных картриджах/дисках -- предполагается что они не менялись.

    В Qt-версию сейвстейты тоже добавил, будут со следующим релизом, причём формат сейвов совпадает с Win32-версией.
    Вложения Вложения

  9. #539

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Тоже хотел нечто подобное добавить в свой эмуль, но меня опередили
    В каких случаях такое может использоваться?
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  10. #540

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,142
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    В каких случаях такое может использоваться?
    Можно я отвечу?

    Скриптинг это способ автоматизации рутинных операций. Часто бывает что одни и те же действия нужно сто раз повторять -- например, дойти куда-то до места где отлаживаться надо.
    Плюс функциональное тестирование можно на этом построить -- написать серию скриптов, в которых в ключевых моментах сравниваются показатели с эталонными (например, берём скриншот и сравниваем с эталоном).
    Если для всех пунктов меню есть соответствующие команды -- можем делать "запись макроса" -- писать скрипт в ответ на выбор команд.

Страница 54 из 112 ПерваяПервая ... 505152535455565758 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор УКНЦ - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 1198
    Последнее: 07.05.2025, 13:34
  2. Ответов: 247
    Последнее: 17.11.2024, 07:55
  3. Эмулятор УКНЦ на JavaScript
    от nzeemin в разделе Эмуляторы отечественных компьютеров
    Ответов: 4
    Последнее: 27.04.2021, 14:26
  4. УКНЦ и Gotec Flash Floppy эмулятор
    от Ynicky в разделе ДВК, УКНЦ
    Ответов: 10
    Последнее: 10.09.2019, 04:34
  5. Продам МС5310 блок дисководов к УКНЦ+КМД УКНЦ
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 19.03.2012, 11:27

Ваши права

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