Editing Talk:PS2 Emulation
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 243: | Line 243: | ||
scetool --template orig_ps2_netemu.self --sce-type=SELF --compress-data=TRUE --encrypt ps2_netemu.elf ps2_netemu.self | scetool --template orig_ps2_netemu.self --sce-type=SELF --compress-data=TRUE --encrypt ps2_netemu.elf ps2_netemu.self | ||
Remember to delete netemu from flash, then copy new one. Overwriting can fail as there is not enough space on dev_flash. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 07:35, 12 March 2022 (UTC) | Remember to delete netemu from flash, then copy new one. Overwriting can fail as there is not enough space on dev_flash. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 07:35, 12 March 2022 (UTC) | ||
===ps2_netemu command 0x0A=== | |||
You may think this simple command don't keep any secrets. Wrong! :) Command have 2 special cases which can be triggered by setting address to 0x1XXXXXXX or 0x2XXXXXXX. Sadly $ony wouldn't be $ony if they don't mess up something. :/ | |||
* Special case 1 - Write jr ra, li v0, xxxx for selected memory range. Params: u32 start_address, u32 original_op, u16 counter, u16 value for li, v0 xxxx | |||
* Special case 2 - NOP memory at selected range. Params: start address, end address, unused (can be anything, but is required to align config). | |||
Problem: Original opcode validity check is performed before testing config for special cases. Thus making case 2 almost inaccessible.<br> | |||
Solution: We can patch that one line of code by the same 0x0A config. So if we want to nop region from 0x100000 to 0x100080, first we need to patch 0x100000 to 0x100080 opcode. So check will pass, "simple" as that. | |||
===ps2_netemu command 0x0B=== | ===ps2_netemu command 0x0B=== |