Винду в сон отправляешь? Долго так делать не рекомендуется, могут быть и другие заскоки.
Вид для печати
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 ----------
интересный тестик, интересно как он должен выглядеть на реальной машине? :smile:
Насколько я знаю, не совсем мусор, а последний считанный видеосистемой атрибут. Я точно знаю, как он реализован на скорпионе, и в ATM2 он работает не так, как на скорпионе. Бухнуть туда атрибут в моём эмуляторе не проблема, только вот как оно на бордюре работает? В скорпионе по ходу бордюра с порта считывается #FF, в ATM2 - нет.
на самом деле все просто:
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 ----------
порт #FF в скорпионе и АТМ - это не тот #FF... :smile: Это просто костыль чтобы заставить игры хоть как-то работать.
Я про настоящий порт #FF из оригинального спектрума говорю, тест на него расчитан. И вот его отлаживать тяжело - гдето малейшая ошибка и все плывет :)
http://cs.wikipedia.org/wiki/Port_255
Перевод на английский меня подтверждает - по бордюру читается FF, по экрану - атрибут отображаемой точки. Т.е как в скорпионе.
Или мне опять не всё рассказали? :v2_confu:
если умеешь редактировать текстовый файл, то это будет проще чем другие способы. Ну а если нет, то тогда конечно сложно :smile:
Что именно сложности вызывает? Операция выделения и копирования текста в текстовом файле или ввод имени файла?ъ
Если сложность вызывает вытянуть из ROMS.PAK файл ~mapping.xml, могу сделать чтобы эмулятор грузил его из roms.config, а не из ROMS.PAK и папки ROMS. Тогда вообще все упроститься до:
1) создать папку ROMS и накидать в нее новых ромов
2) открыть roms.config блокнотом и вписать новые файлы с ромами
Зато после того как один раз впишешь, можно удобно и быстро переключаться между разными ромсетами (закладка Memory в окне конфигурации машины)
Куда уж нам с нашими мышетыкательными методами...
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 и консоль
а тем кто только гуй, им окошки подавай.
Итак, минуло 6 лет боли и унижений... Сегодня, 9 февраля, у поделия годовщина. Надеюсь, хоть кому-то оно стало полезно.
build 20150209
- Исправлено падение на удалении профиля, потом исправлено падение на удалении текущего профиля.
- При удалении профиля вместе с ним к праотцам отправляются его конфиг и дампы cmos и nvram, чтобы не захламлять каталог конфигов.
- В карту портов ZX48 добавлены AY и мышь.
- Подвинул OUT на такт назад. Похоже, так правильней - вывод осуществляется на 4 такте цикла IO, а не после него.
[ deb32 ][ deb64 ][ rpm32 ][ rpm64 ][ win32 ]
PS: Тут давно не появлялся QMaster, а мне интересно знать, скомпилится ли src/libxpeccy/filetypes/fdi.c и будет ли работать эмуль на big-endian, потому как попробовал использовать le16toh для перевода, но потом раскопал, что это "нестандартный" метод.