cdrom: change pause timing again
[pcsx_rearmed.git] / frontend / cspace.c
index 2b528a5..a3e3301 100644 (file)
@@ -8,6 +8,7 @@
  * See the COPYING file in the top-level directory.
  */
 
+#include <stdint.h>
 #include "cspace.h"
 
 /*
@@ -30,7 +31,6 @@
         || (defined(__GNUC__) && __GNUC__ >= 5)) \
        && __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__
 
-#include <stdint.h>
 #include <assert.h>
 
 #if defined(__ARM_NEON) || defined(__ARM_NEON__)
@@ -93,7 +93,8 @@ void bgr555_to_rgb565(void * __restrict__ dst_, const void *  __restrict__ src_,
 
 void bgr555_to_rgb565(void *dst_, const void *src_, int bytes)
 {
-       const unsigned int *src = src_;
+       // source can be misaligned, but it's very rare, so just force
+       const unsigned int *src = (const void *)((intptr_t)src_ & ~3);
        unsigned int *dst = dst_;
        unsigned int x, p, r, g, b;
 
@@ -214,7 +215,7 @@ void bgr555_to_uyvy(void *d, const void *s, int pixels)
   int r0, g0, b0, r1, g1, b1;
   int y0, y1, u, v;
 
-  for (; pixels > 0; src += 2, dst++, pixels -= 2)
+  for (; pixels > 1; src += 2, dst++, pixels -= 2)
   {
     b0 = (src[0] >> 10) & 0x1f;
     g0 = (src[0] >> 5) & 0x1f;