Разработка и ромхакинг > Ромхакинг
[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% не спам.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии