PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Русификация игр и софта для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=190)
-   -   Ищу программера для помощи в модификации PSP-движка (Never7, Ever17, Remember11 и тп) (https://www.pspx.ru/forum/showthread.php?t=105110)

ErikPshat 02.02.2015 00:09

Цитата:

Сообщение от riku.kh3 (Сообщение 1093087)
ErikPshat, не трать время, там правда не на что смотреть...

Да я понимаю, что всё равно перевод никто не будет делать. Слишком много рисованного текста и туева хуча диалогов. Ну просто интересно поковырять внутренности файлов, пока делать нечего.

Цитата:

Сообщение от Scorpeg (Сообщение 1093094)
Ну вы мне в 2 голоса утверждаете, что там не так, как я написал в описании формата :) И что кусков 30x30 нет. Вот.

В файле RAW-данные картинки идут блоками по 0x200 (512 байт).
Каждый блок - это одна строка картинки по горизонтали. Например, если RAW-картинка в файле ALBUM00.BIP весит 376832 байта, то, разделив на 512, получаем ровно 736 блоков (вертикальных строк). Riku правильно выложил картинку 512х736.

Да, в картинке действительно идут смещения по горизонтали и по вертикали, получаются квадраты 32х32.
Что если удалить в каждом блоке по 32 байта? Ведь 512-480=32. Тогда ширина картинки будет 480.

riku.kh3 02.02.2015 00:09

ErikPshat, а нет какого-нибудь простого способа в игре кнопки O/X местами поменять? Ну чтобы выбор не ноликом был в игре, а крестиком :scratch_one-s_head: (я над похожей игрой в свободное время работаю, тучу текста уже вставил).

ErikPshat 02.02.2015 00:15

Цитата:

Сообщение от riku.kh3 (Сообщение 1093120)
кнопки O/X местами поменять?

Думаю используются стандартные команды MIPS https://www.pspx.ru/forum/showthread.php?t=85749
Код:

PSP_CTRL_CIRCLE  => 0x002000
PSP_CTRL_CROSS    => 0x004000

Они должны находиться рядышком, нужно их искать и менять. 00200000, 00400000.

Scorpeg 02.02.2015 00:19

Цитата:

Сообщение от ErikPshat (Сообщение 1093119)
В файле RAW-данные картинки идут блоками по 0x200 (512 байт).
Каждый блок - это одна строка картинки по горизонтали. Например, если RAW-картинка в файле ALBUM00.BIP весит 376832 байта, то, разделив на 512, получаем ровно 736 блоков (вертикальных строк). Riku правильно выложил картинку 512х736.

Да, в картинке действительно идут смещения по горизонтали и по вертикали, получаются квадраты 32х32.
Что если удалить в каждом блоке по 32 байта? Ведь 512-480=32. Тогда ширина картинки будет 480.

Черт, я по-китайски говорю чтоли? :suicide: Я тебе ровно так же и говорю, что если в каждом блоке 32x32 убрать по 2 пикселя справа и 2 снизу - картинка будет выглядеть нормально, а не перекособоченной зазубренной хз чем - и именно так она выглядит на PSP, наверное и выводится тоже так же. Там же в формате написано правильно разрешение картинки, посмотри. Я это третий раз пишу, между прочим. 16 блоков * 2 пикселя = 32 как раз. Нафига я вообще писал сообщение про формат - вообще непонятно. Никто не читает, зато критикуют.

Scorpeg добавил 02.02.2015 в 00:19
Цитата:

Сообщение от riku.kh3 (Сообщение 1093120)
ErikPshat, а нет какого-нибудь простого способа в игре кнопки O/X местами поменять? Ну чтобы выбор не ноликом был в игре, а крестиком :scratch_one-s_head: (я над похожей игрой в свободное время работаю, тучу текста уже вставил).

А что за игра? Любопытно.

Кстати! Есть предложение к ErikPshat. Раз уж ты всё равно считай уже всё про игру знаешь - так вот практически ровно тот же движок у Never7 и Remember11. Может займешься Never7? Адаптируем туда английский текст хотя бы. Порадуем общественность, да и охват явно больше, чем любителей новелл на русском.

riku.kh3 02.02.2015 00:57

Цитата:

Сообщение от ErikPshat (Сообщение 1093121)
Думаю используются стандартные команды MIPS https://www.pspx.ru/forum/showthread.php?t=85749
Код:

PSP_CTRL_CIRCLE  => 0x002000
PSP_CTRL_CROSS    => 0x004000

Они должны находиться рядышком, нужно их искать и менять. 00200000, 00400000.

Это в ELF'е все подряд перебирать-заменять пробовать, я так понял? '00400000' у моего там встречается 55 раз, а '00200000' аж 186) Может как-нибудь упростить себе поиск можно?

Цитата:

Сообщение от Scorpeg (Сообщение 1093122)
А что за игра? Любопытно.

Sharin_no_Kuni_Himawari_no_Shoujo_JPN_PSP-PLAYASiA

ErikPshat 02.02.2015 01:05

Цитата:

Сообщение от riku.kh3 (Сообщение 1093124)
Это в ELF'е все подряд перебирать-заменять пробовать, я так понял?

Ну да, в EBOOT.BIN. Проще даже не знаю как, разве что дизассемблером пройтись Обычно кнопки в исходниках идут друг за другом, поэтому эти 2 кода должны находиться рядышком, буквально через 1 смещение.
Идёт код кнопок 4 байта, следом идентификатор 4 байта, опять код кнопки 4 байта, следом идентификатор.
Например: 00400000BD27FFFF00200000BD27FFFF

Цитата:

Сообщение от Scorpeg (Сообщение 1093122)
Кстати! Есть предложение к ErikPshat. Раз уж ты всё равно считай уже всё про игру знаешь - так вот практически ровно тот же движок у Never7 и Remember11. Может займешься Never7? Адаптируем туда английский текст хотя бы. Порадуем общественность, да и охват явно больше, чем любителей новелл на русском.

Да я не против поковыряться. Может смогу чем-то помочь, вернее всем миром. Только вот портировать перевод - мне не нравится, слишком протяженная и монотонная работа. Это уже к кому-нибудь другому.

riku.kh3 02.02.2015 04:20

Цитата:

Сообщение от Scorpeg (Сообщение 1093122)
Черт, я по-китайски говорю чтоли? :suicide: Я тебе ровно так же и говорю, что если в каждом блоке 32x32 убрать по 2 пикселя справа и 2 снизу - картинка будет выглядеть нормально

Неверно, кстати)

А если правильно все сделать, то вот как должна выглядеть:
Нажмите для увеличения

Scorpeg 02.02.2015 09:28

Цитата:

Сообщение от ErikPshat (Сообщение 1093127)
Да я не против поковыряться. Может смогу чем-то помочь, вернее всем миром. Только вот портировать перевод - мне не нравится, слишком протяженная и монотонная работа. Это уже к кому-нибудь другому.

Окай, тогда инструменты надо сделать. Например экспорт всех сообщений в XML и импорт их назад. Вставлять перевод не надо, попробуем метод, как ruki писал.

Scorpeg добавил 02.02.2015 в 09:28
Цитата:

Сообщение от riku.kh3 (Сообщение 1093135)
Неверно, кстати)

Хм. Значит я не так понял, бывает. И как верно?

Yoti 02.02.2015 09:32

Цитата:

Сообщение от riku.kh3 (Сообщение 1093120)
а нет какого-нибудь простого способа в игре кнопки O/X местами поменять?

Меня пни в личку, если не выйдет. Накопаю дома способ, который в своё время lupus'у кидал.

ErikPshat 03.02.2015 01:05

Цитата:

Сообщение от riku.kh3 (Сообщение 1093135)
А если правильно все сделать, то вот как должна выглядеть:
Нажмите для увеличения

Ух ты, как ты это сделал? Единственное, что я заметил, так это размер 480х690 32 бит (с прозрачностью)
И каким образом получается цветность, потому что мой фотошоп никакими настройками не выводит палитру.

riku.kh3 03.02.2015 02:42

Цитата:

Сообщение от ErikPshat (Сообщение 1093183)
Ух ты, как ты это сделал? Единственное, что я заметил, так это размер 480х690 32 бит (с прозрачностью)
И каким образом получается цветность, потому что мой фотошоп никакими настройками не выводит палитру.

Не, картинка 8бит с 256-цветовой палитрой. Палитра 4-байта на цвет (R+G+B+прозрачность), фотошоп не знаю умеет или нет с такой палитрой работать.

А насчет разрешения - там блоки 30x30 и вокруг каждого паддинг со всех сторон по 1 пикселю, цвет в эту рамку паддинга передается от прилегающих изнутри пикселей так что не очень ее видно, если выделить то выглядит так, короче:
http://s005.radikal.ru/i212/1502/59/a9af04ed2318.png
битмапы линейно читаются, так что все это как бред на практике выглядит) чтобы сконвертировать я просто несколько условий в filestream задал чтобы скипнуть ненужные байты при чтении, но обратный процесс не сильно будет отличаться.

ErikPshat 03.02.2015 02:55

Цитата:

Сообщение от riku.kh3 (Сообщение 1093185)
А насчет разрешения - там блоки 30x30 и вокруг каждого паддинг со всех сторон по 1 пикселю, цвет в эту рамку паддинга передается от прилегающих изнутри пикселей

То есть, я так понял, что, если читать код стрима линейно, то каждые 32 байта нужно отсекать первый и последний байт (пиксель).

riku.kh3 03.02.2015 10:39

Цитата:

Сообщение от ErikPshat (Сообщение 1093186)
То есть, я так понял, что, если читать код стрима линейно, то каждые 32 байта нужно отсекать первый и последний байт (пиксель).

Ага, вроде того. Полоски только еще останутся, 512 байт каждые 16384 или около того.

Кнопки O/X в игре поменять местами так и неполучилось, кстати. :( Все '00400000' в эльфе перебрал, а крестик в игре по прежнему работает(

Scorpeg 03.02.2015 19:08

Понятно, я именно это и имел ввиду, когда говорил про скип 2х пикселей снизу и справа, так-то они конечно квадратом идут вокруг 30x30, просто если сразу убрать рамку вокруг изображения 1пиксель, то можно убирать снизу-справа по 2 пикселя. Я косноязычен, это очевидно.

Ну про цвет я так и сказал. Я кстати просил комманд-лайн тулзу для конверта. ruki, раз уж ты там так и сделал, может скомпилируешь?

По поводу кнопки поменять. Лезешь в дебаггер, ставишь брейкпойнт на sceCtrlReadBufferPositive и смотришь как оно работает. В Ever17 работает так:

Код:

z_un_08872be0:

        addiu        sp,sp,-0x70
        sw        s0,0x60(sp)
        li        a1,0x6
        move        s0,a0
        sw        ra,0x64(sp)
        jal        zz_sceCtrlReadBufferPositive - собственно ты сюда должен вывалиться из дебуггера
        move        a0,sp
---

тут скипнуто

---

pos_08872D28:

        beq        v0,zero,pos_08872D40
        andi        v0,a2,0x4000
        lw        v0,0x4(s0)
        ori        v0,v0,0x2000 - нажали кружок // меняем на 4000 (крестик)
        sw        v0,0x4(s0)
        andi        v0,a2,0x4000

pos_08872D40:

        beq        v0,zero,pos_08872D58
        andi        v0,a2,0x8000
        lw        v0,0x4(s0)
        ori        v0,v0,0x4000 - нажали крестик // меняем на 2000 (кружок)
        sw        v0,0x4(s0)
        andi        v0,a2,0x8000


Собсна элементарно меняем ori v0,v0,0x4000 на ori v0,v0,0x2000 и наоборот - и готово.

Scorpeg добавил 03.02.2015 в 19:08
Посмотрел твою, там чет ваще перемудрили со всем этим. Хитрый план какой-то. Простейший выход вижу внедриться куда-нибудь в 088A14C0 и там проверять, если a1 = 2000 то менять его на 4000 и совать в 0x089AF09C и наоборот. Но это неточно, я не копал эту процедуру. Хотя чисто если бряки поставить и менять - работает. Могу скомпилировать похаченную версию, если кто-нибудь более интересный план не предложит.

riku.kh3 03.02.2015 20:07

Scorpeg, я в ассамблере ноль, для меня все это лес дремучий. :) Если кто поможет - буду рад, конечно, но в противном случае как есть придется оставить. :scratch_one-s_head: А так все полным ходом идет, сегодня с видео разобрался вон)
http://rghost.net/8mz5vR8JC

Scorpeg 03.02.2015 20:41

А что значит с видео разобрался? А то мне тоже надо по идее редактировать pmf будет.

По поводу в ассемблере ноль. У тебя игра как в исо собирается? Там нет всякой фигни типа привязки к секторам? Можно просто mkisofs и всё?

riku.kh3 03.02.2015 20:55

Цитата:

Сообщение от Scorpeg (Сообщение 1093209)
А что значит с видео разобрался? А то мне тоже надо по идее редактировать pmf будет.

Да хрень там полная была с вступительным видео.. то что в PC версии на движке игры - они сделали в виде видео( Субтитры на полэкрана на полупрозрачном фоне там вшиты, так что пришлось сегодня поломать голову как подступиться :)
Цитата:

Сообщение от Scorpeg (Сообщение 1093209)
По поводу в ассемблере ноль. У тебя игра как в исо собирается? Там нет всякой фигни типа привязки к секторам? Можно просто mkisofs и всё?

Да, проверок нет, UMDGen'ом пока пересобираю.. хотя если бы и были, с этим то, уж думаю, бы справился. :scratch_one-s_head:

Scorpeg 03.02.2015 21:06

Да я в плане как мне тестить патчи к твоей этой игре :) **ут еще декриптовать, но это эмуль умеет.

riku.kh3 03.02.2015 21:12

Ну я просто собираю с декриптованным EBOOT'ом один раз, и потом напрямую в HEX-редакторе с ISO работаю в диапазоне где этот самый EBOOT лежит. Изменения мгновенно вносятся, ничего не надо каждый раз пересобирать - заменил что надо, нажал сейв, эмуль резетнул и готово, на все 5 сек уходит. :)

Scorpeg 03.02.2015 21:29

Ээээ... Мне как бы отдельную процедуру надо скомпилировать, чтобы проверить этот хитрый план, про который я говорил. Побайтово команды в обратном порядке вообще не радует вводить, да и бред же, когда есть ассемблер. Опять же как ты там заменяешь в хекс редакторе упакованные архивы мне тоже непонятно.

Хотя подождем, мож у Erik или Yoti есть более интересные предложения? Я ассемблер на мипсах увидел 3-4 недели тому назад всего и даже не собирался изучать, а из команд знаю 2-3 штуки :)

Но кстати я хз как можно локализовать нормально например Персону, не умея хачить код. Даже в этой древней Ever17 и то пришлось немало хаков внедрить, я пару дней копал.


Текущее время: 18:29. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.