| Разработка и ромхакинг > Ромхакинг |
| [SMD] Rock 'n' Roll Racing -= Ломаем игру=- |
| << < (5/112) > >> |
| topos84:
--- Цитата ---Ну, значит, я его закрашиваю. --- Конец цитаты --- Но тогда вся карта летит коту под хвост. :-\ Ведь никто тогда не поедет по длинному пути, в обход. Разве что захочет пострелять врагов, оторвавшись от них чуть ли не на пол круга. Добавлено позже: --- Цитата: Ti_ ---а перп.-трамплин. --- Конец цитаты --- Дык не нужно это обозначение вообще! |
| SnowWorm:
--- Цитата: Ti_ от 13 Сентябрь 2009, 14:07:11 ---в хак кстати неправильно цвета добавляются. первый должен быть 0000, а потом 3цвета. (как и оригинале- там не проверял ток). т.е. $10f010=0000,w.color1,w.color2,w.color3. --- Конец цитаты --- а как дальше? 0000,color1b, color1g, color1r, 0000,color2b, color2g, color2r, 0000,color3b, color3g, color3r... ? --- Цитата: Ti_ от 13 Сентябрь 2009, 19:42:43 ---9 и 10 байт - это высота для трамплина. (уточнение к PDF'ке) --- Конец цитаты --- это для блоков 06 и 07 или как? можно подробнее? --- Цитата: Марат от 13 Сентябрь 2009, 23:43:09 ---Хороший редактор карт не помешал бы. --- Конец цитаты --- это потихоньку делается... Сейчас он скорее ещё "недоредактор". уже разбирает файл разжатой трассы на блоки (и для каждого блока - тип, высоты, лужи), чекпоинты, вэйпоинты, кол-во кругов и.т.д, понимает вроде всё что есть в трассе, кроме некоторых странных непонятных мест. Жаль только алгоритм распаковки-запаковки трассы неизвестен, в итоге вышло бы удобней. А так придётся потом самому трассу паковать специальной прогой и в ром пихать. |
| topos84:
--- Цитата: Ti_ ---ну можно волнистую паралленльно - бугры --- Конец цитаты --- Нехорошо, потому что и так стрелки параллельны, да и лужи много место на рисунке занимают (клетки не так уж и велики для таких обозначений). |
| topos84:
--- Цитата: Ti_ ---вспомни трассу #3. --- Конец цитаты --- Не вышло. Поясни, где она была. |
| Марат:
--- Цитата: SnowWorm от 14 Сентябрь 2009, 00:22:50 --- Жаль только алгоритм распаковки-запаковки трассы неизвестен, в итоге вышло бы удобней. А так придётся потом самому трассу паковать специальной прогой и в ром пихать. --- Конец цитаты --- Дык, это не проблема, я тебе могу написать алгоритм распаковки и запаковки. Ты на каком языке пишешь? |
| Марат:
--- Цитата: Ti_ от 14 Сентябрь 2009, 00:44:28 ---если эт ОН: http://datacompression.info/LZSS.shtml http://www.mccme.ru/free-books/izdano/2004/it2004p1.pdf http://compression-links.info/LZSS --- Конец цитаты --- Если я не ошибаюсь, то там смещение по другому вычисляется. |
| topos84:
--- Цитата: Ti_ ---не обязательно же дыра после них идет. вспомни трассу #3. --- Конец цитаты --- --- Цитата: Ti_ ---трасса #3 оригинальной игры(перекресток с трамплином) --- Конец цитаты --- Трамплин, присущий петле, есть дело обязательное. Без него петлю не сделаешь. Значит и тут не нужно обозначение трамплина. Добавлено позже: --- Цитата: Ti_ ---может когда удастся создать новые типы блоков и тут. --- Конец цитаты --- Я был бы безмерно рад, если бы удалось хотя бы увеличить размер трассы (до 10х10). Добавлено позже: --- Цитата: Ti_ ---сделать поворот раньше , а после T прямую с трамлпином. --- Конец цитаты --- Че-то не въезжаю, можешь нарисовать? (только красную линию). |
| SnowWorm:
--- Цитата: Ti_ от 14 Сентябрь 2009, 00:44:28 ---Добавлено позже: если эт ОН: http://datacompression.info/LZSS.shtml http://www.mccme.ru/free-books/izdano/2004/it2004p1.pdf http://compression-links.info/LZSS --- Конец цитаты --- вторая ссылка (пдф-ка) вроде довольно интересная сама по себе, спасибо, почитаю на досуге. но практически это не совсем подходит. Я сам пробовал найти какие-нибудь уже готовые алгоритмы, например вот это явно что-то очень хорошее и подходящее: http://www.programmersheaven.com/download/2260/4/ZipView.aspx но там есть проблема. Для сжатия используется пара констант. Они напрямую влияют насколько сильно будет сжат файл, но ограничены вычислительной мощностью процессора. И для распаковки нужно использовать их-же. Иначе получается ерунда. Но даже и в случае если константы будут что надо - возможно алгоритм в РРР использовался чуть не тот и правильно сжать-разжать вообще не получится. --- Цитата: Марат от 14 Сентябрь 2009, 00:48:02 ---Дык, это не проблема, я тебе могу написать алгоритм распаковки и запаковки. Ты на каком языке пишешь? --- Конец цитаты --- о, было-бы великолепно! пишу я на c++, если напишешь подходящие процедуры, или хотя бы опишешь сам алгоритм словами - буду очень благодарен |
| Марат:
--- Цитата: SnowWorm от 14 Сентябрь 2009, 01:01:05 --- о, было-бы великолепно! пишу я на c++, если напишешь подходящие процедуры, или хотя бы опишешь сам алгоритм словами - буду очень благодарен --- Конец цитаты --- Это хорошо, что на сях, а то я только паскаль знаю и си. Тогда завтра постараюсь написать. Заготовки у меня уже есть, нужно будет только внести кое-какие изменения. |
| topos84:
Ti_, лишний поворот на 0С усугубит положение того, кто не ищет легких путей (чем больше поворотов, тем больше понадобится времени на их преодоление). |
| topos84:
Ti_, знак вопроса на твоей второй картинке - да, конечно, там трамплин. Я имел его в виду, а иначе к чему тогда повышение и понижение уровня до и, соотв., после петли? Хотя конечно и с обычной петлей тоже можно это сделать. Короче, понял, теперь буду рисовать трамплин всегда в таких случаях (в случаях с пропастями и островками, рисовать трамплин не буду, потому что он там подразумевается всегда). Добавлено позже: Ti_, я забыл, а можно ли на одной клетке и стрелку и лужу поставить? Бугры и лужу? Стрелку и бугры? |
| topos84:
--- Цитата: Ti_ ---сам конец трамплина поднимает уровнеть на 00 02 04. , и обратно не заедет уже. --- Конец цитаты --- Но ведь все равно придется тогда повышать уровень дороги после трамплина, иначе не выйдет петли (эстакад же быть не может тут). Добавлено позже: Да, еще вопрос: стрелки в углах бывают? Т.е. на квадрате, который есть угол трассы: Г,L,J,7. Добавлено позже: Вот сделал несколько. |
| SnowWorm:
--- Цитата: Ti_ от 14 Сентябрь 2009, 13:31:45 ---и еще , там походу только 2трамплина! (слева-направо , и сверху-вниз). , а не 4. !! --- Конец цитаты --- технически да, но практически - те трамплины слева-направо и сверху-вниз (тип 06 и 07) это обычные прямые участки дороги, к которым приделаны для красоты бордюрчики чтобы не портить вид оборванным концом. Они даже сами по себе не имеют подъёма вверх, надо самому делать там возвышение на конце. А для того чтобы убрать оборванность трассы с другой стороны - можно использовать блоки 02 и 03 вместо 17 в том месте где должен быть промежуток (только там кажется высоты надо подгонять, я настолько глубоко с ними не разбирался. Но например на прямых участках, где на конце нету возвышений, этими штуками всё красиво сглаживается). попробуй сделать что-то вроде последовательности блоков [06 02 04] вместо [04 17 04] в том месте что на скрине видно, вроде должно будет выглядеть получше |
| Марат:
Вот пока что сделал распаковщик с паковщиком на основе алгоритма Haruhiko Okumuro. LZSS_RRR.c Потом напишу другой с оптимизацией, если надо. Косяков вроде нет, но если что, сообщи мне. |
| SnowWorm:
сжатые этим трассы можно вставлять в игру, и всё работает! Найс, спасибо! а вот с распаковкой какие-то проблемы. То что этим алгоритмом сжато, то и распаковывается этим-же алгоритмом без проблем. А вот если попробовать распаковать оригинальную сжатую трассу - выходит какая-то ерунда. Тут в приложении пара файлов, может поймёшь в чём дело: original.track1.compressed.bin - это первая трасса в сжатом видел, выдранная из рома. Там ещё перед этим идёт заголовок D404, но он есть абсолютно перед каждой трассой в роме и на распаковку вроде не влияет. Так что в этом файле его нету. original.track1.decompressed.bin - предидущий файл распакованный этой прогой - http://homepage.corbina.net/~lich/rrr/rrr_decompressor.zip (этот распаковщик вроде правильно всё разжимает, но для нормальной работы не подходит - нету хотя бы вызова из командной строки) lzss_rrr.track1.compressed.bin - распакованный файл, далее сжатый твоим алгоритмом. Получается немного иначе чем в оригинале в роме, но во время игры никаких ошибок не возникает, так что всё ок. lzss_rrr.track1.decompressed.bin - оригинальная сжатая выдранная из игры первая трасса, распакованная твоим алгоритмом. Вот тут выходит что-то не то, глянь если сможешь что тут не так. |
| Марат:
--- Цитата: SnowWorm от 14 Сентябрь 2009, 18:59:19 ---Там ещё перед этим идёт заголовок D404. --- Конец цитаты --- Полагаю, что это размер несжатых данных, в данном случае размер трассы в litle endian формате. Вот, пофиксил. Теперь сжимает точно также, как оригинальный. LZSS_RRR.C]LZSS_RRR_Fixed[/url] Ссылку исправил |
| Марат:
А что это за адрес в документации SnowWorm'a указан $AA8C0? Я по-началу думал, что это адрес первой трассы первого уровня, а оказалось нет. --- Цитата: Ti_ от 14 Сентябрь 2009, 19:50:02 ---d404 это перед всеми архивами трасс. может это просто метка. как хочешь менять можно. перед архивами палитр например 2000 или 8000 хм если d404 = 04d4 , тогда да. может он просто только на СНЕСЕ нужен был? неважно вообщем , щас дебаг запустил не считывается это даже. --- Конец цитаты --- Видимо это у разработчиков пакер такой был, который перед сжатыми данными пишет информацию о размере сжимаемых данных. $2000 - видимо для палитры размером 32 байта, т.е. для одной из набора палитр. $8000 - для палитры размером 128 байт, т.е. для всего набора. В принципе тебе должно быть виднее, так как ты можешь посмотреть так ли это. |
| SnowWorm:
--- Цитата: Марат от 14 Сентябрь 2009, 19:34:22 ---Полагаю, что это размер несжатых данных, в данном случае размер трассы в litle endian формате. Вот, пофиксил. Теперь сжимает точно также, как оригинальный. LZSS_RRR_Fixed --- Конец цитаты --- ссылка та-же что и в первый раз :/ |
| Марат:
--- Цитата: SnowWorm от 14 Сентябрь 2009, 21:08:45 ---ссылка та-же что и в первый раз :/ --- Конец цитаты --- Не знаю, как так получилось, видимо, не оттуда скопировал. Вот LZSS_RRR.C --- Цитата: Ti_ от 14 Сентябрь 2009, 20:32:53 ---$AA8BE - D404 $AA8C0 - track 1 (в оригинальном роме офц) --- Конец цитаты --- Хм-м, у меня эта трасса находится по адресу $AAAD8. Ром - Rock n' Roll Racing (U) [!]. |
| SnowWorm:
--- Цитата: Марат от 14 Сентябрь 2009, 21:23:02 ---Вот LZSS_RRR.C --- Конец цитаты --- ура, всё ок! Держи виртуальный торт! насчёт адресов трасс там так (во всяком случае у меня, тоже U! версия): по офсету $6B1AC находится некий указатель ($0003F8BE). К нему надо прибавить $6B000, получится $AA8BE По этому оффсету пишется D404 и далее код сжатой первой трассы. От офсета после последнего байта сжатой трассы отнимается $6B000, полученное число пишется по адресу $6B1B0 Ну и после последнего байта первой сжатой трассы опять пишется D404, и далее код второй трассы. Вроде так, если не ошибаюсь |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |