• avatar Vinnny
  • 1
  • avatar Eugene
  • 1
Всё верно, состояние состоит из позиции и значения регистра D. То есть для каждой позиции вычисляется 8 результатов.
Ммм. У меня в голове это укладывается следующим образом: текущая длина ссылки является «состоянием». Поэтому если ты вставляешь команду изменения длины ссылки, ты бы должен по идее как-то сохранять смену состояния декомпрессора. Типа, при парсинге вперёд, ты бы должен по идее фиксировать, для каждой позиции в данных, не просто текущий оптимальный результат сжатия до этой позиции, а 8 результатов сжатия — по одному для каждого текущего состояния длины ссылки. Понятно что если такой контекст и влияет на результат, то довольно слабо, но хочется понять, как ты избегаешь учёта контекста совсем.
  • avatar Eugene
  • 0
как именно там выбираются моменты для вставки кодов расширения ссылок в Hrust 1
Это просто: на каждом шаге компрессор пробует вставить от нуля до семи команд расширения.

укорачивать коды вроде тоже декомпрессор позволяет.
Действительно, благодаря тому, что в декомпрессоре используется циклический сдвиг (RRC D), регистр D можно сбросить до начального состояния. oh1c это учитывает. Это улучшает сжатие в среднем на 0.02% ;)
  • avatar aa-dav
  • 0
в первой части вертикального скроллинга не увидел.
в какой он появился с сохранением статус бара?
  • avatar Bugrim
  • 0
что скажешь про ninja gaiden?
  • avatar Vinnny
  • 0
2021 Kazan Dacha Party 4.11-6.11 photos.app.goo.gl/iC5RsiPAYQ2486H29
  • avatar aa-dav
  • 0
Важно! Похоже, что для корректной работы Nesicide нужно сперва установить на компьютер Mingw32 и прописать путь до его папки BIN в переменной среды PATH! Похоже, что Nesicide который изначально разрабатывается и тестируется в Linux нужны некоторые утилиты командной строки такие как make и которые есть в Mingw32. Я этот момент проворонил потому что у меня он всегда стоит и прописан в пути.
Потому что
нифига не понял, списки траков по ссылкам разные
и как архив без телеграма скачать?
  • avatar nodeus
  • 1
Upd. 09-10-2021
  • avatar kotsoft
  • 0
Ух, прям погрузился в воспоминания! Заново все прочувствовалось! Артем, спасибо за лонгрид! ))))
  • avatar sq
  • 0
Про MSDF узнал, когда делал deadpan.
Удивился, что так вообще можно :) Офигенная штука.
Артём, спасибо, действительно душевно. Посетить пати у меня возможности не было, но атмосферу почувствовал, это главное. И, как настоящий софасценер, не могу не поблагодарить за отличные ссылки по касательной, особенно на книжку по real-time rendering и на MSDF. Реально вот этого в старых отчётах по-моему никогда не было, а я прямо с удовольствием потыкал и внёс в букмарки.
  • avatar sq
  • 1
Какой же это потрясающий и невероятный репорт! Артёмка, спасибо тебе, что на какое-то мгновение вернул меня в те последние выходные уходящего лета :)

Таких мощных и атмосферных репортов не было последние лет 20, со времён бума спектрумовской прессы. На некоторых местах аж сердце зашлось, натурально… Надеюсь, люди прочитают это и поймут, что на пати на ездить. Всегда, и во что бы то ни стало.

В общем, я там был, Наки Томпсон пил, и подтверждаю, что именно так всё и было, по фактам!

А Артёмка красавчик! :)
  • avatar VBI
  • 0
Великолепно! Весь пронялся атмосферой.
Тёма, спасибо за столь обширную историю!
  • avatar nyuk
  • 0
Спасибо! Жалею, что не смог. Самое обидное: был в Питере за два дня до пати, но остаться не было возможности.
Тёма, спасибо! Прочитал — и словно сам съездил )
  • avatar nodeus
  • 0
Спасибо за отчет! С большим интересом впитал немного сценования с очередной софы )
  • avatar aa-dav
  • 0
Можно бесконечно спорить на частных примерах где получается больше, а где меньше. Но это не самоцель же на самом деле. Я просто показал в статье, что меня позабавило, что несмотря на очевидное разбазаривание плотности команд (у того же дедушки PDP-11 с наследниками в виде БК-шек она гораздо выше) весьма базовые действия такие как сложение слов с занесением сразу же результата в целевую ячейку памяти получаются заметно короче нежели на классических 8-битках. Многое конечно будет наоборот заметно больше — например нет ничего похожего даже на LDIR или инкремент регистра всегда осуществляется за слово, а не за байт (хотя инкремент может быть любым числом в диапазоне -8..+7 и может записать результат не в тот регистр из которого бралось первое слагаемое. собственно в архитектуре нет выделенной операции MOV потому что это инкремент на 0 какого-то регистра или ячейки памяти с занесением в другой регистр/ячейку памяти). Ну и тому подобное и так далее.
В 80-х такая архитектура не могла бы появится, потому что там более бережно отнеслись бы к расходу памяти и сделали бы что-нибудь типа PDP-11 или MSP-430. С их довольно ветвистыми системами команд и режимами адресаций.
Я же преследовал простоту всего — отказ от байта это в эту же копилку. Я прекрасно понимаю, что у Simpleton поэтому немало слабых сторон.
Но практикум программирования в эмуляторе показал лично для меня, что да, программировать просто — очень небольшой, буквально с час, период привыкания и всё, ты просто пишешь код состоящий из очень простых операций вида R = X op Y и многое о чём болела постоянно голова в Z80 или 6502 вообще отсутствует как класс.