Вход

Просмотр полной версии : Оптимизация игр под турбо.



djs
20.08.2021, 21:23
Сделаю такой вброс.
Многие игры на Спектруме страдают от недостатка быстродействия.

Сейчас у нас есть куча клонов с поддержкой 7, 14 и даже 28 и 56 МГц.
Я пробовал на Сизифе (отличная машинка!) запустить Quazatron,
одну из лучших и одну из моих любимых игр, на 7 МГц,
но получилось слишком быстро.

А ведь можно было бы замутить такую тему!
И дело не так сложно, как мне кажется.
Подкрутить кое-где код, вставить циклы задержки.
Конечно, если есть привязка к IM2 и продвинутые фишки, будет не так просто.

krotan
20.08.2021, 23:37
Пожалуйста напишите для каких именно игр, вы считаете, не хватает быстродействия...

djs
21.08.2021, 03:39
Пожалуйста напишите для каких именно игр, вы считаете, не хватает быстродействия...

Конечно, я не имел в виду Jet Set Willy.
Если серьёзно, то как бы вопрос не корректен, потому что почти любая игра с серьёзной графикой на Спектруме - на грани тормозов. А клоны с турборежимом дают шанс на оживление. Та же Элита, например. Тут люди пытаются переписать её, оптимизируя код, а ведь можно сделать турбо-версию.

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


Пожалуйста напишите для каких именно игр, вы считаете, не хватает быстродействия...

Да Boulder Dash, наконец, с кучей падающих булыжников. Knight Lore с 5ю движущимися объектами на экране.
Квазатрон при скроллинге экрана.

Gutten
21.08.2021, 08:45
да все 3д-игры. "The Eidolon" помню огорчила тормозной игрой, а описание так красочно читалось...

vlad-kras
21.08.2021, 08:50
Сделаю такой вброс.
Многие игры на Спектруме страдают от недостатка быстродействия.
Сейчас у нас есть куча клонов с поддержкой 7, 14 и даже 28 и 56 МГц.
Подкрутить кое-где код, вставить циклы задержки.
Конечно, если есть привязка к IM2 и продвинутые фишки, будет не так просто.

Кажется, большинство аркадных игр как раз IM2 и должно использовать. На форуме упоминалось, что без прерываний работает то ли Saboteur то ли Exolon, ну а остальные, думаю, на IM2. Может Quazatron тоже работает БЕЗ прерываний?

Мне с прерываниями кажется как раз все очень удобно будет для переноса на турбо режим. Если проблема только в скорости обсчета, конечно. Если обычный спек, тогда что-то нарисовали, поступило прерывание, подождали 1/50 секунды и продолжаем. Если турбо, тогда благодаря двойной скорости нарисовали в 2 раза больше, подождали ту же 1/50 секунды и никаких проблем со "слишком быстро" быть не должно. Прерывание ведь как раз организует задержку, чтобы человек успел на кнопки нажать?

reddie
21.08.2021, 09:08
если есть привязка к IM2 и продвинутые фишки, будет не так просто
Как уже написали выше - наоборот, привязка задержек к прерываниям упрощает тайминги.


Прерывание ведь как раз организует задержку, чтобы человек успел на кнопки нажать?
Именно. Вопрос лишь в корректной реализации задержек. Раньше, когда никто про турбо не слышал и все Спектрумы были одинаковые по скорости, как приставки, все (или почти все) тайминги вывода графики организовывались через пустые циклы процессора, либо вовсе без них, а обсчет различий между кадрами (изменений) сводился к прямому пересчету следующей фазы, ведь скорость вывода заранее известна. Этим к, слову, грешат не только игры, но и многие демки 90-х и 2000-х, где все расчеты+вывод не завязаны фрейм, а производятся "на ходу" после каждого отрендеренного кадра, занимающего несколько фреймов. Включение турбо в таких демках превращает их в ускоренную перемотку видеокассеты. Корректный же расчет фаз движения должен производиться именно по прерываниям, точнее, каждое прерывание увеличивается некий "счетчик времени", а процедуры вывода уже рассчитывают геометрию, исходя из текущего значения счетчика. Для этого даже IM2 не нужен, базовый ПЗУшный обработчик уже содержит процедуру увеличения счетчика. Просто его заменяют своим для удобства и экономии времени.
В общем и целом, поле для деятельности имеется, вопрос в том, кто будет заниматься переделками =))
Новые же игры/демы желательно сразу разрабатывать с учетом турборежимов (не как обязаловки, конечно, а именно опциональное повышение производительности в турборежиме).

Lethargeek
21.08.2021, 12:31
люди пытаются переписать её, "оптимизируя" код в силу умений,
здесь кавычки совершенно лишние, они были бы куда уместнее в заголовке (потому что речь на самом деле об адаптации)


а ведь можно сделать турбо-версию.
непонятно противопоставление, ведь оптимизированный (без кавычек) код всем полезен, а версия для турбы - только владельцам турбы
а для эмуляторщиков проще выбрать эмулятор с тонкой подстройкой турбы ;)

djs
21.08.2021, 13:59
здесь кавычки совершенно лишние, они были бы куда уместнее в заголовке (потому что речь на самом деле об адаптации)


непонятно противопоставление, ведь оптимизированный (без кавычек) код всем полезен, а версия для турбы - только владельцам турбы
а для эмуляторщиков проще выбрать эмулятор с тонкой подстройкой турбы ;)

Я кавычки поставил, т.к. успел прочитать ветку по переделке элиты. Там человек героически сражается ради 5% быстродействия, но страдает графика, как я понял. А с турбо можно не только получить, не потеряв, но и что-то добавить, хватило бы памяти.

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

Про IM2 я имел в виду визуальные эффекты, привязанные к началу отрисовки кадра, которые, наверно, слетят при изменении частоты IM2 вдвое Честно говоря, не очень представляю, как на клонах идёт вывод на экран при удвоенной частоте процессора. Бордюрный эффекты, мультиколор, который за счёт IM2, а не дополнительных паллет, вот это всё.

Lethargeek
21.08.2021, 14:39
кавычки поставил, т.к. успел прочитать ветку по переделке элиты. Там человек героически сражается ради 5% быстродействия, но страдает графика, как я понял.
хз что и как ты читал и понял, но даже будь там только 5% - тоже не заслуживало кавычек


А с турбо можно не только получить, не потеряв, но и что-то добавить, хватило бы памяти.
а без турбы не получить ничего, так что память на оптимизацию лучше тратить

djs
21.08.2021, 15:11
Любое креативное увлечение - хорошо. Лучше, чем бухать, ширяться или гопстопить. Уважаю людей, которые ковыряют код элиты. К сожалению, часто такие проекты так и не доходят до релизов потому что работа неподьёмная для одного человека. А в случае с турбо, мне бы вернуться на 30 лет, когда я ночами сидел в машинном коде, было бы наверно раз плюнуть адаптировать под турбо. Сейчас же память не та, глаза не те, работа, реальная жизнь.

reddie
21.08.2021, 15:33
Про IM2 я имел в виду визуальные эффекты, привязанные к началу отрисовки кадра, которые, наверно, слетят при изменении частоты IM2
Как раз "частота IM2" (прерываний) не изменится =) Поменяется скорость проца, поэтому все мультиколоры и частично обычная графика (все, где учитывается ход луча) собьется.
Для игр типа Элиты, не использующих подобных фишек, турба пойдет только на пользу. При корректной обработке возросшей скорости, о чем писал ранее.
Мультиколоры же ориентировать на турбо смысла нет, т.к. каждая реализация турборежима на железной машине дает свой прирост, никакой совместимости не будет.

vlad-kras
21.08.2021, 16:34
Для эмуляторов есть вариант решения вопроса тормозов, но потребуется поддержка со стороны эмулятора.
В тех процедурах, где требуется ускорение, при входе в процедуру эмулятор ускоряется, а когда из процедуры выходит - скорость эмуляции восстанавливается. После поддержки эмулятора нужно будет всего только найти адреса для включения прироста скорости и адреса для выключения. Потом найденные адреса можно сохранять и распространять в текстовых файлах, похожих на файлы со всякими POKE.

djs
21.08.2021, 16:52
Оказывается, частота прерываний остаётся прежней, но ускоряется процессор. Соответственно, можно поставить в игре проверку на турбо и патчить код по ситуации. Это уже хорошо
reddie, я это узнал от автора Сизифа в личке, но тут прочитал ваше подтверждение. Спасибо!

Я под "ход луча" в IM2 писал карту для Treachery, но, поскольку у меня была резинка 48к, то потом на Пентагоне графика была не идеал, т.е. "прицел" местами отображался не целиком. Эх, молодость.

reddie
21.08.2021, 17:21
частота прерываний остаётся прежней, но ускоряется процессор
Да, ведь музыка (AY) играется по прерываниям. Иначе получили бы кассету на перемотке =)


поскольку у меня была резинка 48к, то потом на Пентагоне графика была не идеал, "прицел" местами отображался не целиком
Да, в основном, это касается игр, не использующих два экрана, т.е. именно под 48-й режим, в котором вывод спрайтов учитывает ход луча.
Софт, где сперва идет стирание, потом _до_ луча весь вывод, будет нормально работать и в турбо, а вот там, где происходят изменения "после луча" - возможны сюрпризы.


можно поставить в игре проверку на турбо и патчить код по ситуации
Не то, чтобы патчить... скорее, учитывать это при выводе и расчетах. Наиболее интересно применять турбо в RTS-игрушках. Причем сразу в двух направлениях:
Вывод графики (карты) - это само собой, а второе - блок ИИ. Его работу можно значительно улучшить, задействовав появившиеся ресурсы.
Скажем, вывод графики можно залочить на 16/25 FPS, а для обслуживания "теневых" процессов, типа ИИ, чем быстрее проц - тем "меньше пинг" юнитов.

Lethargeek
21.08.2021, 17:40
Я понял, что тебя задели кавычки.
нет, меня задел пренебрежительный тон в отношении программной оптимизации



тебя ... тебя ... ты
удивительно...

djs Member Регистрация 03.05.2005


а, нет, неудивительно...

Будете проходить мимо, проходите мимо, как говорится.

djs Member Регистрация 03.05.2005 Адрес Москва Сообщений 34
от столь нечасто проходящих мимо - вдвойне бесценней :v2_rolley

djs
21.08.2021, 20:54
нет, меня задел пренебрежительный тон в отношении программной оптимизации



удивительно...



а, нет, неудивительно...


от столь нечасто проходящих мимо - вдвойне бесценней :v2_rolley

Я принёс извинения в личке относительно доработки Элиты и того, как я об этом высказался . Предлагаю в ветке продолжить обсуждение предложенной мной темы. Тем более, что тема, как я понял, новая. Я слишком СТАР, чтобы делать что-то сам, поэтому выложил challenge. Как мне кажется, дело стоит того, чтобы кто-то помоложе потратил своё время на это.

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

Мир, дружба, жевачка.

vlad-kras
21.08.2021, 22:01
challenge. Как мне кажется, дело стоит того, чтобы кто-то помоложе потратил своё время на это..

Разве что именно как challenge, для прикола, как любопытная задачка. Практической составляющей в таком подходе вряд ли много.

Если простое переключение в турбу не прошло гладко, то игра может оказаться хитро написанной и фокусы использует непростые, чтобы добиться такого поведения, как в оригинале без турбы. С наскока вывод графики не поправишь. Потребуется длительная разборка игры и в каждом отдельном случае она будет сильно различаться. Значит в каждом случае придется игру заново развинчивать, исправлять или вообще переписывать код. Причем, поскольку код непростой, то и разбираться человек должен не просто на уровне знаю ассемблер, а довольно хорошо разбираться. Ну и есть ли у нас такие в свободном доступе, и есть ли у них время и есть ли интерес конкретно к вашей игре?


Да Boulder Dash, наконец, с кучей падающих булыжников. Knight Lore с 5ю движущимися объектами на экране. Квазатрон при скроллинге экрана.
эйдолон
Я вот про эйдолон слышал, но не играл, какой смысл условному мне лезть ковырять эйдолон? А игру Knight Lore настолько не представляю, что даже и не слышал о ней может быть - как я в принципе могу взяться за игру, если про ее существование даже не знаю.

Допустим, переписали. Как тестировать на реале разных модификаций, у кого-то разве есть достаточный парк железяк? Я вот про Сизиф вообще впервые слышу.

А все люди немолодые, если принять условно, что в 1990м году нашему среднему спектрумисту было лет 10, то сейчас уже лет 40. Времени нет.


Уважаю людей, которые ковыряют код элиты. К сожалению, часто такие проекты так и не доходят до релизов потому что работа неподьёмная для одного человека. А в случае с турбо, мне бы вернуться на 30 лет, когда я ночами сидел в машинном коде, было бы наверно раз плюнуть адаптировать под турбо. Сейчас же память не та, глаза не те, работа, реальная жизнь.

Вот именно, реальная жизнь. Такие хобби-проекты делаются в свободное время, ну и растягиваются на непонятные сроки. Решил заняться турбо-модификациями, тут хлоп и что-то произошло, и проект отправляется в долгий ящик. Условному вам, как игроку, не понравится лишний год ждать, когда условный я смогу выкроить время. А условному мне через год уже тоже сложновато будет вспомнить, что там да как в разбираемой игре было. Это вообще, если хоть какой-то интерес останется не только к той конкретной игре, но вообще к играм и к спеку, может ведь и такой поворот случиться.

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

Подход с автоматическим ускорением со стороны эмулятора потребует меньше квалификации в программировании ну и самое главное - гораздо меньше времени. Если для переписывания кода может потребоваться много времени и впустую, то чтобы поковырять эмулятор время которое потратится впустую, будет значительно меньше. По крайней мере я надеюсь, что значительно меньше - пара вечеров. И тогда даже если ничего не вышло, то времени будет не так жалко. Возможно, что осознание этого небольшого времени поможет некоторым решиться поковырять код в эмуляторе. А осознание того, что для переписывания кода под реальную турбу понадобится несколько недель, тоже заставляет кого-то подумать "Да ну нафиг потратить столько времени" и в результате игра останется как была тормозной.

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


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

krt17
22.08.2021, 02:20
Немного реальности во влажные мечтания.
1 Игры которые синхрятся с лучом как правило не требуют ускорения, скорее оно им будет вредить. Это уже хорошо оптимизированые с хорошей скоростью продукты. Скорее всего есть исключения, но я их не знаю.
2 Классическая игра первого типа. Прерывания разрешены, синхра с перебросом буфера либо есть либо нет не важно. Игровой цикл непостоянный, в случае турбы получаем в опу ужаленых в простых моментах и более менее живых в нагруженных. Такое лечится наиболее просто. Организуется пауза на минимальное чисто фреймов для следующего кадра. Фреймрейт становится постоянным, пипл счастлив.
3 Игры в которых все очень медленно, рассчитаны на низкий фреймрейт. Для избалованных 60 фпсным киберпанком плохие новости, чтобы переделать такое придется написать игру заново и перерисовать заодно (где взять память вопрос другой)
4 3Д и гонки момент сложный, тут казалось бы анимации без фиксированного шага и можно разогнать до 50 фпс в легкую. Но на самом деле не все так просто, тут либо исходить из определенной частоты, допустим для 14 мгц подбираем дискретность, либо делаем нормальный дельта тайминг чтобы работало на любой частоте. В первом случае с большой долей вероятности не хватит точности математики оригинала и на других частотах будет не совсем то что задумано, во втором придется переписать почти все.
Я когда то переделывал 3д гейм макер по 2 варианту, результат ожидаемый, квазатроны и всякие филмейшаны прям то что надо.

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

По поводу подхода пошаманить на эмуле. То тут возможно для 2 и 4 вариантов что то сделать. Для этого игра должна делать переброс на экран по halt. Эмулятор может выставить завышенную частоту и для хальта вводить увеличенную паузу. Тоесть от хальта до следующего должно пройти минимум 4 фрейма. Как то так.

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

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

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

Да кстати во многих играх второй вариант уже есть, например R-Type, там лок на 3 фрейма если не изменяет память, но там и тормоза очень редки.

vlad-kras
22.08.2021, 09:03
Я когда то переделывал 3д гейм макер по 2 варианту

А сколько переделка по времени заняла?

PATHNK
22.08.2021, 09:33
Я слишком СТАР, чтобы делать что-то сам, поэтому выложил challenge. Как мне кажется, дело стоит того, чтобы кто-то помоложе потратил своё время на это.
Это одна из многочисленных тем, типа "у меня есть супер идея, но сам я делать не буду и денег у меня нет, но все равно сделайте и не благодарите".
Хватит кого-то напрягать и распоряжаться чужим временем. Хотите делайте, не хотите нанимайте за деньги кто это сделает.
А сама тема по мне выеденного яйца не стоит. Не надо ничего переделывать, Спектрум и так хорош в своей первозданности, чтобы спустя много лет запустить игру и поностальгировать.

Dexus
22.08.2021, 09:59
Турба турбе рознь. Например вайтовая турба в развернутом push/pop цикле выиграет только чуть больше 10% над не турбированной пересылкой. А безвайтовая даст +100%, но безвайтовая турба - это либо экзотика, либо совсем новодельное нечто, т.к. на православном железе безвайтовость - роскошь.

djs
22.08.2021, 13:35
Vlad-kras, krt17, спасибо за развернутые ответы. Я представлял, что не всё так просто может быть.

Немного реальности во влажные мечтания
Когда-то, 30 лет назад, были не очень влажные и не просто мечтания.
https://zx-pk.ru/threads/794-sokhranim-zx-soft-nashej-molodosti!.html?p=25078&viewfull=1#post25078
https://zx-pk.ru/threads/794-sokhranim-zx-soft-nashej-molodosti!.html?p=1118962&viewfull=1#post1118962
https://archive.org/details/zx-plus-0-1991/page/n1/mode/1up
Ну и т.д.
Сейчас возраст, здоровье, семейное положение, куча других вещей не дадут сидеть по 12 часов со спектрумом :v2_dizzy_tired2:.
Мне показалась идея интересной, я предложил.

Pathnk, вас никто не заставляет ничего делать.
Ваша работа на этом форуме - поздравлять сэра Клайва с каждым днём рождения.
Не пропустите очередную годовщину, а то год напрасно прожит будет.

krotan
22.08.2021, 20:25
Ваша работа на этом форуме - поздравлять сэра Клайва с каждым днём рождения. А за что его поздравлять? Я думаю было бы уместнее поздравлять Ричарда Альтвассера за разработку ZX Spectrum, а не Клайва, который просрал все разработки, которые для него сделали талантливые изибретатели, включая спектрум...

aGGreSSor
22.08.2021, 21:00
Во-первых, тест на турбу был сделан для скорпионов ЕМНИП ещё в 98-м. Делалось для синхронизации таймингов в демках адаптированных для скорпа. После приснопамятного разговора KANO с Зоновым на E'97. Многие демки не работали и они были адаптированы, в т.ч. многие проверяют турбу. Во-вторых, пользователь включил турбу во время выполнения программы, что должен делать код? Пользователь СЗБ или что? Проверка производится на старте. Нет турбы, что должен делать код? В-третьих, как уже написал Dexus, не все турбы одинаково полезны. В-четвёртых (и последних) частота не равна производительности. В теории можно ускорить какой-нибудь обсчёт, на практике как это использовать в условиях имеющегося зоопарка никому неизвестно с 98-го по сей день. Поэтому в адаптациях смысла 0.0. Никто не знает как это должно выглядеть, и топикстартер тоже не знает. Это как в анекдоте: станьте ёжики медведями, медведей никто не обижает. Уверен, что на том же Evo (про который ничего не знаю) тот же Alone Coder использует проц до такта, но за пределами Evo это не работает.

krt17
22.08.2021, 21:57
Наркоманы ворчуны.
Есть простая задача. Классическая игра, идет приемлемо на 3,5 но в некоторых моментах существенно тормозит, для примера квазатрон.
Разберемся что нужно сделать чтобы при включении турбо 20 Мгц (да хоть на 100) дроид не носился как безумный дракон, а при скролле все сдвигалось с максимальной скоростью.
Организуется счетчик отсчитывающий число прерываний между обновлениями экрана. Пока после предыдущей отрисовки не прошло 4 кадра ждем. Соответствующий код

org 0xdd7c

ld a, (0xaf2b) ;это было
cp 7
call nc, 0xc05a
l1
cnt equ $+1
ld a, 0
cp 4
jr c, l1
xor a
ld (cnt), a
ret
int
push hl
push af
ld hl, cnt
inc (hl)
pop af
pop hl
jp 0xbd2d
display $

org 0xe6e6
jp int
В данном случае потратил я на него с копаниями минут 15. На 3.5 мгц не будет дополнительной паузы и игра абсолютно не изменится.
Все, наблюдаем ровный фреймрейт при движении и шустрый скролл. Изначально квазатрон работал так, никакой синхры по прерывниям не было, но они включены, на них висят звуковые эффекты. Более менее постоянная скорость обеспечивается циклом паузы зависящей от количества врагов на экране, больше врагов меньше пауза.
Это не единственная проблема конкретно в этой игре, миниигра также не синхрится по прерываниям, причем в ней 2 фазы, выбор стороны и собственно сама схватка. Там тоже нужны задержки подобные игровому циклу, мне уже стало лениво искать куда их вставить.
При чем тут бла бла бла о том кто когда что с чем синхрил и какие турбы бывают, при чем тут демы.

Spectramine
22.08.2021, 22:51
А за что его поздравлять? Я думаю было бы уместнее поздравлять Ричарда Альтвассера за разработку ZX Spectrum, а не Клайва, который просрал все разработки, которые для него сделали талантливые изибретатели, включая спектрум...

Заслуги Альтвассера очевидны, но техническое задание всё же, думаю, ему от Синклера шло. Уйдя от него, Альтвассер с Викерсом создать более крутой комп, чем Спектрум, не осилили. А Синклер определил, что нужно людям, и дал им это, пусть и создав чужими руками. А то, что он там просрал, уже мало кого волнует.

krotan
22.08.2021, 23:00
Заслуги Альтвассера очевидны, но техническое задание всё же, думаю, ему от Синклера шло. Уйдя от него, Альтвассер с Викерсом создать более крутой комп, чем Спектрум, не осилили. Я думаю, то, что сделал Альтвассер, исходило не из технического задания, а из его таланта. А требования Синклера он на самом деле не выполнил, тому нужен был вовсе не игровой компьютер, и он всегда очень раздражался, когда оказывалось, что Спек идеально подходит для игр вопреки его желаниям.
Что касается Викерса, то я в его творении больших достижений не вижу. Куча ошибок, которые вошли в финальный релиз... Низкое быстродействие... Плохая функциональность... Пошивка явно уступает аналогам того времени, например BBCmicro...

aGGreSSor
22.08.2021, 23:07
1) Как вы будете определять включена турба или нет?
1.1) Спросите у пользователя при запуске игры?
1.2) Прочитаете системные порты?
1.2.1) Какие?

2) Как вы будете подбирать задержки?

Конкретные вопросы - конкретные ответы. :)

djs
22.08.2021, 23:36
Krt17, ещё раз спасибо! Я вижу человека, который может что-то сделать по теме, а не разводить пустой трёп.
Мы сейчас все умные, через 41 год обсуждая косяки Синклера или Викерса. Но если бы они не выпустили тогда тот самый Спектрум со всеми его косяками в железе и софте, где бы мы были сейчас? Я застал по учёбе перфокарты, ЕС1040 и пакетную обработку задач на компиляцию с неандертальских языков. Когда мне не понравился алгоритм заливки контура в артстудио, я обсуждал на 12й кафедре МИФИ с преподавательницей тогда ещё какого-то юникса алгоритм Ли. Для меня это было тогда открытием. Тот же алгоритм, кстати, используется в RPG для прокладки пути юнитов, в разных вариантах .

krt17
22.08.2021, 23:39
1) Как вы будете определять включена турба или нет?
Зачем?


2) Как вы будете подбирать задержки?
Посмотрю сколько фреймов между обновлениями экрана в эмуле, при желании немного уменьшить/увеличить.

djs
22.08.2021, 23:42
1) Как вы будете определять включена турба или нет?
1.1) Спросите у пользователя при запуске игры?
1.2) Прочитаете системные порты?
1.2.1) Какие?

2) Как вы будете подбирать задержки?

Конкретные вопросы - конкретные ответы. :)

Частота прерываний остаётся прежней. Но количество операций, которые процессор успевает выполнить между ними, меняется. Я это так понимаю. Поэтому можно в начале игры сделать вызов процедуры измерения реальной скорости и пропатчить игру соответственно.

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


А за что его поздравлять? Я думаю было бы уместнее поздравлять Ричарда Альтвассера за разработку ZX Spectrum, а не Клайва, который просрал все разработки, которые для него сделали талантливые изибретатели, включая спектрум...

Я посмотрел активность юзера, его посты (sic) и увидел только поздравления.

goodboy
22.08.2021, 23:43
вспомининаю что когда у меня появился скорп с турбой (лет 25 назад)
я тоже игрался с этим направлением, но турбу включал перед прорисовкой в буфер / выключал при игровом цикле.

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

djs
23.08.2021, 00:01
Во-первых, тест на турбу был сделан для скорпионов ЕМНИП ещё в 98-м. Делалось для синхронизации таймингов в демках адаптированных для скорпа. После приснопамятного разговора KANO с Зоновым на E'97. Многие демки не работали и они были адаптированы, в т.ч. многие проверяют турбу. Во-вторых, пользователь включил турбу во время выполнения программы, что должен делать код? Пользователь СЗБ или что? Проверка производится на старте. Нет турбы, что должен делать код? В-третьих, как уже написал Dexus, не все турбы одинаково полезны. В-четвёртых (и последних) частота не равна производительности. В теории можно ускорить какой-нибудь обсчёт, на практике как это использовать в условиях имеющегося зоопарка никому неизвестно с 98-го по сей день. Поэтому в адаптациях смысла 0.0. Никто не знает как это должно выглядеть, и топикстартер тоже не знает. Это как в анекдоте: станьте ёжики медведями, медведей никто не обижает. Уверен, что на том же Evo (про который ничего не знаю) тот же Alone Coder использует проц до такта, но за пределами Evo это не работает.

Да, я не знаю. Поэтому выложил в сообщество тему. Реально у меня два-три десятка игр из любимых, которые страдают от тормозов. Если бы нашлись умные люди со свободным временем и светлой головой, и сделали патч под турбо, кому бы от этого стало плохо? Нет, Реально, от этого бы кто-то пострадал? Если нет, то почему бы нет?

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


Наркоманы ворчуны.
Есть простая задача. Классическая игра, идет приемлемо на 3,5 но в некоторых моментах существенно тормозит, для примера квазатрон.
Разберемся что нужно сделать чтобы при включении турбо 20 Мгц (да хоть на 100) дроид не носился как безумный дракон, а при скролле все сдвигалось с максимальной скоростью.
Организуется счетчик отсчитывающий число прерываний между обновлениями экрана. Пока после предыдущей отрисовки не прошло 4 кадра ждем. Соответствующий код

org 0xdd7c

ld a, (0xaf2b) ;это было
cp 7
call nc, 0xc05a
l1
cnt equ $+1
ld a, 0
cp 4
jr c, l1
xor a
ld (cnt), a
ret
int
push hl
push af
ld hl, cnt
inc (hl)
pop af
pop hl
jp 0xbd2d
display $

org 0xe6e6
jp int
В данном случае потратил я на него с копаниями минут 15. На 3.5 мгц не будет дополнительной паузы и игра абсолютно не изменится.
Все, наблюдаем ровный фреймрейт при движении и шустрый скролл. Изначально квазатрон работал так, никакой синхры по прерывниям не было, но они включены, на них висят звуковые эффекты. Более менее постоянная скорость обеспечивается циклом паузы зависящей от количества врагов на экране, больше врагов меньше пауза.
Это не единственная проблема конкретно в этой игре, миниигра также не синхрится по прерываниям, причем в ней 2 фазы, выбор стороны и собственно сама схватка. Там тоже нужны задержки подобные игровому циклу, мне уже стало лениво искать куда их вставить.
При чем тут бла бла бла о том кто когда что с чем синхрил и какие турбы бывают, при чем тут демы.

Всегда бесила миниигра дребезгом клавиатуры. Очень сложно было не то, что включить нужные линии, но навестить на них из-за тормозов. Опять же, поле деятельности для патча!

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


вспомининаю что когда у меня появился скорп с турбой (лет 25 назад)
я тоже игрался с этим направлением, но турбу включал перед прорисовкой в буфер / выключал при игровом цикле.

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

По поводу вашей подписи, не стоило так, честное слово. Я и не был никем особо по сравнению с именами тех лет. Так, один из многих. А тем более сейчас - давно пребываю в маразме. Произошло обострение симптомов Спектрумании очередное на почве ковида :)

Spectramine
23.08.2021, 00:08
Я думаю, то, что сделал Альтвассер, исходило не из технического задания, а из его таланта. А требования Синклера он на самом деле не выполнил, тому нужен был вовсе не игровой компьютер, и он всегда очень раздражался, когда оказывалось, что Спек идеально подходит для игр вопреки его желаниям.
Ну почему не выполнил? Если Синклер позиционировал Спектрум для изучения программирования, то для этого компьютер вполне подходил. Да и я бы не сказал, что Спектрум _идеально_ подходит для игр. Подходит неплохо, но с нюансами. Всё же отсутствие цвета на точку это для программиста игр существенный недостаток.

Почему-то Альтвассер не смог превзойти по популярности свою же разработку по чужим требованиям, уйдя в свободное плавание (правда, похоже, и задачи такой он не ставил). Он сделал компьютер для программистов - с быстрым ЯВУ, но с очень ограниченными графическими возможностями.


Что касается Викерса, то я в его творении больших достижений не вижу. Куча ошибок, которые вошли в финальный релиз... Низкое быстродействие... Плохая функциональность... Пошивка явно уступает аналогам того времени, например BBCmicro... Тем не менее, на Спектрум-бейсике даже неплохие динамические игры делались. В целом - далеко от идеала, но для изучения программирования вполне годится.

djs
23.08.2021, 00:23
Я помню, отец разбудил меня в час дня, говорит, Горбачёва сняли, какой-то ГКЧП по телевизору. А я ни фига не понял, лёг в 8 утра после очередной сессии взлома игр с кассеты, которую мне подогнали. Были поставщики кассет свежих. Один "дядя" по моим тогдашним понятия возраста жил рядом с белорусским вокзалом, у него всегда были кассеты на обмен. В квартире собака, То ли доберман, то ли что-то ещё. Обычная двушка. Я приходил, копировали на двухкассетнике. Но когда я уходил, он собаку держал двумя руками. Вход свободный, выход - не так просто. Сколько лет прошло, до сих пор помню.

aGGreSSor
23.08.2021, 00:30
Поэтому можно в начале игры сделать вызов процедуры измерения реальной скорости и пропатчить игру соответственно.
Да, была такая метода, вспоминаю. Но для этого нужна табличка под весь зоопарк.


Частота прерываний остаётся прежней.
Как я понимаю/помню. Понятие частота прерываний равноценно для Спектрума понятию частота обновления экрана. Экран на разных спектрумах (сюрприз) обновляется с разной частотой. Всё потому же, что количество тактов между прерываниями равно произведению кол-ва строк (на экране) на длину строки (время прорисовки в тактах). На одном спектруме это будет 224 такта за строку, на другом 256, на третьем ещё что-нибудь. И кол-во строк тоже будет разное за INT, который будет то ли с WAIT, то ли без. Отсюда свистопляска с проигрыванием AY, например. Если вы хотите услышать трек, как его хотел слышать автор будьте добры проиграть его на том же железе/эмуляторе. Грубо, частота обновления экрана фирменного Спектрума это 50 Hz, а Pentagon 128 это 48,8 Hz. И, да, не надо обладать абсолютным слухом чтобы услышать это кардинальное влияние на звук AY. Но на деле всё ещё хуже. Одних скорпов было 4 штуки, из которых 3 турбированных, а способов турбирования скорпов штук пять с разными артефактами по выводу экрана, влиянию на AY и т.д. Помню как в ZX-Ревю общались на темы, что если отодрать эту ногу, то AY станет медленный, но задержки будут как на Пентагоне, а если отодрать другую, то весь экран сдвигается вбок, но AY становится нормальный и пр. пляски. Т.е. не об одних демах с мультиколором речь. В теории вы правы: считаем кол-во тактов в начале, имеем табличку и подстраиваем по ней задержки. На пункте подстраиваем задержки мы отправляемся создавать тему, например Точное описание задержек Скорпиона (https://zx-pk.ru/threads/21039-tochnoe-opisanie-zaderzhek-skorpiona.html). А потом начинаем изучать весь прочий зоопарк. Я так вижу, поправьте меня если я не прав. :)

djs
23.08.2021, 00:32
Ну почему не выполнил? Если Синклер позиционировал Спектрум для изучения программирования, то для этого компьютер вполне подходил. Да и я бы не сказал, что Спектрум _идеально_ подходит для игр. Подходит неплохо, но с нюансами. Всё же отсутствие цвета на точку это для программиста игр существенный недостаток.

Почему-то Альтвассер не смог превзойти по популярности свою же разработку по чужим требованиям, уйдя в свободное плавание (правда, похоже, и задачи такой он не ставил). Он сделал компьютер для программистов - с быстрым ЯВУ, но с очень ограниченными графическими возможностями.

Тем не менее, на Спектрум-бейсике даже неплохие динамические игры делались. В целом - далеко от идеала, но для изучения программирования вполне годится.

Кассеты Spectrum Computing, прилагавшиеся к журналу, очень многому научили. Недавно приладил блютус-модуль к своему сизифу, и пару часов грузил те самые кассеты через Zx tape player.
А ещё помню до сих пор, под впечатлением от Zebbedy (тоже type-in игра) и Jumping Jack (хит на все времена!) В 8 лет пытался написать свою игру про хомяка. Использовал UDG и споткнулся на определении коллизии с объектами, потому что SCREEN$ не определял UDG. 1982 или 1983.

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


Да, была такая метода, вспоминаю. Но для этого нужна табличка под весь зоопарк.


Как я понимаю/помню. Понятие частота прерываний равноценно для Спектрума понятию частота обновления экрана. Экран на разных спектрумах (сюрприз) обновляется с разной частотой. Всё потому же, что количество тактов между прерываниями равно произведению кол-ва строк (на экране) на длину строки (время прорисовки в тактах). На одном спектруме это будет 224 такта за строку, на другом 256, на третьем ещё что-нибудь. И кол-во строк тоже будет разное за INT, который будет то ли с WAIT, то ли без. Отсюда свистопляска с проигрыванием AY, например. Если вы хотите услышать трек, как его хотел слышать автор будьте добры проиграть его на том же железе/эмуляторе. Грубо, частота обновления экрана фирменного Спектрума это 50 Hz, а Pentagon 128 это 48,8 Hz. И, да, не надо обладать абсолютным слухом чтобы услышать это кардинальное влияние на звук AY. Но на деле всё ещё хуже. Одних скорпов было 4 штуки, из которых 3 турбированных, а способов турбирования скорпов штук пять с разными артефактами по выводу экрана, влиянию на AY и т.д. Помню как в ZX-Ревю общались на темы, что если отодрать эту ногу, то AY станет медленный, но задержки будут как на Пентагоне, а если отодрать другую, то весь экран сдвигается вбок, но AY становится нормальный и пр. пляски. Т.е. не об одних демах с мультиколором речь. В теории вы правы: считаем кол-во тактов в начале, имеем табличку и подстраиваем по ней задержки. На пункте подстраиваем задержки мы отправляемся создавать тему, например Точное описание задержек Скорпиона (https://zx-pk.ru/threads/21039-tochnoe-opisanie-zaderzhek-skorpiona.html). А потом начинаем изучать весь прочий зоопарк. Я так вижу, поправьте меня если я не прав. :)

Я столкнулся с разбросом таймингов, когда писал на резинке 48к загрузчики игр со счётчиками и анимацией, а потом они не работали на клонах.

Сейчас хорошо. Есть кросс-ассемблеры, эмуляторы. А у меня была резинка 48 и магнитофон. Мультифейса не было, поэтому написал свой кракер в экранной памяти и им ломал всё, что приносили.
Сейчас запла́чу. Но завтра на производство, принимать на работу нового человека, который старше меня на 10 лет :) или не принимать.

goodboy
23.08.2021, 00:40
По поводу вашей подписи, не стоило так, честное слово. Я и не был никем особо по сравнению с именами тех лет. Так, один из многих. А тем более сейчас - давно пребываю в маразме. Произошло обострение симптомов Спектрумании очередное на почве ковида

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

и кстати кто такой в реале Лаптев ?
он тут пробегал мельком, но потом сказали что это псевдоним.

а на Амигу ты не подсел (из той тусовки) ?

krt17
23.08.2021, 00:47
Я так вижу, поправьте меня если я не прав.
Не прав, ничего считать не надо, игроку все равно игра работает 12,5 фпс или 12,2. Про частоту интов и музыку вообще бред. Влияла частота AY, это да, но не 1.2 Гц кадровой.


а потом они не работали на клонах
Загрузчик в медленной памяти резинки это приговор, но ктож тогда знал.

djs
23.08.2021, 01:15
это всего лишь вспоминания. в середине эпохи кассет редко кто давал реальные координаты,
вспоминаю что когда набрал твой номер мне сказали что-ты служишь в армии.

и кстати кто такой в реале Лаптев ?
он тут пробегал мельком, но потом сказали что это псевдоним.

а на Амигу ты не подсел (из той тусовки) ?

Я слышал, что его фамилия немного отличается от "Лаптев". Не уверен, что могу её публично назвать даже сейчас. В личку могу написать. На Амигу я не пересел: просрал учёбу, ушёл в армию, а там все пересели на 386. Немного поработал в разработке софта для zx-модема для связи со Спектрума с писи-bbs и ушёл в личную жизнь. А сейчас сам на грани пенсии по возрасту, ностальгия..

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


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

и кстати кто такой в реале Лаптев ?
он тут пробегал мельком, но потом сказали что это псевдоним.

а на Амигу ты не подсел (из той тусовки) ?

И да,
спасибо на добром слове!

https://photos.app.goo.gl/vSDTBjysVtfKoHpj7

aGGreSSor
23.08.2021, 08:37
Не прав, ничего считать не надо, игроку все равно игра работает 12,5 фпс или 12,2. Про частоту интов и музыку вообще бред. Влияла частота AY, это да, но не 1.2 Гц кадровой.
Отсюда можно сделать вывод что вы не игрок, не слушатель чиптюна и не музыкант. :)
Для проигрывания через AY каждый INT в AY грузятся данные его регистров.
Это очень хорошо слышно как изменение темпа при малейшем изменении кадровой.
Если сравнить не с чем, то можно не обращать на это внимания и считать что так и должно быть.
Например: xpeh 1 (https://www.dropbox.com/s/5bi4cdychufr2sv/xp1.wav?dl=0) и xpeh 2 (https://www.dropbox.com/s/ag84i40wzhe1eb2/xp2.wav?dl=0)

Lethargeek
23.08.2021, 09:20
Для эмуляторов есть вариант решения вопроса тормозов, но потребуется поддержка со стороны эмулятора.
В тех процедурах, где требуется ускорение, при входе в процедуру эмулятор ускоряется, а когда из процедуры выходит - скорость эмуляции восстанавливается. После поддержки эмулятора нужно будет всего только найти адреса для включения прироста скорости и адреса для выключения. Потом найденные адреса можно сохранять и распространять в текстовых файлах, похожих на файлы со всякими POKE.
да не нужно таких сложностей в эмуляторах - для примера посмотри, как турба сделана у меня
нужно только два числа подобрать, да и то лишь некоторым игрушкам, остальным дефолтные подойдут
причём с турбой не сбиваются мультиколоры и частота цифрового/биперного звука не изменяется

reddie
23.08.2021, 09:20
Экран на разных спектрумах (сюрприз) обновляется с разной частотой
Эти различия мизерны, никто их никогда не учитывал (кроме упоротых Пентагонщиков с подгонкой "свободных тактов" в демах до нуля)


Отсюда свистопляска с проигрыванием AY, например
При одинаковой частоте (стробирования) AY различия, и то малозаметные, будут только в темпе музыки. На высоту звука параметры видеоразвертки не повлияют никак.
Другое дело, что применялись разные кварцы: 14 МГЦ и 14.3 МГЦ, вот отсюда уже будет разница подаваемой частоты на вход AY.

В целом, пути переделок (да и при написании нового) софта два. Либо делаются замеры "производительности", и далее отпимизируется код для конкретного случая.
Либо, что сложнее, но вполне реализуемо, пересчеты траекторий и т.п. идут в реальном времени по прерываниям, и турбой можно щелкать прямо во время процесса.
Рекомендую посмотреть, точнее, запустить в эмуляторе демку 98 года Refresh - на мой взгляд, почти идеальный пример корректных реалтайм-вычислений.
Почти, ибо на совсем уж задранных частотах и фреймрейте под 50 FPS не хватает точности математических расчетов, объекты начинают подергиваться.
Но скорости вращения и прочие сдвиги объектов никак не зависят от выставленной частоты процессора, растет только FPS, ставьте хоть 100 МГц в любой момент демки.

https://www.pouet.net/prod.php?which=6148 Страничка со ссылкой для скачивания

Видео для ленивых и просто тех, кто (мало ли) не видел одну из лучших дем конца 90-х:


https://www.youtube.com/watch?v=36IiZ0ZP6eE

aGGreSSor
23.08.2021, 10:07
При одинаковой частоте (стробирования) AY различия, и то малозаметные, будут только в темпе музыки. На высоту звука параметры видеоразвертки не повлияют никак.Да. Поэтому я и взял Сказку от XPEH со скоростью 10, где изменение темпа при изменении INT Freq уже на 0,2 Гц и тем более на 1,2 Гц просто бьёт по ушам. Её чаще всего вспоминали в журналах и ZX-Ревю, когда писали что после очередного турбирования AY "начал тянуть", поэтому сразу нашёл её. Сейчас судя по zxart.ee у трекерщиков больше популярна скорость 3 и на ней будет малозаметно. К трекеру ASC все демо-треки были медляками и там просто ужас что творилось, особенно с Ниагарой. У меня был знакомый железячник который Ниагару сутками слушал, поэтому помню.


Другое дело, что применялись разные кварцы: 14 МГЦ и 14.3 МГЦ, вот отсюда уже будет разница подаваемой частоты на вход AY.Да. И это изменение АЧХ уже в плюс к темпу.



В целом, пути переделок (да и при написании нового) софта два. Либо делаются замеры "производительности", и далее отпимизируется код для конкретного случая.
Либо, что сложнее, но вполне реализуемо, пересчеты траекторий и т.п. идут в реальном времени по прерываниям, и турбой можно щелкать прямо во время процесса.Вот я и спросил выше: как? Знаю что на скорпе турбо+ можно было щёлкать турбой.


Рекомендую посмотреть, точнее, запустить в эмуляторе демку 98 года Refresh - на мой взгляд, почти идеальный пример корректных реалтайм-вычислений.
Почти, ибо на совсем уж задранных частотах и фреймрейте под 50 FPS не хватает точности математических расчетов, объекты начинают подергиваться.
Но скорости вращения и прочие сдвиги объектов никак не зависят от выставленной частоты процессора, растет только FPS, ставьте хоть 100 МГц в любой момент демки.На скорпе оригинальный Refresh с фантопа вообще не идёт. Если не считать скорп за спектрум как это предлагалось в 98-м, то норм. Кстати, Extreme, а точней Exploder после Refresh, написал и уже легендарные demo на Amiga: Gap, Revision, Push. Это первый русский занявший 1-е место на Assembly с призом в $1000, что тогда было серьёзными деньгами.

Bedazzle
23.08.2021, 10:20
Вот я и спросил выше: как? Знаю что на скорпе турбо+ можно было щёлкать турбой.

Вброшу чутка: на Нексте можно и кнопкой и программно переключать турборежимы.

reddie
23.08.2021, 10:32
Вот я и спросил выше: как? Знаю что на скорпе турбо+ можно было щёлкать турбой
Да как бы кнопкой всегда была возможность переключать, на переднюю панель ставили. Имелось в виду это, переключение юзером.
Софтово турбой щелкать, собственно, ни к чему. Что дали - от того и пляшем.


На скорпе оригинальный Refresh с фантопа вообще не идёт
Хз, оригинальный или нет, но 20+ лет давности диск с Рефрешем, где еще Refresh disk Refucker для переформатирования, работает у меня на желтом Скорпе без проблем.


Если не считать скорп за спектрум как это предлагалось в 98-м
За Спектрум его не считали, повторюсь, только упоротые Пентагонщики =) Которые даже не понимали, что их 320 строк (48.хх Гц) и OUT (#FD),A - полный треш, несовместимый вообще ни с чем.

goodboy
23.08.2021, 12:42
OUT (#FD),A - полный треш, несовместимый вообще ни с чем.
однако на фирменном тостере128 (как и на пентагоне) можно одним выводом в смежный порт переключать сразу бордюр и экран (основной/теневой)
ну и вывод в порт #FD впервые появился в одной фирменной игрушке

reddie
23.08.2021, 14:52
можно одним выводом в смежный порт переключать сразу бордюр и экран (основной/теневой)
Типа логика платы определяла вывод в сразу порты #FE и #FD при нужной комбинации битов? Почему бы нет... это как чтение клавиатуры вида XOR A: IN A,(#FE)


вывод в порт #FD впервые появился в одной фирменной игрушке
А потом появился Spectrum +3 (или какой там) с портом #1FFD и другими окнами памяти, и пошла несовместимость со старым софтом. Полный аналог проблем Пентагон vs Скорпион у нас в пост-совке.
Не спорю, Пентагон "поднялся" за счет отсутствия торможения проца и активно пользовавшихся этим писателей демок. Но он был такой один, и кто кому хуже сделал - большой вопрос.

Bedazzle
23.08.2021, 15:00
однако на фирменном тостере128 (как и на пентагоне) можно одним выводом в смежный порт переключать сразу бордюр и экран (основной/теневой)
ну и вывод в порт #FD впервые появился в одной фирменной игрушке

Я чутка вклинюсь за порты, вдруг знаешь.
Earth shaker, опрос клавиатуры.
https://i.imgur.com/WFi7nWy.png

Для чего могли воткнуть FF?

vlad-kras
23.08.2021, 15:25
да не нужно таких сложностей в эмуляторах - для примера посмотри, как турба сделана у меня
нужно только два числа подобрать, да и то лишь некоторым игрушкам, остальным дефолтные подойдут


А где посмотреть-то ? И какому случаю из неформальной классификации твоя схема соответствует - номеру 2, классическая игра ?



1 Игры которые синхрятся с лучом как правило не требуют ускорения, скорее оно им будет вредить.
2 Классическая игра первого типа. Прерывания разрешены, синхра с перебросом буфера либо есть либо нет не важно.
3 Игры в которых все очень медленно, рассчитаны на низкий фреймрейт.
4 3Д и гонки

SoftLight
23.08.2021, 15:35
Для чего могли воткнуть FF?
В Timex 2048 это управление видеорежимами, вроде. Хотя, скорее, ноги растут из ZX80/ZX81:


Writing any data to Port FFh terminates the Vertical Retrace period, and restarts the LINECNTR counter. The retrace signal is also output to the cassette (ie. the Cassette Output becomes High).

Lethargeek
23.08.2021, 15:52
А где посмотреть-то ?
ссылка есть в последней записи в дневнике (перейти можно щелчком по цифре под аватаром)


И какому случаю из неформальной классификации твоя схема соответствует - номеру 2, классическая игра ?
да практически любому (даже если нет вообще никаких синхронизаций и ожиданий, всё же можно поискать более комфортную скорость)
наилучший результат для трыдэ типа фрискейпа с элиткой, но и тормозным аркадам (типа, например, Sirwood) полезно тоже


1 Игры которые синхрятся с лучом как правило не требуют ускорения, скорее оно им будет вредить. Это уже хорошо оптимизированые с хорошей скоростью продукты. Скорее всего есть исключения, но я их не знаю.
например, пятногоноверсия мультиколорного Гэндальфа, которую регулярно передёргивает без турбы

goodboy
23.08.2021, 16:05
Для чего могли воткнуть FF?
ХЗ
посмотри ещё (почти все) игры от ACG
там вообще при опросе клавы в меню пресловутый out (#FD),a

krt17
23.08.2021, 18:56
да практически любому (даже если нет вообще никаких синхронизаций и ожиданий, всё же можно поискать более комфортную скорость)
наилучший результат для трыдэ типа фрискейпа с элиткой, но и тормозным аркадам (типа, например, Sirwood) полезно тоже
Да можно подобрать более менее комфортную частоту, но это не совсем то что ожидаешь от турбы. Игра будет идти быстрее а не только плавнее. От ускорения ожидаешь замену 1060 на 3090 )


например, пятногоноверсия мультиколорного Гэндальфа, которую регулярно передёргивает без турбы
Калека исключение лишь подтверждает правило.

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


причём с турбой не сбиваются мультиколоры и частота цифрового/биперного звука не изменяется
Это что за чудо режим, с мультиколорами понятно, они и в анриле не сбиваются. А вот бипер не понятно, тут либо обрезать лишак либо ускорение.

krotan
23.08.2021, 19:12
Да и я бы не сказал, что Спектрум _идеально_ подходит для игр. Подходит неплохо, но с нюансами. Всё же отсутствие цвета на точку это для программиста игр существенный недостаток. Надо учитывать технические возможности того времени, с учётом этого всё сделал идеально. А цвет на точку - это уже другая эпоха компьютеров...

Lethargeek
23.08.2021, 19:28
Да можно подобрать более менее комфортную частоту, но это не совсем то что ожидаешь от турбы. Игра будет идти быстрее а не только плавнее. От ускорения ожидаешь замену 1060 на 3090 )
плавности обычно как раз достаточно, или же плавнее спрайты двигать невозможно из-за раскраски, а неравномерность кадров уходит с турбой


Калека исключение лишь подтверждает правило.
Hexafiller - вот тебе НЕкалечное; хотя это даже не исключение, а скорей обратное правило для походовых

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


Это что за чудо режим, с мультиколорами понятно, они и в анриле не сбиваются
это в турбе-то? не путаешь ли чего


А вот бипер не понятно, тут либо обрезать лишак либо ускорение.
а во время бипов скорость нормальная

krt17
23.08.2021, 20:18
это в турбе-то? не путаешь ли чего
Не путаю, в анриле все лишнии такты идут прицепом, мыж не меняем параметры развертки.


плавности обычно как раз достаточно, или же плавнее спрайты двигать невозможно из-за раскраски, а неравномерность кадров уходит с турбой
Плавности хоть обновляй, только за пол секунды игрок перемещается на весь экран. Да ет все лирика, есть конкретные игры, начали с квазатрона, какие альтернативные предложения ускорить скрол и не превратится в бесноватого самоубийцу?
Как то весь этот тупой треп увел от основной темы, получить профит в классике от турбы и не страдать.


Hexafiller
Ни я ни vtrd и sc не знают что это, наверное хорошая игра.


а во время бипов скорость нормальная
Ну допустим, ставишь ты 490000 во фрейме, биперит оно 10000 на 3,5 или 1/7 кадра. Ты типо выключашь турбо на эти 10000 и в фрейме получается 430000? (примерно), ну или фулл фрейм дудим и будет оригинальные ~70к?
Но на самом деле неважно, это уже не имеет практического применения на существующем железе. Меня больше интересуют ситуации когда жмакнул турбой и оно как то перестало подтармаживать и играется вроде так же но ровнее. А так то да можно упоротся, но эт пусть нексты упарываются ониж за деньги.

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

Нашел Hexagonal Filler, ничего не понял, игра от Алона для Алона, какое-то цветное месево. Но аргумент защитан Гандальф не калека, по сравнению с этим он бодрячком.

vlad-kras
23.08.2021, 22:03
Нашел Hexagonal Filler, ничего не понял, игра от Алона для Алона, какое-то цветное месево. Но аргумент защитан Гандальф не калека, по сравнению с этим он бодрячком.

На Гэндальфа можно ссылочку?

Что касается Hexagonal Filler, то что хотите от абстрактной стратегии, да, компу надо подумать - еще на шахматы пожалуйтесь, мол не бодренько идут. Сыграл на вебовском эмуляторе, прямо жутких тормозов не заметил. А смысл игры - выбирая один из доступных цветов игрок присоединяет себе гексагоны выбранного цвета. Комп играет из левого нижнего угла, человек из правого верхнего. У кого в конце больше, тот и выиграл.



от основной темы, получить профит в классике от турбы и не страдать.

Основная тема не совсем корректно сформулирована - djs ведь хочет просто играть без тормозов. Например, через турбу, но можно предложить и другие варианты.

djs
23.08.2021, 23:48
Очень рад, что тема живёт. Хотел бы уточнить, я имел в виду возможность получения преимуществ именно от турбо. Мне показалось, что адаптация под турбо можно быть не так сложна, как переписывание движка полностью.

krt17
23.08.2021, 23:54
На Гэндальфа можно ссылочку?
Че нельзя то можно (https://vtrd.in/release.php?r=3525ba6d410a2718940b72ca98d296d8) как пишется гандальф латиницей я могу сообразить.


можно предложить и другие варианты
Это какие? Не играть?
По моему все очень ясно, есть квазатрон, в турбе нормально только на спидах играется, надо что то с этим сделать. Вы считаете по другому?


Мне показалось, что адаптация под турбо можно быть не так сложна, как переписывание движка полностью.
Да ничего сложного на самом деле, тут много народа который это сделает на раз два. Но зачем? У меня нет турбо клона например и меня не парят тормоза, всеобщая благодарность и уважение тоже пофиг. Но вообще тема прикольная, я думаю активным релизерам можно взять на заметку.

Lethargeek
24.08.2021, 00:11
Не путаю, в анриле все лишнии такты идут прицепом, мыж не меняем параметры развертки.
значит, я путаю, отчего-то думал, что в анрыле эмуляция разгона камня, как в спине


Плавности хоть обновляй, только за пол секунды игрок перемещается на весь экран.
так не ускоряй настолько, чтобы так бегал


Да ет все лирика, есть конкретные игры, начали с квазатрона, какие альтернативные предложения ускорить скрол и не превратится в бесноватого самоубийцу?
альтернативные чему? метод с "тактами прицепом" это и делает, просто продлеваем не каждый кадр, а лишь каждый пятый-четвёртый


Ну допустим, ставишь ты 490000 во фрейме, биперит оно 10000 на 3,5 или 1/7 кадра. Ты типо выключашь турбо на эти 10000 и в фрейме получается 430000? (примерно), ну или фулл фрейм дудим и будет оригинальные ~70к?
проще - тупо кадры, в которых активен бипер, не продлеваются


Но на самом деле неважно, это уже не имеет практического применения на существующем железе.
ну так я про эмуль и говорил

krt17
24.08.2021, 00:56
так не ускоряй настолько, чтобы так бегал
Ну мы ориентируемся например на 28 мгц а это на секундочку в 8 раз быстрее канона. А в недалеком будущем возможно и ггц впилят, а че нет то. и разве ни прикольно что игра будет работать на фреймрейте анимации и не разгонятся и не тормозить в простых или сложных ситуациях.


ну так я про эмуль и говорил
да разгон и бипер это вилы, но я думаю если идет адаптация под турбу то и звук надо на AY пересаживать, жертва бипера даже многими принимается с энтузиазмом.

djs
24.08.2021, 02:38
Наоффтоплю в свою же тему, но тут я выложил кое-что, чего нигде никогда не было. Музейный экспонат своего рода.
Если есть время и желание покопаться полчаса в закаменелом хе-хе мамонта, приглашаю ознакомиться:
https://zx-pk.ru/threads/794-sokhranim-zx-soft-nashej-molodosti!.html?p=1128430&viewfull=1#post1128430

djs
25.08.2021, 01:58
Да, тут кто-то написал, что не знает, что такое Сизиф. Это клон на Альтере, но с настоящим процессором, здесь есть ветка по нему. Умеет переключать много вещей по nmi через прикольную менюшку, а-ля Next. Активно развивается.
https://github.com/UzixLS/zx-sizif-512/

djs
07.09.2021, 01:44
По поводу квазатрона: сейчас голова занята серьёзными проблемами на работе, но не прав ли я, если там нет линейной зависимости от ввода до передвижения гг робота? То есть нет ли ускорения и инерции? Я опять хочу, как тут один персонаж высказался, обязать всех заняться моей проблемой. "Я хочу, а вы сделайте." Но если в квазатроне действительно есть ускорение движения, то можно патчить код ускорения под частоту процессора, и при этом скроллинг экрана будет ускорен с частотой. Просто ускорение поделить пополам. Другой вопрос: считается ли ускорение для вражеских роботов тоже? Или они двигаются линейно с постоянной скоростью. Надо патчить и их отдельно, кратно или иначе. Почему я говорю про патчи? Если у нас исходный код просчитан более менее оптимально, то для адаптации (ага, не оптимизации, я помню) его под 7МГц разумнее было бы _патчить_ код, а не вставлять в цикл игры пересчёт под новую частоту процессора. Разве не так?

jerri
07.09.2021, 14:17
По поводу квазатрона: сейчас голова занята серьёзными проблемами на работе, но не прав ли я, если там нет линейной зависимости от ввода до передвижения гг робота? То есть нет ли ускорения и инерции? Я опять хочу, как тут один персонаж высказался, обязать всех заняться моей проблемой. "Я хочу, а вы сделайте." Но если в квазатроне действительно есть ускорение движения, то можно патчить код ускорения под частоту процессора, и при этом скроллинг экрана будет ускорен с частотой. Просто ускорение поделить пополам. Другой вопрос: считается ли ускорение для вражеских роботов тоже? Или они двигаются линейно с постоянной скоростью. Надо патчить и их отдельно, кратно или иначе. Почему я говорю про патчи? Если у нас исходный код просчитан более менее оптимально, то для адаптации (ага, не оптимизации, я помню) его под 7МГц разумнее было бы _патчить_ код, а не вставлять в цикл игры пересчёт под новую частоту процессора. Разве не так?

по поводу квазатрона.
там два парралельных процесса
на прерываниях звуки.
в основном цикле перерисовка экрана и управление обьектами
и основной цикл никак не привязан по времени.

тут либо вешать на прерывания счетчик и с ним синхронизироваться либо терпеть.

reddie
07.09.2021, 17:18
Другого варианта и нет, нужно вешать на прерывания некий "счетчик реального времени", а изменения графики и вообще игровой процесс синхронизировать по нему. Весь вопрос в объеме переписанного (патченного) кода и трудозатратах на это.

vlad-kras
08.09.2021, 15:03
по поводу квазатрона.
там два парралельных процесса
1 перерисовка экрана и 2 управление обьектами или 1 экран и 2 звуки? А можно тогда для ускорения просто вырубить процесс звуков?

reddie
08.09.2021, 17:26
можно тогда для ускорения просто вырубить процесс звуков?
Можно, но вряд ли это даст ощутимый прирост. Разрабы все же не дураки, чтобы, скажем, пол-прерывания грохать на бипер.
Скажу больше: в турбо-режиме должны корежиться и биперные эффекты в любых играх, т.к. они завязаны на частоту процессора.
Значит, всплывает еще одна проблема, которую нужно решать. Наиболее простой путь, как мне видится - замена бипера на AY.

jerri
08.09.2021, 22:31
1 перерисовка экрана и 2 управление обьектами или 1 экран и 2 звуки? А можно тогда для ускорения просто вырубить процесс звуков?

звуковой процесс длится около 10000 тактов

vlad-kras
28.11.2021, 17:46
Сейчас у нас есть куча клонов с поддержкой 7, 14 и даже 28 и 56 МГц.
Я пробовал на Сизифе (отличная машинка!) запустить Quazatron,
одну из лучших и одну из моих любимых игр, на 7 МГц,
но получилось слишком быстро.
В теме пишут про то, что носится робот как бешеный, прямо невозможно играть. Но квазатрон же тормозная игра, чуть ли не на уровне, когда терпеть уже невозможно эти тормоза. Как получается, что ускорили вдвое и уже за роботом не угнаться? Даже если ровно вдвое ускорить игру, даже если получится быстро - откуда бешеный робот? Или просто турба - это ни к чему не привязанное название, т.е. не в 2 раза быстрее, а типа сколько можно выжать из проца? На железе если считать 7 МГц как правильное удвоение скорости, но клон поддерживает те самые 28 и 56 МГц, то включить на нем 7 МГц можно будет или только либо максимум частоты, либо на скорости обычного спектрума?

djs, на сизифе со 7 МГц робот прямо мелькает или просто игра становится заметно быстрее но примерно в 2-кратных границах?

djs
28.11.2021, 19:07
На Сизифе автор добавил промежуточные режимы турбо: 4.4 и 5.2МГц.
Как это работает, не знаю, но получилось очень здорово: на одном из этих режимов Квазатрон стал значительно отзывчивее, причём даже миниигра осталась играбельной.
Я вообще очень доволен Сизифом. Отличный проект.