| Разработка и ромхакинг > Редакторы для консольных игр |
| [NES] Chip ’n Dale Rescue Rangers (CaD Editor) |
| << < (4/4) |
| Roket:
Понятно. Ладно фиг с ним с боссом. Он нам пока не горит. Я его или Ломакс настроим позже. Как доделаем уровень B и приступим к уровню С позаботимся о так называемом хаке разработчиков. ;) --- Цитата ---мне не совсем понятно, что значит "-1 --- Конец цитаты --- В списке объектов, там идут координаты объекта и после них нумерация ;). Вот эту нумерацию нужно поправить, у босса эти объекты сейчас с нумерацией 0, а надо -1. То есть их расположение дальше арены, а не в ней. Из-за этого он не появляется и поэтому уровень не завершить. А чтобы можно было пройти, нужно пофиксить нумерацию его объектов. Или я могу вставить другого босса. :) Добавлено позже: Это уже не хак получается, а своеобразная трабла. Добавлено позже: Вот такой хардкор можно устроить. |
| spiiin:
всего-то вписать в ром 15 байт (3 части босса) :) ну вот это и есть хак разработчиков - что части босса ставятся не на той арене, на которой сама битва. из-за этого при автоматической сортировке в редакторе и неясно, куда ставить босса. поэтому он и не появляется. чинится это так - включается ручная сортивка и босс передвигается в самое начало списка объектов, тогда он будет появляться. пока что можешь просто поставить туда другого босса - "затычку", чтобы можно было завершить уровень. на этом уровне есть еще и ошибка разработчиков - если посчитать начальные адреса массивов координат и объектов и их размеры, окажется, что они случайно перекрываются и из-за этого затерт один объект. это можно увидеть, если открыть редактором оригинальный ром. я сначала думал, что там должен был быть заводной ключ за спиной робота, но, кажется, там был еще один прыгающий ящик на предпоследнем экране. Добавлено позже: не тормозит хардкор?))) |
| Ti_:
--- Цитата: spiiin от 19 Март 2013, 16:03:32 ---разделить их нормально я не смогу. если кто возьмется ром расширить, в редакторе поправлю потом, чтобы можно было открыть его тоже --- Конец цитаты --- Могу попробовать. Что расширить то надо, графику или сами конфиги, и где он лежат? Само по себе добавление новых банков рома prg+chr делается в 3 клика, а вот указать чтобы данные оттуда читались, это уже зависит от игры. |
| spiiin:
Ti_ вот тут все смещения описаны. https://github.com/spiiin/CadEditor/blob/master/CadEditor/Globals.cs 0x3AF0 - тайлы (по 256 штук x 5 блоков - сначала 4 кусочка, затем байт типа + цвета). 0x36F0 - макротайлы (256 штук) указатели на номера тайлов, макротайлов и prg-банков хранятся в записях об уровнях и дверях, их не проблема переставить. |
| Ti_:
--- Цитата: spiiin от 19 Март 2013, 17:24:32 ---0x3AF0 - тайлы (по 256 штук x 5 блоков - сначала 4 кусочка, затем байт типа + цвета). 0x36F0 - макротайлы (256 штук) --- Конец цитаты --- Не совсем ясно. Штуки это байты? Указатель на B6E0 тут: --- Код: ---BANK7:E03C ADC #$E0 BANK7:E03E STA word_0_0 BANK7:E040 LDA word_0_0+1 BANK7:E042 ADC #$B6 ; BANK0:B6E0 --- Конец кода --- Банк перед этим выставляется либо 0 либо 1, я так понял. То есть имеем данные в двух местах - 36f0 и 76f0 , размером 400 каждые. И что это значит? Всего 8 уникальных? Поинтеры на bae0 тут: --- Код: ---BANK7:DFE9 LDA $BAE0,X ; BANK0:BAE0 BANK7:DFEC STA $140,Y BANK7:DFEF LDA $BBE0,X BANK7:DFF2 STA $141,Y BANK7:DFF5 LDA $BCE0,X BANK7:DFF8 STA $144,Y BANK7:DFFB LDA $BDE0,X --- Конец кода --- и тут --- Код: ---BANK7:DFAC TAX BANK7:DFAD LDA $BEE0,X BANK7:DFB0 STA byte_0_4 --- Конец кода --- Если всего 5 кусков и каждый по 256 байт? (или 10 если в 1-ом банке тоже?) , как я их расширю. Выходит в оригинале они на все уровни? Можно конечно всё продублировать в других банках, и только номер банка указывать. |
| spiiin:
в роме - 0x3AF0 - первый набор (0x3af0 - 1четверть, 0x3bf0 -2четверть, 0x3cf0 - 3четверть, 0x3df0 - 4четверть, 0x3ef0 - тип и 2 бита цвета). 0x7AF0 - второй набор 0xBAF0 - третий и т.д., всего 8 по-моему. наборы маппятся по адресу: маппятся по адресам [0xBAE0, 0xBBE0,0xBCE0,0xBDE0, 0xBEE0] аналогично 8 блоков макротайлов (по 256 байт) лежат по адресам 0x36F0, 0x76F0, 0xBAF0 и т.д. и маппятся в оперативку по адресу 0xB6E0 по числу банков prg-rom - это ж у тебя в примерах кода всё есть. далее - есть записи о том, какой уровень использует какой блок тайлов и макротайлов. для уровней (no от 0 до 10): res.objId = romdata[0x1E23D + no]; //номер тайлов res.backId = romdata[0x1E24C + no];//номер chr res.palId = romdata[0x1E25B + no]; //номер палитры, палитры по offset'у 0x1C354 res.palId2 = romdata[0x1E279 + no]; res.palBlink = romdata[0x1E288 + no]; res.bigBlockId = romdata[0x1E201 + no]; //номер блока макротайлов также дверь может переключать эти параметры - кроме номера макроблоков (дверей 25 штук): res.objId = romdata[0x1E6BB + no]; res.backId = romdata[0x1E6D3 + no]; res.palId = romdata[0x1E6EB + no]; res.palId2 = romdata[0x1E703 + no]; res.palBlink = romdata[0x1E71B + no]; то есть, чтобы гарантированно для каждого уровня и каждой двери был выделен свой уникальный номер - надо сделать 11 + 25 = 36 банков prg-rom (в которых будут описания тайлов) и 72 банка chr-rom (по 36 на беки и по 36 на спрайты врагов) Добавлено позже: --- Цитата ---Банк перед этим выставляется либо 0 либо 1 --- Конец цитаты --- от 0 до 7 наверно в оригинале, я не смотрел |
| Ti_:
Ну вот это меня интересовало, где данные уровней лежат. Значит они лежат в разных банках, для каждого уровня - свой банк. А не все уровни в одном банке. Во-вторых банков у нас 8, значит 8 'наборов' никак не может быть, так как последний c000-f000. Добавлено позже: --- Цитата: spiiin от 19 Март 2013, 21:28:36 ---Добавлено позже:от 0 до 7 наверно в оригинале, я не смотрел --- Конец цитаты --- Я сейчас посмотрел, там вначале выставляет 0 или 1 , а потом нужный, это меня и сбило. Добавлено позже: --- Цитата: spiiin от 19 Март 2013, 21:28:36 ---то есть, чтобы гарантированно для каждого уровня и каждой двери был выделен свой уникальный номер - надо сделать 11 + 25 = 36 банков prg-rom (в которых будут описания тайлов) и 72 банка chr-rom (по 36 на беки и по 36 на спрайты врагов) --- Конец цитаты --- В mmc3 512 кб prg и 256kb chr максимум. В MMC1 не смотрел, но также наверное. Так что просто продублировать если - получаем всего +24 PRG. А CHR в 2 раза больше - не знаю сколько это. А если больше надо в один банк все уровни пихать, и поинтеры делать. Добавлено позже: Проверил - mmc1 держит только 256кб prg. Так что без ухищрений только +8. А если надо только номер банка указывать, то тут и расширять нечего. Ну если надо то вот: вставил 8 дубликатов 0-ого банка в 1c010-3c010. (Номера их с 07 до 0e). Не забываем что последний банк всегда в конце рома prg, поэтому он перемещается с 1c010-20010 в 3c010-40010. (На случай если редактору эти адреса нужны.) ------------------------------------------------------------------------------------- Добавлено позже: Я тут вдруг вспомнил что на сайте Sergi был Чип и Дейл прохаченный под MMC3. Скачал его и добавил также 384кб (всё копии 0-ого банка). Так что вот, места теперь почти сколько хотели. Только надо будет ромы сверить, а то мало ли редактор его ром не поймет, не расширенный в архиве также. |
| Steel:
ROM "Chip and Dale" на MMC3 есть тут - http://tim007.com/Romhack.htm |
| spiiin:
Почти сделал поддержку в редакторе расширенного рома, но заметил, что по-хорошему надо под неё еще движок игры допилить немного. в записях об уровнях номер банка памяти под объекты кодируется так: 8x - банки с памятью для объектов, 9x - банки с памятью для бэков. можно выбирать до 16 банков. но проблема в том, что в роме банки лежат так: 8 под объекты, 8 под видео и потом 16 свободных. то есть банки для бэков можно продолжать дальше на свободное место, а банки для объектов продолжать нельзя, так как следом за ними сразу идут банки бэков. Чтобы было можно - надо переставить банки в таком порядке - 8 под объекты, 8 свободных, 8 под беки и еще 8 свободных. ну и где-то в движке изменить выбор банка на правильный. Ti_, если сможешь это пофиксить быстро, было бы очень круто. Roket, спасибо за спрайты для DWD, очень жду оставшиеся (84-104) :) |
| spiiin:
Emsi D объектов-бонусов несколько, с ними связан разный игровой код. не влезая в код, нельзя ставить бонусы в других комнатах и менять их номера Добавлено позже: Ti_, Rocket Вот промежуточная версия редактора Умеет загружать большее число картинок объектов и поддерживает расширенные ромы (в архиве Config_CAD-512.xml для загрузки 512kb версии). в полной версии еще вынесу остальные константы и размеры уровней для DwD в xml и наверно сделаю еще пару инструментов в редакторе врагов (выделение, удаление мышкой), чтобы проще разобраться было. а то вот даже какой-то испанец нашел редактор и не понял, как объекты удалять :lol: http://www.youtube.com/watch?v=eOE5eHi_lP4 кстати, а первый ответ в теме можно отредактировать как-то? |
| Ti_:
--- Цитата: spiiin от 28 Март 2013, 05:11:14 ---но проблема в том, что в роме банки лежат так: 8 под объекты, 8 под видео и потом 16 свободных. то есть банки для бэков можно продолжать дальше на свободное место, а банки для объектов продолжать нельзя, так как следом за ними сразу идут банки бэков. --- Конец цитаты --- Посмотрел, банки с графикой - там ничего менять не надо. Вначале уровня просто задается номер. Тут ($1e23d): --- Код: ---BANK7:E22D object_bank_id: .BYTE $80, $81, $80, $83, $84, $86, $85, $88, $81, $86, $87, $8C, $8C, $80, $9D ; ... BANK7:E23C backgn_bank_id: .BYTE $90, $92, $93, $94, $95, $96, $97, $98, $99, $9A, $9B, $9E, $9E, $9D, $9D ; ... --- Конец кода --- Это задается при переходе на подуровень ($1e6bb): --- Код: ---BANK7:E6AB object_bank_id1:.BYTE $80, $8C, $81, $82, $82, $89, $83, $85, $84, $8A, $84, $87, $8A, $85, $87, $87, $8A, $8C, $80, $89, $88, $8B, $82, $89 ; ... BANK7:E6C3 backgn_bank_id2:.BYTE $91, $91, $92, $93, $93, $93, $94, $95, $95, $9C, $96, $96, $96, $97, $98, $98, $98, $9A, $9A, $9A, $9B, $9D, $99, $91 ; ... --- Конец кода --- Например в оригинале $80 соотв. адресу $20010 в роме. (первый блок объектов) , $81 -второй; $90 - первый блок фона ($30010). |
| spiiin:
а, стоп, точно, в оригинале уже используются 16 блоков (8A-8F, 9A-9F). тогда надо проверить, будет ли работать нормально индексирование с адресами A0-BF просто :) |
| Ya_ne_boto:
Отличная идея. Сейчас на вскидку и не могу вспомнить подобных проектов, где бы полностью были сохранены уровни, и улучшена только графика. Я бы даже купил такую игру на картриджах выпускать планируете? |
| spiiin:
Теме несколько лет уже :) |
| Навигация |
| Главная страница сообщений |
| Предыдущая страница |