Вход

Просмотр полной версии : Unreal, работа с диском и fast=0



moroz1999
08.04.2011, 01:22
В Unreal 0.37.5 есть любопытный баг. По дефолту в конфиге включена настройка fast=1:
Fast=1 ; disable all FDD/FDC delays. some programs will not work

Как гласит описание, эта настройка отключает эмуляцию всевозможных задержек при работе с дисководом, что даёт прирост в скорости при работе с дискетой, но потенциально может привести к неработоспособности некоторого софта.
На практике же получается обратное - некоторый софт отказывается работать с Fast=0, который должен по идее быть более совместимым.
Сдаётся мне, что Fast=0 проявляет какой-то баг или несовместимость, устранив который, можно улучшить работу Unreal.

С Fast=0 не пашет:
http://vtrdos.ru/press/buzz/BUZZ_15.ZIP - не грузит статьи из меню, мигает зеленым бордюром и дальше не идет.
http://vtrdos.ru/sbor/FUNTOPUS.ZIP - не грузит демо 5th Element. Версия из сборника с пати работает.

Есть еще одна проблема, не связанная с fast=0:
http://vtrdos.ru/sbor/CHORDOUT.ZIP - вообще никак не запускается в Unreal, сбрасывает после интро. В z80Stealth работает отлично.

Прошу помощи у всех спецов с выяснением причин возникновения проблем. Если удастся понять, что приблизительно происходит, можно помочь текущему разработчику Unreal исправить эту проблему, что еще больше приблизит к максимальной стабильности.
Сам я эту задачу не осилю - не имею ни малейшего опыта ни в работе ВГ, ни в функционировании ПЗУ или TR-DOS.

Rindex
08.04.2011, 01:35
Есть еще одна проблема, не связанная с fast=0:
http://vtrdos.ru/sbor/CHORDOUT.ZIP - вообще никак не запускается в Unreal, сбрасывает после интро.

В Спекуляторе тоже сбрасывает. А вот в Unreal-fix работает. Только я что-то не понял, там музыки нет что-ли никакой? Я имею ввиду часть с гитарой.

P.S. В ZXSpin 0.7s работает тоже.

moroz1999
08.04.2011, 02:10
В Спекуляторе тоже сбрасывает. А вот в Unreal-fix работает.В Unreal-fix если выставить fast=0, тоже начинает сбрасываться :) Значит, проблема скорее всего родственная, но в 0.37.5 ни с fast, ни без него не работает.


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

goodboy
09.04.2011, 00:14
Есть еще одна проблема, не связанная с fast=0:
http://vtrdos.ru/sbor/CHORDOUT.ZIP - вообще никак не запускается в Unreal, сбрасывает после интро.

а какая модель эмулируется ?
в лоадере есть переключение страниц по #FD с включённым 6ым битом - может не всюду корректно работать.

ld a,#50
out (#fd),a

moroz1999
09.04.2011, 03:22
Стандартный пентагон, по идее. Я пробовал в z80Stealth - всё работает. В Unreal в зависимости от версии, как выяснилось.

ZXMAK
13.09.2011, 03:20
Есть еще одна проблема, не связанная с fast=0:
http://vtrdos.ru/sbor/CHORDOUT.ZIP - вообще никак не запускается в Unreal, сбрасывает после интро. В z80Stealth работает отлично.


в первом ZXMAK v0.285 работает нормально, но там движок ВГ93 навороченый. В ZXMAK.NET и ZXMAK2 движок ВГ93 на 70% от unreal (а машина состояний на все 90%), поэтому тоже не работает :)

проблема заключается в некорректной машине состояний для комманд позиционирования, а также наличию лишних задержек, которые явно не нужны. При отключении fast (wd93_delay), все эти задержки убираются и поэтому все начианает работать.

Суть в том что время выполнения команды SEEK занимает очень много времени. В то время как CHORDOUT уже через 656 тактов начинает выполнять следующую команду, т.к. дорожки назначения и в регистре track совпадают.

Но есть также проблема с машиной состояний. Даже если вставить проверку и уменьшить задержку до минимума, при включенном wd93_delay нужно несколько раз обратиться к ВГ93 чтобы позиционирование завершилось. А CHORDOUT не делает ни одного обращения между отправкой команды SEEK и следующими действиями.

Эту проблему я устранил в ZXMAK205, но машину состояния конечно нужно переделывать. В unreal она даже не соответствует документации на WD179x.

moroz1999
24.09.2011, 22:14
Отлично, спасибо!