PDA

Просмотр полной версии : Простой биперный движок



Mick
03.02.2021, 13:39
Ищется простой биперный движок с музыкой главным условием чтобы он не использовал расширенные команды Z80 или по минимум (чтобы можно было портировать).
Нужно для моего проекта Даунгейда Ленинграда на КР580ВМ80А. Иными словами чтобы этот движок осилил отечественный процессор ВМ80А.
Сразу отвечу, необходимые 3,5МГц есть, т.е. в тактах провала не должно быть. Нужен только код и музыка.
Порт 0xFE тот же самый.

ivagor
03.02.2021, 14:23
Несколько примеров с исходниками, про которые вспомнил: 1 (http://www.pc01.lviv.ua/forum/viewtopic.php?f=3&t=15&start=35), 2 (http://www.pc01.lviv.ua/forum/viewtopic.php?f=3&t=15&start=31), 3 (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=995744&viewfull=1#post995744). Но не все так просто, т.к. у тебя есть торможение, то пересчитать делители надо с его учетом. А если пересчитать просто, без учета торможения, то будет фальшивить.

Mick
03.02.2021, 14:39
Но не все так просто, т.к. у тебя есть торможение, то пересчитать делители надо с его учетом.

Прошу прощения за нескромность, ты вроде считал на сколько тормозит, то как бы можешь подсказать на сколько надо пересчитывать.
Во вторых у Львова ПК01 вроде не 3,5МГц тактовая, то один фиг пересчитывать надо.

- - - Добавлено - - -

По поводу Exolona забавно выходит - его сначала с ZX портировали на Специалист и Вектор, а теперь можно "обратно" портировать под недоЛенинград :)

ivagor
03.02.2021, 16:04
на сколько надо пересчитывать
К сожалению нет универсального коэффициента или множителя/делителя, надо смотреть конкретную процедуру и считать такты команд основного цикла с учетом недоленинградского торможения. Еще проблема в том, что нет эмулятора с таким торможением, и я бы не стал надеяться на его появление, что затрудняет отладку. В эмуляторе конечно работать будет, только в нем не будет слышно фальши когда она будет на реале и наоборот.

- - - Добавлено - - -

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

Mick
03.02.2021, 19:13
Хотя если биперить из пзу, то там у тебя тормозов нет (если озу при этом не читать) и можно адекватно отлаживать в эмуляторе

Ну у Спектрума тоже тормоза есть свои. Тем более в отличии от того же Львова ПК01 и Специалиста, частота проца тут 3,5МГц. Так что возможно удастся компенсировать недостачу тактов.

ivagor
03.02.2021, 20:07
Тормоза популярных спектрумов эмулируются (ленинград в unreal как скорпион, оригинал(ы) в других эмуляторах), поэтому там проблем с отладкой рилтаймовых вещей нет.