Ставим эмулятор OpenComputers
Наткнулся на интересный эмулятор: https://git.io/vOJaq Написан на Lua. Эмулирует OpenComputers. В этой записи небольшой я расскажу немного о том, как варить пельмени использовать этот эмулятор.
Использовать его так же, как и OpenOS!
Установка:
Linux
- git clone https://github.com/gamax92/OCEmu.git. Копируем содержимое репозитория.
- Устанавливаем зависимости:
- Lua 5.2
- SDL2
Далее нас потребуется версионированный luarocks. Т.е., под Lua 5.2 либы в одной директории, под 5.3 — в другой, ну и так далее. На Арче и Маках ничего сложного:
Arch
pacman -S lua52 luarocks5.2 lua52-filesystem lua52-sec lua52-socket
Затем переходим к пункту Luarocks.
Mac
brew install luabrew install sdl2
Затем переходим к пункту Luarocks.
Ubuntu
А вот тут уже чуть сложнее. По дефолту луарокс из репы швыряет всё в одну кучу, и потому нужно скомпилировать самому. Ничего особо сложного. Качаем пакет отсюда, распаковываем (tar xvf <имя файла>) и переходим в директорию. Зтем пишем:
./configure --lua-version=5.2 --lua-suffix=5.2 --versioned-rocks-dirmake buildsudo checkinstall
Можно sudo make install, но я лично так не делаю, так как команда выше создаёт пакет сразу, а мейк-инстолл — тупо копирует.
После этого — идём к Luarocks.
Luarocks
И, наконец, устанавливаем библиотеки через luarocks-5.2:
- luarocks-5.2 install luafilesystem
- luarocks-5.2 install luautf8
- luarocks-5.2 install luasocket
- luarocks-5.2 install luasec
- luarocks-5.2 install --server=http://luarocks.org/dev luaffi[il]
Если вы не страдаете ненавистью к SVN, устанавливаем [il]subversion и пишем make в директории с эмулятором для скачивания OpenOS.
Иначе же открываем https://github.com/MightyPirates/OpenComputers и сами скачиваем src/main/resources/assets/opencomputers/loot в src/loot, src/main/resources/assets/opencomputers/lua в src/lua и src/main/resources/assets/opencomputers/unifont.hex в папку src/ эмулятора.
Windows
Бинарники: x32 / x64.
Если же хочется самим скомпилировать:
- Устанавливаем MSYS2, запускаем.
- Пишем update-core.
- Закрываем окно и открываем снова.
- Обновляем остальное командой pacman -Su.
- Пишем pacman -S mingw-w64-i686-toolchain.
- Закрываем и в "Пуске" ищем MinGW Win32 Shell или MinGW Win64 Shell, в зависимости от разрядности системы. Открываем именно его.
- В терминале переходим в папку с эмулятором и пишем ./msys_setup_ocemu.sh. Это сделает всё, что нужно.
Запуск:
- Чаще всего достаточно просто запустить lua5.2 boot.lua в директории src/. Это живенько запустит эмулятор с последней OpenOS.
- Можно указать путь для эмулируемой машины в аргументе: lua5.2 boot.lua ~/my/machine.
- BIOS машины хранится в $HOME/.ocemu или %APPDATA%\.ocemu, в зависимости от ОС. Можно изменить его код.
- Запустите emucfg в OpenOS — это конфигуратор эмулятора. Можно выбрать компоненты: [insert] для его добавления, [Delete] для удаления.
- Если запустить несколько сессий эмулятора, можно даже "общаться" между ними через эмулированные модемы.
Сетевые соединения между эмуляторами (модемы)i
Крутая штука. Так как ещё ни в одном эмуляторе не было модемов, надо акцентировать внимание на этом обязательно.
- Создаём две директории для эмулируемых машин (у меня: ~/.ocemu/machines/m1 и ~/.ocemu/machines/m2).
- В каждую из них копируем файл ~/.ocemu/ocemu.cfg.
- Открываем первый файл и меняем все адреса в настройке "components". Это необходимо для того чтобы эмулятор считал, что это два разных компьютера.
- Открываем второй файл и тоже меняем адреса. Достаточно сделать так, что бы они были не такие же, как в первой машине. Можно даже настройку по умолчанию оставить.
- Запускаем два эмулятора: ./boot.lua ~/.ocemu/machines/m1 & ./boot.lua ~/.ocemu/machines/m2 & (надо запустить их, очевидно, параллельно).
- И всё, теперь компьютеры могут общаться друг с другом!
OpenOS 1.6
И в бонус записи — предварительный обзор ключевых изменений OpenOS.
- PIPING. По стандартам. Я не буду объяснять смысл термина, предлагаю просто прописать cat /init.lua | head --lines=25. С grep это тоже работает.
- Стооооп. Новые программы: head, grep, touch — похожее на Лялеховские программы. Не забывайте про man: man grep. Спасает и помогает. Ещё проги: sleep (спит указанное время), source (считать файл и выполнить каждую строку как команду OpenOS).
- Тонны изменений в term, pipes, guid, transforms — в библиотеках OpenOS. Терминал теперь только для одного экрана, мультиэкранность хотят сделать отдельной библиотекой.
- И множество изменений в логике программ, ключах, аргументах.
Огромное спасибо @Krutoy и @Strateg за помощь в установке на Windows.
Если встретились с проблемой при установке на Win, посетите этот топик: http://computercraft.ru/topic/1512-%E2%9C%94-zakaz%E2%84%96-013-vypolneno-binarniki-emuliatora-ocemu-na-windows/
-
5
35 комментариев
Рекомендуемые комментарии