User Tag List

Страница 2 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 11 по 20 из 56

Тема: Batty для ПК Специалист

  1. #11

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,652
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Но вдруг откуда ни возьмись за движущимся спрайтами появился шлейф.
    Это я забыл про ещё две процедуры для сохранения и восстановления объектов из буфера на экран.

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Тут же почему-то счёт первого игрока начал отображаться на месте счёта второго.
    Потому что автор как-то странно определял какой игрок был последним - первый или второй. А определял он игрока по экранном адресу вывода цифры счёта. И если адрес был не как у первого игрока, то игроки обменивались при запуске. А так как при смене адресации всё перестало совпадать, то и обмен происходил после каждого запуска игры.

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Ну и сейчас завис на адовой процедуре выбивания кирпича. Это какая-то огромная процедура!
    Пришлось вникать в работу. И это реально самая сложная процедура, которая проверяет положение стенок раунда, соседних кирпичей и обрабатывает их, а потом обводит оставшиеся кирпичи линией в один пиксель. Да ещё и рисует тень. Вот эта тень мне много крови попила. Да и вообще работу с цветом на Специалисте сложно назвать простой и удобной Особую "радость" добавило наличие яркого чёрного цвета на Специалисте.

    Цитата Сообщение от CityAceE Посмотреть сообщение
    И вообще сейчас из-за этого всё поломалось и перестало играться: экран портится, доиграть раунд до конца сейчас не удаётся.
    Я конкретно завис на баге, когда я умирал прижавшись к правому краю и всё потом вешалось. Думал уже всё бросить. А оказалось, что виной всему была тень от одной из искр. Она выходила за пределы буфера. В случае с линейной адресацией эта тень просто попадала на следующую линию с противоположной стороны приходясь на бортик, а в моём случае с организацией в столбик эта тень переходила на следующий столбик, то есть за пределы буфера и портила данные.

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

    Скорость по-прежнему никак не трогал. Неравномерность движения без возможности использовать halt, как на Спектруме всё-таки видна. Наверное, это как-то можно побороть, но я пока не думал в эту сторону.

    Таким образом, первый этап я завершил - получил работоспособную версию на 16 цветов для компьютера Специалист-МХ Турбо (с Z80). Предлагаю всем заинтересованным лицам посмотреть и погонять её.

    Честно говоря, не знаю теперь хватит ли моего энтузиазма для перевода кода с Z80 на i8080. Формально задача выполнена - Batty на Специалисте теперь есть. Но у меня была цель запустить игру на моём реальном Лике, а там нет ни цвета, ни тем более Z80.
    Вложения Вложения
    С уважением, Станислав.

    Эти 5 пользователя(ей) поблагодарили CityAceE за это полезное сообщение:

    ALS(13.10.2020), ivagor(13.10.2020), Oleg N. Cher(13.10.2020), Shumadan(13.10.2020)

  2. #12

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,392
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CityAceE, поздравляю! Ты проделал большую работу и довел до рабочего состояния, и не просто рабочего а вполне играбельного, это очень здорово.

    Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    CityAceE(13.10.2020), Oleg N. Cher(14.10.2020)

  3. #13

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,652
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, большое спасибо! Твоё мнение для меня имеет очень большое значение.

    Следующим этапом планирую заняться редуцированием цветов. А то сейчас, несмотря на мои изначальные попытки сделать универсальную версию с условной компиляцией, версия для обычного Специалиста, но с процессором Z80, перестала работать корректно - на экране какой-то мусор из кирпичей и прочие артефакты. Наверняка какая-нибудь мелочь, но тоже потребует времени. Большее опасение вызывает полностью ч/б версия, так как то, что получается при отключенном цвете, выглядит, прямо скажем, так себе (см. ниже). Собственно, в это можно поиграть, если запустить версию из предыдущего моего сообщения на обычном Специалисте+Z80. Наверное, стоит подумать над текстурами для кирпичей или что-то вроде того.



    Ну и потом стОит всё-таки собраться с духом и адаптировать всё под i8080. А вот эта задача будет уже посерьёзнее. Мало того, что там всё завязано на регистры IX и IY, так ещё и свободной памяти сейчас осталось в районе 768 байт. Но, с памятью можно выкрутиться, задействовав экранное ОЗУ и закрасив эту область в чёрный цвет. А вот с IX и IY пока думаю, что можно придумать. Дело в том, что каждый спрайт на экране - это объект со своими свойствами (координатами, текущим адресом на экране, применённым бонусом, адресом графики и т.д.) и обращение к каждому этому свойству идёт через регистры IX или IY с нужным смещением. Пока лучшее, что придумалось - это перед каждым обращением к любой процедуре, работающей с таким объектом, просто копировать эти свойства в жёстко заданную область памяти, а если там что-то в результате работы процедуры поменялось, эти свойства копировать обратно. Ну и, соответственно, потом вместо индексных регистров со смещением просто обращаться к абсолютным адресам. Мне кажется, что так будет быстрее, чем городить какой-то огород из кучи проверок и переходов.
    С уважением, Станислав.

  4. #14

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,295
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,459
    Поблагодарили
    949 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    с IX и IY пока думаю, что можно придумать.
    мне на спеке (в муз.плейерах для AY) встречалась более быстрая альтернатива индексным регистрам.
    таблицы выравнены #XX00 ; H=#XX ; L=смещение

    ..............
    случайно наткнулся
    ...«Арханоид» — классический арканоид, в котором роль кубиков выполняют здания, разрушенные по инициативе властей в период с 1991 по 2015 год, то есть при Лужкове и Собянине. Для сбора информации издание использовало несколько источников, включая сайты «Архнадзор», «Москва, которой нет» и ряд федеральных СМИ.

    В игре есть 10 уровней, каждый из которых соответствует одному из районов Москвы: например, Арбат, Якиманка, Замоскворечье. При уничтожении здания (кирпичика) отображается его название и год разрушения.

    Игрок может разблокировать фотографии зданий во встроенной энциклопедии, ловя бонусы при помощи подвижной платформы. За уничтожение некоторых «зданий» полагаются «достижения»: например, «кран», «парковки», «лужковская кепка».
    Последний раз редактировалось goodboy; 13.10.2020 в 19:23.

    Этот пользователь поблагодарил goodboy за это полезное сообщение:

    CityAceE(13.10.2020)

  5. #15

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,652
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    таблицы выравнены #XX00 ; H=#XX ; L=смещение
    Спасибо, это отличный вариант! Однако я пока не уверен, что это возможно будет применить, как раз из-за ограничения по памяти, так как на каждый объект при таком варианте нужно будет отводить по 256 байт. Но я обязательно буду рассматривать этот вариант в числе приоритетных решений.
    С уважением, Станислав.

  6. #16

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,295
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,459
    Поблагодарили
    949 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    на каждый объект при таком варианте нужно будет отводить по 256 байт
    тут надо смотреть на размер.
    если например таблица занимает байт 40, то за ними можно разместить код (до начала след.таблицы)

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,392
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    планирую заняться редуцированием цветов
    Поверхностно глянул и на первый взгляд специалистовские цвета требуют
    1. Сменить адрес порта
    2. Модифицировать таблицы преобразования цвета и константы
    3. Инвертировать кирпичи
    Скорее всего основной код не требует модификации и источник артефактов и мусора непонятен

  9. #18

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,652
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, не всё так просто...

    Цитата Сообщение от ivagor Посмотреть сообщение
    1. Сменить адрес порта
    Это я учитывал и сразу делал условную компиляцию в зависимости от модели.

    Цитата Сообщение от ivagor Посмотреть сообщение
    2. Модифицировать таблицы преобразования цвета и константы
    Никаких констант там под это дело нет, только жёстко заданные цвета кирпичей. И их я поменял.

    Цитата Сообщение от ivagor Посмотреть сообщение
    3. Инвертировать кирпичи
    Тоже сделал. И в итоге вот что получилось:



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

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

    Цитата Сообщение от ivagor Посмотреть сообщение
    источник артефактов и мусора непонятен
    С этим я быстро разобрался и решил. Я, в принципе, сразу предполагал откуда растут ноги. Для обычного Специалиста я исключил подпрограмму рисования тени под кирпичом, а оказалось, что остальной код полагался на изменённые этой подпрограммой регистры.
    С уважением, Станислав.

  10. #19

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,392
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понятно, значит есть подводные камни

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Никаких констант там под это дело нет
    Константами я назвал например как по адресам 466E 4675

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

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

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

  11. #20

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,652
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Что-то я намаялся в этими кирпичами. Никак не получатся сделать красиво используя только два цвета, один из которых чёрный. Вот так выглядит отдельностоящий кирпич на Спектруме и Специалисте МХ:



    А несколько кирпичей уже выглядят так:



    Спрашивается, как сделать так, чтобы оно в обоих случаях выглядело хорошо, если один из цветов всегда чёрный?
    Последний раз редактировалось CityAceE; 15.10.2020 в 23:09.
    С уважением, Станислав.

Страница 2 из 6 ПерваяПервая 123456 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Exolon для ПК Специалист
    от CityAceE в разделе Специалист
    Ответов: 217
    Последнее: 26.09.2025, 10:58
  2. Дизассемблирование игры Batty
    от CityAceE в разделе Программирование
    Ответов: 86
    Последнее: 05.11.2024, 09:01
  3. SD Card для Специалист М и ОС
    от zx_ в разделе Специалист
    Ответов: 4
    Последнее: 01.03.2019, 23:01
  4. ранняя версия Batty
    от goodboy в разделе Игры
    Ответов: 18
    Последнее: 24.10.2009, 03:34
  5. Batty
    от CityAceE в разделе Игры
    Ответов: 1
    Последнее: 14.03.2005, 05:55

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •