with a single define-block for each target platform.
*/
-/*
-** _SNESPPC DEFINES
-*/
-
-#ifdef __GIZ__
-
//Title
-#define TITLE "Snes9x"
+#define TITLE "DrNokSnes"
//Required Includes
#include "pixform.h"
-#include <zlib.h> //RC
-//#include <windows.h>
+#include <zlib.h>
+#include <stdint.h>
#include <limits.h>
#include <string.h>
-//Types Defined
-typedef unsigned char bool8;
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef unsigned int uint32;
-typedef signed char int8;
-typedef short int16;
-typedef int int32;
-typedef long long int64;
-//CSNES Types for conversion to 32 bit
-/*typedef unsigned long bool8_32;
-typedef unsigned long uint8_32;
-typedef unsigned long uint16_32;
-typedef long int8_32;
-typedef long int16_32;*/
+//Types Defined
+typedef uint8_t bool8;
+typedef uint8_t uint8;
+typedef uint16_t uint16;
+typedef uint32_t uint32;
+typedef int8_t int8;
+typedef int16_t int16;
+typedef int32_t int32;
+typedef int64_t int64;
//For Debugging Purposes:
-typedef unsigned char bool8_32;
-typedef unsigned char uint8_32;
-typedef unsigned short uint16_32;
-typedef signed char int8_32;
-typedef short int16_32;
-
+typedef uint8_t bool8_32;
+typedef uint8_t uint8_32;
+typedef uint16_t uint16_32;
+typedef int8_t int8_32;
+typedef int16_t int16_32;
//Defines for Extern C
-#define EXTERN_C extern
-#define START_EXTERN_C extern "C" {
+#ifdef __cplusplus
+#define EXTERN_C extern "C"
+#define START_EXTERN_C EXTERN_C {
#define END_EXTERN_C }
+#else
+#define EXTERN_C extern
+#define START_EXTERN_C
+#define END_EXTERN_C
+#endif
//Path Defines
-#undef _MAX_PATH
#define _MAX_DIR PATH_MAX
#define _MAX_DRIVE 1
-#define _MAX_FNAME PATH_MAX
-#define _MAX_EXT PATH_MAX
-#define PATH_MAX 1024
-#define _MAX_PATH (1024)
+#define _MAX_FNAME NAME_MAX
+#define _MAX_EXT NAME_MAX
+#define _MAX_PATH PATH_MAX
//True/False Defines
#define TRUE 1
#define FALSE 0
-//Slash Char Definitions
-#define SLASH_STR "\\"
-#define SLASH_CHAR '\\'
-
-//Misc Items
-#define VAR_CYCLES
-//#define SPC700_SHUTDOWN
-#define LSB_FIRST
-#define STATIC static
-#define FASTCALL
-#define PIXEL_FORMAT RGB565
-#define CHECK_SOUND()
-#define VOID void
-#define CPU_SHUTDOWN
-#define UNZIP_SUPPORT
-#define ZeroMemory(a,b) memset((a),0,(b))
-#define PACKING __attribute__ ((packed))
-#define ALIGN_BY_ONE __attribute__ ((aligned (1), packed))
-#define LSB_FIRST
-#undef FAST_LSB_WORD_ACCESS
-#define ASM_SPC700
-
-EXTERN_C void S9xGenerateSound ();
-
-//Additional Items for _SNESPPC port
-void _makepath (char *path, const char *drive, const char *dir,
- const char *fname, const char *ext);
-void _splitpath (const char *path, char *drive, char *dir, char *fname,
- char *ext);
-#define strcasecmp strcmp
-#define strncasecmp strncmp
-#define time(a) (0)
-
-#ifdef INLINE
-#undef INLINE
-#define INLINE __inline
-#endif
-
-#ifdef inline
-#undef inline
-#define inline __inline
+// Config -> Defines
+#if CONF_BUILD_ASM_SPC700
+#define ASM_SPC700 1
+#else
+#undef ASM_SPC700
#endif
-#endif // _SNESPPC
-
-#ifdef __GP2X__
-
-//Title
-#define TITLE "Snes9x"
-
-//Required Includes
-#include "pixform.h"
-#include <zlib.h> //RC
-//#include <windows.h>
-#include <limits.h>
-#include <string.h>
-//Types Defined
-typedef unsigned char bool8;
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef unsigned int uint32;
-typedef signed char int8;
-typedef short int16;
-typedef int int32;
-typedef long long int64;
-
-//CSNES Types for conversion to 32 bit
-/*typedef unsigned long bool8_32;
-typedef unsigned long uint8_32;
-typedef unsigned long uint16_32;
-typedef long int8_32;
-typedef long int16_32;*/
-
-//For Debugging Purposes:
-
-typedef unsigned char bool8_32;
-typedef unsigned char uint8_32;
-typedef unsigned short uint16_32;
-typedef signed char int8_32;
-typedef short int16_32;
-
-
-//Defines for Extern C
-#define EXTERN_C extern
-#define START_EXTERN_C extern "C" {
-#define END_EXTERN_C }
-
-//Path Defines
-#undef _MAX_PATH
-#define _MAX_DIR PATH_MAX
-#define _MAX_DRIVE 1
-#define _MAX_FNAME PATH_MAX
-#define _MAX_EXT PATH_MAX
-#define _MAX_PATH (1024)
-
-//True/False Defines
-#define TRUE 1
-#define FALSE 0
-
-//Slash Char Definitions
-#define SLASH_STR "/"
-#define SLASH_CHAR '/'
+// Configuration defines I think I know what they're for
+#define SUPER_FX 1
+#define USE_SA1 1
+#define CPU_SHUTDOWN 1
+//#define NETPLAY_SUPPORT 1
+#define ZLIB 1
+#define UNZIP_SUPPORT 1
+#define NO_INLINE_SET_GET 1
//Misc Items
#define VAR_CYCLES
//#define SPC700_SHUTDOWN
#define LSB_FIRST
-#define STATIC static
-#define FASTCALL
#define PIXEL_FORMAT RGB565
#define CHECK_SOUND()
-#define VOID void
-#define CPU_SHUTDOWN
-#define UNZIP_SUPPORT
#define ZeroMemory(a,b) memset((a),0,(b))
#define PACKING __attribute__ ((packed))
#define ALIGN_BY_ONE __attribute__ ((aligned (1), packed))
#define LSB_FIRST
#undef FAST_LSB_WORD_ACCESS
-#define ASM_SPC700
-#define SUPER_FX
-
-EXTERN_C void S9xGenerateSound ();
-
-//Additional Items for _SNESPPC port
-void _makepath (char *path, const char *drive, const char *dir,
- const char *fname, const char *ext);
-void _splitpath (const char *path, char *drive, char *dir, char *fname,
- char *ext);
-#define strcasecmp strcmp
-#define strncasecmp strncmp
-#define time(a) (0)
-#ifdef INLINE
-#undef INLINE
+// Language abstractions
+#define FASTCALL
+#define STATIC static
#define INLINE inline
-#endif
-
-#ifdef inline
-#undef inline
-#define inline inline
-#endif
-
-#endif // _SNESPPC
-#endif // _PORT_H_
-
-/*
-#ifndef _SNESPPC
-#define _SNESPPC
-#endif
-
-#ifndef RC_OPTIMIZED
-#define RC_OPTIMIZED
-#endif
-
-#ifdef inline
-#undef inline
-#endif
-
-#ifdef INLINE
-#undef INLINE
-#endif
-
-#define inline __inline
-#define INLINE __inline
-
-#ifdef DEBUG
-#ifndef _PROFILE_
-#define _PROFILE_
-#endif
-#endif
-#ifndef _SNESPPC
-#ifndef STORM
-#include <memory.h>
-#include <string.h>
+START_EXTERN_C
+// Path functions
+void PathMake(char *path, const char *drive, const char *dir,
+ const char *fname, const char *ext);
+void PathSplit(const char *path, char *drive, char *dir, char *fname, char *ext);
+/** A simplified basename function returning a pointer inside the src string */
+const char * PathBasename(const char * path);
+END_EXTERN_C
+
+// Stream functions, used when opening ROMs and snapshots.
+#ifdef ZLIB
+#include <zlib.h>
+#define STREAM gzFile
+#define READ_STREAM(p,l,s) gzread (s,p,l)
+#define WRITE_STREAM(p,l,s) gzwrite (s,p,l)
+#define GETS_STREAM(p,l,s) gzgets(s,p,l)
+#define GETC_STREAM(s) gzgetc(s)
+#define OPEN_STREAM(f,m) gzopen (f,m)
+#define REOPEN_STREAM(f,m) gzdopen (f,m)
+#define FIND_STREAM(f) gztell(f)
+#define REVERT_STREAM(f,o,s) gzseek(f,o,s)
+#define CLOSE_STREAM(s) gzclose (s)
#else
-//#include <strings.h>
-//#include <clib/powerpc_protos.h>
+#define STREAM FILE *
+#define READ_STREAM(p,l,s) fread (p,1,l,s)
+#define WRITE_STREAM(p,l,s) fwrite (p,1,l,s)
+#define GETS_STREAM(p,l,s) fgets(p,l,s)
+#define GETC_STREAM(s) fgetc(s)
+#define OPEN_STREAM(f,m) fopen (f,m)
+#define REOPEN_STREAM(f,m) fdopen (f,m)
+#define FIND_STREAM(f) ftell(f)
+#define REVERT_STREAM(f,o,s) fseek(f,o,s)
+#define CLOSE_STREAM(s) fclose (s)
#endif
-#include <sys/types.h>
-#else
-#include <windows.h>
#endif
-#define PIXEL_FORMAT RGB565
-//#define GFX_MULTI_FORMAT
-
-#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
-
-#ifdef _SNESPPC
-#include "zlib/zlib.h" //RC
-#else
-#include "zlib.h"
-#endif
-
-#define ZLIB
-#define EXECUTE_SUPERFX_PER_LINE
-#define SOUND
-#define VAR_CYCLES
-#define CPU_SHUTDOWN
-#define SPC700_SHUTDOWN
-#define PIXEL_FORMAT RGB555
-#define CHECK_SOUND()
-#define M_PI 3.14159265359
-#undef _MAX_PATH
-
-#undef DEBUGGER // Apple Universal Headers sometimes #define DEBUGGER
-#undef GFX_MULTI_FORMAT
-
-int strncasecmp(const char *s1, const char *s2, unsigned n);
-int strcasecmp(const char *s1, const char *s2 );
-
-#endif
-
-#ifndef snes9x_types_defined
-#define snes9x_types_defined
-
-//CSNES
-#ifdef _SNESPPC
-typedef unsigned long bool8;
-#else
-typedef unsigned char bool8;
-#endif
-
-#ifndef __WIN32__
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef signed char int8;
-typedef short int16;
-//typedef long int32;
-//typedef unsigned long uint32;
-typedef int int32;
-typedef unsigned int uint32;
-#ifdef _SNESPPC
-typedef __int64 int64;
-//CSNES
-typedef unsigned long uint8_32;
-typedef unsigned long uint16_32;
-typedef long int8_32;
-typedef long int16_32;
-
-#else
-typedef long long int64;
-#endif
-#else // __WIN32__
-
-#ifdef __BORLANDC__
-//#include <systypes.h>
-#else
-
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef signed char int8;
-typedef short int16;
-
-#ifndef WSAAPI
-// winsock2.h typedefs int32 as well.
-typedef long int32;
-#endif
-
-typedef unsigned int uint32;
-
-#endif // __BORLANDC__
-
-typedef __int64 int64;
-
-#endif // __WIN32__
-#endif // snes9x_types_defined
-#include "pixform.h"
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifdef STORM
-#define EXTERN_C
-#define START_EXTERN_C
-#define END_EXTERN_C
-#else
-#if defined(__cplusplus) || defined(c_plusplus)
-#define EXTERN_C extern "C"
-#define START_EXTERN_C extern "C" {
-#define END_EXTERN_C }
-#else
-#define EXTERN_C extern
-#define START_EXTERN_C
-#define END_EXTERN_C
-#endif
-#endif
-
-#ifndef __WIN32__
-
-#ifndef PATH_MAX
-#define PATH_MAX 1024
-#endif
-
-#define _MAX_DIR PATH_MAX
-#define _MAX_DRIVE 1
-#define _MAX_FNAME PATH_MAX
-#define _MAX_EXT PATH_MAX
-#ifndef _MAX_PATH
-#define _MAX_PATH PATH_MAX
-#endif
-
-#ifdef _SNESPPC
-#define strcasecmp strcmp
-#define strncasecmp strncmp
-#define time(a) (0)
-#ifdef _MAX_PATH
-#undef _MAX_PATH
-#define _MAX_PATH (1024)
-#endif
-#endif
-
-#define ZeroMemory(a,b) memset((a),0,(b))
-
-void _makepath (char *path, const char *drive, const char *dir,
- const char *fname, const char *ext);
-void _splitpath (const char *path, char *drive, char *dir, char *fname,
- char *ext);
-#else // __WIN32__
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#endif
-
-EXTERN_C void S9xGenerateSound ();
-
-#ifdef STORM
-EXTERN_C int soundsignal;
-EXTERN_C void MixSound(void);
-//Yes, CHECK_SOUND is getting defined correctly!
-#define CHECK_SOUND if (Settings.APUEnabled) if(SetSignalPPC(0L, soundsignal) & soundsignal) MixSound
-#else
-#define CHECK_SOUND()
-#endif
-
-#ifdef __DJGPP
-#define SLASH_STR "\\"
-#define SLASH_CHAR '\\'
-#else
-#define SLASH_STR "/"
-#define SLASH_CHAR '/'
-#endif
-
-#ifdef __linux
-typedef void (*SignalHandler)(int);
-#define SIG_PF SignalHandler
-#endif
-
-#if defined(__i386__) || defined(__i486__) || defined(__i586__) || \
- defined(__WIN32__) || defined(__alpha__)
-#define LSB_FIRST
-#define FAST_LSB_WORD_ACCESS
-#else
-#ifdef _SNESPPC
-#define LSB_FIRST
-//NOPE! #define FAST_LSB_WORD_ACCESS //RC
-#else
-#define MSB_FIRST
-#endif
-#endif
-
-#ifdef __sun
-#define TITLE "Snes9X: Solaris"
-#endif
-
-#ifdef __linux
-#define TITLE "Snes9X: Linux"
-#endif
-
-#ifndef TITLE
-#define TITLE "Snes9x"
-#endif
-
-#ifdef STORM
-#define STATIC
-#define strncasecmp strnicmp
-#else
-#define STATIC static
-#endif
-
-#endif
-*/
-