Patches/sandbox: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
m (→‎custom_render_plugin.rco remove delay: purpose of the tests explained)
Line 147: Line 147:
* [https://www.mirrorcreator.com/files/1LZBCHIM/custom_render_plugin.rco_links original unpatched] 4.00-4.26 {{MD5|9764a4790a360c0769359de8741a55ae}}
* [https://www.mirrorcreator.com/files/1LZBCHIM/custom_render_plugin.rco_links original unpatched] 4.00-4.26 {{MD5|9764a4790a360c0769359de8741a55ae}}
* Samples of all tests listed below from 1 up to 13 (for firmwares 4.50-4.75) https://www.sendspace.com/file/zxp3va
* Samples of all tests listed below from 1 up to 13 (for firmwares 4.50-4.75) https://www.sendspace.com/file/zxp3va
*Incompatibility notes
**There are graphic glitches in all the tests marked as working when using them with the official coldboot.raf and a dynamic theme applyed in XMB
**The reason why this happens is because by reducing the boot time the xmb is displayed earlly, the result is the coldboot.raf is displyed over XMB. Dynamic themes uses a .raf for the background, this means there are 2 .raf animations running together and unexpected things can happen (like calculations of mathematical operations out of range, etc... that could cause glitches and a crash)
*Tests purposes
**Test 1 replaces the delay's and duration's by 0. After applying the patch the resulting file is the most closer to official code (minimal patched data, safer, more stable)
**The purpose of the other tests is to simplify the code to make it more efficient and minimal posible
**Test 2 up to 9 are all the combinations that initially was worthy to try to understand wich lines was criticall... after 6 it was broken (because the line where is specifyed the ShowGUI was not present)
**Test 10 uses the ShowGUI + Finished
**Test 11 uses only ShowGUI. It displays some kind of error in the position of the PS3 logo (belongs to the coldboot.raf animation)
**Test 12 and 13 was the last test to identify if what needs to be patched is the tag anim_coldboot.... or anim_coldboot2 (note in all the previous tests was patched both)
**Test 13 is based on test 10, but only patches coldboot2 (coldboot2 is used in new firmwares... the other patch to coldboot was not needed)
**The winners seems to be test 1 (for minimal changes) and test 13 (for minimal code)


=== set <code><Delay time="0" /></code> and <code>duration="0"</code> (patchtest 1) ===
=== set <code><Delay time="0" /></code> and <code>duration="0"</code> (patchtest 1) ===
Line 324: Line 338:


==== Keep ShowGUI but remove Lock (patchtest 10) ====
==== Keep ShowGUI but remove Lock (patchtest 10) ====
<span style="background:#bfd; color:black;">(working, gfx corruptions when dynamic theme is used)</span>
<span style="background:#bfd; color:black;">(working)</span>


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">

Revision as of 03:26, 20 June 2015

disable wait for coldboot view sleep

CEX + SHOP + DEX + DECR

 set search  "\x88\x1D\x00\x06\x3C\x60\x00"
 set replace "\x38\x00\x00\x01\x3C\x60\x00"

GEX/Arcade

N/A

Offsets

vsh.elf 4.00 4.01 4.10 4.11 4.20 4.21 4.23 4.25 4.26 4.30 4.31 4.40 4.41 4.45 4.46 4.50 4.55 4.60 4.65 4.66 4.70 4.75
 CEX  0xBEA98 - 0xBEA88 0xBEABC 0xBF1DC 0xBF1DC - 0xBF1E4 - 0xBF4E4 0xBF4E4 0xBF4E4 0xBF4E4 0xBF4E4 0xBF4E4 - - 0xBF3B0 0xBF3B0 0xBF3B0 0xBF30C 0xBF30C
 SEX  0xBED04 - 0xBECF4 0xBED28 0xBF44C 0xBF44C 0xBF44C - 0xBF454 - 0xBF754 0xBF6E8 0xBF6E8 0xBF6E8 0xBF6E8 - 0xBF5F4 0xBF5A4 - 0xBF5A4 0xBF500 0xBF500
 DEX  0xC3AA8 40xC3AA8 0xC3A98 0xC3ACC 0xC41D4 0xC41D4 - 0xC41EC - 0xC44EC - - - - - 0xC43D4 0xC43F0 0xC43B0 - 0xC43B0 -
 DECR  0xC3F58 - - - - - - - - - - - - - - 0xC5110 - - - - -


disable load of coldboot on boot (does not work) v1

(does not work)

CEX + SHOP + DEX + DECR

 set search  "\x00\x00\x00\x34\x00\x00\x05\xF4"
 set replace "\x00\x00\x00\x34\xFF\xFF\xFF\x88"

Offsets

custom_render_plugin.prx 4.00 4.01 4.10 4.11 4.20 4.21 4.23 4.25 4.26 4.30 4.31 4.40 4.41 4.45 4.46 4.50 4.55 4.60 4.65 4.66 4.70 4.75
 CEX  - - - - - - - - - - - - - - - - - - - - - -
 SEX  - - - - - - - - - - - - - - - - - - - - - -
 DEX  - - - - - - - - - - - - - - - - - - - - - -
 DECR  - - - - - - - - - - - - - - - - - - - - - -

disable load of coldboot on boot (does not work) v2

(does not work)

CEX + SHOP + DEX + DECR

 set search  "\x40\x9E\x00\x14\x38\x60\x00\x00\x38\x80\x00\x00"
 set replace "\x48\x00\x00\x14\x38\x60\x00\x00\x38\x80\x00\x00"

Offsets

custom_render_plugin.prx 4.00 4.01 4.10 4.11 4.20 4.21 4.23 4.25 4.26 4.30 4.31 4.40 4.41 4.45 4.46 4.50 4.55 4.60 4.65 4.66 4.70 4.75
 CEX  - - - - - - - - - - - - - - - - - - - - - -
 SEX  - - - - - - - - - - - - - - - - - - - - - -
 DEX  - - - - - - - - - - - - - - - - - - - - - -
 DECR  - - - - - - - - - - - - - - - - - - - - - -

disable load of coldboot on boot (does not work) v3

(does not work)

CEX + SHOP + DEX

 set search  "\x40\x9E\x00\x10\x7F\xC3\xF3\x78\x7B\xE4\x00\x20"
 set replace "\x48\x00\x00\x10\x7F\xC3\xF3\x78\x7B\xE4\x00\x20"

Offsets

custom_render_plugin.prx 4.00 4.01 4.10 4.11 4.20 4.21 4.23 4.25 4.26 4.30 4.31 4.40 4.41 4.45 4.46 4.50 4.55 4.60 4.65 4.66 4.70 4.75
 CEX  - - - - - - - - - - - - - - - - - - - - - -
 SEX  - - - - - - - - - - - - - - - - - - - - - -
 DEX  - - - - - - - - - - - - - - - - - - - - - -
 DECR  - - - - - - - - - - - - - - - - - - - - - -

coldboot_dummy.raf

Experimental

https://www.sendspace.com/file/kkwe5w


VSH experimental double patch

(does not work, does not boot to XMB/GUI)

<mysis> beware it might also create endless wave :~
 set search  "\x81\x3E\x00\x08\x88\x1D\x00\x09"
 set replace "\x48\x00\x00\x34\x88\x1D\x00\x09"
 set search  "\x38\x60\x00\x64\x41\x9E\x00\x0C"
 set replace "\x38\x60\x00\x64\x48\x00\x00\x0C"

Offsets 1

vsh.elf 4.00 4.01 4.10 4.11 4.20 4.21 4.23 4.25 4.26 4.30 4.31 4.40 4.41 4.45 4.46 4.50 4.55 4.60 4.65 4.66 4.70 4.75
 CEX  - - - - - - - - - - - - - - - - - - - - - -
 SEX  - - - - - - - - - - - - - - - - - - - - - -
 DEX  - - - - - - - - - - - - - - - - - - - - - -
 DECR  - - - - - - - - - - - - - - - - - - - - - -

VSH disable boot sound

 set search  "\x38\x60\x00\x01\x68\x00\x00\x01\x38\x80\x00\x00"
 set replace "\x38\x60\x00\x01\x38\x00\x00\x00\x38\x80\x00\x00"

Offsets

vsh.elf 4.00 4.01 4.10 4.11 4.20 4.21 4.23 4.25 4.26 4.30 4.31 4.40 4.41 4.45 4.46 4.50 4.55 4.60 4.65 4.66 4.70 4.75
 CEX  - - - - - - - - - - - - - - - - - - - - - -
 SEX  - - - - - - - - - - - - - - - - - - - - - -
 DEX  - - - - - - - - - - - - - - - - - - - - - -
 DECR  - - - - - - - - - - - - - - - - - - - - - -

custom_render_plugin.rco remove delay

(original sum of delays is 10 seconds)

  • Incompatibility notes
    • There are graphic glitches in all the tests marked as working when using them with the official coldboot.raf and a dynamic theme applyed in XMB
    • The reason why this happens is because by reducing the boot time the xmb is displayed earlly, the result is the coldboot.raf is displyed over XMB. Dynamic themes uses a .raf for the background, this means there are 2 .raf animations running together and unexpected things can happen (like calculations of mathematical operations out of range, etc... that could cause glitches and a crash)
  • Tests purposes
    • Test 1 replaces the delay's and duration's by 0. After applying the patch the resulting file is the most closer to official code (minimal patched data, safer, more stable)
    • The purpose of the other tests is to simplify the code to make it more efficient and minimal posible
    • Test 2 up to 9 are all the combinations that initially was worthy to try to understand wich lines was criticall... after 6 it was broken (because the line where is specifyed the ShowGUI was not present)
    • Test 10 uses the ShowGUI + Finished
    • Test 11 uses only ShowGUI. It displays some kind of error in the position of the PS3 logo (belongs to the coldboot.raf animation)
    • Test 12 and 13 was the last test to identify if what needs to be patched is the tag anim_coldboot.... or anim_coldboot2 (note in all the previous tests was patched both)
    • Test 13 is based on test 10, but only patches coldboot2 (coldboot2 is used in new firmwares... the other patch to coldboot was not needed)
    • The winners seems to be test 1 (for minimal changes) and test 13 (for minimal code)

set <Delay time="0" /> and duration="0" (patchtest 1)

(working)

			<Animation name="anim_coldboot">
				<Lock unknownInt0="0xffffffff" />
				<Fade object="object:scelogo" duration="0" accelMode="0x0" transparency="0" />
				<FireEvent object="event:native:/anim_coldboot_BootBG1" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG" />
				<Delay time="0" />
				<Fade object="object:scelogo" duration="0" accelMode="0x3" transparency="0.8" />
				<Delay time="0" />
				<Fade object="object:scelogo" duration="0" accelMode="0x3" transparency="0" />
				<Delay time="0" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<Lock unknownInt0="0xffffffff" />
				<Fade object="object:scelogo" duration="0" accelMode="0x0" transparency="0" />
				<FireEvent object="event:native:/anim_coldboot_BootBG2" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG2" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Minimalistic patches

(there are several options, which works best/without issues can be proven IRL within seconds)

Patch 2 - Removing all SCE logo animations (patchtest 2)

(working)

			<Animation name="anim_coldboot">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_BootBG1" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_BootBG2" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG2" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<Delay time="0" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Remove also delaytime (patchtest 3)

(working)

			<Animation name="anim_coldboot">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_BootBG1" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_BootBG2" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG2" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Remove also boot-background (patchtest 4)

(working)

			<Animation name="anim_coldboot">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_NormalBG2" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Remove also normal background (patchtest 5)

(working)

			<Animation name="anim_coldboot">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<Lock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Remove also anim ShowGUI (patchtest 6)

(not working, no XMB shown)

			<Animation name="anim_coldboot">
				<Lock unknownInt0="0xffffffff" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<Lock unknownInt0="0xffffffff" />
				<Unlock unknownInt0="0xffffffff" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Remove locking/unlocking also (patchtest 7)

(not working, no XMB shown)

Directly calling <FireEvent object="event:native:/anim_coldboot_Finished" />:

			<Animation name="anim_coldboot">
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Remove Finished instead (patchtest 8)

(not working, no XMB shown)

			<Animation name="anim_coldboot">
				<Lock unknownInt0="0xffffffff" />
				<Unlock unknownInt0="0xffffffff" />
			</Animation>
			<Animation name="anim_coldboot2">
				<Lock unknownInt0="0xffffffff" />
				<Unlock unknownInt0="0xffffffff" />
			</Animation>

Remove everything (patchtest 9)

(not working, no XMB shown)

Deleting everything within the <Animation> tag:

			<Animation name="anim_coldboot">
			</Animation>
			<Animation name="anim_coldboot2">
			</Animation>

Keep ShowGUI but remove Lock (patchtest 10)

(working)

			<Animation name="anim_coldboot">
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>
			<Animation name="anim_coldboot2">
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Keep ShowGUI but also remove Finished (patchtest 11)

(partial working, coldboot + text stuck on screen, XMB shown)

			<Animation name="anim_coldboot">
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
			</Animation>
			<Animation name="anim_coldboot2">
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
			</Animation>

Keep ShowGUI but remove Lock - coldboot only (patchtest 12)

12 results in 17sec boottime
			<Animation name="anim_coldboot">
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>

Keep ShowGUI but remove Lock - coldboot2 only (patchtest 13)

13 results in 13 second boot time
			<Animation name="anim_coldboot2">
				<FireEvent object="event:native:/anim_coldboot_ShowGUI" />
				<FireEvent object="event:native:/anim_coldboot_Finished" />
			</Animation>