FCare / piYabause

0 stars 1 forks source link

[Virtua Fighter Kids] Slave SH2 invalid opcode... #40

Closed BenjaminSiskoo closed 6 years ago

BenjaminSiskoo commented 7 years ago

Le jeu freeze sur cette écran :

vfkids

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

FCare commented 7 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...

BenjaminSiskoo commented 7 years ago

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

FCare commented 7 years ago

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...

BenjaminSiskoo commented 7 years ago

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

FCare commented 7 years ago

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.

FCare commented 7 years ago

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...

vfkids

BenjaminSiskoo commented 7 years ago

UoYabause 0.5.0 avec tes correctifs en ce jour. Même problème.

BenjaminSiskoo commented 7 years ago

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

BenjaminSiskoo commented 7 years ago

UoYabause 0.5.2 : même problème