ErikPshat, не трать время, там правда не на что смотреть...
Да я понимаю, что всё равно перевод никто не будет делать. Слишком много рисованного текста и туева хуча диалогов. Ну просто интересно поковырять внутренности файлов, пока делать нечего.
Сообщение от Scorpeg
Ну вы мне в 2 голоса утверждаете, что там не так, как я написал в описании формата И что кусков 30x30 нет. Вот.
В файле RAW-данные картинки идут блоками по 0x200 (512 байт).
Каждый блок - это одна строка картинки по горизонтали. Например, если RAW-картинка в файле ALBUM00.BIP весит 376832 байта, то, разделив на 512, получаем ровно 736 блоков (вертикальных строк). Riku правильно выложил картинку 512х736.
Да, в картинке действительно идут смещения по горизонтали и по вертикали, получаются квадраты 32х32.
Что если удалить в каждом блоке по 32 байта? Ведь 512-480=32. Тогда ширина картинки будет 480.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
В файле RAW-данные картинки идут блоками по 0x200 (512 байт).
Каждый блок - это одна строка картинки по горизонтали. Например, если RAW-картинка в файле ALBUM00.BIP весит 376832 байта, то, разделив на 512, получаем ровно 736 блоков (вертикальных строк). Riku правильно выложил картинку 512х736.
Да, в картинке действительно идут смещения по горизонтали и по вертикали, получаются квадраты 32х32.
Что если удалить в каждом блоке по 32 байта? Ведь 512-480=32. Тогда ширина картинки будет 480.
Черт, я по-китайски говорю чтоли? Я тебе ровно так же и говорю, что если в каждом блоке 32x32 убрать по 2 пикселя справа и 2 снизу - картинка будет выглядеть нормально, а не перекособоченной зазубренной хз чем - и именно так она выглядит на PSP, наверное и выводится тоже так же. Там же в формате написано правильно разрешение картинки, посмотри. Я это третий раз пишу, между прочим. 16 блоков * 2 пикселя = 32 как раз. Нафига я вообще писал сообщение про формат - вообще непонятно. Никто не читает, зато критикуют.
Scorpeg добавил 02.02.2015 в 00:19
Сообщение от riku.kh3
ErikPshat, а нет какого-нибудь простого способа в игре кнопки O/X местами поменять? Ну чтобы выбор не ноликом был в игре, а крестиком (я над похожей игрой в свободное время работаю, тучу текста уже вставил).
А что за игра? Любопытно.
Кстати! Есть предложение к ErikPshat. Раз уж ты всё равно считай уже всё про игру знаешь - так вот практически ровно тот же движок у Never7 и Remember11. Может займешься Never7? Адаптируем туда английский текст хотя бы. Порадуем общественность, да и охват явно больше, чем любителей новелл на русском.
Последний раз редактировалось Scorpeg; 02.02.2015 в 00:32.
Причина: добавил, подумав
Черт, я по-китайски говорю чтоли? Я тебе ровно так же и говорю, что если в каждом блоке 32x32 убрать по 2 пикселя справа и 2 снизу - картинка будет выглядеть нормально
Неверно, кстати)
А если правильно все сделать, то вот как должна выглядеть:
А если правильно все сделать, то вот как должна выглядеть:
Ух ты, как ты это сделал? Единственное, что я заметил, так это размер 480х690 32 бит (с прозрачностью)
И каким образом получается цветность, потому что мой фотошоп никакими настройками не выводит палитру.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Да я не против поковыряться. Может смогу чем-то помочь, вернее всем миром. Только вот портировать перевод - мне не нравится, слишком протяженная и монотонная работа. Это уже к кому-нибудь другому.
Окай, тогда инструменты надо сделать. Например экспорт всех сообщений в XML и импорт их назад. Вставлять перевод не надо, попробуем метод, как ruki писал.
Scorpeg добавил 02.02.2015 в 09:28
Сообщение от riku.kh3
Неверно, кстати)
Хм. Значит я не так понял, бывает. И как верно?
Последний раз редактировалось Scorpeg; 02.02.2015 в 09:42.
Причина: добавил, подумав
ErikPshat, а нет какого-нибудь простого способа в игре кнопки O/X местами поменять? Ну чтобы выбор не ноликом был в игре, а крестиком (я над похожей игрой в свободное время работаю, тучу текста уже вставил).
Они должны находиться рядышком, нужно их искать и менять. 00200000, 00400000.
Это в ELF'е все подряд перебирать-заменять пробовать, я так понял? '00400000' у моего там встречается 55 раз, а '00200000' аж 186) Может как-нибудь упростить себе поиск можно?
Это в ELF'е все подряд перебирать-заменять пробовать, я так понял?
Ну да, в EBOOT.BIN. Проще даже не знаю как, разве что дизассемблером пройтись Обычно кнопки в исходниках идут друг за другом, поэтому эти 2 кода должны находиться рядышком, буквально через 1 смещение.
Идёт код кнопок 4 байта, следом идентификатор 4 байта, опять код кнопки 4 байта, следом идентификатор.
Например: 00400000BD27FFFF00200000BD27FFFF
Сообщение от Scorpeg
Кстати! Есть предложение к ErikPshat. Раз уж ты всё равно считай уже всё про игру знаешь - так вот практически ровно тот же движок у Never7 и Remember11. Может займешься Never7? Адаптируем туда английский текст хотя бы. Порадуем общественность, да и охват явно больше, чем любителей новелл на русском.
Да я не против поковыряться. Может смогу чем-то помочь, вернее всем миром. Только вот портировать перевод - мне не нравится, слишком протяженная и монотонная работа. Это уже к кому-нибудь другому.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 04.02.2015 в 12:37.
Понятно, я именно это и имел ввиду, когда говорил про скип 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 и наоборот. Но это неточно, я не копал эту процедуру. Хотя чисто если бряки поставить и менять - работает. Могу скомпилировать похаченную версию, если кто-нибудь более интересный план не предложит.
Последний раз редактировалось Scorpeg; 03.02.2015 в 19:32.
Причина: добавил, подумав
Scorpeg, я в ассамблере ноль, для меня все это лес дремучий. Если кто поможет - буду рад, конечно, но в противном случае как есть придется оставить. А так все полным ходом идет, сегодня с видео разобрался вон) http://rghost.net/8mz5vR8JC
Scorpeg, я в ассамблере ноль, для меня все это лес дремучий. Если кто поможет - буду рад, конечно, но в противном случае как есть придется оставить.
Да и не надо знать. Всё логически исчисляется. Если тебе нужно просчитать дизассемблерный код, нужно знать размер заголовка ELF-файла, который записан по спецификации в позиции 0х38, и который ессно отсекается и в коде программы не учитывается. Например, у обычных PRX заголовок ELF имеет размер 0х60, а у Ever17 заголовок имеет размер 0хA0 (160 байт), поэтому нужно учитывать этот размер.
Если имеем такой код
Значит в pos_08872D28 прибавляем отсечённый заголовок 0хA0, получаем позицию 08872DC8.
Идём в файле EBOOT.BIN по этому адресу и меняем там 0020 на 0040.
Аналогично pos_08872D40 + A0 = 08872DE0.
ErikPshat, это то понятно, в Ever17 все красиво все работает. Как самому с нуля это провернуть в другой игре для меня лес дремучий. Двухбайтное значение а-ля '0040' тут уже тупым перебором не найдешь
Сообщение от ErikPshat
Нашел ещё русификатор на PC версию
Так да, я его и вставляю.. вставил уже все что было можно, вернее сказать. Отформатировать, переносы слов расставить и недостающие куски доперевести осталось.
А что значит с видео разобрался? А то мне тоже надо по идее редактировать pmf будет.
Да хрень там полная была с вступительным видео.. то что в PC версии на движке игры - они сделали в виде видео( Субтитры на полэкрана на полупрозрачном фоне там вшиты, так что пришлось сегодня поломать голову как подступиться
Сообщение от Scorpeg
По поводу в ассемблере ноль. У тебя игра как в исо собирается? Там нет всякой фигни типа привязки к секторам? Можно просто mkisofs и всё?
Да, проверок нет, UMDGen'ом пока пересобираю.. хотя если бы и были, с этим то, уж думаю, бы справился.
Ну я просто собираю с декриптованным EBOOT'ом один раз, и потом напрямую в HEX-редакторе с ISO работаю в диапазоне где этот самый EBOOT лежит. Изменения мгновенно вносятся, ничего не надо каждый раз пересобирать - заменил что надо, нажал сейв, эмуль резетнул и готово, на все 5 сек уходит.
Ээээ... Мне как бы отдельную процедуру надо скомпилировать, чтобы проверить этот хитрый план, про который я говорил. Побайтово команды в обратном порядке вообще не радует вводить, да и бред же, когда есть ассемблер. Опять же как ты там заменяешь в хекс редакторе упакованные архивы мне тоже непонятно.
Хотя подождем, мож у Erik или Yoti есть более интересные предложения? Я ассемблер на мипсах увидел 3-4 недели тому назад всего и даже не собирался изучать, а из команд знаю 2-3 штуки
Но кстати я хз как можно локализовать нормально например Персону, не умея хачить код. Даже в этой древней Ever17 и то пришлось немало хаков внедрить, я пару дней копал.