psxbios: Make HLE bios start from block 1, not 2.
authorgameblabla <gameblabla@openmailbox.org>
Sun, 21 Jul 2019 00:38:32 +0000 (02:38 +0200)
committergameblabla <gameblabla@openmailbox.org>
Sun, 21 Jul 2019 00:38:32 +0000 (02:38 +0200)
I already fixed this for bufile :
ptr = Mcd##mcd##Data + 128 * (nfile + 1); \
instead of
ptr = Mcd##mcd##Data + 128 * nfile; \

But i forgot to also fix psxBios_firstfile accordingly.
So nfile would still start from block 2 and it would
cause all kinds of issues.

This was the original comment on pcsxr codeplex
as my patch was based on it :
"The HLE-Bios start to read memory card blocks at block 2. You need to change
ptr = Mcd##mcd##Data + 128 * nfile; \ to
ptr = Mcd##mcd##Data + 128 * (nfile + 1); \
for #define bufile(mcd) { \ and changing nfile = 1; to nfile = 0; for psxBios_firstfile() { // 42 Starts numbering slots in the right position."

libpcsxcore/psxbios.c

index ee307e3..59471f1 100644 (file)
@@ -2278,7 +2278,7 @@ void psxBios_firstfile() { // 42
        if (pa0) {
                strcpy(ffile, pa0);
                pfile = ffile+5;
-               nfile = 1;
+               nfile = 0;
                if (!strncmp(pa0, "bu00", 4)) {
                        // firstfile() calls _card_read() internally, so deliver it's event
                        DeliverEvent(0x11, 0x2);