| Разработка и ромхакинг > Ромхакинг |
| [SMD] Rock 'n' Roll Racing -= Ломаем игру=- |
| << < (107/111) > >> |
| Nemesis_c:
шикарно.. зачет :thumbup: |
| r57shell:
Шикарно, главное чтобы багов не было. Кнопок туча конечно. :lol: Швейцарский нож напоминает. Например мне совсем не нужная функция - редактирование рома. (и вращение колёс кстати тоже) |
| Ti_:
--- Цитата: SnowWorm от 15 Сентябрь 2012, 07:53:46 ---Доделал старую прогу редактирования машин. Теперь можно не только импортить-экспортить графику, но и сразу изменять палитры, оружие, характеристики. Все изменения можно сохранить сразу в ром. :D И в приложении в архиве - несколько готовых машинок, их можно вставлять через эту прогу. Все взяты с этой темы (их создавали тём(А) и Nemesis_c, и простите если ещё кого забыл) http://twistedbytes.ucoz.ru/load/0-0-1-8-20 --- Конец цитаты --- Класс. Ты и "скорпиона" где-то откопал. Помню его посчитали ужасным и забросили. Кто его делал вообще? Доработать бы... попробую Тёму спросить. :) Кстати если кто думает тачки рисовать - нам нужен dirt devil на гусеницах. SnowWorm если надумаешь и редактор трасс допиливать - вот что надо сделать, во-первых там есть баг с 'перекрестком'. В оригинале есть одна или две трассы у которой перекресток имеет высоту. Так там используется не самый первый байт высот, а 2-ой или 3-ий. А редактор сохраняет первый. Как лучше сделать я даже не знаю, например я сейчас уже убрал в своём хаке эту тупость, как раз подогнав под редактор. Можно конечно и все байты высот просто указывать. Далее - последний байт это гравитация. Но ее опять же надо активировать в роме. Чекпоинтов должно быть не больше 15, последний 16-ый всегда должен быть $FF. Если не так - вызывает определённые баги. Последние высоты трамплина как известно должны быть 0 2 4. Однако есть один секрет - на горизонатльном можно по-любому ставить. (Хотя редактор позволяет как угодно делать - но это на случай если фиксировать будешь) Стрелочки вейпоинтов со значением наискок не являются реальным указателем ехать наискосок. Значение угла берется разницей вейпоинтов из таблицы - но таблица только для 4углов. Машина едет куда-то вбок так как получает либо нулевой угол, либо из других данных - но иногда полезно. Неплохо бы добавить в редактор поддержку для хаков: установка 'боковых' стрелок. Установка объектов на T-блоках. Позиция объекта - у меня пока так сделано: $B,9,7,$27 - верх/низ ; верх/центр; центр/низ (но надо уточнить); 3штуки. Если что еще вспомню - напишу. Вот вспомнил бордюры перепутаны в списке меню. Выбираешь H - а ставит V. |
| SnowWorm:
Вращение колёс помогает узнать есть ли неправильно импортированный серый цвет (стёкла начинают моргать как шины). Ti_, спасибо за список багов. К редактору какие-то новые фичи придумывать я не буду, но вот эти баги пофикшу. |
| Ti_:
--- Цитата: SnowWorm от 15 Сентябрь 2012, 17:54:48 ---Ti_, спасибо за список багов. К редактору какие-то новые фичи придумывать я не буду, но вот эти баги пофикшу. --- Конец цитаты --- Хотя бы сделать так, чтобы эти данные при ресейве через редактор не терялись. А то по две копии некоторых трасс приходится держать. |
| SnowWorm:
Редактор для оригинального рома создавался, потому и всякие непонятные блоки сам убирает, чтоб меньше багов в игре было. А вообще можно проверять параметры при запуске программы.. Могу сделать чтоб если запускаешь с параметром program.exe -noautofix - никакие возможные ошибки в блоках сами не исправлялись; program.exe -ti_mod - и можно ставить объекты на все блоки, плюс какие-то ещё новые блоки и гравитация; program.exe -noautofix -ti_mod - всё вместе :) Такой способ будет ок? По крайней мере так и для оригинального рома трассы будут сами подгоняться, и для хака можно будет применять |
| Ti_:
--- Цитата: SnowWorm от 15 Сентябрь 2012, 18:47:34 ---Редактор для оригинального рома создавался, потому и всякие непонятные блоки сам убирает, чтоб меньше багов в игре было. А вообще можно проверять параметры при запуске программы.. --- Конец цитаты --- Да можно так. Тогда уж сделай ключ -hack. То есть режим хакнутых трасс. Да и при открытии если найден нелегальный 'параметр' , можно спрашивать пользователя переключится в режим хака? |
| SnowWorm:
Спрашивать про переход в хак режим вообще можно, но сделать это в программе сейчас будет сложновато. Раньше надо было предусмотреть... Могу сделать чтоб просто сообщение с ошибкой показывалось. --- Цитата ---Позиция объекта - у меня пока так сделано: $B,9,7,$27 - верх/низ ; верх/центр; центр/низ (но надо уточнить); 3штуки. --- Конец цитаты --- если правильно помню раньше было 0 - ничего 1 - масло 2 - клей 3 - ускоритель вправо 4 - ускоритель вселво эти новые стрелки нужно добавить как объекты 5, 6, 7 ? |
| Ti_:
--- Цитата: SnowWorm от 15 Сентябрь 2012, 19:47:35 ---Спрашивать про переход в хак режим вообще можно, но сделать это в программе сейчас будет сложновато. Раньше надо было предусмотреть... Могу сделать чтоб просто сообщение с ошибкой показывалось. если правильно помню раньше было 0 - ничего 1 - масло 2 - клей 3 - ускоритель вправо 4 - ускоритель вселво эти новые стрелки нужно добавить как объекты 5, 6, 7 ? --- Конец цитаты --- Новые стрелки и в оригинале ставятся (5 и 6 ) - только на них игра зависает. 7 тоже ставится (лава) только без графики. $27 - это не тип объекта а его расположение. Попозже уточню ещё какое значение как точно ставит объект. |
| SnowWorm:
Немного редактор тачек подправил. Швейцарский нож немного сложился :lol: - статы и оружие можно изменять после нажатия кнопки снизу. http://twistedbytes.ucoz.ru/load/0-0-1-8-20 А ещё, кто-нибудь знает как определяются в игре координаты границ машин? Допустим, если машинку разместить ровно в центре спрайта - в игре она выглядит странно, как будто в воздухе висит (тень сильно вперёд вылезает). Или если расположить её сильно сбоку в спрайте - она будет ударяться о стены и другие машины, ещё не доехав до них впритык. Тоесть само реальное изображение явно не учитывается при обработке физики, да? Определённое число пикселей от границы спрайта это и есть воображаемая граница машины? |
| r57shell:
--- Цитата: SnowWorm от 19 Сентябрь 2012, 05:21:16 ---Тоесть само реальное изображение явно не учитывается при обработке физики, да? --- Конец цитаты --- Именно, как и в первых 3D шутерах геометрия для физики была проще чем сама модель. --- Цитата: SnowWorm от 19 Сентябрь 2012, 05:21:16 ---Определённое число пикселей от границы спрайта это и есть воображаемая граница машины? --- Конец цитаты --- Что-то типо того |
| Ti_:
--- Цитата: SnowWorm от 19 Сентябрь 2012, 05:21:16 ---А ещё, кто-нибудь знает как определяются в игре координаты границ машин? Допустим, если машинку разместить ровно в центре спрайта - в игре она выглядит странно, как будто в воздухе висит (тень сильно вперёд вылезает). Или если расположить её сильно сбоку в спрайте - она будет ударяться о стены и другие машины, ещё не доехав до них впритык. Тоесть само реальное изображение явно не учитывается при обработке физики, да? Определённое число пикселей от границы спрайта это и есть воображаемая граница машины? --- Конец цитаты --- Столкновения с бордюрами на основе координат на блоке. (они бывают от 0 до 192). Пересечение - разница координат, если все три меньше - значит проходит. С частицами X=$10, Y=$14, Z=$A С другими машинами X=$E Y=7 , Z=4 Координаты не зависят от положения спрайта. Это положение спрайтов высчитывается из координат машин. Вначале на основе x,y,z и положения камеры считается положение X и Y машины на экране. Далее из положения на экране высчитывается положение 4 спрайтов. (каждая машина состоит из 4спрайтов размером 3x3) |
| SnowWorm:
Ясно, спасибо. Я хотел более-менее адекватную автоматическую антитряску спрайтов приделать к программе. Но похоже что лучше всего просто автоматически отцентровать каждый спрайт, и потом вручную довести до нормального вида |
| SnowWorm:
Я пытаюсь со списком архивов разобраться, их в роме 222 штуки. Могу их все достать из рома и распаковать. Проблемы начинаются когда пытаюсь запаковать их обратно - если хоть один архив до 62 изменится в размере - то графика первой планеты сразу ломается, спрайты трассы становятся просто рандомно раскиданы по экрану. Я даже совсем не трогаю те архивы, у которых указанный в хедере размер не совпадает с реальным - просто записываю их в ром в первоначальном виде, без изменений. Мне почему-то кажется что пофиксить таблицу указателей на архивы недостаточно, как будто где-то ещё есть указатель на графику планеты или типа того. r57shell, я видел твою прогу для сборки рома, но там в конфиге я не заметил ничего необычного, вроде архивы просто складываются в ром один за другим. Ты какие-то ещё указатели для графики планет исправляешь там? А ещё, что означает $20 в таблице указателей перед некоторыми адресами? |
| Ti_:
--- Цитата: SnowWorm от 22 Сентябрь 2012, 09:18:56 ---Я пытаюсь со списком архивов разобраться, их в роме 222 штуки. Могу их все достать из рома и распаковать. А ещё, что означает $20 в таблице указателей перед некоторыми адресами? --- Конец цитаты --- Ну это мы уже делали 2года назад. Всё что требуется для начала перепаковать не изменённые, и если все совпало - значит нормально должно быть. Здесь есть несколько нюансов, у всех архивов есть хедер - из 2 байт - распакованный размер, нафиг не нужный. Однако из-за некоторых проблем r57shell сделал заместо него запакованный размер. (в обычном роме запакованный размер - это разница поинтеров) Для стандартного варианта надо использовать ключ encode1. Был ещё вариант вообще без хедера. $20 используется как указатель на то, что архив реально меньше на 1 байт. Т.к. архивы раскинуты по четным адресам. (именно из-за невозможности это указывать автоматически и был сунут размер в хедер) На самом деле все архивы можно было бы кидать по любым адресам, просто там есть 12 не-архивов (это карты блоков и карты тайлов планет - они не сжаты), а посколько чтение word возможно только с четного адреса надо чтобы были на четных. А ещё есть один архив в котором хедер используется как кол-во занимаемого места в памяти vram. bin\RRR_LZSS.exe encode1 resourse\000.bin archives\000.lzs bin\RRR_LZSS.exe encode1 resourse\001.bin archives\001.lzs bin\RRR_LZSS.exe encode1 resourse\002.bin archives\002.lzs org $6b000 ARCHIVES dc.l file000-ARCHIVES+$20000000 dc.l file001-ARCHIVES+$20000000 dc.l file002-ARCHIVES dc.l file003-ARCHIVES+$20000000 dc.l file004-ARCHIVES file061 incbin archives\061.lzs file062 incbin resourse\062.bin file063 incbin resourse\063.bin file064 incbin archives\064.lzs |
| r57shell:
SnowWorm, установи lzss патч, и юзай set archive и пакер с опцией размер в хедере. или сборщик рома который тоже выложен. там всё делается вообще автоматически. пакуются и вставляются. |
| SnowWorm:
--- Цитата: Ti_ от 22 Сентябрь 2012, 11:40:59 ---$20 используется как указатель на то, что архив реально меньше на 1 байт. Т.к. архивы раскинуты по четным адресам. (именно из-за невозможности это указывать автоматически и был сунут размер в хедер) --- Конец цитаты --- Ого, спасибо. Жесть.. это мне всё и портило. По крайней мере теперь когда добавил нули к архивам с нечётными размерами всё нормально собирается, и трассы выглядят прилично. r57shell, я твой сборщик рома уже 2 года назад видел. Вещь потрясная, но мне удобней в своей-же программе распаковывать данные, изменять, и запаковывать назад :) |
| Ramzet:
Универсальный код на хак версию Rock_n'_Roll_Racing_Hack_v15_alpha_r8 с 1 уровня, дивизион A, с 999.000 денег. Ссылка на пароль: http://vk.com/retrogame1 |
| s1nka:
Ramzet, Что за спам? |
| Ramzet:
Это не спам, а ссылка на группу в контакте. :cool: 100% не спам. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |