mirror of
https://github.com/libretro/NP2kai.git
synced 2024-10-07 23:03:25 +00:00
329 lines
7.4 KiB
C
329 lines
7.4 KiB
C
/*-
|
|
* Copyright (C) 2003, 2004 NONAKA Kimihiro <nonakap@gmail.com>
|
|
* All rights reserved.
|
|
*
|
|
* 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.
|
|
*
|
|
* 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 NP2_X11_COMPILER_H__
|
|
#define NP2_X11_COMPILER_H__
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#ifdef ENABLE_NLS
|
|
#include <libintl.h>
|
|
#define _(s) gettext(s)
|
|
#ifdef gettext_noop
|
|
#define N_(s) gettext_noop(s)
|
|
#else
|
|
#define N_(s) (s)
|
|
#endif
|
|
#else /* !ENABLE_NLS */
|
|
#define _(s) (s)
|
|
#define N_(s) (s)
|
|
#define textdomain(s) (s)
|
|
#define gettext(s) (s)
|
|
#define dgettext(d,s) (s)
|
|
#define dcgettext(d,s,t) (s)
|
|
#define bindtextdomain(d,dir) (d)
|
|
#define bind_textdomain_codeset(d,c) (c)
|
|
#endif /* ENABLE_NLS */
|
|
|
|
#ifdef WORDS_BIGENDIAN
|
|
#define BYTESEX_BIG
|
|
#else /* !WORDS_BIGENDIAN */
|
|
#define BYTESEX_LITTLE
|
|
#endif /* WORDS_BIGENDIAN */
|
|
|
|
#if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER)
|
|
#ifndef NOSOUND
|
|
#define NOSOUND
|
|
#undef VERMOUTH_LIB
|
|
#endif /* !NOSOUND */
|
|
#else /* USE_SDLAUDIO || USE_SDLMIXER */
|
|
#undef NOSOUND
|
|
#define VERMOUTH_LIB
|
|
#endif /* !USE_SDLAUDIO && !USE_SDLMIXER */
|
|
|
|
#include <sys/param.h>
|
|
#include <sys/time.h>
|
|
#include <sys/stat.h>
|
|
#include <assert.h>
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
#include <setjmp.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
#include <stddef.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
|
|
#define X11
|
|
#define OSLANG_UTF8
|
|
#define OSLINEBREAK_LF
|
|
|
|
#include <glib.h>
|
|
|
|
typedef gint32 SINT;
|
|
typedef gint32 INT;
|
|
typedef guint32 UINT;
|
|
|
|
typedef gint8 SINT8;
|
|
typedef gint8 INT8;
|
|
typedef gint16 SINT16;
|
|
typedef gint16 INT16;
|
|
typedef gint32 SINT32;
|
|
typedef gint32 INT32;
|
|
typedef gint64 SINT64;
|
|
typedef gint64 INT64;
|
|
|
|
typedef guint8 UINT8;
|
|
typedef guint16 UINT16;
|
|
typedef guint32 UINT32;
|
|
typedef guint64 UINT64;
|
|
|
|
typedef gboolean BOOL;
|
|
|
|
typedef signed char CHAR;
|
|
typedef signed char TCHAR;
|
|
typedef unsigned char BYTE;
|
|
typedef guint32 DWORD;
|
|
typedef guint16 WORD;
|
|
|
|
#define INTPTR gintptr
|
|
|
|
#define PTR_TO_UINT32(p) ((UINT32)GPOINTER_TO_UINT(p))
|
|
#define UINT32_TO_PTR(v) GUINT_TO_POINTER((UINT32)(v))
|
|
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
|
|
#ifndef TRUE
|
|
#define TRUE (!FALSE)
|
|
#endif
|
|
|
|
#ifndef MAX_PATH
|
|
#define MAX_PATH MAXPATHLEN
|
|
#endif
|
|
|
|
#ifndef np2max
|
|
#define np2max(a,b) (((a) > (b)) ? (a) : (b))
|
|
#endif
|
|
#ifndef np2min
|
|
#define np2min(a,b) (((a) < (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#ifndef ZeroMemory
|
|
#define ZeroMemory(d,n) memset((d), 0, (n))
|
|
#endif
|
|
#ifndef CopyMemory
|
|
#define CopyMemory(d,s,n) memcpy((d), (s), (n))
|
|
#endif
|
|
#ifndef FillMemory
|
|
#define FillMemory(a, b, c) memset((a), (c), (b))
|
|
#endif
|
|
|
|
#ifndef roundup
|
|
#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
|
|
#endif
|
|
|
|
#ifndef NELEMENTS
|
|
#define NELEMENTS(a) ((int)(sizeof(a) / sizeof(a[0])))
|
|
#endif
|
|
|
|
/* archtecture */
|
|
/* amd64 */
|
|
#if defined(amd64) || defined(__AMD64__) || defined(__amd64__) || \
|
|
defined(x86_64) || defined(__x86_64__) || defined(__X86_64__)
|
|
#define NP2_CPU_ARCH_AMD64
|
|
#endif /* amd64 */
|
|
/* i386 */
|
|
#if defined(i386) || defined(__i386__) || defined(NP2_CPU_ARCH_AMD64)
|
|
#define NP2_CPU_ARCH_IA32
|
|
#endif /* i386 */
|
|
|
|
#if defined(__GNUC__)
|
|
#if defined(NP2_CPU_ARCH_IA32)
|
|
#define GCC_CPU_ARCH_IA32
|
|
#endif
|
|
#if defined(NP2_CPU_ARCH_AMD64)
|
|
#define GCC_CPU_ARCH_AMD64
|
|
#endif
|
|
#endif /* __GNUC__ */
|
|
|
|
#if defined(SUPPORT_LARGE_HDD)
|
|
typedef SINT64 FILEPOS;
|
|
typedef SINT64 FILELEN;
|
|
#define NHD_MAXSIZE 8000
|
|
#define NHD_MAXSIZE2 32000
|
|
#else
|
|
typedef SINT32 FILEPOS;
|
|
typedef SINT32 FILELEN;
|
|
#define NHD_MAXSIZE 2000
|
|
#define NHD_MAXSIZE2 2000
|
|
#endif
|
|
|
|
#define _T
|
|
#define _tcscpy strcpy
|
|
#define _tcsicmp strcasecmp
|
|
#define _tcsnicmp strncasecmp
|
|
|
|
G_BEGIN_DECLS
|
|
UINT32 gettick(void);
|
|
G_END_DECLS
|
|
#define GETTICK() gettick()
|
|
#define GETRAND() random()
|
|
#define SPRINTF sprintf
|
|
#define STRLEN strlen
|
|
|
|
#define OEMCHAR gchar
|
|
#define OEMTEXT(s) s
|
|
#define OEMSPRINTF sprintf
|
|
#define OEMSTRLEN strlen
|
|
|
|
#define msgbox(title, msg) toolkit_messagebox(title, msg);
|
|
|
|
#if defined(CPUCORE_IA32)
|
|
#if !defined(DISABLE_PC9821)
|
|
#define IA32_PAGING_EACHSIZE
|
|
#define IA32_REBOOT_ON_PANIC
|
|
#define SUPPORT_PC9821
|
|
#define SUPPORT_CRT31KHZ
|
|
#endif
|
|
#else
|
|
#define SUPPORT_CRT15KHZ
|
|
#endif
|
|
#define SUPPORT_IDEIO
|
|
#if !defined(SUPPORT_PC9821)
|
|
#define SUPPORT_BMS
|
|
#endif
|
|
|
|
#if defined(NP2_CPU_ARCH_IA32)
|
|
#undef MEMOPTIMIZE
|
|
#define LOADINTELDWORD(a) (*((const UINT32 *)(a)))
|
|
#define LOADINTELWORD(a) (*((const UINT16 *)(a)))
|
|
#define STOREINTELDWORD(a, b) *(UINT32 *)(a) = (b)
|
|
#define STOREINTELWORD(a, b) *(UINT16 *)(a) = (b)
|
|
#if !defined(DEBUG) && !defined(NP2_CPU_ARCH_AMD64)
|
|
#define FASTCALL __attribute__((regparm(2)))
|
|
#endif /* !DEBUG && !NP2_CPU_ARCH_AMD64 */
|
|
#elif defined(arm) || defined (__arm__)
|
|
#define MEMOPTIMIZE 2
|
|
#define OPNGENARM
|
|
#else
|
|
#define MEMOPTIMIZE 1
|
|
#endif
|
|
#define REG8 UINT8
|
|
#define REG16 UINT16
|
|
|
|
#ifndef FASTCALL
|
|
#define FASTCALL
|
|
#endif
|
|
#define CPUCALL FASTCALL
|
|
#define MEMCALL FASTCALL
|
|
#define DMACCALL FASTCALL
|
|
#define IOOUTCALL FASTCALL
|
|
#define IOINPCALL FASTCALL
|
|
#define SOUNDCALL FASTCALL
|
|
#define VRAMCALL FASTCALL
|
|
#define SCRNCALL FASTCALL
|
|
#define VERMOUTHCL FASTCALL
|
|
|
|
|
|
#ifdef DEBUG
|
|
#define INLINE
|
|
#define __ASSERT(s) assert(s)
|
|
#else
|
|
#ifndef __ASSERT
|
|
#define __ASSERT(s)
|
|
#endif
|
|
#ifndef INLINE
|
|
#define INLINE inline __attribute__((always_inline))
|
|
#endif
|
|
#endif
|
|
|
|
#define SUPPORT_EUC
|
|
#define SUPPORT_UTF8
|
|
|
|
#undef SUPPORT_8BPP
|
|
#define SUPPORT_16BPP
|
|
#define SUPPORT_24BPP
|
|
#define SUPPORT_32BPP
|
|
#define SUPPORT_NORMALDISP
|
|
|
|
#define SOUND_CRITICAL
|
|
#undef SOUNDRESERVE
|
|
#define SUPPORT_EXTERNALCHIP
|
|
|
|
#define SUPPORT_PC9861K
|
|
#define SUPPORT_HOSTDRV
|
|
|
|
#define SUPPORT_RESUME
|
|
//#define SUPPORT_STATSAVE
|
|
|
|
#undef SUPPORT_SASI
|
|
#undef SUPPORT_SCSI
|
|
|
|
#define SUPPORT_S98
|
|
#define SUPPORT_KEYDISP
|
|
#define SUPPORT_SOFTKBD 0
|
|
|
|
#define SUPPORT_HRTIMER
|
|
|
|
#define SUPPORT_SCREENSIZE
|
|
|
|
#if defined(USE_SDLAUDIO) || defined(USE_SDLMIXER)
|
|
#define SUPPORT_JOYSTICK
|
|
#define USE_SDL_JOYSTICK
|
|
#endif /* USE_SDLAUDIO || USE_SDLMIXER */
|
|
|
|
#define SUPPORT_PX
|
|
#define SUPPORT_V30ORIGINAL
|
|
#define SUPPORT_V30EXT
|
|
#define VAEG_FIX
|
|
//#define SUPPORT_WAVEREC
|
|
/*
|
|
* You could specify a complete path, e.g. "/etc/timidity.cfg", and
|
|
* then specify the library directory in the configuration file.
|
|
*/
|
|
extern char timidity_cfgfile_path[MAX_PATH];
|
|
#define TIMIDITY_CFGFILE timidity_cfgfile_path
|
|
|
|
#if defined(SUPPORT_LARGE_MEMORY)
|
|
#define MEMORY_MAXSIZE 4000
|
|
#else
|
|
#define MEMORY_MAXSIZE 230
|
|
#endif
|
|
|
|
#include "common.h"
|
|
#include "milstr.h"
|
|
#include "_memory.h"
|
|
#include "rect.h"
|
|
#include "lstarray.h"
|
|
#include "trace.h"
|
|
#include "toolkit.h"
|
|
|
|
#endif /* NP2_X11_COMPILER_H__ */
|