XenonRecomp

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

XenonRecomp (Ксеноновый Рекомпилятор, ХреноРекомп, Xbox360-to-C++-Transpiler-of-Doom, КостыльКомпилятор, ФранкенштейнВосставший, Yet Another Xbox 360 Recompilation Shit) — это, мать его, костыль на костыле, погоняемый костылём. Предназначен для тех, кто настолько ленивая жопа, что не может написать нормальный эмулятор для Xbox 360, и вместо этого решил перекомпилировать игры в нативный код. Да-да, ты не ослышался, %username%, именно перекомпилировать. Потому что, ну а хули, так же проще, правда?

Суть такова[править]

Эта вундервафля берет бинарник Xbox 360 (XEX, если ты в теме) и превращает его… в C++ код. Не, не спеши блевать радугой, это не декомпилятор. Это, скорее, транслятор ассемблера PowerPC в нечто, отдаленно напоминающее C++. Получившийся Франкенштейн затем можно скомпилировать под x86 (пока что только под него, соси бибу, ARM-фаг!). Авторы сего поделия вдохновлялись N64: Recompiled, такой же ебаниной, но для Nintendo 64. Видимо, в дурке, где они лежали, был день открытых дверей.

Как этим пользоваться[править]

Для начала тебе понадобятся:

  • XenonAnalyse: Эта хрень анализирует XEX-файл и высирает TOML-файл с таблицами переходов.
  • XenonRecomp: Эта поебень, собственно, и занимается перекомпиляцией. Ей нужен TOML-файл с настройками и путь к файлу `ppc_context.h`.

Сборка[править]

Тебе понадобятся CMake 3.20+ и Clang 18+. И да, забудь про другие компиляторы, они соснули. Эта хрень использует специфичные для Clang интринсики и техники, так что мимо.

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++Scala
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)Тернарный операторUnreal MCP
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автоматПроцедурное программированиеПоиск файлов в Unix по содержимомуPetoohФункция активации нейронаПерегрузка операторов в PythonЗерокодинг
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++XenonRecompFuse.js
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iДедлайн%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодачХукCurl cffi