Package: pcsx-bin
Version: 1:1.6-3
Severity: serious
Tags: patch
Justification: no longer builds from source


When the previously reported endianness detection problem is fixed,
it turns out that the big endian version of the code doesn't build,
due to some incorrect uses of the macros psxHu32 and psxHu16.  The
following patch solves the problem by using psxHu32ref and psxHu16ref
instead, as already established in other parts of the code.


diff -ur ./CdRom.c /home/marcus/hack/pcsx-1.6.orig/CdRom.c
--- ./CdRom.c   2003-05-21 16:05:59.000000000 +0200
+++ /home/marcus/hack/pcsx-1.6.orig/CdRom.c     2006-04-04 23:15:08.763266000 
+0200
@@ -548,7 +548,7 @@
        }
 
        if (cdr.Stat != NoIntr && cdr.Reg2 != 0x18) {
-               psxHu32(0x1070)|= SWAP32((u32)0x4);
+               psxHu32ref(0x1070)|= SWAP32((u32)0x4);
                psxRegs.interrupt|= 0x80000000;
        }
 
diff -ur ./PsxHw.c /home/marcus/hack/pcsx-1.6.orig/PsxHw.c
--- ./PsxHw.c   2003-05-21 16:06:15.000000000 +0200
+++ /home/marcus/hack/pcsx-1.6.orig/PsxHw.c     2006-04-04 23:16:48.170121000 
+0200
@@ -26,8 +26,8 @@
 #endif
 
 void psxHwReset() {
-       if (Config.Sio) psxHu32(0x1070) |= 0x80;
-       if (Config.SpuIrq) psxHu32(0x1070) |= 0x200;
+       if (Config.Sio) psxHu32ref(0x1070) |= SWAP32(0x80);
+       if (Config.SpuIrq) psxHu32ref(0x1070) |= SWAP32(0x200);
 
        memset(psxH, 0, 0x10000);
 
@@ -399,16 +399,16 @@
 #ifdef PSXHW_LOG
                        PSXHW_LOG("IREG 16bit write %x\n", value);
 #endif
-                       if (Config.Sio) psxHu16(0x1070) |= SWAPu16(0x80);
-                       if (Config.SpuIrq) psxHu16(0x1070) |= SWAPu16(0x200);
-                       psxHu16(0x1070) &= SWAPu16((psxHu16(0x1074) & value));
+                       if (Config.Sio) psxHu16ref(0x1070) |= SWAPu16(0x80);
+                       if (Config.SpuIrq) psxHu16ref(0x1070) |= SWAPu16(0x200);
+                       psxHu16ref(0x1070) &= SWAPu16((psxHu16(0x1074) & 
value));
                        return;
 
                case 0x1f801074:
 #ifdef PSXHW_LOG
                        PSXHW_LOG("IMASK 16bit write %x\n", value);
 #endif
-                       psxHu16(0x1074) = SWAPu16(value);
+                       psxHu16ref(0x1074) = SWAPu16(value);
                        psxRegs.interrupt|= 0x80000000;
                        return;
 
diff -ur ./PsxHw.h /home/marcus/hack/pcsx-1.6.orig/PsxHw.h
--- ./PsxHw.h   2003-05-21 14:52:49.000000000 +0200
+++ /home/marcus/hack/pcsx-1.6.orig/PsxHw.h     2006-04-04 23:15:28.086899000 
+0200
@@ -49,7 +49,8 @@
 #define        DMA_INTERRUPT(n) \
        if (HW_DMA_ICR & (1 << (16 + n))) { \
                HW_DMA_ICR|= (1 << (24 + n)); \
-               psxHu32(0x1070) |= 8; psxRegs.interrupt|= 0x80000000; \
+               psxHu32ref(0x1070) |= SWAP32(8);                \
+               psxRegs.interrupt|= 0x80000000;                 \
        }
 
 



-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: powerpc (ppc)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.8dma
Locale: LANG=C, LC_CTYPE=sv_SE (charmap=ISO-8859-1)

Versions of packages pcsx-bin depends on:
ii  libatk1.0-0               1.11.3-1       The ATK accessibility toolkit
ii  libc6                     2.3.6-4        GNU C Library: Shared libraries an
ii  libcairo2                 1.0.2-3        The Cairo 2D vector graphics libra
ii  libfontconfig1            2.3.2-5        generic font configuration library
ii  libglib2.0-0              2.10.1-2       The GLib library of C routines
ii  libgtk2.0-0               2.8.16-1       The GTK+ graphical user interface 
ii  libpango1.0-0             1.12.0-2       Layout and rendering of internatio
ii  libx11-6                  6.9.0.dfsg.1-5 X Window System protocol client li
ii  libxcursor1               1.1.3-1        X cursor management library
ii  libxext6                  6.9.0.dfsg.1-5 X Window System miscellaneous exte
ii  libxi6                    6.9.0.dfsg.1-5 X Window System Input extension li
ii  libxinerama1              6.9.0.dfsg.1-5 X Window System multi-head display
ii  libxrandr2                6.9.0.dfsg.1-5 X Window System Resize, Rotate and
ii  libxrender1               1:0.9.0.2-1    X Rendering Extension client libra
ii  pcsx-i18n                 1:1.6-3        Sony PlayStation emulator -- extra
ii  xbase-clients             6.9.0.dfsg.1-5 miscellaneous X clients
ii  zlib1g                    1:1.2.3-11     compression library - runtime

Versions of packages pcsx-bin recommends:
ii  psemu-drive-cdrmooby [psemu-d 2.8+o-2    ISO plugin for PSX emulators
ii  psemu-input-padjoy [psemu-inp 0.8.2+o-2  Controller plugin for PSX emulator
ii  psemu-sound-alsa [psemu-sound 1.7+o-2    ALSA sound plugin for PSX emulator
ii  psemu-sound-oss [psemu-sound] 1.7+o-2    OSS sound plugin for PSX emulators
ii  psemu-video-x11 [psemu-video] 1.15-2     software graphics plugin for PSX e

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to