Вообще тут столько предложений, что уже теряется смысл всё это впихивать в zt, не имея исходников и перелопачивая байткод - куда проще уж сделать с нуля свой zt, а не ковыряться в дизассемблере. Либо всё-таки связаться с разработчиками, возможно они и дадут то, что у них осталось. Всё-таки у тех же 3D Realms выпросили исходники DN3D, они их выпустили под GPL и он стал дальше развиваться сообществом.
А если-таки делать с нуля, то есть ли смысл это делать под genesis? Под PC это будет и проще и возможности неограниченные. Но в таком случае это будет уже другая история, к эмуляции, моддингу и т.п. никакого отношения не имеющая
Нужно всё-таки определиться как-то, чего хотим в следующей версии, а то ведь не получится вообще ничего, как часто и бывает, когда какой-то проект бурно обсуждают и не могут придти к единому плану. Сразу всё и много - это, конечно, хорошо, но нереализуемо. Нужно to-do list и roadmap сделать, а там уж и обсуждать, чего из этих фич возможно, чего нет, а чего сложно
По поводу типов блоков - неужели никто не заглядывал в ztedit.ini? Там ведь абсолютно все типы есть, с описаниями. В том числе и которые не используются ни в одном эпизоде.
Их всего 256. Зарезервированных, в которых ничего не реализовано - мало. В каждом эпизоде перед началом собственно данных карты есть блок из 256 байт, указатель на типы ячеек, эдакий cell mapping. При чтении карты сначала берется байт ячейки уровня, потом из того самого блока вытаскивается номер элемента по значению считанной ячейки, а уже то, что в итоге получилось - рендерится и обрабатывается совершенно в другом месте. Поэтому и в оперативке номера блоков не совпадают.
Получается всё запутанно, непонятно, зачем сделали именно так, если можно было обойтись без указателей. Возможно, изначально хотели сделать типов ячеек больше 256, а вот на каждый эпизод - максимум 256, иначе бы эпизоды не помещались в оперативку. А потом решили оставить 256 типов, но структуру оставили вот такой вот