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

Эмулятор Ocelot Desktop

Рекомендуемые сообщения

@Totoro А почему разная реакция на запуск программы через ./ и просто напрямую ?_?
Если запускать напрямую то он говорит что нет компонентов. и это nil значение если через палку то все норм :/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Totoro сказал:

 

Спасибо за отзыв!

Добавлять компоненты можно уже и сейчас.

 

Дело в том, что ядро эмулятора - это Scala-библиотека. (Теоретически можно подключить и к Java-проекту.)

Как раз в ядре компоненты и определены.

Подключаете ядро к своему проекту, как обычную библиотеку, и пишете любые компоненты какие хотите.

Там довольно простая система классов и можно брать как пример уже готовые компоненты (лежат в пакете entity).

 

Разумеется для этого придётся знать Java или Scala.

Я не уверен что имеет смысл делать какой-то другой механизм, так как помимо ядра вам в любом случае понадобятся и какие-то интерфейсы к вашему компоненту, то есть надо ещё и специальную разметку придумывать... Так что "моддинг" эмулятора без использования Java или Scala грозит быть слишком сложным.

Спасибо за ответ, и теперь появился новый вопрос: так и должно быть, что при отправке беспроводного сообщения, второй компьютер ловит целых 3?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, Fire_Ball сказал:

Спасибо за ответ, и теперь появился новый вопрос: так и должно быть, что при отправке беспроводного сообщения, второй компьютер ловит целых 3?

Неа, это бага. Надо будет поправить.

 

22 часа назад, Taruu сказал:

А почему разная реакция на запуск программы через ./ и просто напрямую ?_?
Если запускать напрямую то он говорит что нет компонентов. и это nil значение если через палку то все норм :/

Видимо как-то связано с тем как оно ресурсы грузит.

Подозреваю что там путь до working directory разный получается.
Надо тоже подебажить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Zer0Galaxy сказал:

Как все таки тут создавать файлы?

image.png.e5ff1711ba9cd75e92480af371132a36.png

OpenOS устанавливал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Zer0Galaxy сказал:

Как все таки тут создавать файлы?

 

OpenOS надо устанавливать с дискеты на жёсткий диск, как и в Minecraft.

На дискете с OpenOS файл создать невозможно - файловая система дискет защищена от записи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, ProgramCrafter сказал:

OpenOS надо устанавливать с дискеты на жёсткий диск, как и в Minecraft.

Я не знаток эмуляторов, но в Minecraft необязательно устанавливать OpenOS для редактирования файлов.

 

Да, при загрузке с дискеты корень файловой системы смонтирован в режиме Read Only. Но загрузка с дискеты никак не мешает редактировать файлы на жёстких дисках, смонтированных в режиме записи по путям /mnt/xxx, где xxx – первые три символа адреса диска.

# ls /mnt
5b5 f94

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В десктопном Ocelot в компьютере который создаётся по-умолчанию нету жесткого диска.
Только дискетка с OpenOS.

Вставьте какой-нибудь жёсткий и файлы можно будет редактировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не, проблема была с сохранением. Файл workspace.nbt был пустой. Потом дошло, что надо запустить из консоли без аргументов, просто java -jar ocelot.jar. Тогда все работает нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 23.09.2020 в 02:44, Griffi сказал:

Экраны мыло

1806350435_.thumb.png.ba4f7bfdc4196afa247d0ca75553d6e4.png

Подвигай за правый нижний угол - это будет масштабировать размер окна монитора

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Doob хм. Может косяк с определением пути до текущей папки или что-нибудь такое. Надо будет исследовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Очень хотелось бы переключатель между Lua 5.2 и Lua 5.3
И почему в системнике 3 тира всего один слот для карты 2 тира?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, BadCoder сказал:

Очень хотелось бы переключатель между Lua 5.2 и Lua 5.3

ПКМ по процессору там выбирай. Или через lua computer.setArchitecture

 

44 минуты назад, BadCoder сказал:

И почему в системнике 3 тира всего один слот для карты 2 тира?

Исправим

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нашлась пара багов. Не знаю, как один из них стабильно воспроизводить, но назову.

 

1. Менее страшный: ошибка или зависание во время выхода из эмулятора.

2. Более страшный: некоторые сейвы отказываются грузиться. В сейве два включенных компьютера, на каждом OpenOS установлена на диск.

 

Логи stderr (открыт сейв "NostdWorkspace", открываю "StdWorkspace"):

Скрытый текст

Exception in thread "Thread-10" java.io.FileNotFoundException: D:\Ocelot\NostdWorkspace\480d7bb1-2c59-4969-8a7e-7111c32a6f93\lib\core\lua_shell.lua (Системе не удается найти указанный путь)
    at java.io.RandomAccessFile.open0(Native Method)
    at java.io.RandomAccessFile.open(Unknown Source)
    at java.io.RandomAccessFile.<init>(Unknown Source)
    at totoro.ocelot.brain.entity.fs.FileInputStreamFileSystem$FileChannel.<init>(FileInputStreamFileSystem.scala:51)
    at totoro.ocelot.brain.entity.fs.FileInputStreamFileSystem.openInputChannel(FileInputStreamFileSystem.scala:48)
    at totoro.ocelot.brain.entity.fs.FileInputStreamFileSystem.openInputChannel$(FileInputStreamFileSystem.scala:48)
    at totoro.ocelot.brain.entity.fs.FileSystemAPI$ReadWriteFileSystem.openInputChannel(FileSystemAPI.scala:253)
    at totoro.ocelot.brain.entity.fs.FileSystemAPI$ReadWriteFileSystem.openInputChannel(FileSystemAPI.scala:253)
    at totoro.ocelot.brain.entity.fs.InputStreamFileSystem.$anonfun$load$2(InputStreamFileSystem.scala:65)
    at scala.collection.immutable.Vector.foreach(Vector.scala:1794)
    at totoro.ocelot.brain.entity.fs.InputStreamFileSystem.load(InputStreamFileSystem.scala:61)
    at totoro.ocelot.brain.entity.fs.InputStreamFileSystem.load$(InputStreamFileSystem.scala:58)
    at totoro.ocelot.brain.entity.fs.FileSystemAPI$ReadWriteFileSystem.totoro$ocelot$brain$entity$fs$OutputStreamFileSystem$$super$load(FileSystemAPI.scala:253)
    at totoro.ocelot.brain.entity.fs.OutputStreamFileSystem.load(OutputStreamFileSystem.scala:51)
    at totoro.ocelot.brain.entity.fs.OutputStreamFileSystem.load$(OutputStreamFileSystem.scala:50)
    at totoro.ocelot.brain.entity.fs.FileSystemAPI$ReadWriteFileSystem.totoro$ocelot$brain$entity$fs$Capacity$$super$load(FileSystemAPI.scala:253)
    at totoro.ocelot.brain.entity.fs.Capacity.load(Capacity.scala:58)
    at totoro.ocelot.brain.entity.fs.Capacity.load$(Capacity.scala:55)
    at totoro.ocelot.brain.entity.fs.FileSystemAPI$ReadWriteFileSystem.load(FileSystemAPI.scala:253)
    at totoro.ocelot.brain.entity.fs.FileSystem.load(FileSystem.scala:319)
    at totoro.ocelot.brain.entity.traits.DiskManaged.load(DiskManaged.scala:84)
    at totoro.ocelot.brain.entity.traits.DiskManaged.load$(DiskManaged.scala:75)
    at totoro.ocelot.brain.entity.HDDManaged.totoro$ocelot$brain$entity$traits$Tiered$$super$load(HDDManaged.scala:6)
    at totoro.ocelot.brain.entity.traits.Tiered.load(Tiered.scala:26)
    at totoro.ocelot.brain.entity.traits.Tiered.load$(Tiered.scala:25)
    at totoro.ocelot.brain.entity.HDDManaged.load(HDDManaged.scala:6)
    at totoro.ocelot.brain.nbt.persistence.NBTPersistence$.load(NBTPersistence.scala:68)
    at totoro.ocelot.brain.nbt.persistence.NBTPersistence$.load(NBTPersistence.scala:64)
    at totoro.ocelot.brain.entity.traits.Inventory.$anonfun$load$1(Inventory.scala:87)
    at totoro.ocelot.brain.entity.traits.Inventory.$anonfun$load$1$adapted(Inventory.scala:86)
    at totoro.ocelot.brain.nbt.ExtendedNBT$ExtendedNBTTagList.foreach(ExtendedNBT.scala:248)
    at totoro.ocelot.brain.entity.traits.Inventory.load(Inventory.scala:86)
    at totoro.ocelot.brain.entity.traits.Inventory.load$(Inventory.scala:84)
    at totoro.ocelot.brain.entity.Case.totoro$ocelot$brain$entity$traits$Entity$$super$load(Case.scala:10)
    at totoro.ocelot.brain.entity.traits.Entity.load(Entity.scala:34)
    at totoro.ocelot.brain.entity.traits.Entity.load$(Entity.scala:33)
    at totoro.ocelot.brain.entity.Case.totoro$ocelot$brain$entity$traits$Computer$$super$load(Case.scala:10)
    at totoro.ocelot.brain.entity.traits.Computer.load(Computer.scala:76)
    at totoro.ocelot.brain.entity.traits.Computer.load$(Computer.scala:75)
    at totoro.ocelot.brain.entity.Case.totoro$ocelot$brain$entity$traits$Tiered$$super$load(Case.scala:10)
    at totoro.ocelot.brain.entity.traits.Tiered.load(Tiered.scala:26)
    at totoro.ocelot.brain.entity.traits.Tiered.load$(Tiered.scala:25)
    at totoro.ocelot.brain.entity.Case.load(Case.scala:33)
    at totoro.ocelot.brain.nbt.persistence.NBTPersistence$.load(NBTPersistence.scala:68)
    at totoro.ocelot.brain.nbt.persistence.NBTPersistence$.load(NBTPersistence.scala:64)
    at totoro.ocelot.brain.workspace.Workspace.$anonfun$load$1(Workspace.scala:165)
    at totoro.ocelot.brain.workspace.Workspace.$anonfun$load$1$adapted(Workspace.scala:164)
    at totoro.ocelot.brain.nbt.ExtendedNBT$ExtendedNBTTagList.foreach(ExtendedNBT.scala:248)
    at totoro.ocelot.brain.workspace.Workspace.load(Workspace.scala:164)
    at ocelot.desktop.OcelotDesktop$.loadWorld(OcelotDesktop.scala:97)
    at ocelot.desktop.OcelotDesktop$.$anonfun$open$1(OcelotDesktop.scala:161)
    at ocelot.desktop.OcelotDesktop$.$anonfun$open$1$adapted(OcelotDesktop.scala:156)
    at ocelot.desktop.OcelotDesktop$.$anonfun$chooseDirectory$1(OcelotDesktop.scala:179)
    at java.lang.Thread.run(Unknown Source)

 

Stdout при закрытии с ошибкой:

Скрытый текст

16:23:40.737 [main] INFO  ocelot.desktop.OcelotDesktop$ - Starting up Ocelot Desktop
16:23:40.777 [main] INFO  totoro.ocelot.brain.Ocelot$ - Brain initialization...
16:23:40.777 [main] INFO  totoro.ocelot.brain.Ocelot$ - Version: 0.6.5
16:23:40.777 [main] INFO  totoro.ocelot.brain.Ocelot$ - Loading configuration...
16:23:41.037 [main] INFO  totoro.ocelot.brain.Ocelot$ - Registering available machine architectures...
16:23:42.747 [main] INFO  totoro.ocelot.brain.Ocelot$ - Found a compatible native library: 'Ocelot-0.6.5-lua52-native.64.dll'.
16:23:42.827 [main] INFO  totoro.ocelot.brain.Ocelot$ - Found a compatible native library: 'Ocelot-0.6.5-lua53-native.64.dll'.
16:23:42.827 [main] INFO  totoro.ocelot.brain.Ocelot$ - Registering loot (floppies and EEPROMs with standard OpenComputers software)...
16:23:42.827 [main] INFO  totoro.ocelot.brain.Ocelot$ - Registering entity constructors (for persistence purposes)...
16:23:42.857 [main] INFO  totoro.ocelot.brain.Ocelot$ - Initializing unicode wcwidth.
16:23:42.867 [main] INFO  totoro.ocelot.brain.Ocelot$ - Initializing font glyph widths.
16:23:42.897 [main] WARN  totoro.ocelot.brain.Ocelot$ - Invalid glyph char code detected in font.hex. Expected 0<= charCode <10000, got: 1D300
16:23:42.897 [main] WARN  totoro.ocelot.brain.Ocelot$ - 87 total invalid glyph char codes detected in font.hex
16:23:42.897 [main] INFO  totoro.ocelot.brain.Ocelot$ - glyph width ready.
16:23:42.907 [main] INFO  totoro.ocelot.brain.Ocelot$ - Initialization finished.
16:23:42.907 [main] INFO  ocelot.desktop.ColorScheme$ - Loading color scheme
16:23:42.917 [main] INFO  ocelot.desktop.ColorScheme$ - Loaded 39 colors
16:23:42.947 [main] INFO  ocelot.desktop.util.Ticker - Setting tick interval to 50.0 ms (20.0 s^-1)
16:23:42.947 [main] INFO  ocelot.desktop.util.Ticker - Setting tick interval to 16.666666 ms (60.000004 s^-1)
16:23:43.487 [main] INFO  ocelot.desktop.ui.UiHandler$ - Loaded window icons of sizes 256, 128, 64, 32, 16
16:23:43.807 [main] INFO  ocelot.desktop.ui.UiHandler$ - Created window with Size2D [   800,00 x   600,00 ]
16:23:43.807 [main] INFO  ocelot.desktop.ui.UiHandler$ - OpenGL vendor: NVIDIA Corporation
16:23:43.807 [main] INFO  ocelot.desktop.ui.UiHandler$ - OpenGL renderer: GeForce 8800 GTX/PCIe/SSE2
16:23:43.807 [main] INFO  ocelot.desktop.util.Spritesheet$ - Loading sprites
16:23:43.867 [main] INFO  ocelot.desktop.util.Spritesheet$ - Loaded 108 sprites
16:23:43.877 [main] INFO  ocelot.desktop.graphics.ShaderProgram - Loading shader program (general)
16:23:43.907 [main] INFO  ocelot.desktop.util.Font - Loading font unscii-16
16:23:44.067 [main] INFO  ocelot.desktop.util.Font - Packed 8942 glyphs into 1536x1536 1-bit texture (294912 bytes)
16:23:44.097 [main] INFO  ocelot.desktop.util.Font - Loading font unscii-8
16:23:44.117 [main] INFO  ocelot.desktop.util.Font - Packed 2005 glyphs into 1536x1536 1-bit texture (294912 bytes)
16:23:44.217 [main] INFO  ocelot.desktop.ui.UiHandler$ - OpenAL device: OpenAL Soft
16:23:44.227 [Thread-3] INFO  ocelot.desktop.util.Ticker - Setting tick interval to 50.0 ms (20.0 s^-1)
16:23:44.227 [Thread-3] INFO  ocelot.desktop.util.Ticker - Setting tick interval to 50.0 ms (20.0 s^-1)
16:25:44.109 [main] INFO  ocelot.desktop.OcelotDesktop$ - Cleaning up
16:25:44.110 [main] DEBUG ocelot.desktop.graphics.Texture - Destroyed texture (ID: 1)
16:25:44.110 [main] DEBUG ocelot.desktop.graphics.ShaderProgram - Destroyed shader program (general)
16:25:44.110 [main] DEBUG ocelot.desktop.graphics.mesh.VertexArray - Destroyed VAO (ID: 1)
16:25:44.111 [main] DEBUG ocelot.desktop.graphics.Texture - Destroyed texture (ID: 2)
16:25:44.111 [main] DEBUG ocelot.desktop.graphics.Texture - Destroyed texture (ID: 3)
16:25:44.111 [main] DEBUG ocelot.desktop.graphics.Texture - Destroyed texture (ID: 4)
16:25:44.129 [main] ERROR ocelot.desktop.OcelotDesktop$ - java.io.IOException: Unable to delete file: C:\Users\***\AppData\Local\Temp\ocelot-desktop2808142413485854439\OpenAL64.dll
    at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2400)
    at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
    at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
    at ocelot.desktop.ui.UiHandler$.terminate(UiHandler.scala:218)
    at ocelot.desktop.OcelotDesktop$.mainInner(OcelotDesktop.scala:58)
    at ocelot.desktop.OcelotDesktop$.main(OcelotDesktop.scala:65)
    at ocelot.desktop.OcelotDesktop.main(OcelotDesktop.scala)

 

При зависании лог такой же, но заканчивается перед надписью "Cleaning up".

 

Версия Java:

Скрытый текст

java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Заметил, что дефолтный EEPROM (который Lua BIOS) выставлен в режим ReadOnly. В игровых опенкомпах он доступен для перезаписи

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Багрепорт.

Что бы повторить баг нужно:

  1. Запустить эмулятор.
  2. Добавить ретранслятор.
  3. Подключить ретранслятор к компьютеру.
  4. Попробовать сохранить конфигурацию.

Последствия бага:

  • Конфигурация не сохраняется, файл workspace.nbt пустой.
  • При попытке сохранится ещё раз, эмулятор зависает намертво.

ocelot-desktop.log пустой.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
21 минуту назад, AlexCatze сказал:

Багрепорт.

Что бы повторить баг нужно:

  1. Запустить эмулятор.
  2. Добавить ретранслятор.
  3. Подключить ретранслятор к компьютеру.
  4. Попробовать сохранить конфигурацию.

Последствия бага:

  • Конфигурация не сохраняется, файл workspace.nbt пустой.
  • При попытке сохранится ещё раз, эмулятор зависает намертво.

ocelot-desktop.log пустой.

 

Эта проблема не связана с ретрансляторами, у меня было тоже самое но без ретранслятора. Похоже это случается рандомно.

Скинь пожалуйста версию java как ProgramCrafter пару постов выше.

Желаю удачи Тоторо и другим в откладке и исправлении бага. Это будет очень сложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, ArtHacker сказал:

Эта проблема не связана с ретрансляторами, у меня было тоже самое но без ретранслятора. Похоже это случается рандомно.

Окей. Завтра скину, сейчас уже комп выключил. Просто я тут в очередной раз возрождаю OpenNet(шутка, пишу свою сеть, за основу взяв OpenNet), сделал сложную сеть, и словил этот баг. Минут 10 перебирал комбинации, у меня он стабильно есть с ретранслятором, и его стабильно нет без ретранслятора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, AlexCatze сказал:

Окей. Завтра скину, сейчас уже комп выключил. Просто я тут в очередной раз возрождаю OpenNet(шутка, пишу свою сеть, за основу взяв OpenNet), сделал сложную сеть, и словил этот баг. Минут 10 перебирал комбинации, у меня он стабильно есть с ретранслятором, и его стабильно нет без ретранслятора.

Ну, удачи с очередным возрождением OpenNet с разработкой сети.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


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