Getting the ball rolling on replacing the movie savestate ostream usage. Porting over the emufile class for desmume. Had to impport its types.h as types-des.h to get it to compile. Added the files to both the vc9 & vc10 proj files.
This commit is contained in:
parent
7480101827
commit
5993feb80c
|
@ -0,0 +1,14 @@
|
||||||
|
#include "types-des.h"
|
||||||
|
#include "emufile.h"
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
bool EMUFILE::readAllBytes(std::vector<u8>* dstbuf, const std::string& fname)
|
||||||
|
{
|
||||||
|
EMUFILE_FILE file(fname.c_str(),"rb");
|
||||||
|
if(file.fail()) return false;
|
||||||
|
int size = file.size();
|
||||||
|
dstbuf->resize(size);
|
||||||
|
file.fread(&dstbuf->at(0),size);
|
||||||
|
return true;
|
||||||
|
}
|
|
@ -0,0 +1,257 @@
|
||||||
|
/* Copyright (C) 2009 DeSmuME team
|
||||||
|
*
|
||||||
|
* This file is part of DeSmuME
|
||||||
|
*
|
||||||
|
* DeSmuME is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* DeSmuME is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with DeSmuME; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef EMUFILE_H
|
||||||
|
#define EMUFILE_H
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "types-des.h"
|
||||||
|
#include <vector>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <string>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#ifdef _XBOX
|
||||||
|
#undef min;
|
||||||
|
#undef max;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class EMUFILE {
|
||||||
|
protected:
|
||||||
|
bool failbit;
|
||||||
|
|
||||||
|
public:
|
||||||
|
EMUFILE()
|
||||||
|
: failbit(false)
|
||||||
|
{}
|
||||||
|
|
||||||
|
virtual ~EMUFILE() {}
|
||||||
|
|
||||||
|
static bool readAllBytes(std::vector<u8>* buf, const std::string& fname);
|
||||||
|
|
||||||
|
bool fail() { return failbit; }
|
||||||
|
|
||||||
|
bool eof() { return size()==ftell(); }
|
||||||
|
|
||||||
|
size_t fread(const void *ptr, size_t bytes){
|
||||||
|
return _fread(ptr,bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
void unget() { fseek(-1,SEEK_CUR); }
|
||||||
|
|
||||||
|
//virtuals
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual FILE *get_fp() = 0;
|
||||||
|
|
||||||
|
virtual int fprintf(const char *format, ...) = 0;
|
||||||
|
|
||||||
|
virtual int fgetc() = 0;
|
||||||
|
virtual int fputc(int c) = 0;
|
||||||
|
|
||||||
|
virtual size_t _fread(const void *ptr, size_t bytes) = 0;
|
||||||
|
|
||||||
|
//removing these return values for now so we can find any code that might be using them and make sure
|
||||||
|
//they handle the return values correctly
|
||||||
|
|
||||||
|
virtual void fwrite(const void *ptr, size_t bytes) = 0;
|
||||||
|
|
||||||
|
virtual int fseek(int offset, int origin) = 0;
|
||||||
|
|
||||||
|
virtual int ftell() = 0;
|
||||||
|
virtual int size() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
//todo - handle read-only specially?
|
||||||
|
class EMUFILE_MEMORY : public EMUFILE {
|
||||||
|
protected:
|
||||||
|
std::vector<u8> *vec;
|
||||||
|
bool ownvec;
|
||||||
|
s32 pos, len;
|
||||||
|
|
||||||
|
void reserve(u32 amt) {
|
||||||
|
if(vec->size() < amt)
|
||||||
|
vec->resize(amt);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
EMUFILE_MEMORY(std::vector<u8> *underlying) : vec(underlying), ownvec(false), pos(0), len(underlying->size()) { }
|
||||||
|
EMUFILE_MEMORY(u32 preallocate) : vec(new std::vector<u8>()), ownvec(true), pos(0), len(0) { vec->reserve(preallocate); }
|
||||||
|
EMUFILE_MEMORY() : vec(new std::vector<u8>()), ownvec(true), pos(0), len(0) { vec->reserve(1024); }
|
||||||
|
|
||||||
|
~EMUFILE_MEMORY() {
|
||||||
|
if(ownvec) delete vec;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8* buf() { return &(*vec)[0]; }
|
||||||
|
|
||||||
|
std::vector<u8>* get_vec() { return vec; };
|
||||||
|
|
||||||
|
virtual FILE *get_fp() { return NULL; }
|
||||||
|
|
||||||
|
virtual int fprintf(const char *format, ...) {
|
||||||
|
va_list argptr;
|
||||||
|
va_start(argptr, format);
|
||||||
|
|
||||||
|
//we dont generate straight into the buffer because it will null terminate (one more byte than we want)
|
||||||
|
int amt = vsnprintf(0,0,format,argptr);
|
||||||
|
char* tempbuf = new char[amt+1];
|
||||||
|
vsprintf(tempbuf,format,argptr);
|
||||||
|
fwrite(tempbuf,amt);
|
||||||
|
delete[] tempbuf;
|
||||||
|
va_end(argptr);
|
||||||
|
return amt;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual int fgetc() {
|
||||||
|
u8 temp;
|
||||||
|
if(_fread(&temp,1) != 1)
|
||||||
|
return EOF;
|
||||||
|
else return temp;
|
||||||
|
}
|
||||||
|
virtual int fputc(int c) {
|
||||||
|
u8 temp = (u8)c;
|
||||||
|
//TODO
|
||||||
|
//if(fwrite(&temp,1)!=1) return EOF;
|
||||||
|
fwrite(&temp,1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual size_t _fread(const void *ptr, size_t bytes){
|
||||||
|
u32 remain = len-pos;
|
||||||
|
u32 todo = std::min<u32>(remain,(u32)bytes);
|
||||||
|
memcpy((void*)ptr,buf()+pos,todo);
|
||||||
|
pos += todo;
|
||||||
|
if(todo<bytes)
|
||||||
|
failbit = true;
|
||||||
|
return todo;
|
||||||
|
}
|
||||||
|
|
||||||
|
//removing these return values for now so we can find any code that might be using them and make sure
|
||||||
|
//they handle the return values correctly
|
||||||
|
|
||||||
|
virtual void fwrite(const void *ptr, size_t bytes){
|
||||||
|
reserve(pos+bytes);
|
||||||
|
memcpy(buf()+pos,ptr,bytes);
|
||||||
|
pos += bytes;
|
||||||
|
len = std::max(pos,len);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int fseek(int offset, int origin){
|
||||||
|
//work differently for read-only...?
|
||||||
|
switch(origin) {
|
||||||
|
case SEEK_SET:
|
||||||
|
pos = offset;
|
||||||
|
break;
|
||||||
|
case SEEK_CUR:
|
||||||
|
pos += offset;
|
||||||
|
break;
|
||||||
|
case SEEK_END:
|
||||||
|
pos = size()+offset;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
assert(false);
|
||||||
|
}
|
||||||
|
reserve(pos);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int ftell() {
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int size() { return (int)len; }
|
||||||
|
};
|
||||||
|
|
||||||
|
class EMUFILE_FILE : public EMUFILE {
|
||||||
|
protected:
|
||||||
|
FILE* fp;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
EMUFILE_FILE(const char* fname, const char* mode)
|
||||||
|
{
|
||||||
|
fp = fopen(fname,mode);
|
||||||
|
if(!fp)
|
||||||
|
failbit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual ~EMUFILE_FILE() {
|
||||||
|
if(NULL != fp)
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual FILE *get_fp() {
|
||||||
|
return fp;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int fprintf(const char *format, ...) {
|
||||||
|
va_list argptr;
|
||||||
|
va_start(argptr, format);
|
||||||
|
int ret = ::vfprintf(fp, format, argptr);
|
||||||
|
va_end(argptr);
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual int fgetc() {
|
||||||
|
return ::fgetc(fp);
|
||||||
|
}
|
||||||
|
virtual int fputc(int c) {
|
||||||
|
return ::fputc(c, fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual size_t _fread(const void *ptr, size_t bytes){
|
||||||
|
size_t ret = ::fread((void*)ptr, 1, bytes, fp);
|
||||||
|
if(ret < bytes)
|
||||||
|
failbit = true;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
//removing these return values for now so we can find any code that might be using them and make sure
|
||||||
|
//they handle the return values correctly
|
||||||
|
|
||||||
|
virtual void fwrite(const void *ptr, size_t bytes){
|
||||||
|
size_t ret = ::fwrite((void*)ptr, 1, bytes, fp);
|
||||||
|
if(ret < bytes)
|
||||||
|
failbit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int fseek(int offset, int origin){
|
||||||
|
return ::fseek(fp, offset, origin);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int ftell() {
|
||||||
|
return (u32)::ftell(fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int size() {
|
||||||
|
int oldpos = ftell();
|
||||||
|
fseek(0,SEEK_END);
|
||||||
|
int len = ftell();
|
||||||
|
fseek(oldpos,SEEK_SET);
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,458 @@
|
||||||
|
/* Copyright (C) 2005 Guillaume Duhamel
|
||||||
|
Copyright (C) 2008-2009 DeSmuME team
|
||||||
|
|
||||||
|
This file is part of DeSmuME
|
||||||
|
|
||||||
|
DeSmuME is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
DeSmuME is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with DeSmuME; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TYPES_HPP
|
||||||
|
#define TYPES_HPP
|
||||||
|
|
||||||
|
//analyze microsoft compilers
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#ifdef _XBOX
|
||||||
|
//#define _XBOX //already defined
|
||||||
|
#else
|
||||||
|
#define _WINDOWS
|
||||||
|
#ifdef _M_X64
|
||||||
|
//#define _WIN64 //already defined in x64 compiler
|
||||||
|
#else
|
||||||
|
//#define _WIN32 //already defined
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//todo - everyone will want to support this eventually, i suppose
|
||||||
|
#ifdef _WINDOWS
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//xbox needs to include this to resemble windows
|
||||||
|
#ifdef _XBOX
|
||||||
|
#include <xtl.h>
|
||||||
|
#include <io.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEVELOPER
|
||||||
|
#define IF_DEVELOPER(X) X
|
||||||
|
#else
|
||||||
|
#define IF_DEVELOPER(X)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WINDOWS
|
||||||
|
//#define HAVE_WX //not useful yet....
|
||||||
|
#define HAVE_LIBAGG
|
||||||
|
#define ENABLE_SSE
|
||||||
|
#define ENABLE_SSE2
|
||||||
|
#ifdef DEVELOPER
|
||||||
|
#define HAVE_LUA
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#ifdef __SSE__
|
||||||
|
#define ENABLE_SSE
|
||||||
|
#endif
|
||||||
|
#ifdef __SSE2__
|
||||||
|
#define ENABLE_SSE2
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NOSSE
|
||||||
|
#undef ENABLE_SSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NOSSE2
|
||||||
|
#undef ENABLE_SSE2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define strcasecmp(x,y) _stricmp(x,y)
|
||||||
|
#define snprintf _snprintf
|
||||||
|
#else
|
||||||
|
#define WINAPI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#include <limits.h>
|
||||||
|
#ifndef PATH_MAX
|
||||||
|
#define MAX_PATH 1024
|
||||||
|
#else
|
||||||
|
#define MAX_PATH PATH_MAX
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _XBOX
|
||||||
|
#define MAX_PATH 1024
|
||||||
|
#define PATH_MAX 1024
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) || defined(__INTEL_COMPILER)
|
||||||
|
#define ALIGN(X) __declspec(align(X))
|
||||||
|
#elif __GNUC__
|
||||||
|
#define ALIGN(X) __attribute__ ((aligned (X)))
|
||||||
|
#else
|
||||||
|
#define ALIGN(X)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CACHE_ALIGN ALIGN(32)
|
||||||
|
|
||||||
|
//use this for example when you want a byte value to be better-aligned
|
||||||
|
#define FAST_ALIGN ALIGN(4)
|
||||||
|
|
||||||
|
#ifndef FASTCALL
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
#define FASTCALL __attribute__((fastcall))
|
||||||
|
#elif defined (__i386__) && !defined(__clang__)
|
||||||
|
#define FASTCALL __attribute__((regparm(3)))
|
||||||
|
#elif defined(_MSC_VER) || defined(__INTEL_COMPILER)
|
||||||
|
#define FASTCALL
|
||||||
|
#else
|
||||||
|
#define FASTCALL
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define _CDECL_ __cdecl
|
||||||
|
#else
|
||||||
|
#define _CDECL_
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INLINE
|
||||||
|
#if defined(_MSC_VER) || defined(__INTEL_COMPILER)
|
||||||
|
#define INLINE _inline
|
||||||
|
#else
|
||||||
|
#define INLINE inline
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FORCEINLINE
|
||||||
|
#if defined(_MSC_VER) || defined(__INTEL_COMPILER)
|
||||||
|
#define FORCEINLINE __forceinline
|
||||||
|
#define MSC_FORCEINLINE __forceinline
|
||||||
|
#else
|
||||||
|
#define FORCEINLINE inline __attribute__((always_inline))
|
||||||
|
#define MSC_FORCEINLINE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__LP64__)
|
||||||
|
typedef unsigned char u8;
|
||||||
|
typedef unsigned short u16;
|
||||||
|
typedef unsigned int u32;
|
||||||
|
typedef unsigned long long u64;
|
||||||
|
|
||||||
|
typedef signed char s8;
|
||||||
|
typedef signed short s16;
|
||||||
|
typedef signed int s32;
|
||||||
|
typedef signed long long s64;
|
||||||
|
#else
|
||||||
|
typedef unsigned char u8;
|
||||||
|
typedef unsigned short u16;
|
||||||
|
typedef unsigned int u32;
|
||||||
|
#if defined(_MSC_VER) || defined(__INTEL_COMPILER)
|
||||||
|
typedef unsigned __int64 u64;
|
||||||
|
#else
|
||||||
|
typedef unsigned long long u64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef signed char s8;
|
||||||
|
typedef signed short s16;
|
||||||
|
typedef signed int s32;
|
||||||
|
#if defined(_MSC_VER) || defined(__INTEL_COMPILER)
|
||||||
|
typedef __int64 s64;
|
||||||
|
#else
|
||||||
|
typedef signed long long s64;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef u8 uint8;
|
||||||
|
typedef u16 uint16;
|
||||||
|
|
||||||
|
#ifndef OBJ_C
|
||||||
|
typedef u32 uint32;
|
||||||
|
#else
|
||||||
|
#define uint32 u32 //uint32 is defined in Leopard somewhere, avoid conflicts
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*---------- GPU3D fixed-points types -----------*/
|
||||||
|
|
||||||
|
typedef s32 f32;
|
||||||
|
#define inttof32(n) ((n) << 12)
|
||||||
|
#define f32toint(n) ((n) >> 12)
|
||||||
|
#define floattof32(n) ((int32)((n) * (1 << 12)))
|
||||||
|
#define f32tofloat(n) (((float)(n)) / (float)(1<<12))
|
||||||
|
|
||||||
|
typedef s16 t16;
|
||||||
|
#define f32tot16(n) ((t16)(n >> 8))
|
||||||
|
#define inttot16(n) ((n) << 4)
|
||||||
|
#define t16toint(n) ((n) >> 4)
|
||||||
|
#define floattot16(n) ((t16)((n) * (1 << 4)))
|
||||||
|
#define t16ofloat(n) (((float)(n)) / (float)(1<<4))
|
||||||
|
|
||||||
|
typedef s16 v16;
|
||||||
|
#define inttov16(n) ((n) << 12)
|
||||||
|
#define f32tov16(n) (n)
|
||||||
|
#define floattov16(n) ((v16)((n) * (1 << 12)))
|
||||||
|
#define v16toint(n) ((n) >> 12)
|
||||||
|
#define v16tofloat(n) (((float)(n)) / (float)(1<<12))
|
||||||
|
|
||||||
|
typedef s16 v10;
|
||||||
|
#define inttov10(n) ((n) << 9)
|
||||||
|
#define f32tov10(n) ((v10)(n >> 3))
|
||||||
|
#define v10toint(n) ((n) >> 9)
|
||||||
|
#define floattov10(n) ((v10)((n) * (1 << 9)))
|
||||||
|
#define v10tofloat(n) (((float)(n)) / (float)(1<<9))
|
||||||
|
|
||||||
|
/*----------------------*/
|
||||||
|
|
||||||
|
#ifndef OBJ_C
|
||||||
|
typedef int BOOL;
|
||||||
|
#else
|
||||||
|
//apple also defines BOOL
|
||||||
|
typedef int desmume_BOOL;
|
||||||
|
#define BOOL desmume_BOOL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FALSE
|
||||||
|
#define FALSE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __BIG_ENDIAN__
|
||||||
|
#ifndef WORDS_BIGENDIAN
|
||||||
|
#define WORDS_BIGENDIAN
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WORDS_BIGENDIAN
|
||||||
|
# define LOCAL_BE
|
||||||
|
#else
|
||||||
|
# define LOCAL_LE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* little endian (ds' endianess) to local endianess convert macros */
|
||||||
|
#ifdef LOCAL_BE /* local arch is big endian */
|
||||||
|
# define LE_TO_LOCAL_16(x) ((((x)&0xff)<<8)|(((x)>>8)&0xff))
|
||||||
|
# define LE_TO_LOCAL_32(x) ((((x)&0xff)<<24)|(((x)&0xff00)<<8)|(((x)>>8)&0xff00)|(((x)>>24)&0xff))
|
||||||
|
# define LE_TO_LOCAL_64(x) ((((x)&0xff)<<56)|(((x)&0xff00)<<40)|(((x)&0xff0000)<<24)|(((x)&0xff000000)<<8)|(((x)>>8)&0xff000000)|(((x)>>24)&0xff00)|(((x)>>40)&0xff00)|(((x)>>56)&0xff))
|
||||||
|
# define LOCAL_TO_LE_16(x) ((((x)&0xff)<<8)|(((x)>>8)&0xff))
|
||||||
|
# define LOCAL_TO_LE_32(x) ((((x)&0xff)<<24)|(((x)&0xff00)<<8)|(((x)>>8)&0xff00)|(((x)>>24)&0xff))
|
||||||
|
# define LOCAL_TO_LE_64(x) ((((x)&0xff)<<56)|(((x)&0xff00)<<40)|(((x)&0xff0000)<<24)|(((x)&0xff000000)<<8)|(((x)>>8)&0xff000000)|(((x)>>24)&0xff00)|(((x)>>40)&0xff00)|(((x)>>56)&0xff))
|
||||||
|
#else /* local arch is little endian */
|
||||||
|
# define LE_TO_LOCAL_16(x) (x)
|
||||||
|
# define LE_TO_LOCAL_32(x) (x)
|
||||||
|
# define LE_TO_LOCAL_64(x) (x)
|
||||||
|
# define LOCAL_TO_LE_16(x) (x)
|
||||||
|
# define LOCAL_TO_LE_32(x) (x)
|
||||||
|
# define LOCAL_TO_LE_64(x) (x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// kilobytes and megabytes macro
|
||||||
|
#define MB(x) ((x)*1024*1024)
|
||||||
|
#define KB(x) ((x)*1024)
|
||||||
|
|
||||||
|
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||||
|
|
||||||
|
#define CPU_STR(c) ((c==ARM9)?"ARM9":"ARM7")
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ARM9 = 0,
|
||||||
|
ARM7 = 1
|
||||||
|
} cpu_id_t;
|
||||||
|
|
||||||
|
///endian-flips count bytes. count should be even and nonzero.
|
||||||
|
inline void FlipByteOrder(u8 *src, u32 count)
|
||||||
|
{
|
||||||
|
u8 *start=src;
|
||||||
|
u8 *end=src+count-1;
|
||||||
|
|
||||||
|
if((count&1) || !count) return; /* This shouldn't happen. */
|
||||||
|
|
||||||
|
while(count--)
|
||||||
|
{
|
||||||
|
u8 tmp;
|
||||||
|
|
||||||
|
tmp=*end;
|
||||||
|
*end=*start;
|
||||||
|
*start=tmp;
|
||||||
|
end--;
|
||||||
|
start++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
inline u64 double_to_u64(double d) {
|
||||||
|
union {
|
||||||
|
u64 a;
|
||||||
|
double b;
|
||||||
|
} fuxor;
|
||||||
|
fuxor.b = d;
|
||||||
|
return fuxor.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline double u64_to_double(u64 u) {
|
||||||
|
union {
|
||||||
|
u64 a;
|
||||||
|
double b;
|
||||||
|
} fuxor;
|
||||||
|
fuxor.a = u;
|
||||||
|
return fuxor.b;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline u32 float_to_u32(float f) {
|
||||||
|
union {
|
||||||
|
u32 a;
|
||||||
|
float b;
|
||||||
|
} fuxor;
|
||||||
|
fuxor.b = f;
|
||||||
|
return fuxor.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline float u32_to_float(u32 u) {
|
||||||
|
union {
|
||||||
|
u32 a;
|
||||||
|
float b;
|
||||||
|
} fuxor;
|
||||||
|
fuxor.a = u;
|
||||||
|
return fuxor.b;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///stores a 32bit value into the provided byte array in guaranteed little endian form
|
||||||
|
inline void en32lsb(u8 *buf, u32 morp)
|
||||||
|
{
|
||||||
|
buf[0]=(u8)(morp);
|
||||||
|
buf[1]=(u8)(morp>>8);
|
||||||
|
buf[2]=(u8)(morp>>16);
|
||||||
|
buf[3]=(u8)(morp>>24);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void en16lsb(u8* buf, u16 morp)
|
||||||
|
{
|
||||||
|
buf[0]=(u8)morp;
|
||||||
|
buf[1]=(u8)(morp>>8);
|
||||||
|
}
|
||||||
|
|
||||||
|
///unpacks a 64bit little endian value from the provided byte array into host byte order
|
||||||
|
inline u64 de64lsb(u8 *morp)
|
||||||
|
{
|
||||||
|
return morp[0]|(morp[1]<<8)|(morp[2]<<16)|(morp[3]<<24)|((u64)morp[4]<<32)|((u64)morp[5]<<40)|((u64)morp[6]<<48)|((u64)morp[7]<<56);
|
||||||
|
}
|
||||||
|
|
||||||
|
///unpacks a 32bit little endian value from the provided byte array into host byte order
|
||||||
|
inline u32 de32lsb(u8 *morp)
|
||||||
|
{
|
||||||
|
return morp[0]|(morp[1]<<8)|(morp[2]<<16)|(morp[3]<<24);
|
||||||
|
}
|
||||||
|
|
||||||
|
///unpacks a 16bit little endian value from the provided byte array into host byte order
|
||||||
|
inline u16 de16lsb(u8 *morp)
|
||||||
|
{
|
||||||
|
return morp[0]|(morp[1]<<8);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef ARRAY_SIZE
|
||||||
|
//taken from winnt.h
|
||||||
|
extern "C++" // templates cannot be declared to have 'C' linkage
|
||||||
|
template <typename T, size_t N>
|
||||||
|
char (*BLAHBLAHBLAH( UNALIGNED T (&)[N] ))[N];
|
||||||
|
|
||||||
|
#define ARRAY_SIZE(A) (sizeof(*BLAHBLAHBLAH(A)))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//fairly standard for loop macros
|
||||||
|
#define MACRODO1(TRICK,TODO) { const int X = TRICK; TODO; }
|
||||||
|
#define MACRODO2(X,TODO) { MACRODO1((X),TODO) MACRODO1(((X)+1),TODO) }
|
||||||
|
#define MACRODO4(X,TODO) { MACRODO2((X),TODO) MACRODO2(((X)+2),TODO) }
|
||||||
|
#define MACRODO8(X,TODO) { MACRODO4((X),TODO) MACRODO4(((X)+4),TODO) }
|
||||||
|
#define MACRODO16(X,TODO) { MACRODO8((X),TODO) MACRODO8(((X)+8),TODO) }
|
||||||
|
#define MACRODO32(X,TODO) { MACRODO16((X),TODO) MACRODO16(((X)+16),TODO) }
|
||||||
|
#define MACRODO64(X,TODO) { MACRODO32((X),TODO) MACRODO32(((X)+32),TODO) }
|
||||||
|
#define MACRODO128(X,TODO) { MACRODO64((X),TODO) MACRODO64(((X)+64),TODO) }
|
||||||
|
#define MACRODO256(X,TODO) { MACRODO128((X),TODO) MACRODO128(((X)+128),TODO) }
|
||||||
|
|
||||||
|
//this one lets you loop any number of times (as long as N<256)
|
||||||
|
#define MACRODO_N(N,TODO) {\
|
||||||
|
if((N)&0x100) MACRODO256(0,TODO); \
|
||||||
|
if((N)&0x080) MACRODO128((N)&(0x100),TODO); \
|
||||||
|
if((N)&0x040) MACRODO64((N)&(0x100|0x080),TODO); \
|
||||||
|
if((N)&0x020) MACRODO32((N)&(0x100|0x080|0x040),TODO); \
|
||||||
|
if((N)&0x010) MACRODO16((N)&(0x100|0x080|0x040|0x020),TODO); \
|
||||||
|
if((N)&0x008) MACRODO8((N)&(0x100|0x080|0x040|0x020|0x010),TODO); \
|
||||||
|
if((N)&0x004) MACRODO4((N)&(0x100|0x080|0x040|0x020|0x010|0x008),TODO); \
|
||||||
|
if((N)&0x002) MACRODO2((N)&(0x100|0x080|0x040|0x020|0x010|0x008|0x004),TODO); \
|
||||||
|
if((N)&0x001) MACRODO1((N)&(0x100|0x080|0x040|0x020|0x010|0x008|0x004|0x002),TODO); \
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------
|
||||||
|
//Binary constant generator macro By Tom Torfs - donated to the public domain
|
||||||
|
|
||||||
|
//turn a numeric literal into a hex constant
|
||||||
|
//(avoids problems with leading zeroes)
|
||||||
|
//8-bit constants max value 0x11111111, always fits in unsigned long
|
||||||
|
#define HEX__(n) 0x##n##LU
|
||||||
|
|
||||||
|
//8-bit conversion function
|
||||||
|
#define B8__(x) ((x&0x0000000FLU)?1:0) \
|
||||||
|
+((x&0x000000F0LU)?2:0) \
|
||||||
|
+((x&0x00000F00LU)?4:0) \
|
||||||
|
+((x&0x0000F000LU)?8:0) \
|
||||||
|
+((x&0x000F0000LU)?16:0) \
|
||||||
|
+((x&0x00F00000LU)?32:0) \
|
||||||
|
+((x&0x0F000000LU)?64:0) \
|
||||||
|
+((x&0xF0000000LU)?128:0)
|
||||||
|
|
||||||
|
//for upto 8-bit binary constants
|
||||||
|
#define B8(d) ((unsigned char)B8__(HEX__(d)))
|
||||||
|
|
||||||
|
// for upto 16-bit binary constants, MSB first
|
||||||
|
#define B16(dmsb,dlsb) (((unsigned short)B8(dmsb)<<8) \
|
||||||
|
+ B8(dlsb))
|
||||||
|
|
||||||
|
// for upto 32-bit binary constants, MSB first */
|
||||||
|
#define B32(dmsb,db2,db3,dlsb) (((unsigned long)B8(dmsb)<<24) \
|
||||||
|
+ ((unsigned long)B8(db2)<<16) \
|
||||||
|
+ ((unsigned long)B8(db3)<<8) \
|
||||||
|
+ B8(dlsb))
|
||||||
|
|
||||||
|
//Sample usage:
|
||||||
|
//B8(01010101) = 85
|
||||||
|
//B16(10101010,01010101) = 43605
|
||||||
|
//B32(10000000,11111111,10101010,01010101) = 2164238933
|
||||||
|
//---------------------------
|
||||||
|
|
||||||
|
#ifndef CTASSERT
|
||||||
|
#define CTASSERT(x) typedef char __assert ## y[(x) ? 1 : -1]
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static const char hexValid[23] = {"0123456789ABCDEFabcdef"};
|
||||||
|
|
||||||
|
|
||||||
|
template<typename T> inline void reconstruct(T* t) {
|
||||||
|
t->~T();
|
||||||
|
new(t) T();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
|
@ -493,6 +493,7 @@
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsC</CompileAs>
|
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsC</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\src\drivers\win\taseditlib\taseditproj.cpp" />
|
<ClCompile Include="..\src\drivers\win\taseditlib\taseditproj.cpp" />
|
||||||
|
<ClCompile Include="..\src\emufile.cpp" />
|
||||||
<ClCompile Include="..\src\input\arkanoid.cpp" />
|
<ClCompile Include="..\src\input\arkanoid.cpp" />
|
||||||
<ClCompile Include="..\src\input\bworld.cpp" />
|
<ClCompile Include="..\src\input\bworld.cpp" />
|
||||||
<ClCompile Include="..\src\input\cursor.cpp" />
|
<ClCompile Include="..\src\input\cursor.cpp" />
|
||||||
|
@ -737,6 +738,7 @@
|
||||||
<ClInclude Include="..\src\drivers\win\lua\include\luaconf.h" />
|
<ClInclude Include="..\src\drivers\win\lua\include\luaconf.h" />
|
||||||
<ClInclude Include="..\src\drivers\win\lua\include\lualib.h" />
|
<ClInclude Include="..\src\drivers\win\lua\include\lualib.h" />
|
||||||
<ClInclude Include="..\src\drivers\win\taseditlib\taseditproj.h" />
|
<ClInclude Include="..\src\drivers\win\taseditlib\taseditproj.h" />
|
||||||
|
<ClInclude Include="..\src\emufile.h" />
|
||||||
<ClInclude Include="..\src\fir\c44100ntsc.h" />
|
<ClInclude Include="..\src\fir\c44100ntsc.h" />
|
||||||
<ClInclude Include="..\src\fir\c44100pal.h" />
|
<ClInclude Include="..\src\fir\c44100pal.h" />
|
||||||
<ClInclude Include="..\src\fir\c48000ntsc.h" />
|
<ClInclude Include="..\src\fir\c48000ntsc.h" />
|
||||||
|
|
|
@ -906,6 +906,7 @@
|
||||||
<ClCompile Include="..\src\vsuni.cpp" />
|
<ClCompile Include="..\src\vsuni.cpp" />
|
||||||
<ClCompile Include="..\src\wave.cpp" />
|
<ClCompile Include="..\src\wave.cpp" />
|
||||||
<ClCompile Include="..\src\x6502.cpp" />
|
<ClCompile Include="..\src\x6502.cpp" />
|
||||||
|
<ClCompile Include="..\src\emufile.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\src\drivers\common\args.h">
|
<ClInclude Include="..\src\drivers\common\args.h">
|
||||||
|
@ -1343,6 +1344,7 @@
|
||||||
<ClInclude Include="..\src\lua\src\lzio.h">
|
<ClInclude Include="..\src\lua\src\lzio.h">
|
||||||
<Filter>drivers\win\lua</Filter>
|
<Filter>drivers\win\lua</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\src\emufile.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\src\drivers\win\res.rc">
|
<ResourceCompile Include="..\src\drivers\win\res.rc">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9,00"
|
Version="9.00"
|
||||||
Name="fceux"
|
Name="fceux"
|
||||||
ProjectGUID="{6893EF44-FEA3-46DF-B236-C4C200F54294}"
|
ProjectGUID="{6893EF44-FEA3-46DF-B236-C4C200F54294}"
|
||||||
RootNamespace="fceux"
|
RootNamespace="fceux"
|
||||||
|
@ -105,6 +105,85 @@
|
||||||
CommandLine="xcopy /y /d "$(ProjectDir)\..\src\drivers\win\7z.dll" "$(OutDir)"
"
|
CommandLine="xcopy /y /d "$(ProjectDir)\..\src\drivers\win\7z.dll" "$(OutDir)"
"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|x64"
|
||||||
|
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="0"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
TargetEnvironment="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="0"
|
||||||
|
AdditionalIncludeDirectories="../zlib"
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;MSVC;_CRT_SECURE_NO_DEPRECATE;_WIN32_WINDOWS=0x0410;WINVER=0x0410;NETWORK;LSB_FIRST"
|
||||||
|
MinimalRebuild="true"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="1"
|
||||||
|
DisableLanguageExtensions="false"
|
||||||
|
ForceConformanceInForLoopScope="false"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
Detect64BitPortabilityProblems="true"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
CompileAs="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib"
|
||||||
|
LinkIncremental="2"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="2"
|
||||||
|
EntryPointSymbol="mainCRTStartup"
|
||||||
|
TargetMachine="17"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="..\output"
|
OutputDirectory="..\output"
|
||||||
|
@ -192,85 +271,6 @@
|
||||||
CommandLine="xcopy /y /d "$(ProjectDir)\..\src\drivers\win\7z.dll" "$(OutDir)"
"
|
CommandLine="xcopy /y /d "$(ProjectDir)\..\src\drivers\win\7z.dll" "$(OutDir)"
"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
|
||||||
Name="Debug|x64"
|
|
||||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
|
||||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
|
||||||
ConfigurationType="1"
|
|
||||||
CharacterSet="0"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories="../zlib"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;MSVC;_CRT_SECURE_NO_DEPRECATE;_WIN32_WINDOWS=0x0410;WINVER=0x0410;NETWORK;LSB_FIRST"
|
|
||||||
MinimalRebuild="true"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="1"
|
|
||||||
DisableLanguageExtensions="false"
|
|
||||||
ForceConformanceInForLoopScope="false"
|
|
||||||
UsePrecompiledHeader="0"
|
|
||||||
WarningLevel="3"
|
|
||||||
Detect64BitPortabilityProblems="true"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CompileAs="1"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib"
|
|
||||||
LinkIncremental="2"
|
|
||||||
GenerateDebugInformation="true"
|
|
||||||
SubSystem="2"
|
|
||||||
EntryPointSymbol="mainCRTStartup"
|
|
||||||
TargetMachine="17"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||||
|
@ -735,7 +735,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Debug|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -744,7 +744,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -894,7 +894,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Debug|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -903,7 +903,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -1020,7 +1020,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Debug|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -1029,7 +1029,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -1148,7 +1148,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Debug|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -1157,7 +1157,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -2316,6 +2316,15 @@
|
||||||
CompileAs="1"
|
CompileAs="1"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||||
|
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
|
@ -2326,15 +2335,6 @@
|
||||||
CompileAs="1"
|
CompileAs="1"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
|
||||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
|
@ -2394,7 +2394,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Debug|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -2403,7 +2403,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -2788,7 +2788,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Debug|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -2797,7 +2797,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -2823,6 +2823,14 @@
|
||||||
RelativePath="..\src\drawing.cpp"
|
RelativePath="..\src\drawing.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\src\emufile.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\src\emufile.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\fceu.cpp"
|
RelativePath="..\src\fceu.cpp"
|
||||||
>
|
>
|
||||||
|
|
Loading…
Reference in New Issue