User Tag List

Страница 8 из 14 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя
Показано с 71 по 80 из 140

Тема: Реконструкция CGLIB для использования из OMSI Pascal

  1. #71

    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    710
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    41 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Иногда так делают для монохрома:
    Берут по XOR накладывают спрайт на экран... Потом его же накладывают ещё раз по XOR и фон восстановлен.
    Не уверен точно, насколько эта метода применима тут...
    Так когда-то "живой курсор" реализовывал на графиках.

  2. #72

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Вывод по XOR, OR и AND не нужен
    как-то так.
    Мерцать будет сильно.
    Да и в первом случае, если двигать полосы пойдут (если не привязывать к КСИ)
    Последний раз редактировалось S_V_B; 17.03.2020 в 14:13.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  3. #73

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ... потому что уже есть.

    - вот так звучит контекст полностью.

    Alex, да. Знаю об этом способе.

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

    Для человека, далёкого от УКНЦ, самым естественным способом вывода спрайта или картинки будет именно такой, как я запросил выше. Но нет, мне предлагают извращаться ;-)

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

    Хитрые способы я не отрицаю, но они вспомогательные. Основной... ну, мне нужен быстрый вывод тайлов 10x11 с перекрытием одной поверх другой, и отнюдь не по OR. Так вот, универсальная процедура могла бы делать и такой вывод, пусть и не столь быстро, как узко заточенная именно под этот размер тайла.

  4. #74

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1. Не делай дырок внутри спрайта или заполни их другим цветом.
    2. Продемонстрируй на своем примере (со своими тайлами), что именно не устраивает.

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

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

    Если у тебя тайлы 10х11 проще и быстрее сделать наоборот спец процедуру с заготовленной маской на каждый сдвиг. Будет летать, а универсальная с таким подходом - это как раз изврат.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  5. #75

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ТЗ норм - вывод спрайта с ЦП. Спрайт пусть буден кратен 8-ми пикселям по X. Вывод в любое место.
    Чужие пиксели не трогать при выводе.
    Кроме mov R0,@#176642 никаких других записей в планы. (никаких bic R0, @#176642 - иначе может мигать).
    От себя добавлю - никаких "круглых" спрайтов (то-есть скругленные углы карт например БУДУТ оставлять черные дырки, иначе вместе со спрайтом хранить маску, некруто). Для начала "квадратный спрайт", но вывод в любое место до пикселя.

    (да, надо будет читать планы, читать графоний, шифтить цвета, складывать, записывать обратно в планы mov-ом, но думается это не архимегасложно, правда это будет тормозно, но вообщем попробую помочь там переделать твое PutSpr, я конечно не спец по оптимизации)
    Последний раз редактировалось BlaireCas; 17.03.2020 в 17:26.

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

    Oleg N. Cher(17.03.2020)

  6. #76

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    никаких bic R0, @#176642 - иначе может мигать
    Там будет и BIC и BIS и COM, а в варианте до 16 пикселей, только они и будут. (MOV будет если >16 пикселей).
    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Спрайт пусть буден кратен 8-ми пикселям по X
    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    мне нужен быстрый вывод тайлов 10x11 с перекрытием
    Поэтому я и говорю, что лучше сделать до 16 ти пикселей отдельную процедуру.

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

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

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

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    мне нужен быстрый вывод тайлов 10x11 с перекрытием одной поверх другой, и отнюдь не по OR.
    И каким же волшебным способом ты их будешь накладывать?
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

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

  8. #77

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию


    Попробовал на 8-ми пикселях. (сама карта полного размера как спрайт, просто отрисовывается первые 8 пикс (столбец) но с любым сдвигом по x, y.
    PutSpr(21, 20, Spr);
    PutSpr(25, 26, Spr);
    Как видно "уголок" второй карты затер первую черным цветом. Но остальное норм.

    Теперь надо как-то зациклить до полной карты и нарисовать отдельно "задник".

    Там только команды mov при записи в планы (чтение есть, но при записи используется только mov).
    Жутко нехватает регистров, да и больше извраты паскаля приходится изучать.

  9. #78

    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,410
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    178
    Поблагодарили
    138 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Как видно "уголок" второй карты затер первую черным цветом.
    У "универсальной" процедуры так и будет. (можно обойтись без чтения)
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  10. #79

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Молодец что выложил на гитхаб. А то я долго-бы разбирался как запустить чортов паскуаль под RT-11 и как там делать вставки на макро.
    Ну да, чуть-чуть поморочились, но там всё цивильно - вполне можно юзать. Порождаемый асм-файл легко посмотреть, вставки на асме организованы хорошо, поэтому OMSI Pascal признаем вполне годным инструментом.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    ТЗ норм - вывод спрайта с ЦП. Спрайт пусть буден кратен 8-ми пикселям по X. Вывод в любое место.
    Чужие пиксели не трогать при выводе.
    Согласен, но полезность подпрограммы будет сильно выше для спрайтов, не кратных 8 по ширине. Пусть он лучше будет по ширине >= 8 пикселей, т.е. гарантированно байт - для упрощения вывода. Более узкие спрайты, пожалуй, вряд ли понадобятся, по крайней мере, для задуманной игры.

    При выводе спрайта через логические операции AND/OR/XOR подпрограммой S_V_B кратность ширины спрайта восьми некритична, поскольку чужие пиксели не затираются, а происходит наложение данных спрайта на данные на экране. Но при замещении точек на экране точками спрайта гораздо полезнее (хотя и сложнее в реализации, и даже несколько медленнее) будет вывод спрайта любой ширины, не обязательно кратной восьми. Хотя конечно первую версию подпрограммы можно сделать и с кратной.

    Просто если портировать со спека, то тайловая карта 32x24 в разрешении УКНЦ диктует размер тайла 10x11. Тут есть по сути два подхода:

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


    • 2. Вариант с адаптацией графики под разрешение УКНЦ, что конечно потребует её доработки, но в целом видится более желательным.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    От себя добавлю - никаких "круглых" спрайтов (то-есть скругленные углы карт например БУДУТ оставлять черные дырки, иначе вместе со спрайтом хранить маску, некруто).
    Согласен. Для круглых спрайтов у нас есть вывод с логическими операциями. Подпрограмма S_V_B здесь очень подходит.

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

  11. #80

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    сделать и с кратной.
    просто добавлю для инф.
    в редакторе спрайтов "Магнифайер" минимальный шаг по X был 8, то есть выделение прямоугольника
    для трансляции в МАКРО было по ширине всегда кратно 8, а по высоте любым , хоть с весь экран рабочий )
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

Страница 8 из 14 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  2. Ответов: 7
    Последнее: 12.12.2019, 04:12
  3. Turbo Pascal 4 и CP/M 3 для Корвета
    от litwr в разделе Корвет
    Ответов: 10
    Последнее: 26.11.2019, 04:19
  4. Язык PL/M. Возможность использования.
    от James DiGreze в разделе Программирование
    Ответов: 18
    Последнее: 15.01.2006, 12:19

Ваши права

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