User Tag List

Страница 14 из 19 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя
Показано с 131 по 140 из 183

Тема: Все загадки Dizzy 2 (Treasure Island Dizzy)

  1. #131

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Да, и как определить, какая модель, 128/2 или 2А?

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

    Вот я недавно такой делал. Ссылка.

    Филипп в чате прочитал, но молчит. Видимо всё с ним.

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

    Titus(28.01.2023)

  2. #132

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Видимо всё с ним.
    Помянем...
    ___________

  3. #133

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Филипп в чате прочитал, но молчит. Видимо всё с ним.
    Не будем ставить крест на нем)

  4. #134

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Можно попробовать при стирании, фактического стирания не проводить, а только при рисовании, когда отработает вся логика, быстро стереть и сразу нарисовать. Шансов, что легко получится не много, но подумать об этом можно.
    Шаги по направлению к синхронизации обьектов:

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

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

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

    Посмотрел еще раз - логика на самом деле занимает достаточно мало времени.
    Так что все тормоза из-за медленного вывода/стирания спрайтов.

    Например, в классическом экране с океаном обновляется 8 спрайтов с водой. И Это занимает уже почти целый кадр. А если еще плавает рыбка, обновление которой занимает треть кадра, т.к. печать со сдвигом, да с зеркальным поворотом. И все это универсально и медленно.

  5. #135

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Не будем ставить крест на нем)
    Не будем, но надеяться что ситуация улучшится не стоит.

    --
    Все эти обсуждения оптимизаций напомнили мне, как в начале работ на WD Филипп дал мне исходники 1ой части Диззи При этом на тот момент был уже CKD сделан. Я так и не понял зачем

  6. #136

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Все эти обсуждения оптимизаций напомнили мне, как в начале работ на WD Филипп дал мне исходники 1ой части Диззи При этом на тот момент был уже CKD сделан. Я так и не понял зачем
    Мне он тоже давал исходник первой части, когда я всю первую часть дизассемблировал, подписал и улучшил)

    Хорошо, что дал, для истории и вообще)

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

    Цитата Сообщение от drbars Посмотреть сообщение
    Не будем, но надеяться что ситуация улучшится не стоит.
    Как бы никакой помощи от Филиппа уже не требуется.
    Мне надо было только разрешение на переделку, и может какие-то советы.
    А так на тему Диззи-2 мы с ним еще 2 года назад общались, и он все разрешил.

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

  8. #137

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Хоть и не хотелось, но пришлось переписать функции печати спрайтов.
    Зеркальная печать убыстрилась раза в два.
    Печать со сдвигом на пол-байта (и зеркальная в том числе) убыстрилась раза в 3 минимум.

    Само по себе это игру мало где убыстряет (разве чуть сокращает время отрисовки экрана, и экраны перенасыщенные движущимися персоажами).
    Однако, возможность синхронизировать активные обьекты с лучом значительно расширилась, и можно это пробовать делать.

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

    Bedazzle(31.01.2023), Black Cat / Era CG(30.01.2023), nikon(07.02.2023), Oleg N. Cher(30.01.2023), Reobne(30.01.2023), Xela(30.01.2023)

  9. #138

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

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

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

    Bedazzle(31.01.2023), Black Cat / Era CG(31.01.2023), Digitizer(31.01.2023), Froggy(01.02.2023), Gutten(31.01.2023), Oleg N. Cher(31.01.2023), Reobne(31.01.2023), Xela(31.01.2023)

  10. #139

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Видимо, конца и края этим глюкам не будет)

    Выявились, в том числе благодаря тестеровщикам, редкие глюки, а именно:
    1. На экране перегруженном активными обьектами, можно случайно выложить один предмет на другой.
    2. Очень редко, какая-то комбинация клавиш приводит к аналогу нажатия 'Q' и выходу на стартовый экран.
    3. Еще реже (я только один раз видел), при входе на экран остается не стертым первое изображение Диззи, при входе на этот экран.

    Редкие глюки сложно исправить, потому что их сложно поймать в принципе.

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

    Black Cat / Era CG(03.02.2023), drbars(04.02.2023), Oleg N. Cher(03.02.2023), Reobne(03.02.2023)

  11. #140

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    2. Очень редко, какая-то комбинация клавиш приводит к аналогу нажатия 'Q' и выходу на стартовый экран.
    Этот глюк примерно прояснился.
    Он связан с тем, что опрос клавиатуры вызывается и из основной программы, и из обработчика Диззи из прерывания.
    А так как обработчик самомодифицирующийся (например, модифицирует код команды BIT x,A, чтобы сканировать нужный бит порта), то вполне логично, что наступает момент, когда опрашивается Q (или другая клавиша) из основной программы, и в это время пришло прерывание, и перемодицифировала код, и опросилось неизвестно что).
    Нда уж...
    Думаю, с глючно напечатанным случайно Диззи при входе на экран та же песня. Печать идет и из прерывания, и из основного кода, причем одной и той же процедурой. Но это еще не точно.

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

    Цитата Сообщение от Titus Посмотреть сообщение
    1. На экране перегруженном активными обьектами, можно случайно выложить один предмет на другой.
    И эта проблема выяснилась. И тот же источник - конфликт прерываний и основной программы, а именно:

    После нажатия 'выстрел', включается счетчик задержки следующего выстрела на 15 кадров, чтобы успел прокрутиться скроллинг инвентаря, и отработать взятие/выкладывание предмета.
    Однако, счетчик инициализируется в основном цикле, а решение о нажатии 'выстрела' принимается в обработчике прерывания. В итоге эта система работает криво, и дает два артефакта.
    1) Возможность выложить один предмет на другой, если экран перегружен обьектами.
    2) Именно из-за этого при брании монеты (это частный случай брания предмета), если вовремя не отпустить клавишу 'выстрел' то сразу же прокручивается инвентарь и выкладывается предмет. Приходилось брать монету очень коротким нажатием 'выстрела'.

    Решение: перенес инициализацию счетчика на прерывания, туда же, где принимается решение о нажатии выстрела. И немного его увеличил.
    Таким образом, теперь инвентарь работает равномернее, не выкладывается один предмет на другой, и, самое приятное, после брания монеты не выкладывается предмет сразу же, а проходит достаточное время, чтобы отпустить 'выстрел'. На мой взгляд стало комфортно брать монеты и вообще пользоваться инвентарем.

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

    Цитата Сообщение от Titus Посмотреть сообщение
    3. Еще реже (я только один раз видел), при входе на экран остается не стертым первое изображение Диззи, при входе на этот экран.
    Похоже, и эта проблема решена. Во всяком случае в теории, т.к. поймать на практике ее очень сложно.

    И опять же те же грабли. Печать и стирание Диззи используется не только движком, который сидит на прерываниях, но и основной программой.
    Например, когда берется-кладется предмет. Или же при входе в комнату.
    Но из-за косяков неучтеной многозадачности (а прерывание - это многозадачность), да еще и не в том месте поставленного DI, просходят накладки.
    А именно - при печати Диззи сперва начинается какая-то математика, запоминание координаты в буфере для последующего стирания, и уже потом запрещаются прерывания и печатается Диззи.
    Однако, если опять же происходит наложение вызова основной программы и то, что на прерываниях, с этими данными может произойти фигня.
    Что я и видел в очень редких случаях в тестах. Заходишь на экран, и внезапно в каком-то другом месте экрана печатается Диззи и остается напечатанный висеть. А все потому, что координаты сбились.

    Переписал это все, надеюсь, теперь все будет правильно.

    p.s.: Минус в том, что опять все это надо тестить и гонять из-за редкости глюков.

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

    Bedazzle(04.02.2023), bee.snz(03.02.2023), Black Cat / Era CG(03.02.2023), Destr(04.02.2023), drbars(04.02.2023), Eltaron(03.02.2023), Froggy(03.02.2023), Gutten(03.02.2023), Reobne(03.02.2023), tiboh(04.02.2023), Vatr(04.02.2023), Xela(03.02.2023)

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

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

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

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

Похожие темы

  1. Все загадки Dizzy 1
    от Titus в разделе Игры
    Ответов: 137
    Последнее: 16.09.2024, 11:51
  2. Dizzy-AGE RUS: Treasure Island Dizzy на русском
    от Rindex в разделе Dizzy-AGE
    Ответов: 11
    Последнее: 03.03.2017, 08:20
  3. Ответов: 40
    Последнее: 16.11.2015, 01:23
  4. Dizzy-AGE: Another Treasure Island Dizzy
    от Rindex в разделе Dizzy-AGE
    Ответов: 94
    Последнее: 27.08.2012, 23:15
  5. Treasure Island Dizzy
    от dizzykei в разделе Игры
    Ответов: 16
    Последнее: 10.04.2011, 09:17

Ваши права

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