Правила, действующие в этом форуме и всех его подфорумах:
1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)! 2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)! 3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить! 4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума! 5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен! 6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение. 7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме! 8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения. 9) Использование смайликов разрешается не более 3-х подряд!
Хочу также отметить что нужно сделать выбор чтоб можно было переключать музыку. Например сделать в настройках выбор эмбиэнт или оригинал. Так как оригинал тоже надоел, слишком шумный.
это же 1й DOOM на 3DO, там музон трогать, это ты борщанул, а вот как решать с треками в DOOM 2? для него ведь не было аудио треков, хотя можно с PS версии, те что недавно официально обновили до более богатого звучания, я где то в теме выкладывал, тогда в этом плане у 3DO появится новый эксклюзив как в своё время 1й DOOM
с PS версии, те что официально обновили до более богатого звучания
А есть качество получше? И вроде, там должно быть более 5 часов звучания, а ты выложил меньше. Или я ошибаюсь.
Добавлено спустя 6 минут 54 секунды:
aspyd писал(а):
Вы так и решили вдвоем делать, до конца?
Да кто ж знает, как получится? Пока на веслах. Может, упремся в какое-то тупое ограничение, которое поставит крест на усилиях. Не хотелось бы, но кто знает...
aspyd писал(а):
Может, Yaranga зелёный ник прикрутить?
Если бы он занимался уровнями и тестом их, было бы здорово. Чем больше народу, тем больше вероятность победы. Кто-то одно заметит, кто-то другое. Тестирование, критика и прочее. Ну и он заговаривал об уровне спешл фор 3DOplanet. И что вы сразу думаете об ущербном? Может получится и полноценный сделать? Ну, дизайн кое-где подправить и все.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
GEN13 Выложи все. Может, потом найдется получше качество. Просто при конвертировании качество может еще снизиться, а этого бы не хотелось. Я пока только собираю музыку, потом буду выбирать и выносить на суд слушателей.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Ох, блин. Я этот уровень DOOM II помню! Он мне очень нравился. Кстати, реально очень похож.
Versus писал(а):
И что вы сразу думаете об ущербном?
Я в кавычки взял. Имел в виду - сложности бы поменьше, про сложность DOOM II, Docuro-chan выше всё написал - сначала играется кайфово, а ближе к середине начинается такая "содомия", что игра превращается в "не гуд".
_______________________________________ Урча, пухлыми лапами кот вцепился в жидкую шевелюру конферансье и, дико взвыв, в два поворота сорвал голову с полной шеи. Две с половиной тысячи человек в театре вскрикнули как один.
GEN13 Выложи все. Может, потом найдется получше качество. Просто при конвертировании качество может еще снизиться, а этого бы не хотелось. Я пока только собираю музыку, потом буду выбирать и выносить на суд слушателей.
Там первый трек достаточно шумный, а если уровень большой то он еще 150 раз повторяется и уже музыка становиться шумной. Надо сделать в меню обязательно переключение музыки. Примером может послужить NFS Hot Pursuit 2 на ps2.
Добавлено спустя 16 минут 36 секунд: Думаю с ps лучше не трогать музыку
Разбираюсь с текстурами стен. В принципе всё понятно, но... 1) Ширина и высота берется из самого первого файла в rezfile (rTEXTURE1) 2) Как обычно файл порезан. 3) С самого начала файла идет секция PLUT (всегда ли так? Надо убеждаться) 4) Начиная с 0x20 (всегда ли?) начинается PDAT 5) Где брать секцию CCB (всякие там PRE0 PRE1 и проч.) пока не знаю. Может она общая для всех текстур? Дальше начинаются странности. В исходниках есть родная текстура bigdoor2.cel. Если сравнивать ее с покоцанным rBIGDOOR2 то видно много паразитных данных (навскидку лишних байт всегда 160 байт, проверял на трех текстурах). Абсолютно непонятно насколько они необходимы, надо попробовать их вырезать и запустить игру без них. Может это какая выравнивалка байт или еще какая шляпа. Сами эти байты либо дублируют начало секции PDAT,либо тупо нули. В принципе можно не вникая сделать такое же дублирование и конвертер текстур готов. Нужно только разобраться с пунктом 5. Где брать CCB заголовок.
aliast С паразитными данными прослеживается алгоритм: длина дублирующейся строки после ПДАТ равна ширине картинки деленной пополам. Дублируется она столько раз, сколько влезет в 160 байт. Если целиком дубль не помещается, то он просто заканчивается "на полпути". Если смотреть по текстуре bigdoor2, то дублируются данные не начала ПДАТ, а конца. Хоть они и похожи. С текстурой door1 также. Начал писать конвертер. Встрял на проверке кратности числа. В проге сначала пишу ПЛУТ, (по её размеру) , потом ПДАТ полностью. Потом вычисленные паразитные данные, но не более 160 байт. Не знаю, правильно так или нет.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
А, да! По п.5. Зачем нам где-то брать ПРЕ0 и ПРЕ1? Нам нужно знать только те места, где находятся ПДАТ и ПЛУТ, размер секции ПЛУТ и ширину текстуры.
Добавлено спустя 8 минут 17 секунд: По п.1. Я сделал иначе. Ширину и высоту взял из cel-ки, а не из первого файла. Ведь он тоже меняется, если добавить текстур. Зачем к нему привязываться? Вот. Может, чем-то поможет. Прога, в общем-то рабочая, но не все дубли будет учитывать, если ширина текстуры маленькая. На этом, в общем-то и застрял.
fread(&PDAT.temp,4,1,infile); // Просто смещаем позицию на 4 байта.
for (j=0; j<PLUT_offset/4-PDAT_offset/4-2; j++) { // Читаем и пишем весь PDAT. -2 потому что заголовок PDAT длиной 8 байт (2 раза) мы уже отсчитали. fread(&PDAT.temp,4,1,infile); temp2 = PDAT.temp; fwrite(&temp2,4,1,outfile); }
} offset += 4; } fclose(infile); fclose(outfile);
// Здесь вычислим длину повторяющейся строки и запишем ее в конец файла outfile. infile = fopen("bigdoor2.cel", "rb"); outfile = fopen("bigdoor2.cut", "ab");
fseek(infile,72,SEEK_SET); // Нужный нам параметр здесь fread(&PDAT.temp,4,1,infile); temp = Swap4Bytes(PDAT.temp); // Длина повторяющейся строки ccbWidth_div2 = temp/2; cout << "String length to duplicate=" << ccbWidth_div2 << "\n";
// Теперь найдем эту строку и допишем ее дубли в конец файла outfile, но общаяя длина не должна быть больше 160 байт. rewind(infile); // перемотаем на начало // Перемотаем на начало PLUT - длину нашей строки. Читать ее будем с ее начала. fseek(infile,PLUT_offset-ccbWidth_div2,SEEK_SET); count = 0;
Ну кстати да. Если писать обрезалку, а не восстановитель, то задача упрощается. Не сообразил сразу. А по поводу первого файла... Думаешь, движок проглотит новые текстуры, не прописанные в начале rezfile? Там указывается не только размер, но и их количество.
Все треки с оригинальными названиями: https://yadi.sk/d/NBe5LktloqSvK на счёт баланса в игре, также можно подсмотреть в PS1 версии, отличный приставочный вариант
Спасибо, положим в копилку, потом разберемся. Для меня PSX версия - эталон, но повторить ее вряд ли получится.
Добавлено спустя 12 минут 50 секунд:
aliast писал(а):
Думаешь, движок проглотит новые текстуры, не прописанные в начале rezfile? Там указывается не только размер, но и их количество.
Первый файл создавать тоже нужно, просто зачем это привязывать к нашей резалке? Я это сделал отдельной прогой, сканируя все текстуры. Позже выложу исходники и exe.
Добавлено спустя 38 минут 43 секунды: И еще хотелось бы сделать PS-шное огненное небо.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
В общем загвоздка с дверью из четырёх решёток, открываемой красным ключом. К тридеошному Думу прикручена только функция переключателя открывающего одновременно несколько дверей только без привязки к ключам (идёт за номером 61 - SR Door Open Stay), в оригинальном же Дум 2 эта функция имеет номер 135 - SR Door (Red) Open Stay (fast). То же самое касается переключателя открывания дверей для других ключей. Пока есть следующие варианты с этой дверью: оставить раздельные четыре обычных "красных двери" или делать одну сплошную...
Пасибы! Очередной раз придётся оправдывать доверие...
Versus писал(а):
Давай пока с этим притормозим. Гляну в исходниках, может, что наковыряю.
Хорошо. Я пока оставлю здесь первые два уровня второго дума в последних вариантах, чтоб не пропали (на всякий случай) и продолжу работу над картой со всеми текстурами тридеошного Дума, но не той, что сделал впопыхах несколько дней назад, а большой многокомнатный вариант, который стопроцентно будет работать, заодно в памяти освежу подзабытые навыки мапинга. С бонусной картой есть мысль сделать что-то вроде портретной галереи (слабореализуемо по понятным причинам) или просто обычную зону, но с логотипом ресурса, который будет просматриваться в режиме карты...
обычную зону, но с логотипом ресурса, который будет просматриваться в режиме карты...
Хорошая идея! Но нужно сделать так, чтобы с видом от первого лица это не было видно, не угадывались очертания. И чтобы она была разнообразная, не плоская. Это я так, свои хотелки пишу, а там делай, как считаешь нужным.
Добавлено спустя 15 минут 9 секунд:
Yaranga писал(а):
функция переключателя открывающего одновременно несколько дверей только без привязки к ключам
А ее номер какой? Не помнишь?
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Флаты вроде идентичны текстурам, но без паразитных 160 байт. ПЛУТ полноценный без нулей в конце. Имеющийся конвертер неправильно работает с флатами, сдвигает ПДАТ. Чтобы конвертер правильно работал, нужно убрать кусок кода, добавляющий 160 байт в конец файла и в коде, пишущем ПЛУТ заменить строку
Versus да это уже не так важно. Главное что можно начинать добавлять текстуры и смотреть как игра их подцепит. Что там ещё нужно править, помимо первого файла...
Для текстур больше ничего не нужно. Но, все-таки, как сделать корректно определение кратности числа? Например, если ширина текстуры будет 16px, то уже так, как я написал, не прокатит. Посмотри, пожалуйста в моей проге. Изменившийся порядок/количество текстур нужно также подправить в doomrez.h.
Нужно еще полностью разобраться с запаковкой спрайтов.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Хорошая идея! Но нужно сделать так, чтобы с видом от первого лица это не было видно, не угадывались очертания. И чтобы она была разнообразная, не плоская. Это я так, свои хотелки пишу, а там делай, как считаешь нужным.
А может быть забить на этот мусор и затестить игру без него?
Попробую, отпишусь о результатах.
Добавлено спустя 4 часа 43 минуты 49 секунд: Выкладываю прогу (+исходники) для создания первого файла в REZFILE. Сделана на основе MakeRez Ребекки. В текстовых файлах перечислены текстуры и флаты для обработки. Параметры (ширина/высота) текстур читаются из *.bmp файлов. В комплекте все текстуры 3DO Doom, переведенные в bmp.
Рассмотрим первый оффсет 40 00 00 68 Префикс 40 00 означает что к данному смещению 00 68 следует прибавить смещение, которое стоит по смещению 0068 По смещению 0x0068 мы видим число 00 00 01 00 значит первый кадр импа находится по смещению 0x0168 (0068+0100) Второй кадр будет находиться по смещению 0068 + 05BC = 0x624, т.е. первое смещение неизменяется, а второе находится по адресу [0x68 + 4] = 0x6C и там у нас число 00 00 05 BC. Третий кадр 0068 + 0x0A4C = 0xAB4; 4-ый: 0068 + 0DB8 = E20 5-ый: 0068 + 10E0 = 0x1148
Далее 80 00 пока пропускаем и начиная со смещения 0x88 начинаем прибавлять указанные числа: 1444, 18BC, 1CF4, 20C4, 244C К этим числам следует прибавить уже не 0068, а 0088, т.к. в начале файла по смещению 0x4 видим 40 00 00 88 Таким образом получаем еще 5 кадров (итого 10) Аналогичным образом, пропуская префикс 80 00 получаем в общей сложности 40 кадров (смещение последнего кадра 0x9970) Оффсеты к оставшимся 18 кадров начинаются со смещения 0x20 без всяких префиксов. Осталось разобраться для чего нужны 24 оффсета с префиксами 80 00.
Последний раз редактировалось aliast 18 фев 2016, 10:14, всего редактировалось 1 раз.
Спасибо за информацию! Вчера попробовал убрать паразитные данные у bigdoor2. В игре текстура смотрится как обычно. Сейчас пытаюсь написать прогу, чтобы она обрабатывала все текстуры и флаты сразу. Как только это получится, протестирую игру со всеми текстурами без этих паразитов.
Добавлено спустя 3 часа 21 минуту 36 секунд:
aliast писал(а):
первый кадр импа находится по смещению 0x0168 (0068+0100)
А что там за 4 байта непонятные по этому смещению?
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения