dmitrysmagin / pcsx4all

Pcsx4all v2.4 with mips-to-mips recompiler by Ulrich Hecht https://github.com/uli/psx4all-dingoo/
23 stars 34 forks source link

psxbios: Fix numerous issues with Digimon World on HLE Bios #48

Closed gameblabla closed 5 years ago

gameblabla commented 5 years ago

On HLE BIOS, Digimon World would refuse to boot up. The issue turned out to be an issue with strcat not being compliant with the official BIOS behaviour, as well as an issue with EnterCritical not returning anything to v0. This also properly addresses the crash issue in Medievil 2, as the experimental patch was always returning 1, when it should only do so if both bits (bit 2 and bit 10) were properly set.

Another issue it addresses is lack of input in Digimon World after booting up.

The issue turned out to be psxBios_PAD_init, which the game erroneously with invalid types, resulting in no input. This was fixed by only allowing some types, as documented by nocash.

This doesn't fix the memory card issue in Digimon World. I have a bunch of patches for that (based on upstream PCSXR code) but there are still some issues with some games like Nuclear Strike. (see https://github.com/gameblabla/pcsx4all/issues/8 ) If i cannot address the later though, i might merge the related patches as is though, since it also fixes other games but not for this pull request for now.

dmitrysmagin commented 5 years ago

I accept this patch though the following style is preferred: if () { } else { }