Сообщение от riku.kh3
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
|
Шикарный перевод!!!