Поклонник Super Mario 64 смог портировать проект на компьютер спустя 24 года после его выхода, не прибегая к эмуляции Nintendo 64. Портированная игра поддерживает DirectX 12 и совместима с трассировкой лучей.
Пользователям продемонстрировали трассировку лучей Паскаля Гилчера, с помощью алгоритма фонового затенения, с помощью эффекта отражения на поверхности объектов и расширенными эффектами глубины резкости.
С поддержкой DirectX удалось реализовать широкоформатный режим игры и увеличить разрешение. Автор эксперимента смог запустить Super Mario 64 в разрешении 4K при 550 кадрах/с на ПК с процессором Intel Core i7-7700K 4,5 ГГц и видеокартой NVIDIA GeForce GTX 1080 8 Гбайт. Он порекомендовал установить ограничение частоты на 30 кадров/с.
Как отмечается, выход порта для ПК не имеет ничего общего с недавней утечкой внутренних файлов Nintendo, относящихся ко временам Gamecube. Он стал прямым результатом усилий команды Zelda по декомпиляции ПЗУ Super Mario 64 в разборный код C — реверс-инжиниринга от простого двоичного до легко читаемого кода. На эти попытки ушло два года.
Первый шаг в реверс-инжиниринге ПЗУ N64 предполагает установление версии IDO-компилятора Silicon Graphics, которая была использована для создания ПЗУ. Затем нужно выяснить, как организовано ПЗУ, говорят энтузиасты. В играх N64 файлы упорядочены в 16-байтовые блоки, что облегчает просмотр «отступов», отмечающих конец файла. Отладочные сборки игры могут также помочь инженерам задокументировать ее структуру благодаря наличию несжатых файлов и макросов C, таких как __FILE__ и __LINE__, которые показывают внутренние имена, используемые Nintendo.
Чтобы получить пригодный для использования C-код, нужно вручную сопоставить побайтовый код с исходным кодом сборки всех функций в игре после выполнения через компилятор. Однако отдельные функции N64 могут выполняться с тысячами инструкций, и в одной игре N64 может быть несколько тысяч таких функций.
Сложность также варьируется в зависимости от игры. Для Super Mario 64 Nintendo декомпилированный язык ассемблера было проще преобразовать обратно в C-код, а, к примеру, в случае с Ocarina of Time Nintendo использовала флаги оптимизации для генерации более быстрого кода, и полученное ПЗУ намного сложнее превратить обратно в исходный код. После нескольких месяцев работы Zelda включила в С-код только около 15% функций Ocarina of Time.
См. также:
staticmain
А теперь придет (как обычно) Nintendo, выдвинет иск против фаната, потребует закрытие проекта и удаление всех исходников со всех ресурсов.
justhabrauser
Кхм… А где Вы видели сырцы, стесняюсь спросить?
Без сырцов-то я тоже могу заявить, что
люблю по 10 женщин за ночь, как соседпортировал Супер Марио.staticmain
www.patreon.com/unrealyoutube -
justhabrauser
.
Alexey2005
И самое главное: в этом случае стандартный аргумент копирастов не работает, потому что попросту нет никакой недополученной прибыли. Ведь Nintendo и не собирались продавать эту игру пользователям PC! Они в принципе не рассматривали этот сегмент рынка, поэтому недополученная прибыль очевидно равна нулю, и никаких проблем подобное портирование копирасту не создаёт. Просто иррациональная, ничем не мотивированная жадность.
bilayan
Ну как же. Использование чужой торговой марки. Чужих персонажей и тд и тп. Без Марио и мира, его поделка никому нафиг была бы не нужна.
Alexey2005
Так а ущерб-то в чём заключается? Копираст же ничего не теряет. Вот если бы создатель начал продавать этот порт, тут ещё можно было бы прикопаться. А так — от его работы никому не стало хуже, но многим станет лучше. Поэтому подавать на него в суд с моральной точки зрения — свинство. Это всё равно что судить авторов youtube-роликов с прохождениями игр: это явно производное произведение, но ущерба не наносит и на «интеллектуальную собственность» не покушается.
bilayan
А почему обязательно ущерб? получение выгодны используя чужой тм и образы персонажей. AM2R даже не портом было, а по мотивам разработаная игра, и ресурсы не распространялись. И всё равно огребли.
Alexey2005
И какую же выгоду он получил, если он не продаёт эту игру?
bilayan
Получить ссылку на скачивание игры официально можно только после «пожертвования». Привлечение к пожертвованиям используя чужой торговый знак и т.д. и т.п.И даже это всё необязательно. Отреверсеный код с минимум адаптаций к запуску тоже нелегален. кто то должен отреверсить и создать документацию, а он на основе этой доки написать новый код — тогда можно. Можете почитать про Atrac3 как реверсили. Но вопрос с ресурсами от игры тоже остается нерешенным.
Фанаты обычно с такими поделями огребают)
TargetSan
Вы не поверите, но Nintendo периодически так и развлекаются — кидают страйки на прохождения некоторых своих игр на ютубе.
ShadF0x
А толку, скомпилированные версии и исходный код уже попали в интернет. Тут как с AM2R — вроде C&D и проект убит, но и найти рабочую версию не особо сложно.