Никакие игры никогда не работают с данными, которые отсутствуют в оперативной памяти. Любая оперативная память приложения виртуальна. И нет гарантии, что она подкреплена физической памятью. Ни в какой ОС.
Изначально сжатые данные приложением разжимаются при начале работы.
Имитировать функции чтения из обычной ОС (ФС?) не приходится. Фантом легко хранит содержимое скомпрессированного объекта просто в строке и из неё же можно распарсить финальный объект.
Не подробные. Когда начинаешь писать вылезает миллион вопросов, и ответов нет. Навскидку первый: как распаковать бинарник приложения. Имеющаяся документация на этот счёт ошибочна.
(Искреннее спасибо за подробный разбор. Всё очень по делу.)
Из VNC не приезжают IBM scan codes, приезжают как раз иксовые коды.
Сам по себе IBM scan code — штука мерзкая, а ближе к принтскрину и вообще сумасшедшая, не хочется его применять как опорный.
Может быть, обойтись троицей?
— Нетранслированный x11 code или ascii char без локализации
— char транслированный по полной — если нажат ctrl, то 00-1F, если локальный кеймап, то кириллица/японица, что там — в UTF32. Короче, tty char
— модификаторы
Кажется, эта схема закрывает всё и хорошо ложится на VNC и X11.
1. Был в Фантоме такой эксперимент, как реализация API KolibriOS. А там в апи входят контролы. Кстати, некоторые приложения Колибри запустить удалось, но подробных спек на апи нет, а разработчики на связь не вышли, так что он пока на паузе.
При всём уважении к БНФ и прочей научной красоте, книгам Гриса (читали, да) и протч., парсеры отлично пишутся без знания слова «грамматика» и всей формальной мишуры. Рекурсивный спуск интуитивен, легко отлаживается и делается из биоматериалов не отходя от кассы со скоростью придумывания языка или быстрее.
Ну… как бы… можно бы сформулировать это эмоциональное утверждение несколько корректнее.
Я уж молчу про Фантом, в котором, на минуту, под двести тысяч строк кода, и 95% из них — Российские.
А ещё есть Embox, OS2000 для военной авиации, JetOS для гражданской и ещё несколько ОС. Не копий Линукса.
Кстати, несколько лет пытаюсь докричаться до кого-нибудь из команды Колибри, помочь мне сделать в Фантоме поддержку приложений Колибри ОС. 90% работы сделал, но дальше без знатоков системы сдвинуться не могу. А жаль — есть реальная возможность сделать в Фантоме персистентные приложения Колибри, это был бы успех для обоих систем.
Там есть разделы и про прикладную разработку для Фантом, и про ядерное программирование.
В целом первоочередная задача — сделать билд, для которого сторонний разработчик мог бы написать прикладной код. Полагаю, в течение года она вполне достижима.
Последнее качественное изменение — новый UI. Старый был уж больно рабоче-крестьянский. :)
По объектной среде — сильно ускорена работа кода, сделан новый механизм гарантии целостности снапшота. На нём система пережила с сотню неожиданных перезагрузок без потери целостного состояния прикладного кода.
Как-то так.
Ну и — всех приглашаю присоединяться к проекту, хотя бы как альфа-тестеров.
Спасибо. Написано с любовью. Действительно, самые красивые игры были в 256 цветах. Мой девятилетний сын, избалованный трёхмерной графикой, смотрел на Dig затая дыхание и сказал, что это самая красивая игра на свете.
Не было там никакого кидка. Вся эта история подробно расписана и сводится к мудизму менеджеров ИКЕИ. Запустились на генераторах не имея энергоснабжения, и влетели в бешеные расходы.
Изначально сжатые данные приложением разжимаются при начале работы.
Имитировать функции чтения из обычной ОС (ФС?) не приходится. Фантом легко хранит содержимое скомпрессированного объекта просто в строке и из неё же можно распарсить финальный объект.
Вот тут есть пример программы для Фантома: phantomdox.readthedocs.io/en/latest/#example-of-phantom-program
Обратите внимание на строки
bmp = new .internal.bitmap();
bmp.loadFromString(getBackgroundImage());
По сути они сводятся к
bmp.loadFromString(import "../resources/backgrounds/weather_window.ppm");
Конструкция import возвращает строковую константу, инициализированную содержимым файла в момент компиляции.
Эта строка будет содержать в данном случае картинку в файловом формате.
loadFromString парсит и конвертирует в финальный битмап, который и живёт в персистентной переменной.
VM будет закрыт JIT-ом.
Из VNC не приезжают IBM scan codes, приезжают как раз иксовые коды.
Сам по себе IBM scan code — штука мерзкая, а ближе к принтскрину и вообще сумасшедшая, не хочется его применять как опорный.
Может быть, обойтись троицей?
— Нетранслированный x11 code или ascii char без локализации
— char транслированный по полной — если нажат ctrl, то 00-1F, если локальный кеймап, то кириллица/японица, что там — в UTF32. Короче, tty char
— модификаторы
Кажется, эта схема закрывает всё и хорошо ложится на VNC и X11.
1. Был в Фантоме такой эксперимент, как реализация API KolibriOS. А там в апи входят контролы. Кстати, некоторые приложения Колибри запустить удалось, но подробных спек на апи нет, а разработчики на связь не вышли, так что он пока на паузе.
2. Быстрее
2 — github.com/dzavalishin/phantomuserland/blob/master/phantom/libwin/rect_cmp.c
Структура имеет исторические корни. :)
432 претендовал на это, Эльбрус сделал. И ощутимо проще, чем это пытались сделать инженеры Интела.
Ну… как бы… можно бы сформулировать это эмоциональное утверждение несколько корректнее.
Я уж молчу про Фантом, в котором, на минуту, под двести тысяч строк кода, и 95% из них — Российские.
А ещё есть Embox, OS2000 для военной авиации, JetOS для гражданской и ещё несколько ОС. Не копий Линукса.
Кстати, несколько лет пытаюсь докричаться до кого-нибудь из команды Колибри, помочь мне сделать в Фантоме поддержку приложений Колибри ОС. 90% работы сделал, но дальше без знатоков системы сдвинуться не могу. А жаль — есть реальная возможность сделать в Фантоме персистентные приложения Колибри, это был бы успех для обоих систем.
Кстати, начал работу по руководству разработчика- phantomdox.readthedocs.io/en/latest
Там есть разделы и про прикладную разработку для Фантом, и про ядерное программирование.
В целом первоочередная задача — сделать билд, для которого сторонний разработчик мог бы написать прикладной код. Полагаю, в течение года она вполне достижима.
Последнее качественное изменение — новый UI. Старый был уж больно рабоче-крестьянский. :)
Сейчас система выглядит примерно так: github.com/dzavalishin/phantomuserland/wiki/ScreenShots
Вообще последний прогресс описан тут: github.com/dzavalishin/phantomuserland/wiki/ChangeLog
По объектной среде — сильно ускорена работа кода, сделан новый механизм гарантии целостности снапшота. На нём система пережила с сотню неожиданных перезагрузок без потери целостного состояния прикладного кода.
Как-то так.
Ну и — всех приглашаю присоединяться к проекту, хотя бы как альфа-тестеров.
Спасибо. Написано с любовью. Действительно, самые красивые игры были в 256 цветах. Мой девятилетний сын, избалованный трёхмерной графикой, смотрел на Dig затая дыхание и сказал, что это самая красивая игра на свете.