Hello guys, here's a small update for you all !
The state of the HLE BIOS in PCSX Rearmed was a bit in a sorry state. Prior to that, i had already worked on improving the HLE Bios for PCSX4ALL, the MIPS specific fork of PCSX Reloaded for Ingenic devices. (or really any MIPS32 devices, though it also has an interpreter that works on PC too)
You can see what work i did here : https://github.com/notaz/pcsx_rearmed/pull/137
It's based upon PCSX-Reloaded upstream patches as well as Senquack an DmitrySmagin's patches... many thanks to them ! I also must mention that the new HLE code had been improved thanks to nocash PSX doc on the BIOS behaviour : it has been very useful for debugging HLE bugs.
I think one example that comes to mind is the Garbage area at address 0.
Normally games shouldn't read from address 0 yet some of them do, among which :
R-types. (Would crash after the Irem logo)
Crash Team Racing (Woud softlock before the crate logo)
Formula One 2001 (Would indefinitely loop during loading screen. It works on PCSX4ALL but PCSX rearmed still crashes unfortunately)
Roswell Conspiracies (Will flat out crash during loading screen before going ingame. Still has other issues though unfortunately)
Initially i was confused because the ordering of the garbage area i was trying to set appeared to be incorrect (and notaz pointed that out to me) because the bytes were seemingly swapped compared to nocash's doc. I only knew this after comparing loading the real BIOS in memory versus HLE...
Unfortunately, there are still a lot of games that are broken over HLE. Among them are :
Digimon Arena (loads a few file then refuses to boot. Seems to be an issue with threads.)
Metal Gear Solid (crashes outright after issuing card_write)
Final Fantasy 8 (Memory card issue due to timing issue with card_wait & card_load. Crashes before entering battle)
Fade to Black (Memory card issue similar to FF8, in addition to saves disappearing or at least not detected)
Every user of PCSX rearmed will benefits from these changes ! The Retrostone port still isn't working though but i'm looking into it.