bit of cleaning
[drnoksnes] / port.h
diff --git a/port.h b/port.h
index 4280303..c753779 100644 (file)
--- a/port.h
+++ b/port.h
@@ -53,452 +53,123 @@ I can't take it anymore, it's too convoluted.  So I've commented out the entire
        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
-*/
-