Разработка и ромхакинг > Ромхакинг и программирование
Как разжимать спрайты на Сега играх? [Streets of Rage 2]
<< < (2/2)
Sharpnull:
savokgear, 1.6b новее, возможно исходный код был потерян. Попробовал декомпилировать версию 1.6b, все имена методов сохранились, только почему-то нет form-файлов.  При желании автор мог бы всё восстановить, но это не быстро сливать оба кода.
eskayelle:

--- Цитата ---Quote: eskayelle on Today at 04:24:34
Would the compressor be able to compress a new picture such that it properly replaces the compressed picture at $ 02DDB2?
If the compressed picture has a small file size:
Code: [Highlight]
sor2_comp.py -c "new_pic.bin" -r "Streets of Rage 2 (U) [!].gen" 0x02DDB2 -o "SoR2_hack.gen" -u
You should also know how to change the tilemap.

--- Конец цитаты ---

Sharpnull, is there a specific format you recommend for the new picture (.bmp? .png?) and a tool that'd work best to convert that format to .bin for use with the script?

sor2_comp.py is a Python script that first needs to be compiled, correct?

The file size will be 6KB when compressed.  Will that be too large for the compressor?

I do have access to the tile map to modify it, as needed.  It's at $02F6D2, with the pointer at $022E90.
savokgear:
Sharpnull, Благодаря тебе обновил хак River City Girls, теперь там все новые боссы, кроме мистера Х. И даже с альтернативной палитрой. По прежнему это костели эдишин, пришлось убрать поломанные мешки с деньгами и золото, но все работает без проблем. Осталось разобраться с обычными врагами.
eskayelle:
Sharpnull, I want to extend a thanks as well.  I created a template in a tile editor, saved the template to .bin, set the codec to 4bpp planar, and dropped my image in. 

I then used a Python compiler to run the compressor and it inserted the image right where I needed it.  The tile map needed some massaging, and the Mega Drive's palette limitations weren't too friendly with my image, but I think it turned out very well!

Thanks again!
SeregaZ:
split your image to different pieces. use it not as image + 1 pallete for all image, but a few pieces with 1-2-3-4 palletes. as it was for a Dune 2

Sharpnull:
savokgear, как глупо, я не посмотрел другие ветки (branch) на github, автор уже давно восстановил потерянную версию 1.6b, она была здесь https://github.com/gsaurus/sor_pancakes/tree/feature/revive_pk2, а не в основной (master) ветке. Кроме восстановления он что-то ещё пофиксил и добавил удаление персонажа (не знаю как работает). Прикладываю билд, на всякий случай. Я ничего своего не добавлял, Barbon всё также не исправлен в default.txt.
savokgear:
Скачал, кнопка удаления персонажа похоже, что не работает, попробовал нажать, но ничего не изменилось. Пробовал на Хаке, думал может удалит все новые спрайты и вернёт стандартного персонажа, ничего. Пробовал на оригинале. Возможно эта кнопка для хака синдикат ворс. Лучше бы была кнопка добавить персонажа, для оригинала. :lol:
Так-же остался баг - невозможность редактировать хитбоксы скейта.
Sharpnull:
savokgear, посмотрел код, эта магия с удалением работает только после использования "Generate From Image" или Import Character -> Generate from Spritesheet и Import from other ROM. Эта фича меняет только адреса, на основе которых будет выбираться куда вставить спрайт/анимацию после использования тех же "Generate..." и ..., ... . Она ничего не сделает, если просто открыть ром.

Наверно потому он не добавил обновление в основную ветку, так как не доделал: адрес у Generate Sprite пропал (специально?), интерфейс кривоват, в коде вместо переменных констант просто числа (после декомпиляции). Если я бы хотел делать хаки для SOR2, написал бы программу заново :)

--- Цитата: savokgear от 21 Ноябрь 2019, 04:53:42 ---Так-же остался баг - невозможность редактировать хитбоксы скейта.
--- Конец цитаты ---
Нашёл ошибку:

--- Код: ---if (id == 24 && numPlayableChars < 24 || id == numPlayableChars - 1) break;
--- Конец кода ---
Эта проверка встречается ещё два раза при записи. Добавлено было для SW, где количество игровых персонажей (numPlayableChars) может быть больше 4. id - персонажа от 0. Очень странная проверка на 24 (25-й персонаж) - это граната, которую в версии 1.5 не допускали до этого участка кода, а здесь разрешается, но потом идёт проверка именно на неё (id == 24 && numPlayableChars < 24) и почему-то не numPlayableChars <= 24. Чем не угодил последний игровой персонаж (как Skate) неясно.
Исправить можно, но думаю нет смысла для вас.
savokgear:

--- Цитата: Sharpnull от 21 Ноябрь 2019, 08:34:52 --- Если я бы хотел делать хаки для SOR2, написал бы программу заново :)

--- Конец цитаты ---

Да вот многие на панкейк жалуются, но я не программист.
Import from other ROM кстати говоря вообще глюченная функция. Персонажи в SoR подвязаны по двое - Макс с Акселем и Блейз с Скейтом. И стоит импотировать скажем Скейта поломаются хитбоксы Блейз. Они появятся на других спрайтах, высота и длинна поплывет и прочее. Можно потратить время, восстановить и обнаружить, что теперь поломалось все у Скейта, и так по кругу чинишь у одного ломается у другого. Ром в этот момент проще выбросить.
savokgear:
Как оказалась Resize Animation тоже крашит РоМ. В последнем хаке собрал Макса, проверил, всё работает. Потом собрал Акселя, всё работает, и обнаружил, что пропали первые два спрайта бега Макса. Если в этот момент попробовать обновить поломанные спрайты - ром точно можно выбрасывать. Опытным путём удалось выяснить, что если добавляешь уникальные спрайты атаки мечём для Акселя, то ломаются первые два спрайта бега Макса, и если бы бег был из 4 или менее спрайтов, то всё бы было в порядке. Пришлось отказаться от уникальных спрайтов и дублировать спрайты трубы.

 Панкейк страшная штука, куда не чихнёшь - всё ломается. Собирать персонажей с ним хоть и просто, но ой как не просто на самом деле.
Sharpnull:
savokgear, про уникальные не знаю, но если просто применить оба ваших файла, то у Макса будет неверная 49-я анимация, а после переключения 50-я.
savokgear:
Тема пусть просвещена немного другому, но тем не менее обновил свой хак River City Girls ..of Rage http://www.romhacking.net/hacks/4691/
Теперь изменены все боссы, кроме местера Х. (и джета, но технически он не босс).
У каждого нового босса при повторных битвах используется альтернативная паллитра.

Следующий этап - обычные враги, нужно с этим всем делом тщательно разбираться.
perfect_genius:
Не думал просто заплатить реверсеру, чтобы он всё это разобрал как работает и что сделать?
Ogr:

--- Цитата: SUPER_ROBOT от 25 Ноябрь 2019, 12:48:36 ---заплатить
--- Конец цитаты ---
:rofl:
perfect_genius:
Что не так? Дорого берут?
savokgear:
Не думал, даже не знал, что существуют люди, которые этим занимаются на платной основе.
  Да и как водится - денег сейчас нет, без второго монитора сижу. Блок питания сгорел, забрал с собой видеокарту и монитор, последние сбережения слил.
SeregaZ:
сэкономил на блоке питания в свое время? этож фигня важнее чем процессор и видеокарта вместе взятые :) фирменные многоватные брать надо.
savokgear:
Конечно немного не по теме, но вот Исходники всех трёт частей Streets of Rage https://github.com/gsaurus/sor-disassemblies
Может теперь Special Bar из третьей части можно прикрутить во вторую.
Навигация
Главная страница сообщений
Предыдущая страница

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