-
Geo Ster authored
* As this very useful document describes [1] the BIOS first checks the prid of COP0 to decide whether to execute the IOP or EE boot sequence. Without this the BIOS doesn't execute the code we want. The code sequence that determines this is added below as suedo assembly MFC0: GPR[26] = COP0_REG[15] /* Load cop0 prid to GPR 26 */ SLTI: GPR[1] = GPR[26] < 89 /* Check if its value is less than 0x59 and store the bool in GPR 1 */ BNE: if GPR[0] != GPR[1] then pc += 20 /* If the comparison is true then jump +20 to IOP */ [1] https://rust-console.github.io/ps2-bios-book/print.html [2] https://psi-rockin.github.io/ps2tek/#biosbootprocess
Geo Ster authored* As this very useful document describes [1] the BIOS first checks the prid of COP0 to decide whether to execute the IOP or EE boot sequence. Without this the BIOS doesn't execute the code we want. The code sequence that determines this is added below as suedo assembly MFC0: GPR[26] = COP0_REG[15] /* Load cop0 prid to GPR 26 */ SLTI: GPR[1] = GPR[26] < 89 /* Check if its value is less than 0x59 and store the bool in GPR 1 */ BNE: if GPR[0] != GPR[1] then pc += 20 /* If the comparison is true then jump +20 to IOP */ [1] https://rust-console.github.io/ps2-bios-book/print.html [2] https://psi-rockin.github.io/ps2tek/#biosbootprocess