Editing User talk:Kozarovv
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 396: | Line 396: | ||
0x73E818 ppc_emitter_clrlwi_0 | 0x73E818 ppc_emitter_clrlwi_0 | ||
0x73E830 ppc_emitter_clrlwi_0_ | 0x73E830 ppc_emitter_clrlwi_0_ | ||
</pre> | </pre> | ||
Line 827: | Line 429: | ||
0x737048 sub_1469AC | 0x737048 sub_1469AC | ||
0x737060 VU_REC_xgkick_146A6C | 0x737060 VU_REC_xgkick_146A6C | ||
</pre> | </pre> | ||
===EE recompiler=== | ===EE recompiler=== | ||
Generally main r5900 recompiler subruntime is located at 0x174188 | Generally main r5900 recompiler subruntime is located at 0x174188. This is the place where r5900 (MIPS/COP0/COP1(FPU)/COP2(VU0-macromode)) opcodes are directed to emitter and analyzed. Jump table as is. Many opcodes jump out to different runtime due to complicated EE nature. | ||
<pre> | <pre> | ||
jpt_1741D8: | jpt_1741D8: | ||
---------debug_stuff------------ | ---------debug_stuff------------ | ||
case 0: | case 0: | ||
ee_r | ee_r | ||
ee_NOP | ee_NOP | ||
ee_SPECIAL | ee_SPECIAL | ||
ee_REGIMM | ee_REGIMM | ||
Line 1,288: | Line 861: | ||
===VU0 recompiler=== | ===VU0 recompiler=== | ||
[sarcasm mode ON] Due to totally lovely, and 100% sane Emotion Engine architecture [sarcasm mode OFF] VU0 run on PPC because running VU0 on SPU is not able to give needed timings/sync with EE mips core. Direct function | [sarcasm mode ON] Due to totally lovely, and 100% sane Emotion Engine architecture [sarcasm mode OFF] VU0 recompiler run on PPC because running VU0 on SPU is not able to give needed timings/sync with EE mips core. Direct function addresess here. Few "accurate"/"inaccurate" functions are missing on that list, bur you really can see pattern on other ones if needed. | ||
<pre> | <pre> | ||
.VU0_NOP_ 0x147910 | .VU0_NOP_ 0x147910 | ||
Line 1,454: | Line 1,027: | ||
===get reg=== | ===get reg=== | ||
After resolving above functions, you can see some sub_ in recompiler runtimes. This are usually used to translate ppc/spu reg to mips/c0/c1/c2/vu0/vu1 regs. Easy to cache due to extrdi which indicate field/reg bytes. | After resolving above functions, you can see some sub_ in recompiler runtimes. This are usually used to translate ppc/spu reg to mips/c0/c1/c2/vu0/vu1 regs. Easy to cache due to extrdi which indicate field/reg bytes. | ||