Да, всё так. Задачи портирования даются особенно хорошо, потому что всегда есть что-то с чем можно сравнить. Основное время у моего порта batty уходит на идеальную идентичность оригиналу и выбранную платформу для портирования (MS--DOS), первая рабочая версия появилась очень быстро.
Начал с исходного бинарника, дизассемблера и эмулятора. Потом обнаружил, что кто-то уже сделал красивый дизассемблированный вариант с комментариями. Убедился, что он собирается в исходную игру, и уже дальше его использовал, как точку отсчёта.
Все использованные утилиты выбирала сама нейронка, моё дело маленькое -- ручное тестирование в основном и идеи там и сям. Ну эмулятор тоже вместе выбирали -- остановились на zesarux, там в итоге тулинг удобный получился для автотестов.
Например, так как в данной игре используется псевдо-случайная детерминированная последовательность, которая засеивается сидом из таймера, так вот я придумал его засеивать в эмуляторе каким-то определённым числом, и реализовать в порте такую же псевдослучайную последовательность; это позволяет сравнить результаты геймплея автоматически у оригинала и порта. Это, в свою очередь, позволяет замкнуть обратную связь для нейронки -- она теперь может измерять, к чему стремиться.
Да понимаете, я не очень уверен в целесообразности замусоривания Хабра постами вида "мама, смотри, как я умею" -- вы вот молодец, сделали всё руками, а у меня чистой воды нейрослоп...
...я лег на диван и заказал Охранительнице музыку под настроение. Если бы Андре узнал, что я делаю, то закричал бы, что у меня нет вкуса и я не понимаю великих творений. Он обожает сильные словечки. Что до меня, то я считаю изобретение синтетической музыки для индивидуального восприятия величайшим подвигом человеческого гения. Она лишь для тебя, другой бы ее не понял. И древние Бах с Бетховеном, и более поздние Семенченко с Кротгусом, и штукари‑модернисты Шерстюк с Галом творят для коллективного восприятия. Они подчиняют слушателя: хватают меня за шиворот и тащат, куда нужно им, а не мне. Иногда наши стремления совпадают — и тогда я испытываю наслаждение, но это бывает нечасто. Индивидуальная музыка как раз та, какой мне в данный момент хочется. Андре обзывает ее физиологической, но почему я должен бояться физиологии? Пока я живу, во мне совершаются физиологические процессы, от этого никуда не денешься. Вскоре зазвучала тонкая мелодия. Я сам создавал ее, Охранительница лишь воспроизводила то, чего я хотел. Грустные голоса скрипок звенели, тело мое напевало и нежилось, в темноте за сомкнутыми веками вспыхивали световые пятна. Сперва все это совершалось живо и громко, потом слабело — и я засыпал, борясь со сном, чтобы по‑прежнему ощущать музыку. «Завтра будет… Что будет?.. Завтра… день!» — возникла последняя смутная мысль, и она отозвалась во мне торжественно‑радостной, радужно‑зеленоватой мелодией.
У меня в одном сервисе проблема именно с регистрацией (железка+облако). Железка есть, зарегистрироваться не могу, написать в поддержку можно исключительно с регистрацией. Плюнул, зарегистрировали на жену.
Да, всё так. Задачи портирования даются особенно хорошо, потому что всегда есть что-то с чем можно сравнить. Основное время у моего порта batty уходит на идеальную идентичность оригиналу и выбранную платформу для портирования (MS--DOS), первая рабочая версия появилась очень быстро.
Начал с исходного бинарника, дизассемблера и эмулятора. Потом обнаружил, что кто-то уже сделал красивый дизассемблированный вариант с комментариями. Убедился, что он собирается в исходную игру, и уже дальше его использовал, как точку отсчёта.
Все использованные утилиты выбирала сама нейронка, моё дело маленькое -- ручное тестирование в основном и идеи там и сям. Ну эмулятор тоже вместе выбирали -- остановились на zesarux, там в итоге тулинг удобный получился для автотестов.
Например, так как в данной игре используется псевдо-случайная детерминированная последовательность, которая засеивается сидом из таймера, так вот я придумал его засеивать в эмуляторе каким-то определённым числом, и реализовать в порте такую же псевдослучайную последовательность; это позволяет сравнить результаты геймплея автоматически у оригинала и порта. Это, в свою очередь, позволяет замкнуть обратную связь для нейронки -- она теперь может измерять, к чему стремиться.
Сейчас отшлифую, протестирую вручную ещё и выложу как минимум сюда в комментариях
Да понимаете, я не очень уверен в целесообразности замусоривания Хабра постами вида "мама, смотри, как я умею" -- вы вот молодец, сделали всё руками, а у меня чистой воды нейрослоп...
Теоретически, но я не проверял последние билды. Дайте мне пару дней )
Да, разумеется, всё под MIT-лицензией, но заранее предупреждаю -- нейрослоп
https://github.com/ddanila/batty-pc/blob/main/src/zxvga.cpp
Мне хотелось поиграть в batty нативно на PC -- вот и всё (и поиграл).
Я развлекался портированием на VGA, и у меня есть под дос именно такой графический движок как часть недоделки
Скрытый текст
Немного навигации под катом
Я навайбкодил под MAME, хотите бета-тестером? Самому стало интересно походить по городу :)
Так, это я понял. Осталось понять разницу между суверенным и национальным дегенератом.
Кто сдаёт продукт вторичный --
Тот питается отлично!
Раз в десять лет встречаются у меня. Они редкие... И их так просто не "взять", или повезёт, или нет
Не просто запускающие, у меня, скажем, это основной рабочий терминал, а я в терминале и работаю
Потому что омега в четвёртой степени!
50 евро за две штуки, например, на официальном сайте (что позволяет предположить, что 35 баксов за две штуки в США, но это неточно).
UPD: хотя, конечно, даже на официальном сайте прямо чтобы точно было написано "2 штуки" -- такого нет )
У меня в одном сервисе проблема именно с регистрацией (железка+облако). Железка есть, зарегистрироваться не могу, написать в поддержку можно исключительно с регистрацией. Плюнул, зарегистрировали на жену.
Мы с профессором в НИИ
Проектируем ИИ.
Такой способ защиты использовал, скажем, Турбо Бухгалтер 3.х под ДОС.
6pro, установился без проблем, только не работает
Открывается, выдает даже в терминале приглашение и после этого падает сразу
Ещё в самом приложении терминала начинают истошно моргать уведомления верхнего бара все