Xpeccy
Это эмулятор на основе QT4/SDL, в основном под линукс. Под винду в QtCreator (Qt + MinGW) собирается отлично, требуемо только пошаманить с %PATH% и %INCLUDE% для CMakeLists.txt
Датой рождения считается 09 февраля 2009
Git
git://github.com/samstyle/Xpeccy.git
Compiled
build 20180405 [ deb 32 ][ deb 64 ][ rpm 32 ][ rpm 64 ][ dmg 64 ][ win 32 ]
[ win libs ][ ROMs pack ]
Compilation
Обязательно нужны cmake, g++, qt4 и sdl с дев-пакетами
Необязательно - zlib
Как собирать:Параметры cmakeКод:git clone https://github.com/samstyle/Xpeccy.git cd Xpeccy mkdir build cd build cmake [параметры] .. make # для установки sudo make install # для создания пакета make package
-DQT5BUILD=1 собрать с использованием Qt5. если =0, то соберётся с Qt4
-DSDL2BUILD=1 собрать с использованием SDL2. если =0 - с SDL1.2
-DPACK=[rpm | deb] переопределяет формат пакета, который будет собран при make package (только в Linux)
Linux
установка осуществляется в /usr/local/bin, из пакета - в /usr/bin
директория конфигов - ~/.config/samstyle/xpeccy
Windows
папка конфигов - ./config (в том же месте, где exe-шник)
Неразрешимая зависимость libSDL1.2debian (>=1.2) шо делать, зовите пожарных, полицию, Одина и чудо-женщину!!!адин!11
Берём этот установщик с гуем и посылаем его куда следует. Вместо него пользуемся dpkg в эмуляторе терминала, он такой фигнёй не страдает. Потом по надобности доустанавливаем зависимости. Пока dpkg устанавливает без ошибок, пакет считается нормальным, а всякие gdebi, qdebi и lintian-ы могут спать.
[свернуть]
Эмулируемые модели
- ZX Spectrum 48K
- Spectrum +2
- Spectrum +3
- Pentagon (128-512K)
- ZS Scorpion (256,1024) + ProfROM
- Pentagon 1024SL
- ZXM Phoenix
- Profi
- ATM Turbo 2
- ZXEvo BaseConf
- ZXEvo TSConf
- MSX1 (beta)
- MSX2 (alpha)
- Gameboy color
- NES/Dendy (beta)[свернуть]Как добавить свой ромсет
*.rom файлы должны лежать в подкаталоге roms каталога конфигов.
В настройках (F1) на вкладке Machine в строке Romset жмём "плюс", вводим название нового ромсета и подтверждаем - OK.
После этого он появится в списке левее. Выбираем его и жмём "редактировать", либо два раза кликаем по любой строке таблицы ниже. Появляется окно редактирования ромсета.
Если всё ПЗУ соединено в один файл, ставим галку напротив "Single file" и выбираем нужный файл из списка. В списке присутствуют все *.rom из вышеуказанного каталога. Содержимое таблицы на вкладке Machine должно поменяться.
Если ПЗУ представлено разными файлами, ставим галку напротив "Separate files" и для каждой страницы ПЗУ указываем файл и часть в нём. Нумерация частей начинается с 0, 0 означает первые 16К из файла, 1 - 16К начиная со смещения 16К, 2 - 16К со смещения 32К итд. Соответствие номера страницы ПЗУ и её функциональности (basic48,basic128,dos,shadow) различается от клона к клону, поэтому надо для начала уточнить этот порядок.
Отдельными пунктами идёт ПЗУ для General Sound (32K) и прошивка знакогенератора для ATM2/Evo-BaseConf (2К).
[свернуть]Как переделать раскладку ZX-клавиатуры
В папке конфигурации создайте файл с расширением map (например, myKeyboard.map). Это текстовый файл, в каждой строке - соответствие PC-клавиши одной или двум ZX-клавишам. Файлов может быть несколько, используемый выбирается в настройках эмулятора на вкладке Input. Обозначения клавиш и пример см. тут -> https://github.com/samstyle/Xpeccy/blob/master/keymap
[свернуть]Хоткеи эмулятора
F1....Настройка
F2....Запись диска/снапшота/ленты
F3....Загрузка чего-нибудь
F4....Стоп/воспроизведение ленты
F5....Стоп/запись на ленту
F7....Cкриншот
Alt+F7....Комбо-скриншотинг
F9....Записать измененные диски
F10....NMI (magic)
F11....Окошко магнитофона on/off
F12....Сброс
Alt+Enter....полноэкранный режим
Alt+R....сохранять/нет пропорции
Alt+F12....Сброс в ROMPage3
Pause....Пауза
ESC....Отладчик
Menu,RMB....Юзер-меню
Alt+1,2,3,4....Изменить размер окна от x1 до x4
Insert....Ускорение (аналог NumLock в Unreal).
Alt+K....Показать ZX-клавиатуру
Alt+N....Триггер нофлика
MMB захват мыши
[свернуть]Хоткеи отладчика
PageUp/PageDown....листать дизасм или дамп
Home....перейти к PC
End....поставить PC в текущую позицию
F2....поставить/убрать точку прерывания fetch
Alt+F2...то же для read
Ctrl+F2...то же для write
F3...открыть файл
F4....перейти по адресу, указанному в команде (сохраняется история 64 переходов)
F5....вернуться к предыдущему адресу по истории
F7....выполнить команду на PC
F8....выполнить команду с пропуском call/rst/djnz/ldir-подобных
F9....оставить временный fetch-breakpoint на этом адресе и выйти
Ctrl+S....сохранить блок памяти
Ctrl+O....загрузить блок памяти
Ctrl+T....запустить трассировку
Ctrl+L....вкл/выкл отображения меток
ESC....выход
[свернуть]Аргументы ком.строки
-d | --debug : после запуска сразу включить отладчик.
-p | --profile <name> : включить профиль <name>
-b | --bank <nr> : включить в окно #C000 страницу ОЗУ с указанным номером.
-a | --adr <nr> : задать адрес для загрузки (см. --file)
-f | --file <path> : загрузить бинарный файл по адресу, указаному в --adr
--bp <adr> : установить ловушку fetch на указаный адрес
--pc <adr> : установить PC
--sp <adr> : установить SP
-l | --labels <path> : загрузить список меток формата SJASM+ (LABELSLIST).
[свернуть]