User Tag List

Страница 6 из 22 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 219

Тема: Descent - демо игры с 8-цветными спрайтами для УКНЦ

  1. #51

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

    По умолчанию

    Дошел до интересного момента. Начал части данных пытаться переносить в область видеопамяти. Поскольку использую разрешение 320х288 - часть видеопамяти пустует и пора уже озаботиться как туда что-то понапихать, а не ждать когда в CPU при компиляции закончатся его 56кб).
    Обнаружил что виндовый порт макро-11 вполне компиляет (делает листинг) по адресам выше 177777 что сильно порадовало.
    Но теперь сам этот момент: Я допустим собрал "снапшот" всей памяти 0-377777(8) CPU + "снапшот" 0-177777(8) всей памяти PPU... И... а как их загрузить-то??
    Разумеется все будет грузиться средствами RT-11 и саму себя она затереть не должна пока загружает (после полной загрузки конечно-же затрется вообще всё). Пока-что мысли осваивать компрессию, грузить жатое в видеопамять, разжимать уже в обычную+видеопамять. Целиком таким образом все ОЗУ компьютера не загрузить конечно, но прям вообще всё и не нужно.

    Вообщем пора ознакамливаться со сжатиями/распаковками... К счастью тут есть уже темы по ним и готовый код тоже.
    Второй вариант - писать свой кастомный кусок считывания с дискеты/винта.. но это какая-т жесть будет уже.

    Цитата Сообщение от Sandro Посмотреть сообщение
    Кстати, думаю, что не нужно именно для спрайтов делать отдельную ветку без сдвига.
    Ну в общем случае верно. Однако мне поможет и отдельная.
    Некоторые спрайты, скажем предварительно размещенные на уровне предметы, а возможно даже и выпавшие "из вон той крысы" будут изначально по смещению 0 пикселей. Также допустим паук, который по паутине лазает только вверх/вниз, разумеется аналогично изначально будет запланирован на нулевое смещение. Вылезающие из-под земли колья.. Да одним словом можно много чего придумать прибитое гвоздями по координате Х.
    Последний раз редактировалось BlaireCas; 05.11.2021 в 18:36.

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

    nzeemin(05.11.2021), Oleg N. Cher(05.11.2021)

  2. #52

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

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Второй вариант - писать свой кастомный кусок считывания с дискеты/винта.. но это какая-т жесть будет уже.
    Зачем кастомный?
    Я с RT-11 не работал в плане загрузки файлов с определенной позиции, но наверняка она есть чисто системными средствами. Надо у спецов спросить.

    Грузишь в буфер кусок файла, перебрасываешь в теневую память, и так по кругу, пока все не загрузишь.

  3. #53

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Дошел до интересного момента. Начал части данных пытаться переносить в область видеопамяти. Поскольку использую разрешение 320х288 - часть видеопамяти пустует и пора уже озаботиться как туда что-то понапихать, а не ждать когда в CPU при компиляции закончатся его 56кб).
    Обнаружил что виндовый порт макро-11 вполне компиляет (делает листинг) по адресам выше 177777 что сильно порадовало.
    Но теперь сам этот момент: Я допустим собрал "снапшот" всей памяти 0-377777(8) CPU + "снапшот" 0-177777(8) всей памяти PPU... И... а как их загрузить-то??
    Разумеется все будет грузиться средствами RT-11 и саму себя она затереть не должна пока загружает (после полной загрузки конечно-же затрется вообще всё). Пока-что мысли осваивать компрессию, грузить жатое в видеопамять, разжимать уже в обычную+видеопамять. Целиком таким образом все ОЗУ компьютера не загрузить конечно, но прям вообще всё и не нужно.
    уверен ли ты что убивать RT-11 обязательно?
    сколько оно весит то?

    раз уж есть ОС может использовать её для подгрузки ресурсов, например для разных мест игры?
    С уважением,
    Jerri / Red Triangle.

  4. #54

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

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    уверен ли ты что убивать RT-11 обязательно?
    А даже и не знаю на самом деле.
    1) Хочется сделать самодостаточную игрушку. Как бы это понятнее сказать.. как .TAP наверное в спеке (возможно ошибаюсь). Которая после загрузки больше ничего не просит. Загрузил (хоть с магнитофона) и вперед.
    2) Если оставить живой систему - то да, будет возможность подгружать например что-нибудь. Минусы такие - останется меньше памяти (навроде 40кб в основном процессоре и что-нибудь типа 15кб в периферийном, я не помню точные цифры, но сильно урежет память). Учитывая что только один фреймбуфер в периферийном процессоре - 7кб (14кб в основном проце) - там останется с гулькин нос. И подгрузка с диска уже будет как медвежья услуга (переходишь на другой экран в игре и дисковод начинает раскручиваться вжжж... начинает читать.. найс
    3) Код для периферийного проца придется писать перемещаемым. То-есть изначально не знаешь по какому адресу будет запущен код. Для ассемблера dec это не прям жуть, он специально даже можно сказать "заточен" для таких вещей (относительная адресация), но радости мне это не сильно добавляет ибо привык к абсолютным адресам.

    Если бы я не хотел 8 цветов и звуковые эффекты - вот тогда да, самое простое это будет выгрузить максимально всякие драйвера с RT-11 для увеличения доступной памяти и работать только в центральном процессоре. Стандартный режим программок для УКНЦ.
    Последний раз редактировалось BlaireCas; 06.11.2021 в 15:36.

  5. #55

    Регистрация
    18.01.2021
    Адрес
    п. Новый Ургал
    Сообщений
    145
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    А даже и не знаю на самом деле.
    1) Хочется сделать так-сказать самодостаточную игрушку. Как бы это понятнее сказать.. как .TAP наверное в спеке (возможно ошибаюсь). Которая после загрузки больше ничего не просит. Загрузил (хоть с магнитофона) и вперед.
    Так в чем проблема? RT-11 позволяет открыть файл и читать его частями, ну так и прочитать большие файлы частями и распихать в память. Потом выкинуть RT-11, если совсем не нужно, и сделать на ее месте буферы или распаковать туда какие-то данные. Это ж не ЕМТ 36 на БК, где только одним куском файл прочесть можно.
    Блог проекта "The Goonies для БК11М"
    БК-0011М, БК-0011М-01, SMK-512, AZ

  6. #56

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #57

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

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    А главное - перемещаемый код работает медленнее абсолютной адресации
    Вообще-то адресация по абсолютному адресу и относительная по PC работают с одинаковой скоростью.

  8. #58

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,103
    Спасибо Благодарностей отдано 
    1,337
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    перемещаемый код работает медленнее абсолютной адресации.
    А может можно самомодифицированием подправить адреса-константы в коде?
    Если да, то код не будет отличаться от абсолютного.

  9. #59

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Вообще-то адресация по абсолютному адресу и относительная по PC работают с одинаковой скоростью.
    Уж насколько я нуб в PDP, но даже не глядя в справочники по растактовке, по строению команды понятна её работа. Инструкция с абсолютной адресацией берёт аргумент и сразу работает с ним; относительной же приходится ещё и разницу (смещение) от РС высчитывать. Да, по размеру команды одинаковые, а вот быстродействие различается. Не буду сейчас лезть по справочникам и цитировать, ибо с телефона неудобно, но точно помню, что разница есть, и не в пользу относительной.

    Цитата Сообщение от Reobne
    может можно самомодифицированием подправить адреса-константы в коде?
    Если да, то код не будет отличаться от абсолютного
    Почему бы нет... на БК и вообще PDP это вряд ли распространено ввиду наличия мощной относительной адресации, но на Спектруме широко применялась и применяется модификация кода (адресов) для его релоцируемости. Например, любой музыкальный редактор при компиляции плеера запрашивает его адрес, и по заранее составленной таблице модифицирует код, после чего уже плеер готов к работе с заданного адреса. Можно либо сделать так же, либо анализировать код и на лету корректировать абсолютную в относительную. Это потребует больше времени, но избавит от таблицы.

  10. #60

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

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    Уж насколько я нуб в PDP, но даже не глядя в справочники по растактовке, по строению команды понятна её работа. Инструкция с абсолютной адресацией берёт аргумент и сразу работает с ним; относительной же приходится ещё и разницу (смещение) от РС высчитывать. Да, по размеру команды одинаковые, а вот быстродействие различается. Не буду сейчас лезть по справочникам и цитировать, ибо с телефона неудобно, но точно помню, что разница есть, и не в пользу относительной.
    Читать отсюда.

Страница 6 из 22 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 42
    Последнее: 22.11.2021, 02:55
  2. Демо-версия новой игры SaNchez-а ;)
    от SaNchez в разделе Игры
    Ответов: 91
    Последнее: 26.02.2014, 22:08
  3. Помогите найти Демо из игры Dizzy
    от женя999 в разделе Демо
    Ответов: 8
    Последнее: 15.09.2012, 00:08
  4. Ответов: 10
    Последнее: 07.06.2012, 12:24

Ваши права

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