Closed BenjaminSiskoo closed 6 years ago
L'opcode non supporté est le code 0x620, ce qui correspond a un movi20 (http://www.shared-ptr.com/sh_insns.html) qui requiere un PC+4. L'interpreteur SH2 ne gere pour le moment qu'un PC+2.
A suivre...
Master SH2 invalid opcode 0xffff
R0 = 00000000 R12 = 0000000E R1 = 00000320 R13 = 00000000 R2 = 06000320 R14 = 00000000 R3 = 00000000 R15 = 060FFBE4 R4 = 00000001 SR = 000000F1 R5 = 060A0810 GBR = 060FFC00 R6 = 00000001 VBR = 06000000 R7 = 00000000 MACH = 00000000 R8 = 00000001 MACL = 00000000 R9 = 0000000E PR = 0602F5D6 R10 = 06030AC8 PC = 00100000 R11 = 060A0810
L'opcode 0xFFFF survient quand le PC est dans les choux. C'est la valuer retournée par la fonction FetchInvalid.
Et un PC dans les choux ca peut venir de plein de raison differente. Il semble néanmoins que la survenue de ce code invalide soit fortement liéé à l'usage du bios émulé. Peut etre une mauvaise valeur de retour... A voir...
Ce qui semblerait logique, j'avais oublié de mettre l'opcode pour le vrai bios.
Slave SH2 invalid opcode 0x5e2
R0 = 00000000 R12 = 060E4AAC R1 = 260FA16C R13 = 00000000 R2 = 260FFC48 R14 = 00000000 R3 = 0000001E R15 = 06001000 R4 = 260FA16C SR = 000003F0 R5 = 060F9C34 GBR = 060FFC00 R6 = 00002000 VBR = 06000400 R7 = 0000001F MACH = 00000000 R8 = 00000000 MACL = 00002D88 R9 = 00000000 PR = 060D02C0 R10 = 060E46A8 PC = 060D02EE R11 = 060E2018
Le probleme vient peut etre de YabauseQuickLoadGame qui est utilisé dans le cas du bios emule mais pas dans le cas du bios normal. Un registre ou le mapping du jeu, dans certains cas est peut etre incomplet... A creuser dans le futur.
J'ai testé avec mon portage yabause OpenGL (basé sur une version a jour de yabause). En activant le support du cache, j'ai cet ecran, puis l'ecran "Loading" et ensuite plus d'invalid opcode... Par contre le jeu ne va pas beaucoup plus loin. Il faudrait essayer sur un yabause 0.9.5 en activant le support du cache...
UoYabause 0.5.0 avec tes correctifs en ce jour. Même problème.
Slave SH2 invalid opcode
R0 = 0000000F R12 = 060E4AAC R1 = 260FA16C R13 = 00000000 R2 = 260FFC48 R14 = 00000000 R3 = 0000001E R15 = 06001000 R4 = 260FA16C SR = 000003F0 R5 = 060F9C34 GBR = 060FFC00 R6 = 0000001F VBR = 06000400 R7 = 0000001F MACH = 00000000 R8 = 00000000 MACL = 00002D88 R9 = 00000000 PR = 060D02C0 R10 = 060E46A8 PC = 060D02D4 R11 = 060E2018
UoYabause 0.5.2 : même problème
Le jeu freeze sur cette écran :
Slave SH2 invalid opcode
R0 = 260FA16C R12 = 060E4AAC R1 = 260FA16C R13 = 00000000 R2 = 260FFC48 R14 = 00000000 R3 = 0000001E R15 = 06001000 R4 = 260FA16C SR = 000003F1 R5 = 060F9C34 GBR = 060FFC00 R6 = 0000001F VBR = 06000400 R7 = 0000001F MACH = 00000000 R8 = 00000000 MACL = 00002D88 R9 = 00000000 PR = 060D02C0 R10 = 060E46A8 PC = 060D02AC R11 = 060E2018