User Tag List

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 41 по 50 из 79

Тема: Специалист: программирование на ассемблере

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Продолжение эпопеи:

    С уважением, Станислав.

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

    parallelno(25.01.2024), svofski(25.01.2024), Trol73(25.01.2024), vernigor(26.01.2024)

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

  3. #2

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

    По умолчанию

    Оживляем игровой фон:
    С уважением, Станислав.

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

    AlexBel(06.02.2024), Oleg N. Cher(30.01.2024), parallelno(29.01.2024), Pluto(06.02.2024), svofski(29.01.2024), Trol73(29.01.2024), vernigor(31.01.2024)

  4. #3

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

    По умолчанию

    Печатаем спрайт с маской:

    С уважением, Станислав.

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

    AlexBel(06.02.2024), ivagor(06.02.2024), Oleg N. Cher(05.02.2024), Pluto(06.02.2024), svofski(05.02.2024)

  5. #4

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

    По умолчанию

    Коротенькая работа над ошибками. Спасибо ivagor'у!

    Последний раз редактировалось CityAceE; 08.02.2024 в 09:23.
    С уважением, Станислав.

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

    parallelno(08.02.2024)

  6. #5

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

    По умолчанию

    Еще раз присоединюсь к svofski, что это мелочи, на которые не стоит обращать много внимания, пока они не станут критичными. Лучше бы я пока помолчал, но теперь могу только учесть на будущее.
    У меня еще вопрос, который возможно ты затрагивал в первых видео, которые я, признаюсь, подробно не смотрел. Почему не взял за основу какой-нибудь спековский игровой движок? Понятно, что современные движки сложные, зато их авторы теоретически могли помочь разобраться и упростить. Хотя конечно они (авторы движков) люди занятые и могли отказаться, тогда вопросов нет.

  7. #6

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Еще раз присоединюсь к svofski, что это мелочи, на которые не стоит обращать много внимания, пока они не станут критичными. Лучше бы я пока помолчал, но теперь могу только учесть на будущее.
    Вот как раз момент с OR/XOR (HL) не является мелочью, а является наглядным примером того, как можно одновременно сократить размер, сделать быстрее и понятнее код. Именно поэтому я решил снять короткий ролик. А другие ошибки типа опечаток я просто правлю тихонько за кадром. Но здесь был не тот случай! А я ещё как раз сидел и думал, как бы избавиться от PUSH/POP BC в этой процедуре. Нутром чуял, что можно, но в итоге так и забыл про (HL).

    Цитата Сообщение от ivagor Посмотреть сообщение
    У меня еще вопрос, который возможно ты затрагивал в первых видео, которые я, признаюсь, подробно не смотрел. Почему не взял за основу какой-нибудь спековский игровой движок? Понятно, что современные движки сложные, зато их авторы теоретически могли помочь разобраться и упростить. Хотя конечно они (авторы движков) люди занятые и могли отказаться, тогда вопросов нет.
    Нет, я этот вопрос не освещал. Основная причина, конечно, потому что я не игродел и у меня попросту таких знаний нет. У меня вообще изначально была идея просто показать как настроить среду и написать "Hello, World!" без процедур ПЗУ. Но когда увидел некоторый интерес со стороны зрителей, решил двинуться чуть дальше, а потом ещё и т.д.

    Ну а что касается того, о чём я рассказываю, то я-то как раз по сути и описываю движок Sanchez'а! Как-то давно в разговоре он упомянул (когда это ещё не было широко известно), что для своих игр он вначале пишет прототип на C#, а графику в прототипе отрисовывает, записывая данные сразу в битмап. Мне это показалось очень интересным и я на Python сделал нечто вроде виртуального Спектрума со стандартной структурой Спектрумовского экрана, для которого можно писать на Python. А потом под это дело на Python решил сделать движок, чтобы потом перенести его на Спектрум, как это делал Sanchez. И так как у меня не было опыта создания спрайтовых игр, я начал одолевать Sanchez'а вопросами: "А как ты сделал то?", "А как ты реализовал это?". И Саша терпеливо на пальцах начал рассказывать мне как работает его движок, как он хранит карту, как анимирует тайлы, как выводит спрайты, как их сдвигает, а при необходимости ещё и разворачивает. Ко всему этому он шел постепенно, а мне просто выдал уже готовый результат. Например, когда-то ранее он мне рассказывал, как jerri на страницах этого форума подсказал ему крутую идею про вывод спрайта с маской по OR/XOR. Для меня это тогда вообще было тёмным лесом. Даже потом нашёл то сообщение на форуме, но всё равно ничего не понял. А вот когда я уже начал сам реализовывать печать спрайтов, то реально поразился красоте решения. Вот так по описаниям Sanchez'а я и написал по сути его движок на Python, обильно снабдив для себя комментариями. А сейчас я просто перекладываю его с Python на ассемблер, как и планировал ранее, только уже не для Спектрума и Z80, а для Специалиста и i8080. И, соответственно, сталкиваюсь с ограничениями в виде меньшего набора регистров у процессора, и отсутствия возможности синхронизировать вывод на экран. С последним у меня сейчас на Специалисте вообще проблема - анимированный спрайт героя сильно мерцает при восстановлении фона под ним. На Специалисте нужно делать дополнительный промежуточный буфер, что усложняет программу и понимание её работы. Я пока не реализовал это и вообще не уверен, что это легко позволит избавиться от мерцания. Хотя помочь, конечно, должно, потому что именно так сделано в Batty, в там на Специалисте уже ничего не мерцает. А вот на Спектруме нужно просто подгадать правильное по времени начало отрисовки без всяких лишних буферов и дополнительных процедур.
    Последний раз редактировалось CityAceE; 08.02.2024 в 09:22.
    С уважением, Станислав.

  8. #7
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    ...jerri на страницах этого форума подсказал ему крутую идею про вывод спрайта с маской по OR/XOR.
    А чем она выгоднее метода AND/OR? При этом, во втором виде спрайты хранятся в прямом виде.

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

    XOR используется в играх типа Lode Runner, чтобы повторным XOR по старым координатам восстановить оригинальную графику. Но если ты используешь маску, то ты явно портишь фон, отсюда и мой вопрос.

  9. #8

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

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    А чем она выгоднее метода AND/OR?
    Я уже не вспомню сейчас. Возможно, из-за удобства сдвига по горизонтали или ещё чего-то. Но тогда я точно оценил красоту решения. Пока же действительно ничем не лучше, и даже хуже - нужно инвертировать сам спрайт.
    С уважением, Станислав.

  10. #9
    HardWareMan
    Гость

    По умолчанию

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

  11. #10

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    анимированный спрайт героя сильно мерцает при восстановлении фона под ним. На Специалисте нужно делать дополнительный промежуточный буфер, что усложняет программу и понимание её работы. Я пока не реализовал это и вообще не уверен, что это легко позволит избавиться от мерцания.
    Промежуточный буфер точно поможет. Другое дело, что организовать этот буфер можно разными способами и тут как раз помог бы пример спековских движков.
    OR+XOR выгоднее AND+(X)OR если для сдвига маски используется dad h. При этом "новые" крайние биты будут нулевые, а при сдвиге маски варианта AND+(X)OR они д.б. единичные.

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


Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Программирование на ассемблере
    от shuran33 в разделе Вектор
    Ответов: 341
    Последнее: 05.11.2025, 20:00
  2. Программирование на ассемблере
    от tnt23 в разделе Океан-240
    Ответов: 6
    Последнее: 30.10.2025, 12:56
  3. Ответов: 22
    Последнее: 12.02.2023, 16:13
  4. Ответов: 275
    Последнее: 16.12.2018, 23:01
  5. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35

Ваши права

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