Разработка и ромхакинг > Ромхакинг и программирование
Battletoads & Double Dragon - Хакинг и секреты
<< < (10/22) > >>
dekster88:
Ti_,пля не знал, что ропер свеоей воздушкой перебивает удар с кнопки турбо, вообщем немало жжёной глины из штанов вытряхнул пока выстегнул его ;) Злой он, не добрый >:(
feos:
Segaman, я думаю надо это выделить в новую тему, так как вопрос насущный, и мне непонятно, как именно работать с командами, которые ты в ЛС написал.
Надеюсь, найдутся добрые люди и подмогнут, ведь не для себя одного стараюсь.
тока не знаю, самому эту тему щас создать, или модераторы сами, перенеся ветку отсюда.
я там еще выкладок добавлю.
Ti_:

--- Цитата: feos от 02 Апрель 2011, 21:58:03 ---есть ли варианты повлиять на цвета для рр?
просто все сообщество вгмапс вздохнет с облегчением, если получится менять фон внутри генса-рр.

--- Конец цитаты ---
ну я не знаю, попробовать перекомпилировать его с файлом save.cpp от обычного генса; но я этим заниматся не буду, пусть сообщество попросит кого-нить.
а по поводу что там хранится(в сейвах) кроме ОЗу думаю vram+cram+регистры процев.

Добавлено позже:

--- Цитата: dekster88 от 02 Апрель 2011, 23:56:04 ---Ti_,пля не знал, что ропер свеоей воздушкой перебивает удар с кнопки турбо, вообщем немало жжёной глины из штанов вытряхнул пока выстегнул его ;) Злой он, не добрый >:(

--- Конец цитаты ---
Ну а кто знал? я его не менял), как мне сказали ропер самый сильный в сеговской версии, а в снес самый легкий.
r57shell:

--- Цитата: feos от 02 Апрель 2011, 21:58:03 ---один разраб с тасвидеос впрочем сказал, что луа не сможет влиять на этот регистр.

--- Конец цитаты ---
Правильно. Пока в Gens-rr в Lua есть только:
vdp.readcell
vdp.writecell
vdp.readpalette
vdp.writepalette
и
memory.getregister
memory.setregister
которые только для M68k.
Теперь на счёт сэйвов:
Исходники к gens-rr открыты, берёшь да и смотришь как и где они сохраняют регистры vdp, а именно
1) в сэйве есть номер версии сэйва :)   Data[0x50];
2) for(i = 0; i < 24; i++) Set_VDP_Reg(i, Data[0xFA + i]);

Объясняю что значит...
1) Data - массивчик сэйва
2) 0x50 - 0x значит что HEX
3) Data[offset] = байту по адресу offset.
4) for - цикл
5) Set_VDP_Reg функция установки регистра.
короче регистры VDP похоже по адресу 0xFA.
Если этого ответа не достаточно, то увы, спросили регистры VDP - вот я и ответил  :crazy:.

Как нашел:
Кэп мне подсказал что надо искать в save.cpp;
а потом догадался что в save.cpp->Load_State->Load_State_From_Buffer->Import_Genesis.
а там собсно всё что надо.
dekster88:
r57shell,мне бы в раю после смерти такой вопрос задали бы o_0 да уж действительно зачет :D
Ti_:

--- Цитата: Segaman от 02 Апрель 2011, 23:54:55 ---Хак скачаю прям щас и затестю на гофере (ололо)
Спасиб большое за хак, очень рад, что бт наконецто хакнули по самые сардаукары. ХЫ-ХЫ! XD

--- Конец цитаты ---
долго тестим, чем дело кончилось?  :D (либо у меня на форуме время криво показывает   o_0 )
Roket:

--- Цитата ---пля не знал, что ропер свеоей воздушкой перебивает удар с кнопки турбо, вообщем немало жжёной глины из штанов вытряхнул пока выстегнул его Подмигивающий Злой он, не добрый Злой
--- Конец цитаты ---
Не, это просто его таким сделали сильным. Хакингство здесь не причём.
feos:
r57shell, в save.cpp я эту команду щас нашел, но как так переправить рекординговый сейв, чтобы в нем изменился фон - так и не понял. ибо в игровом программировании ноль.
Фон имеется в виду тот, который остается при выключении ВСЕХ трех слоев (canvas). он дефолтно черный.
в Gens KMod modifications for mapping он регулируется галочкой с черного на розовый. с фсеухом тем же совсем просто - залез в конфиг и поменял значение gNoBGFillColor
а с сегой приходится поковыряться.
я бы и был доволен указанным модом, но там глючат мувики, при проигрывании с отключенными слоями спрайтов и параллакса идет десинхрон, да и перезапись невозможна.

вот что мне написал Сегамен по этой теме:


--- Цитата ---Значит берёшь код чтения контроллера, встраиваешь туда сыль на твой код, а в своём коде прописываешь запись цвета в ту палитру, в которой прозрачный цвет юзается фоновым. Адрес сгенерировать мона моей прогой Gens Vaideo.
Запрос выйдет примерно такой:
move.l #$x000xxxx,($C00004).l
move.w #$color,($C00000).l
rts
где x - адрес в памяти палитры,
а color - твой цвет.
Можно кстати сделать хитрее. Ищешь в оперативе палитру и её заменяешь, а там она уже сама загрузится.
--- Конец цитаты ---


--- Цитата ---Возьми Gens KMod, сохрани в нём палитру. Затем файл открой, поменяй местами каждые 2 байта. Т.е. 2й с1м, 4й с3м и т.д. И вот тебе и палитра. Ищи её уже в рам
--- Конец цитаты ---

я опять же, ничего не понял  :wall:


--- Цитата: Ti_ ---попробовать перекомпилировать его с файлом save.cpp от обычного генса
--- Конец цитаты ---
а может ререкординг перекомпилировать с добавлением того переключения цвета задника, как в Gens KMod modifications for mapping? сорс его тоже имеется.
r57shell:
Итак, а теперь рассказываю в чём ты пень.
Дело в том что 7-й регистр VDP это номер цвета в палитре, которым заполнять фон.
ключевое "в палитре".
То есть этот 7-й байт от 0xFA это НОМЕР.
а раз номер то???? вывод???? включи мозги. То твой цвет которым ты заполняешь фон - должен быть в палитре!
Вывод такой: нужно скрипт который заменяет цвет под этим номером - в фиолетовый.
Увы номер этого цвета из регистра не выудишь, но если ты знаешь номер из вне... Например если ты знаешь что он всегда равен нулю, то просто меняешь цвет 0 на фиолетовый, а такой скрипт элементарен.
Нужно before frame прочитать палитру, забить первый цвет в фиолетовый, и обратно записать.
vdp.readpalette
vdp.writepalette
увы, мне лень.
Не сегодня точно.
Попроси того чувака который про Lua заикался.
Segaman:
Хак ништяк. Погамал на гофере. На 2м сьело континиум и на 3м 2конти. Ропер своей тупостью убивает. Очень понравилась чёрная баба, особенно одна там сверепая, жуть, какая была. Улыбнула ворона вылетевшая из лифта. Ещё понравилась пушка с палитрой от синей бабы.
Кстати надумал, каг лаги в игру вставить. Тупо паузой вешать игру и всё, но так чтоб музьё жить оставалось. Кста звук драв я мог бы на 68к замутить, с большим количеством каналов, но мешает 43 дня до дембеля. Так что видать я вам пока не помошник. Очень хочю помочь.
В 4-м можно заменить некоторые метеориты летающими тарелками. Было б весело. Кстати попробуй обьекты с 2х мерных левелав ткнуть в 3х мерные и наоборот. А ещё босов смешать. и посреди игры попробуй панаставить.

Щас ещё рас сыгранул. На 3м уровне после 1го спуска если чёрную бабу за край экрана ударить, то она там несможет допрыгнуть обратно и так там и останеца. Сделай рестарт левла скажем при нажатии а+б+ц
feos:
По поводу звуков ударов и лага от них прошу заметить, что звук при коронном ударе один, при ударе ногой дракона в прыжке - другой, менее лаговый. Есть еще удар палкой и еще какойто, не помню откуда он.
Прикрепляю рипнутые семплы.
r57shell:

--- Код: ---gens.registerbefore(function(address,size)
-- let's draw something at the mouse cursor too for the heck of it:
local p,t=vdp.readpalette(1,1);
local c=pal.getcolor(t[1],1);
c.A=255;
c.B=255;
c.G=0;
c.R=255;
pal.setcolor(t[1],1,c);
vdp.writepalette(1,t[1]);
end)
--- Конец кода ---
feos:
r57shell, мою благодарность я даже не в силе выразить.  :'(
спасибо!!!
r57shell:
 :lol: магические 10 строчек.
И не такое можно на Lua фигачить.
Я в свой мод Gens-rr хочу добавить в Lua Script функцию вызова окошка отладки, чтобы можно было отлаживать через луа скрипт, будет просто нечто. Брейкпоинты по функции, крута же.
Segaman:
Тай, када продолжение хака? Мой гофер некаг не дождёца. Эти 3 левела уже дотёр до дыр. Кстати про ту бабу, што не допрыгивает наврал, где она. Она последняя перед первым спуском, а не после него. Есть мыслишка, када дембельнусь, попробовать замутить игру на 4-х. Благо игроков достаточно. Кстати в моих планах ещё вверху окно повесить. Ато там некрасиво и спрайты ячейки хавают.
Roket:
Да, кстати, может тогда огласить список глюков, чтобы игроки в дальнейшем не могли на них наткнуться ;).

1 уровень- После победы над любым Абобо, если вас убил враг, вы потеряете жизнь, но играть дальше не сможете, так как игрок станет лежать на полу.
2 уровень- На втором подуровне не уходите в лифт пока не разберётесь со вторым гранатометателем, иначе следующий подуровень начнётся без врагов.
3 уровень-встретив в первом подуровне перед спуском последнюю тётку с кнутом ( она спускается по шестерням к вам), не позволяйте ей упасть за экран, старайтесь расправиться с ней в самом низу. Иначе если она упадёт за пределы экрана, то не сможет к вам подойти и вы не сможете продолжать уровень дальше. Также не зажимайте в захват и тут же отпускайте эту и предыдущую тётку в непосредственно близи к шестерням. Иначе враг уедет по шестерне дальше за пределы экрана, откуда не сможет выбраться.

Это пока всё, возможно появятся ещё глюки. ;)
Ti_:
п.3 я в курсе, починю когда уж следующий левел сделаю. (там же ещё и глюк с вороной есть более редкий) ; с абобо глюк легко обойти, просто когда 1загнется ненадо его добавить, пока второго не убили.

Добавлено позже:

--- Цитата: Segaman от 06 Апрель 2011, 12:55:03 ---Тай, када продолжение хака?

--- Конец цитаты ---
сам пока не знаю (как настроение будет   :) )

Добавлено позже:

--- Цитата: Segaman от 06 Апрель 2011, 12:55:03 ---Эти 3 левела уже дотёр до дыр.

--- Конец цитаты ---
2-ем сыграйте. Что интересно будет если 1 зайдет в дверь, а другой нет)  (на тех динамитчиках)

Добавлено позже:

--- Цитата: Segaman от 06 Апрель 2011, 12:55:03 ---Эти 3 левела уже дотёр до дыр.

--- Конец цитаты ---
на 3-3 из стены бонусы доставал?  ^_^
Segaman:
Да доставал. Правда не всегда удаётся. Ты кстати уж подкрути 4-й левел малость. Ато хак будет казаться не полным, если 1 левел будет упущен. Кстати, расскажи о структуре левелаф. Очь интересно, как всё там работает

Добавлено позже:
Попробуй мотоциклы влепить на 1 левил
Ti_:

--- Цитата: Segaman от 07 Апрель 2011, 08:04:26 ---Кстати, расскажи о структуре левелаф. Очь интересно, как всё там работает

--- Конец цитаты ---
Был бы смысл, а то все равно никто ж делать не будет.
Ну если просто ради интереса вкратце могу сказать - в конфигах строчки из 12байт-объекты, между ними натыканы могут быть XXFD XXXX - смена палитр, 00FE -ожидание пред.объектов, 00FF - конец лвл. Объекты - (ID).w, (map).w, (xpos).w, (ypos).w, (zpos).w, (atr1).b, (atr2).b. - ид объекта, позиция левела когда создавать, координаты, atr1-всякие св-ва, atr2-доп.жизни.
feos:
Кто-нибудь может сказать, как в НЕС варианте реализован скроллинг пола во втором уровне? Он же создает эффект не просто двух или более слоев с независимым скроллингом, а именно трехмерности пола! Имеются в виду эти вертикальные полоски.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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