psxbios: fix warnings
[pcsx_rearmed.git] / libpcsxcore / psxbios.c
index c5a439d..fb7d13d 100644 (file)
@@ -1,6 +1,6 @@
 /***************************************************************************
  *   Copyright (C) 2019 Ryan Schultz, PCSX-df Team, PCSX team, gameblabla, *
- *      dmitrysmagin, senquack                                                                                            *
+ *   dmitrysmagin, senquack                                                *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
 #include "psxinterpreter.h"
 #include <zlib.h>
 
-#if (defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)
-#pragma GCC diagnostic ignored "-Wpointer-sign"
-#endif
-
 #ifndef PSXBIOS_LOG
 //#define PSXBIOS_LOG printf
 #define PSXBIOS_LOG(...)
@@ -2596,7 +2592,7 @@ static void bufile(const u8 *mcd_data, u32 dir_) {
        }
        for (; nfile <= 15; nfile++, blocks++) {
                const u8 *data2 = mcd_data + 128 * nfile;
-               const char *name = data2 + 0x0a;
+               const char *name = (const char *)data2 + 0x0a;
                if ((data2[0] & 0xF0) != 0x50 || name[0])
                        break;
        }
@@ -2629,11 +2625,11 @@ static void psxBios_firstfile() { // 42
                if (!strncmp(pa0, "bu00", 4)) {
                        // firstfile() calls _card_read() internally, so deliver it's event
                        DeliverEvent(0xf0000011, 0x0004);
-                       bufile(Mcd1Data, a1);
+                       bufile((u8 *)Mcd1Data, a1);
                } else if (!strncmp(pa0, "bu10", 4)) {
                        // firstfile() calls _card_read() internally, so deliver it's event
                        DeliverEvent(0xf0000011, 0x0004);
-                       bufile(Mcd2Data, a1);
+                       bufile((u8 *)Mcd2Data, a1);
                }
        }
 
@@ -2649,9 +2645,9 @@ void psxBios_nextfile() { // 43
 
        v0 = 0;
        if (!strncmp(ffile, "bu00", 4))
-               bufile(Mcd1Data, a0);
+               bufile((u8 *)Mcd1Data, a0);
        else if (!strncmp(ffile, "bu10", 4))
-               bufile(Mcd2Data, a0);
+               bufile((u8 *)Mcd2Data, a0);
 
        pc0 = ra;
 }
@@ -3316,6 +3312,7 @@ void psxBiosSetupBootState(void)
 
 void psxBiosInit() {
        u32 *ptr, *ram32, *rom32;
+       char *romc;
        int i;
        uLongf len;
 
@@ -3656,10 +3653,11 @@ void psxBiosInit() {
        rom32 = (u32 *)psxR;
        rom32[0x100/4] = SWAP32(0x19951204);
        rom32[0x104/4] = SWAP32(3);
-       strcpy(psxR + 0x108, "PCSX authors");
-       strcpy(psxR + 0x12c, "CEX-3000 PCSX HLE"); // see psxBios_GetSystemInfo
-       strcpy(psxR + 0x7ff32, "System ROM Version 2.2 12/04/95 A");
-       strcpy(psxR + 0x7ff54, "GPL-2.0-or-later");
+       romc = (char *)psxR;
+       strcpy(romc + 0x108, "PCSX authors");
+       strcpy(romc + 0x12c, "CEX-3000 PCSX HLE"); // see psxBios_GetSystemInfo
+       strcpy(romc + 0x7ff32, "System ROM Version 2.2 12/04/95 A");
+       strcpy(romc + 0x7ff54, "GPL-2.0-or-later");
 
        // fonts
        len = 0x80000 - 0x66000;
@@ -3774,18 +3772,14 @@ void psxBiosCnfLoaded(u32 tcb_cnt, u32 evcb_cnt, u32 stack) {
 }
 
 #define psxBios_PADpoll(pad) { \
+       int i, more_data = 0; \
        PAD##pad##_startPoll(pad); \
-       pad_buf##pad[0] = 0; \
-       pad_buf##pad[1] = PAD##pad##_poll(0x42); \
-       if (!(pad_buf##pad[1] & 0x0f)) { \
-               bufcount = 32; \
-       } else { \
-               bufcount = (pad_buf##pad[1] & 0x0f) * 2; \
-       } \
-       PAD##pad##_poll(0); \
+       pad_buf##pad[1] = PAD##pad##_poll(0x42, &more_data); \
+       pad_buf##pad[0] = more_data ? 0 : 0xff; \
+       PAD##pad##_poll(0, &more_data); \
        i = 2; \
-       while (bufcount--) { \
-               pad_buf##pad[i++] = PAD##pad##_poll(0); \
+       while (more_data) { \
+               pad_buf##pad[i++] = PAD##pad##_poll(0, &more_data); \
        } \
 }
 
@@ -3970,7 +3964,6 @@ void hleExcPadCard1(void)
        if (loadRam32(A_PAD_IRQR_ENA)) {
                u8 *pad_buf1 = loadRam8ptr(A_PAD_INBUF + 0);
                u8 *pad_buf2 = loadRam8ptr(A_PAD_INBUF + 4);
-               int i, bufcount;
 
                psxBios_PADpoll(1);
                psxBios_PADpoll(2);