Цитата:
Таким образом мы убираем исривление пока только по вертикали. Но есть ещё горизонтальные смещённые линии. Поэтому нужно убирать ещё каждые 32 блока по 2 блока, первый и последний, если учесть, что один блок - теперь уже 480 байт - одна горизонтальная линия. Тогда должно быть всё выровнено. ИМХО. Цитата:
Но я больше склоняюсь, что используется u16, как привёл пример Scorpeg. |
У него в игре вообще какой-то адский изврат используется, я вообще не воткнул, как оно работает. Какие-то множественный шифты с ксорками, и в итоге анализатор этого всего выставляет в нужное место раскодированное значение. Сам скачай с нитроромов например, посмотри, я адрес написал с опросом клавиш. А то я в этих ассемблерах шарю на уровне "могу поменять левое с правым и посмотреть что будет".
|
Цитата:
Если имеем такой код Код:
pos_08872D28: Идём в файле EBOOT.BIN по этому адресу и меняем там 0020 на 0040. Аналогично pos_08872D40 + A0 = 08872DE0. Цитата:
|
Эээ... Какая еще позиция 8872DC8 :) Программа начинается с 8804000, а не с нуля.
|
Цитата:
Если ты используешь другой виндовый дизассемблер, например JPSP, тогда у тебя адресация конечно может начинаться с другого места. Прога обычно указывает в начале адресацию первого байта. Щас скачаю, там посмотрим. Цитата:
Нашел ещё русификатор на PC версию: http://enthusiasts-ts.ucoz.ru/load/s..._v1_0/5-1-0-23 (взято отсюда) |
ErikPshat, это то понятно, в Ever17 все красиво все работает. Как самому с нуля это провернуть в другой игре для меня лес дремучий. :scratch_one-s_head: Двухбайтное значение а-ля '0040' тут уже тупым перебором не найдешь
Цитата:
|
Erik, Мды. Ликбез короче. От нуба (меня) для профи (тебя).
ELF это сложная конструкция. Хедер там статический. А то, что ты посчитал хедером - не хедер, а таблица оффсетов программы. Код:
ELF entry point is 0x108 Scorpeg добавил 04.02.2015 в 03:21 Цитата:
--------------- Чем покадрово редактировать pmf, чтобы потом аудио не убежало? |
Цитата:
Цитата:
|
Вложений: 1
Цитата:
Не поленись и посмотри. Открой декриптованный EBOOT.BIN(BOOT.BIN) в Hex Workshop, открой мой HBK и увидишь все позиции и смещения с описаниями. Если ты используешь декомпилятор JPCSP, то конечно тебе не нужно прибавлять A0, т.к. он ведёт отсчёт от виндовых смещений. Обычно в Винде идёт адресация памяти в экзешниках от 0х4000, но не факт, тут ещё прибавки памяти самой сторонней программы, через которую открывается другая программа. Собсно декомпилятор сам показывает, откуда идёт отсчёт. Цитата:
|
Ever17
Вложений: 1
Цитата:
Вот твой код Вот мой код (PRXTool v1.1) Теперь разберём мой код... Код:
0x0006EC5C: 0x34420001 '..B4' - ori $v0, $v0, 0x1 - кнопка "SELECT" Цитата:
Вложение 10638 |
Не, ori это в Ever17. И там я проверил, у меня работает (я ж написал про это).
А в этой Sharin вообще хитрейший план, как я тут написал: https://www.pspx.ru/forum/showpost.ph...1&postcount=67 А те данные что ты нашел - вообще непонятно что. Как я уже говорил, он туда никогда не попадает, значит это 90% что-то левое. |
Цитата:
|
В Ever17 вообще как по учебнику :) А у тебя ровно так же - одна процедура на всех, не переживай. Быть бы мне еще поопытней, чтобы код раскурить без хаков - вообще была бы радость. Но ни опыта ни времени нет :( Поэтому если Erik ничего не придумает - сделаю хак на хаке в какую-нибудь текстовую область eboot и посмотрим, взлетит ли.
Вообще тут Yoti какой-то план тебе в личку хотел предложить. Есть кстати еще более хитрый план - написать обертку, которая будет делать свап кнопок и сделать хук на вызов sceCtrlRead. Только я под PSP никогда ничего не писал, и вот это для меня точно совсем темный лес. Но чисто теоретически это должно работать. |
Цитата:
|
Как не используется? Есть же в списке функций.
|
Цитата:
|
Не, эмуль ничего не грузит. Вызов лежит по адресу 088107D4 (ну или если прямо в eboot в хекс-редакторе смотреть, то по смещению C874).
Код:
jal zz_sceImposeSetLanguageMode |
Не похоже, тогда, чтобы она на что-то влияла. Если занулить ничего не меняется.
|
riku.kh3, ну она есть в ибуте. Вот она вся функция:
Код:
; Data ref 0x00115130 "Total free memory 0x%08X.\nMax free memory 0x%08X.\n" Код:
; Subroutine sceImposeSetLanguageMode - Address 0x00114058 |
А чего должно меняться, если по умолчанию японская раскладка всунута и язык?
Я думаю 0 у японского языка. Нам зачем вообще японский? Английский надо. И где параметры передаются? По стеку же поди. |
Если в файле не находятся коды кнопок (скорее они завуалированы), то вполне возможно, что игра использует языковые нормы. Если выставлено на японию, то и кнопки будут браться в соответствии с японской раскладкой.
Можно попробовать наобум поменять региональность. Возможно япония - это 0х1, а россия 0х8 Код:
0x0000C7E0: 0x3C050001 '...<' - lui $a1, 0x1 |
http://bbs.blacklabel-translations.c...?tid=35&pid=84
Не факт, короче, что в самой игре используется, скорее в HOME-менюшке только. |
Хотя проверил, не канает.
Тогда получается, что нужно здесь перед и после сменить регистр $zr (zero) на 1. Код:
0x0000C7D0: 0x00002025 '% ..' - move $a0, $zr А-ха-ха :D, при нажатии на кнопку :home: раньше на японском предлагалось выйти по кнопке :circle: А теперь написано по-русски "Выйти из игры" - "Да - Нет" и выходит по :cross: Но в самой игре кнопки так и остались. |
ErikPshat, выпиши, пожалуйста, какие там точно оффсеты в EBOOT'е поменять, пригодится, однозначно. У меня просто самой PSP нет, даже не проверить что там по нажатию HOME выскакивает. Не то может чего поменяю и даже не пойму получилось или нет :)
|
Может нужно выполнить ещё 2-ой шаг инструкции:
Цитата:
Код:
0x0000C7DC: 0x3C040011 '...<' - lui $a0, 0x11 Цитата:
Код:
0x0000C7D0: 0x00002025 '% ..' - move $a0, $zr
|
Короче для игры таки придётся какой-то хитрый план реализовывать. Кто раскурит процедуру опроса кнопок для riku? :) Это ерунда с языком влияет только на экран выхода.
|
ErikPshat,
Цитата:
|
riku.kh3,
Цитата:
|
ErikPshat,
|
Вложений: 1
|
Может помочь, осталось только блин теперь скачать эту корпсе парти :) А еще проще скачать японскую и английскую корпсы и сравнить.
|
У меня обе японская и английская. В японской Corpse Party там все точно так же, как и в Sharin no Kuni, можно сразу с ней сравнивать.
|
Ну у тебя текст, а мне бы пощупать.
Из твоих данных понятно, что они заменили: Код:
0x000D2AA0: 0x9605000A '....' - lhu $a1, 10($s0) Код:
loc_000B3664: |
Совсем не поможет, значит? :scratch_one-s_head:
|
Ну надо скачать эту корпсе парти, посмотреть. Качается с нитроромов, осталось 16 часов :)
Но эти изменения мне напоминают просто включение подсветки, если долго ничего не нажимаешь. Вот скачаю и точно скажу. Ну или сам всё занули, чтобы стало как в японской версии - если не начнет работать как японская, значит это не оно. |
Вложений: 1
Похоже с кнопками труба. Читать массивы асма замучаешься, но при сильном желании можно :)
Что могу ещё предложить, так это подписать EBOOT.BIN оригинальной родной подписью (во вложении) Ложим декриптованный EBOOT.prx, запускаем батник, получаем подписанный EBOOT.BIN |
А что это дает?
Короче скачалась игра, эти изменения - это не оно. Если их занулить и сделать процедуру как в японской версии - ничего не меняется. Где-то в проверке считанных данных это всё устанавливается, в общем. А не в читалке (что в принципе логично). Это просто в Ever17 была тупая читалка, где можно было другое значение легко подсунуть. А тут приходит сразу битмаска. В принципе есть мысль, взять в j ra воткнуть j моя процедура, а там в процедуре уже сделать анализатор - если нажали кружок - выключаем бит кружка и включаем бит крестика и наоборот. Блин, вот почему дебаггер не может мне в определенном диапазоне указать, какие ячейки памяти менялись во время процедуры :( Логирование же наше всё. |
Цитата:
Чтобы никто не догадался, что кто-то там поковырялся :) Это хреново, что дебаггер не отлавливает нажатия клавиш. Может они в SYSTEM.CFG находятся? Тут ещё нарыл несколько ссылок, думаю вы это всё давно видели |
Заметка для меня:
e_ehsize + (e_phnum * e_phentsize) + (e_shnum * e_shentsize) |
Yoti, могу тебе скрипт дать на php, который расширяет ELF-файлы и вставляет новые секции (иначе зачем тебе размеры хедеров?). Я правда только для Ever17 его тестировал. И он говнокод :) И я его решил не использовать в финальной версии, а досунуть свой код после шрифта просто. Он же всегда в памяти.
Erik, ну я все ссылки видел по Ever17. Как бы я с dsp (переводчик Ever17 и автор AE) общался как раз по поводу его перевода. Scorpeg добавил 05.02.2015 в 12:11 Цитата:
Scorpeg добавил 05.02.2015 в 12:32 Короче, план такой. По адресу 088A1108 (сразу через 1 инструкцию после jal zz_sceCtrlReadBufferPositive) встраиваю j XXXX По адресу XXXX размещаю чето типа: Код:
lw a0,0x4(sp) - это в a0 битовая маска нажатых клавиш |
Текущее время: 02:37. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.