Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Уникальная игра, объединяющая популярные механики Match3 и пошаговые бои!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
Dreamsted
Dreamsted
7 месяцев назад

S.T.A.L.K.E.R. 2: почти идеальная теория⁠⁠

Предлагаю Вашему вниманию мои мысли касательно того, как связаны между собой персонажи игры S.T.A.L.K.E.R. 2: Доктор Кайманов, Фауст и Рихтер.

Буду рад просмотрам, лайкам и любым комментариям.
Очень интересно узнать Вашу точку зрения по этому поводу.

[моё] Сталкер Сталкер 2: Сердце Чернобыля Сталкер: Тень Чернобыля Сталкер: Зов Припяти Сталкер: Чистое небо Игровые обзоры Шутер Игры Компьютерные игры Теория Фанатские теории Безумные теории Игровые теории Видео YouTube
0
E1nher1
E1nher1
7 месяцев назад
S.T.A.L.K.E.R.

Скиф в Сталкер 2 - несколько теорий происхождения имени, возможные отсылки⁠⁠

Скиф в Сталкер 2 - несколько теорий происхождения имени, возможные отсылки История (наука), Античность, Сталкер, Сталкер: Тень Чернобыля, Сталкер 2: Сердце Чернобыля, Сталкер: Чистое небо, Сталкер рассказы, Археология, Древние артефакты, GSC, Теория, Теория заговора, Легенда, Игровые теории, Конспирология, Длиннопост

Имя главного героя Сталкер 2 - Скиф. Почему GSC нарекли персонажа именно так - есть несколько предположений.

Я озвучу несколько своих теорий.

Теория первая - сугубо историческая.

Скифы - это ираноязычный кочевой народ, который обитал в причерноморских степях в античности.

Скиф в Сталкер 2 - несколько теорий происхождения имени, возможные отсылки История (наука), Античность, Сталкер, Сталкер: Тень Чернобыля, Сталкер 2: Сердце Чернобыля, Сталкер: Чистое небо, Сталкер рассказы, Археология, Древние артефакты, GSC, Теория, Теория заговора, Легенда, Игровые теории, Конспирология, Длиннопост

С одной стороны, скифы когда-то действительно населяли территории (современных государств) Украины и некоторых регионов РФ (все недавно вошедшие регионы, а также Крым, Кубань и другие).

Скиф в Сталкер 2 - несколько теорий происхождения имени, возможные отсылки История (наука), Античность, Сталкер, Сталкер: Тень Чернобыля, Сталкер 2: Сердце Чернобыля, Сталкер: Чистое небо, Сталкер рассказы, Археология, Древние артефакты, GSC, Теория, Теория заговора, Легенда, Игровые теории, Конспирология, Длиннопост

Но подобная версия происхождения имени главного героя кажется крайне поверхностной.

Теория вторая - отсылка к ранним идеям GSC.

Прозвище "Скиф" все же, видимо, встречалось в дизайн-документах Stalker Oblivion Lost.

Аддон "Вектор Отчуждения" для Oblivion Lost Remake переосмысляет OLR, делает диалоги приближенными к варианту из литературного сюжета, а также воссоздает более приближенную Зону к концепции Stalker Oblivion Lost.

И вот тут также встречается "Скиф". Это имя носит лидер Чистого Неба.

Скиф в Сталкер 2 - несколько теорий происхождения имени, возможные отсылки История (наука), Античность, Сталкер, Сталкер: Тень Чернобыля, Сталкер 2: Сердце Чернобыля, Сталкер: Чистое небо, Сталкер рассказы, Археология, Древние артефакты, GSC, Теория, Теория заговора, Легенда, Игровые теории, Конспирология, Длиннопост

Естественно, что это всего лишь предположение. Но выход модификации - Июль 2015 года. Релиз Сталкер 2 - ноябрь 2024 года, хотя имя ГГ было известно за пару лет до официального релиза игры.

К сожалению, в имеющихся у меня документах имя "Скиф" не упоминается, быть может, Hi_Flyer мог бы подсказать, почему имя лидера ЧН "Скиф" и откуда оно взялось.

Теория третья - политическая: скифы как национальная идея Украины.

Скиф в Сталкер 2 - несколько теорий происхождения имени, возможные отсылки История (наука), Античность, Сталкер, Сталкер: Тень Чернобыля, Сталкер 2: Сердце Чернобыля, Сталкер: Чистое небо, Сталкер рассказы, Археология, Древние артефакты, GSC, Теория, Теория заговора, Легенда, Игровые теории, Конспирология, Длиннопост

В 2014 году в Украине была выпущена такого рода почтовая марка.

Изображен же на ней настоящий "украинский артефакт"!

Может быть скифы в каком-то роде являются частью национальной идеи или же фольклора Украины... Возможно, что имя "Скиф" для главного героя - это возможность продемонстрировать "украинский колорит", которого в самой игре и так запредельно много.

Показать полностью 5
[моё] История (наука) Античность Сталкер Сталкер: Тень Чернобыля Сталкер 2: Сердце Чернобыля Сталкер: Чистое небо Сталкер рассказы Археология Древние артефакты GSC Теория Теория заговора Легенда Игровые теории Конспирология Длиннопост
6
9
Soolfol
Soolfol
1 год назад
Mass Effect

Кто такой Благодетель(Benefactor)?⁠⁠

Кто этот таинственный спонсор Инициативы Андромеда? Ваши теории?

Mass Effect Mass Effect: Andromeda Видеоигра Игровые теории Фантастика Фанатские теории Текст
53
FraideeIcebergs
FraideeIcebergs
1 год назад

Айсберг по игре "Hello Neighbour"⁠⁠

Айсберг по игре "Hello Neighbour" Hello neighbour, Iceberg, Айсберг, Игровые теории, Игры, Материал, Идея для видео, Фотография
Показать полностью 1
[моё] Hello neighbour Iceberg Айсберг Игровые теории Игры Материал Идея для видео Фотография
10
SuzerainElias
SuzerainElias
2 года назад
Серия Тёмный Геншин

Теории по Genshin Impact - "Тёмная сторона Мондштадта" - КОРОЛЬ МОНДШТАДТА⁠⁠

[моё] Genshin Impact YouTube Видеомонтаж Diluc (Genshin Impact) Игровые теории Видеоигра Видео
0
1199
Timeweb.Cloud
Timeweb.Cloud
3 года назад
Серия Игры

8-битный Тьюринг-полный компьютер в Factorio⁠⁠

Хочу поделиться своим проектом, созданным в Factorio на основе предлагаемой этой игрой логики. На этот проект меня вдохновил великий ум, записавший пошаговое руководство по созданию практически такой же машины, но в реальном мире. Рекомендую посмотреть его, оно поможет вам понять и воссоздать этот проект: 8-bit computer


Я преклоняю голову перед Беном Итером, с помощью своего канала научившему меня столь многому, и хочу посвятить этот небольшой проект ему. Отличная работа, Бен!


Вот компьютер, вычисляющий число Фибоначчи, после превышения лимита 8 бит (числа 255) он выполняет условный переход и начинает заново:

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

Давайте разберёмся, как работает этот компьютер. И не бойтесь — уверен, что, разобравшись с основами, вы тоже сможете его сделать! Начнём с общей схемы компьютера. Здесь я выделил важные области. Ниже я объясню, как создал их.


CLK — таймер, обеспечивающий синхронизацию машины. Современные ЦП способны работать с частотой 4-5 ГГц (4-5 000 000 000 Гц). На данный момент моя машина может работать с частотой 2 Гц из-за ограничений логических затворов Factorio — каждый ввод должен вычисляться для каждого комбинатора (затвора), так что если их у нас 10 в ряд, то нам нужно подождать 10 игровых тактов (fps), чтобы начать следующий такт системы. В противном случае сигналы перепутаются и вычисление не будет выполнено.


PC (Program Counter, счётчик программ) — счётчик сообщает, в какой части программы мы находимся. Программы считываются из 16-байтной памяти (один байт содержит 8 бит). Счётчик считает до 16 (4 бит) в двоичном формате (0000, 0001, 0010, 0011, 0100, 0101...1111), поэтому каждое из этих вычислений даёт нам адрес регистра, который мы позже можем забрать из памяти и выполнять с ним действия. Также он содержит Jump, сбрасывающий счётчик. Мы можем ввести другое значение, чтобы перейти в конкретное место нашей памяти/кода.


BUS — главная точка соединения всех компонентов компьютера. Мы можем передавать в неё/из неё данные. Для этого мы используем сигналы управления, открывающие/закрывающие затворы каждого компонента, чтобы никогда не были открытыми более двух затворов (благодаря этому данные не перемешиваются).


ALU — наш «калькулятор», выполняющий операции сложения и вычитания (в более сложных ЦП он способен на гораздо большее!). Он мгновенно получает то, что находится в регистрах A и B, а затем выполняет логические операции (операцию мы выбираем декодером команд). Затем эти данные выводятся на шину (bus). Также ALU хранит флаги, которые можно использовать в функциях условных переходов.


Регистры A и B — они могут хранить 8-битные числа, которые позже соединяются в ALU. Оба регистра могут передавать и получать данные из шины.


Декодер адреса регистра (Register address/Decoder, RAD) — считывает 4-битный адрес из шины и декодирует, какую часть RAM мы должны считать. Например, адрес 1110 содержит значение 0000 0011 (см. изображение).


RAM — современные PC обычно имеют примерно 16 ГБ памяти (16 000 000 000 байт). У нас есть всего 16 байт… Это оставляет нам место, которого хватит на 16 команд или на меньшее количество команд, благодаря чему мы сможем хранить данные/переменные в других частях памяти. По сути, RAM здесь — это 16 разных регистров, как те, которые мы используем в другом месте, просто доступ к ним осуществляется через декодер регистров.


Регистр команд (Instruction register, IR) / декодер (decoder, DC) — мы можем помещать данные в регистр команд из BUS, а затем декодировать их, чтобы сообщать, как должна себя вести программа. Используется всего 4 бита (выделены бирюзовым цветом), что даёт нам 16 типов команд, которые можно запрограммировать. Допустим, у нас есть команда OUT, выводящая на печать то, что хранится в регистре A. Она закодирована как 1110, поэтому когда такая команда попадёт в регистр, мы сможем декодировать её и сообщить компьютеру, как действовать.


Счётчик микрокода (Microcode counter, MC) — похож на счётчик программ, но находится внутри декодера команд. Даёт нам возможность пошагового выполнения каждой команды.


LCD/Screen — на самом деле является регистром, но более сложен, поскольку печатает своё содержимое на LCD-экране (Lamp-Combinator-Display, «дисплее из фонарей и комбинаторов»).


Распределительная панель (Switch board, SB) — эта панель показывает нам, какие функции переключения мы отправляем для управления каждым из компонентов компьютера. На данный момент существует 17 разных переключателей, управляющих различными вещами. Например, если мы хотим считать из BUS в регистр A, или записать в память/регистр команд и т. п. Описанные ниже переключатели можно использовать для ручного управления машиной.


Флаги (Flags, F) — регистр для хранения флагов (перенос [T] — когда мы превышаем 8-битные значения при сложении, обнуление [O] — когда сумма/разность равна 0). Они помогут нам в командах условного перехода.

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

Давайте я сначала расскажу подробнее о каждом компоненте, а в конце мы посмотрим, как программировать компьютер, потому что процесс станет понятнее. Если вас интересует только программирование, то переходите к последней части статьи.


CLK — наш генератор синхронизации, самое важное в любых вычислениях. Я хотел создать генератор, одновременно имеющий высокий [C = 1] и низкий [C = 0] сигнал.


(1) Это базовый комбинатор констант, подающий сигналы на генератор. Он переходит к (2), где объединены вместе ввод и вывод. Благодаря этой конфигурации с каждым тактом игры (UPS) значение [C] увеличивается на 1. Когда оно достигает [Z], то сбрасывается до 0. То есть Z сообщает нам, сколько игровых тактов необходимо для сброса генератора. Ниже также есть простой делитель на 2, благодаря которому генератор половину времени находится в состоянии высокого сигнала, а половину — в состоянии низкого сигнала. Когда C меньше значения [Y] (которое равно половине [Z]), генератор находится в высоком состоянии, в противном случае — в низком.


Манипулятор (inserter) (4) используется в качестве вторичного генератора синхронизации на случай, если нам нужно больше контроля над тактами. Если поместить что-нибудь в первый сундук, то произойдёт такт. Если нам нужно 5 тактов, нужно поместить в него пять объектов.


(5) — это первый сигнал управления. [H] — это сокращение от команды HALT {HLT}. Когда он имеет низкое значение [H = 0], то генератор работает обычным образом, а если высокое, то переходит в ручной режим. Способствуют этому управляющие затворы, они (5a) используются для обычной работы, а когда сигнал [H] не равен 0, то включается ручной режим и выводится [C] (наш CLK).


Также я создал инвертированный сигнал при помощи затвора (6) — когда на выходе низкий сигнал, инвертированный сигнал высокий. В машине я его не использую, но неплохо запомнить это на случай применения в будущем.


Сигнал [C] перемещается по системе через зелёный провод. Я хотел выделить его на совершенно отдельный провод (например, наша шина BUS находится на красном проводе), чтобы его легко было отслеживать и нельзя было перепутать с другими сигналами.

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

Регистры — не пугайтесь их. Вероятно, это самая сложная часть всей системы, но важно понять, как работает вся машина.


Регистры содержат значения. В обычной жизни нам бы пришлось создавать регистр для каждого из 8 бит и других сигналов. Но, к счастью, Factorio позволяет передавать несколько сигналов по одной линии. По сути, это JK-триггеры.


Вкратце о том, как они работают. При каждом импульсе синхронизации они сбрасывают то, что есть внутри, и сохраняют входящее значение. Если входящих значений нет (все нули), они очищаются в цикле синхронизации. Разумеется, мы не хотим, чтобы они всегда были пустыми, в конце концов, нам ведь нужно хранить в них значения. Поэтому мы используем логику управления, о которой я сейчас расскажу, а чёрной магией создания триггера мы займёмся позже.


Хранящиеся значения (1) отображаются при помощи фонарей. Включенный фонарь означает 1, отключенный — 0. Как можно увидеть, сейчас мы храним значение 1110 1001.


Чтобы вывести значение в шину, мы используем логику управления на затворе (2). При низком сигнале [K] этот затвор выводит в основную шину то, что находится внутри регистра.


Почему мы используем его, когда сигнал низкий, а не высокий? Потому что логические затворы выводят всё, что на них подаётся (красный символ *), и в результате в шине окажется сигнал [K], а нам этого не нужно, нам нужны там только [7, 6, 5, 4, 3, 2, 1, 0]. По той же причине нам нужно отфильтровывать сигналы управления при помощи затвора (3), чтобы получать [K] только тогда, когда он нам нужен.


Затвор (4) соединён и с шиной (красный провод), и с сигналами управления (зелёный провод). Как и в предыдущем случае, регистр получает ввод при низком сигнале [A]. Чтобы отфильтровать все остальные сигналы, мы используем логический затвор (4a). По сути, он берёт все вводы с шины и нежелательные сигналы управления, а затем складывает их с комбинатором (4b), вводами которого всегда являются сигналы [7, 6,… 0] = 1. Тогда если какой-то из сигналов равен 0, то он выводит каждый из этих сигналов = 1. Всё просто, правда? В таком случае в регистры попадают только те значения из шины, которые нам важны (значения 0 всё равно будут 1, они мигают на один такт, а затем остаются отключенными на протяжении всего высокого цикла CLK).


В такой ситуации, когда [C] становится высоким, затвор (6) выводит сигнал [BLACK], а затвор (6a) сводит к нулю [C]. Но поскольку на сведение к нулю требуется на 1 больше UPS, за такое короткое время затвор (6) выводит сигнал.


Этот сигнал затем переносится на затвор (7), который тоже открывается на короткое время. Затвор (7b) сводит к нулю сигнал [BLACK], чтобы он не хранился в затворе (8), который используется как хранитель нашего сигнала. Это происходит аналогично цепи CLK, потому что и ввод, и вывод соединены вместе. Если ввода нет, то он остаётся неизменным. Если мы ещё раз изменим такт, не вводя новых данных, то затвор (7a) введёт сигнал, инвертированный относительно сохранённого в регистре значения, чтобы очистить его.


Теперь, когда мы знаем, как работают распознавание изменений и регистры, нам известно практически всё.

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

ALU — постоянно складывает/вычитает то, что находится в регистрах (A) и (B). Мы управляем только тем, выводить ли его в шину [Z] или изменить режим на вычитание [S].


Как это работает? Чтобы разобраться целиком, рекомендую посмотреть некоторые из видео Бена Итера, потому что объяснение будет в три раза длиннее моей статьи.


Я объясню только, как создать подобный сумматор в Factorio.


Для этого нам потребуются три типа затворов: XOR (1), AND (2) и OR (3). К счастью, их достаточно легко создать. Поскольку мы можем использовать в одной линии несколько сигналов, наш первый затвор XOR и AND может быть упрощён всего до двух, и нам не нужно делать их для всех 8 бит. Благодаря этому мы можем сделать (4) частью цепи и продублировать его для каждого бита.


Вычитание выполняется сигналом [S], инвертирующим сигналы, поступающие из регистра (B).


Также ALU выводит перенос (когда сумма превышает 8 бит), обнуление и хранит его в регистре справа (F на изображении с основным компьютером).

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

LCD/Screen — выглядит пугающе, но, честно говоря, изготовить его было проще всего. Нужно лишь время для того, чтобы всё правильно подключить

.

Сначала мы создаём регистр, вход которого управляется сигналом [P]. Затем мы умножаем каждый бит на его значение, преобразуя его в десятичную величину, чтобы получить тот же сигнал с десятичным значением (это своего рода читерство в Factorio, однако отсутствие программируемых EEPROM не даёт нам особо развернуться). Для преобразования нам достаточно взять первый бит [0] и умножить его на *1, затем взять второй бит [1] и умножить на *2, третий [2] на * 4, и так далее. В процессе мы выполняем вывод в какое-то произвольное значение для определения получившегося числа (в данном случае это [капля воды]).


LCD включается 9 шагами для чисел (3). Нам нужно просто задать те фонари, соответствующие шагам (1), а затем использовать затворы (2) для вывода значения именно туда, куда нам требуется. Просто нужно не забывать добавлять отдельный комбинатор констант (3) и подключать его только к одному специальному затвору (2). Затем мы просто подключаем друг к другу все фонари и даём им инструкции, на каком шаге они находятся (1).

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

RAM/регистр памяти (RAD) — здесь я объясню, как примерно устроена ОЗУ.


Мы уже знаем регистры, использующие импульсы синхронизации для хранения значений. RAM — это просто сетка из 16 (в нашем случае) разных регистров (2). Их входы управляются другим регистром (1), хранящим 4 бита [0, 1, 2, 3], который сообщает, на какую ячейку памяти мы указываем. Это реализовано при помощи декодера адреса (3), принцип работы которого похож на LED/Screen. Каждый затвор получает значение от комбинатора констант (в нашем случае 1100 bin = 10 dec), а затем выводит название сигнала соответствующего регистра (в нашем случае [M]), чтобы можно было получить доступ к значению (в нашем случае 00110 0011).


Здесь также стоит упомянуть о программировании памяти вручную. Это можно сделать при помощи сигнала [W], включённого/отключенного при помощи комбинатора констант (4). Другой комбинатор (5) позволяет нам менять адрес, а для ввода значения мы используем ещё один комбинатор (6). В конце мы просто кладём всё в сундук (7), чтобы при синхронизации вручную передавать значения в RAM, не касаясь основного CLK компьютера.

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

Счётчик программ (Program counter, PC) — его задача заключается в подсчёте того, на каком шаге программы мы находимся (1). При запуске он имеет значение 0000, этот адрес считывается из RAM и передаётся в регистр команд для интерпретации. После завершения команды мы можем выполнить инкремент счётчика сигналом [X], затем он становится равным 0001, и на следующей итерации этот адрес берётся из памяти, а цикл продолжается.


Разумеется, иногда нам нужно выполнять безусловный или условный переход к другим частям программы. Мы можем делать это при помощи сигнала [J]. Если он низкий (в нашем случае низкий означает активный), то он сбрасывается, считывает из шины адрес, на который должен совершить переход, и сохраняет его в регистре (2). Когда [J] снова становится высоким, через него подаёт сигналы детектор изменений (расположен прямо под 2) на PC.


Сам счётчик работает аналогично CLK, но вместо постоянного отсчитывания тактов он отсчитывает такты при обнаружении изменений в CLK (на самом деле, только когда активны X и CLK). Это можно увидеть прямо на изображении (1).


Затем сигнал можно подать на шину с помощью сигнала управления [C].

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

Распределительная панель (Switch board, SB) — настал подходящий момент для объяснения каждого сигнала управления, используемого в программе.


Сигналы разделены на два цвета, зелёные идут налево, красные — направо. Каждый сигнал от комбинаторов констант на самом деле передаётся как значения [-1]. То есть когда комбинаторы установлены на * != 0, они могут выводить сигнал 1. Благодаря этому, когда логика управления подаёт сигнал [1], они аннулируются, и мы получаем [0], а во всех случаях нам нужно именно это (подробнее можно прочитать в той части, где я объясняю регистры).


[H] — останавливает генератор синхронизации (переключает в ручной режим), высокий сигнал означает, что CLK не переключается.


[Q] — адрес RAM, в котором находится регистр, при высоком сигнале регистр адреса RAM сохранит значение из шины в следующем такте CLK.


[Y] — вход памяти RAM, при высоком сигнале RAM сохранит значение из шины в следующем такте CLK (по адресу, хранящемуся в регистре адреса).


[R] — вывод RAM, при высоком сигнале RAM выводит значение в шину в следующем такте CLK (из адреса, хранящегося в регистре адреса).


[V] — ввод регистра команд, при высоком сигнале регистр команд сохраняет значение из шины в следующем такте CLK.


[U] — вывод регистра команд, при высоком сигнале регистр команд выводит значение в шину в следующем такте CLK (только 4 последних бита [3, 2, 1, 0]).


[C] — вывод счётчика программ, при высоком сигнале счётчик программ выводит значение в шину в следующем такте CLK (только 4 первых бита [7, 6, 5, 4]).


[J] — ввод адреса перехода, при высоком сигнале счётчик программ задаст значение из шины в следующем такте CLK (только 4 последних бита [3, 2, 1, 0]).


[X] — увеличение значения счётчика команд, при высоком сигнале счётчик программ выполняет инкремент в следующем такте CLK.


[A] — ввод регистра A, при высоком сигнале в регистр A сохраняется значение из шины в следующем такте CLK.


[K] — вывод регистра A, при высоком сигнале из регистра A выводится значение в шину в следующем такте CLK.


[Z] — вывод ALU, при высоком сигнале ALU выводит значение в шину в следующем такте CLK.


[S] — вычитание (ALU), при высоком сигнале ALU меняет свой режим со сложения на вычитание.


[B] — ввод регистра B, при высоком сигнале в регистр B сохраняется значение из шины в следующем такте CLK.


[L] — вывод регистра B, при высоком сигнале из регистра B выводится значение в шину в следующем такте CLK.


[P] — ввод регистра LCD/screen, при высоком сигнале в регистр LCD/screen сохраняется значение из шины в следующем такте CLK, и это значение отображается.


[W] — ввод регистра флагов, при высоком сигнале регистр флагов сохраняет из ALU перенос (при превышении 8 бит), ноль (когда операция ALU = 0000 0000).


[розовый сигнал] — поднят флаг переноса [T]


[бирюзовый сигнал] — поднят флаг ноля [O]


Теперь допустим, нам нужно выполнить действие OUT: взять то, что находится в регистре A, и вывести это на LCD/screen (регистр). Чтобы сделать это вручную, нам достаточно включить (отключив комбинатор констант для определённой буквы) сигнал [K] (вывод регистра A -> шина) и сигнал [P] (шина -> ввод регистра lcd/screen), затем выполнить такт CLK.

8-битный Тьюринг-полный компьютер в Factorio Игры, Консоли, Программирование, Игровые теории, Factorio, Видео, Длиннопост

Регистр команд / декодер / счётчик микрокода — именно здесь начинается магия. Теперь, когда мы знаем, как вручную управлять компьютером, это поможет нам понять. что нужно делать, чтобы он мог управлять собой сам.


(1) счётчик микрокода досчитает до 8 (число можно уменьшить, если нам не нужно так много), то есть мы можем выполнить 8 различных команд включения/выключения для выполнения действия в одной команде.


(2) команды считываются в регистр из шины, для этого нам нужно включить сигналы [C] (вывод счётчика команд -> шина) и [Q] (шина -> ввод адреса памяти), а затем считать RAM [R] (вывод RAM -> шина) в регистр команд [V] (шина -> регистр команд), а также выполнить инкремент счётчика [X].


Так как все перечисленные действия нужно делать каждый раз, я подключил всё это (4) напрямую к счётчику микрокода, чтобы это происходило каждый раз, когда счётчик проходит через шаги 0 и 1.


Когда в регистре что-то есть, мы можем использовать таблицы истинности, похожие на те, которые мы создали для регистра адресов RAM и вывода на LCD/screen.


Значения [D] из регистра команд (он всегда больше 8) и счётчика микрокода (всегда равного или меньшего 8) можно сложить, и при помощи полученного числа мы можем создать логические затворы. Это реализуется затворами (3).


В примере показана команда 0110 XXXX (48 + X в dec, для которой я запрограммировал команду JMP), которая затем прибавляется к шагу 2 счётчика микрокода, что дает 50.


Ещё один пример: команда ADD (0010 XXXX — 16 + X в dec); после шагов 0 и 1 микрокод будет на 2, то есть регистры 18-24 можно использовать для другой части кода (в этом случае нам нужны только 18-20, поскольку ADD — это процесс из 3 шагов).


(5) Флаги переноса обрабатываются простыми логическими затворами, ввод на них заблокирован, только если на логические затворы не подаётся перенос [T] или ноль [O].

Ниже представлен мой полный список реализованных команд (можете изменять их или добавлять собственные!):


0 NOP — 0000 XXXX — ничего не делает.


1 LDA X — 0001 XXXX — загружает значение из адреса X RAM в регистр A.


2 ADD X — 0010 XXXX — загружает значение из адреса X RAM в регистр B, а затем выводит сложение и помещает его в регистр A.


3 ADD X — 0011 XXXX — загружает значение из адреса X RAM в регистр B, а затем выводит вычитание и помещает его в регистр A.


4 STA X — 0100 XXXX — загружает значение из регистра A и сохраняет его в RAM по адресу X.


5 LDI X — 0101 XXXX — быстро загружает значение из регистра команд (только 4-битное значение) в регистр A.


6 JMP X — 0110 XXXX — безусловный (происходит всегда) переход к значению X (присваивает PC значение X).


7 JC X — 0111 XXXX — когда значение переноса [T] равно истине, выполняет переход к значению X (присваивает PC значение X).


8 JO X — 1000 XXXX — когда перенос нуля [O] равен истине, то переходит к значению X (присваивает PC значение X).


9 OUR X — 1001 XXXX — выводит на экран значение из адреса X RAM.

.

.

.

14 OUT — 1110 XXXX — выполняет вывод на экран из регистра A (X не делает ничего).


15 HLT — 1111 XXXX — останавливает генератор синхронизации (X не делает ничего).


Давайте напишем простую программу и посмотрим, как она работает!


0 LDA 3 — загружаем значение в регистр A из адреса памяти 3


1 OUT — выводим на экран значение из регистра A.


2 HLT — останавливаем CLK, то есть всю машину.


3 42 — сохранённое значение


То есть, по сути, эта программа выводит значение, сохранённое по адресу 3 RAM (0011 в двоичном формате).


Давайте преобразуем её в двоичный вид:


0 Адрес: 0000, значение: 0001 0011


1 Адрес: 0001, значение: 1110 0000


2 Адрес: 0010, значение: 1111 0000


3 Адрес: 0011, значение: 0010 1010


То есть, чтобы написать программу, нам нужно выполнить запись в память (W на панели памяти; см. часть с изображением RAM), начиная с адреса 0000, и ввести внутрь значение 0001 0011 (0001 означает команду LDA, где 0011 — это X, то есть адрес 3 в памяти).


Затем мы делаем то же самое для других команд.


Не забудьте снова включить для [W] зелёный свет и сохранить halt на счётчике.


Также можно сбросить PC, выполнив переход с помощью J (менять такт CLK не требуется).

Автор оригинала: sorek

Перевод: https://habr.com/ru/company/timeweb/blog/552530/

Показать полностью 9
[моё] Игры Консоли Программирование Игровые теории Factorio Видео Длиннопост
113
3
Mephet.ran
Mephet.ran
3 года назад
Genshin Impact

Священное масло - тайное свойство?⁠⁠

Всем привет!
Небольшой консирологический пост эксперимент. Если я схожу с ума то извините), но пишу пост из лучших побуждений. Мне это странное свойство помогло, и 1 из моих друзей так же. Возможно это и не так безумно, буду рад если попробуете и результат подтвердится, если нет, ну значит мне просто везло на совпадения. Вообщем в чайнике безмятежности у Пухляша можно приобрести священное масло 2 типов для улучшения артефактов. Поначалу я считал его абсолютно бесполезным, но в итоге пишу вот этот пост. Вобщем если взять золотой артефакт с 4 доп статами, то на 4, 8, 12, 16 и 20 лвл мы улучшим случайно одну из этих характеристик. Так вот, допустим у нас одно из свойст Крит шанс и после 4 лвл он повысился. До 4 лвл мы добирались за счёт скармливания ему других артефактов. Далее дотягиваем до 7 лвл и главное чтобы с 7 на 8 улучшение произошло за счёт этого самого священного масла. Которое дороже вроде лучше, но и с маленьким работает. Так вот как я заметил экспериментально очень часто улучшается именно та характеристика, которая выросла до этого. Т.е. в нашем случае это КШ. Пробовал разные схемы, но +- ситуация такая(масло на разных этапах). Да вероятность что я прав мала, но начало этого поста я сделал ещё с пару недель назад и там даже были скрины с примерами моих артов которым смог получить хороший уровень интересных для меня доп статов. Но подумал, что лучше отдохну попробую через недельку ещё раз, если повторится, то так и быть сделаю заметку. Сегодня вспомнил, схема сработала и смог на артефакте 3 раза повысить КШ. В итоге все мои лучшие артефакты как раз созданы таким методом. В обычном рандоме при улучшении обычным способом мне так не везло. Поскольку артефакты это та ещё головная боль то даже бредовое совпадение которое улучшает ситуацию кажется заслуживающим внимания.
P.s. иногда свойство не срабатывает, но чаще работает.
P.s.s. спасибо за внимание)

Священное масло - тайное свойство? Genshin Impact, Аниме, Madness, Игровые теории
Показать полностью 1
[моё] Genshin Impact Аниме Madness Игровые теории
14
PandoraSun
PandoraSun
4 года назад

Несчастье Энтони Кларка [Анализ персонажа | Теории]⁠⁠

Little Hope далеко не идеальная игра. Как и Man of Medan она имеет странных персонажей, которые ведут себя очень глупо, особенно во время диалогов, но не смотря на это, у всех героев есть своя история, а главный герой Little Hope и вовсе является тем персонажем, которому сопереживаешь в конце игры. Поэтому я хочу рассказать вам о Энтони Кларке, персонаже, которому досталась нелёгкая судьба, и потеряв все, он остался с демонами, что поселились в его голове.

https://www.youtube.com/watch?v=lGraUhtYX8s

Об Энтони в молодости (1972г.)

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост

Энтони Кларк был вторым приёмным сыном. И третьим по счету ребёнком. О взаимоотношениях в семье нам мало что известно, но из пролога мы можем заметить, что Энтони единственный кто хорошо относится к своей младшей сестрёнке и больше всех беспокоится о ней. Со старшей сестрой он хорошо ладит и они оба обеспокоены поведением Меган, во время разговора с Дэнисом он даже хорошо отзывается о ней, но с братом такой гармонии у них нет, и он его не поддерживает, особенно когда речь заходит о Меган. С отцом отношения далеки от идеала. Энтони, как и все члены семьи недолюбливает злоупотребление алкоголем у отца, а отец в свою очередь не рад воспитывать приемных детей. С мамой скорее всего отношения были хорошими, ведь в конце он даже вбегает за ней в горящий дом.

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост

Энтони Американец и на момент пролога ему 18 лет. У него светло-зелёные глаза, а волосы имеют оттенок грязного блонда, сама же прическа средней длины и с косой чёлкой, такая прическа была популярна в те времена, а вот одеждой он никак не выделяется, белая рубашка, синий свитер, джинсы и кроссовки.

Он увлекается язычеством и историями о ведьмах, а в его доме можно найти несколько книжек о судах над Ведьмами, а так же ещё одна книга о дикой магии и истории современного язычества, лежит у него в автобусе. Изучив его комнату, можно обнаружить необычную статуэтку, что ещё больше доказывает о его увлечениях. По характеру он довольно спокойный и понимающий. Никогда не кричит, и особо сильно не показывает своих эмоций.

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост

После того как случился пожар и вся семья погибла на его глазах, многие обвиняли его в поджоге, так как он был единственным кто остался в живых и при нем были спички. Некоторое время он даже был в тюрьме, и оставил там очень грустное послание "я все потерял", а так же сделал куклу в напоминании о Меган. Все это негативно повлияло на нашего героя и он начал считать, что действительно виноват в поджоге, на фоне этого у него развилось психическое расстройство. В игре не говорится о точном заболевании, но долго думать не приходится. Голоса в пустом автобусе, девочка на дороге, все это говорит о том, что у нашего героя галлюцинации. А когда он попадает в аварию, то ещё и амнезия добавляется. Вообще сложно сказать без должного медицинского образования, какие именно расстройства имеет наш герой, но я предположу, что у нашего Энтони сформировалась шизофрения.

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост

Об Энтони в настоящее время (2020г.)


До аварии неизвестно чем занимался наш герой, хотя на этот счёт есть теория, но о ней я расскажу в самом конце. И вот ему уже 66 лет и теперь его прическа не такая модная, а просто зачесана назад, он работает водителем автобуса и носит форму компании Фарримен, так же можно заметить последствия пожара на его ухе. Кстати, то что он водитель и везёт пустой автобус, может быть отсылкой на Харона, который переправлял мертвых через реку Стикс, наш же герой так же перевозит мертвых, ибо тех кого он представляет в автобусе являются двойниками его мертвых родственников.

После аварии он видит себя в образе обычного молодого 18 летнего студента по имени Эндрю, а на лбу у него можно заметить последствия этой самой аварии. Как и будучи Энтони он такой же спокойный и не проявляется каких либо эмоций. Но его галлюцинации не оставляют его одного и он воображает своих одногрупников и профессора, которые выглядят как его семья. Но на этом двойники не заканчиваются, так же он видит людей живших 300 лет назад в период, когда происходила охота на ведьм, и они тоже внешне напоминают его семью. По всей видимости на это повлияли те книги про охоту на ведьм, которыми он увлекался. И реальность исказилась под влиянием всех этих рассказов.

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост

О его воображаемой копии из 1692г.


Но кроме двойников близких, он видит и своего двойника, которого в этом мире зовут Авраам. Интересно, что все имена двойников начинаются на ту же букву, что и имена оригиналов. Но понять это можно только по английской версии имён.

Аврааму так же 18 лет,как и Эндрю и Энтони в прологе. Почему то его сознание остановилось именно на этом возрасте, как раз таки в этом возрасте он и потерял всех близких и по всей видимости его жизнь ментально закончилась, поэтому он и представляет что ему все ещё 18 лет. В этом прошлом он является опекуном Мэри и так же испытывает к ней добрые чувства, поэтому ему сложно принять тот факт, что она виновата в смертях невинных людей. Именно он является тем кто решает судьбу Мэри и одновременно помогает Энтони разобраться со своей ношей. Очень интересно, что Авраам по факту является внутренним голосом Энтони, помогающим ему разобраться в том, кто же все таки виноват в пожаре.

Энтони единственный персонаж, который не может умереть, как и его двойники, за исключением концовки, где он совершает самоубийство. Хотя вот у Авраама есть могила, что не удивительно, ведь те события и казни, действительно происходили, а значит это скорее всего был реальный человек, о котором Энтони прочитал в книгах.

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост

Немного безумных теорий.


Но что если все это не было на самом деле и наш герой просто болен и лежит в психбольнице. Эта мысль долго не покидала меня, еще с самого начала игры. А именно с момента, когда Энтони едет на автобусе, а на пути ему встречается полицейский, который пропускает нашего героя, не смотря на то что в автобусе никого не было, а Энтони говорил о том что хочет доставить своих пассажиров. Конечно по усмешке полицейского можно было подумать, что ответ Энтони он воспринял как шутку, но по правилам он должен был остановить его и провести проверку, как минимум на трезвость. Либо это недоработка со стороны разработчиков, либо нам хотят этим что-то показать. Так же непонятно поведение Винсента. Он никаким образом не реагирует на то что Энтони попал в аварию и в принципе на то как он странно ведет себя. Он знает что рабочий телефон находится в закусочной, но при этом просто отправляет Энтони в город, преследует его, говорит что позовет помощь, но и этого не делает. Конечно можно предположить, что он ненавидит Энтони, так как считает его виновным в смерти своей возлюбленной, но тогда Винсент нам открывается не с лучшей стороны.

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост

Если собрать все секреты в игре, то можно открыть 2 комикса, особенно в случае с Энтони нам важен 2. В нем мы видим как к Энтони приходит его доктор Ханна Стоун. И вот тут все эти события из комикса можно разбить на 2 теории. Первая подтверждает, тот факт что Энтони находится все это время в психбольнице, так как все это похоже на сеанс психотерапии, где доктор пытается узнать у Энтони, что его тревожит, а он мысленно водит ee по всем важным для него местам, а так же дает понять, что считает себя виноватым и никак не может выбраться из этого города, а значит что эти воспоминания не отпускают его на протяжении всей его жизни, начиная с момента трагедии. Вторая теория строится на том, что никакого доктора нет, и Энтони сам придумал ее, возможно из-за долгого одиночества, на это намекает начало где она приходит в его дом, который еще не сгорел, а сам Энтони взрослый. И конец комикса, где он остается один в разрушенном доме. Хотя мне по душе больше первая теория, которая является заключающей и объясняющей, почему все таки Энтони может все это время находится в психбольнице, и почему он никогда не возвращался в Литтл Хоуп.

Несчастье Энтони Кларка [Анализ персонажа | Теории] Анализ, Теория, Игровые теории, Видео, Длиннопост
Показать полностью 8
[моё] Анализ Теория Игровые теории Видео Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии