Просмотр полной версии : Xpeccy
Страницы :
1
2
3
[
4]
5
6
7
8
9
10
11
12
Q-Master
22.05.2013, 23:48
Выдернуто из контекста, строки перед этим тоже важны. При чтении сектора образ открывается на чтение; если не открылся - его нет, делается попытка его создать и открыть снова; если и вторая попытка провалилась - в этом месте его нельзя создать.
Это всё ещё будет пересматриваться, я только добрался до интерфейса между компом и самим HDD, по этому поводу...
Ну вот этот код вообще суров:
FILE* file = fopen(dev->image,"rb");
if (file == NULL) {
file = fopen(dev->image,"wb");
if (file) {
fclose(file);
file = fopen(dev->image,"rb");
if (file == NULL) {
Не понял зачем ты после неудачного rb пытаешься создать файл, потом в случае удачи закрываешь и опять открываешь и после этого успешно забиваешь на дескриптор и не закрываешь его.
Upon successful completion fopen(), fdopen() and freopen() return a FILE pointer. Otherwise, NULL is returned and errno is set to indicate the error.
ИМХО тут не надо ничего создавать. Смог открыть - все ок. Не смог - сказал. Создавалка файла должна быть отдельной. Чую что именно тут возникает проблема с файлом с 0 размера именем, появляющимся бесконечно.
И насколько я вижу это чтение сектора. Я-бы не стал тут постоянно дергать файл туда-сюда это дичайший оверхед и лочка всей проги. Открой его 1 раз и все. Причем надо сразу открывать на w+b чтобы и чтение работало и запись.
PS: для чеков наличия файла могу посоветовать int stat(const char *file_name, struct stat *buf);. Работает значительно быстрее и выдает очень нехило полезной инфы. Опять-же лучше 1 раз ее при ините заюзать и все вместо постоянных
fseek(file,0,SEEK_END);
eps = ftell(file);
. Они капец какие тормозные. Ну или при реконфиге.
PS2: сорри за суровую критику, но блин привычка. 8)
SAM style
23.05.2013, 00:05
PS2: сорри за суровую критику, но блин привычка. 8)Да не, HDD там уже больше года висел и не работал как следует. Всё равно собрался его перелопачивать, так что критика к месту.
Q-Master
23.05.2013, 00:47
Да не, HDD там уже больше года висел и не работал как следует. Всё равно собрался его перелопачивать, так что критика к месту.
Чот сходу у меня не вышло создать образ понятный пентеве.
SAM style
23.05.2013, 07:50
Чот сходу у меня не вышло создать образ понятный пентеве.
Создаём пустой файл на 512М
dd if=/dev/zero of=hdd.bin bs=1M count=512
Создаём на нём 1 раздел:
/sbin/fdisk hdd.bin
o - создать чистую табилицу разделов
n - создать раздел (primary, начало на 2048 блоке, конец в конце)
t - сменить тип, вводишь C (win95 fat32 lba)
w - записать и выйти
Потом создаёшь образ раздела на 1М меньше образа винта (2048 блоков по 512 байт):
dd if=/dev/zero of=part.bin bs=1M count=511
Форматируешь его в FAT:
/sbin/mkfs.vfat part.bin
И запихиваешь в образ HDD со смещением 1М:
dd if=part.bin of=hdd.bin seek=2048
И вот. Может, есть не такой извращённый способ, но я только его раскопал. Монтировать раздел нужно опять же со смещением 1М:
mount hdd.bin -o loop,offset=$((1024*1024)) /path/to/dir
PS:А можно найти маленький винт, разметить и отформатировать его и снять побайтовый образ тем же dd
PPS: PentEvo не работает с винтами, которые не умеют в LBA, так что надо в настройках поставить галку LBA и вбухать туда число секторов на всём винте (объём в байтах / 512)
Q-Master
23.05.2013, 17:43
PPS: PentEvo не работает с винтами, которые не умеют в LBA, так что надо в настройках поставить галку LBA и вбухать туда число секторов на всём винте (объём в байтах / 512)
Забавно, но у меня оно вообще повесилось после request hdd info
SAM style
23.05.2013, 18:08
Забавно, но у меня оно вообще повесилось после request hdd infoДаже евовское меню не вылезло?
SAM style
24.05.2013, 18:54
build 20130524 (git only)
Файлы образов (максимум 3 - SD-карта, винт мастер, винт слэйв) остаются открытыми в режиме "rb+" в рамках текущего профиля. При переключении на другой профиль они закрываются, открываются образы с нового профиля. Мне видится так лучше, чем постоянно держать открытыми все файлы со всех профилей.
И да, чтобы успешно открыться, они должны существовать. Край определяется по LBA/CHS. Попытка чтения за пределами файла, но в пределах объёма накопителя, выдаст FF на весь сектор, запись - расширит файл до нужного размера.
Q-Master
25.05.2013, 16:42
Даже евовское меню не вылезло?
Вообще висит наглухо.
---------- Post added at 16:42 ---------- Previous post was at 16:40 ----------
build 20130524 (git only)
Файлы образов (максимум 3 - SD-карта, винт мастер, винт слэйв) остаются открытыми в режиме "rb+" в рамках текущего профиля. При переключении на другой профиль они закрываются, открываются образы с нового профиля. Мне видится так лучше, чем постоянно держать открытыми все файлы со всех профилей.
И да, чтобы успешно открыться, они должны существовать. Край определяется по LBA/CHS. Попытка чтения за пределами файла, но в пределах объёма накопителя, выдаст FF на весь сектор, запись - расширит файл до нужного размера.
А почему rb+? скорее надо wb+ чтобы не переоткрывать для записи каждый раз.
Ну и совершенно правильно что один раз на профиль открываются они.
SAM style
25.05.2013, 17:34
А почему rb+? скорее надо wb+ чтобы не переоткрывать для записи каждый раз.
r+ - read/update: Open a file for update (both for input and output). The file must exist.
w+ - write/update: Create an empty file and open it for update (both for input and output). If a file with the same name already exists its contents are discarded and the file is treated as a new empty file.
При w+ содержимое существующего файла убивается
А с винтом... единственная идея - попробовать опять удалить cmos от этого профиля.
Q-Master
25.05.2013, 21:52
r+ - read/update: Open a file for update (both for input and output). The file must exist.
w+ - write/update: Create an empty file and open it for update (both for input and output). If a file with the same name already exists its contents are discarded and the file is treated as a new empty file.
При w+ содержимое существующего файла убивается
А с винтом... единственная идея - попробовать опять удалить cmos от этого профиля.
Уже пробовал. Не помогает. Что-то не нравится пзухе с винчестером и оно вешается.
SAM style
25.05.2013, 22:05
Уже пробовал. Не помогает. Что-то не нравится пзухе с винчестером и оно вешается.
Насколько помню по отладке, происходит следующее:
цилиндр устанавливается 0
даётся команда EС (идентификация)
если после этого цилиндр всё ещё 0 - это HDD, иначе выход
считывается буфер с идентификационными данными
проверяется наличие LBA - если нет, винт не принимается, выход
затем насильно устанавливается число головок и секторов на трек - при использовании LBA это никакого значения не имеет.
и всё... если все эти шаги пройдены - винт признаётся присутствующим в системе, больше обращений к нему до появления меню нет.
Q-Master
26.05.2013, 21:36
Насколько помню по отладке, происходит следующее:
цилиндр устанавливается 0
даётся команда EС (идентификация)
если после этого цилиндр всё ещё 0 - это HDD, иначе выход
считывается буфер с идентификационными данными
проверяется наличие LBA - если нет, винт не принимается, выход
затем насильно устанавливается число головок и секторов на трек - при использовании LBA это никакого значения не имеет.
и всё... если все эти шаги пройдены - винт признаётся присутствующим в системе, больше обращений к нему до появления меню нет.
Ну вот ты все разжевал, но у меня оно висит. Ну вот что я сделаю? При этом у меня есть суровые подозрения что проблема в самом образе. Да. Похоже что-то пзухе не нравится в образе который я сделал по твоей инструкции. На простом dd из /дев/зеро все ок.
SAM style
26.05.2013, 22:25
На простом dd из /дев/зеро все ок.
Открой образ hex-редактором, по смещению 0x100000 есть заголовок раздела? Ключевые слова mkdosfs, FAT32, This is not bootable disk. По смещению 0x100c00 должен быть его дубль. 0x104000 - первая таблица FAT (начинается с f8 ff ff 0f ff ff ff 0f f8 ff ff 0f). Может, был промах при запихивании отформатированного раздела в образ.
И ещё дай вывод команды p в fdisk на этом образе.
Q-Master
27.05.2013, 21:33
Открой образ hex-редактором, по смещению 0x100000 есть заголовок раздела? Ключевые слова mkdosfs, FAT32, This is not bootable disk. По смещению 0x100c00 должен быть его дубль. 0x104000 - первая таблица FAT (начинается с f8 ff ff 0f ff ff ff 0f f8 ff ff 0f). Может, был промах при запихивании отформатированного раздела в образ.
И ещё дай вывод команды p в fdisk на этом образе.
Забавно, но там FAT16 8) Может в этом проблема. Надо попробовать переделать образ.
Хм. Переделал. ФАТ32 стало и все в таком-же виде как и надо. Но висняк при старте. ЧЯДНТ?
SAM style
27.05.2013, 22:23
Забавно, но там FAT16 8) Может в этом проблема. Надо попробовать переделать образ.
Хм. Переделал. ФАТ32 стало и все в таком-же виде как и надо. Но висняк при старте. ЧЯДНТ?Подебажить и выяснить, на каком моменте висит и что ему надо в это время. Либо сектор читается криво, либо прошивка ждёт какого-то флага от винта (но тогда почему у меня не виснет?)
--
Воспроизвожу свои шаги по созданию образа
1.Запускаю этот скрипт - он создаст образ в 512М и положит туда форматированный раздел
#!/bin/sh
#make empty hdd image
dd if=/dev/zero of=hdd.img bs=1M count=512
#make empty partition
dd if=/dev/zero of=partition bs=1M count=511
#format partition
/sbin/mkfs.vfat partition
#put partition into image
dd if=partition of=hdd.img bs=1M seek=1
#remove partition file
rm partition
2.1
/sbin/fdisk hdd.img
o - создать пустую таблицу разделов
n - создать новый раздел
p - primary
1 - номер раздела
2048 - первый сектор раздела
[enter] - последний сектор раздела, по умолчанию конец образа
t - меняем тип раздела, номер раздела выбирается автоматом, т.к. он один.
l - список возможных типов
либо c - win95 fat32 lba
либо e - win95 fat16 lba
либо 6 - fat16
w - сохранить и выйти
либо 2.2
пройтись testdisk'ом по образу, он найдёт запихнутый раздел и "восстановит" структуру разделов
3.Запускаю Xpeccy:
PentEvo
IDE интерфейс Nemo
IDE master - HDD (ATA)
выбираю только созданный образ
поддержка LBA отмечена
LBA 1048576 (для 512М)
OK
Сброс.
Работает! В File browse можно выбрать HDDNemo:MASTER FAT16
Q-Master
28.05.2013, 22:16
Подебажить и выяснить, на каком моменте висит и что ему надо в это время. Либо сектор читается криво, либо прошивка ждёт какого-то флага от винта (но тогда почему у меня не виснет?)
Ну вот я не вчера родился. Ну да ладно, попробовал сделать все в точности по твоей инструкции. Результат тот-же.
Висячий кусок на скрине.
SAM style
28.05.2013, 23:31
Ну вот я не вчера родился. Ну да ладно, попробовал сделать все в точности по твоей инструкции. Результат тот-же.
Висячий кусок на скрине.
Начинается всё чуть раньше - загрузка сектора 0, его анализ, потом возможно загрузка 0 сектора раздела и его анализ. Жук где-то на этих шагах.
Закоммитил 20130528. Если собрать с отладкой, в консоль будут плеваться команды к HDD и номера считанных секторов. На этом самом месте вывалится в дебагер.
Попутно обнаружил, что для Евы не обязательно делать полный образ HDD с таблицей разделов. Достаточно поиметь раздел на весь образ, т.е просто отформатировать файл.
SAM style
31.05.2013, 20:09
Итоговый весенний build 20130531
тут был текст
[ deb x86 (http://yadi.sk/d/YwjJhcsm5N2I2) ][ deb amd64 (http://yadi.sk/d/PotpU8nz5N2Ko) ][ win32 (http://yadi.sk/d/DBszAHto5N2MW) ]
SAM style
31.05.2013, 20:17
Какая неточность?
В доках написано, что это последнее записаное в EFF7 значение. На деле получилось, что в 7FFD. Тест работает на реальной Еве, но не работал в прошлой версии Xpeccy, пока не поменял 0ABE и 0BBE
В доке все верно, это в старой версии SDK ошибка. Оно и на реале может не запуститься, в зависимости от того, какая скорость процессора в ERS стоит. Я просто не из той папки сборку запустил.
SAM style
31.05.2013, 20:35
В доке все верно, это в старой версии SDK ошибка. Оно и на реале может не запуститься, в зависимости от того, какая скорость процессора в ERS стоит. Я просто не из той папки сборку запустил.Ну офигеть теперь... :)
---------- Post added at 20:35 ---------- Previous post was at 20:25 ----------
Пересобрано обратно
SAM style
14.06.2013, 16:35
build 20130614 Загрузка *.spg. Проверено на Bomberman и Xonix. В Xonix после прохождения уровня картинка портится - пока нет информации, кто в этом виноват. Попутно в TSConf добавлены кемпстон-мыша и ковокс Найдена неточность в мапинге ПЗУ TSConf (попарно путались страницы, должно быть так: bios-trdos-128-48) Слегка ускорено засчет отпочкования отрисовки бордюра выше и ниже экрана.
[ deb x86 (http://yadi.sk/d/LgIsVtzT5oy2G) ][ deb amd64 (http://yadi.sk/d/cvu-UwhA5oy4c) ][ win32 (http://yadi.sk/d/bMhntafB5oy7K) ]
Q-Master
14.06.2013, 21:08
build 20130614 Загрузка *.spg. Проверено на Bomberman и Xonix. В Xonix после прохождения уровня картинка портится - пока нет информации, кто в этом виноват. Попутно в TSConf добавлены кемпстон-мыша и ковокс Найдена неточность в мапинге ПЗУ TSConf (попарно путались страницы, должно быть так: bios-trdos-128-48) Слегка ускорено засчет отпочкования отрисовки бордюра выше и ниже экрана.
[ deb x86 (http://yadi.sk/d/LgIsVtzT5oy2G) ][ deb amd64 (http://yadi.sk/d/cvu-UwhA5oy4c) ][ win32 (http://yadi.sk/d/bMhntafB5oy7K) ]
А кто есть spg?
Проверю новую сборку.
PS: винч таки не работает.
SAM style
14.06.2013, 21:32
А кто есть spg?
Проверю новую сборку.
PS: винч таки не работает.
spg - это "типа снапшот" для машин с большим объёмом памяти. В нём содержимое страниц, конфигурация памяти и точка входа, из регистров только PC и SP. [инфа 146% (http://tslabs.info/forum/viewtopic.php?f=9&t=148)]
Неработающий HDD не могу воспроизвести - УМВР (ну, кроме смука) - посему не могу исправить ошибку, которой я не вижу.
В Xonix после прохождения уровня картинка портится - пока нет информации, кто в этом виноват.
Картинка портится и в scl версии. Судя по этой картинке
http://f14.ifotki_.info/thumb/d30460b2f507ba55ed488d473810429ec383b0153953320.pn g (http://ifotki_.info/14/d30460b2f507ba55ed488d473810429ec383b0153953320.pn g.html)
копать надо в сторону DMA. Похоже после DMA пересылки указатели DMASAddr и DMADAddr остаются без изменения, поэтому в строке копируется один и тот же тайл.
SAM style
18.06.2013, 23:55
build 20130618 Исправлен DMA в TSConf После дня мучений я вылез из QApplication::exec(). Это дало некоторый прирост в скорости. Возможно, маленькие окошки (rzxPlayer и tapePlayer) пока не функционируют как надо. Выявились возможные падения SDL-версии при переключении профилей. Исправлено.[upd: ни разу не исправлено] Для линукса теперь собираю с отрисовкой по SDL, т.к по Qt кушает неимоверно, ради полутора плюшек слишком большие аппетиты.
[ deb x86 SDL (http://yadi.sk/d/eYZD5XsR5xw3a) ][ deb amd64 SDL (http://yadi.sk/d/mX6Ky2Rc5xw7Y) ][ win32 (http://yadi.sk/d/DnSR-UQ25xwAy) ]
[01:22] innsmouth на TSConf (что с spg, что с sсl) зависает на первых секундах игры. Что-то у меня кривовато...
[09:09] В XP проявляется неработоспособность
SAM style
21.06.2013, 21:28
build 20130621
Откат отрисовки бордюра отдельно от экрана. 2 дня потратил на то, чтобы понять, что это именно она вызывает падения под windows xp, причем только тогда, когда появляется что-то кроме главного окна. Под линуксом такого не наблюдалось.
[ win32 (http://yadi.sk/d/ZHioIqN6634Cv) ]
innsmouth на TSConf (что с spg, что с sсl) зависает на первых секундах игры.
Под виндой не зависает, но постоянно самопроизвольно срабатывает кнопка 'вниз'.
SAM style
21.06.2013, 22:33
Под виндой не зависает, но постоянно самопроизвольно срабатывает кнопка 'вниз'.У меня зависает, но только если идти направо. В остальные стороны нормально ходит.
Q-Master
23.06.2013, 00:24
Пентева прикольно ксоникс стала показывать
SAM style
23.06.2013, 01:12
Пентева прикольно ксоникс стала показыватьШо, опять? (c)
Какая ширина изображения в пикселях? На этой картинке 368 = #170, слишком кругло чтобы косить по прежней причине. Проявляется в обычном и двойном размере?
PS:Или это только в ega-режиме? Или только в ксониксе? Потаскал размер бордюра, у себя поймать не смог
sergio78
23.06.2013, 11:29
можно пару вопросов задам. ковыряюсь от нечего делеть, с минтом 15. как нынче дела с производительностью под это? так же интересно, как бы нарыть оптимальный ромсет, под этот эмуль. чтоб с пентагоном, пентевой, и скорпином в придачу, было. а то постаил из deb, а в комплекте только 48 биос оказался. хотелось бы проверенные рабочие варианты, а не из зоопарка существующих подбирать.
SAM style
23.06.2013, 11:39
можно пару вопросов задам. ковыряюсь от нечего делеть, с минтом 15. как нынче дела с производительностью под это? так же интересно, как бы нарыть оптимальный ромсет, под этот эмуль. чтоб с пентагоном, пентевой, и скорпином в придачу, было. а то постаил из deb, а в комплекте только 48 биос оказался. хотелось бы проверенные рабочие варианты, а не из зоопарка существующих подбирать.Идея как раз в том, чтобы пользователь сам делал, что ему надо, в дефолтной поставке только базовый вариант. Ссылка на конфиг и ромсеты в теме уже была - http://yadi.sk/d/b5gZSePz4rlY0. Свалить в ~/.config/samstyle/xpeccy и ~/.config/samstyle/xpeccy/roms соответственно
А производительность зависит от железа, а не от самой оси.
sergio78
23.06.2013, 17:50
Большое спасибо за ромы, линуксовый комп у меня слабенький, зато безвентиляторный. но надеюсь квакать и заикаться эмулируемое у меня не будет.
SAM style
23.06.2013, 19:47
комп у меня слабенький, зато безвентиляторный. но надеюсь квакать и заикаться эмулируемое у меня не будет.
:v2_rolley:v2_dizzy_messed:
sergio78
24.06.2013, 17:57
:v2_rolley:v2_dizzy_messed:
Да - АМД e-350. я все крутиляторы везде поснимал, проц до 1 гигагерца убавил. вместо жесткого, твердотельник поставил. красота, ничё не шумит, и сильнее 48 градусов, не нагревается. вообще я точил слюну, на Raspberry Pi. но жаба зажала три штуки за него платить, при такой его тормознутости. вот, в результате сколхозил на пк железках.
SAM style
24.06.2013, 23:05
Пентева прикольно ксоникс стала показыватьНашёл багу. Это было в ATM-EGA и Alco16c. Не отрисовывался бордюр, из-за чего всё остальное уезжало. Закоммититл.
Заодно в версии для окошек перешёл на потоки винапи - то ли после смены либы pthread на 2.9, то ли вообще, но потоки позикс в винде долго думали при создании - до десятка секунд на старте.
Да, интересно, будет ли тянуть на АМД e-350.
sergio78
25.06.2013, 18:03
Да, интересно, будет ли тянуть на АМД e-350.
cj, и гшост энд гоблинз на моём идут нормально.
Q-Master
25.06.2013, 22:17
Шо, опять? (c)
Какая ширина изображения в пикселях? На этой картинке 368 = #170, слишком кругло чтобы косить по прежней причине. Проявляется в обычном и двойном размере?
PS:Или это только в ega-режиме? Или только в ксониксе? Потаскал размер бордюра, у себя поймать не смог
1) Ничо не менял и в конфигах не трогал. Возможно бяда-бяда в пзу пентевы. Возможно оно у тя более новое.
2) Проявляется и в обычном и в двойном.
3) И в ксониксе и в робо. При этом tsevo (бомбер и квест фор мани) арбайт ок.
---------- Post added at 22:17 ---------- Previous post was at 22:15 ----------
Нашёл багу. Это было в ATM-EGA и Alco16c. Не отрисовывался бордюр, из-за чего всё остальное уезжало. Закоммититл.
Заодно в версии для окошек перешёл на потоки винапи - то ли после смены либы pthread на 2.9, то ли вообще, но потоки позикс в винде долго думали при создании - до десятка секунд на старте.
Странно. У нас на работе птреды в виндовой сборке юзаются. Проблем небыло.
SAM style
25.06.2013, 23:18
Странно. У нас на работе птреды в виндовой сборке юзаются. Проблем небыло.Вот и мне странно. На Win7 posix-threads работали, я всегда там собирал. Возможно, на WinXP и раньше всё висло, я просто был не в курсе. Одной dll-кой меньше, родные для винды потоки - хуже ведь не стало.
Q-Master
26.06.2013, 19:56
Вот и мне странно. На Win7 posix-threads работали, я всегда там собирал. Возможно, на WinXP и раньше всё висло, я просто был не в курсе. Одной dll-кой меньше, родные для винды потоки - хуже ведь не стало.
Не стало конечно-же. Поддерживать только сложнее разве.
SAM style
13.07.2013, 15:17
build 20130713 TSConf: починено неверное отображение тайлов в нижней половине карты - туда по ошибке дублировалась верхняя половина
А я в отпуск
[ deb x86 SDL (http://yadi.sk/d/UNEesvPD6mBAZ) ][ deb amd64 SDL (http://yadi.sk/d/aH7_-b3z6mBDB) ][ win32 (http://yadi.sk/d/po3n8TSe6mBCn) ]
SAM style
02.08.2013, 15:00
build 20130802 NVRAM в SMUC. В профПЗУ получилось разметить винт, создать в разделе 51 виртуальный диск, присоединить один на A:, отформатировать и скопировать на него файл с реального диска. Жуки возможны и принимаются. Содержимое (2Кб) сохраняется в каталог конфигов в файле ${PROFILE_NAME}.nvram при закрытии эмулятора, но только для тех профилей, у которых есть SMUC. Починено сохранение в конфиг объёма SD-карты.
[ deb x86 SDL (http://yadi.sk/d/6VEVpbgD7UqVR) ][ deb amd64 SDL (http://yadi.sk/d/38DQWJL37Uq_f) ][ win32 (http://yadi.sk/d/gVclwBxu7UqfF) ]
shuran33
03.08.2013, 20:23
SAM style, нужна помощь с установкой, инструкцию бы простенькую.
Эмуль установился, запускается, в меню могу только 48k выбрать.
---------- Post added at 20:23 ---------- Previous post was at 20:23 ----------
в линуксе не силен...
SAM style
03.08.2013, 21:40
SAM style, нужна помощь с установкой, инструкцию бы простенькую.
Эмуль установился, запускается, в меню могу только 48k выбрать.
---------- Post added at 20:23 ---------- Previous post was at 20:23 ----------
в линуксе не силен...
Если по быстрому, скачать это - http://yadi.sk/d/b5gZSePz4rlY0 и положить в ~/.config/samstyle/xpeccy. Тогда появятся и другие ромсеты. По умолчанию там только ромсет для 48К, добавление остальных возложено на пользователя. Как они добавляются, я уже несколько раз в этой теме рассказывал.
Ещё надо полазать в настройках и включить как минимум BetaDisk, чтобы работал TRDOS
update. Добавил в первый пост краткую инструкцию, как создать свой ромсет
sergio78
10.08.2013, 07:06
а нельзя в дистрибутив всё сразу запихать. очень многие люди файловую систему линукса не осваивают, и лазить через mc в ~/.config/samstyle/xpeccy, подобно хождению вслепую по минному полю. было бы просто замечательно, если бы из deb, методом простого тыка по нему, всё что надо ставилось.
SAM style
11.08.2013, 10:09
лазить через mc в ~/.config/samstyle/xpeccy, подобно хождению вслепую по минному полю.Что сложного в копировании файлов из одного каталога в другой?
build 20130810 Evo Baseconf : текстовый режим в одной странице Evo TSConf : текстовый режим и его вертикальный скролл. Evo TSConf : Вывод в порты 00AF..05AF и 07AF вступает в силу с начала следующей строки
Попутно в TSConf обнаружилось, что я что-то не понимаю. На скрине - тест с 3 видео режимами в одном кадре, сверху должен быть скролл 4bpp.
[ deb x86 SDL (http://yadi.sk/d/Pru5MqIt7m6fi) ][ deb amd64 SDL (http://yadi.sk/d/MjJIv2Ve7m6hk) ][ win32 (http://yadi.sk/d/muYJRA7Q7m6jQ) ]
ДМА реализована? Верхний скролл копипастится ДМОй.
---------- Post added at 17:27 ---------- Previous post was at 17:19 ----------
Да, по сорцам вроде вижу, что реализована. Попробую установить кьют и подебажить дему в эмуле.
---------- Post added at 17:52 ---------- Previous post was at 17:27 ----------
На всякий случай, опишу, как робит демко:
1. На строке 7(+32 если щитать с верт бланка) включается графика 16с, рамка 360 по горизонтали.
2. Со строки 8(+32) начинается рисование экранки 16с, с 0 линии, 32 линии.
3. На строке 47(+32) включается рамка 256х192 и режим 6912, что означает, что с этого места еще 8 строк будет бордер и обнуляется счетчик линий, чтоб рисовало опять с 0 линии.
4. Дальше 6912 до нижнего бордера, где включается 360 и текстмод.
Загрузчик демы не дружит с Бейсиком128, надо или через USR0 запускать, или фиксить загрузчик.
SAM style
17.08.2013, 19:31
Загрузчик демы не дружит с Бейсиком128, надо или через USR0 запускать, или фиксить загрузчик.
У меня осталась какая-то проблема с вертикальными смещениями, как это было в тесте с картинкой Марио. Пока что скролл получил, но в виде вертикальных цветных полос.
TSL, где кроме сырцов прошивки можно подглядеть дешифрацию портов. Например, при запуске в биос встречается такое:
5C92 XOR A
5C93 OUT (F7),A
5C95 IN A,(F7)
5C97 CP 1E
5C99 JR Z,5C9E
5C9B CP 1F
5C9D RET NZ
5C9E RST8
Дебажил в unreal-е с твоей конфой, в этот момент DOS отключен, по сырцам порты xxF7 выбираются с A8=1. Непонятно, во что ведёт порт 00F7?
if( !a[14] && (a[8]^shadow) && gluclock_on ) // $BFF7 - data i/o
...
assign portf7_wr = ((loa==PORTF7) && (a[8]==1'b1) && port_wr && (!shadow)) || ((loa==PORTF7) && (a[8]==1'b0) && port_wr && shadow) ;
sergio78
18.08.2013, 12:21
Что сложного в копировании файлов из одного каталога в другой?
Мне уже сложно это делать. а состарюсь ещё, может буду как мама, телефонные номера на бумаге записывать. к тому же, у меня MC часто после обновления отваливается.:v2_dizzy_tired2:
SAM style
18.08.2013, 12:28
build 20130818 Добавлен интерфейс NemoEvo, в BaseConf и TSConf для корректной работы должен быть выставлен он. Теперь и запись правильная. TSConf : добавлены порты SPI/SDCard и IDE/HDD. С образа SD-карточки получилось запустить WC0.40. TSConf : вытащил из прошивки дешифрацию портов xxF7 и xxFD. TSConf : реализована защелка 128/512K в порту 21AF. TSConf : разобрался со смещениями. Тест с 3 режимами в кадре работает, тест с гепардом работает, тест с палитрой работает. В меню появился пункт PC keyboard. Если он активен, эмулятор сам не реагирует ни на какую клавишу, кроме F12, всё со сканкодами отправляется в эмулируемую машину.
Между делом Innsmouth заработал.
[ deb x86 SDL (http://yadi.sk/d/_o-CqN4y82VNd) ][ deb amd64 SDL (http://yadi.sk/d/Qs6uOezp82VuB) ][ win32 (http://yadi.sk/d/yeZnYR9R82W-1) ]
SAM style
18.08.2013, 18:14
С NemoEvo чтение нормально работает, запись путает старший-младший байты. Формирование буфера и скидывание его в файл реализованы верно - в SMUC оно работает. В процессе разбора.
Разбор закончен. В режиме divide сначала надо писать младший байт данных, потом старший, после чего всё передаётся hdd. Во всех остальных реализациях наоборот - сначала пишется старший, потом младший. В процессе починки.
Q-Master
18.08.2013, 19:26
С NemoEvo чтение нормально работает, запись путает старший-младший байты. Формирование буфера и скидывание его в файл реализованы верно - в SMUC оно работает. В процессе разбора.
Разбор закончен. В режиме divide сначала надо писать младший байт данных, потом старший, после чего всё передаётся hdd. Во всех остальных реализациях наоборот - сначала пишется старший, потом младший. В процессе починки.
Потрогал новую версию. В режиме пентевы на немоево так-же вешается в момент ресета при наличии иде образа как и раньше.
SAM style
18.08.2013, 20:39
Потрогал новую версию. В режиме пентевы на немоево так-же вешается в момент ресета при наличии иде образа как и раньше.Нижнааааю я, умвр. Завтра нарисую тебе тестовый образ HDD и тест чтения с него, будем выяснять. Кстати, это только HDD так крючит или SD-карту тоже? И будет ли нерабочим этот образ в TSConf (он только FAT32 признаёт)?
Перезалил сборки. NemoEvo начало нормально писать. В юзер-меню можно включить эмуляцию PC-клавиатуры - эмулятор не будет реагировать ни на что, кроме F12, зато ESC, F1...F11 и оба ALT будут слать сканкоды в эмулируемую машину.
дема с шариками (http://tslabs.info/forum/viewtopic.php?f=8&t=152) у меня как-то странно работает. На видео 3 шара, у меня - целый шлейф, причём начинается то поверх всего, то между решётками, то вообще под ними.
SAM style
19.08.2013, 20:51
Завтра нарисую тебе тестовый образ HDD и тест чтения с него, будем выяснять.В архиве : а) тестовый образ в 2Кб, первый сектор заполнен 01.02.03...FE.FF.FF.FE...02.01, остальные нулями; б) исходник теста в формате sjasm-а; в) снапшот с этим тестом
Тест делает следующее: синий бордюр, ждём нажатия-отпускания клавиши, заполняем в памяти 512 байт по образцу первого сектора в образе, считываем в режиме LBA первый сектор (LBA 0), сравниваем с заполненным образцом, записываем образец во 2й сектор (LBA 1), считываем записанное обратно и снова сравниваем с образцом. Если всё хорошо - зелёный бордюр и 3 окрашенных знакоместа. Если ошибка при сравнении - красный бордюр. Цвета знакомест: голубое - чтение, красное - запись+чтение, зелёное - конец. Если произошла ошибка, по этим знакоместам можно определить, на каком шаге.
Тест действует на NemoEvo.
Q-Master
19.08.2013, 21:28
В архиве : а) тестовый образ в 2Кб, первый сектор заполнен 01.02.03...FE.FF.FF.FE...02.01, остальные нулями; б) исходник теста в формате sjasm-а; в) снапшот с этим тестом
Тест делает следующее: синий бордюр, ждём нажатия-отпускания клавиши, заполняем в памяти 512 байт по образцу первого сектора в образе, считываем в режиме LBA первый сектор (LBA 0), сравниваем с заполненным образцом, записываем образец во 2й сектор (LBA 1), считываем записанное обратно и снова сравниваем с образцом. Если всё хорошо - зелёный бордюр и 3 окрашенных знакоместа. Если ошибка при сравнении - красный бордюр. Цвета знакомест: голубое - чтение, красное - запись+чтение, зелёное - конец. Если произошла ошибка, по этим знакоместам можно определить, на каком шаге.
Тест действует на NemoEvo.
Вот ты будешь смеяться, но в тсконфе все арбайт по стахановски. Твой тест тоже проходит на раз-два. А вот в бэйзконфе вешается наглухо в новосозданом имадже и не виснет на твоем. ЧЯДНТ?
SAM style
19.08.2013, 22:08
Вот ты будешь смеяться, но в тсконфе все арбайт по стахановски. Твой тест тоже проходит на раз-два. А вот в бэйзконфе вешается наглухо в новосозданом имадже и не виснет на твоем. ЧЯДНТ?Возникло одно подозрение - BaseConf читает с использованием обеих режимов (Nemo и DivIDE), WC в TSConf - только через DivIDE. Проверю ещё раз. (Я тут заметил, что FAT32 винт BaseConf определяет как FAT12, хотя каталоги читает правильно)
А скинь скриншот демы с шариками плз.
SAM style
20.08.2013, 00:27
А скинь скриншот демы с шариками плз.
Вот пара. На первом головной шар поверх решетки, на втором - между слоями. Бывает, вся змейка сзади, только ловить сейчас влом. Двигаются вполне упорядочено, будто так и должно быть. Похоже, я как-то не так распознаю переход на следующий слой спрайтов... (ога, уже нашёл)
Ну, дас ист фантастиш.
Тут 3 слоя по 8 шариков на каждом. Решетки должны быть между слоями шариков.
Т.е. всего 6 слоев - графика + шары + вертикальная решетка + шары + горизонтальная + шары.
Это версия для отладки циклов памяти, там еще кнопочки 1-0 работают.
Смысл в том, что без включенного кеша на железе видеопроц не выгребает по циклам, и демку должно колбасить. Кстати, в моей ветке анрыла это уже эмулируется %)
SAM style
21.08.2013, 15:09
build 20130821 Исправлена команда записи нескольких секторов на SD-карту. В WC стало возможно оперировать на ней с файлами. TSConf : VirtualDOS. Работает не совсем как надо - TRD-образы с HDD и SDCard монтируются и на чтение работают хорошо. Запись в них портит образы. SCL-образы монтируются в RAM-диск, но чтение идёт с глюками. TSConf : починено разделение слоёв спрайтов.
[ deb x86 SDL (http://yadi.sk/d/vaBCv11p8ALjN) ][ deb amd64 SDL (http://yadi.sk/d/Q766HI5H8ALmP) ][ win32 (http://yadi.sk/d/zww0ervg8ALq3) ]
SAM style
22.08.2013, 23:16
Хм... TSL, твой анрил не умеет в vdos или я что-то не то делаю?
Хотел проверить - это у меня запись в образы глючит, или вообще.
Присобачил SСL и TRD в WC, но тырдосина пишет, что диска нет. Трапы на ВГ убирал - не помогает.
Пытался прошить свою Еву - получил черный экран. Пробовал 2 разные прошивки TSConf. BaseConf шьётся нормально. В ПЗУ закачана общая для 2 конф.
Хм... TSL, твой анрил не умеет в vdos или я что-то не то делаю?
В анриле нет vdos
Пытался прошить свою Еву - получил черный экран.
А с прошивкой TSConf на бейзконфу переключается (CTRL+ALT+F12), или тоже черный экран?
Мой анрыл НЕ умеет вдос, потому что там с вг93 довольно нетривиальная муть. С наскоку впилить не получилось.
Насчет евы - проблем быть не должно. Прошиву для АВР бери с хед ревижна. Прошива ПЗУ не менялась довольно давно, тоже с хед.
Правый шифт на клаве (SS) плюс Ф12 - вход в настройки биоса, там посмотри что может быть не так.
SAM style
23.08.2013, 00:21
Всё, дошло. Надо было жать правый шифт... Работает.
SAM style
23.08.2013, 17:27
build 20130823 TSConf : vdos побеждён. С HDD примонтировался SCL, игра с него загрузилась. На пустой TRD файл скопировался без глюков. TSConf : Ещё один потерянный бит - текстовый режим отображал только 32 строки. Теперь все 64.
[ deb x86 SDL (http://yadi.sk/d/bavJrZRl8F6HO) ][ deb amd64 SDL (http://yadi.sk/d/V1x1XgR-8F6KA) ][ win32 (http://yadi.sk/d/f5LzDeZL8F6NC) ]
Гы, я тоже этот бит протерял в первой реализации в анрыле )
Не работает DMA RAM->CRAM и RAM->SFILE.
http://f15.ifotki_.info/thumb/cf749843f30d30c573f34760deb9ac86c383b0159926707.pn g (http://i-fotki.info/15/cf749843f30d30c573f34760deb9ac86c383b0159926707.pn g.html)
SAM style
23.08.2013, 18:15
Не работает DMA RAM->CRAM и RAM->SFILE.
http://f15.ifotki_.info/thumb/cf749843f30d30c573f34760deb9ac86c383b0159926707.pn g (http://i-fotki.info/15/cf749843f30d30c573f34760deb9ac86c383b0159926707.pn g.html)
Работает только RAM->RAM, насчет остального нужны более подробные разъяснения - где это находится, как адреса высчитываются и как влияет на работу.
Ну гуд, CRAM - это палитра, SFILE - описелово спрайтов. Адреса в них из каких регистров берутся?
Оба файла - это внутренняя память альтеры. Она врайт-онлы. Для доступа туда есть FMAddr, который открывает окно на запись с адреса (в пространстве з80) #nххх, где n - 4 бита выбираются в порту, ххх - #0 для палитры и #200 для сфайла. Если будет ОЗУ по выбранному адресу (а не ПЗУ, что тоже ОК), то его можно использовать для рид-модифай-райт, ибо оно будет хранить копию того, что улетело в ФПРАМ.
В случае ДМА, адрес для ФПРАМ берется в особо крупном размере 9 бит (точнее 8, ибо бит 0 = 0) из Dest, т.е. дмить можно не все 512 байт.
SAM style
23.08.2013, 21:37
В случае ДМА, адрес для ФПРАМ берется в особо крупном размере 9 бит (точнее 8, ибо бит 0 = 0) из Dest, т.е. дмить можно не все 512 байт.
Вот так?
ADR = (DstL & 0xfe) | ((DstH & 1) * 256); DstX не участвует.
Соответственно, для CRAM будет ADR, для SFILE = ADR + 0x200
Объём пересылаемого = DNum блоков по (DLen * 2) байт, адрес за пределы своих 512байт не вылезает, выравнивание по 256/512 байт тоже действует?
Не совсем так.
В железе оба файла лежат в альтере, в эмуле - в отдельных массивах.
В обеих случаях они НЕ лежат в ОЗУ машины.
То что я описал:
1. Для доступа к ним зетника (онлы на запись) надо спроецировать их на ОЗУ з80 (открыть окно).
2. При работе ДМА адресное пространство з80 вообще ни при чем.
u16 *ADR = ((DstH & 1) << 8) | (DstL & 0xfe)) >> 1;
И этот ADR выбирает куда в в соотв. файле (в штуке альтеры) писать 16-битные слова из РАМы.
---------- Post added at 20:49 ---------- Previous post was at 20:45 ----------
u8 RAM[4*1024*1024];
u16 CRAM[256];
CRAM[((DstH & 1) << 8) | (DstL & 0xfe)) >> 1] = RAM[Src] | (RAM[Src+1] << 8);
SAM style
23.08.2013, 22:04
Не совсем так.
В железе оба файла лежат в альтере, в эмуле - в отдельных массивах.
В обеих случаях они НЕ лежат в ОЗУ машины.
То что я описал:
1. Для доступа к ним зетника (онлы на запись) надо спроецировать их на ОЗУ з80 (открыть окно).
2. При работе ДМА адресное пространство з80 вообще ни при чем.
u16 *ADR = ((DstH & 1) << 8) | (DstL & 0xfe)) >> 1;
И этот ADR выбирает куда в в соотв. файле (в штуке альтеры) писать 16-битные слова из РАМы.
---------- Post added at 20:49 ---------- Previous post was at 20:45 ----------
u8 RAM[4*1024*1024];
u16 CRAM[256];
CRAM[((DstH & 1) << 8) | (DstL & 0xfe)) >> 1] = RAM[Src] | (RAM[Src+1] << 8);
Ну, вроде как ясно. У меня это одним целым куском вне ОЗУ - без DMA и с проецированием запись туда работает.
Blade, а можно ссылку на штуку с картинки? Проверять на ней буду.
http://tslabs.info/forum/viewtopic.php?f=27&t=255
---------- Post added at 22:12 ---------- Previous post was at 22:12 ----------
Вообще, форум довольно упорядочен по разделам. Если чо, ищи там. )
SAM style
23.08.2013, 23:41
Подглядел в анриле. Вроде, получилось.
SAM style
05.09.2013, 16:52
Я чего-то не понимаю в медленной памяти. Делаю по этим буквицам - http://www.worldofspectrum.org/faq/reference/48kreference.htm#Contention и вроде бы паттерн на NOP-ах получается таким же - задержки начинаются с такта 14335 (см.картинку). Но в Fuse он смещен на такт вперед и начинается с 14336 - это без late timing, с ним ещё на такт дальше. Почему так?
Q-Master
23.10.2013, 22:01
@SAM style: не подскажешь как в режиме ATM2 запустить вот это: http://atmturbo.nedopc.com/download/cpm/games/king/king.zip ?
SAM style
23.10.2013, 22:26
@SAM style: не подскажешь как в режиме ATM2 запустить вот это: http://atmturbo.nedopc.com/download/cpm/games/king/king.zip ?Это образ диска CP/M. В новом xBIOS в первые 5 секунд жмешь space, выбираешь пункт CP/M, там переходишь на диск B (команда B: ) и запускаешь (KING). В старом ПЗУ АТМ2 в стартовом меню есть пункт CP/M - далее то же самое (B: enter KING enter). При этом сам образ должен быть в дискокруте А.
xBios
xBIOS или eXtra BIOS.
SAM style
27.10.2013, 11:48
Просьба тех, у кого 64-битный RPM-дистрибутив, проверить работоспособность приложенного пакета, особенно нестыковки по зависимостям.
Пакет собран силами модуля CPackRPM из CMake на зачрутенной 64-битной Suse12.1 (32-битная чрутиться не хочет). У меня он собрался, установился, запустился.
в свете обсуждения сабжа в теме про "атм, эву и прочее" по части работы с атм, родился вопрос: можно ли средствами эмулятора делать различные конфиги компа и потом эти конфиги сохранять в файл, который эмулятор будет кушать?
SAM style
12.11.2013, 17:38
в свете обсуждения сабжа в теме про "атм, эву и прочее" по части работы с атм, родился вопрос: можно ли средствами эмулятора делать различные конфиги компа и потом эти конфиги сохранять в файл, который эмулятор будет кушать?В принципе, это и есть то, что в Xpeccy называется профилями - у каждого профиля свой спектрум, независимый от других. В запущенном эмуляторе все они существуют одновременно, но работает только текущий, остальные "на паузе". У каждого профиля автоматически создаётся отдельный файл конфига, их не надо скармливать эмулятору, он сам их кушает.
Когда переключаешь профиль (правая кнопка мыши - profiles), текущий ставится на паузу, новый снимается с паузы. Потом можно вернуться на старый профиль и продолжить работать с ним, данные там не потеряются.
Если я объяснять не умею - предлагаю поэкспериментировать. Сделать профиль помимо default, сконфигурировать там спек и поочерёдно что-то делать то в одном профиле, то в другом, переключаясь через UserMenu.
я имел в виду, профиль сохраняется одним файлом, включая rom'ы? :)
SAM style
12.11.2013, 18:12
я имел в виду, профиль сохраняется одним файлом, включая rom'ы? :)
Из названий rom-файлов строятся ромсеты (в какую страницу ПЗУ что класть, что в GS, что в знакогенераторе ATM2) - это глобальный набор.
В каждом профиле определено, какой из ромсетов он использует, в конфиге сохраняется только название. При старте эмулятора по этому названию из набора выбирается тот ромсет, который будет запихнут в ПЗУ этого профиля.
ram_scan
14.02.2014, 13:37
Собрал крайний снапшот под Linux linux-kdm 2.6.37.6-0.20-default #1 SMP 2011-12-19 23:39:38 +0100 i686 i686 i386 GNU/Linux
Нажал Alt+2
Эмулятор немедленно упал. Диагностика под спойлером.
dmitry@linux-kdm:~/Xpeccy> ./xpeccy
Using Qt painter
Using SDL ver 1.2.14
Using Qt ver 4.7.1
Using z80ex ver 1.19
*** glibc detected *** ./xpeccy: free(): invalid next size (normal): 0x085fead0 ***
======= Backtrace: =========
/lib/libc.so.6(+0x6de2b)[0xb6772e2b]
/lib/libc.so.6(+0x6ebab)[0xb6773bab]
/lib/libc.so.6(cfree+0x6d)[0xb6777a6d]
/usr/lib/libQtGui.so.4(_ZN10QImageDataD2Ev+0xd8)[0xb6e51ff8]
/usr/lib/libQtGui.so.4(_ZN6QImageaSERKS_+0x53)[0xb6e52083]
./xpeccy(_ZN7MainWin12updateWindowEv+0x8a)[0x8062d5a]
./xpeccy(_ZN7MainWin13keyPressEventEP9QKeyEvent+0x1e c)[0x806400c]
/usr/lib/libQtGui.so.4(_ZN7QWidget5eventEP6QEvent+0x31f)[0xb6de142f]
/usr/lib/libQtGui.so.4(_ZN19QApplicationPrivate13notify_hel perEP7QObjectP6QEvent+0xc4)[0xb6d86414]
/usr/lib/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6 QEvent+0xae8)[0xb6d8fa68]
/usr/lib/libQtCore.so.4(_ZN16QCoreApplication14notifyIntern alEP7QObjectP6QEvent+0x8e)[0xb6b0afbe]
/usr/lib/libQtGui.so.4(+0x13d36d)[0xb6d8436d]
/usr/lib/libQtGui.so.4(+0x1f10be)[0xb6e380be]
/usr/lib/libQtGui.so.4(+0x1f158c)[0xb6e3858c]
/usr/lib/libQtGui.so.4(_ZN12QApplication15x11ProcessEventEP 7_XEvent+0x6e2)[0xb6e111b2]
/usr/lib/libQtGui.so.4(+0x1f5960)[0xb6e3c960]
/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1e9)[0xb6644509]
/lib/libglib-2.0.so.0(+0x44d10)[0xb6644d10]
/lib/libglib-2.0.so.0(g_main_context_iteration+0x6e)[0xb6644fce]
/usr/lib/libQtCore.so.4(_ZN20QEventDispatcherGlib13processE ventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0 x6b)[0xb6b3974b]
/usr/lib/libQtGui.so.4(+0x1f555a)[0xb6e3c55a]
/usr/lib/libQtCore.so.4(_ZN16QCoreApplication13processEvent sE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x43)[0xb6b0f133]
./xpeccy(main+0x32c)[0x806aa4c]
/lib/libc.so.6(__libc_start_main+0xfe)[0xb671bc2e]
./xpeccy[0x8062821]
======= Memory map: ========
08048000-0817e000 r-xp 00000000 08:01 28599309 /home/dmitry/Xpeccy/build/xpeccy
0817e000-0817f000 r--p 00135000 08:01 28599309 /home/dmitry/Xpeccy/build/xpeccy
0817f000-08184000 rw-p 00136000 08:01 28599309 /home/dmitry/Xpeccy/build/xpeccy
08184000-087e9000 rw-p 00000000 00:00 0 [heap]
ad4a6000-ad4db000 r--s 00000000 08:01 8684752 /var/run/nscd/passwd
ad4db000-ad730000 r--s 00000000 08:01 8710246 /var/tmp/kdecache-dmitry/ksycoca4
ad730000-ad731000 ---p 00000000 00:00 0
ad731000-adf31000 rw-p 00000000 00:00 0
adf31000-adf51000 rw-s 00000000 00:04 5931010 /SYSV0056a4d6 (deleted)
adf51000-adf71000 rw-s 00000000 00:05 4501 /dev/snd/pcmC0D0p
adf71000-adf72000 ---p 00000000 00:00 0
adf72000-ae772000 rw-p 00000000 00:00 0
ae772000-ae773000 ---p 00000000 00:00 0
ae773000-aef73000 rw-p 00000000 00:00 0
aef73000-aef83000 r-xp 00000000 08:01 1894149 /usr/lib/kde4/plugins/imageformats/kimg_xcf.so
aef83000-aef84000 r--p 0000f000 08:01 1894149 /usr/lib/kde4/plugins/imageformats/kimg_xcf.so
aef84000-aef85000 rw-p 00010000 08:01 1894149 /usr/lib/kde4/plugins/imageformats/kimg_xcf.so
aef85000-aef89000 rw-p 00000000 00:00 0
aef89000-aefd6000 r-xp 00000000 08:01 27132161 /usr/lib/libjasper.so.1.0.0
aefd6000-aefd7000 r--p 0004c000 08:01 27132161 /usr/lib/libjasper.so.1.0.0
aefd7000-aefda000 rw-p 0004d000 08:01 27132161 /usr/lib/libjasper.so.1.0.0
aefda000-aefe0000 rw-p 00000000 00:00 0
aefe6000-aefea000 r-xp 00000000 08:01 2015862 /usr/lib/alsa-lib/libasound_module_rate_speexrate.so
aefea000-aefeb000 r--p 00003000 08:01 2015862 /usr/lib/alsa-lib/libasound_module_rate_speexrate.so
aefeb000-aefec000 rw-p 00004000 08:01 2015862 /usr/lib/alsa-lib/libasound_module_rate_speexrate.so
aefec000-aeff0000 r-xp 00000000 08:01 1894150 /usr/lib/kde4/plugins/imageformats/kimg_xview.so
aeff0000-aeff1000 r--p 00003000 08:01 1894150 /usr/lib/kde4/plugins/imageformats/kimg_xview.so
aeff1000-aeff2000 rw-p 00004000 08:01 1894150 /usr/lib/kde4/plugins/imageformats/kimg_xview.so
aeff2000-aeff7000 r-xp 00000000 08:01 1894147 /usr/lib/kde4/plugins/imageformats/kimg_tga.so
aeff7000-aeff8000 r--p 00004000 08:01 1894147 /usr/lib/kde4/plugins/imageformats/kimg_tga.so
aeff8000-aeff9000 rw-p 00005000 08:01 1894147 /usr/lib/kde4/plugins/imageformats/kimg_tga.so
aeff9000-af000000 r-xp 00000000 08:01 1892544 /usr/lib/kde4/plugins/imageformats/kimg_pcx.so
af000000-af001000 r--p 00006000 08:01 1892544 /usr/lib/kde4/plugins/imageformats/kimg_pcx.so
af001000-af002000 rw-p 00007000 08:01 1892544 /usr/lib/kde4/plugins/imageformats/kimg_pcx.so
af002000-af044000 r-xp 00000000 08:01 1813079 /usr/lib/libHalf.so.6.0.0
af044000-af045000 r--p 00041000 08:01 1813079 /usr/lib/libHalf.so.6.0.0
af045000-af046000 rw-p 00042000 08:01 1813079 /usr/lib/libHalf.so.6.0.0
af046000-af05d000 r-xp 00000000 08:01 1814507 /usr/lib/libIex.so.6.0.0
af05d000-af05f000 r--p 00017000 08:01 1814507 /usr/lib/libIex.so.6.0.0
af05f000-af060000 rw-p 00019000 08:01 1814507 /usr/lib/libIex.so.6.0.0
af060000-af133000 r-xp 00000000 08:01 1812863 /usr/lib/libIlmImf.so.6.0.0
af133000-af135000 r--p 000d2000 08:01 1812863 /usr/lib/libIlmImf.so.6.0.0
af135000-af136000 rw-p 000d4000 08:01 1812863 /usr/lib/libIlmImf.so.6.0.0
af136000-af137000 rw-p 00000000 00:00 0
af137000-af199000 r-xp 00000000 08:01 27132787 /usr/lib/libtiff.so.3.9.4
af199000-af19b000 r--p 00061000 08:01 27132787 /usr/lib/libtiff.so.3.9.4
af19b000-af19c000 rw-p 00063000 08:01 27132787 /usr/lib/libtiff.so.3.9.4
af19c000-af1d2000 r-xp 00000000 08:01 1814408 /usr/lib/liblcms.so.1.0.19
af1d2000-af1d3000 r--p 00035000 08:01 1814408 /usr/lib/liblcms.so.1.0.19
af1d3000-af1d4000 rw-p 00036000 08:01 1814408 /usr/lib/liblcms.so.1.0.19
af1d4000-af1d6000 rw-p 00000000 00:00 0
af1d6000-af25b000 r-xp 00000000 08:01 1814371 /usr/lib/libmng.so.1.1.0.10
af25b000-af25d000 r--p 00085000 08:01 1814371 /usr/lib/libmng.so.1.1.0.10
af25d000-af25e000 rw-p 00087000 08:01 1814371 /usr/lib/libmng.so.1.1.0.10
af25e000-af2a0000 r-xp 00000000 08:01 1810702 /usr/lib/libjpeg.so.62.0.0
af2a0000-af2a1000 r--p 00041000 08:01 1810702 /usr/lib/libjpeg.so.62.0.0
af2a1000-af2a2000 rw-p 00042000 08:01 1810702 /usr/lib/libjpeg.so.62.0.0
af2a2000-af2b2000 rw-p 00000000 00:00 0
af2b2000-b022f000 rw-s 00000000 08:01 8709943 /var/tmp/kdecache-dmitry/kpc/kde-icon-cache.data
b022f000-b0c3a000 rw-s 00000000 08:01 8708898 /var/tmp/kdecache-dmitry/icon-cache.kcache
b0c3a000-b0c3b000 ---p 00000000 00:00 0
b0c3b000-b143b000 rw-p 00000000 00:00 0
b143b000-b1440000 r-xp 00000000 08:01 1814134 /usr/lib/libIlmThread.so.6.0.0
b1440000-b1441000 r--p 00004000 08:01 1814134 /usr/lib/libIlmThread.so.6.0.0
b1441000-b1442000 rw-p 00005000 08:01 1814134 /usr/lib/libIlmThread.so.6.0.0
b1443000-b144c000 r-xp 00000000 08:01 1894116 /usr/lib/kde4/plugins/imageformats/kimg_rgb.so
b144c000-b144d000 ---p 00009000 08:01 1894116 /usr/lib/kde4/plugins/imageformats/kimg_rgb.so
Flash мыргает с бешенной скоростью. Клавиатура опрашивается "неуверенно". Приходится два-три раза клавишу тыкать чтоб сработало. Что-то поломали с давних времен однако.
SAM style
14.02.2014, 13:56
С изменением размера окна давно были проблемы, но всегда только с SDL. Первый раз вижу, чтобы Qt-шная сборка на нормальной скорости на этом завалилась...
Быстро мигающий flash - либо эмуль работает на полной скорости (если заголовке есть "fast", выжми Alt+3, чтобы отключить), либо с таймером какая-то беда.
Ха, только что сам завалил Qt-шную сборку на полной скорости переключением размера окна...
ram_scan
18.02.2014, 12:15
Еще у меня есть основания полагать что push reg при sp=#4002 работает неправильно.
В память значение заносится, и это видно в отладчике. Но вот на экране в первых двух байтах тем не менее остается дырка.
Образец кода под спойлером, сборка sjasmplus
MACRO ROMCALL addr
ld sp,$+8
call addr
dw ($+2)
ENDM
ld a,%00000001
RunningBitLoop_1:
ld l,a
ld h,a
ld bc,#6000
ld ix,0
ROMCALL FillMemPatternW
rlc a
jr nc,RunningBitLoop_1
FillMemPatternW:
pop iy
ld sp,ix
FillMemPatternWLoop:
push hl
dec c
jr nz,FillMemPatternWLoop
djnz FillMemPatternWLoop
jp (iy)
45847
SAM style
18.02.2014, 12:57
Хитрожопый код сам себя затирает. Где он должен располагаться?
Вот это работает правильно:
di
ld sp,0x4002
ld hl,0x01ff
push hl
jr $
Только что заметил, что при отладке экран перестал перерисовываться...
ram_scan
19.02.2014, 05:19
Хитрожопый код сам себя затирает. Где он должен располагаться?
Код расположен в ROM, именно поэтому такой возврат чудесный из процедур делается. Конкретно - пишу тест памяти под свои скромные нужды на реале.
Грабля вылезает даже если не входить в отладчик.
Вот бинарник на котором грабля лизэ. 45866
Считал, считал, вроде не выходит у меня что это я обсчитался...
SAM style
19.02.2014, 12:45
адрес 0x123 (проверка заполнения):
pop iy
ld sp,ix ; sp = ix = 0x4000
push hl ; попытка push в ПЗУ (3FFF/FE) ни к чему не приводит
pop ix ; = 0 (содержимое ПЗУ в 3FFE/FF)
pop de ; содержимое 4000/01
sbc hl,de ; hl = 0, тут всё правильно
push ix ; запись 0 в 4000/01 - вот тут ячейки и портятся
pop hl
jr nz,0x13a ; NZ от чего? sbc hl,de не влияет на флаг Z
...
ram_scan
19.02.2014, 13:05
адрес 0x123 (проверка заполнения):
pop iy
ld sp,ix ; sp = ix = 0x4000
push hl ; попытка push в ПЗУ (3FFF/FE) ни к чему не приводит
pop ix ; = 0 (содержимое ПЗУ в 3FFE/FF)
pop de ; содержимое 4000/01
sbc hl,de ; hl = 0, тут всё правильно
push ix ; запись 0 в 4000/01 - вот тут ячейки и портятся
pop hl
jr nz,0x13a ; NZ от чего? sbc hl,de не влияет на флаг Z
...
Я плохо что-либо понял из вашего поста =(
Во первых sbc hl,de влияет на флаг Z. Как и на остальные флаги, о чем написано в даташите на процессор, а именно флаги S,Z,H,P/V, N,C. Как любая арифметическая команда.
Во вторых я не понял попытались ли вы воспроизвести багу с тем кодом (ROM для 48к), который я приаттачил в сообщении ? И скриншот которого я приаттачил чуть раньше ?
Опять-же, значение будучи пушнуто в стек когда SP==4002 в память попадает. Оно потом оттуда прекрасно читается, и его видно в отладчике. Оно каким-то образом не попадает в дисплейную память эмулятора и потом не рендерится при выводе изображения.
SAM style
19.02.2014, 13:34
Во первых sbc hl,de влияет на флаг Z. Как и на остальные флаги, о чем написано в даташите на процессор, а именно флаги S,Z,H,P/V, N,C. Как любая арифметическая команда.Да, это я что-то поторопился.
Во вторых я не понял попытались ли вы воспроизвести багу с тем кодом (ROM для 48к), который я приаттачил в сообщении ? И скриншот которого я приаттачил чуть раньше ?
Опять-же, значение будучи пушнуто в стек когда SP==4002 в память попадает. Оно потом оттуда прекрасно читается, и его видно в отладчике. Оно каким-то образом не попадает в дисплейную память эмулятора и потом не рендерится при выводе изображения.
При проверке (кусок кода выше) HL, как я понял, должно сохраняться в IX? НО при первом прохождении это происходит, когда SP=0x4000, т.е push hl происходит в ПЗУ и не сохраняется. После pop ix в ix уже не значение HL, а то, что было в последних 2 байтах ПЗУ (т.е 0). Поэтому после восстановления (push ix / pop hl) в hl возвращается не предыдущее значение, а 0. Поэтому вторая итерация уже приводит к ошибке. При этом push ix происходит, когда sp=0x4002, и это затирает первые 2 байта экрана, что прекрасно видно.
PS: а занесенных до этого байт не видно, потому как они не успевают перерисоваться лучом. Экран не мнгновенно обновляется.
ram_scan
19.02.2014, 16:37
PS: а занесенных до этого байт не видно, потому как они не успевают перерисоваться лучом. Экран не мнгновенно обновляется.
Вы экспериментируете на каком-то другом коде, во всяком случае я его в лицо не узнаю.
Понимаете в чем дело, у меня в коде память трется без привязки к лучу (потому-что нельзя гарантировать что INT исправен), поэтому я бы в любом случае рано или поздно то что творится в адресе #4000 увидел на экране, даже если оно в каком-то фрейме в отрисовку не попало. Но косяк с первыми двумя байтами стабильный, достаточно подключить ROM вместо 48 бейсика и ресетнуться. Первые два байта стабильно пустые. При этом в памяти они хранятся, они просто не отрисовываются.
Я не исключаю даже ошибки в своем коде, но я ее блин не вижу, все должно работать правильно. Сделайте одолжение, посмотрите свежим взглядом.
Просто проверьте пожалуйста у себя как этот ROM работает, с глюком или без. Я бы на реале проверил, но у меня запаса чистых микросхем нет, а стерка пока с китая не доехала.
SAM style
19.02.2014, 17:11
Первые два байта стабильно пустые. При этом в памяти они хранятся, они просто не отрисовываются.Вот это тот самый код? Отлично. #0117 - это заполнение памяти 4000..FFFF пушами HL. #0123 - проверка этого заполнения. Перед проверкой есть LD IX,#4000. В самой программе проверки - LD SP,IX:PUSH HL:POP IX:POP DE, а потом PUSH IX:POP HL.
После заполнения на #4000 лежит то, что туда положено, но пока луч не дойдёт до этого места, оно не будет нарисовано. Только пока луч не дошёл, PUSH IX при первом прохождении проверки портит эти байты из-за ошибки в коде. Луч доходит до начала экрана и рисует уже испорченные байты.
Я уже не знаю, как это человеческим языком рассказать...
SAM style
05.03.2014, 15:32
М... обновить Xpeccy? В последней сборке такого не наблюдается, только чуть-чуть съезжает там, где нет музыки (pica.sna на картинке слева).
http://samstyle.narod.ru/addons/shot0009.png
Такой сильный сдвиг, как в сообщении выше, наводит на мысль, что там INT поставлен не в начало строки.
zebest, хватит удалять свои посты!
SAM style
05.03.2014, 17:42
ммм.. я же доверчивый, что на первой странице было - то и взял..
Где послендяя версия под Win32?Давно я его не собирал... Хотя, кроме мелких изменений там всё по-старому - сейчас нет времени плотно заниматься проектом. Вот последняя под Windows:
[ win32 (http://yadi.sk/d/oWSf2OXdJzASr) ]
ram_scan
06.03.2014, 19:46
Кстати, я тут некоторое время тому как плакался за то что кутешный срез у меня под опенсусе флэшем мыргает дико и клавиатурой тупит, и вообще с временными задержками пичальбеда.
Таки реально пичальбеда. Хоть включай в эмуляторе турбу хоть нет.
Пишу по памяти, но по воспоминаниям куте в консолю гнусно матерится, что не то делай не то слип можно запускать нынче только из какого-то там специального треда. Вобщем слезно жалится что задержку сделать оно не умеет потому-как не оттудова откудова оно ждет его задерживают.
SAM style
06.03.2014, 20:14
Кстати, я тут некоторое время тому как плакался за то что кутешный срез у меня под опенсусе флэшем мыргает дико и клавиатурой тупит, и вообще с временными задержками пичальбеда.
Таки реально пичальбеда. Хоть включай в эмуляторе турбу хоть нет.
Пишу по памяти, но по воспоминаниям куте в консолю гнусно матерится, что не то делай не то слип можно запускать нынче только из какого-то там специального треда. Вобщем слезно жалится что задержку сделать оно не умеет потому-как не оттудова откудова оно ждет его задерживают.А можно лог этого безобразия и какая версия Qt? Потому что у меня он молча работает.
ram_scan
07.03.2014, 07:08
А можно лог этого безобразия и какая версия Qt? Потому что у меня он молча работает.
Можно, но это уже 10 числа, потому-как глючит оно на работе, а я на больничном, а потом праздники...
SAM style
09.03.2014, 13:26
Совместно с одним товарищем, у которого эмуль тоже крючило, нашли возможную проблему. Закоммичено в git.
Жутко странно, почему он у меня-то работал?
Ещё замечен баг при загрузке файлов извне на диск. Первый раз загружается нормально, начиная со второго уже кривовато - может даже упасть.
SAM style
09.03.2014, 18:25
ну так получается.. Не будем множить сущности и хаос во Вселенной :)Удалением ты разрываешь пространственно-временной континум, а Эмметт Браун (http://ru.wikipedia.org/wiki/Эмметт_Браун) говорил, что так делать нельзя.
ram_scan
11.03.2014, 20:12
Совместно с одним товарищем, у которого эмуль тоже крючило, нашли возможную проблему. Закоммичено в git.
Жутко странно, почему он у меня-то работал?
Тайна сия велика есть. Я до сих пор на больничном, 13 должен выйти на работу, засинхронизируюсь, проверю.
Кстати, я медитировал в исходник, но без чтения документации на куте ниасилил найти все полезные кнопки в дебаггере. В хелпе их тоже нету (намекаю) ;)
SAM style
11.03.2014, 20:45
Тайна сия велика есть. Я до сих пор на больничном, 13 должен выйти на работу, засинхронизируюсь, проверю.
Кстати, я медитировал в исходник, но без чтения документации на куте ниасилил найти все полезные кнопки в дебаггере. В хелпе их тоже нету (намекаю) ;)
Дебагер тут огрызком полуработающим является. Подходит разве что для пошагового выполнения команд, точек останова и созерцания циферок.
А кнопки в первом посте темы.
Есть ли готовые ромсеты? Не смог добиться работы Pentagon 1024.
SAM style
12.03.2014, 10:55
Есть ли готовые ромсеты? Не смог добиться работы Pentagon 1024.Вот тут (http://yadi.sk/d/b5gZSePz4rlY0) ромы и примеры ромсетов, в т.ч. для P1024SL с Gluk'ом. А что конкретно вызвало затруднение? P1024SL в списке архитектур есть, как сделать свой ромсет - в первом посте, включить BDI и радоваться, остальное - по вкусу.
ram_scan
12.03.2014, 15:41
Дебагер тут огрызком полуработающим является. Подходит разве что для пошагового выполнения команд, точек останова и созерцания циферок.
А, значит таки все нашел. Просто мне в ум как-то не пришло что нет фичи "изменить содержимое регистра" ;)
SAM style
12.03.2014, 15:55
А, значит таки все нашел. Просто мне в ум как-то не пришло что нет фичи "изменить содержимое регистра" ;)
Регистры меняются, кроме режима прерываний и iff1/iff2 (там кривовато), дамп памяти можно редактировать, в дизассемблере меняется только адрес - остальное не работает.
Q-Master
12.03.2014, 18:32
Вот тут (http://yadi.sk/d/b5gZSePz4rlY0) ромы и примеры ромсетов, в т.ч. для P1024SL с Gluk'ом. А что конкретно вызвало затруднение? P1024SL в списке архитектур есть, как сделать свой ромсет - в первом посте, включить BDI и радоваться, остальное - по вкусу.
Так у тебя на уныл не похоже ничего, пцламе^Wюзеры путаются.. 8)
PS: Я заметил у тебя там куски реализации профика с его режимами. А будет?
SAM style
12.03.2014, 19:32
PS: Я заметил у тебя там куски реализации профика с его режимами. А будет?Где бы нормальную информацию нарыть, особенно по графрежимам? Того, что я нашёл, пока недостаточно.
ram_scan
13.03.2014, 06:03
Качнул с гита свежую версию, глюк с бешенной скоростью и задержками вылечился.
Q-Master
13.03.2014, 21:23
Где бы нормальную информацию нарыть, особенно по графрежимам? Того, что я нашёл, пока недостаточно.
Хм. Попробую покопать. У меня профик был и где-то что-то должно сохраниться. Граф режимы там простые вобщем-то.
Может ковырнуть сорцы уныла?
http://zx-pk.ru/archive/index.php/t-3670.html
Вопрос по линукс-версии, куда класть конфиги?
thanks, but the situation is i don't know where to put them! :D -
there is no ~/.xpeccy, ~/.config/xpeccy or ~/.local/share/xpeccy - i
only tried the last one, i had to create the directory, and didn't
work! :D (always appears as 48kb) - do you know where can we find
documentation about?
ram_scan
20.03.2014, 19:22
Вопрос по линукс-версии, куда класть конфиги?
Вроде с некоторого времени стали лежать в ~/.config/samstyle
Сам не с разбегу нашел.
SAM style
20.03.2014, 22:35
Вопрос по линукс-версии, куда класть конфиги?Paulo Silva уже написал мне, веду разъяснительную беседу.
SAM style, А можете сделать свой эмулятор, как аддон для http://xbmc.org/? Установка из *.zip. Это был бы просто праздник.
SAM style
22.03.2014, 02:23
build 20140322 ULA plus. Проверил на паре игр - вроде, цвета со скриншотами совпадают. Конфликтует с GS! Работает только на стандартном экране, остальные режимы палитре ULA+ не подвержены или работают через одно место. Ключ -p ${profilename} запустит эмулятор с указанным профилем. Профиль по умолчнию останется прежним, пока в настройках не нажат OK. Разные мелкие фиксы, которые уже не припомнить
[ deb x86 (http://yadi.sk/d/AzE-Vx_RKxxif) ][ deb x86_64 (http://yadi.sk/d/LCG_lmtBKxxjr) ]
[ rpm x86 (http://yadi.sk/d/_EBCyZ0EKxxkh) ][ rpm x86_64 (http://yadi.sk/d/tIL1OlKkKxxmY) ]
[ win32 (http://yadi.sk/d/HE0xdQCYKxxoW) ]
---
Насчет XBMC - надо копнуть формат плагинов. Я скачал несколько, а там скрипты на питоне...
---
Насчет XBMC - надо копнуть формат плагинов. Я скачал несколько, а там скрипты на питоне...
Я ни разу не программист, но думаю, что при установке плагинов, сначала запускается скрипт и дает команду на скачку/установку дополнения из репозитария. Хотя могу и ошибаться.
Вот тут http://alexelec.ru/forum/ человек прикручивает к XBMC в своей сборке эмуляторы SP и Nindendo. http://www.alexelec.ru/ . Можете с ним посоветоваться. Alex чел открытый.
Q-Master
22.03.2014, 22:31
Я ни разу не программист, но думаю, что при установке плагинов, сначала запускается скрипт и дает команду на скачку/установку дополнения из репозитария. Хотя могу и ошибаться.
Основной набор плагинов к хбмэцэ именно на питоне.
2SAM style: Давай xpeccy на питоне перепишем? 8)
Q-Master
28.03.2014, 21:10
2SAM style: А ты не хочешь сделать долбаггер а-ля уныловский по ф-ционалу?
SAM style
28.03.2014, 22:47
https://sites.google.com/site/ulaplus/Multicolour.tap
вроде простенький тест на ULA+
В SpecEmuu - работает.
А всё почему? Потому что палитра меняется по ходу отрисовки, а в эмуляторе она обновляется только раз в кадр. Для раскрашеных игр не критично, а на таких тестах всплывает. Думаю, этому тесту и геометрия классическая нужна, с блэкджеком и медленой памятью.
2SAM style: А ты не хочешь сделать долбаггер а-ля уныловский по ф-ционалу?Он изначально по образу анриловского задумывался, только реализация подкачала.
ram_scan
29.03.2014, 15:53
2SAM style: А ты не хочешь сделать долбаггер а-ля уныловский по ф-ционалу?
Унрыловский не пользовал, но мне зело нравится долбаггер в R80. Настолько зело, что мне приходится в досбоксе этот R80 до сих пор гонять.
Может потому-что оно под TurboDebugger косит, а это наверное самый удобный отладчик уоторым я в жизни пользовался (а через руки мои прошло их минимум десяток).
SAM style
29.03.2014, 18:03
упд - что скажешь про эту игру (http://speccy.pl/forum/index.php?action=dlattach;topic=854.0;attach=1140) с улаплюс?
Nie masz zezwolenia na pobieranie i oglądanie załączników w tym dziale. Zaloguj się lub zarejestruj konto na forum ZX Spectrum.
Паны просят регистрацию. Можно её куда-нибудь выложить? Если есть на WOS (http://www.worldofspectrum.org/infoseek.cgi?regexp=^ULAplus+Support$&phrase&loadpics=1), просто дай ссылку.
SAM style
19.04.2014, 03:21
build 20140418 Починил неверное отображение цветов в режимах с сплющенными пикселями (как текстовые, АТМ-мультиколор). Нофлик на этих режимах пока не работает. Выражается благодарность Paulo Silva за то, что указал на этот баг.
Пакеты пока не собираю, на github закомичено.
build 20140322
http://4.firepic.org/4/images/2014-09/30/zkrz0kvfm7sa.png
SAM style
30.09.2014, 20:11
http://4.firepic.org/4/images/2014-09/30/zkrz0kvfm7sa.pngЧто за система? Debian/Ubuntu/ещё что-то? И версию оси (lsb_release -a). Возможно, туда уже целиком подвезли SDL2 и убрали старый.
Зависимости строю по Debian testing, собираю в Debian squeeze.
-Version-
Kernel : Linux 3.11.0-15-generic (i686)
Distribution : Ubuntu 12.04.5 LTS
SAM style
30.09.2014, 20:37
-Version-
Kernel : Linux 3.11.0-15-generic (i686)
Distribution : Ubuntu 12.04.5 LTS
Странно. Вот он - http://packages.ubuntu.com/precise/libsdl1.2debian
Может, репозитории косячат?
-----------
Блин, уже почти год как не трогал проект. Сначала NinjaTwins делал, сейчас одиночную гаму доделываю. Как только доделаю, вернусь к допиливанию этого чуда.
Q-Master
01.10.2014, 22:19
2 SAM style: MultiDude (http://zx-pk.ru/showthread.php?p=741793 не работает. Показывает черный экран и музыку играет.
SAM style
01.10.2014, 23:32
2 SAM style: MultiDude (http://zx-pk.ru/showthread.php?p=741793 не работает. Показывает черный экран и музыку играет.Только сегодня скачал, запускал пентагоновскую версию - работает
-------
Ааааа! Если про TSConf-версию, то тут сложнее - состояние эмуляции заморожено на осень 2013, после этого конфа обрела целый ряд всяких вкусностей, от блиттера до новых прерываний. Сиськи из запилятора тоже не пошли :(
Q-Master
02.10.2014, 21:49
Ааааа! Если про TSConf-версию, то тут сложнее - состояние эмуляции заморожено на осень 2013, после этого конфа обрела целый ряд всяких вкусностей, от блиттера до новых прерываний. Сиськи из запилятора тоже не пошли :(
Надо чинить-же!
SAM style
02.10.2014, 22:15
Надо чинить-же!Сначала гаму доделаю, иначе загнётся.
http://samstyle.narod.ru/project/221343_059.png
SAM style
20.10.2014, 19:39
Надо чинить-же!
Пока жду музыку, решил копнуть.
MultiDude не работал из-за нереализованного DMA FillMem.
Демки из запилятора - из-за бага в DMA MEM->CRAM и MEM->SFILE
Подлечил, закоммитил.
Всплыла давняя болячка - изменённая палитра вступает в силу только в начале следующего кадра, из-за этого выскакивают незапланированные визуальные эффекты.
inozemcew
22.10.2014, 16:54
Скачал, собрал, запустил без проблем, спасибо. Но вот эта игруха ftp://ftp.worldofspectrum.org/pub/sinclair/games/b/BackToTheFuturePartIII.tzx.zip не захотела грузиться, вылетает после загрузки третьего блока.
SAM style
22.10.2014, 17:44
...не захотела грузиться, вылетает после загрузки третьего блока.
tzx не весь поддерживается. Даже в поддерживаемых блоках могут быть баги. Хорошо, что нашёлся образ с проблемой, будем решать.
PS: перевёл эмуль на 24-битный цвет, чтобы на лету изменять палитру. SDL_Update() стал жрать куда больше QLabel::update(). Пока не коммитил. Mindwarp гипнотизирует...
http://samstyle.narod.ru/addons/mindwarp.png
SAM style
25.10.2014, 00:22
build 20141024
TSConf: добавлен DMA fillmem и пофикшены DMA mem-cram и mem-sfile
Перевёл картинку в 24-битный цвет. Теперь смена палитры будет сказываться мгновенно (см.скриншот выше)
Из-за этого SDL_Surface стала самой жручей и была выпилена нафиг
Вместо неё добавлена отрисовка текстурой в QGLWidget. Чтобы собрать в этом варианте, надо указать cmake -DDRAWING=GL и доставить libqt4-opengl. Соответственно, появится зависимость от OpenGL
Косметическое. cmake -DZ80EX_BUILD теперь принимает такие значения: external (внешняя libz80ex) и internal (вкомпиленная в бинарник), любое другое значение соберёт мой вариант z80.
Исправил блоки #12 и #13 в tzx. BTF3 не сбрасывается, но всё равно не грузится. Что-то ещё упустил...
ЗЫ: совсем забыл. noflic временно отвалился. Ъ-колор пока не смешивается.
ЗЫ2: оказалось, и бипер отвалился. Причину нашёл, исправил, в следующем срезе будет ОК
[ deb x86 (https://yadi.sk/d/owXJN_aecGStd) ][ deb x86_64 (https://yadi.sk/d/ljDLsFyYcGT5K) ]
[ rpm x86 (https://yadi.sk/d/0U6ufTeecGT6S) ][ rpm x86_64 (https://yadi.sk/d/582eMcSZcGT7T) ]
[ win32 (https://yadi.sk/d/8sMTe4StcGT8C) ]
SAM style
15.11.2014, 14:04
build 20141114
Починил пищалку, нофлик и градации серого Начал переделывать отладчик. Он всё ещё Г, но уже меньшее, чем ранее. Возможность ставить брыкпоинты на чтение/запись памяти. Возможность загрузить/сохранить область памяти. Переделал отрисовку. Должно стать немного быстрее.
[ deb x86 (http://yadi.sk/d/U274TNgTcivLK) ][ deb x86_64 (http://yadi.sk/d/8erhRbQfcivLs) ]
[ rpm x86 (http://yadi.sk/d/kpwDSWs9civMG) ][ rpm x86_64 (http://yadi.sk/d/qr3jslnAcivMg) ]
[ win32 (http://yadi.sk/d/eI4yk9OMcivNB) ]
ram_scan
15.11.2014, 15:49
Возможность ставить брыкпоинты на чтение/запись памяти.
Вот этой плюхи особенно не хватало. Особенно возможности поставить брык не на конкретный адрес а на регион.
А самый удобный отладчик в плане интерфейса был писишный turbo debugger. Я думаю на него и есть смысл ориентироваться.
SAM style
15.11.2014, 18:00
Путь к image SDCard прописал. По reset-у Shift+F12 вроде как да, до WC сбрасывается, и вылезает окошко дЕбуГа , которое закрывается полсе 9 (девятого!) раза. После чего пишет - Error Device Not Found!
Или я пока много хочу?
Образ отформатирован и бут там есть? В TS-bios у меня так: Reset to BD boot.$c; Boot device: SD Z-contr. Грузится оттуда.
Так... а когда отладчик вылезает, посмотри, на чём - у меня в TSConf пока что действует правило "в любой непонятной ситуации вываливаться в дебугу". Скорее всего, это какой-то неподдерживаемый DMA (вывод в 0x27AF)
SAM style
15.11.2014, 18:19
http://savepic.net/6193018m.jpg (http://savepic.net/6193018.htm)
Чуть пролистал.
Образ вроде нормальный, в анриле с TS - работает. могу конечно его запаковать на пробу
Так бут то вроде грузит из образа!! WC появляется, Падает видимо на чтении каталога
Ага, ясно. #02 - это DMA SPI->RAM. Его нет. Так же как обратного RAM->SPI и IDE->RAM c RAM->IDE.
Какая версия WC? Будем исправлять и тестировать.
SAM style
15.11.2014, 18:53
WC 0.62 , крайний)Мда, что-то отстал я. У меня всё ещё 0.40 был. С SD-картой исправил, потестил. Осталось с IDE.
PS: А я так смотрю, WC до сих пор каталоги удалять не научился.
PPS: Интересно, а с блиттером уже что-нибудь сделали? Потому как и его нет.
SAM style
15.11.2014, 20:20
вот можешь поисправлять и потестировать.
Сам тест в соседней теме про Speccy2010
В стандартной еве с "шимом" получается 25 градаций серого. Для сохранения совместимости этот костыль был перенесен в видеоцап. Бит 15 палитры указывает режимНу вот в каких доках это указано? Естественно, у меня всего 25 разных уровней...
SAM style
15.11.2014, 20:50
http://www.kolobok.us/smiles/big_standart/pardon.gif
---------- Post added at 21:43 ---------- Previous post was at 21:31 ----------
Так значит у тебя все правильно, и это атавизм и рудимент ненужный ??? ну костыль то. И где вообще про эти режимы написано - mode0, mode1 ?Костылём тут назван как раз режим с 25 градациями, где уровни 24-31 одинаковые (255). Мне не трудно, сделаю и 32 разных градации, когда старший бит в палитре установлен.
И где вообще про эти режимы написано
TSconf.xls, лист CRAM.
SAM style
15.11.2014, 21:27
да, но в том тесте вроде как оба режима показаны???
Получается сверху новый, снизу старый, как у тебя??
Да, так и есть. Сверху все 32 градации, снизу последние - одинаковые.
TSconf.xls, лист CRAM.По ходу, мне и его обновить надо.
-- Added
Аллес!
http://samstyle.narod.ru/xpeccy/vdac5bit.jpg
SAM style
17.11.2014, 18:13
build 20141117 TSConf: добавлен DMA в обе стороны с SPI и IDE. TSConf: добавлен режим палитры с 32 градациями яркости.
В недрах TSL-форума не нашёл проги с использованием блиттера, тестить не на чем, так что пока его нет. Ещё бы что-нибудь с прерываниями от кадра/строки/DMA.
[ deb x86 (https://yadi.sk/d/4HzHi8W_cmFkj) ][ deb x86_64 (https://yadi.sk/d/9kcCo25BcmFmk) ]
[ rpm x86 (https://yadi.sk/d/SQ7seiSscmFnq) ][ rpm x86_64 (https://yadi.sk/d/Fh1Pkk7QcmFoN) ]
[ win32 (https://yadi.sk/d/zun5U1v0cmFp7) ]
SAM style
17.11.2014, 19:14
Классический тест TSdemo - сперва при запуске выпадает в ДеБуГу, после закрытия оной - идет, но с артефактами.
http://savepic.net/6186677m.jpg (http://savepic.net/6186677.htm)
Что-то опять не стыкуется... А в дебугер на чём вываливается?
http://samstyle.narod.ru/xpeccy/tsdemo_wut.jpg
SAM style
17.11.2014, 19:33
http://savepic.net/6203060m.jpg (http://savepic.net/6203060.htm)
я так понял две версии этих шариков, у тебя вторая и без звука. Да?Есть версия в .$C, есть версия в trd. Если выжать 0 - появляется музяка.
E9 в 27AF - это мазафакин блиттер! Выложи версию, которая у тебя, тогда в следующем релизе он появится. Наконец-то!
E9 в 27AF - это мазафакин блиттер!
Там нет блиттера. Просто неправильно код для dma задан.
SAM style
17.11.2014, 20:10
Там нет блиттера. Просто неправильно код для dma задан.Мда... хотя, b7 = 1, b2:0 = 001. По TSConf.xml это блиттер, я уж было обрадовался.
Окей, а есть что-то, чтобы проверить работоспособность блиттера?
SAM style
19.11.2014, 01:31
Выловил багу, которая пока плохо поддаётся объяснениям. Суть такова: если звук выводится через SDL, но по каким-то причинам SDL_OpenAudio не сработал, то ошибки при этом не выдаётся - звука нет, но устройство считается работающим. При закрытии эмулятора попытка закрыть не открытое устройство заканчивается зависоном - окно уже убрано, но процесс так и висит в памяти (не зомбак, просто повис). Вот почему SDL_OpenAudio всегда возвращает 0, даже при ошибке - большой вопрос.
ram_scan
21.11.2014, 11:47
Выловил багу, которая пока плохо поддаётся объяснениям. Суть такова: если звук выводится через SDL, но по каким-то причинам SDL_OpenAudio не сработал, то ошибки при этом не выдаётся - звука нет, но устройство считается работающим. При закрытии эмулятора попытка закрыть не открытое устройство заканчивается зависоном - окно уже убрано, но процесс так и висит в памяти (не зомбак, просто повис). Вот почему SDL_OpenAudio всегда возвращает 0, даже при ошибке - большой вопрос.
Такое очучение что у вас там race condition всплываэ. Я в исходники SDL бегло глянул, такое может случиться если во время работы SDL_OpenAudio (до последнего switch-case) попытаться из соседней нитки позвать функцию которая дергает каллбэк SDL_AudioDevice.OpenAudio(). Ошибки в этом случае не вернется, а тред SDL_AudioDevice.thread не запустится (потому-что оно считает что уже запущено). А при попытке его пристрелить оно скорее всего залипает где-то на семафоре.
SAM style
21.11.2014, 14:11
Такое очучение что у вас там race condition всплываэ. Я в исходники SDL бегло глянул, такое может случиться если во время работы SDL_OpenAudio (до последнего switch-case) попытаться из соседней нитки позвать функцию которая дергает каллбэк SDL_AudioDevice.OpenAudio(). Ошибки в этом случае не вернется, а тред SDL_AudioDevice.thread не запустится (потому-что оно считает что уже запущено). А при попытке его пристрелить оно скорее всего залипает где-то на семафоре.
А у меня callback вообще нигде мной не дёргается - назначается при SDL_OpenAudio() и всё. Ни из основного треда, а тем более из треда эмуляции он не задевается.
Затык случился, когда radiotray на фоне играл.
SAM style
22.11.2014, 21:04
build 20141121 TSConf: возможно, блиттер. Проверить так и не на чем было. Опция смены местами кнопок мыши ALT+K : показать ZX-клавиатуру. Кнопки не нажимаются, просто для показа команд/символов Опции индикации опроса мыши и джойстика. Отладчик переживает реорганизацию, там постоянно что-то меняется
[ deb 32bit (https://yadi.sk/d/MG3Zb5ABcsPjx) ][ deb 64bit (https://yadi.sk/d/qIkC8zVKcsPkb) ]
[ rpm 32bit (https://yadi.sk/d/vg_S-tAwcsPhp) ][ rpm 64bit (https://yadi.sk/d/0N5juA96csPj8) ]
[ win32 (https://yadi.sk/d/d1Mf3FuEcsPU5) ]
SAM style
24.11.2014, 02:35
А ЧТО ЭТО?)
Не знаю, что это такое, но вот ниже пример то жи не работаит
Никто не знает, что это и как работает. Другого объяснения, почему его не юзают, я не знаю. :)
Это то же DMA mem->mem, но с режимом пропуска нулевых [полу]байтов, пригождается при выводе графики с прозрачностями на битмап.
А пример - это использование разных прерываний (в частности, тут - от линии и кадра). Гуд, гуд, будем реализовывать. По идее должен бордюр раскрасить линиями, так?
Когда тут Blade появится, пусть разъяснит: прерывание от кадра - это реально от начала кадра (приход VBlank) или по INT-у, который можно запихнуть куда угодно?
прерывание от кадра - это реально от начала кадра (приход VBlank) или по INT-у, который можно запихнуть куда угодно?
Положение FRAME инт задается регистрами HSINT,VSINTL,VSINTH.
Вот, набросал по быстрому тест блиттера.
SAM style
25.11.2014, 22:23
Вот, набросал по быстрому тест блиттера.Так, то есть нифига у меня не работает блиттер... Благодарствуем, будем починять.
SAM style
26.11.2014, 21:03
build 20141126
Индикатор опроса стандартной клавиатуры: Options->Xpeccy->Leds->Keyboard
TSConf: теперь работающий блиттер
TSConf: прерывания FRAME/LINE/DMA
Возможно, медленная память по образцу 48/128К. Тест с медленными NOP-ами проходит как надо, другие не прокатывают.
Нужна классическая геометрия экрана.
Небольшие фиксы с профилями.
Большой рефакторинг
[ deb 32bit (https://yadi.sk/d/zoim28LLcxEPA) ][ deb 64bit (https://yadi.sk/d/c9hsdNSGcxEQM) ]
[ rpm 32bit (https://yadi.sk/d/5emuGMXxcxELF) ][ rpm 64bit (https://yadi.sk/d/dD12gRBtcxENR) ]
[ win32 (https://yadi.sk/d/o-gn7inucxEHz) ]
SAM style
26.11.2014, 23:32
в выше тесте с полосками все же левый край косячит, и вроде полосы ниже, чем должны быть?
sna-пшоты в TS чет не хотят работатьКонец jr (до 11 тактов) + приём INT (19 тактов) + out (12 тактов) = вполне хватит, чтобы прошёл VBlank и изменения вылезли на бордюр. Из-за этого косячит слева. А полосы выше/ниже - как это можно определить, если линии просто закрашиваются по порядку всей палитрой. Какая палитра - такие и цвета.
А со sna да, хреново. Особенно когда он 48й - у разных моделей ПЗУ 48-го бейсика в разных страницах находится.
SAM style
27.11.2014, 13:32
http://savepic.net/6273525.jpg
я бы сказал полосы на линию-две у тебя ниже. По оранжевой видно жеГеометрия экрана не жестко забита, можно своих насоздавать. Когда-то нашёл 2-3 разных раскладки, относящихся к пентагону, уже неясно, какая из них самая кошерная. Options->Video->Geometry
Да знаю я про расклАдки, вряд ли кто еще знает или пользовался))
Самая кошерная для пентагона- где Rage попАдает на свои места. Давай так считать))
А для TS смести основной экран на строчку вниз, по дефолту)
и поправь в TS снапшоты) плис
SAM style
27.11.2014, 16:31
Да знаю я про расклАдки, вряд ли кто еще знает или пользовался))
Самая кошерная для пентагона- где Rage попАдает на свои места. Давай так считать))
А для TS смести основной экран на строчку вниз, по дефолту)
и поправь в TS снапшоты) плис
Эээ не, в геометрии по умолчанию число строк до экрана как раз под rage подходит - это видно по части перед радугой. Если поставить больше/меньше - выше/ниже экрана будут появляться красные полосы. Так что со строками в default всё пучком - 80 строк от INT до экрана.
PS: А с другой стороны... как ведёт себя TSConf, когда и FRAME INT и LINE INT приходят одновременно? Смещение видно на 1 строку - такое ощущение, что одно прерывание по строке просто пропущено.
PPS: http://forum.tslabs.info/viewtopic.php?f=35&t=359
SAM style
05.12.2014, 13:01
build 20141205
Корректно работающие LINE и DMA INT в TSConf.
Продолжается большой рефакторинг. Вроде, в этот раз ничего не отвалилось.
[bug] В TSConf в режиме стандартного экрана его положение берется не из настроек геометрии. Починено, будет в сл.срезе
[bug] ZXFormat6 в fdi (да и другие, наверное) падают. Просто хрен знает, как обрабатывать сектор, у которого в поле длина стоит F7 (нормально там 0..4)
[ deb 32bit (https://yadi.sk/d/Y7kKgo9DdAgM7) ][ deb 64bit (https://yadi.sk/d/e0HYx-5QdAgLa) ]
[ rpm 32bit (https://yadi.sk/d/5ZuTomiedAgKK) ][ rpm 64bit (https://yadi.sk/d/-GiqUCX-dAgJS) ]
[ win32 (https://yadi.sk/d/-l6L5rGzdAgHB) ]
Q-Master
07.12.2014, 10:53
Продолжается большой рефакторинг. Вроде, в этот раз ничего не отвалилось.
При вот таком раскладе:
Using Qt painter
Using SDL ver 1.2.15
Using Qt ver 4.8.6
Using my Z80
BigEndian
у меня черный квадрат Малевича. Звук есть и эмуль работает. Может сам поищу чуть позже проблему, но времени у меня сурово мало.
В предыдущий билд картинка была.
SAM style
07.12.2014, 11:58
При вот таком раскладе:
Using Qt painter
Using SDL ver 1.2.15
Using Qt ver 4.8.6
Using my Z80
BigEndian
у меня черный квадрат Малевича. Звук есть и эмуль работает. Может сам поищу чуть позже проблему, но времени у меня сурово мало.
В предыдущий билд картинка была.
Самое интересное, что отрисовку я не трогал. Переделка в основном сводится к сваливанию настроек эмулятора в структуру xConf. У меня те же версии, только LittleEndian
sam@debian:~$ xpeccy
Using Qt painter
Using SDL ver 1.2.15
Using Qt ver 4.8.6
Using my Z80
SAM style
07.12.2014, 12:11
noflic - отвалился.
RAGE - все же не попадает, хоть по дефолту. Хоть с моими( старыми) настройками видео..
да и картинка в RAGE какая-то дерганная, может это субъективно...
Отвалился? Всё интереснее...RAGE немного не попадает по горизонтали. Про это в курсе, пока отложено.
http://samstyle.narod.ru/xpeccy/noflic1.pnghttp://samstyle.narod.ru/xpeccy/noflic.pnghttp://samstyle.narod.ru/xpeccy/rage.png
SAM style
07.12.2014, 12:41
по горизонтали же.
но-флик верхняя часть еще стабильна как-то, а нижняя - ужысь)
Или надо прЫмеръ?
Не Debug собрал, случайно? В отладочной сборке да, рассинхрон. В релизной - всё ок.
SAM style
07.12.2014, 13:00
я нее, линь давно не запускал, твои сборки, под Win
пример выше
Добавлю.
Две предпоследние - косячат так же, немного по разномуу..
Мартовская(февральская?) сборка 210214 - нормально работает...
Мде, проскакивает иногда... ОК, будем порешать нормальную синхронизацию.
SAM style
13.12.2014, 14:51
build 20141213
Фикс. В TSConf положение экрана теперь зависит от выбраной геометрии. Раньше просто центрировалось.
Переделал момент наложения фильтров изображения. Глюков с noflic не должно быть.
Допускаются trd с целым числом секторов (длина xxxx00). Ранее условием было целое число дорожек (xxx000).
Продолжается упорядочивание. Главным образом реорганизация коснулась меню и плееров ленты и rzx. Остальное - по мелочам.
Если ничего серьёзного не всплывёт, до следующего года больше обновлений не будет.
[bug] Текущему профилю ставится геометрия последнего в списке
[ deb 32bit (https://yadi.sk/d/866YbGhvdM6dU) ][ deb 64bit (https://yadi.sk/d/KjtoqE09dM6cX) ][ rpm 32bit (https://yadi.sk/d/9e6yCTFfdM6bJ) ][ rpm 64bit (https://yadi.sk/d/_Y19-TopdM6Zn) ][ win32 (https://yadi.sk/d/Gcsi1qoBdM6Eq) ]
SAM style
13.12.2014, 19:14
Вроде нет)
Терь картинку:)) За размер - звиняйте, но так нагляднЕе.
http://savepic.net/6270723.jpg
Это вообще-то моя старая бордер-поделка, но тут она выглядит довольно удивительно)
Получается в этом режиме 224х4 такта в строке??
Интересно, а на реале так же точно???
А проц не на 14МГц работает?
А проц не на 14МГц работает?
ну получается что так.. Другого не вижу объяснения :)
Хотя музыка при этом на прерываниях играет вполне себе нормально, без ускорения.
Специально ничего не переключал, просто в TS-conf загрузил снапшот с обычного пятногона.
SAM style
13.12.2014, 20:03
ну получается что так.. Другого не вижу объяснения :)
Хотя музыка при этом на прерываниях играет вполне себе нормально, без ускорения.
Специально ничего не переключал, просто в TS-conf загрузил снапшот с обычного пятногона.Ну, ты не переключал, а ПЗУ TSConf вполне может врубить эти 14МГц, если у него в биосе так поставлено. В таком случае просто в настройках двинь ползунок обратно на 3.5МГц.
Хотя музыка при этом на прерываниях играет вполне себе нормально, без ускорения.
А почему музыка на прерываниях должна играть ускоренно на турбе?
В таком случае просто в настройках двинь ползунок обратно на 3.5МГц.
Так да.. Двигается. ))
Тогда еще один косяк.
Разве в эмууле не запоминаются настройки?? Послендяя версия всегда запускается с геометрией Spectrum128 почему-то, переключаю на Пентагон - работает, а5 до выключения эмуля.. Прит включении - - геомЭтрия экрана Spectrum128. Так задумано или?
SAM style
13.12.2014, 21:38
Так да.. Двигается. ))
Тогда еще один косяк.
Разве в эмууле не запоминаются настройки?? Послендяя версия всегда запускается с геометрией Spectrum128 почему-то, переключаю на Пентагон - работает, а5 до выключения эмуля.. Прит включении - - геомЭтрия экрана Spectrum128. Так задумано или?Косячок-с... Занятно - по ходу, конфиг переписывается на старте. Если изменить геометрию - в конфиге она пропишется, а если закрыть/запустить эмуль - сбросится.
Записано в баги, будет порешаться.
PS:ага, ShitHappens. Текущему профилю устанавливается геометрия последнего загруженного (последнего в списке профилей). Блин, ещё в коде пометил, где баг и благополучно забыл :)
Q-Master
14.12.2014, 17:32
Записано в баги, будет порешаться.
Теперь еще и не собирается:
/home/qmaster/--/FF4/Xpeccy/src/debuger.cpp: In member function ‘void DebugWin::fillZ80()’:
/home/qmaster/--/FF4/Xpeccy/src/debuger.cpp:314:47: error: ‘GETIR’ was not declared in this scope
ui.editIR->setText(gethexword(GETIR(comp->cpu)));
^
CMakeFiles/xpeccy.dir/build.make:221: ошибка выполнения рецепта для цели «CMakeFiles/xpeccy.dir/src/debuger.cpp.o»
make[2]: *** [CMakeFiles/xpeccy.dir/src/debuger.cpp.o] Ошибка 1
CMakeFiles/Makefile2:60: ошибка выполнения рецепта для цели «CMakeFiles/xpeccy.dir/all»
make[1]: *** [CMakeFiles/xpeccy.dir/all] Ошибка 2
Makefile:137: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
Макрос GETIR есть только для локальной версии z80.c. Для z80ex его нет.
А в целом проблема так и осталась. Вместо картинки - квадрат малевича.
SAM style
14.12.2014, 19:56
А в целом проблема так и осталась. Вместо картинки - квадрат малевича.У меня нет возможности отдебажить этот баг, т.к. BigEndian машин не имею. :( Буду исследовать изменения начиная с того билда, который у тебя показывал. 20141121 ещё был рабочим?
Баг с геометрией и макрос для z80ex исправил. Отправлено на github.
Q-Master
14.12.2014, 21:01
У меня нет возможности отдебажить этот баг, т.к. BigEndian машин не имею. :( Буду исследовать изменения начиная с того билда, который у тебя показывал. 20141121 ещё был рабочим?
Баг с геометрией и макрос для z80ex исправил. Отправлено на github.
Погодь. Я нашел проблему. Проблема почему-то была в старой zxevo.rom и ts-bios.rom. Не понял почему, но после замены все заработало. Макрос я запилил сам. 8) Но вообще в твоем проекте без поллитра фиг разберешься.
SAM style
14.12.2014, 21:16
Но вообще в твоем проекте без поллитра фиг разберешься.6 лет непрерывных побед . У самого уже поллитры заканчиваются :v2_dizzy_punk:. Понемногу причесываю это чудо.
Проблема почему-то была в старой zxevo.rom и ts-bios.romВ TSConf был убран INTVect (порт #25AF), т.к его успешно выпилили, судя по TSConf.xls. Возможно, поэтому старый биос и не пахал.
CityAceE
20.12.2014, 14:45
Пытаюсь собрать Xpeccy для свистка на RK3188, работающего под Ubuntu 12.04, но что-то я не доустановил, а что никак понять не могу:
cityacee@Mini-PC:~/Xpeccy$ make
[ 1%] Building CXX object CMakeFiles/xpeccy.dir/src/emulwin.cpp.o
/home/cityacee/Xpeccy/src/emulwin.cpp: В функции-члене «virtual void MainWin::resizeGL(int, int)»:
/home/cityacee/Xpeccy/src/emulwin.cpp:794:15: ошибка: нет декларации «GL_PROJECTION» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:794:28: ошибка: нет декларации «glMatrixMode» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:799:52: ошибка: нет декларации «GL_CLAMP» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:812:15: ошибка: нет декларации «GL_FLAT» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:812:22: ошибка: нет декларации «glShadeModel» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:814:12: ошибка: нет декларации «GL_LIGHTING» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:817:15: ошибка: нет декларации «GL_MODELVIEW» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:818:17: ошибка: нет декларации «glLoadIdentity» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:825:26: ошибка: нет декларации «glIsList» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:825:57: ошибка: нет декларации «glDeleteLists» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:826:28: ошибка: нет декларации «glGenLists» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:827:25: ошибка: нет декларации «GL_COMPILE» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:827:35: ошибка: нет декларации «glNewList» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:829:10: ошибка: нет декларации «GL_QUADS» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:829:18: ошибка: нет декларации «glBegin» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:831:22: ошибка: нет декларации «glTexCoord2f» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:831:41: ошибка: нет декларации «glVertex2f» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:838:8: ошибка: нет декларации «glEnd» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp:839:12: ошибка: нет декларации «glEndList» в этой области видимости
/home/cityacee/Xpeccy/src/emulwin.cpp: В функции-члене «virtual void MainWin::paintGL()»:
/home/cityacee/Xpeccy/src/emulwin.cpp:845:24: ошибка: нет декларации «glCallList» в этой области видимости
make[2]: *** [CMakeFiles/xpeccy.dir/src/emulwin.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/xpeccy.dir/all] Ошибка 2
make: *** [all] Ошибка 2
SAM style
20.12.2014, 16:07
Пытаюсь собрать Xpeccy для свистка на RK3188, работающего под Ubuntu 12.04, но что-то я не доустановил, а что никак понять не могу
Возможно, libqt4-opengl и libqt4-opengl-dev
У меня GL версия от просто Qt почему-то не сильно отличается по быстродействию, попробуй без него : cmake -DDRAWING=Qt
molodcov_alex
20.12.2014, 16:16
Больше похоже что в железке есть только OpenGL ES, а не полноценный OpenGL.
CityAceE
20.12.2014, 16:43
Возможно, libqt4-opengl и libqt4-opengl-dev
Установлены.
попробуй без него : cmake -DDRAWING=Qt
Получилось. Эмулятор собрался, но запуститься не может:
cityacee@Mini-PC:~/Xpeccy$ ./xpeccy
./xpeccy: symbol lookup error: /usr/lib/libEGL.so.1: undefined symbol: _mali_clz_lut
Наверное действительно:
в железке есть только OpenGL ES, а не полноценный OpenGL.
Но почему же на Raspberry Pi всё запускается, а здесь не может...
SAM style
20.12.2014, 16:54
Установлены.
Получилось. Эмулятор собрался, но запуститься не может:
cityacee@Mini-PC:~/Xpeccy$ ./xpeccy
./xpeccy: symbol lookup error: /usr/lib/libEGL.so.1: undefined symbol: _mali_clz_lut
Наверное действительно:
Но почему же на Raspberry Pi всё запускается, а здесь не может...
Об таком меня уже бесполезно спрашивать. Я его только на десктопных осях собираю. Для меня большая удача, что он на windows и big-endian процах идёт...
Хотя, зависимость от EGL без использования самого GL - что-то странное.
Получилось. Эмулятор собрался, но запуститься не может:
А что выдает
ldd ./xpeccy
?
CityAceE
21.12.2014, 02:15
А что выдает
ldd ./xpeccy
?
Вот что:
cityacee@Mini-PC:~/Xpeccy$ ldd ./xpeccy
libasound.so.2 => /usr/lib/arm-linux-gnueabihf/libasound.so.2 (0x4017c000)
libSDL-1.2.so.0 => /usr/lib/arm-linux-gnueabihf/libSDL-1.2.so.0 (0x40213000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x400f5000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x40085000)
libQtGui.so.4 => /usr/lib/arm-linux-gnueabihf/libQtGui.so.4 (0x4028b000)
libQtCore.so.4 => /usr/lib/arm-linux-gnueabihf/libQtCore.so.4 (0x40951000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x40b4f000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x40bf6000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x4002c000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x40c60000)
/lib/ld-linux-armhf.so.3 (0x40049000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x4009e000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x40110000)
libpulse-simple.so.0 => /usr/lib/arm-linux-gnueabihf/libpulse-simple.so.0 (0x40137000)
libpulse.so.0 => /usr/lib/arm-linux-gnueabihf/libpulse.so.0 (0x40142000)
libX11.so.6 => /usr/lib/arm-linux-gnueabihf/libX11.so.6 (0x40d44000)
libXext.so.6 => /usr/lib/arm-linux-gnueabihf/libXext.so.6 (0x40069000)
libcaca.so.0 => /usr/lib/arm-linux-gnueabihf/libcaca.so.0 (0x40e29000)
libEGL.so.1 => /usr/lib/libEGL.so.1 (0x40ef0000)
libfontconfig.so.1 => /usr/lib/arm-linux-gnueabihf/libfontconfig.so.1 (0x40f0b000)
libaudio.so.2 => /usr/lib/arm-linux-gnueabihf/libaudio.so.2 (0x40f36000)
libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x40f4d000)
libpng12.so.0 => /lib/arm-linux-gnueabihf/libpng12.so.0 (0x41007000)
libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x41028000)
libgobject-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0x41089000)
libSM.so.6 => /usr/lib/arm-linux-gnueabihf/libSM.so.6 (0x40019000)
libICE.so.6 => /usr/lib/arm-linux-gnueabihf/libICE.so.6 (0x400bb000)
libXi.so.6 => /usr/lib/arm-linux-gnueabihf/libXi.so.6 (0x400d6000)
libXrender.so.1 => /usr/lib/arm-linux-gnueabihf/libXrender.so.1 (0x400a9000)
libpulsecommon-1.1.so => /usr/lib/arm-linux-gnueabihf/libpulsecommon-1.1.so (0x410c5000)
libjson.so.0 => /usr/lib/arm-linux-gnueabihf/libjson.so.0 (0x41107000)
libdbus-1.so.3 => /lib/arm-linux-gnueabihf/libdbus-1.so.3 (0x41115000)
libxcb.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb.so.1 (0x41146000)
libslang.so.2 => /lib/arm-linux-gnueabihf/libslang.so.2 (0x41160000)
libncursesw.so.5 => /lib/arm-linux-gnueabihf/libncursesw.so.5 (0x4123f000)
libtinfo.so.5 => /lib/arm-linux-gnueabihf/libtinfo.so.5 (0x41262000)
libMali.so => /usr/lib/libMali.so (0x41283000)
libdrm.so.2 => /usr/lib/arm-linux-gnueabihf/libdrm.so.2 (0x412f8000)
libXfixes.so.3 => /usr/lib/arm-linux-gnueabihf/libXfixes.so.3 (0x41308000)
libexpat.so.1 => /lib/arm-linux-gnueabihf/libexpat.so.1 (0x41314000)
libXt.so.6 => /usr/lib/arm-linux-gnueabihf/libXt.so.6 (0x41334000)
libXau.so.6 => /usr/lib/arm-linux-gnueabihf/libXau.so.6 (0x4003e000)
libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x41374000)
libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0x413aa000)
libuuid.so.1 => /lib/arm-linux-gnueabihf/libuuid.so.1 (0x413b8000)
libwrap.so.0 => /lib/arm-linux-gnueabihf/libwrap.so.0 (0x413c4000)
libsndfile.so.1 => /usr/lib/arm-linux-gnueabihf/libsndfile.so.1 (0x413d2000)
libasyncns.so.0 => /usr/lib/arm-linux-gnueabihf/libasyncns.so.0 (0x41424000)
libXdmcp.so.6 => /usr/lib/arm-linux-gnueabihf/libXdmcp.so.6 (0x41430000)
libUMP.so => /usr/lib/libUMP.so (0x4143c000)
libnsl.so.1 => /lib/arm-linux-gnueabihf/libnsl.so.1 (0x4144a000)
libFLAC.so.8 => /usr/lib/arm-linux-gnueabihf/libFLAC.so.8 (0x41462000)
libvorbisenc.so.2 => /usr/lib/arm-linux-gnueabihf/libvorbisenc.so.2 (0x4149d000)
libvorbis.so.0 => /usr/lib/arm-linux-gnueabihf/libvorbis.so.0 (0x4160a000)
libogg.so.0 => /usr/lib/arm-linux-gnueabihf/libogg.so.0 (0x41634000)
libresolv.so.2 => /lib/arm-linux-gnueabihf/libresolv.so.2 (0x41641000)
libdri2.so.1 => /usr/lib/libdri2.so.1 (0x41659000)
SAM style
21.12.2014, 12:49
Вот что:
libegl1-mesa или libegl1-nvidia... Но это относится к видеодрайверам, кто их в зависимости эмулятора подтянул - большой вопрос...
Вот что:
Ну тогда еще
LD_DEBUG=files ./xpeccy
Там будет видно кто кого подгружает
SAM style
25.12.2014, 16:44
build 20141225
Эмуляция SAA1099 на портах 0FF/1FF. Как оно в реальности звучит - понятия не имею, на ютубовские ролики, вроде, похоже. Включается в опциях.
Возможность переименовывать ромсеты и геометрии в окне их редактирования.
Исправил несколько глюков...
...и наплодил новых (всё возможно)
[ deb 32bit (http://yadi.sk/d/NUG14m-8dcUPH) ][ deb 64bit (http://yadi.sk/d/KHW3BmKKdcUNc) ][ rpm 32bit (http://yadi.sk/d/BGiE5XrvdcUN2) ][ rpm 64bit (http://yadi.sk/d/-30AXEDKdcUMM) ][ win32 (http://yadi.sk/d/xSHh-EhRdcULC) ]
[bug] Микс огибающей в SAA таки неверный
...и наплодил новых (всё возможно)
возможно не новый, а старый баг.
tzx чет не грузиЦЦа, висит черным экраном.
возможно не новый, а старый баг.
tzx чет не грузиЦЦа, висит черным экраном.
так кстати ещё используется OUT в порт #7FFC для одновременного вывода на бордюр и переключения экранов.
(такое точно не-всякий эмуль осилит)
SAM style
27.12.2014, 00:27
возможно не новый, а старый баг.
tzx чет не грузиЦЦа, висит черным экраном.
tzx не весь поддерживается. Жду прихода дзена для осознания, что у меня не так.
так кстати ещё используется OUT в порт #7FFC для одновременного вывода на бордюр и переключения экранов.В режиме пентагона (обычного) это срабатывает. В todo записал - надо на всех машинах out переделать, чтобы во все подходящие порты работал, а не в первый перехвативший.
так кстати ещё используется OUT в порт #7FFC для одновременного вывода на бордюр и переключения экранов.
(такое точно не-всякий эмуль осилит)
за этот фокус знаю)
Многие эмули осиливают, да, не все..
Да и железные эмули тоже не все осиливают такой фокус.
Этот эмуль вроде такую адресацию понимает.
SAM style
05.01.2015, 13:39
build 20150104
Переделал I/O всех машин. Теперь порт сканируется по таблице. При OUT проходятся все порты, при IN - сканирование обрывается на первом подходящем. #7FFC, впрочем, сработает только в обычном пентагоне.
Отключенный SAA больше не обсчитывается, чтобы не отнимать время
Переделал микшер каналов в SAA. Всё равно что-то не то...
В CmakeLists.txt разрулены зависимости пакетов. Теперь при сборке без zlib, например, он в зависимости не попадёт.
[ deb 32 (https://yadi.sk/d/s9BxhkpndnpEz) ][ deb 64 (https://yadi.sk/d/eez9_SQJdnpEJ) ][ rpm 32 (https://yadi.sk/d/fqTTm6wIdnpDX) ][ rpm 64 (https://yadi.sk/d/f-dJUlw3dnpCA) ][ win32 (https://yadi.sk/d/QIUEpH6gdnoyE) ]
Q-Master
05.01.2015, 20:44
Переделал микшер каналов в SAA. Всё равно что-то не то...
С SAA что-то реально не то. etunes играют какую-то суровую ахинею. Возможно проблема биг-ендиана конечно... В zemu играет как надо.
molodcov_alex
06.01.2015, 02:04
Как вам правки для SAA спихнуть? :)
Точнее уже что-то сбросил, не уверен что всё верно сделал (нет опыта работы с git'ом).
SAM style
06.01.2015, 02:36
Как вам правки для SAA спихнуть? :)
Точнее уже что-то сбросил, не уверен что всё верно сделал (нет опыта работы с git'ом).Принял. Звук стал куда чище, чем в моём рукожопстве :v2_rolley
Если в мануале на AY ещё были формулы, как получить частоту из значения регистров, то в мануале на SAA вообще мизер - границы октав в КГц...
в мануале на SAA вообще мизер - границы октав в КГц...
Полупериод тонового генератора считается по формуле:
(511 - Number) << (8 - Octave)
Тактовая частота 8МГц, но качественны рендеринг на этой частоте довольно тяжел. Поэтому можно немного смухлевать и делать выборку звука с генераторов на частоте 1Мгц, ибо минимальный период генераторов все равно будет 512.
в ToDo загадКо по Spectrum +3:
пару Бетменов, один сразу сбрасывается, но это даже хорошо,
а вот второй даже пытается работать, но все равно сброс.Но самое интересное, что после него перестают монтироваться диски.Напрочь. Помогает только перезапуск эмууля.
Проверял их же в спекуляторе и SpecEmu. обе рабочие версии, с WOS-а
SAM style
06.01.2015, 14:06
в ToDo загадКо по Spectrum +3:
пару Бетменов, один сразу сбрасывается, но это даже хорошо,
а вот второй даже пытается работать, но все равно сброс.Но самое интересное, что после него перестают монтироваться диски.Напрочь. Помогает только перезапуск эмууля.
Проверял их же в спекуляторе и SpecEmu. обе рабочие версии, с WOS-а
2й образ, похоже, вводит u765 в такое состояние, которое даже сбросом не лечится :)
Вообще, я сейчас буду переписывать оба FDC (наконец-то), а потом искать глюки.
Q-Master
06.01.2015, 18:59
Вот сейчас etunes заработали практически нормально.
SAM style
12.01.2015, 03:45
В процессе переписывания и налаживания FDC (да, блин, сейчас 4 утра, я FDC эмулирую) обнаружил следующее:
во 2 образе батмана (для +3, dsk выше) после команды 08 считывается только 1 байт ответа из 2, после чего начинается упорное ожидание, когда uPD765 будет готов к команде, однако несчитанный байт так и висит в ожидании, не давая ему это сделать...
WTF, собственно?
А 1й диск батмана зачем-то лезет на дискокрут C. Обрезал выборку по 1 биту (только A, B) - влетел в то, что написано выше.
It is important to note that during result phase all bytes shown in command table must be read. uPD765 will not accept a new command until all bytes have been read
PS:ВГ93 уже переписан, всё работает. uPD765 на большинстве игр нормально работает на чтение.
SAM style
13.01.2015, 15:25
build 20150113
Полностью переписана эмуляция ВГ93 и uPD765.
Починена частота SAA1099 [Молодцов молодцом]
В отладчике Ctrl+T включает трассировку, любая несимвольная кнопка её останавливает.
В отладчик вернулся F8. Ставит временный брыкпоинт после команд call/rst/djnz и блочных типа ldir, остальные команды обрабатывает как при обычной трассировке по F7.
В отладчике появилась панель с состоянием FDC и выбранного FDD.
Вернулся звук магнитофона
Отладчик запоминает положение своего окна [хотелка rasmer'а]
Насчет ВГ93 на 95% уверен, в uPD765 остаются белые пятна.
В uPD765 команды записи заткнуты, они всегда выдают ошибку "защита от записи". Команды Read Track и все Scan сделаны по описанию, но не проверялись, т.к. не знаю, на чём... Насчет батмана я проблему описал, почему он действует в разрез мануала - понятия не имею. Ещё сейчас uPD765 кладёт на мотор дисковода - крутится, не крутится, а чтение всё равно идёт :)
[ deb 32 (https://yadi.sk/d/-oTqMK01dwbod) ][ deb 64 (https://yadi.sk/d/KT25AD_1dwbni) ][ rpm 32 (https://yadi.sk/d/5Oycr0kfdwbmy) ][ rpm 64 (https://yadi.sk/d/XJX0dGNAdwbk6) ][ win32 (https://yadi.sk/d/vWw2A0e1dwbj9) ]
есть идея наворотить команд лайн(смотрел слегка код - того что надо не нашел), плана: добавить запуск сразу с дебаггера, загрузка меток, подгрузка файлов (снапшотов, бинарников по адресам, в страницы), установка pc/sp - для разработки может быть удобно. Подключить getopt, например. Может у автора есть какие-то планы относительно этого? Или можно самому на свое усмотрение вкрутить и сюда выложить патч?
SAM style
13.01.2015, 17:42
есть идея наворотить команд лайн(смотрел слегка код - того что надо не нашел), плана: добавить запуск сразу с дебаггера, загрузка меток, подгрузка файлов (снапшотов, бинарников по адресам, в страницы), установка pc/sp - для разработки может быть удобно. Подключить getopt, например. Может у автора есть какие-то планы относительно этого? Или можно самому на свое усмотрение вкрутить и сюда выложить патч?Аргументы ком.строки? Сейчас есть один - для указания запускаемого профиля, остальное - имена файлов для загрузки. Собери пожелания в кучу, выдай сюда - сделаю. Например так:
-b file.bin bank adr : загрузить бинарник file.bin в банк bank по адресу adr
С pc/sp придётся помучаться, т.к при создании компа он сбрасывается, а это не везде к одинаковым результатам приводит (напр, в ATM2/Baseconf)
Собери пожелания в кучу, выдай сюда - сделаю.
пожелания (основываются на моем понимании getopt):
-pc ADDR (например, 4000, hex, без 0х, опасаюсь говорить за всех, но десятичные ни кому не нужны, наверное), может быть несколько раз в коммандной строки, ожидается, что актуально будет только последнее значение
-sp ADDR (то же самое)
-d - после запуска сразу открыто окно дебаггера и дизассемблер показывает на pc
-b ADDR - установить текущий base pointer, может встречаться несколько раз
-a PAGE - включить (сделать текущей) страницу (вероятно несовместимо с 48К)
-f FILE_PATH - вгрузить файл по base pointer как бинарник, с учетом текущей страницы, может быть несколько раз
низкий приоритет
-l FILE_PATH - взгрузить файл с метками (если дебуггер поддерживает метки)
-bp ADDR - установить брякпоинт - может быть несколько
итого, использование видится где-то так:
xpeccy -p my_128K_profile -d -a 0 -b 4000 -f ./my_gfx -b 6000 -f ./my_code -sp 6000 -pc 6000
заранее спасибо)
SAM style
13.01.2015, 19:03
Я не пользую getopt, вместо него руками всё разруливается. Потому как во-первых, он не везде есть, а во вторых не везде одинаково работает (BSD getopt != UNIX getopt)
Боюсь спросить, каким ассемблером пользуешься, что он не может собрать SNA и надо бинарники подгружать? Правда, для >128K SNA уже не подойдёт...
А так да, постараюсь сделать
Боюсь спросить, каким ассемблером пользуешься, что он не может собрать SNA и надо бинарники подгружать? Правда, для >128K SNA уже не подойдёт...
На мой взгляд использование SNA для загрузки кода - это крайне плохая практика, т.к. SNA подразумевает неконтроллируемую порчу памяти, что подразумевает вероятность порчи самого кода :)
SAM style
13.01.2015, 22:14
На мой взгляд использование SNA для загрузки кода - это крайне плохая практика, т.к. SNA подразумевает неконтроллируемую порчу памяти, что подразумевает вероятность порчи самого кода :)У меня можно грузануть SNA прямо из дебагера - получится начальное состояние, отлаживай сколько влезет.
SAM style
22.01.2015, 17:38
build 20150122
Дебагер научился показывать метки. Заменяется адрес инструкции или 2-байтовый аргумент, включая jr/djnz, потому как в результате там всё равно формируется адрес. Включается-отключается по Ctrl+L
Добавлены новые входные аргументы. Список ниже.
-d | --debug : после запуска сразу включить отладчик.
-p | --profile <name> : включить профиль <name>. Может встречаться несколько раз. По умолчанию - либо последний используемый, либо default (зависит от галки в настройках). Надо заметить, что при первом включении профиля привязанный к нему ZX сбрасывается.
-b | --bank <nr> : включить в окно #C000 страницу ОЗУ с указанным номером.
-a | --adr <adr> : задать адрес для загрузки (см. --file)
-f | --file <path> : загрузить бинарный файл по адресу, указаному в --adr. Если достигнут #FFFF, загрузка прерывается.
--bp <adr> : установить ловушку fetch на указаный адрес. Точки останова привязываются не к адресам, а к конкретным ячейкам памяти.
--pc <adr> : установить PC
--sp <adr> : установить SP
-l | --labels <path> : загрузить список меток. формат файла - результат команды LABELSLIST в SJASM+. Однако вот (http://zx-pk.ru/showpost.php?p=776008&postcount=1072), поэтому пока экспериментальный характер.
Всё остальное нераспознанное воспринимается как путь файла для загрузки.
Все номера и адреса обрабатываются strtol, который может есть 8-,10- и 16-ричные числа. Для 16-ричных нужен префикс 0x.
Почти все операции имеют сомнительную ценность на ATM2/BaseConf, потому как после сброса они аппаратно переходят в CPM-режим и во всех 4 окнах памяти ставится последняя доступная страница ПЗУ.
Так же при изменении PC не выполняются процедуры сброса - переменные BASIC/TRDOS/итд не будут проинициализированы.
[ deb 32 (https://yadi.sk/d/3__I-N2yeATBs) ][ deb 64 (https://yadi.sk/d/EkLh5oxmeATAp) ][ rpm 32 (https://yadi.sk/d/_ApiQaBueAT9X) ][ rpm 64 (https://yadi.sk/d/tU3QrnMheAT8A) ][ win32 (https://yadi.sk/d/Z8W_HJIIeAT6g) ]
organism
23.01.2015, 22:41
Muscate Nut - http://zxaaa.untergrund.net/view_demo.php?id=3380 - зависает на картинке с названием.
SAM style
24.01.2015, 01:08
Muscate Nut - http://zxaaa.untergrund.net/view_demo.php?id=3380 - зависает на картинке с названием.
Нашёл в чём дело:
6338 EI
6339 JR 6338Косяк в том, что в эмуле INT схватывается только по переднему фронту (возникновение во время выполнения команды), а EI отключает обработку прерываний до следующей команды. Так что если INT пришёл во время EI - он не обработается...
Интересная дема - переход к следующей части делается из обработчика прерываний.
Дело ясно, как пень - надо делать реакцию на INT по всей его длине.
Muscate Nut - http://zxaaa.untergrund.net/view_demo.php?id=3380 - зависает на картинке с названием.
на вот этой? а это разве не конец демки?
http://savepic.su/4827938.png
SAM style
27.01.2015, 21:24
на вот этой? а это разве не конец демки?Нет, уже на 2й части - с глазами и ртом. Это косяк эмулятора, уже выправлено к следующей сборке.
http://samstyle.narod.ru/xpeccy/xmuscate.png
SAM style
29.01.2015, 15:32
build 20150128
Исправлена обработка сигнала INT
F8 в отладчике работает и на HALT
Найдена неточность в загрузке FDI. Теперь ZX-Format должен грузиться
Найдена ошибка в загрузке Z80.
Переписана загрузка RZX - теперь он подгружается блоками во время проигрывания, это дало возможность грузить файлы с несколькими снапшотами. Сбои присутствуют, но уже реже.
[ deb32 (https://yadi.sk/d/kESvGbD1eKTts) ][ deb64 (https://yadi.sk/d/3tsLoSC8eKTtB) ][ rpm32 (https://yadi.sk/d/qrJEtgJBeKTru) ][ rpm64 (https://yadi.sk/d/OW3rhak_eKTqi) ][ win32 (https://yadi.sk/d/PatY-iAjeKTpV) ]
PS:кто-нибудь знает, как средствами zlib определить размер распакованного блока до распаковки? Пока что под выходной буфер выделяю 16Мб, по идее хватает на 40-50 минут проигрывания rzx, но всякое может случится...
Найдена ошибка в загрузке Z80.
что за ошибка?
PS:кто-нибудь знает, как средствами zlib определить размер распакованного блока до распаковки? Пока что под выходной буфер выделяю 16Мб, по идее хватает на 40-50 минут проигрывания rzx, но всякое может случится...
а зачем его определять? создаешь DeflateStream и читаешь из него сколько нужно :)
а вообще длина распакованного снэпшота в заголовке rzx блока имеется ;)
SAM style
29.01.2015, 17:58
что за ошибка?
Пропустил установку IX и IY.
а зачем его определять? создаешь DeflateStream и читаешь из него сколько нужно :)
а вообще длина распакованного снэпшота в заголовке rzx блока имеется ;)Не спаншота, а блока #80 - это уже данные с портов, там сами размеры кадров упакованы в общей куче.
Глубоко в zlib не лазил. Похоже, надо пользовать inflate() как поток и выколупывать оттуда по кадру за раз, а не пытаться сразу всё вытащить...
Пропустил установку IX и IY.
Не спаншота, а блока #80 - это уже данные с портов, там сами размеры кадров упакованы в общей куче.
Глубоко в zlib не лазил. Похоже, надо пользовать inflate() как поток и выколупывать оттуда по кадру за раз, а не пытаться сразу всё вытащить...
а DeflateStream не содержит информации сколько там реально записано. Так что никак не узнаешь :)
В дотнете родная реализация DeflateStream не поддерживает расширенный заголовок у zlib, я долго разбирался почему оно не читается, оказалось нужно скипнуть 2 байта заголовка :) Пока разбирался пришлось и в структуру потока заглянуть, нету там информации о длине несжатого потока :)
Кстати в ZXMAK2 два варианта реализации DeflateStream используется, один от SharpZipLib (более стандартный) и один от дотнет фреймворка. Помню на какихто файлах одна из реализаций валилась с ошибкой, но не помню какая именно. Нужно будет пройтись по коду проверить везде ли нормальная реализация используется :)
Если есть необычные снэпшоты или образы со сжатием, которые не всеми эмулями читаются. кидай - пригодятся для проверки :)
Посмотрел как в ZXMAK2 реализовано, Длина сжатого потока вычисляется как длина блока - 13 (длина заголовка).
А дальше из этого потока создаем DeflateStream и читаем из него в цикле для каждого фрейма:
counter = reader.ReadUInt16();
readsCount = reader.ReadUInt16();
...
ioData = reader.ReadBytes(readsCount);
т.е. неcжатая длина записана в первых байтах сжатого потока :)
SAM style
29.01.2015, 20:14
а DeflateStream не содержит информации сколько там реально записано. Так что никак не узнаешь :)
Посмотрел как в ZXMAK2 реализовано, Длина сжатого блока вычисляется как длина блока - 13 (длина заголовка).
А дальше из этого блока создаем DeflateStream и читаем из него в цикле для каждого фрейма:
counter = reader.ReadUInt16();
readsCount = reader.ReadUInt16();
ioData = reader.ReadBytes(readsCount);
т.е. незжатая длина записана в первых байтах сжатого потока :)
Ну, я примерно о том же - 2 слова + теперь уже известное кол-во байт. Только у меня простой C :rolleyes:.
а в Xpeccy есть ресамплинг видео под 60 Гц (интерполяция пикселов в зависимости от времени кадра)? Интересно как реализовано :)
Я вот думаю как бы это на стейтах через альфа блендинг в Direct3D реализовать, а вообще нужно шейдеры прикручивать, без них фильтры делать неудобно :)
SAM style
29.01.2015, 21:05
а в Xpeccy есть ресамплинг видео под 60 Гц (интерполяция пикселов в зависимости от времени кадра)? Интересно как реализовано :)Эк вы, батенька, лихо загнули. Не, просто по таймеру 20мс на экран бухается отрисованная в прошлом кадре картинка и даётся сигнал к началу эмуляции текущего.
Эк вы, батенька, лихо загнули. Не, просто по таймеру 20мс на экран бухается отрисованная в прошлом кадре картинка и даётся сигнал к началу эмуляции текущего.
на 60 Гц скролы не плавные, в ZXMAK2 тоже так. но про эти 60 Гц мне уже все уши прожужжали, мол раз дрожит на 60 Гц - значит совсем плохо дело :biggrin:
у себя я выставил на дисплее 75 Гц и все идеально плавно :)
Тестик (http://www.retroleum.co.uk/electronics-articles/a-diagnostic-rom-image-for-the-zx-spectrum)
Как то фигово работает.
Floating bus Test вообще не работает.
тест спикера работает как хочет, через раз или вообще никак.
Так же точно плохо работает тест AY.
ЧЯДНТ ?
SAM style
01.02.2015, 16:56
Тестик (http://www.retroleum.co.uk/electronics-articles/a-diagnostic-rom-image-for-the-zx-spectrum)
Как то фигово работает.
Floating bus Test вообще не работает.
тест спикера работает как хочет, через раз или вообще никак.
Так же точно плохо работает тест AY.
ЧЯДНТ ?Создал новый профиль с ZX48K и этим ROM.
5 раз прогнал бипер - подхрипывает, но звук всегда есть.
AY тоже работает там, где он есть по карте портов (а это не в ZX48K. надо добавить, кстати).
Floating bus - это порт FF. Тут до сих пор споры, как он правильно работает. Он пока есть только у 48К модели. В каких-то моделях его попросту не реализовано железно...
у меня то есть звук, то нет, буд-то теряет фокус.. и на бипере и на АУ. на ау может два канала воспроизвести, шумы -ни в одном.. профиль 128к делал.
может потому что - венда? что делать?
в спекуляторе - нормально...
SAM style
01.02.2015, 17:11
профиль 128к делал.Какая архитектура zx выбрана? Только что в винде на виртуалке проверил Pentagon - звук есть, шум есть, бипер есть.
SAM style
01.02.2015, 17:23
А КАК ТАМ ЕЕ ВЫБИРАТЬ ТО... ой... ну геометрию можно, звук..
Упакуй свой вариант и выложи, чтобы не было разночтений в архитектуре - проверю.Делаешь новый профиль, переключаешься туда, выбираешь Machine:Pentagon, 128K, Romset с этим ромом, сброс в 128К. Всё, сброс, тест стартует, AY звучит.
PS: Эмулятор, оказывается, падает на удалении профилей.
SAM style
01.02.2015, 19:11
Эмуулятор оказывается еще и звук теряет)) Шутка)
извиняюсь, но после полной перезагрузки (что делается оч. редко) звук перестал пропадать. Видимо где-то и что-то с SDL не срослось в моей системе, и так интересно глюкнул звук. во всем отсальном звук был без проблем.Винду в сон отправляешь? Долго так делать не рекомендуется, могут быть и другие заскоки.
Floating bus - это порт FF. Тут до сих пор споры, как он правильно работает. Он пока есть только у 48К модели. В каких-то моделях его попросту не реализовано железно...
Floating bus - это пустая шина, когда на нее никто данные не выставляет, в такие моменты на ней должен быть мусор. Обнаруживается по вектору прерывания. ZXMAK2 на нее всегда #FF ставит, нужно будет поисследовать как ведет себя оригинальный спектрум и рандомный генератор при необходимости прикрутить :)
А порт #FF неплохо изучен, как для 48, так и для 128 моделей. В ZXMAK2 порт #FF для 48 и 128 моделей эмулируется, без точной его эмуляции некоторые игры не пойдут или будут зависать или глючить. Например Sidewize, если порт #FF работает неправильно, в ней будут мерцать спрайты, а если он вообще не реализован, то игра зависнет.
Сразу скажу - отладка точной эмуляции порта #FF сложнее чем contended memory. В сочетании с эмуляцией contended memory очень зубодробильная смесь получается - малейшее отклонение на 1 такт и все плывет :)
Для начала нужно добиться чтобы никогда не мерцали спрайты в Sidewize. Кроме нее можно тестить floatbus, btime, stime, rotatrix и другими тестами.
---------- Post added at 19:36 ---------- Previous post was at 19:28 ----------
Тестик (http://www.retroleum.co.uk/electronics-articles/a-diagnostic-rom-image-for-the-zx-spectrum)
Как то фигово работает.
Floating bus Test вообще не работает.
тест спикера работает как хочет, через раз или вообще никак.
Так же точно плохо работает тест AY.
ЧЯДНТ ?
интересный тестик, интересно как он должен выглядеть на реальной машине? :smile:
SAM style
01.02.2015, 20:56
Floating bus - это пустая шина, когда на нее никто данные не выставляет, в такие моменты на ней должен быть мусор. Обнаруживается по вектору прерывания. ZXMAK2 на нее всегда #FF ставит, нужно будет поисследовать как ведет себя оригинальный спектрум и рандомный генератор при необходимости прикрутить :)Насколько я знаю, не совсем мусор, а последний считанный видеосистемой атрибут. Я точно знаю, как он реализован на скорпионе, и в ATM2 он работает не так, как на скорпионе. Бухнуть туда атрибут в моём эмуляторе не проблема, только вот как оно на бордюре работает? В скорпионе по ходу бордюра с порта считывается #FF, в ATM2 - нет.
в твоем эмууле проблемно тестить ром-ы)) пока прикрутишь - запаришься..
вот у Sam Стиля с этим проще, потестить же)
на самом деле все просто:
1) создаешь в папке эмулятора папку ROMS и кладешь в нее ром файлы которые хочешь добавить
3) кладешь в нее также файлик ~mapping.xml из ROMS.PAK (это зип архив)
4) открываешь ~mapping.xml блокнотом и добавляешь новый ромсет, по аналогии с другими:
<RomSet name="ZX-TEST-V1.15">
<Page name="128" image="Diag_ROM_v12.ROM"/>
<Page name="SOS" image="Diag_ROM_v12.ROM"/>
<Page name="DOS" image="Diag_ROM_v12.ROM"/>
</RomSet>
все, можно запускать эмулятор, в нем появится добавленый ромсет :)
Сам файл ROMS.PAK переделывать или удалять не нужно - из него будут грузиться файлы, которых нет в папке ROMS
В качестве имени страницы можно указать RAW, тогда весь образ загрузится в соответствии со стандартной раскладкой страниц для нужной модели спектрума.
Можно также указать смещение и длину которую нужно читать из файла (по умолчанию читается весь файл с начала и до конца):
<RomSet name="ZX-TEST-V1.15">
<Page name="128" image="Diag_ROM_v12.ROM" offset="0x0000" length="0x4000"/>
<Page name="SOS" image="Diag_ROM_v12.ROM" offset="0x0000" length="0x4000"/>
<Page name="DOS" image="Diag_ROM_v12.ROM" offset="0x0000" length="0x4000"/>
</RomSet>
---------- Post added at 02:50 ---------- Previous post was at 02:39 ----------
Насколько я знаю, не совсем мусор, а последний считанный видеосистемой атрибут. Я точно знаю, как он реализован на скорпионе, и в ATM2 он работает не так, как на скорпионе. Бухнуть туда атрибут в моём эмуляторе не проблема, только вот как оно на бордюре работает? В скорпионе по ходу бордюра с порта считывается #FF, в ATM2 - нет.
порт #FF в скорпионе и АТМ - это не тот #FF... :smile: Это просто костыль чтобы заставить игры хоть как-то работать.
Я про настоящий порт #FF из оригинального спектрума говорю, тест на него расчитан. И вот его отлаживать тяжело - гдето малейшая ошибка и все плывет :)
SAM style
02.02.2015, 04:35
порт #FF в скорпионе и АТМ - это не тот #FF... :smile: Это просто костыль чтобы заставить игры хоть как-то работать.
Я про настоящий порт #FF из оригинального спектрума говорю, тест на него расчитан. И вот его отлаживать тяжело - гдето малейшая ошибка и все плывет :)
http://cs.wikipedia.org/wiki/Port_255
Перевод на английский меня подтверждает - по бордюру читается FF, по экрану - атрибут отображаемой точки. Т.е как в скорпионе.
Или мне опять не всё рассказали? :v2_confu:
И ЭТО ты называешь простооооооооооо??????????? ОООООООООООООООО
У Самстиля в писять раз меньше телодвижений надо делать))
И на самом деле я так уже делал, менял как-то ROM на Spectrum +3, говорю же - замороченно)
если умеешь редактировать текстовый файл, то это будет проще чем другие способы. Ну а если нет, то тогда конечно сложно :smile:
Что именно сложности вызывает? Операция выделения и копирования текста в текстовом файле или ввод имени файла?ъ
Если сложность вызывает вытянуть из ROMS.PAK файл ~mapping.xml, могу сделать чтобы эмулятор грузил его из roms.config, а не из ROMS.PAK и папки ROMS. Тогда вообще все упроститься до:
1) создать папку ROMS и накидать в нее новых ромов
2) открыть roms.config блокнотом и вписать новые файлы с ромами
Зато после того как один раз впишешь, можно удобно и быстро переключаться между разными ромсетами (закладка Memory в окне конфигурации машины)
SAM style
02.02.2015, 20:23
если умеешь редактировать текстовый файл, то это будет проще чем другие способы. Ну а если нет, то тогда конечно сложно :smile:Куда уж нам с нашими мышетыкательными методами...
http://samstyle.narod.ru/xpeccy/romsets.jpg
Тухлую тему завели, идите в отдельную и спорьте там, у кого настройки удобнее.
всё относительно ;)
я когда пускал xspeccy - чуть не посидел
от того какую ром куда поставить
это мягко скажем не очевидно если этим не занимаешся всё время
---------- Post added at 19:29 ---------- Previous post was at 19:27 ----------
p.s. это все к тому что в дефолте должно быть всё настроено чтоб работало
p.p.s. я у себя делал чтоб можно было в комманд лайне подменить ром, без гуя совсем
мне удобно, ибо я люблю command line и консоль
а тем кто только гуй, им окошки подавай.
SAM style
02.02.2015, 20:45
p.s. это все к тому что в дефолте должно быть всё настроено чтоб работалоТак оно и работает - на минимальной конфигурации 48К, каждый новый профиль таким и создаётся. А как и чем дальше набухивать эмулируемый пепелац - остаётся на совести пользователя.
SAM style
09.02.2015, 02:50
Итак, минуло 6 лет боли и унижений... Сегодня, 9 февраля, у поделия годовщина. Надеюсь, хоть кому-то оно стало полезно.
build 20150209
Исправлено падение на удалении профиля, потом исправлено падение на удалении текущего профиля.
При удалении профиля вместе с ним к праотцам отправляются его конфиг и дампы cmos и nvram, чтобы не захламлять каталог конфигов.
В карту портов ZX48 добавлены AY и мышь.
Подвинул OUT на такт назад. Похоже, так правильней - вывод осуществляется на 4 такте цикла IO, а не после него.
[ deb32 (https://yadi.sk/d/6aPo2GwEeYoLn) ][ deb64 (https://yadi.sk/d/8DSkg4NHeYoLY) ][ rpm32 (https://yadi.sk/d/s0jKlY3keYoLE) ][ rpm64 (https://yadi.sk/d/rh17LhMxeYoL2) ][ win32 (https://yadi.sk/d/4pNAmDrPeYoKm) ]
PS: Тут давно не появлялся QMaster, а мне интересно знать, скомпилится ли src/libxpeccy/filetypes/fdi.c и будет ли работать эмуль на big-endian, потому как попробовал использовать le16toh для перевода, но потом раскопал, что это "нестандартный" метод.
Q-Master
11.02.2015, 23:00
При сборке
Linking CXX executable xpeccy
CMakeFiles/xpeccy.dir/src/libxpeccy/filetypes/rzx.c.o: In function `rzxLoadFrame':
rzx.c:(.text+0x804): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
В целом все ок. Я не заметил проблем с fdi.c.
SAM style
11.02.2015, 23:06
При сборке
Linking CXX executable xpeccy
CMakeFiles/xpeccy.dir/src/libxpeccy/filetypes/rzx.c.o: In function `rzxLoadFrame':
rzx.c:(.text+0x804): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
В целом все ок. Я не заметил проблем с fdi.c.
А теперь главный вопрос - загрузка fdi нормально работает? Хотя бы тех, что нормально работали до этого.
Впрочем, я уже перестраховался и сделал свои swap16 и swap32. Оно, конечно, где-то в byteswap.h есть аналогичные, но это уже мелочь.
А насчет tmpnam vs mkstemp - мне tmpnam удобнее, т.к. ему не нужен образец пути и он не зависит от оси.
ram_scan
12.02.2015, 10:49
А насчет tmpnam vs mkstemp - мне tmpnam удобнее, т.к. ему не нужен образец пути и он не зависит от оси.
tmpnam недостаточно секурное.
SAM style
12.02.2015, 14:09
tmpnam недостаточно секурное.
Разве что из-за этого:
Вызывать функцию tmpnam можно несколько раз, но не более чем TMP_MAX (обычно TMP_MAX = 238328) раз.Но это надо сильно постараться... Используется только для rzx, чтобы вытаскивать оттуда снапшоты, а потом передать путь в функцию загрузки снапшота и потом удалить временный файл.
ram_scan
13.02.2015, 11:00
Разве что из-за этого:Но это надо сильно постараться... Используется только для rzx, чтобы вытаскивать оттуда снапшоты, а потом передать путь в функцию загрузки снапшота и потом удалить временный файл.
Не. tmpnam создает только имя. За время между рожанием имени и открытием файла другая программа может подменить путь или пошаманить с символической ссылкой, и файл попадет не туда куда было задумано. Еще с переполнением буфера там залепуха есть.
SAM style
13.02.2015, 17:43
Не. tmpnam создает только имя. За время между рожанием имени и открытием файла другая программа может подменить путь или пошаманить с символической ссылкой, и файл попадет не туда куда было задумано. Еще с переполнением буфера там залепуха есть.
Окааай, а если я сгенерю имя себе в sname[L_tmpnam] и добавлю к нему суффикс "-xpeccy.tmp", то другие процессы его у меня отнять не должны, так?
Просто надо на C получить уникальное имя файла в месте, где 100% есть возможность записи, желательно ОС-независимым методом (без перебирания TMP, TEMP, TMPDIR...)
Q-Master
13.02.2015, 19:19
А теперь главный вопрос - загрузка fdi нормально работает? Хотя бы тех, что нормально работали до этого.
Впрочем, я уже перестраховался и сделал свои swap16 и swap32. Оно, конечно, где-то в byteswap.h есть аналогичные, но это уже мелочь.
fdi я не проверял. У меня они не факт что есть. А вот трд нормально загружаются.
А насчет tmpnam vs mkstemp - мне tmpnam удобнее, т.к. ему не нужен образец пути и он не зависит от оси.
Это не ко мне. Это к цомпилятору.
SAM style
13.02.2015, 19:53
fdi я не проверял. У меня они не факт что есть. А вот трд нормально загружаются.Для trd не нужна смена порядка байт. Вот, например, fdi ZXFormat#1 - тыц (http://samstyle.narod.ru/test/ZXF61_O.FDI).
SAM style
14.02.2015, 21:56
Хм... 1000 get!
http://samstyle.narod.ru/addons/1000get.jpg
Q-Master
15.02.2015, 18:56
Для trd не нужна смена порядка байт. Вот, например, fdi ZXFormat#1 - тыц (http://samstyle.narod.ru/test/ZXF61_O.FDI).
Забавно, но в режиме pentevo диск не видится вообще, а в режиме пентагона все ОК. Все загрузилось и заиграло.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot