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 04.02.2015 01:12

Цитата:

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

Если учесть, что одна полоса в ширину, высотой в 1 пиксель, имеет 512 байт, то убрав по 2 пикселя каждые 32 байта, получим полосу, шириной 480.
Таким образом мы убираем исривление пока только по вертикали. Но есть ещё горизонтальные смещённые линии. Поэтому нужно убирать ещё каждые 32 блока по 2 блока, первый и последний, если учесть, что один блок - теперь уже 480 байт - одна горизонтальная линия. Тогда должно быть всё выровнено. ИМХО.

Цитата:

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

Кстати, не всегда может быть u32(dword) формат 00400000. Вполне возможно, что данные записаны в u16(word), например 0040243C. А если крупные компании, то у них может быть модифицированный SDK, так там могут записать вообще извращённо, либо присвоить этим цифрам свои переменные, например b = 00004000; d = 00002000, таким образом получаем в компилированном коде 0b27100C 0d27100C.
Но я больше склоняюсь, что используется u16, как привёл пример Scorpeg.

Scorpeg 04.02.2015 01:34

У него в игре вообще какой-то адский изврат используется, я вообще не воткнул, как оно работает. Какие-то множественный шифты с ксорками, и в итоге анализатор этого всего выставляет в нужное место раскодированное значение. Сам скачай с нитроромов например, посмотри, я адрес написал с опросом клавиш. А то я в этих ассемблерах шарю на уровне "могу поменять левое с правым и посмотреть что будет".

ErikPshat 04.02.2015 01:59

Цитата:

Сообщение от riku.kh3 (Сообщение 1093208)
Scorpeg, я в ассамблере ноль, для меня все это лес дремучий. :) Если кто поможет - буду рад, конечно, но в противном случае как есть придется оставить.

Да и не надо знать. Всё логически исчисляется. Если тебе нужно просчитать дизассемблерный код, нужно знать размер заголовка ELF-файла, который записан по спецификации в позиции 0х38, и который ессно отсекается и в коде программы не учитывается. Например, у обычных PRX заголовок ELF имеет размер 0х60, а у Ever17 заголовок имеет размер 0хA0 (160 байт), поэтому нужно учитывать этот размер.
Если имеем такой код
Код:

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

Значит в pos_08872D28 прибавляем отсечённый заголовок 0хA0, получаем позицию 08872DC8.
Идём в файле EBOOT.BIN по этому адресу и меняем там 0020 на 0040.
Аналогично pos_08872D40 + A0 = 08872DE0.

Цитата:

Сообщение от riku.kh3 (Сообщение 1093208)
А так все полным ходом идет, сегодня с видео разобрался вон)
http://rghost.net/8mz5vR8JC

Шикарный перевод!!!

Scorpeg 04.02.2015 02:19

Эээ... Какая еще позиция 8872DC8 :) Программа начинается с 8804000, а не с нуля.

ErikPshat 04.02.2015 02:39

Цитата:

Сообщение от Scorpeg (Сообщение 1093237)
Программа начинается с 8804000, а не с нуля.

Эмм, EBOOT.BIN начинается с нуля. И размер заголовка ELF у него 0хA0. Я дебажу через PRXTool.
Если ты используешь другой виндовый дизассемблер, например JPSP, тогда у тебя адресация конечно может начинаться с другого места. Прога обычно указывает в начале адресацию первого байта. Щас скачаю, там посмотрим.

Цитата:

Сообщение от Scorpeg (Сообщение 1093233)
Сам скачай с нитроромов например

Да уж, похоже нигде больше и не найдёшь, все сидеры с торрентов молчат.
Нашел ещё русификатор на PC версию: http://enthusiasts-ts.ucoz.ru/load/s..._v1_0/5-1-0-23 (взято отсюда)

riku.kh3 04.02.2015 03:01

ErikPshat, это то понятно, в Ever17 все красиво все работает. Как самому с нуля это провернуть в другой игре для меня лес дремучий. :scratch_one-s_head: Двухбайтное значение а-ля '0040' тут уже тупым перебором не найдешь
Цитата:

Сообщение от ErikPshat (Сообщение 1093244)
Нашел ещё русификатор на PC версию

Так да, я его и вставляю.. вставил уже все что было можно, вернее сказать. Отформатировать, переносы слов расставить и недостающие куски доперевести осталось.

Scorpeg 04.02.2015 03:21

Erik, Мды. Ликбез короче. От нуба (меня) для профи (тебя).

ELF это сложная конструкция. Хедер там статический. А то, что ты посчитал хедером - не хедер, а таблица оффсетов программы.
Код:

ELF entry point is 0x108
Header size is 0x34

Program header table starts at 0x34
Program header table entry size is 0x20
Number of entries in the program header table: 3

Section header table. starts at 0x19039c
Section header table entry size is 0x28
Section header table names index is 0x25
Number of entries in the section header table: 39

iType: 1 // iOffset: a0 // iVaddr: 0 // iPaddr: ce9f4 // iFilesz: 1279bc // iMemsz: 1279bc // iFlags: 7 // iAlign: 10 //
iType: 1 // iOffset: 127a80 // iVaddr: 127a00 // iPaddr: 0 // iFilesz: 1dbb4 // iMemsz: 14fc14c // iFlags: 6 // iAlign: 80 //
iType: 700000a0 // iOffset: 145640 // iVaddr: 0 // iPaddr: 0 // iFilesz: 4aae0 // iMemsz: 0 // iFlags: 0 // iAlign: 10 //

Программный кусок 1 начинается с оффсета a0. Размер у всего файла EBOOT.BIN 1909B4 байт со всеми-всеми табличками, так что никак не может "получаем позицию 08872DC8", как ты написал, если оно начинается с адреса 0. Вот если программа начинается с адреса 8804000 - тогда да. А если с нуля - тогда 8872D34-8804000+A0=6EDD4 адрес будет. Понятно рассказал или опять китайская грамота?

Scorpeg добавил 04.02.2015 в 03:21
Цитата:

Сообщение от riku.kh3 (Сообщение 1093245)
Так да, я его и вставляю.. вставил уже все что было можно, вернее сказать. Отформатировать, переносы слов расставить и недостающие куски доперевести осталось.

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

---------------

Чем покадрово редактировать pmf, чтобы потом аудио не убежало?

riku.kh3 04.02.2015 03:47

Цитата:

Сообщение от Scorpeg (Сообщение 1093246)
Даешь автопереносы :) Я в Ever17 встроил (типа похвастался, да, хотя вроде уже и говорил где-то), точнее переписал таблицу оригинальных непереносимых глифов и изменил начало строчки (а то пробелы перли в каждой новой строке).

Я хз, если честно, как это сделать, буду прогонять скрипты через прогу, которая будет все высчитывать и вставлять опкоды с переходом строки. Места с нестандартным выводом текста тока еще есть - их придется вручную все проверять :scratch_one-s_head:
Цитата:

Сообщение от Scorpeg (Сообщение 1093246)
Чем покадрово редактировать pmf, чтобы потом аудио не убежало?

Так не pmf редактируй, а в несжатый перегони и с ним уже работай, я в VirtualDub'е делаю, там свободно с фреймами работать - удалять/вставлять куда захочется можно.

ErikPshat 04.02.2015 04:07

Вложений: 1
Цитата:

Сообщение от Scorpeg (Сообщение 1093246)
ELF это сложная конструкция. Хедер там статический. А то, что ты посчитал хедером - не хедер, а таблица оффсетов программы.

Ну ты как-то сложно всё воспринимаешь :) Я же прекрасно знаю формат ELF в PSP. Это не таблица оффсетов, а самый настоящий Хедер, который при исполнении в память отбрасывается и остаётся только программный код, естессна со всеми указателями на смещения. Если интересно, то я тебе скину быстрый набросок структуры ELF в HBK для HexWorkshop: Вложение 10632
Не поленись и посмотри.
Открой декриптованный EBOOT.BIN(BOOT.BIN) в Hex Workshop, открой мой HBK и увидишь все позиции и смещения с описаниями.

Если ты используешь декомпилятор JPCSP, то конечно тебе не нужно прибавлять A0, т.к. он ведёт отсчёт от виндовых смещений. Обычно в Винде идёт адресация памяти в экзешниках от 0х4000, но не факт, тут ещё прибавки памяти самой сторонней программы, через которую открывается другая программа. Собсно декомпилятор сам показывает, откуда идёт отсчёт.

Цитата:

Сообщение от Scorpeg (Сообщение 1093246)
Чем покадрово редактировать pmf, чтобы потом аудио не убежало?

Инструментария предостаточно:
  1. https://www.pspx.ru/forum/showthread.php?t=101184
  2. https://www.pspx.ru/forum/showthread.php?t=103400
  3. https://www.pspx.ru/forum/showthread.php?t=85538

ErikPshat 04.02.2015 05:47

Ever17
 
Вложений: 1
Цитата:

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

Попробую по другому объяснить...
Вот твой код
Код:

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

Вот мой код (PRXTool v1.1)
Код:

; ======================================================
; Subroutine sub_0006EBE0 - Address 0x0006EBE0
sub_0006EBE0:                ; Refs: 0x0006F014
        0x0006EBE0: 0x27BDFF90 '...'' - addiu      $sp, $sp, -112
        0x0006EBE4: 0xAFB00060 '`...' - sw        $s0, 96($sp)
        0x0006EBE8: 0x24050006 '...$' - li        $a1, 6
        0x0006EBEC: 0x00808021 '!...' - move      $s0, $a0
        0x0006EBF0: 0xAFBF0064 'd...' - sw        $ra, 100($sp)
        0x0006EBF4: 0x0C03395E '^9..' - jal        sceCtrlReadBufferPositive  - собственно ты сюда должен вывалиться из дебуггера
        0x0006EBF8: 0x03A02021 '! ..' - move      $a0, $sp

---

тут скипнуто

---

loc_0006EC50:                ; Refs: 0x0006EC30
        0x0006EC50: 0x10400005 '..@.' - beqz      $v0, loc_0006EC68
        0x0006EC54: 0x30C20008 '...0' - andi      $v0, $a2, 0x8
        0x0006EC58: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006EC5C: 0x34420001 '..B4' - ori        $v0, $v0, 0x1
        0x0006EC60: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006EC64: 0x30C20008 '...0' - andi      $v0, $a2, 0x8

loc_0006EC68:                ; Refs: 0x0006EC50
        0x0006EC68: 0x10400005 '..@.' - beqz      $v0, loc_0006EC80
        0x0006EC6C: 0x30C20010 '...0' - andi      $v0, $a2, 0x10
        0x0006EC70: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006EC74: 0x34420008 '..B4' - ori        $v0, $v0, 0x8
        0x0006EC78: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006EC7C: 0x30C20010 '...0' - andi      $v0, $a2, 0x10

loc_0006EC80:                ; Refs: 0x0006EC68
        0x0006EC80: 0x10400005 '..@.' - beqz      $v0, loc_0006EC98
        0x0006EC84: 0x30C20020 ' ..0' - andi      $v0, $a2, 0x20
        0x0006EC88: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006EC8C: 0x34420010 '..B4' - ori        $v0, $v0, 0x10
        0x0006EC90: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006EC94: 0x30C20020 ' ..0' - andi      $v0, $a2, 0x20

loc_0006EC98:                ; Refs: 0x0006EC80
        0x0006EC98: 0x10400005 '..@.' - beqz      $v0, loc_0006ECB0
        0x0006EC9C: 0x30C20040 '@..0' - andi      $v0, $a2, 0x40
        0x0006ECA0: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ECA4: 0x34420020 ' .B4' - ori        $v0, $v0, 0x20
        0x0006ECA8: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ECAC: 0x30C20040 '@..0' - andi      $v0, $a2, 0x40

loc_0006ECB0:                ; Refs: 0x0006EC98
        0x0006ECB0: 0x10400005 '..@.' - beqz      $v0, loc_0006ECC8
        0x0006ECB4: 0x30C20080 '...0' - andi      $v0, $a2, 0x80
        0x0006ECB8: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ECBC: 0x34420040 '@.B4' - ori        $v0, $v0, 0x40
        0x0006ECC0: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ECC4: 0x30C20080 '...0' - andi      $v0, $a2, 0x80

loc_0006ECC8:                ; Refs: 0x0006ECB0
        0x0006ECC8: 0x10400005 '..@.' - beqz      $v0, loc_0006ECE0
        0x0006ECCC: 0x30C20100 '...0' - andi      $v0, $a2, 0x100
        0x0006ECD0: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ECD4: 0x34420080 '..B4' - ori        $v0, $v0, 0x80
        0x0006ECD8: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ECDC: 0x30C20100 '...0' - andi      $v0, $a2, 0x100

loc_0006ECE0:                ; Refs: 0x0006ECC8
        0x0006ECE0: 0x10400005 '..@.' - beqz      $v0, loc_0006ECF8
        0x0006ECE4: 0x30C20200 '...0' - andi      $v0, $a2, 0x200
        0x0006ECE8: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ECEC: 0x34420400 '..B4' - ori        $v0, $v0, 0x400
        0x0006ECF0: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ECF4: 0x30C20200 '...0' - andi      $v0, $a2, 0x200

loc_0006ECF8:                ; Refs: 0x0006ECE0
        0x0006ECF8: 0x10400005 '..@.' - beqz      $v0, loc_0006ED10
        0x0006ECFC: 0x30C21000 '...0' - andi      $v0, $a2, 0x1000
        0x0006ED00: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ED04: 0x34420800 '..B4' - ori        $v0, $v0, 0x800
        0x0006ED08: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ED0C: 0x30C21000 '...0' - andi      $v0, $a2, 0x1000

loc_0006ED10:                ; Refs: 0x0006ECF8
        0x0006ED10: 0x10400005 '..@.' - beqz      $v0, loc_0006ED28
        0x0006ED14: 0x30C22000 '. .0' - andi      $v0, $a2, 0x2000
        0x0006ED18: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ED1C: 0x34421000 '..B4' - ori        $v0, $v0, 0x1000
        0x0006ED20: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ED24: 0x30C22000 '. .0' - andi      $v0, $a2, 0x2000

loc_0006ED28:                ; Refs: 0x0006ED10
        0x0006ED28: 0x10400005 '..@.' - beqz      $v0, loc_0006ED40
        0x0006ED2C: 0x30C24000 '.@.0' - andi      $v0, $a2, 0x4000
        0x0006ED30: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ED34: 0x34422000 '. B4' - ori        $v0, $v0, 0x2000
        0x0006ED38: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ED3C: 0x30C24000 '.@.0' - andi      $v0, $a2, 0x4000

loc_0006ED40:                ; Refs: 0x0006ED28
        0x0006ED40: 0x10400005 '..@.' - beqz      $v0, loc_0006ED58
        0x0006ED44: 0x30C28000 '...0' - andi      $v0, $a2, 0x8000
        0x0006ED48: 0x8E020004 '....' - lw        $v0, 4($s0)
        0x0006ED4C: 0x34424000 '.@B4' - ori        $v0, $v0, 0x4000
        0x0006ED50: 0xAE020004 '....' - sw        $v0, 4($s0)
        0x0006ED54: 0x30C28000 '...0' - andi      $v0, $a2, 0x8000


Теперь разберём мой код...
Код:

0x0006EC5C: 0x34420001 '..B4' - ori        $v0, $v0, 0x1    - кнопка "SELECT"
0x0006EC74: 0x34420008 '..B4' - ori        $v0, $v0, 0x8    - кнопка "START"
0x0006EC8C: 0x34420010 '..B4' - ori        $v0, $v0, 0x10  - кнопка "Вверх"
0x0006ECA4: 0x34420020 ' .B4' - ori        $v0, $v0, 0x20  - кнопка "Вправо"
0x0006ECBC: 0x34420040 '@.B4' - ori        $v0, $v0, 0x40  - кнопка "Вниз"
0x0006ECD4: 0x34420080 '..B4' - ori        $v0, $v0, 0x80  - кнопка "Влево"
0x0006ECEC: 0x34420400 '..B4' - ori        $v0, $v0, 0x400  - ?
0x0006ED04: 0x34420800 '..B4' - ori        $v0, $v0, 0x800  - ?
0x0006ED1C: 0x34421000 '..B4' - ori        $v0, $v0, 0x1000 - кнопка "Треугольник"
0x0006ED34: 0x34422000 '. B4' - ori        $v0, $v0, 0x2000 - кнопка "Круг"
0x0006ED4C: 0x34424000 '.@B4' - ori        $v0, $v0, 0x4000 - кнопка "Крест"

Теперь по поводу смещения в файле EBOOT.BIN (BOOT.BIN), поясню на примере искомой кнопки "Круг" и "Крест":

Цитата:

0x0006ED34: 0x34422000 '. B4' - ori $v0, $v0, 0x2000 - кнопка :circle:
0x0006ED4C: 0x34424000 '.@B4' - ori $v0, $v0, 0x4000 - кнопка :cross:
На первом месте указано смещение (задом наперёд)
  • Смещение: 0x0006ED34 + A0 = 0x0006EDD4
  • Смещение: 0x0006ED4C + A0 = 0x0006EDEC
На втором месте код в этих смещениях: 0x34422000 и 0x34424000, где 0x3442 - идентификатор этой функции.
Вложение 10638

Scorpeg 04.02.2015 11:05

Не, ori это в Ever17. И там я проверил, у меня работает (я ж написал про это).

А в этой Sharin вообще хитрейший план, как я тут написал: https://www.pspx.ru/forum/showpost.ph...1&postcount=67

А те данные что ты нашел - вообще непонятно что. Как я уже говорил, он туда никогда не попадает, значит это 90% что-то левое.

riku.kh3 04.02.2015 11:14

Цитата:

Сообщение от ErikPshat (Сообщение 1093272)
Потома игра большая и там много в каких местах есть входы и выходы, например в опции настроек, в системных сообщениях и т.п., поэтому не может быть код кнопок только в одном месте.

В Ever17 вообще все красиво в этом плане. :) Один раз заменил - и во всей игре, менюшках, диалогах сохранений и т.п. они местами меняются.

Scorpeg 04.02.2015 11:45

В Ever17 вообще как по учебнику :) А у тебя ровно так же - одна процедура на всех, не переживай. Быть бы мне еще поопытней, чтобы код раскурить без хаков - вообще была бы радость. Но ни опыта ни времени нет :( Поэтому если Erik ничего не придумает - сделаю хак на хаке в какую-нибудь текстовую область eboot и посмотрим, взлетит ли.

Вообще тут Yoti какой-то план тебе в личку хотел предложить. Есть кстати еще более хитрый план - написать обертку, которая будет делать свап кнопок и сделать хук на вызов sceCtrlRead. Только я под PSP никогда ничего не писал, и вот это для меня точно совсем темный лес. Но чисто теоретически это должно работать.

riku.kh3 04.02.2015 12:23

Цитата:

Сообщение от Scorpeg (Сообщение 1093278)
В Ever17 вообще как по учебнику :) А у тебя ровно так же - одна процедура на всех, не переживай. Быть бы мне еще поопытней, чтобы код раскурить без хаков - вообще была бы радость. Но ни опыта ни времени нет :( Поэтому если Erik ничего не придумает - сделаю хак на хаке в какую-нибудь текстовую область eboot и посмотрим, взлетит ли.

Вообще тут Yoti какой-то план тебе в личку хотел предложить. Есть кстати еще более хитрый план - написать обертку, которая будет делать свап кнопок и сделать хук на вызов sceCtrlRead. Только я под PSP никогда ничего не писал, и вот это для меня точно совсем темный лес. Но чисто теоретически это должно работать.

Yoti через функцию sceImposeSetLanguageMode предложил попробовать, метод реально универсальный, но не во всех играх работает, тут эта функция не задействована(

Scorpeg 04.02.2015 12:34

Как не используется? Есть же в списке функций.

riku.kh3 04.02.2015 12:36

Цитата:

Сообщение от Scorpeg (Сообщение 1093281)
Как не используется? Есть же в списке функций.

Может эмуль ее грузит? В ибуте NID'а на нее не находится. :scratch_one-s_head:

Scorpeg 04.02.2015 12:58

Не, эмуль ничего не грузит. Вызов лежит по адресу 088107D4 (ну или если прямо в eboot в хекс-редакторе смотреть, то по смещению C874).

Код:

        jal        zz_sceImposeSetLanguageMode

riku.kh3 04.02.2015 13:27

Не похоже, тогда, чтобы она на что-то влияла. Если занулить ничего не меняется.

ErikPshat 04.02.2015 13:41

riku.kh3, ну она есть в ибуте. Вот она вся функция:
Код:

; Data ref 0x00115130 "Total free memory 0x%08X.\nMax free memory 0x%08X.\n"
        0x0000C7CC: 0x24845130 '0Q.$' - addiu      $a0, $a0, 20784
        0x0000C7D0: 0x00002025 '% ..' - move      $a0, $zr
        0x0000C7D4: 0x0C045016 '.P..' - jal        sceImposeSetLanguageMode
        0x0000C7D8: 0x00002825 '%(..' - move      $a1, $zr
        0x0000C7DC: 0x3C040011 '...<' - lui        $a0, 0x11
        0x0000C7E0: 0x3C050001 '...<' - lui        $a1, 0x1
        0x0000C7E4: 0x00003025 '%0..' - move      $a2, $zr

Код:

; Subroutine sceImposeSetLanguageMode - Address 0x00114058
; Imported from sceImpose
sceImposeSetLanguageMode:                ; Refs: 0x0011408C 0x0000C7D4
        0x00114058: 0x03E00008 '....' - jr        $ra
        0x0011405C: 0x00000000 '....' - nop

Только язык японский какой код имеет? Думаю 0х1

Scorpeg 04.02.2015 13:41

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

Я думаю 0 у японского языка. Нам зачем вообще японский? Английский надо. И где параметры передаются? По стеку же поди.


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

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