В попытках поиска смысла жизни, захотелось перепройти/отреверсить все игры. Скажем, на входе у нас есть байткод от 6502/Z80 или чего-то такого. Сделать самодельный дизассемблер не представляет проблем, благо даташитов полно, а вот разбираться с джампами кто и куда - несколько сложно, хотелось бы какие-то конструкции вида if/while для удобочитаемости и более приятной медитации. Да, я в курсе, что в общем виде это не возможно, но у меня нету работы и я никому не нужен. В принципе это умеет ИДА и подобные штуки. Но подобные штуки не умеют в декомпиляцию 6502/Z80.
Можно было бы попробовать составить граф переходов, это относительно несложно, но что дальше? Была идея оттранслировать байткод в некий абстрактный код (хоть JVM) и поверх этого прицепить свой «абстрактный декомпилятор» (так как процессоры разные и может быть будут другие), но нехватает грамотности. Была идея прицепить сверху Процион, но у него и так порой рвет крышу от некорректных графов. Фернфловер, насколько мне известно, так и остался закрытым изделием, хотя именно эту задачу он решал.
Особенно приветствуются различные PDF по написанию дизассемблеров, декомпиляторов и всего такого.