Rick81
Newbie
Karma: +0/-0
Offline
Posts: 4
382.75 points View InventorySend Money to Rick81
|
 |
« Reply #1 on: April 27, 2010, 09:07:27 AM » |
|
I managed to hack the EBOOT.PBP to remove the Low battery/ Disable save state feature and did it in the following way: * Unpacked the EBOOT.PBP by using "PBP Unpacker"
* Disassembled the DATA.PSP using "PSPDASM V0.20 by BOOSTER"
* Located the os9x_lowbat and scePowerIsLowBattery() in the C-code
* PSPDASM showed scePowerIsLowBattery() in plain text in assembler code
* Changed assembler lines (i.e. always setting os9x_lowbat to 0) sw r2,$3b00(r3) ;00016F44[AC623B00,'.;b.'] to sw 0,$3b00(r3) ;00000CC8[AC603B00,'.;@.']
at addresses: 00016F44 00017DD8
and
sw r2,$3b00(r16) ;00000BA4[AE023B00,'.;..'] to sw 0,$3b00(r16) ;00000CC8[AE003B00,'.;@.']
at addresses: 0001D9F4 001266DC 00000BA4
and
(this change was required since in on place the return value from scePowerIsLowBattery was check before storing it in os9x_lowbat, this code always makes the branch, i.e. checks if 0 == 0) beq r2,0,$00000bd8 ;00000BA0[1040000D,'..@.'] to beq 0,0,$00000bd8 ;00000BA0[1000000D,'..@.']
* Since the problem was I couldn't use the PSP compiler, I modified the DATA.PSP with the changes shown above in hex format i.e. 1040000D -> 1000000D. Note that the hexformat is swapped so the change is 0D 00 40 10 -> 0D 00 00 10 at adress 00000BA0 + offset (0x60)
* Packed the DATA.PSP and the other files to EBOOT.PBP
* Copied the the PSP and it did work..
A bit weird that it is easier the hack the machine code then getting a script that should install everything in the PSP toolchain to work, but I solved the problem.
|