Сообщение от Scorpeg
Ну че, мой хитрый план вроде сработал
|
Классный, очень хитрый план. Хотя и так всё работает, но есть только небольшие уточнения...
0x0009D100: 0x0C044F30 '0O..' - jal sceCtrlReadBufferPositive
0x0009D104: 0x34050001 '...4' - li $a1, 0x1
0x0009D108: 0x0A2478E3 '.x$.' - j loc_0891E38C
Тут у тебя прыжок записан по адресу
loc_0891E38C, но в EBOOT.BIN нет такой адресации. Хотя прыжок должен быть на
0x0011A38C.
Но если отнять
0x08804000, что прибавляет эмулятор, тогда всё встаёт на места.
Т.е. 0x11A38C : 4(u32) = 0x0468E3. Нулевой джампер начинается с 0х08, поэтому записываем адрес 0x080468E3 = loc_0011A38C
0x0009D100: 0x0C044F30 '0O..' - jal sceCtrlReadBufferPositive
0x0009D104: 0x34050001 '...4' - li $a1, 0x1
0x0009D108: 0x080468E3 '.h..' - j loc_0011A38C
Ну и дальше в самом "sceUtilitySavedataShutdownStart()" такие же просчёты с прибавкой эмулятора.
0x0A2478F6 = 0x0891E3D8 - 0x08804000 = 0x0011A3D8 : 4 = 0x080468F6
0x0A2478F5 = 0x0891E3D4 - 0x08804000 = 0x0011A3D4 : 4 = 0x080468F5
0x0A228443 = 0x088A110C - 0x08804000 = 0x0009D10C : 4 = 0x08027443