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






Фотография
* * * * * 2 голосов

Ставим эмулятор OpenComputers

Написано Fingercomp , в OpenComputers, Tutorials 04 Март 2016 · 6 586 просмотров

OC эмулятор OpenComputers

Наткнулся на интересный эмулятор: https://git.io/vOJaq Написан на Lua. Эмулирует OpenComputers. В этой записи небольшой я расскажу немного о том, как варить пельмени использовать этот эмулятор.
Изображение
Использовать его так же, как и OpenOS!
 
Установка:
Linux

Далее нас потребуется версионированный luarocks. Т.е., под Lua 5.2 либы в одной директории, под 5.3 — в другой, ну и так далее. На Арче и Маках ничего сложного:
Arch
pacman -S lua52 luarocks5.2 lua52-filesystem lua52-sec lua52-socket
Затем переходим к пункту Luarocks.
Mac
brew install lua
brew install sdl2
Затем переходим к пункту Luarocks.

 

Ubuntu
А вот тут уже чуть сложнее. По дефолту луарокс из репы швыряет всё в одну кучу, и потому нужно скомпилировать самому. Ничего особо сложного. Качаем пакет отсюда, распаковываем (tar xvf <имя файла>) и переходим в директорию. Зтем пишем:

./configure --lua-version=5.2 --lua-suffix=5.2 --versioned-rocks-dirmake build
sudo 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
Если вы не страдаете ненавистью к SVN, устанавливаем subversion и пишем make в директории с эмулятором для скачивания OpenOS.
Иначе же открываем https://github.com/M...s/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, [il]guid, [il]transforms — в библиотеках OpenOS. Терминал теперь только для одного экрана, мультиэкранность хотят сделать отдельной библиотекой.
  • И множество изменений в логике программ, ключах, аргументах.

 

Изображение

 

Огромное спасибо Krutoy и Strateg за помощь в установке на Windows.
Если встретились с проблемой при установке на Win, посетите этот топик: http://computercraft...emu-na-windows/



  • SDV, Programist135, LeshaInc и 2 другим это нравится



Была бы сеть еще. =)

Была бы сеть еще. =)

Сеть есть — несколько эмуляторов запущенных могут общаться через "модем".

Спасибо Фингер за статью!
А то я давно искал такой эмулятор (я раньше слышал только про урезанный эмулятор CC на love2d).
Да конечно пришлось чуть-чуть попотеть чтобы поставить его (все-таки Арч это не Убунта :) ).

А в целом вроде запустился. Еще не пробовал что-то писать в нем и не проверял как сказал НЕО работу по сети.

 

Вот бы еще этот эмулятор портировали бы на андройд, и тогда вообще рай был бы :-D

Добавил в записульку инфу о том, как запустить два эмулятора параллельно без "накладываний" для работы модемов.

P. S. Модемы, к слову, проводные ;)

Не получается запустить с винды! Что я делаю не так?

 

gtrd607.png

 

>>Устанавливаем subversion и пишем make в директории с эмулятором для скачивания OpenOS.

И про это пожалуйста подробнее. Откуда брать subversion, что это такое и где писать make

И вообще, почему нельзя просто собрать все нужные файлы для запуска с винды и сложить их в один архив?

Обновил публикацию, поискав в интернете всякую фигню по этой теме. Проверить не могу, т. к. нет Винды.

Дошел до последнего файла. Куча логов, что то делает и грузит, но заканчивается вот этим:

patching file Makefile
gcc -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wne                                 sted-externs -Wshadow -Wwrite-strings -pedantic -I/usr/local/include   -c -o src                                 /lfs.o src/lfs.c
make: gcc: Command not found
<builtin>: recipe for target 'src/lfs.o' failed
make: *** [src/lfs.o] Error 127
Failed to build luafilesystem


Я не знаю что делать :(

...

Крупно повезло.

Снова открой MSYS2 терминал из "Пуска" и пропиши это заклинание: pacman -S mingw-w64-i686-toolchain.

Затем открываешь MinGW Win32 Shell и выполняешь этот шаг снова.

Крупно повезло.

Снова открой MSYS2 терминал из "Пуска" и пропиши это заклинание: pacman -S mingw-w64-i686-toolchain.

Затем открываешь MinGW Win32 Shell и выполняешь этот шаг снова.

Сделал, но на .sh файле опять ошибка. А еще, он два раза мне какие то вопросы задавал непонятные, я просто два раза ENTER нажал, так как не понимаю что это значит.

:: Processing package changes...
(1/1) reinstalling mingw-w64-x86_64-lua            [#####################] 100%
mkdir: cannot create directory 'extras': File exists
fatal: destination path 'luafilesystem' already exists and is not an empty directory.
patching file Makefile
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
5 out of 5 hunks ignored -- saving rejects to file Makefile.rej
gcc -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic -I/usr/local/include   -c -o src/lfs.o src/lfs.c
src/lfs.c:1:0: warning: -fPIC ignored for target (all code is position independent)
 /*
 ^
src/lfs.c:63:17: fatal error: lua.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'src/lfs.o' failed
make: *** [src/lfs.o] Error 1
Failed to build luafilesystem

Прошу помощи, но, это какой то абсурд. Я уже накачал и установил полтора гига дребедени из каких то компиляторов, библиотек и утилит, что бы запустить программу размером с 1 мегобайт!

Неужели нельзя было просто закинуть пару .dll файлов вместе с эмулятором...

Эмулятор писал не я, а возможности у меня проверить установку из-под винды нет :(

Печально всё это.

Пока что могу только посоветовать попробовать прописать y на обоих вопросах.

y не помогает, всё равно ошибка...

Reversed (or previously applied) patch detected!  Assume -R? [n] y
gcc -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -pedantic -I/usr/local/include   -c -o src/lfs.o src/lfs.c
src/lfs.c:1:0: warning: -fPIC ignored for target (all code is position independent)
 /*
 ^
src/lfs.c:63:17: fatal error: lua.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'src/lfs.o' failed
make: *** [src/lfs.o] Error 1
Failed to build luafilesystem

Что ж, видимо придется ждать, пока кто то из нас, простых окнопользователей всё таки все эти действия выполнит и просто даст готовые библиотеки.

 

Я бы уже давно "матрицу" дописал, если бы эмулятор был.

...

Только сейчас заметил "lua.h".

Как в прошлый раз, выполнить команду pacman -S mingw-w64-lua

0OpCHtX.png

 

Я бы сам попробовал разобраться, но я даже не знаю что это за пакманы какие то, что значит -S и что такое mingw

Дошел до пункта:

Пишем pacman -S mingw-w64-i686-toolchain mingw-w64-lua

 Получаю ошибку "не найдена цель: mingw-w64-lua"

0OpCHtX.png

 

Я бы сам попробовал разобраться, но я даже не знаю что это за пакманы какие то, что значит -S и что такое mingw

mingw - это компилятор для С, С++, вроде как там еще есть языки.

Ох, как всё сложно...

Покопал сырцы. Луа должна сама собраться.

Что не так — я теперь даже не представляю.

 

P. S. Обновил шаг с установкой пакетов в записи.

Что не так — я теперь даже не представляю.

Судя по ошибке он не может найти lua.h

Я не понимаю, зачем компилировать луа самому, если его уже готовый можно скачать с оффсайта?

Может где то можно отключить это?

Судя по ошибке он не может найти lua.h

Я не понимаю, зачем компилировать луа самому, если его уже готовый можно скачать с оффсайта?

Может где то можно отключить это?

¯\(O.o)/¯

Можно найти папку, где находятся файлы эмулятора, и пихнуть в папку usr/include

 

 

  • Устанавливаем зависимости:
    • Lua 5.2
    • SDL2
  • Устанавливаем библиотеки:
    • luafilesystem
    • luautf8
    • luasocket
    • luasec
    • luaffi

А можно пояснить, как эти пункты выполнить. А то я их проехал как-то.

А можно пояснить, как эти пункты выполнить. А то я их проехал как-то.

На Windows скрипт сам всё поставит.

Ну что, неужели никто кроме меня и зеро не пытался установить на винду?

Ну что, неужели никто кроме меня и зеро не пытался установить на винду?

Пока могу посоветовать только снести MSYS и поставить заново.

Обновил запись по итогам заказа №13. Ещё раз спасибо Strateg и Krutoy за помощь!

Обновил запись по итогам заказа №13. Ещё раз спасибо Strateg и Krutoy за помощь!

Так ты вообще не предлагай пользователям x64 винды что то делать. Пусть 4 мегабайта скачают с яндекса. Или вообще на github'е сделать форк и залить все нужные либы.

Скачал @ Запустил

А вот если траблы, пусть откроют спойлер и попробуют всё сами собрать по твоему гайду.

Так ты вообще не предлагай пользователям x64 винды что то делать. Пусть 4 мегабайта скачают с яндекса. Или вообще на github'е сделать форк и залить все нужные либы.

Скачал @ Запустил

А вот если траблы, пусть откроют спойлер и попробуют всё сами собрать по твоему гайду.

Забыл про либы >_> Ща дополню.

Так ты вообще не предлагай пользователям x64 винды что то делать. Пусть 4 мегабайта скачают с яндекса. Или вообще на github'е сделать форк и залить все нужные либы.

Скачал @ Запустил

А вот если траблы, пусть откроют спойлер и попробуют всё сами собрать по твоему гайду.

Готово, обновил, ссылка помещена. :)

Скачал, распаковал, запустил - работает! Ставлю пятёрочку:)

Фотография
Laine_prikol
07 мар 2017 14:10

А как сделать экран третьего уровня?

Фотография
AndySingularity
04 май 2017 18:18

А как сделать экран третьего уровня?

В файле OCEmu/src/component/screen_sdl2.lua пропиши после первой строки

maxwidth = 160
maxheight = 50

Обратные ссылки на эту запись [ URL обратной ссылки ]

Обратных ссылок на эту запись нет

Последние версии

Стабильная: 1.7.1
Последняя: 1.7.1

Искать в моем блоге

Новые комментарии

Январь 2018

В П В С Ч П С
 123456
78910111213
14151617 18 1920
21222324252627
28293031   

Полезные ссылки

Официальный сайт OpenComputers

http://oc.cil.li/

 

Официальный форум OpenComputers

http://oc.cil.li/index.php?/index

 

Репозиторий OpenComputers на ГитХабе

https://github.com/M...s/OpenComputers

 

Последние релизы OpenComputers

https://github.com/M...puters/releases

 

Jenkins-сервер

http://ci.cil.li/job...s-dev-MC1.7.10/
 

Репозиторий OpenPrograms

https://github.com/OpenPrograms

 

Репозиторий моих программ

https://github.com/O...rcomp-Programs/

1 посетителей

0 пользователей, 0 гостей, 0 анонимных


Yandex (1)

Последние посетители

  • Фотография
    VGAMER_Tiger
    Вчера, 16:54
  • Фотография
    AtomicScience
    16 янв 2018 - 21:31
  • Фотография
    RockMaks_00
    15 янв 2018 - 10:07
  • Фотография
    DotPack
    15 янв 2018 - 01:04
  • Фотография
    Mirotworex
    14 янв 2018 - 23:46
  • Фотография
    Koteyk0o
    14 янв 2018 - 05:03
  • Фотография
    Totoro
    13 янв 2018 - 16:03
  • Фотография
    HixOff
    11 янв 2018 - 22:49
  • Фотография
    Kartograf
    11 янв 2018 - 17:47
  • Фотография
    MrSnake20_15
    10 янв 2018 - 16:52
  • Фотография
    Belzebub
    10 янв 2018 - 16:12
  • Фотография
    LeshaInc
    10 янв 2018 - 09:24
  • Фотография
    MeXaN1cK
    10 янв 2018 - 00:31
  • Фотография
    Megageorgio
    09 янв 2018 - 22:16
  • Фотография
    IS2511
    09 янв 2018 - 17:50
  • Фотография
    RccHD
    08 янв 2018 - 06:32
  • Фотография
    qwertyMAN
    08 янв 2018 - 03:03
  • Фотография
    Litvinov
    07 янв 2018 - 20:34
  • Фотография
    Sharplook
    07 янв 2018 - 14:50
  • Фотография
    eu_tomat
    06 янв 2018 - 20:11
  • Фотография
    Pa3eP
    06 янв 2018 - 05:32
  • Фотография
    FluttyProger
    05 янв 2018 - 23:45
  • Фотография
    rrr_game
    04 янв 2018 - 21:59
  • Фотография
    MnxCool
    04 янв 2018 - 15:33
  • Фотография
    Appo
    03 янв 2018 - 12:21
  • Фотография
    Bencod
    02 янв 2018 - 19:39
  • Фотография
    Laine_prikol
    02 янв 2018 - 17:39
  • Фотография
    ECS
    31 дек 2017 - 19:25
  • Фотография
    folder
    29 дек 2017 - 16:13
  • Фотография
    JLevi
    29 дек 2017 - 07:55
  • Фотография
    ArtemGP
    28 дек 2017 - 16:39
  • Фотография
    Doob
    27 дек 2017 - 14:40
  • Фотография
    Quant
    27 дек 2017 - 10:30
  • Фотография
    Kid
    26 дек 2017 - 23:51
  • Фотография
    vovaluzancomp
    26 дек 2017 - 20:38
  • Фотография
    Nova
    26 дек 2017 - 15:17
  • Фотография
    Electronix205
    26 дек 2017 - 14:26
  • Фотография
    Vestalfa
    26 дек 2017 - 00:03
  • Фотография
    Arseniy10
    25 дек 2017 - 20:16
  • Фотография
    monkey
    25 дек 2017 - 14:39
  • Фотография
    ivan52945
    25 дек 2017 - 02:53
  • Фотография
    NEO
    24 дек 2017 - 19:12
  • Фотография
    vx13
    24 дек 2017 - 18:07
  • Фотография
    mrGreen
    21 дек 2017 - 17:58
  • Фотография
    DarthWirthe
    20 дек 2017 - 22:07
  • Фотография
    1Ridav
    15 дек 2017 - 17:52
  • Фотография
    electronic_steve
    15 дек 2017 - 17:45
  • Фотография
    serafim
    15 дек 2017 - 14:45
  • Фотография
    Zabqer
    15 дек 2017 - 08:41
  • Фотография
    FelixBanan
    14 дек 2017 - 23:20

Лицензия

Яндекс.Метрика