aboutsummaryrefslogtreecommitdiff
path: root/libretro-common
diff options
context:
space:
mode:
authorgameblabla2019-10-05 03:04:57 +0200
committergameblabla2019-10-05 03:04:57 +0200
commitd4753076e89d42cdad4a4f1ca4688fad3c56d873 (patch)
treec8641cf282f427d9329db00325e16609acca8663 /libretro-common
parent943821f94b9b2e22315fce876c2e369da7a79bcf (diff)
downloadsnesemu-d4753076e89d42cdad4a4f1ca4688fad3c56d873.tar.gz
snesemu-d4753076e89d42cdad4a4f1ca4688fad3c56d873.tar.bz2
snesemu-d4753076e89d42cdad4a4f1ca4688fad3c56d873.zip
Port the libretro core and make it standalone.
TODO : - Input should use our config file instead. - Missing audio in some games. (Star Ocean, doesn't happen with stock retroarch code. Odd...)
Diffstat (limited to 'libretro-common')
-rw-r--r--libretro-common/include/boolean.h39
-rw-r--r--libretro-common/include/compat/msvc.h132
-rw-r--r--libretro-common/include/compat/msvc/stdint.h258
-rw-r--r--libretro-common/include/retro_inline.h39
-rw-r--r--libretro-common/include/retro_miscellaneous.h155
5 files changed, 0 insertions, 623 deletions
diff --git a/libretro-common/include/boolean.h b/libretro-common/include/boolean.h
deleted file mode 100644
index 2c18ef7..0000000
--- a/libretro-common/include/boolean.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2010-2017 The RetroArch team
- *
- * ---------------------------------------------------------------------------------------
- * The following license statement only applies to this file (boolean.h).
- * ---------------------------------------------------------------------------------------
- *
- * Permission is hereby granted, free of charge,
- * to any person obtaining a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __LIBRETRO_SDK_BOOLEAN_H
-#define __LIBRETRO_SDK_BOOLEAN_H
-
-#ifndef __cplusplus
-
-#if defined(_MSC_VER) && !defined(SN_TARGET_PS3)
-/* Hack applied for MSVC when compiling in C89 mode as it isn't C99 compliant. */
-#define bool unsigned char
-#define true 1
-#define false 0
-#else
-#include <stdbool.h>
-#endif
-
-#endif
-
-#endif
diff --git a/libretro-common/include/compat/msvc.h b/libretro-common/include/compat/msvc.h
deleted file mode 100644
index 5175214..0000000
--- a/libretro-common/include/compat/msvc.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Copyright (C) 2010-2017 The RetroArch team
- *
- * ---------------------------------------------------------------------------------------
- * The following license statement only applies to this file (msvc.h).
- * ---------------------------------------------------------------------------------------
- *
- * Permission is hereby granted, free of charge,
- * to any person obtaining a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __LIBRETRO_SDK_COMPAT_MSVC_H
-#define __LIBRETRO_SDK_COMPAT_MSVC_H
-
-#ifdef _MSC_VER
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Pre-MSVC 2015 compilers don't implement snprintf in a cross-platform manner. */
-#if _MSC_VER < 1900
- #include <stdlib.h>
- #ifndef snprintf
- #define snprintf c99_snprintf_retro__
- #endif
-
- int c99_snprintf_retro__(char *outBuf, size_t size, const char *format, ...);
-#endif
-
-/* Pre-MSVC 2010 compilers don't implement vsnprintf in a cross-platform manner? Not sure about this one. */
-#if _MSC_VER < 1600
- #include <stdarg.h>
- #include <stdlib.h>
- #ifndef vsnprintf
- #define vsnprintf c99_vsnprintf_retro__
- #endif
- int c99_vsnprintf_retro__(char *outBuf, size_t size, const char *format, va_list ap);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#undef UNICODE /* Do not bother with UNICODE at this time. */
-#include <direct.h>
-#include <stddef.h>
-#include <math.h>
-
-/* Python headers defines ssize_t and sets HAVE_SSIZE_T.
- * Cannot duplicate these efforts.
- */
-#ifndef HAVE_SSIZE_T
-#if defined(_WIN64)
-typedef __int64 ssize_t;
-#elif defined(_WIN32)
-typedef int ssize_t;
-#endif
-#endif
-
-#define mkdir(dirname, unused) _mkdir(dirname)
-#define strtoull _strtoui64
-#undef strcasecmp
-#define strcasecmp _stricmp
-#undef strncasecmp
-#define strncasecmp _strnicmp
-
-/* Disable some of the annoying warnings. */
-#pragma warning(disable : 4800)
-#pragma warning(disable : 4805)
-#pragma warning(disable : 4244)
-#pragma warning(disable : 4305)
-#pragma warning(disable : 4146)
-#pragma warning(disable : 4267)
-#pragma warning(disable : 4723)
-#pragma warning(disable : 4996)
-
-/* roundf and va_copy is available since MSVC 2013 */
-#if _MSC_VER < 1800
-#define roundf(in) (in >= 0.0f ? floorf(in + 0.5f) : ceilf(in - 0.5f))
-#define va_copy(x, y) ((x) = (y))
-#endif
-
-#if _MSC_VER <= 1200
- #ifndef __cplusplus
- /* VC6 math.h doesn't define some functions when in C mode.
- * Trying to define a prototype gives "undefined reference".
- * But providing an implementation then gives "function already has body".
- * So the equivalent of the implementations from math.h are used as
- * defines here instead, and it seems to work.
- */
- #define cosf(x) ((float)cos((double)x))
- #define powf(x, y) ((float)pow((double)x, (double)y))
- #define sinf(x) ((float)sin((double)x))
- #define ceilf(x) ((float)ceil((double)x))
- #define floorf(x) ((float)floor((double)x))
- #define sqrtf(x) ((float)sqrt((double)x))
- #endif
-
- #ifndef _vscprintf
- #define _vscprintf c89_vscprintf_retro__
- int c89_vscprintf_retro__(const char *format, va_list pargs);
- #endif
-
- #ifndef _strtoui64
- #define _strtoui64(x, y, z) (_atoi64(x))
- #endif
-
-#endif
-
-#ifndef PATH_MAX
-#define PATH_MAX _MAX_PATH
-#endif
-
-#ifndef SIZE_MAX
-#define SIZE_MAX _UI32_MAX
-#endif
-
-#endif
-#endif
-
diff --git a/libretro-common/include/compat/msvc/stdint.h b/libretro-common/include/compat/msvc/stdint.h
deleted file mode 100644
index c791176..0000000
--- a/libretro-common/include/compat/msvc/stdint.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/* ISO C9x compliant stdint.h for Microsoft Visual Studio
- * Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
- *
- * Copyright (c) 2006-2008 Alexander Chemeris
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The name of the author may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __RARCH_STDINT_H
-#define __RARCH_STDINT_H
-
-#if _MSC_VER && (_MSC_VER < 1600)
-/* Pre-MSVC 2010 needs an implementation of stdint.h. */
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <limits.h>
-
-/* For Visual Studio 6 in C++ mode and for many Visual Studio versions when
- * compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
- * or compiler give many errors like this:
- *
- * error C2733: second C linkage of overloaded function 'wmemchr' not allowed
- */
-#ifdef __cplusplus
-#if _MSC_VER <= 1200
-extern "C++" {
-#else
-extern "C" {
-#endif
-#endif
-# include <wchar.h>
-#ifdef __cplusplus
-}
-#endif
-
-/* Define _W64 macros to mark types changing their size, like intptr_t. */
-#ifndef _W64
-# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
-# define _W64 __w64
-# else
-# define _W64
-# endif
-#endif
-
-
-/* 7.18.1 Integer types. */
-
-/* 7.18.1.1 Exact-width integer types. */
-
-/* Visual Studio 6 and Embedded Visual C++ 4 doesn't
- * realize that, e.g. char has the same size as __int8
- * so we give up on __intX for them.
- */
-#if (_MSC_VER < 1300)
- typedef signed char int8_t;
- typedef signed short int16_t;
- typedef signed int int32_t;
- typedef unsigned char uint8_t;
- typedef unsigned short uint16_t;
- typedef unsigned int uint32_t;
-#else
- typedef signed __int8 int8_t;
- typedef signed __int16 int16_t;
- typedef signed __int32 int32_t;
- typedef unsigned __int8 uint8_t;
- typedef unsigned __int16 uint16_t;
- typedef unsigned __int32 uint32_t;
-#endif
-typedef signed __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-
-
-/* 7.18.1.2 Minimum-width integer types. */
-typedef int8_t int_least8_t;
-typedef int16_t int_least16_t;
-typedef int32_t int_least32_t;
-typedef int64_t int_least64_t;
-typedef uint8_t uint_least8_t;
-typedef uint16_t uint_least16_t;
-typedef uint32_t uint_least32_t;
-typedef uint64_t uint_least64_t;
-
-/* 7.18.1.3 Fastest minimum-width integer types. */
-typedef int8_t int_fast8_t;
-typedef int16_t int_fast16_t;
-typedef int32_t int_fast32_t;
-typedef int64_t int_fast64_t;
-typedef uint8_t uint_fast8_t;
-typedef uint16_t uint_fast16_t;
-typedef uint32_t uint_fast32_t;
-typedef uint64_t uint_fast64_t;
-
-/* 7.18.1.4 Integer types capable of holding object pointers. */
-#ifdef _WIN64 /* [ */
- typedef signed __int64 intptr_t;
- typedef unsigned __int64 uintptr_t;
-#else /* _WIN64 ][ */
- typedef _W64 signed int intptr_t;
- typedef _W64 unsigned int uintptr_t;
-#endif /* _WIN64 ] */
-
-/* 7.18.1.5 Greatest-width integer types. */
-typedef int64_t intmax_t;
-typedef uint64_t uintmax_t;
-
-/* 7.18.2 Limits of specified-width integer types. */
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
-/* [ See footnote 220 at page 257 and footnote 221 at page 259. */
-
-/* 7.18.2.1 Limits of exact-width integer types. */
-#define INT8_MIN ((int8_t)_I8_MIN)
-#define INT8_MAX _I8_MAX
-#define INT16_MIN ((int16_t)_I16_MIN)
-#define INT16_MAX _I16_MAX
-#define INT32_MIN ((int32_t)_I32_MIN)
-#define INT32_MAX _I32_MAX
-#define INT64_MIN ((int64_t)_I64_MIN)
-#define INT64_MAX _I64_MAX
-#define UINT8_MAX _UI8_MAX
-#define UINT16_MAX _UI16_MAX
-#define UINT32_MAX _UI32_MAX
-#define UINT64_MAX _UI64_MAX
-
-/* 7.18.2.2 Limits of minimum-width integer types. */
-#define INT_LEAST8_MIN INT8_MIN
-#define INT_LEAST8_MAX INT8_MAX
-#define INT_LEAST16_MIN INT16_MIN
-#define INT_LEAST16_MAX INT16_MAX
-#define INT_LEAST32_MIN INT32_MIN
-#define INT_LEAST32_MAX INT32_MAX
-#define INT_LEAST64_MIN INT64_MIN
-#define INT_LEAST64_MAX INT64_MAX
-#define UINT_LEAST8_MAX UINT8_MAX
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_LEAST64_MAX UINT64_MAX
-
-/* 7.18.2.3 Limits of fastest minimum-width integer types. */
-#define INT_FAST8_MIN INT8_MIN
-#define INT_FAST8_MAX INT8_MAX
-#define INT_FAST16_MIN INT16_MIN
-#define INT_FAST16_MAX INT16_MAX
-#define INT_FAST32_MIN INT32_MIN
-#define INT_FAST32_MAX INT32_MAX
-#define INT_FAST64_MIN INT64_MIN
-#define INT_FAST64_MAX INT64_MAX
-#define UINT_FAST8_MAX UINT8_MAX
-#define UINT_FAST16_MAX UINT16_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-#define UINT_FAST64_MAX UINT64_MAX
-
-/* 7.18.2.4 Limits of integer types capable of holding object pointers. */
-#ifdef _WIN64 /* [ */
-# define INTPTR_MIN INT64_MIN
-# define INTPTR_MAX INT64_MAX
-# define UINTPTR_MAX UINT64_MAX
-#else /* _WIN64 ][ */
-# define INTPTR_MIN INT32_MIN
-# define INTPTR_MAX INT32_MAX
-# define UINTPTR_MAX UINT32_MAX
-#endif /* _WIN64 ] */
-
-/* 7.18.2.5 Limits of greatest-width integer types */
-#define INTMAX_MIN INT64_MIN
-#define INTMAX_MAX INT64_MAX
-#define UINTMAX_MAX UINT64_MAX
-
-/* 7.18.3 Limits of other integer types */
-
-#ifdef _WIN64 /* [ */
-# define PTRDIFF_MIN _I64_MIN
-# define PTRDIFF_MAX _I64_MAX
-#else /* _WIN64 ][ */
-# define PTRDIFF_MIN _I32_MIN
-# define PTRDIFF_MAX _I32_MAX
-#endif /* _WIN64 ] */
-
-#define SIG_ATOMIC_MIN INT_MIN
-#define SIG_ATOMIC_MAX INT_MAX
-
-#ifndef SIZE_MAX /* [ */
-# ifdef _WIN64 /* [ */
-# define SIZE_MAX _UI64_MAX
-# else /* _WIN64 ][ */
-# define SIZE_MAX _UI32_MAX
-# endif /* _WIN64 ] */
-#endif /* SIZE_MAX ] */
-
-/* WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h> */
-#ifndef WCHAR_MIN /* [ */
-# define WCHAR_MIN 0
-#endif /* WCHAR_MIN ] */
-#ifndef WCHAR_MAX // [
-# define WCHAR_MAX _UI16_MAX
-#endif /* WCHAR_MAX ] */
-
-#define WINT_MIN 0
-#define WINT_MAX _UI16_MAX
-
-#endif /* __STDC_LIMIT_MACROS ] */
-
-/* 7.18.4 Limits of other integer types */
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
-/* [ See footnote 224 at page 260 */
-
-/* 7.18.4.1 Macros for minimum-width integer constants */
-
-#define INT8_C(val) val##i8
-#define INT16_C(val) val##i16
-#define INT32_C(val) val##i32
-#define INT64_C(val) val##i64
-
-#define UINT8_C(val) val##ui8
-#define UINT16_C(val) val##ui16
-#define UINT32_C(val) val##ui32
-#define UINT64_C(val) val##ui64
-
-/* 7.18.4.2 Macros for greatest-width integer constants */
-#define INTMAX_C INT64_C
-#define UINTMAX_C UINT64_C
-
-#endif
-/* __STDC_CONSTANT_MACROS ] */
-
-#else
-/* Sanity for everything else. */
-#include <stdint.h>
-#endif
-
-#endif
-
diff --git a/libretro-common/include/retro_inline.h b/libretro-common/include/retro_inline.h
deleted file mode 100644
index ffdaa4a..0000000
--- a/libretro-common/include/retro_inline.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2010-2017 The RetroArch team
- *
- * ---------------------------------------------------------------------------------------
- * The following license statement only applies to this file (retro_inline.h).
- * ---------------------------------------------------------------------------------------
- *
- * Permission is hereby granted, free of charge,
- * to any person obtaining a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __LIBRETRO_SDK_INLINE_H
-#define __LIBRETRO_SDK_INLINE_H
-
-#ifndef INLINE
-
-#if defined(_WIN32) || defined(__INTEL_COMPILER)
-#define INLINE __inline
-#elif defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L
-#define INLINE inline
-#elif defined(__GNUC__)
-#define INLINE __inline__
-#else
-#define INLINE
-#endif
-
-#endif
-#endif
diff --git a/libretro-common/include/retro_miscellaneous.h b/libretro-common/include/retro_miscellaneous.h
deleted file mode 100644
index e526d6e..0000000
--- a/libretro-common/include/retro_miscellaneous.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright (C) 2010-2017 The RetroArch team
- *
- * ---------------------------------------------------------------------------------------
- * The following license statement only applies to this file (retro_miscellaneous.h).
- * ---------------------------------------------------------------------------------------
- *
- * Permission is hereby granted, free of charge,
- * to any person obtaining a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __RARCH_MISCELLANEOUS_H
-#define __RARCH_MISCELLANEOUS_H
-
-#include <stdint.h>
-#include <boolean.h>
-#include <retro_inline.h>
-
-#if defined(_WIN32) && !defined(_XBOX)
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#elif defined(_WIN32) && defined(_XBOX)
-#include <Xtl.h>
-#endif
-
-#if defined(__CELLOS_LV2__)
-#include <sys/fs_external.h>
-#endif
-
-#include <limits.h>
-
-#ifdef _MSC_VER
-#include <compat/msvc.h>
-#endif
-
-static INLINE void bits_or_bits(uint32_t *a, uint32_t *b, uint32_t count)
-{
- uint32_t i;
- for (i = 0; i < count;i++)
- a[i] |= b[i];
-}
-
-static INLINE void bits_clear_bits(uint32_t *a, uint32_t *b, uint32_t count)
-{
- uint32_t i;
- for (i = 0; i < count;i++)
- a[i] &= ~b[i];
-}
-
-static INLINE bool bits_any_set(uint32_t* ptr, uint32_t count)
-{
- uint32_t i;
- for (i = 0; i < count; i++)
- {
- if (ptr[i] != 0)
- return true;
- }
- return false;
-}
-
-#ifndef PATH_MAX_LENGTH
-#if defined(__CELLOS_LV2__)
-#define PATH_MAX_LENGTH CELL_FS_MAX_FS_PATH_LENGTH
-#elif defined(_XBOX1) || defined(_3DS) || defined(PSP) || defined(GEKKO)|| defined(WIIU)
-#define PATH_MAX_LENGTH 512
-#else
-#define PATH_MAX_LENGTH 4096
-#endif
-#endif
-
-#ifndef MAX
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#endif
-
-#ifndef MIN
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
-
-#define BITS_GET_ELEM(a, i) ((a).data[i])
-#define BITS_GET_ELEM_PTR(a, i) ((a)->data[i])
-
-#define BIT_SET(a, bit) ((a)[(bit) >> 3] |= (1 << ((bit) & 7)))
-#define BIT_CLEAR(a, bit) ((a)[(bit) >> 3] &= ~(1 << ((bit) & 7)))
-#define BIT_GET(a, bit) (((a)[(bit) >> 3] >> ((bit) & 7)) & 1)
-
-#define BIT16_SET(a, bit) ((a) |= (1 << ((bit) & 15)))
-#define BIT16_CLEAR(a, bit) ((a) &= ~(1 << ((bit) & 15)))
-#define BIT16_GET(a, bit) (((a) >> ((bit) & 15)) & 1)
-#define BIT16_CLEAR_ALL(a) ((a) = 0)
-
-#define BIT32_SET(a, bit) ((a) |= (1 << ((bit) & 31)))
-#define BIT32_CLEAR(a, bit) ((a) &= ~(1 << ((bit) & 31)))
-#define BIT32_GET(a, bit) (((a) >> ((bit) & 31)) & 1)
-#define BIT32_CLEAR_ALL(a) ((a) = 0)
-
-#define BIT64_SET(a, bit) ((a) |= (UINT64_C(1) << ((bit) & 63)))
-#define BIT64_CLEAR(a, bit) ((a) &= ~(UINT64_C(1) << ((bit) & 63)))
-#define BIT64_GET(a, bit) (((a) >> ((bit) & 63)) & 1)
-#define BIT64_CLEAR_ALL(a) ((a) = 0)
-
-#define BIT128_SET(a, bit) ((a).data[(bit) >> 5] |= (1 << ((bit) & 31)))
-#define BIT128_CLEAR(a, bit) ((a).data[(bit) >> 5] &= ~(1 << ((bit) & 31)))
-#define BIT128_GET(a, bit) (((a).data[(bit) >> 5] >> ((bit) & 31)) & 1)
-#define BIT128_CLEAR_ALL(a) memset(&(a), 0, sizeof(a))
-
-#define BIT128_SET_PTR(a, bit) BIT128_SET(*a, bit)
-#define BIT128_CLEAR_PTR(a, bit) BIT128_CLEAR(*a, bit)
-#define BIT128_GET_PTR(a, bit) BIT128_GET(*a, bit)
-#define BIT128_CLEAR_ALL_PTR(a) BIT128_CLEAR_ALL(*a)
-
-#define BIT256_SET(a, bit) BIT128_SET(a, bit)
-#define BIT256_CLEAR(a, bit) BIT128_CLEAR(a, bit)
-#define BIT256_GET(a, bit) BIT128_GET(a, bit)
-#define BIT256_CLEAR_ALL(a) BIT128_CLEAR_ALL(a)
-
-#define BIT256_SET_PTR(a, bit) BIT256_SET(*a, bit)
-#define BIT256_CLEAR_PTR(a, bit) BIT256_CLEAR(*a, bit)
-#define BIT256_GET_PTR(a, bit) BIT256_GET(*a, bit)
-#define BIT256_CLEAR_ALL_PTR(a) BIT256_CLEAR_ALL(*a)
-
-#define BITS_COPY16_PTR(a,bits) \
-{ \
- BIT128_CLEAR_ALL_PTR(a); \
- BITS_GET_ELEM_PTR(a, 0) = (bits) & 0xffff; \
-}
-
-#define BITS_COPY32_PTR(a,bits) \
-{ \
- BIT128_CLEAR_ALL_PTR(a); \
- BITS_GET_ELEM_PTR(a, 0) = (bits); \
-}
-
-/* Helper macros and struct to keep track of many booleans. */
-/* This struct has 256 bits. */
-typedef struct
-{
- uint32_t data[8];
-} retro_bits_t;
-
-#endif