Перейти к содержимому

Bs0Dd

Пользователи
  • Публикации

    124
  • Зарегистрирован

  • Посещение

  • Победитель дней

    44

Сообщения, опубликованные пользователем Bs0Dd


  1. На досуге приперло мне написать игрульку. Простенькую, но интересную. Генератор идей у меня фиговый, потому решил подыскать уже существующую несложную игрушку (опенсорсную), да перенести ее на OC.

     

    Start.png Menu.png Interface.png Task.png

     

    Мне подвернулась игра ВычВыжПром, написанная на Java одной группой. За неделю я практически полностью перенес ее на Lua (пару моментов пришлось упростить ввиду хилой мощности компов). Цель данной игры проста: у нас есть выжигатель, контроллер и некоторое количество заданий. Нужно программировать контроллер для выжигания узора, показанного в задании, располагая небольшим набором команд Assembler-а.

     

    Минимальные системные требования:

    1. Видеокарта и Монитор - Уровень 3 (160x50 символов, 256 цветов)
    2. Процессор - Уровень 1
    3. ОЗУ Память - Не менее 1.5 Mb (Уровень 3 x2)
    4. Жесткий диск - Не менее 95 Kb свободного места

     

    Установка: pastebin run nw0FNGjr

    Игра также доступна в MineOS App Market

    Репозиторий на GitHub

    • Нравится 8
    • Одобряю 1
    • В шоке 1
    • Грусть 3

  2. Неплохо так живем.

    Если выставить тип у монитора через менюшку, не выключая комп

    6dmmccB.png

     

    То от смены монитора наша видео карточка нехило так разгоняется и начинает работать как карта равного монитору уровня

    mSvGApF.png

     

    Таким образом мы можем "погнать" худосочную 1000 Х до уровня самой 3000 Х, нехилый такой профит))))

     

    P.S.: после перезагрузки компа разгон слетает, но его можно воспроизвести снова))))

    • Нравится 2
    • Грусть 1

  3. 13 часа назад, VyaCHACHsel сказал:

    а это основано на библиотеке tapefs?

    А ты хоть смотрел, как работает эта "файловая система"? Если глянуть в код, сразу становится ясно, что это ФС-заглушка. При монтировании у нас будет только файл "data.raw", создать другие или удалить этот мы не можем. А сам data.raw - и есть кассета. Библиотека просто даёт возможность использовать кассету как файл, который можно читать/писать в него обычными программами. Поэтому, несмотря на название, "tapefs" файловой системой не является. Я вообще удивился отсутствию кассетных ФС, поскольку не смог найти ни одной. Потому пол года назад и начал делать свою.

     

    13 часа назад, VyaCHACHsel сказал:

    Если нет, не надо изобретать велик.

    Ну почему же? Велосипеды в программировании - частая практика на самом деле. Суть в том, что у каждой программы-велосипеда есть свои плюшки и недочеты. То, что не нравится в программе одним людям, может понравиться другим, поэтому наличие программ-конкурентов это хорошо. Не зря же кому-то хорошо ездить на велосипеде "MacOS", кто-то не представляет своей жизни без велосипеда "Windows", а кто-то так вообще гоняет на велосипеде "Linux", но при этом все они, зачастую, ненавидят велосипеды друг друга по определённых причинам.

    • Нравится 4

  4. Ну а пока, дабы доказать выше сказанное, вот небольшой ролик-демка. Увы, ФС скорее всего в итоге и будет такой медленной (дело в буферах, которые использует так же OpenOS), но вообще, как альтернатива жестким дискам кассеты и не ставятся. Зато ФС отлично подойдет для бэкапа файлов))))

     

     

     

    • Нравится 3

  5. 3 часа назад, Krutoy сказал:

    посмотрев наработки @Bs0Dd

    Они кстати, уже успели перейти в разряд готового браузера, но заниматься его улучшением мне совершенно некогда по причине учебы, а потом наверняка что-то другое навалится...

    Кстати, если уж хочется крутить реальные веб-страницы, это вам в OpenComputers II (который еще не готов, но что-то делать уже можно). Там RISC-V, Линукс, помимо Луа можно много на чем писать, но атмосфера уже немного не та...


  6. В 14.05.2021 в 12:04, VyaCHACHsel сказал:

    У меня есть уже своего рода концепт.

    Ну а у меня уже имеется без пяти минут готовая файловая система. Нужно только как-то сделать упаковку самой таблицы, ибо в текущем виде 8кб под файловую таблицу хватает на файлов 50, не более того. Задержка безблочного чтения/записи около 18мс. Так что возможно скоро выложу)))


  7. 48 минут назад, hohserg сказал:

    там написано, что щас не рекомендуется юзать апи)

    Ну в данном случае речь была о написании простых программ на C, C++ (Lua в таких машинах использовать не очень удобно, да и работает он тут, ИМХО, медленнее оригинального OC), не требующих API. Вернее о том, что нужно для их написания и как этим пользоваться. Ибо я, за отсутствием руководств, столкнулся с кучей проблем при сборке (с которыми, помимо меня, пришлось разбираться fingercomp-у и другим старожилам), поэтому и думаю, что руководство в таких вещах не помешает. Особенно учитывая, что модом могут заинтересоваться не только умные дядьки, но и обычные игроки, желающие поковыряться в моде, но не умеющие в программистские пляски с бубном)).

    • Нравится 2

  8. 7 часов назад, hohserg сказал:

    Оказывается, Сангар на днях работал над новой версией ОС

    Да уж не на днях. Судя по датам он давно над ней работает))).

     

    Кстати есть идейка - я немного разобрался с модом и собрал для него пару программок, поэтому хочу как-нибудь позднее написать пару RAW-статеек по программированию для мода. Думаю процесс создания программ под OC2 к финальной версии не сильно изменится.

     

    Если кому интересно - все лежит на ГитХабе)).

    • Нравится 4
    • Одобряю 3

  9. 28 минут назад, red2211 сказал:

    Не подскажете как реализовать что-то типу import в python, чтобы вынести все функции в отдельный файл?

    Все очень просто

    local library = require("library")

    В функции require пишется имя библиотеки без расширения, но сама либа должна лежать в одном из определенных мест, иначе будет ошибка импорта:

    Gh4OtRR.png

     

    В самой либе можно создать таблицу, натолкать в нее нужных функций и return <tablename>

    Подробнее лучше прочитать какой-нибуть мануал про библиотеки

     

    P.S.: Я не уверен, стоит ли настолько заморачиваться ради небольшой програмки. Думаю достаточно просто вынести функции в начало программы.

    • Одобряю 1

  10. 40 минут назад, sasha сказал:

    а можно записать MineOS на дискету?

    Теоретически это возможно, если речь о установщике. Но не на одну дискету, а на три-четыре + потребуется написать отдельный установщик, читающий файлы с дискет. А если речь про использование с дискеты, то ответ очевиден: НЕТ, НЕТ, и еще раз НЕТ.

    • Нравится 1

  11. 1 минуту назад, ov3rwrite сказал:

    Картинки же в .pic?

    Ну да, точнее в OCIF (поддержка версий 5-7), он, все же, более адаптирован под особенности видеосистемы в OpenComputers. И bmp24, имхо, сыроват, он не всегда корректно открывает BMP файлы. Да и размер у них выше, что не очень эффективно, учитывая малые размеры жестких дисков и весьма ограниченную ОЗУ.

    • Спасибо 1

  12. Кстати в качестве движка для браузера можно взять NyaDraw, по сути тот же Screen из Майноськи, но спокойно работает под OpenOS без зависимостей. Быстро рендерит странички (переносил я его изначально как часть своего браузера), позволяет рисовать фигуры, и (хе-хе) поддерживает картинки, так что браузеру их нужно только распарсить, вытянуть, и скормить движку. Ну и памяти он ест не сильно много))))

     

    • Нравится 1
    • Спасибо 1
    • Ха-ха 1

  13. Новая версия!

     

    После перекапывания кода, применения сатанинских заклинаний минификации и LZSS сжатия, программу удалось ужать до размеров EEPROM (и даже еще полтора килобайта осталось)!

    Поэтому теперь это полноценный кодовый замок, требующий минимум оборудования

     

    Единственное условие: процессор должен быть в режиме Lua 5.3, иначе программа не заработает!

    • Нравится 4
    • Одобряю 1

  14. 7 часов назад, antonn3312578859 сказал:

    ну да, но хотелось бы видеть её в OpenOS

    Никто не мешает портировать ее в OpenOS. Я так систему буферизации графики без проблем перенес с Майноськи, вот что вышло. Потому наверняка не проблема и сам GUI переделать под другую OS.


  15. Да, сделать это несложно и пользы от рисования псевдографическими символами больше. Нет растягивания, отрисовка происходит в два раза быстрее (ведь за один раз мы рисуем сразу два пикселя), можно рисовать картинки разрешением до 160х100.

    Слева обычная отрисовка от ov3rwrite, справа полупиксельная от меня

    9y6aigl.png  qCR2G8y.png

     

    Кстати о картинках в 160х100

    2pqqBjH.png

     

    Код тут: https://pastebin.com/pVr3dkXZ

     

    Пы.Сы.: Всплыли неприятные глюки при обработке данных (я за BMP не шарю, так что оставляю это на более опытных)

    • Картинка рисуется в отзеркаленном виде Поправил в коде
    • Если создать картинку разрешением меньше экранного, то ее перекорежит

    lycfTUp.png

     

    Оба глюка присутствуют в исходной программе, картинки делал в PS7.0 и Paint-е, разницы никакой

    • Нравится 4

  16. 1 минуту назад, AtomicScience сказал:

    Я бы помог, например, но что делать - непонятно. Стоит обозначить фронт работ.

     

    Пока попробую сделать что-то вроде WYSIWYG-редактора, может, получится чего

    Да, пожалуй, нужно обозначить.

    Пока что в планах:

    • Прикрутить скрипты. Наверное будет что-то Lua-подобное, но нужно как-то организовать ограниченную среду, чтоб через браузер нельзя было, например, потереть файлы или повесить компьютер через while true do os.sleep() end
    • Если получится сделать скрипты, можно сделать и строки ввода. Ввел текст и передал его скрипту для, например, отправки на сервер или каких-то внутренних расчетов
    • Немножко расширить функционал самого браузера, там, история (в пределах сеанса), закладки, еще что-нибудь. Можно и настройку сделать в самом браузере, дабы не лазить редактором в конфиг

    У меня сейчас серьезный учебный завал, поэтому пока хочу немного отодвинуть это дело в сторонку, с короткими ковыряниями

     

    А насчет WYSIWYG, кстати, хорошая идея, а то я конкретно наморочился, "рисуя" странички в Notepad++.

    • Грусть 1

  17. 17 минут назад, Taruu сказал:

    А теперь вот интересно.
    Можно ли сделать переводчик из html + css в nfl сторонним языком. и стоит ли игра свеч...

    А почему б и нет. В теории можно парсить страницу и превращать ее в подобные объекты в NFPL, но

    • Нужно сделать конвертацию картинок в OCIF и резать их по разрешению, ибо даже при невысоких разрешениях отрисовка существенно замедляется
    • Нужно рассчитывать координаты объекта, ибо NFPL - координатно ориентированный язык и каждый объект имеет свои координаты
    • NFPL пока не подразумевает наличие скриптов (однако Lua-подобные скрипты планируются) поэтому пока что страницы будут исключительно статичные

    В остальном, в принципе, ничего невыполнимого нет, хоть на ходу их конвертировать на сервере (получится туннель HTML-NFPL), но я в HTML не слишком специалист, поэтому сам заниматься этим не буду. Так что если кто хочет - мануал по языку в шапке есть, дерзайте!

    • Грусть 1

  18. 3 минуты назад, ECS сказал:

    Для меня прям загадка, какая ж у тебя версия либы используется

    Самая последняя, что портировал с MineOS. Просто стало интересно, метод вроде упоминается, а в самой библиотеке его нет:blink:

     

    5 минут назад, ECS сказал:

    Обычно я юзаю несколько drawText со смещением по X и разными цветами друг за дружкой.

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

    gRrbGHu.png


  19. В 02.11.2017 в 02:33, ECS сказал:

    Добавлен метод buffer.formattedText, позволяющий изменять цвет текста в реальном времени через вставку синтаксических конструкций вида #RRGGBB.

    Кстати, а где он?

    Не вижу такого метода ни в старом ни в новом движке, но он бы мне сильно пригодился))


  20. 57 минут назад, ECS сказал:

    Мяу, ну явно ж какая-то кастомная отрисовка пикч идет у тебя в RenderEngine.

    Под этим именем у меня лежит обычный Screen.lua :D, сохранил так для удобства.

     

    58 минут назад, ECS сказал:

    Вполне вероятно, кстати, что на скрине старая либа Image используется, где была иная RAM-структура картинок (с вложенными таблицами), а либа буферизации - новая. Я потому и прекратил поддержку всего этого балагана, т.к. по кускам собирать код никаких нервов не хватит

    Да, как оказалось проблема была в старом image, поэтому пришлось выдергивать оный из состава MineOS, долго ругаться за кучу зависимостей от библиотек этой оськи, выдергивать нужное и делать "подсистему" с требуемыми функциями (с учетом всяких упрощений их оказалось не так много, но возни это доставило). Зато все заработало, и кроме библиотеки color image-у больше ничего не нужно)))


  21. 1 час назад, ECS сказал:

    Только учти, что эта либа - неподдерживаемое legacy, и основная версия находится в виде Screen API в майноське. Полупиксельный метод я обновлю, но никаких гарантий по работоспособности остальных методов нет, все дела

    Я после чтения мануала по старой либе в январе пытался адаптировать новую, но что-то она не хочет есть картинки, падает. 

    Повозился тогда, плюнул, да отложил на потом, никак не пойму что там не сходится

    vdUjQnF.png

×
×
  • Создать...