Просмотр полной версии : Портирование игры "Last Mission" на УКНЦ
Кто бы говорил
а в чём проблема, оно так и есть
штука в том, что режим "отладки" такой нативно понятный и удобный я только на УК-НЦ встречал (видимо люди для людей делали), на тех же платах ДВК поди догадайся без описания как куда чего записать и каким кнопками управлять...
на PDP старших говорят системщики ещё "лучше и удобней".
Что угодно не напишет.
Что угодно - напишет. Но это что угодно будет именно этим - чем угодно, кроме нормально работающей удобной программой.
Плюс что ещё бесит у современных программеров - это скорость размножения функций (методов, подпрограмм) в одну две строчки. Не я понимаю, таки такой вариант (одна-двухстрочный) имеет право на жизнь - у самого таких немало наберётся, но! Не тогда, когда эта хня вызывается из одного (ровно одного!) места. Спрашиваешь - нахрена?? А он видите ли не воспринимает методы больше на 15-20 строк - ему их ТРУДНО ПОНЯТЬ. Пипец. Сунуть ему листинг (фортрановской) программы строк так на.... хм.. Если я правильно помню, принтер у нас печатал на лист 92 строки, программа, про которую веду разговор - это порядка 40 листов, то есть - три с половиной штуки строк уж точно было. Я думаю - если его поставить перед фактом - или ты к завтрему исправляешь ошибку или тебя будут иметь извращённо начальники, начиная с непосредственного, и по восходящей, наверное, он просто повесится. Ну, меня тогда слегка таки поимели (правда, больше стоя над душой и галдя - когда?? быстрей! быстрей! когда??) - ибо к утру я не успел, только к обеду. Да, цимис ещё в том, что писал её не я и до автора точно не успевали добраться. А поскольку программа считала премию водителям и срок уже поджимал - был ещё риск толпы водил.
размножения функций (методов, подпрограмм) в одну две строчки
особенно.. виртуальных.. когда связь с реальной логикой теряться начинает:)
штука в том, что режим "отладки" такой нативно понятный и удобный я только на УК-НЦ встречал
В чем его нативность и удобство??? Ты вообще часто что-либо отлаживал? А фраза интерактивный дебаггер тебе знакома? :)
особенно.. виртуальных.. когда связь с реальной логикой теряться начинает
Мне тут понадобился свой функционал, которого в стандартном классе Console нет.. гы, как класса. Решил нарисовать свой Console. Ну, что бы много с нуля не писать - полез смотреть, как MS Console реализовала, благо для .NET дизассемблеры и даже большая часть текстов - доступны. Через два часа я был готов переубивать всех индусов, которые ЭТО писали. Боюсь, половина методов - в одну строчку, наверное, тоже примерно половина - internal. АДЪ! В конце концов пришлось идти не сверху вниз, а снизу - от Windows API (тоже отдельная песТня), хоть что то начало вырисовываться.
нативно понятный и удобный
доперло.. :) адрес тумблерами не нужно выставлять:)
В чем его нативность и удобство???
В том, что hobot им не пользуется :):)
А фраза интерактивный дебаггер тебе знакома?
эээ на УК-НЦ? Сильно сомневаюсь в существовании такого? )))
Не забывайте ув. Степан, что я то как раз только паскалю по хоббитски так на своей миленькой РМХ УК-НЦешке и вполне себе счастлив. Отладка - это запись куда то констант при которых другие переменные должны иметь заведомо известные значения и глядеть чего где не так, то есть выявление логических ошибок и возможности оптимизации? Постоянно этим занят. )))
В чем его нативность
так я же написал, в управлении интуитивно понятном )
так я же написал, в управлении интуитивно понятном )
Хобот, мне тебя никогда не понять.. у тебя кроме УКНЦ компьютеров не было? И ты в Зеленограде девственным пользователем ДВК сохранился?
Ты давай тогда нам убогим.. скидку, что мы жили в этом новом-страшном мире... :)
у тебя кроме УКНЦ компьютеров не было?
в те годы не было...а откуда?
если ты в нативной среде не можешь что то отладить - подойди к вопросу творчески, а не хнычь
про всякие высокотехнологичные дебугеры ) На это форуме мы разве не ретро машинки обсуждаем?
Так вот в отличие от ДВК и (с чужих слов) DEC PDP старших - у УК-НЦ режим отладки интуитивно понятный в плане управления как минимум...
вот что и о чём был мой пост...
и ИМХО: в образовательных целях как "базовые знания-понятия" я вовсе не считаю и сегодня
возможности УК-НЦ и ДВК "устаревшими". Бублик так и остался бубликом, хоть ты тресни )
- - - Добавлено - - -
Хобот, мне тебя никогда не понять..
а я и не ищу понимания, я ищу игру "Страна Монстров" Зеленоградскую для RT-11 ! )))
В редактор графики для УКНЦ добавил более продвинутый дизеринг:
https://pic.maxiol.com/thumbs2/1581869862.630666996.20200216221652.png (https://pic.maxiol.com/?v=1581869862.630666996.20200216221652.png&dp=2)
В редактор графики для УКНЦ добавил более продвинутый дизеринг:
https://youtu.be/OsbTfRMGWJM
это я к тому, что
где прямая ссылка на редактор ?
Доделаю - выложу. Просто информирую, что есть такая штука.
Для БК я уже выкладывал, оказался несильно востребован.
Наконец-то дошли руки, переписал заново "диспетчер спрайтов". скорость увеличилась на порядок.
Диск с автозапуском:
https://yadi.sk/d/XLyQ-qbc_17P5w
Возник вопрос:
Как в ЦП замерить промежуток времени? (чтобы высатвлять правильную задержку в основном цикле)
В ПП понятно как.
скорость увеличилась на порядок.
застревание на черепе никуда не делось )
зачем такая граница у спрайта? для анимации поворотов я думаю, но зацеп пустым местом не особо смотрится
застревание на черепе никуда не делось )
зачем такая граница у спрайта? для анимации поворотов я думаю, но зацеп пустым местом не особо смотрится
Ты Хобот в своем амплуа... :) Тебе про Фому, а ты опять со своим Ерёмой..
Я думаю в своем "мегапроекте" ты все мои косяки учтешь :)
Скорость вывода спрайтов не заметил?.. Вот именно над этим я последнее время и работал. Механика будет как в оригинале, можешь хоть убиться.. и я устал тебе объяснять как это работает.
Чтобы не было пустых мест нужно делать динамический размер спрайта ГГ, что влечет за собой пересчеты координат и прочий гемор.. который не вписывается в конкретный движок.
делать динамический размер спрайта Г
а не проще смещать картинку внутри квадрата )))
да я багреп написал про то , что посчитал багом - не надо так не надо.
скорость оценивать надо на реале - ориентироваться на эмулятор - можно потом сюпрайзец получить )))
а не проще смещать картинку внутри квадрата )))
Каким образом??? И в каком квадрате?.. Ладно не будем флэймить... "ответ не проще"
Сам когда возьмешься писать..двигай куда хочешь.
Чтобы тебя не смущало могу сделать чтобы пока башня не повернулась.. не сможешь двигаться.
можно потом сюпрайзец получить )))
Сюрпризов не будет.. "порядок цен" можно и на эмуле проверить, не забывай, что у меня и реал есть.
- - - Добавлено - - -
Повторюсь:
Как в ЦП замерить промежуток времени? (чтобы высатвлять правильную задержку в основном цикле)
В ПП понятно как.
Повторюсь:
Как в ЦП замерить промежуток времени? (чтобы высатвлять правильную задержку в основном цикле)
В ПП понятно как.
Лучше обьяснить сперва, зачем тебе это)
Лучше обьяснить сперва, зачем тебе это)
Основной цикл просчитывается за разное время, чтобы не было рывков можно вычислить максимальное время цикла и в конце цикла выбирать разницу.
Основной цикл просчитывается за разное время, чтобы не было рывков можно вычислить максимальное время цикла и в конце цикла выбирать разницу.
Основной цикл чего?
На спектруме, и много еще где, синхронизация привязывается к кадровой развертке, т.е. в данном случае к таймеру 50Гц.
Основной цикл чего?
Основной игровой цикл.
синхронизация привязывается к кадровой развертке, т.е. в данном случае к таймеру 50Гц.
У меня получается наоборот.. таймер на 100м векторе живет своей жизнью.. обрабатывая список вывода (заранее просчитанных) активных объектов.
У меня получается наоборот.. таймер на 100м векторе живет своей жизнью.. обрабатывая список вывода (заранее просчитанных) активных объектов.
Заодно привяжи к нему и синхронизацию игрового цикла.
Привяжи - это не значит, помести обработку игрового цикла внутрь обработчика кадровых пререываний.
На спектруме, повторюсь, так и делают. На кадровых прерываниях, например, висит музыка. А так же по ним синхронизируется игровой цикл.
Поясню:
Допустим есть десять подвижных объектов.
В основном цикле мы заранее просчитали положение сдвиг спрайта и сохранили в буфере (экранные координаты, размеры, адрес для стирания)+признак активности.
На основании этого сформировали список из 10 позиций который будет крутить таймер.
Единожды отобразив на экарне сбрасывается признак активности и выводятся только те объекты в которых произошли изменения.
т.е. сдвинул спрайт в буфере, установил признак активности - в следующем кадре он выводится.
- - - Добавлено - - -
Привяжи - это не значит, помести обработку игрового цикла внутрь обработчика кадровых пререываний.
я догадываюсь :)
т.е. там же сделать некий счетчик и мы будем знать сколько кадров прошло с прошлого раза.
Я твоего обьяснения не понял, и никаких возражений не имею)
- - - Добавлено - - -
т.е. там же сделать некий счетчик и мы будем знать сколько кадров прошло с прошлого раза.
Да, например, так.
Я твоего обьяснения не понял,
Я сам не ожидал, что получится такая прибавка к скорости (я еще даже не оптимизировал.. так набросал чтобы работало).
Даже как-то настроение повысилось.. :)
Карантин идет в пользу :)
Включить\Выключить сетевой таймер из ЦП можно только так?
.ASCIZ <33><267> ;влючить сетевой таймер ЦП
.ASCIZ <33><277><267> ;вылючить сетевой таймер ЦП
Или есть еще варианты?
Обновление:
https://yadi.sk/d/XLyQ-qbc_17P5w
Можно уже стрелять и геноцидить :)
Возможны глюки, все в процессе отладки.
Возможны глюки, все в процессе отладки.
на первом же экране при попадании в самого нижнего кого то там вылет,
https://pic.maxiol.com/thumbs2/1587051137.787615592.20200416153020502.png (https://pic.maxiol.com/?v=1587051137.787615592.20200416153020502.png&dp=2)
повторный запуск, вылет этажом выше
https://pic.maxiol.com/thumbs2/1587051365.787615592.20200416153419971.png (https://pic.maxiol.com/?v=1587051365.787615592.20200416153419971.png&dp=2)
Не молоти пробел как угорелый.. разбираюсь с этой проблемой, также в упор врагов не расстреливай (негуманно :) )
- - - Добавлено - - -
Такова цена асинхронности отрисовки.. глюки вылазят где не ждали, поэтому выше спрашивал про таймер.. все дружно промолчали :(
- - - Добавлено - - -
Еще неприятность - пробел пересекается с кнопкой вправо, так что при движении вправо стрелять не получится.
Включить\Выключить сетевой таймер из ЦП можно только так?
Код:
.ASCIZ <33><267> ;влючить сетевой таймер ЦП
.ASCIZ <33><277><267> ;вылючить сетевой таймер ЦП
Или есть еще варианты?
Такова цена асинхронности отрисовки.. глюки вылазят где не ждали, поэтому выше спрашивал про таймер.. все дружно промолчали
Бит 9 регистра 0177054 в магистрали ПП, установлен в 1 - не работает, сброшен в ноль - работает.
BIC #400,@#177054 - разрешить сетевой таймер в магистрали ЦП.
BIS #400,@#177054 - запретить сетевой таймер в магистрали ЦП.
Но есть одно НО. События сетевого таймера поступают на вход EVNT процессора, там по данному случаю устанавливается триггер, по установленному состоянию которого и производится прерывание по вектору 100. При удовлетворении прерывания триггер очищается. Теперь представим такую ситуацию: у нас в ЦП запретили прерывания командой MTPS #200. Установлен 7-й бит в PSW, прерывания не возникают, но импульсы на вход EVNT поступают, поэтому триггер сетевого таймера установлен. В магистрали ПП командой BIS #400,@#177054 запрещаем подавать импульсы на вход EVNT ЦП. Но триггер сетевого таймера остался в установленном состоянии. Поэтому при разрешении прерываний командой MTPS #0 всё равно проскочит одно прерывание по сетевому таймеру.
MTPS #200 действительно рисует лишний кадр (даже может и часть) из предыдущего состояния.. это я заметил.
Таймер мне нужно выключать именно из ЦП.. в меру своего понимания я сделал так: при входе в процедуру по 100му вектору я пытаюсь выключить таймер <33><277><267> отрисовываю.
Включаю же таймер когда пересчитал все для следующего кадра.
- - - Добавлено - - -
А глюки вылетают где придется.. мне нужно это еще переварить. Как при общем доступе к данным..
В новой версии персонаж как-то бешенно стал носится, относительно того, что было раньше.
И цвета лабиринт мне нравились раньше больше. Может даже не сами цвета, а то, как это все было нарисовано.
Хобот, потести на предмет вылетов:
https://yadi.sk/d/XLyQ-qbc_17P5w
насчет геймплея не заморочивайся, просто полетай постреляй, пока не глюканет.
насчет геймплея не заморочивайся, просто полетай постреляй, пока не глюканет.
вставь пожалуйста монстра по имени Хунта !!! Очень прошу!!!
Глюки возникали при совместном доступе к данным из программы и прерывания, правильная расстановка MTPS все решила.
Изменений довольно много сделал, добился "плавности " анимации до той степени которая меня устроила.
S_V_B, не вылетело пока, вылетит отпишу...
похоже ты много чего там поправил или я раньше не заметил
1. игра ярче стала выглядеть в градациях, что крайне важно
2. скорость очень шустрая ПКМ в эмуляторе
вопрос: может быть проблему со стрельбой вправо можно решить пересадив упр. на ДКЛ ? - это же почти джойстик на реале довольно удобный )
может быть проблему со стрельбой вправо можно решить пересадив упр. на ДКЛ ?
Можно конечно, но клавиша "типа зю" не очень очевидна, а пробел по умолчанию воспринимается. (Спасиба разработчикам за такую подставу, могли бы дорожку на пленке по другому нарисовать)
S_V_B, так сделай как на спектруме азоп+спейс или НР+стрелки как в "Кнайте" или "ЗЕТ" + цифровая или файер любая кроме дкл, где только движение - вариантов масса же...ты тетрис для 2-их Высотина включал? А ты включи и попробуй подвигать левый и правый фигуры. Можно по моему зажать кнопку и ППЦ - но если играть "честно" играть можно )))
Еще неприятность - пробел пересекается с кнопкой вправо, так что при движении вправо стрелять не получится.Напоминаю: в большинстве игр на PDP-11 управление делается не стрелочками, а кнопками отдельной цифровой клавиатуры. "4" - влево, "5" - вниз (назад), "6" - вправо, "8" - вперед (вверх). Ну, и "7" - стрелять влево, "9" - стрелять вправо, если это нужно. В одномерном случае - "4" - влево, "5" - стоп, "6" - вправо. Иногда это дело опускают на ряд ниже - 1-2-3-5.
в большинстве игр на PDP-11 управление делается не стрелочками, а кнопками отдельной цифровой клавиатуры. "4" - влево, "5" - вниз
Цифры тоже пересекаются.
- - - Добавлено - - -
Дабы отвлечься сделал в редакторе экспорт тайлов 8х8 (в формате игры) и начал перерисовывать. (чтобы использовать все цвета в фоне, а не случайное наложение 3го плана как было раньше).
Зацени глазки:
https://pic.maxiol.com/thumbs2/1587470970.100360672.20200421180642.png (https://pic.maxiol.com/?v=1587470970.100360672.20200421180642.png&dp=2)
Зацени глазки:
зомбически!
AFZ, УК-НЦ клавиатура имеет специфику )))
особенно когда работаешь со скан-кодами, как я подозреваю и работает автор игры.
Мой вопрос-запрос про переделку исходника по прежнему актуален
>https://zx-pk.ru/threads/20444-pascal-macro11-(uknts-dvk).html?p=1053389&viewfull=1#post1053389
Будем ждём версию пощупать поглядеть с обновлённой графикой и возможно управлением!
Спасибо.
Если использовать кнопки "C,F,Y,W,пробел", что очень удобно на реальной УКНЦ (все работает одновременно и летает и стреляет), становится невозможно играть на эмуляторе с его ПЦшной раскладкой :(
Если использовать кнопки "C,F,Y,W,пробел"
Сделай выбор клавиш, в чем проблема)
Сделай выбор клавиш, в чем проблема)
Сделаешь выбор и ты навыбираешь, что вообще летать толком не будет (с одновременно нажатыми клавишами).
Короче будет так: стрелки + шифт. (хотя шифт мне не нравится).
пробуйте:
https://yadi.sk/d/XLyQ-qbc_17P5w
- - - Добавлено - - -
Смысл в том чтобы.. лететь стрелять -- лететь по диагонали-- стрелять и все одновременно, не как на БК отдергивая пальцы как пианист:)
Да кстати уже можно пробивать препятствия (стены со взрывчаткой).
Короче будет так: стрелки + шифт. (хотя шифт мне не нравится).
пробуйте:
Мне нравится управление, отзывчивое.
Но очень быстро игра летает. Я понимаю, что мой эмулятор работает быстрее, но ОЧЕНЬ летает)
Но очень быстро игра летает.
Боюсь после добавление всех проверок.. будет медленно летать и нужно будет опять все оптимизировать.
Хотя прогресс на лицо.. раньше инкремент кораблика был +2, сейчас по точкам.
На реале есть проблемка.. когда много врагов чуть помыргивают спрайты по очереди.. я думал что решил это выводом чет-нечет в прерывании, хотя пока не проверял может что и затупил.
- - - Добавлено - - -
Сейчас переходим к самому интересному:
1. Нужно сделать AI врагов.. сейчас кроме "камикадзе" никто не работает.
2. Изюминка этой игры - база (танк) который нужно за собой таскать.. поскольку энергия в корабле ограничена и для зарядки нужно возвращаться на базу.. и таскать ее за собой для этого и стены, чтобы жизнь медом не казалась.. иначе игра будет очень примитивна, как на БК.
+ пушки+ самонаводящиеся ракеты+ пузыри из противных трубок.. не знаю насколько мне удастся повторить оригинал.
хотя шифт мне не нравится)
на реале супер кнопка, а то пробел сдохнет ) а так как и в Кнайте - всё замечательно!
Сделал AI врагов типа "шизик", двигаются непредсказуемо.
Улучшил в очередной раз плавность анимации и по мелочам еще.
https://yadi.sk/d/XLyQ-qbc_17P5w
Сделал AI врагов типа "шизик", двигаются непредсказуемо.
Улучшил в очередной раз плавность анимации и по мелочам еще.
https://yadi.sk/d/XLyQ-qbc_17P5w
Опускается как-то рывками. Это хорошо видно на моем эмуле, который синхронен с лучом.
Опускается как-то рывками. Это хорошо видно на моем эмуле, который синхронен с лучом.
На реале все вроде плавно.
В твоем эмуле очень быстро и странно себя "шизики" ведут - сразу падают вниз.. хотя должны метаться по экрану.
Возможно из-за того, что рандом на таймер ПП завязан, сейчас еще раз на реале проверю, если там все ок... то
- - - Добавлено - - -
Проверил на реале, "шизики" ведут себя правильно, бегают как положено. Что-то в твоем эмуле не так.
Есть проблемка, не успевает за один проход спрайты вывести - поэтому помыргивает. (не смог найти быстрый способ отключения таймера из ЦП). Но вылизывать позже буду.
Подергивание связано с отсутствием выравнивания длительности основного цикла (пока не придумал как сделать, по сетевому таймеру не вариант, получается маленькая разница в отсчетах).
Попробовал на танке покататься:
https://yadi.sk/d/XLyQ-qbc_17P5w
Нужно думать как ускорять (хотя циклы вывода уже развернуты). Можно попробовать засунуть танк в ПП (заранее сдвинув спрайты).
Когда выезжаешь из первой комнаты, и возвращаешься, левый нижний угол комнаты портится.
Я в курсе. Этож только для прикидки делалось, чтобы ресурсоемкость определить.. танк все равно убирать придется в ПП.
Кстати в оригинале есть такая "подлость", что можно самому по запарке подстрелить свой танк (тогда начнешь все с начала), стоит ли оставлять?
- - - Добавлено - - -
О великие ГУРУ УКНЦ, спуститесь наконец с "микросхемных небес" и объясните мне тупому как быть..
(мы работаем в адресном пространстве ЦП)
Всем понятная ситуация (кто пробовал рисовать по вектору 100).. когда пришло прерывание, нужно отключить таймер чтобы не начал повторно рисовать (если не успел)..
Варианты.. попросить через терминал, свой обработчик в ПП... медленные, получаются глюки.
С отрубанием MTPS работает, но дергано и (при переходе в другую локацию)... стирает не там.. (это к сообщению Titus выше).. (успеть нарисовать за ход луча не вариант, итак уже рисуем чет-нечет, скорости разные (на единичку) чтобы в кадр попадало как можно меньше объектов)
Как бы вы справились с подобной ситуацией? (Или УКНЦ сделана для работы только с RT-11 и только для совместимости с терминалами и для работы с софтом который стырили у DEC? )
- - - Добавлено - - -
Это я к чему... если вырубить таймер то анимация будет гораздо плавнее, а не рывками с пропусками больших кусков кода по MTPS.
когда пришло прерывание, нужно отключить таймер чтобы не начал повторно рисовать (если не успел)..
Классический подход при работе с прерываниями на архитектуре PDP-11 - обработчик прерывания начинает работать на уровне приоритета устройства (точнее - на том, что загрузилось в PSW из слова вектор_прерывания_+_2) и, по рекомендациям DEC, на выполнение работы у него есть с десяток команд процессора. Напоминаю, PDP-11 проектировались, в том числе, для создания систем реального времени. Если обработчик прерывания не успел сделать свою работу, то, по хорошему, должна быть очередь для обработки таких (отложенных) прерываний, соответственно, запрос на продолжение работы ставится в эту очередь и обработчик завершает свою работу. После того, как ВСЕ активные запросы на прерывания будут обработаны или поставлены в очередь - начинается выборка заданий из очереди - и доделывание работы.
С учётом того, что твоя игрушка - по сути система реального времени (к примеру, отрисовка в обработчике прерывания заняла 2 секунды - на 2 секунды игра застыла и не реагирует, скажем, на прерывания от клавиатуры) - или хайли оптимизировать обработчик прерывания от таймера или переходить на выше описанный вариант или высчитывать синхронизацию разных действий (с очень небольшим количеством выполняемых команд) с точностью до команды.
И в третьем случае:
mov #100., r1
10$:
sob r1, 10$
- это 101, а не 2 команды.
- - - Добавлено - - -
УКНЦ сделана
в соответствии со стандартной архитектурой PDP-11 и на ней будет работать всё, что написано под эту архитектуру. Именно поэтому перенос на неё, скажем, RT-11 - тривиален, в отличии от, скажем, БК
Это я к чему... если вырубить таймер то анимация будет гораздо плавнее, а не рывками с пропусками больших кусков кода по MTPS.
Если обработчик прерывания не успел сделать свою работу, то, по хорошему, должна быть очередь для обработки таких (отложенных) прерываний
Не заметил очереди.. режет по живому :)
игра застыла и не реагирует, скажем, на прерывания от клавиатуры)
это находится в другом адресном пространстве.. и насколько я понял в ЦП полезных прерываний нет.. поэтому и работает при MTPS #200
Вопрос в другом как у этого "котопса" выключить быстро таймер у пса если это можно сделать только попросив кота?
- - - Добавлено - - -
Да к стати я придумал кличку для УКНЦ -"КОТОПЕС ". (ORR)
Не заметил очереди
Обычно эту работу берёт на себя операционка. И по большей части этот механизм сделан для драйверов. Но в RSX есть API и для программ, но он несколько более (для программ /PR:5) или более замороченный (для программ /PR:0). И ЕМНИП, что то есть и в RT.
Или же программа сама реализует (похожий) механизм.
и насколько я понял в ЦП полезных прерываний нет
Прерывание от клавиатуры и вывода на экран (177560-177566), прерывание от С2, по идее - прерывание от MZ, вектор 4, вектор 10 - это как минимум.
выключить быстро таймер
MTPS #200
Быстрее - нет. Это - логическая маскировка. Физическая маскировка (нет на УК-НЦ) -- BIC #100, @#177546. Почему маскировка. Таймер каждые 0.02 с выставляет запрос на прерывание. В этот механизм разрешение или запрет никак не вмешивается. То есть, если за 0.0000000001с до выставления запроса включить разрешение - от через 0.0000000001 с прилетит прерывание. А не через 0.02 с
Прерывание от клавиатуры и вывода на экран (177560-177566), прерывание от С2, по идее - прерывание от MZ, вектор 4, вектор 10 - это как минимум.
Все в периферийном поцесссре.. и ни как нас не касается (КОТОПЕС)
MTPS #200
MTPS #340 - на УКНЦ не должен работать, хотя во всех книжках пишут именно так.
Все в периферийном поцесссре.. и ни как нас не касается (КОТОПЕС)
Какая разница где - механизм прерываний и их обработка одинаков.
MTPS #340 - на УКНЦ не должен работать, хотя во всех книжках пишут именно так.
Отработает любая команда MTPS #байт. И выставится любой приоритет процессора от 0 до 7. Просто снаружи возможен запрос только с пятым приоритетом, так что или выставить приоритет от 0 до 4 - и тогда снаружи прилетит, или от 5 до 7 - и тогда запросы снаружи игнорируются.
Быстрее работающий ЦП.. никак не может на это повлиять... ну не верю... вы же под микроскопом смотрели... должна быть какая-то ячейка при обнулении которой таймер останавливается.. за 3 такта.. (шучу конечно)
- - - Добавлено - - -
Какая разница где - механизм прерываний и их обработка одинаков.
Не забывай - два процессора - две разные машинки. :)
И ПП разрешает прерываться по 100му ЦП.
должна быть какая-то ячейка при обнулении которой таймер останавливается.. за 3 такта
На системах, где у таймера есть РКС - CLR @#177546 - теоретически - три такта
На системах, где у таймера есть РКС - CLR @#177546 - теоретически - три такта
Да только на то чтобы это сделать на УКНЦ уйдет 586 тактов. (Для ЦП)
Не забывай - два процессора - две разные машинки
Архитектура - одна и та же. Даже на ПП почти стандартная. Отличия в деталях.
ПП разрешает прерываться по 100му ЦП
Когда проходит reset на ПП или когда его попросят. По сути - CLR @#177546
- - - Добавлено - - -
Да только на то чтобы это сделать на УКНЦ уйдет 586 тактов. (Для ЦП)
А на Кванте, скажем - примерно полсекунды - дотянутся до кнопки и нажать её. И? Гарантированно быстрый способ (ВЕЗДЕ) - выставить нужный приоритет процессора.
Архитектура - одна и та же. Даже на ПП почти стандартная. Отличия в деталях.
НЕ забывай, что ПП главный... и у ЦП нет даже возможности сделать что-то без его участия...
В этом и беда - более быстрый процессор никак не может повлиять на на более медленный.. кроме как попросить его через 8ми битный канал.
А на Кванте, скажем - примерно полсекунды
Поэтому и будете играть в "символьный" тетрис.
- - - Добавлено - - -
Без вашей поддержки у меня ничего не получится... я варюсь в собственном соку.. в домыслах и измыщлениях...документация убога.. где-то двусмысленна... (для PC я наверное смогу уже эту игру написать минут за пятнадцать... на бис наверно с закрытыми глазами).
Поэтому и будете играть в "символьный" тетрис.
Угу, конечно.
Угу, конечно.
Жду не-дождусь обратного... в "студию......."
Жду не-дождусь обратного... в "студию......."
В очередь. После ethernet-а, минимум.
АВЕССАЛОЛММ... кто-бы думал, что кто-нибудь кроме ХУНТЫ , будет спасителем "символьного" Кванта... (примочки типа "встроенной" в мою плату дополнительной памяти)... напиши "круть" для голого Кванта.
S_V_B, лучше расскажи на пальцах, зачем тебе запрещать прерывания 50Гц на ЦП, и что ты делаешь с помощью этих прерываний.
На 100м векторе висит список объектов (с признаком активности)... если актвен..то рисуем..
На 100м векторе висит список объектов (с признаком активности)... если актвен..то рисуем..
Эта информация ни о чем.
Из нее непонятно, зачем тебе отключать это прерывание?
Я предусмотрел максимально, чтобы в каждый кадр попадало минимум объектов.
- - - Добавлено - - -
Из нее непонятно, зачем тебе отключать это прерывание?
Иногда объектов становится больше чем мы можем отрисовать.
- - - Добавлено - - -
Titus, ты кстати проверил почему "шизики" падают в твоем эмуляторе?
"символьного" Кванта
Я вполне себе рисовал графику на КЦГД
напиши "круть" для голого Кванта
Хочешь - напиши. У меня - не в приоритетах.
Хочешь - напиши. У меня - не в приоритетах.
Ну да.. мы токма +- байт в дырку умеем пихать... далее нам не интерсно (главное чтобы терминал был "янтарным").
Ну да.. мы токма +- байт в дырку умеем пихать
Ты и этого не умеешь? Постоянные вопросы - а как сделать, а скажите как, а может кто сделает.
главное чтобы терминал был "янтарным"
Зависть - смертный грех
Иногда объектов становится больше чем мы можем отрисовать.
Тогда просто их не отрисовывай)
Не обязательно для этого запрещать прерывания.
Вообще, если брать классический подход на платформах подобной мощности (спектрумы и т.д.), очень часто на прерывания, кроме проигрывателя музыки вообще ничего не вешается. Они существуют, чтобы главная программа синхронизировалась по ним с кадровой разверткой. Т.е. главная программа ждет выставления какого-то флага, который выставляет подпрограмма на прерываниях, далее главная программа делает все, что надо - вычисляет, орисовывает, и т.д. Затем опять переходит в режим ожидания появления этого самого флага, который устанавливает подпрограмма на прерываниях.
- - - Добавлено - - -
Но если ты уж прям очень хочешь 'запрещать' прерывания, то:
Сделай программный флаг DISABLE_INT. Устанавливай его из главной программы, и снимай из главной программы. А в начале обработчика прерывания смотри - если флаг стоит, то выходи из обработчика и ничего не делай. Это полный аналог запрещения прерываний) Если, конечно, ты не используешь в основной программе стек для отрисовки обьектов или чего-то еще.
Хочешь - напиши. У меня - не в приоритетах.
Ну да.. мы токма +- байт в дырку умеем пихать... далее нам не интерсно (главное чтобы терминал был "янтарным").
Т.е. главная программа ждет выставления какого-то флага, который выставляет подпрограмма на прерываниях,
Это я сделал в версии 3.0 - *****, в варианте с "КОТОПСОМ" не работает. Это было в версии LM3... сейчас LM5
Ну да.. мы токма +- байт в дырку умеем пихать
Ты и этого не умеешь? Постоянные вопросы - а как сделать, а скажите как, а может кто сделает.
главное чтобы терминал был "янтарным"
Зависть - смертный грех
Ты и этого не умеешь? Постоянные вопросы - а как сделать, а скажите как, а может кто сделает.
Это было несколько лет назад и то чтобы разговор завязать... не преувеличивай свое ЧСВ.
- - - Добавлено - - -
В итоге я понял.. никто ничего не сделает, подскажут.. не более чем в сканах убогой информации, а Хунта будет пердеть...
Но если ты уж прям очень хочешь 'запрещать' прерывания, то:
Сделай программный флаг DISABLE_INT. Устанавливай его из главной программы, и снимай из главной программы. А в начале обработчика прерывания смотри - если флаг стоит, то выходи из обработчика и ничего не делай. Это полный аналог запрещения прерываний) Если, конечно, ты не используешь в основной программе стек для отрисовки обьектов или чего-то еще.
Читай это)
Это было несколько лет назад и то чтобы разговор завязать
О великие ГУРУ УКНЦ, спуститесь наконец с "микросхемных небес" и объясните мне тупому как быть..
не преувеличивай
А мне и не надо. Ты сам всё сделаешь.
никто ничего не сделает, подскажут
Хунта будет пердеть
А ты подумай - почему. Хотя... нет, не думай.
Спасибо всем за посильную помощь... буду ебстись как могу :)
С "Янтарным" я общался только на работе, не знаю как Вам в те годы умудрилось его поиметь... но Бог вам судья.
буду е****сь
п****ть
П****ть - это ты про свою игру и тебя точно подметил.
П****ть - это ты про свою игру и тебя точно подметил.
Я не понял.. я начинаю бояться.
Вообще идея была проста: сделать форк лучше чем на XT.. (ну и тем умникам(600 оп.с) которые говорят что УКНЦ уступает по производительности БК11м, доказать что это не так)
SuperMax
01.05.2020, 13:28
прекращаем оффтопик
Но если ты уж прям очень хочешь 'запрещать' прерывания, то:
Сделай программный флаг DISABLE_INT. Устанавливай его из главной программы, и снимай из главной программы. А в начале обработчика прерывания смотри - если флаг стоит, то выходи из обработчика и ничего не делай. Это полный аналог запрещения прерываний) Если, конечно, ты не используешь в основной программе стек для отрисовки обьектов или чего-то еще.
Третий раз пишу одно и то же по существу, видя, что ты никак не реагируешь)
Сделай программный флаг DISABLE_INT. Устанавливай его из главной программы, и снимай из главной программы.
Сейчас дизайбл инт... всегда..зашел на 100й вектор -> дизайбл инт.... посчитал все -> еенайбл.
Сейчас дизайбл инт... всегда..зашел на 100й вектор -> дизайбл инт.... посчитал все -> еенайбл.
Я думаю, что тебе не могут помочь так, как ты хочешь, т.к. ты не можешь сформулировать, что зачем и почему.
До сих пор не понял что и почему тебе нужно, хотя задавал массу наводящих вопросов и предложений.
о, хотя задавал массу наводящих вопросов и предложений.
Зачем задавать наводящие вопрросы, "издеваетесь" да?
Скажите как нужно делать.. и я успокоюсь.
Лучше - напишите вывод 10+ 16х16 спрайтов... тогда и поговорим.
- - - Добавлено - - -
Да и не забудьте мозгов им добавить.
- - - Добавлено - - -
Titus.. вот ты такой продвинутый... покажи как нужно делать... не просто одну строку завернуть, а нарисуй.. 10+ объектов разного размера (h - 8 - 48) + столкновения.. и.тд. .. тогда начнем действительно понимать друг-друга
Titus.. вот ты такой продвинутый... покажи как нужно делать... не просто одну строку завернуть, а нарисуй.. 10+ объектов разного размера (h - 8 - 48) + столкновения.. и.тд. .. тогда начнем действительно понимать друг-друга
Возможно, мы просто на разных языках говорим)
Я говорю честно - я тебя не понимаю) Вижу, что ты чего-то просишь, но не понимаю, чего. Потому что тот язык, на котором ты говоришь, не дает мне той информации, которая мне необходима, чтобы понять нюансы)
Может другие поймут)
Я говорю честно - я тебя не понимаю) Вижу, что ты чего-то просишь, но не понимаю, чего. Потому что тот язык, на котором ты говоришь, не дает мне той информации, которая мне необходима, чтобы понять нюансы)
Ну есть универсальный язык - напиши на ассемблере.. и я все пойму, ты только скажи.. спрайтов я тебе дам (спрайтов 10+ однговременно + колизии), покажи как ты "правильно" понимаешь.. "геймлей"
Ну есть универсальный язык - напиши на ассемблере..
Может мне еще и дом построить 10-этажный, чтобы показать на примере, как нажимать в лифте красную кнопку?
Ты спросил - как запрещать прерывания 50гц для ЦП. Я тебе ответил - введи программный флаг.
Если ты не уточняешь, почему тебе это не подходит, я не могу тебе предложить иную подсказку.
Я тебе ответил - введи программный флаг.
Попробуй на реале.. всегда советов много толку ... мало... почему нельзя показать разницу... советчиков дофига... напиши.. сравним.
Посмотрел ретроспективу своих вопросов на этом форуме.... стало тоскливо.. ответов нет.
Если отвечают... то ГБшные боты.
"Я не могу понять твои мыли"
"Ты очень интересен для нас"...
Со звуком совсем беда.. неделю потратил на изыскания, ничего интересного не получилось.. Проигрывание по таймеру (304) .. я уже год как сделал и показывал.. но оно убого.
Ума не приложу как сделать "интересное" звучание в ПП.. (при этом чтобы клава не лагала).
Неужели никто не пытался писать звук на УКНЦ..(менять громкость однобитно, фазирование.. каналы).. нет???
Или сразу будем писать под AY?.. Я уже плеер PT2 сделал.. фоном будет играть.. к моменту завершения прожекта у всех же будет ИРПР AY?
Я бы сделал выбор в меню - AY или бипер. Или же автодетект. Но лучше выбор.
Биппера пока увы нет.. который бы меня устроил. (помогите)
- - - Добавлено - - -
Кстати у ребят на Спеке все посчитано уже до такта.., а я до сих пор не уверен, что есть такт на УКНЦ :(
Короче - расстаемся с вами.. до "умных мыслей"... пусть Хунта вас развлекает... лето впереди..
https://yadi.sk/d/XLyQ-qbc_17P5w
поправил то что Titus не нравилось..
Остальное в память не лезет.. (сдвинул спрайты танка.. запихал в пп.. уже не лезет.. фоновая муза мешает.причем на AY иначе не интересно)
Пока косяков дофига... думаем. (но уже сложился общий объем).
randomizer
12.05.2020, 00:25
Ума не приложу как сделать "интересное" звучание в ПП.. (при этом чтобы клава не лагала).
Хм, а почему клава лагает? Прерывания заметно влияют на звук и прходится их отключать?
Или сразу будем писать под AY?.. Я уже плеер PT2 сделал.. фоном будет играть.. к моменту завершения прожекта у всех же будет ИРПР AY?
Любопытно, а кто нибудь еще подключил AY к параллельному порту?
Хотел было собрать эту схемку на выходных, но как только обнаружил что необходимо инвертировать все что отправлятся на звукогонератор, тут же мой внутренний перефикционист наложил вето на эту затею.
Пожалуйста, кто нибудь, убедите меня, что вместо того чтобы просто поставить инверторы перед AY, удобней каждый раз заботиться о том чтобы данные отправляемые на звукогенератор были инвертироваными.
Пожалуйста, кто нибудь, убедите меня, что вместо того чтобы просто поставить инверторы перед AY, удобней каждый раз заботиться о том чтобы данные отправляемые на звукогенератор были инвертироваными.
Инвертировать - это одна команда. А при правильных ручках, и того меньше.
Ставить инвертор - это насилие над реальщиками, которым придется покупать/паять дополнительную микросхему.
Гражданин Возняк прославился тем, что сокращал число корпусов, удешевляя и упрощая схему, а умелый программист все это же делал программно. Вряд ли бы кто-нибудь с восхищением вспоминал, делай он обратное.
randomizer
12.05.2020, 01:59
Ставить инвертор - это насилие над реальщиками, которым придется покупать/паять дополнительную микросхему.
Никак не могу увидеть сложность в добавлении дополнительной микросхемы.
Микросхемы всем доступны. Если человек может спаять схему без инверторов, то их добавление нисколько не усложнит монтаж устройства. Разве что отнимет немного больше времени.
- - - Добавлено - - -
К тому же, PDP-11 разрабатывали заботясь о программисте. Вроде как за это её любят ;)
Никак не могу увидеть сложность в добавлении дополнительной микросхемы.
Микросхемы всем доступны. Если человек может спаять схему без инверторов, то их добавление нисколько не усложнит монтаж устройства. Разве что отнимет немного больше времени.
Если бы ко мне пришел устраиваться на работу программист с такими взглядами, я бы его никогда не взял)
randomizer
12.05.2020, 02:02
Труд программиста гораздо дороже чем железо.
Труд программиста гораздо дороже чем железо.
У всего есть мера. На одной чаше весов сложность программы, на другой сложность и цена схемы.
Если схема оптимизируется по цене/корпусам одним щелчком ОПЫТНОГО и УМЕЛОГО программиста, то это программист кого надо программист)
randomizer
12.05.2020, 02:34
ОПЫТНЫЙ и УМЕЛЫЙ программист всегда стремится упрощать. Не хотел бы я разбираться с кодом человека который так легко принимает дополнительную сложность.
- - - Добавлено - - -
У всего есть мера. На одной чаше весов сложность программы, на другой сложность и цена схемы.
В том то и дело, цена схемы изменяется незначительно.
Всё же интересно мнение не ОПЫТНЫХ и УМЕЛЫХ, а тех кто использует железку, а точнее код под нее пишет.
Любопытно ещё, кто нибудь кроме S_V_B её собирал?
Если нет, то я тогда точно спаяю такую, но с инверторами, и будет тогда два обладателя подобных устройств несовместимых друг с другом :D:D
Цена программного решения - одно или два слова плюс время на выполнение. Там плюс команда, сям пара команд - у вас, господа программисты на PDP-11 - пару гигов свободной памяти и 10 гигагерцовый проц?
У меня "программист" с таким подходом - пошёл бы лесом. На лесозаготовки.
Когда человек слабо разбирается в электронике - получаем вариант сделанного подключения AY к параллельному порту. Плохое знание электроники обходится программно.
Когда человек слабо разбирается в программировании - всё бы (в данном случае - инвертирование) сделал аппаратно. И мы бы имели код для работы с этой железкой в стиле... ну скажем - советских драйверов под RT-11 - шаг влево шаг вправо - и нихера не работает.
Золотая середина (хотя само понятие мне не нравится, предпочитаю вариант - человек прокачан и там и там) - встречается редко. А теперь, с развитием цивилизации и тупой идеи ("ах, это невозможно - учиться многому"), что можно стать только узким специалистов - стремится к вымиранию.
Я бы, если бы количество корпусов мелко- и средне-логики превысило бы... ну, где то в районе пяти тире десяти штук - упрятал бы все в FPGA. Но это я.
CodeMaster
12.05.2020, 09:04
Ставить инвертор - это насилие над реальщиками, которым придется покупать/паять дополнительную микросхему.
Насилие на реальщиками - это если м/с надо ставить внутрь корпуса. В извращённой форме - если не просто на проводках, а надо что-то резать или выпаивать на плате. А если это внешний модуль для LPT, то пох.
это если м/с надо ставить внутрь корпуса.
Если изначально нормально спроектировали - то похрен, где это будет стоять.
В извращённой форме - если не просто на проводках, а надо что-то резать или выпаивать на плате.
Это если косяки на этап проектирование дошли до конечно продукта. Если это прототип - сплошь и рядом. За что и люблю FPGA - снаружи меньше корпусов - шанс накосячить уменьшается. А на этапе реализации проекта перепрошивка FPGA стоит дёшевою
CodeMaster
12.05.2020, 09:20
Это если косяки на этап проектирование дошли до конечно продукта.
Мы же сейчас про УКНЦ? Кто-то планирует перезапуск продукта под новую игру с AY?
Мы же сейчас про УКНЦ?
Я про - в принципе.
Кто-то планирует перезапуск продукта под новую игру с AY?
А его вообще, кроме автора, кто то сделал? Если нет - перезапускать нечего - этап прототипа.
А его вообще, кроме автора, кто то сделал?
Там делать-то два часа неспешно..
Там делать-то два часа неспешно..
Я не помню, что бы спрашивал - сколько его делать.
Я про то, что если бы хотели давно бы уже сделали.. нет никаких затрат по времени и финансам.
если бы хотели
Ключевые слова. Как я писал в соседней теме - часто хотелки-поделки автора нужны только автору.
randomizer
13.05.2020, 03:49
Или сразу будем писать под AY?.. Я уже плеер PT2 сделал.. фоном будет играть.. к моменту завершения прожекта у всех же будет ИРПР AY?
Не охота больше возится со спикером, ИМХО, пиши под AY.
К тому же, у спецов в теме "Почему необходимо ничего не делать" уже не будет аргумента, что нет софта используещего AY.
Я с удовольствием спаяю модуль для ИРПР просто ради того чтобы твоя игра работала со звуком.
А пока, хочется в своем проекте звук тоже добавить.
Но у меня есть только один(из 20 купленных по дешевке в китае) нормально работающий чип AY.
И он уже стоит в модуле подключаемом к ЦП. Поэтому цепляю его через переходник к ПП.
Но у меня есть только один(из 20 купленных по дешевке в китае) нормально работающий чип AY.
Мне повезло, из десяти только один не пашет.
Закажи YM, они у меня все живые пришли, а AY действительно сильно поношенные.
randomizer
13.05.2020, 09:03
Закажи YM, они у меня все живые пришли, а AY действительно сильно поношенные.
Как только utsource.net вновь начнет отправлять заказы в Россию, закажу AY-3-8913 (корпус с 24-мя выводами, параллельные порты не выведены наружу)
- - - Добавлено - - -
В свое время решил использовать именно AY, а не YM из-за различий в звучании:
"И все же "непpавильная" хаpактеpистика AY на слух воспpинимается как более пpодолжительное послезвучание, эхо и своеобpазная слитность мелодии.
Не последнюю pоль в такой субъективной оценке игpают сами музыкальные композиции для "Спектpума", котоpые изобилуют пассажами с изменяющимися по гpомкости звуками.
YM на слух звучит более "сухо", отpывисто.
Здесь уместна аналогия с музыкальными теpминами: для AY хаpактеpно исполнение мелодии "легато" (плавный пеpеход одного звука в дpугой), для YM- "стаккато" (кpаткое, отpывистое исполнение звуков)."
Хотя конечно интересно оценить на слух.
Хотя конечно интересно оценить на слух.
Пробовал и тот и тот, особой разницы не заметил, главное чтобы работал. Единственное показалось, что звук AY как бы "плавает" чуть-чуть, списал на убитость пришедших AYков.. больно они страшные были (паянные-перепаянные, в канифоли и еще в какой-то белой гадости, кое как отмыл).
Еще бы найти муз. редактор под винду который мог бы под AY писать в нужных форматах.
в нужных форматах.
а для каких форматов есть плейер ?
pt2 уже есть, pt3, asc, sqt, stc, stp - есть исходники БКшечные, переделать недолго.
- - - Добавлено - - -
PSG, AY не в счет (большие сильно файлы)
randomizer
13.05.2020, 18:04
ChibiAkumas использует файлы Arkos Tracker'a (https://www.julien-nevo.com/arkostracker/).
Но портировать проигрыватель я только собираюсь.
PSG, AY не в счет (большие сильно файлы)
psg это дамп регистров. AY вообще исполняемый z80код
смотри VortexTracker
psg это дамп регистров
Поэтому и большой.
pt2 уже есть, pt3, asc, sqt, stc, stp
Какой муз. ред. можно использовать для вышеприведенных форматов?
Какой муз. ред. можно использовать для вышеприведенных форматов?
https://bulba.untergrund.net/vortex.htm
" В данной версии можно загружать, слушать, редактировать PT1, PT2, PT3, STC, STP, SQT, ASC, PSC, PSM, FLS, GTR, FTC, FXM и AY (ZXAYAMAD) модули и сохранять их в формате PT3 либо в промежуточном текстовом формате."
и сохранять их в формате PT3
Отлично!
Нужно было мне сразу pt3 делать (это не проблема).
Сделал выравнивание скорости (не зависимо от количества объектов) через программируемый таймер
https://yadi.sk/d/XLyQ-qbc_17P5w
Сделал выравнивание скорости (не зависимо от количества объектов) через программируемый таймер
А почему движение непокадровое? Ведь у тебя скорости хватает на это.
Сделал выравнивание скорости (не зависимо от количества объектов)
какая то не внятная стала стрельба, 1 луч на экране - можно будет прокачать или это приговор,
застревание на черепе не проверял.
кстати говоря - просто нет желания вникать, надеюсь автор в курсе о проблемах проходимости английской MS DОS версии игры?
А почему движение непокадровое?
Что значит по кадровое?
Перерисовка экрана делается по 100му вектору - по кадрам.
Я вижу проблему неравномерности движения (пока не занимался) вот в чем:
есть два параметра у объектов - скорость анимации и скорость передвижения. У объектов с одинаковыми скоростями возникают накладки.
т.е. грубо говоря если на экране три объекта со скоростью 5 - то четыре кадра прорисовки не будет, а на 5й они вместе полезут. (будет рывок).
решение в принципе на поверхности - нужно равномерней распределять вывод.
С появлением БАЗЫ (танка) стало еще хуже - больно уж она тяжелая.
...
Было бы интересно узнать как это делать правильно. (С учетом невозможности вывести все объекты за одно прерывание).
Пример со спектрума наверное будет не совсем корректен, с учетом его разрешения, одного битплана и прямого доступа к ВОЗУ, наверное можно вывести весь экран за раз.
кстати говоря - просто нет желания вникать, надеюсь автор в курсе о проблемах проходимости английской MS DОS версии игры?
Все проходится (сам проходил в детстве на XT) со стотысячного раза :) Скорее не проходится из-за хардкорности, но это общая черта всех игрушек 80х тем более испанских.
Да и раньше мы были менее привередливыми - хавали что дают :) Ну словил баг, вылетел - начнешь заново (это же компьютер - чудо, сам факт нахождения рядом с ним уже радость :) )
застревание на черепе не проверял.
https://youtu.be/PY--Di8D4rE
Посмотри видео на 35й секунде, как проходят твой "любимый" череп.
какая то не внятная стала стрельба, 1 луч на экране - можно будет прокачать или это приговор,
Геймплеем (игровым балансом) буду заниматься в последнюю очередь когда решу все технические проблемы (коих немало).
Конечно с учетом "измельчания" геймеров нужно будет упростить прохождение (например убивать не с первого касания).
Но некоторые ключевые моменты - например где тебя "стерегут" враги и с первого раза там не пройти (со второго будешь искать обходной путь) нужно оставить.
С лазером тоже все специально сделано (нужно будет подобрать кол-во выстрелов) - дай тебе пулемёт - ты вынесешь всех врагов в первую секунду (не интересно, нужно думать куда стреляешь).
Поэтому сделан "медленный" лазер.. будет еще одно ограничение по лазеру, каждый выстрел будет отнимать (и без того конечную) энергию у корабля и если увлечешься то когда энергия кончится - корабль упадет. :)
Как-то так, но это все детали геймплея - все потом.
Все проходится (сам проходил в детстве на XT)
нахрапом обсуждение на игровом форуме не нашёл.
суть - в архиве на сайте версия на испанском - она проходимая (https://www.old-games.ru/game/screenshots/2294.html), английская как выяснилось - нет.
подробности не ведаю. найду, всплывёт тема - отпишусь.
Да и раньше мы были менее привередливыми - хавали что дают Ну словил баг, вылетел - начнешь заново (это же компьютер - чудо, сам факт нахождения рядом с ним уже радость )
да да да! я сам помню эйфорию от первого ПиСи необъяснимую...
нужно думать куда стреляешь
да нужно целиться, ты кстати тыкал УК-НЦшный вариант "очень похожей игры", там вся сложность в управление втиснута и в тонкость выстрелов,
я её когда то 1 раз проходил...больше не хочется, название файла в архиве на образах
MISION.SAVТОЛЬКО ДЛЯ УК-НЦ.
В целом - очень рад, что не бросаешь проект!
Больше игрушек для УК-НЦ самых разных всяких )
в архиве на сайте версия на испанском - она проходимая, английская как выяснилось - нет.
Английской не встречал.
MISION.SAV
По мотивам что ли?
Кинь ссылкой, иначе я в ближайшем будущем вряд ли найду :)
Кинь ссылкой, иначе я в ближайшем будущем вряд ли найду
да ладно )
открывай оглавление архива (http://hobot.pdp-11.ru/ukdwk_archive/) в браузере (у меня автопоиск по набору текста вклю) и пиши на аглицком
название - он кинет тебя в состав образа - чуть вверх и будет путь и название образа. этот файл не
редкость и только в разделе УК-НЦ само собой. Кстати игра скорее всего ресурс ПП не использует совсем!
https://pic.maxiol.com/thumbs2/1591290977.787615436.20200604171254278.png (https://pic.maxiol.com/?v=1591290977.787615436.20200604171254278.png&dp=2) https://pic.maxiol.com/thumbs2/1591291014.787615436.20200604171304356.png
(https://pic.maxiol.com/?v=1591291014.787615436.20200604171304356.png&dp=2) https://pic.maxiol.com/thumbs2/1591291044.787615436.20200604171313460.png (https://pic.maxiol.com/?v=1591291044.787615436.20200604171313460.png&dp=2) https://pic.maxiol.com/thumbs2/1591291073.787615436.20200604171324446.png
(https://pic.maxiol.com/?v=1591291073.787615436.20200604171324446.png&dp=2)
Что значит по кадровое?
Перерисовка экрана делается по 100му вектору - по кадрам.
Я вижу проблему неравномерности движения (пока не занимался) вот в чем:
есть два параметра у объектов - скорость анимации и скорость передвижения. У объектов с одинаковыми скоростями возникают накладки.
т.е. грубо говоря если на экране три объекта со скоростью 5 - то четыре кадра прорисовки не будет, а на 5й они вместе полезут. (будет рывок).
решение в принципе на поверхности - нужно равномерней распределять вывод.
С появлением БАЗЫ (танка) стало еще хуже - больно уж она тяжелая.
...
Было бы интересно узнать как это делать правильно. (С учетом невозможности вывести все объекты за одно прерывание).
Пример со спектрума наверное будет не совсем корректен, с учетом его разрешения, одного битплана и прямого доступа к ВОЗУ, наверное можно вывести весь экран за раз.
Покадрово - это когда каждый новый кадр (20мс) обновляется графика. Только в этом случае возможна идеальная плавность.
Если же у тебя скорости не хватает так делать, обновляй раз в 2 кадра. Это уже не будет так плавно, а будет блюр (замыливание) траектории.
Если же хаотично обновлять, то помимо неплавности, то будут еще и рывки.
На спектруме так и делается. Если успеваешь в один кадр обновлять - обновляешь. Если нет, то в 2. Если нет, то в 3. И так далее. Или хаотично.
Фото из обзора Алексея Надёжина (ammo1) про Музей Яндекса:
https://zen.yandex.ru/media/ammo1/desiatki-rabotaiuscih-staryh-kompiuterov-5f21c81e8717b822177724fa
https://avatars.mds.yandex.net/get-zen_doc/1889318/pub_5f21c81e8717b822177724fa_5f21c83d8717b822177d6 66e/scale_2400
Фото из обзора Алексея Надёжина (ammo1) про Музей Яндекса:
Старая версия, ... радует что настолько могучий чел.. считает, что это единственное что можно показать на УКНЦ.. :)
Со звуком кто-нибудь помогите, проект как раз из-за этого завис.. я сделал AY -ИРПР (смысла делать для себя любимого не вижу)_, "перделка" мне не нравится...
Нужен приемлемый вариант на "перделке" работающий по прерыванию. (выстрел, взрыв, лифт хотя бы).
SuperMax
03.04.2023, 21:25
Как я понимаю игра заброшена и моя спонсорская помощь вообще никак не применена для ее разработки ?
Закончена процентов на 90. Проклятая работа как всегда мешает хобби.
И со звуками еще не разбирался. На все нужно время :(
- - - Добавлено - - -
Да и Хобота больше нет.
Выложу пока то, что есть:
https://disk.yandex.ru/d/W-HF4hAPftLbUQ
чтобы не думали что забросил :)
electroscat
21.04.2023, 12:43
Можно я сразу отмечучсь как тестировщик, и расскажу о проблемке. В целом не значительной. Если платформу оставить прям в конце предидущего кадра и вылететь в следующий, а потом обратно вернуться по низу, то модуль оказывается в платформе и застревает. Можно поворачивать его вправо - влево, стрелять, но сдвинуть с места не реально.
78798
Спасибо, исправил.
P.S.
Цвета расчитаны на GRB палитру, переключите в эмуляторе View->GRB Screen
Добавил звук:
https://disk.yandex.ru/d/W-HF4hAPftLbUQ
BlaireCas
06.07.2023, 16:54
Добавил звук:
Не загружается .sav-ка на реальной. Если через RT-11 - вылетает в трап. ?MON-F-Trap to 4 001014
Если через UkncComSender - вылетает в СТОП 000010/000012.
На эмуляторе UKNCBTL что удивительно работает. На EMUSTUDIO не запустилося. (EmuStudio кажется анализирует некие регистры и туда ничего писать не надо, у меня оно выдало позеленевший экран и якобы включило режим "двк")
.sav-ку LM7 взял просто с образа. Попытался загрузить двумя способами.
А так на UKNCBTL неплохо, нормас звук. Зачетно.
https://i.imgur.com/e4UqjK2.png
Точно в "левые" регистры ничего не пишется и не читается из них? Трап обычно на это намекает. Трап либо можно отловить, либо .. я не знаю.
Я налетал на такие грабли с реальными УКНЦ у которых (зачем-то) была выпаяна микросхема ком-порта. А я мол решил позапрещать прерывания от ком-порта в игре (тоже неясно зачем :) Ну и вообщем RiverRaid на такой машине без 065-й микросхемы не запускался. Вываливался куда-то, пришлось фиксить.
На EMUSTUDIO не запустилося. (EmuStudio кажется анализирует некие регистры и туда ничего писать не надо, у меня оно выдало позеленевший экран и якобы включило режим "двк")
Видимо, идет запись в какие-то регистры, которые эмулятор считает относящимися к ДВК, поэтому переключается в режим ДВК.
После переключения на зеленый экран надо быстро нажать F7, тогда все переключится в режим УКНЦ обратно.
BlaireCas
06.07.2023, 17:47
BIC #000100, @#176564
Вот эта шляпа возможно выдает trap ибо она стоит на адресе 1014. Ну это мое нубское предположение.
Этот регистр типа сетевой адаптер. Убери его. Не у всех есть сетевые адаптеры. Вот оно и вылетает в трап. (и видимо портит работу с EmuStudio)
(я еще помню как Titus по шапке надавал мол зачем ты лезешь в какой-то регистр, делать больше нечего чтоли :) до-сих пор в коде осталось в виде комментария (и сериал адаптер надо тоже закомментировать, а то я похоже такой-же программист - дай мол позапрещаю прерывания, а то че они..)
; disable serial adapters interrupts
;bic #100, @#176560 ; network, input
;bic #100, @#176564 ; network, output
bic #100, @#176570 ; rs-232, input
bic #100, @#176574 ; rs-232, output
; trap register, disable interrupts
; emustudio is using it - so it's commented here
;mov #0, @#176644
На EMUSTUDIO не запустилося. (EmuStudio кажется анализирует некие регистры и туда ничего писать не надо, у меня оно выдало позеленевший экран и якобы включило режим "двк")
Там очищается регистр ловушки адреса - 176644. Ну EmuStudio и думает, что это игра хочет КГД.
до-сих пор в коде осталось в виде комментария (и сериал адаптер надо тоже закомментировать, а то я похоже такой-же программист - дай мол позапрещаю прерывания, а то че они..)
Какие проблемы - сохранил V4, поставил заглушку (которая RTI делает), позапрещал, что хочешь и не хочешь и восстановил V4. Делов то - 4 команды (одна RTI)
BlaireCas
06.07.2023, 18:25
Там очищается регистр ловушки адреса - 176644
Ну возможно наложилось двоякое. У меня на реальной железке не подоткнута сетевая карта и вот 176564 выдаст банальный трап. Ну а ловушка да, приколы от Титуса :) Решаемые впрочем легко
поставил заглушку
Как вариант. Я тупо их на адрес rti отправляю всё это скажем так "неизвестное". Единственный возможно момент - это прерывания в периферийном процессоре где должна звучать музыка и звуки. Но точно в этом не уверен. Например срабатывает прерывание от программируемого таймера и перед ним кто-то жмет кнопку на клаве или vsync сработал. Какое-то будет конечно быстрее из них. Но обработка клавы может занять время и это запортит ожидание прерывания звука. Есть примеры таких игр. Тот-же "музыкальный тетрис" или "гоблины" вполне факапят прерываниями видимо, музыка звучит с какими-то косяками.
Но обработка клавы может занять время и это запортит ожидание прерывания звука.
Обработку клавиатуры можно сделать с разрешёнными прерываниями, также как и сетевой таймер. А вот обработку программируемого с запрещёнными прерываниями. В итоге звук у вас будет более чистым. Единственно во время обработки прерывания сетевого таймера может ещё прилететь прерывание по этому же сетевому таймеру. Но это вам, как программисту, надо учесть и сделать так, чтобы ваши процессы работали корректно.
- - - Добавлено - - -
Тот-же "музыкальный тетрис" или "гоблины" вполне факапят прерываниями видимо, музыка звучит с какими-то косяками.
У Замка Гоблинов звукогенератор сделан на изменении значения буферного регистра 177712 при всех включенных разрядах с 12 по 7 в 177716. Там звукогенератор не занимается ногодрыгом бита 7 в 177716. Нагрузка в итоге не большая, для изменения проигрываемого звука там используется сетевой таймер. Но из-за этой реализации звук не очень чистый, дребезжащий.
Я вернулся... время нет и денег нет..
из проблем:
не думал пока над перделками которые должны вылуплять что-то из себя.
и пульками от танков наверху. (танки стволами шевелят.. в направлении тебя).
А так вроде все похоже на правду.
- - - Добавлено - - -
На вскидку заложил мало классов. И эти портят всю малину.
- - - Добавлено - - -
Беда в том, что от вас обратной связи нет.. кроме лайков.
parallelno
06.09.2023, 02:07
Я читаю форум с телефона обычно, поэтому могу оценить только скриншоты и видео. Было бы классно увидеть видео из игры если возможно.
- - - Добавлено - - -
А вообще здорово что ты продолжаешь работать над проектом! Желаю сил закончить его!
Скриншоты которые ты выкладывал ранее выглядят интересно!
BlaireCas
09.09.2023, 13:08
Беда в том, что от вас обратной связи нет
Да ладно - нормально играется. Звуки понравились вполне. Молодец что сделал звуки - вот это не все осиливают (1бит звук через ПП)
А отзывы вполне есть. Вон я-ж написал что убрать надо регистры которые могут привести к выпадению в трап на реальной машинке у которой нет сетевой карты или выпаяна микросхема последовательного порта.
Регистры убрал.
Заморочился сделать вращающийся логотип на заставке как в оригинале (через таблицу строк).
Такой эффект можно и на весь экране сделать для гамовера например.
А как на реальном железе запустить, что-то походу в последнем релизе сломалось, ругается mon-f-trap to 001014.
К выходным доберусь до реала.. все проверю.. выложу.
- - - Добавлено - - -
Посоветуйте какой прогой проще писать видос из процесса?
Может заморочусь, запишу из эмулятора видео, людям приятно будет.
CodeMaster
24.09.2023, 22:32
Посоветуйте какой прогой проще писать видос из процесса?
https://obsproject.com/
Вот проверенная на реале версия:
https://disk.yandex.ru/d/W-HF4hAPftLbUQ
BlaireCas
25.09.2023, 17:28
проверенная на реале версия
Могу подтвердить. Работает на реальной машинке которая причем без сетевой карты и без микросхемы последовательного порта. Звуки имеются.
Для пробы записал короткий видос:
https://disk.yandex.ru/i/MyZXFZCK9pFosQ
будет время пройду дальше.
parallelno
27.09.2023, 11:11
S_V_B, класс! Спасибо!!! Очень понравилась маленькая деталь. Когда пушка-башня пристыковывается к шасси она на мгновение проседает и потом возвращается обратно немного вверх.
Скорость отрисовки в игре очень хорошая. Наверное много усилий пришлось приложить чтобы добиться такого?
Скорость отрисовки в игре очень хорошая. Наверное много усилий пришлось приложить чтобы добиться такого?
Пришлось развернуть циклы отрисовки.
randomizer
27.09.2023, 14:58
УКЦН далеко не такая медленная, как бытует мнение. Особенно если сравнивать с БК) И да, развёртывание циклов, наше всё)
CodeMaster
27.09.2023, 15:04
УКЦН далеко не такая медленная, как бытует мнение.
Но могла бы быть ещё быстрее.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot