Updated libretro to c0449e2c75650325aed7e7495a41f166d9ec0e7a (11/03/2015 7:03:18AM)

c0449e2c75
This commit is contained in:
skidau 2015-04-14 10:39:21 +00:00
parent 14d94c32f6
commit 0e5d12f070
39 changed files with 2051 additions and 882 deletions

41
debian/changelog vendored
View File

@ -1,41 +0,0 @@
vbam (1.8.0.1042-1) lucid; urgency=low
* Use new version from upstream
-- Bastien Bouclet <bgk@users.sourceforge.net> Sun, 04 Dec 2011 08:48:11 +0100
vbam (1.8.0.1016-1) unstable; urgency=low
* Use new version from upstream, with wxwidgets patches
-- Thomas J. Moore <darktjm@gmail.com> Sun, 22 May 2011 14:08:05 -0500
vbam (1.8.0.1001-1) unstable; urgency=low
* Use new version from upstream
-- Bastien Bouclet <bbouclet@lapin> Fri, 25 Feb 2011 12:25:25 +0100
vbam (1.8.0.914-1) unstable; urgency=low
* Cleanup, packages split into SDL and GTK+ versions
-- Fernando Tarlá Cardoso Lemos <fernandotcl@gmail.com> Sun, 04 Oct 2009 19:58:09 -0300
vbam (1.8.0.913-1) unstable; urgency=low
* Using assembly optmizations for i386 and amd64 platforms
-- Fernando Tarlá Cardoso Lemos <fernandotcl@gmail.com> Sat, 03 Oct 2009 22:41:55 -0300
vbam (1.8.0.912-1) unstable; urgency=low
* Added libglademm-2.4-dev as a build-time dependency
-- Fernando Tarlá Cardoso Lemos <fernandotcl@gmail.com> Sun, 27 Sep 2009 23:26:23 -0300
vbam (1.8.0.905-1) unstable; urgency=low
* Initial release
-- Fernando Tarlá Cardoso Lemos <fernandotcl@gmail.com> Sat, 12 Sep 2009 19:39:52 -0300

43
debian/control vendored
View File

@ -1,43 +0,0 @@
Source: vbam
Section: otherosfs
Priority: optional
Maintainer: Fernando Tarlá Cardoso Lemos <fernandotcl@gmail.com>
Build-Depends: debhelper (>= 7), cmake, nasm [i386 amd64], libsdl1.2-dev, libgl-dev, libgtkmm-2.4-dev, libgtkglextmm-x11-1.2-dev, libavcodec-dev, libavformat-dev, libswscale-dev, libavutil-dev, wx-common, libcairo2-dev, liblircclient-dev, libopenal-dev, libwxgtk2.8-dev, libsfml-dev, imagemagick, zip
Standards-Version: 3.8.1
Homepage: http://www.vbam.com
Package: vbam-sdl
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Nintendo Game Boy Advance emulator
VisualBoyAdvance-M is a Nintendo Game Boy Emulator with high
compatibility with commercial games. It emulates the Nintendo Game
Boy Advance handheld console, in addition to the original Game Boy
handhelds and its Super and Color variants.
.
This package does not provide a GUI version of VisualBoyAdvance-M.
See the vbam-gtk package for the GTK+ version of this program.
See the vbam-wx package for the wxWidgets version of this program.
Package: vbam-gtk
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Nintendo Game Boy Advance emulator (GTK+ frontend)
VisualBoyAdvance-M is a Nintendo Game Boy Emulator with high
compatibility with commercial games. It emulates the Nintendo Game
Boy Advance handheld console, in addition to the original Game Boy
handhelds and its Super and Color variants.
.
This package provides the GTK+ GUI version of VisualBoyAdvance-M.
Package: vbam-wx
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Nintendo Game Boy Advance emulator (wxWidgets frontend)
VisualBoyAdvance-M is a Nintendo Game Boy Emulator with high
compatibility with commercial games. It emulates the Nintendo Game
Boy Advance handheld console, in addition to the original Game Boy
handhelds and its Super and Color variants.
.
This package provides the wxWidgets GUI version of VisualBoyAdvance-M.

86
debian/rules vendored
View File

@ -1,86 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# vi: ts=4 sw=4 noet
#
# debian/rules file that uses debhelper
# Based on an autogenerated debhelper sample
#
# Uncomment this to turn on verbose mode
#export DH_VERBOSE=1
DEB_BUILD_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU)
EXTRA_CMAKE_FLAGS =
ifeq ($(DH_VERBOSE),1)
EXTRA_CMAKE_FLAGS += -DCMAKE_VERBOSE_MAKEFILE=ON
endif
ifneq (,$(filter $(DEB_BUILD_ARCH_CPU),i386 amd64))
EXTRA_CMAKE_FLAGS += -DUSE_ASM_SCALERS=ON -DUSE_ASM_CORE=ON
endif
builddir/Makefile:
dh_testdir
mkdir -p builddir
cd builddir && \
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS="$(CFLAGS)" \
-DCMAKE_LD_FLAGS="-Wl,-z,defs" -DCMAKE_CXX_FLAGS="$(CXXFLAGS)" \
-DENABLE_LIRC=ON -DCMAKE_SKIP_RPATH=ON $(EXTRA_CMAKE_FLAGS)
build: build-stamp
build-stamp: builddir/Makefile
dh_testdir
$(MAKE) -C builddir
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp
rm -rf builddir
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
$(MAKE) -C builddir DESTDIR=$(CURDIR)/debian/tmp install
binary-indep: install
binary-arch: install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_install
dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

View File

@ -1,4 +0,0 @@
usr/bin/wxvbam
usr/share/icons
usr/share/locale/*/*/wxvbam.*
usr/share/applications/wxvbam.desktop

View File

@ -1,7 +1,9 @@
#ifndef SYSTEM_H
#define SYSTEM_H
#include "common/Types.h"
#ifndef __LIBRETRO__
#include <zlib.h>
#endif
class SoundDriver;

View File

@ -53,6 +53,20 @@ void utilWriteDataMem(uint8_t *& data, variable_desc *);
int utilReadIntMem(const uint8_t *& data);
void utilReadMem(void *buf, const uint8_t *& data, unsigned size);
void utilReadDataMem(const uint8_t *& data, variable_desc *);
#else
gzFile utilGzOpen(const char *file, const char *mode);
gzFile utilMemGzOpen(char *memory, int available, const char *mode);
int utilGzWrite(gzFile file, const voidp buffer, unsigned int len);
int utilGzRead(gzFile file, voidp buffer, unsigned int len);
int utilGzClose(gzFile file);
z_off_t utilGzSeek(gzFile file, z_off_t offset, int whence);
long utilGzMemTell(gzFile file);
void utilWriteData(gzFile, variable_desc *);
void utilReadData(gzFile, variable_desc *);
void utilReadDataSkip(gzFile, variable_desc *);
int utilReadInt(gzFile);
void utilWriteInt(gzFile, int);
#endif
#endif // UTIL_H

View File

@ -1,10 +1,13 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifndef __LIBRETRO__
#include <zlib.h>
#endif
#include "Patch.h"
#ifndef __LIBRETRO__
#ifdef __GNUC__
#if defined(__APPLE__) || defined (BSD) || defined (__NetBSD__)
@ -26,6 +29,7 @@ typedef off64_t __off64_t;
typedef __int64 __off64_t;
#endif
static int readInt2(FILE *f)
{
int res = 0;
@ -442,8 +446,11 @@ static bool patchApplyPPF(const char *patchname, u8 **rom, int *size)
return res;
}
#endif
bool applyPatch(const char *patchname, u8 **rom, int *size)
{
#ifndef __LIBRETRO__
if (strlen(patchname) < 5)
return false;
const char * p = strrchr(patchname, '.');
@ -455,5 +462,6 @@ bool applyPatch(const char *patchname, u8 **rom, int *size)
return patchApplyUPS(patchname, rom, size);
if (_stricmp(p, ".ppf") == 0)
return patchApplyPPF(patchname, rom, size);
#endif
return false;
}

View File

@ -1,4 +1,3 @@
#ifndef __LIBRETRO__
#include <memory.h>
#include <string.h>
#include <stdio.h>
@ -2591,6 +2590,7 @@ void cheatsAddCBACode(const char *code, const char *desc)
}
}
#ifndef __LIBRETRO__
void cheatsSaveGame(gzFile file)
{
utilWriteInt(file, cheatsNumber);
@ -2816,6 +2816,7 @@ bool cheatsLoadCheatList(const char *file)
fclose(f);
return true;
}
#endif
extern int cpuNextEvent;
@ -2887,4 +2888,3 @@ void cheatsWriteByte(u32 address, u8 value)
}
#endif
}
#endif

View File

@ -23,11 +23,13 @@ void cheatsDelete(int number, bool restore);
void cheatsDeleteAll(bool restore);
void cheatsEnable(int number);
void cheatsDisable(int number);
#ifndef __LIBRETRO__
void cheatsSaveGame(gzFile file);
void cheatsReadGame(gzFile file, int version);
void cheatsReadGameSkip(gzFile file, int version);
void cheatsSaveCheatList(const char *file);
bool cheatsLoadCheatList(const char *file);
#endif
void cheatsWriteMemory(u32 address, u32 value);
void cheatsWriteHalfWord(u32 address, u16 value);
void cheatsWriteByte(u32 address, u8 value);

View File

@ -7,8 +7,8 @@ extern void eepromReadGame(const u8 *&data, int version);
#else
extern void eepromSaveGame(gzFile _gzFile);
extern void eepromReadGame(gzFile _gzFile, int version);
#endif
extern void eepromReadGameSkip(gzFile _gzFile, int version);
#endif
extern int eepromRead(u32 address);
extern void eepromWrite(u32 address, u8 value);
extern void eepromInit();

View File

@ -9,8 +9,8 @@ extern void flashReadGame(const u8 *& data, int);
#else
extern void flashSaveGame(gzFile _gzFile);
extern void flashReadGame(gzFile _gzFile, int version);
#endif
extern void flashReadGameSkip(gzFile _gzFile, int version);
#endif
extern u8 flashRead(u32 address);
extern void flashWrite(u32 address, u8 byte);
extern void flashDelayedWrite(u32 address, u8 byte);

View File

@ -3,6 +3,9 @@
#include <memory.h>
#include <stdarg.h>
#include <string.h>
#ifndef _MSC_VER
#include <strings.h>
#endif
#include "GBA.h"
#include "GBAcpu.h"

View File

@ -1,8 +1,12 @@
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <memory.h>
#include <stdarg.h>
#include <string.h>
#ifndef _MSC_VER
#include <strings.h>
#endif
#include "GBA.h"
#include "GBAcpu.h"
#include "GBAinline.h"
@ -604,7 +608,11 @@ unsigned int CPUWriteState(u8* data, unsigned size)
utilWriteMem(data, workRAM, 0x40000);
utilWriteMem(data, vram, 0x20000);
utilWriteMem(data, oam, 0x400);
#ifdef __LIBRETRO__
utilWriteMem(data, pix, 4 * 240 * 160);
#else
utilWriteMem(data, pix, 4 * 241 * 162);
#endif
utilWriteMem(data, ioMem, 0x400);
eepromSaveGame(data);
@ -642,7 +650,11 @@ static bool CPUWriteState(gzFile gzFile)
utilGzWrite(gzFile, workRAM, 0x40000);
utilGzWrite(gzFile, vram, 0x20000);
utilGzWrite(gzFile, oam, 0x400);
#ifdef __LIBRETRO__
utilGzWrite(gzFile, pix, 4*240*160);
#else
utilGzWrite(gzFile, pix, 4*241*162);
#endif
utilGzWrite(gzFile, ioMem, 0x400);
eepromSaveGame(gzFile);
@ -732,7 +744,11 @@ bool CPUReadState(const u8* data, unsigned size)
utilReadMem(workRAM, data, 0x40000);
utilReadMem(vram, data, 0x20000);
utilReadMem(oam, data, 0x400);
#ifdef __LIBRETRO__
utilReadMem(pix, data, 4*240*160);
#else
utilReadMem(pix, data, 4*241*162);
#endif
utilReadMem(ioMem, data, 0x400);
eepromReadGame(data, version);
@ -862,10 +878,14 @@ static bool CPUReadState(gzFile gzFile)
utilGzRead(gzFile, workRAM, 0x40000);
utilGzRead(gzFile, vram, 0x20000);
utilGzRead(gzFile, oam, 0x400);
#ifdef __LIBRETRO__
utilGzRead(gzFile, pix, 4*240*160);
#else
if(version < SAVE_GAME_VERSION_6)
utilGzRead(gzFile, pix, 4*240*160);
else
utilGzRead(gzFile, pix, 4*241*162);
#endif
utilGzRead(gzFile, ioMem, 0x400);
if(skipSaveGameBattery) {
@ -1597,7 +1617,107 @@ int CPULoadRom(const char *szFile)
CPUCleanUp();
return 0;
}
#ifdef __LIBRETRO__
pix = (u8 *)calloc(1, 4 * 240 * 160);
#else
pix = (u8 *)calloc(1, 4 * 241 * 162);
#endif
if(pix == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"PIX");
CPUCleanUp();
return 0;
}
ioMem = (u8 *)calloc(1, 0x400);
if(ioMem == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"IO");
CPUCleanUp();
return 0;
}
flashInit();
eepromInit();
CPUUpdateRenderBuffers(true);
return romSize;
}
int CPULoadRomData(const char *data, int size)
{
romSize = 0x2000000;
if(rom != NULL) {
CPUCleanUp();
}
systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED;
rom = (u8 *)malloc(0x2000000);
if(rom == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"ROM");
return 0;
}
workRAM = (u8 *)calloc(1, 0x40000);
if(workRAM == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"WRAM");
return 0;
}
u8 *whereToLoad = cpuIsMultiBoot ? workRAM : rom;
romSize = size % 2 == 0 ? size : size + 1;
memcpy(whereToLoad, data, size);
u16 *temp = (u16 *)(rom+((romSize+1)&~1));
int i;
for(i = (romSize+1)&~1; i < 0x2000000; i+=2) {
WRITE16LE(temp, (i >> 1) & 0xFFFF);
temp++;
}
bios = (u8 *)calloc(1,0x4000);
if(bios == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"BIOS");
CPUCleanUp();
return 0;
}
internalRAM = (u8 *)calloc(1,0x8000);
if(internalRAM == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"IRAM");
CPUCleanUp();
return 0;
}
paletteRAM = (u8 *)calloc(1,0x400);
if(paletteRAM == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"PRAM");
CPUCleanUp();
return 0;
}
vram = (u8 *)calloc(1, 0x20000);
if(vram == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"VRAM");
CPUCleanUp();
return 0;
}
oam = (u8 *)calloc(1, 0x400);
if(oam == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"OAM");
CPUCleanUp();
return 0;
}
#ifdef __LIBRETRO__
pix = (u8 *)calloc(1, 4 * 240 * 160);
#else
pix = (u8 *)calloc(1, 4 * 241 * 162);
#endif
if(pix == NULL) {
systemMessage(MSG_OUT_OF_MEMORY, N_("Failed to allocate memory for %s"),
"PIX");
@ -3888,7 +4008,11 @@ void CPULoop(int ticks)
switch(systemColorDepth) {
case 16:
{
#ifdef __LIBRETRO__
u16 *dest = (u16 *)pix + 240 * VCOUNT;
#else
u16 *dest = (u16 *)pix + 242 * (VCOUNT+1);
#endif
for(int x = 0; x < 240;) {
*dest++ = systemColorMap16[lineMix[x++]&0xFFFF];
*dest++ = systemColorMap16[lineMix[x++]&0xFFFF];
@ -3911,7 +4035,9 @@ void CPULoop(int ticks)
*dest++ = systemColorMap16[lineMix[x++]&0xFFFF];
}
// for filters that read past the screen
#ifndef __LIBRETRO__
*dest++ = 0;
#endif
}
break;
case 24:
@ -3958,7 +4084,11 @@ void CPULoop(int ticks)
break;
case 32:
{
#ifdef __LIBRETRO__
u32 *dest = (u32 *)pix + 240 * VCOUNT;
#else
u32 *dest = (u32 *)pix + 241 * (VCOUNT+1);
#endif
for(int x = 0; x < 240; ) {
*dest++ = systemColorMap32[lineMix[x++] & 0xFFFF];
*dest++ = systemColorMap32[lineMix[x++] & 0xFFFF];

View File

@ -98,6 +98,7 @@ extern bool CPUReadState(const char *);
extern bool CPUWriteState(const char *);
#endif
extern int CPULoadRom(const char *);
extern int CPULoadRomData(const char *data, int size);
extern void doMirroring(bool);
extern void CPUUpdateRegister(u32, u16);
extern void applyTimer ();

View File

@ -490,6 +490,12 @@ void soundShutdown()
}
systemOnSoundShutdown();
delete stereo_buffer;
stereo_buffer = 0;
delete gb_apu;
gb_apu = 0;
}
void soundPause()
@ -738,21 +744,6 @@ static variable_desc gba_state [] =
{ NULL, 0 }
};
// Reads and discards count bytes from in
static void skip_read( gzFile in, int count )
{
char buf [512];
while ( count )
{
int n = sizeof buf;
if ( n > count )
n = count;
count -= n;
utilGzRead( in, buf, n );
}
}
#ifdef __LIBRETRO__
void soundSaveGame( u8 *&out )
@ -773,6 +764,22 @@ void soundSaveGame( gzFile out )
}
#ifndef __LIBRETRO__
// Reads and discards count bytes from in
static void skip_read( gzFile in, int count )
{
char buf [512];
while ( count )
{
int n = sizeof buf;
if ( n > count )
n = count;
count -= n;
utilGzRead( in, buf, n );
}
}
static void soundReadGameOld( gzFile in, int version )
{
// Read main data

View File

@ -10,6 +10,10 @@ else ifneq ($(findstring win,$(shell uname -a)),)
platform = win
else ifneq ($(findstring Darwin,$(shell uname -a)),)
platform = osx
arch = intel
ifeq ($(shell uname -a),)
arch = ppc
endif
endif
endif
@ -24,6 +28,58 @@ else ifeq ($(platform), osx)
TARGET := $(TARGET_NAME)_libretro.dylib
fpic := -fPIC
SHARED := -dynamiclib
arch = intel
ifeq ($(shell uname -a),)
arch = ppc
endif
ifneq ($(arch),ppc)
SHARED += -DLSB_FIRST
endif
OSXVER = `sw_vers -productVersion | cut -d. -f 2`
OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"`
ifeq ($(OSX_LT_MAVERICKS),"YES")
fpic += -mmacosx-version-min=10.5
endif
else ifeq ($(platform), ios)
TARGET := $(TARGET_NAME)_libretro_ios.dylib
fpic := -fPIC
SHARED := -dynamiclib -DLSB_FIRST
ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path)
endif
CC = clang -arch armv7 -isysroot $(IOSSDK)
CXX = clang++ -arch armv7 -isysroot $(IOSSDK)
OSXVER = `sw_vers -productVersion | cut -d. -f 2`
OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"`
ifeq ($(OSX_LT_MAVERICKS),"YES")
CC += -miphoneos-version-min=5.0
CXX += -miphoneos-version-min=5.0
SHARED += -miphoneos-version-min=5.0
endif
TILED_RENDERING = 1
else ifeq ($(platform), theos_ios)
DEPLOYMENT_IOSVERSION = 5.0
TARGET = iphone:latest:$(DEPLOYMENT_IOSVERSION)
ARCHS = armv7 armv7s
TARGET_IPHONEOS_DEPLOYMENT_VERSION=$(DEPLOYMENT_IOSVERSION)
THEOS_BUILD_DIR := objs
include $(THEOS)/makefiles/common.mk
LIBRARY_NAME = $(TARGET_NAME)_libretro_ios
ENDIANNESS_DEFINES = -DLSB_FIRST
TILED_RENDERING=1
else ifeq ($(platform), qnx)
TARGET := $(TARGET_NAME)_libretro_qnx.so
fpic := -fPIC
SHARED := -shared
TILED_RENDERING = 1
CC = qcc -Vgcc_ntoarmv7le
CXX = QCC -Vgcc_ntoarmv7le_cpp
AR = QCC -Vgcc_ntoarmv7le
else
TARGET := $(TARGET_NAME)_libretro.dll
LDFLAGS += -Wl,-no-undefined -Wl,--version-script=link.T
@ -36,42 +92,49 @@ ifeq ($(TILED_RENDERING), 1)
VBA_DEFINES += -DTILED_RENDERING
endif
VBA_DIR := ../
CORE_DIR := ..
VBA_SRC_DIRS := $(VBA_DIR)/gba $(VBA_DIR)/apu
include Makefile.common
VBA_CXXSRCS := $(foreach dir,$(VBA_SRC_DIRS),$(wildcard $(dir)/*.cpp))
VBA_CXXOBJ := $(VBA_CXXSRCS:.cpp=.o) ../common/Patch.o
VBA_CSRCS := $(foreach dir,$(VBA_SRC_DIRS),$(wildcard $(dir)/*.c))
VBA_COBJ := $(VBA_CSRCS:.c=.o)
UTIL_SOURCES := $(wildcard ../common/utils/zlib/*.c)
UTIL_OBJS := $(UTIL_SOURCES:.c=.o)
OBJS := $(VBA_COBJ) $(VBA_CXXOBJ) $(UTIL_OBJS) libretro.o UtilRetro.o SoundRetro.o scrc32.o
OBJS := $(SOURCES_CXX:.cpp=.o)
VBA_DEFINES += -D__LIBRETRO__ -DFINAL_VERSION -DC_CORE -DUSE_GBA_ONLY -DNO_LINK
VBA_DEFINES += -DFRONTEND_SUPPORTS_RGB565
CFLAGS += -O3 -std=gnu99 $(fpic) $(VBA_DEFINES) -I../common/utils/zlib
CXXFLAGS += -O3 $(fpic) $(VBA_DEFINES) -I../common/utils/zlib
ifeq ($(DEBUG), 1)
CFLAGS += -g
CXXFLAGS += -g
else
CFLAGS += -O3 -DNDEBUG
CXXFLAGS += -O3 -DNDEBUG
endif
CFLAGS += $(fpic) $(VBA_DEFINES)
CXXFLAGS += $(fpic) $(VBA_DEFINES)
INCDIRS := -I$(VBA_DIR)
LIBS :=
%.o: %.cpp
$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCFLAGS)
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS) $(INCFLAGS)
ifeq ($(platform), theos_ios)
COMMON_FLAGS := -DIOS $(COMMON_DEFINES) $(INCFLAGS) -I$(THEOS_INCLUDE_PATH) -Wno-error
$(LIBRARY_NAME)_CFLAGS += $(CFLAGS) $(COMMON_FLAGS)
$(LIBRARY_NAME)_CXXFLAGS += $(CXXFLAGS) $(COMMON_FLAGS)
${LIBRARY_NAME}_FILES = $(SOURCES_CXX) $(SOURCES_C)
include $(THEOS_MAKE_PATH)/library.mk
else
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) -o $@ $(SHARED) $(OBJS) $(LDFLAGS) $(LIBS)
%.o: %.cpp
$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS)
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS)
clean:
rm -f $(OBJS)
rm -f $(TARGET)
.PHONY: clean
endif

View File

@ -0,0 +1,39 @@
INCFLAGS := -I$(CORE_DIR)
SOURCES_CXX := $(CORE_DIR)/gba/GBA-thumb.cpp \
$(CORE_DIR)/gba/Sound.cpp \
$(CORE_DIR)/gba/Mode1.cpp \
$(CORE_DIR)/gba/CheatSearch.cpp \
$(CORE_DIR)/gba/Globals.cpp \
$(CORE_DIR)/gba/agbprint.cpp \
$(CORE_DIR)/gba/armdis.cpp \
$(CORE_DIR)/gba/Mode4.cpp \
$(CORE_DIR)/gba/Mode3.cpp \
$(CORE_DIR)/gba/Mode5.cpp \
$(CORE_DIR)/gba/GBALink.cpp \
$(CORE_DIR)/gba/Mode2.cpp \
$(CORE_DIR)/gba/GBASockClient.cpp \
$(CORE_DIR)/gba/elf.cpp \
$(CORE_DIR)/gba/GBA-arm.cpp \
$(CORE_DIR)/gba/bios.cpp \
$(CORE_DIR)/gba/gbafilter.cpp \
$(CORE_DIR)/gba/remote.cpp \
$(CORE_DIR)/gba/Mode0.cpp \
$(CORE_DIR)/gba/Flash.cpp \
$(CORE_DIR)/gba/GBAGfx.cpp \
$(CORE_DIR)/gba/Cheats.cpp \
$(CORE_DIR)/gba/GBA.cpp \
$(CORE_DIR)/gba/EEprom.cpp \
$(CORE_DIR)/gba/RTC.cpp \
$(CORE_DIR)/gba/Sram.cpp \
$(CORE_DIR)/apu/Effects_Buffer.cpp \
$(CORE_DIR)/apu/Gb_Oscs.cpp \
$(CORE_DIR)/apu/Gb_Apu_State.cpp \
$(CORE_DIR)/apu/Blip_Buffer.cpp \
$(CORE_DIR)/apu/Multi_Buffer.cpp \
$(CORE_DIR)/apu/Gb_Apu.cpp \
$(CORE_DIR)/common/Patch.cpp \
$(CORE_DIR)/libretro/libretro.cpp \
$(CORE_DIR)/libretro/UtilRetro.cpp \
$(CORE_DIR)/libretro/SoundRetro.cpp \
$(CORE_DIR)/libretro/scrc32.cpp

View File

@ -1,7 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <zlib.h>
#include "System.h"
#include "NLS.h"
@ -16,6 +15,7 @@
#include "gb/gbGlobals.h"
#ifndef _MSC_VER
#include <strings.h>
#define _stricmp strcasecmp
#endif // ! _MSC_VER
@ -93,34 +93,11 @@ bool utilIsGBImage(const char * file)
return false;
}
bool utilIsGzipFile(const char *file)
{
if(strlen(file) > 3) {
const char * p = strrchr(file,'.');
if(p != NULL) {
if(_stricmp(p, ".gz") == 0)
return true;
if(_stricmp(p, ".z") == 0)
return true;
}
}
return false;
}
// strip .gz or .z off end
void utilStripDoubleExtension(const char *file, char *buffer)
{
if(buffer != file) // allows conversion in place
strcpy(buffer, file);
if(utilIsGzipFile(file)) {
char *p = strrchr(buffer, '.');
if(p)
*p = 0;
}
}
static bool utilIsImage(const char *file)

View File

@ -1,6 +1,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <ctype.h>
#include "libretro.h"
#include "SoundRetro.h"
@ -19,7 +21,13 @@
#include "../apu/Gb_Oscs.h"
#include "../apu/Gb_Apu.h"
#include "../gba/Globals.h"
#include "../gba/Cheats.h"
#define RETRO_DEVICE_GBA RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 0)
#define RETRO_DEVICE_GBA_ALT1 RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 1)
#define RETRO_DEVICE_GBA_ALT2 RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 2)
static retro_log_printf_t log_cb;
static retro_video_refresh_t video_cb;
static retro_input_poll_t poll_cb;
static retro_input_state_t input_cb;
@ -31,6 +39,7 @@ extern uint64_t joy;
static bool can_dupe;
unsigned device_type = 0;
int emulating = 0;
static int controller_layout[2] = {0,0};
uint8_t libretro_save_buf[0x20000 + 0x2000]; /* Workaround for broken-by-design GBA save semantics. */
@ -59,18 +68,18 @@ void (*dbgSignal)(int sig, int number);
void *retro_get_memory_data(unsigned id)
{
if (id != RETRO_MEMORY_SAVE_RAM)
return 0;
if (id == RETRO_MEMORY_SAVE_RAM)
return libretro_save_buf;
return libretro_save_buf;
return NULL;
}
size_t retro_get_memory_size(unsigned id)
{
if (id != RETRO_MEMORY_SAVE_RAM)
return 0;
if (id == RETRO_MEMORY_SAVE_RAM)
return libretro_save_size;
return libretro_save_size;
return 0;
}
static bool scan_area(const uint8_t *data, unsigned size)
@ -88,29 +97,33 @@ static void adjust_save_ram()
!scan_area(libretro_save_buf + 512, sizeof(libretro_save_buf) - 512))
{
libretro_save_size = 512;
fprintf(stderr, "Detecting EEprom 8kbit\n");
if (log_cb)
log_cb(RETRO_LOG_INFO, "Detecting EEprom 8kbit\n");
}
else if (scan_area(libretro_save_buf, 0x2000) &&
!scan_area(libretro_save_buf + 0x2000, sizeof(libretro_save_buf) - 0x2000))
{
libretro_save_size = 0x2000;
fprintf(stderr, "Detecting EEprom 64kbit\n");
if (log_cb)
log_cb(RETRO_LOG_INFO, "Detecting EEprom 64kbit\n");
}
else if (scan_area(libretro_save_buf, 0x10000) &&
!scan_area(libretro_save_buf + 0x10000, sizeof(libretro_save_buf) - 0x10000))
{
libretro_save_size = 0x10000;
fprintf(stderr, "Detecting Flash 512kbit\n");
if (log_cb)
log_cb(RETRO_LOG_INFO, "Detecting Flash 512kbit\n");
}
else if (scan_area(libretro_save_buf, 0x20000) &&
!scan_area(libretro_save_buf + 0x20000, sizeof(libretro_save_buf) - 0x20000))
{
libretro_save_size = 0x20000;
fprintf(stderr, "Detecting Flash 1Mbit\n");
if (log_cb)
log_cb(RETRO_LOG_INFO, "Detecting Flash 1Mbit\n");
}
else
fprintf(stderr, "Did not detect any particular SRAM type.\n");
else if (log_cb)
log_cb(RETRO_LOG_INFO, "Did not detect any particular SRAM type.\n");
if (libretro_save_size == 512 || libretro_save_size == 0x2000)
eepromData = libretro_save_buf;
@ -148,26 +161,57 @@ void retro_set_input_state(retro_input_state_t cb)
}
void retro_set_controller_port_device(unsigned port, unsigned device)
{ }
{
log_cb(RETRO_LOG_INFO, "Controller %d'\n", device);
switch(device)
{
case RETRO_DEVICE_JOYPAD:
case RETRO_DEVICE_GBA:
default:
controller_layout[port] = 0;
break;
case RETRO_DEVICE_GBA_ALT1:
controller_layout[port] = 1;
break;
case RETRO_DEVICE_GBA_ALT2:
controller_layout[port] = 2;
break;
case RETRO_DEVICE_NONE:
controller_layout[port] = -1;
break;
}
}
void retro_set_environment(retro_environment_t cb)
{
environ_cb = cb;
struct retro_variable variables[] = {
{ "vbam-next-gamepad",
"Button layout; original|reversed" },
{ NULL, NULL },
};
static const struct retro_controller_description port_1[] = {
{ "GBA Joypad", RETRO_DEVICE_GBA },
{ "Alt Joypad YB", RETRO_DEVICE_GBA_ALT1 },
{ "Alt Joypad AB", RETRO_DEVICE_GBA_ALT2 },
};
static const struct retro_controller_info ports[] = {{ port_1, 4 },{ 0,0 }};
cb(RETRO_ENVIRONMENT_SET_VARIABLES, variables);
cb(RETRO_ENVIRONMENT_SET_CONTROLLER_INFO, (void*)ports);
}
void retro_get_system_info(struct retro_system_info *info)
{
info->need_fullpath = true;
info->need_fullpath = false;
info->valid_extensions = "gba";
info->library_version = "v1.0.2";
info->library_version = "svn";
info->library_name = "VBA-M";
info->block_extract = false;
}
@ -184,18 +228,23 @@ void retro_get_system_av_info(struct retro_system_av_info *info)
void retro_init(void)
{
struct retro_log_callback log;
memset(libretro_save_buf, 0xff, sizeof(libretro_save_buf));
adjust_save_ram();
environ_cb(RETRO_ENVIRONMENT_GET_CAN_DUPE, &can_dupe);
if (environ_cb(RETRO_ENVIRONMENT_GET_LOG_INTERFACE, &log))
log_cb = log.log;
else
log_cb = NULL;
#ifdef FRONTEND_SUPPORTS_RGB565
enum retro_pixel_format rgb565 = RETRO_PIXEL_FORMAT_RGB565;
if(environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &rgb565))
fprintf(stderr, "Frontend supports RGB565 - will use that instead of XRGB1555.\n");
if(environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &rgb565) && log_cb)
log_cb(RETRO_LOG_INFO, "Frontend supports RGB565 - will use that instead of XRGB1555.\n");
#else
enum retro_pixel_format rgb8888 = RETRO_PIXEL_FORMAT_XRGB8888;
if(environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &rgb8888))
fprintf(stderr, "Frontend supports XRGB8888 - will use that instead of XRGB1555.\n");
if(environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &rgb8888) && log_cb)
log_cb(RETRO_LOG_INFO, "Frontend supports XRGB8888 - will use that instead of XRGB1555.\n");
#endif
}
@ -304,12 +353,14 @@ static const ini_t gbaover[256] = {
{"Pokemon - Versione Zaffiro (Italy)", "AXPI", 131072, 0, 1, 0, 0},
{"Rockman EXE 4.5 - Real Operation (Japan)", "BR4J", 0, 0, 1, 0, 0},
{"Rocky (Europe)(En,Fr,De,Es,It)", "AROP", 0, 1, 0, 0, 0},
{"Rocky (USA)(En,Fr,De,Es,It)", "AR8e", 0, 1, 0, 0, 0},
{"Sennen Kazoku (Japan)", "BKAJ", 131072, 0, 1, 0, 0},
{"Shin Bokura no Taiyou - Gyakushuu no Sabata (Japan)", "U33J", 0, 1, 1, 0, 0},
{"Super Mario Advance 4 (Japan)", "AX4J", 131072, 0, 0, 0, 0},
{"Super Mario Advance 4 - Super Mario Bros. 3 (Europe)(En,Fr,De,Es,It)","AX4P", 131072, 0, 0, 0, 0},
{"Super Mario Advance 4 - Super Mario Bros 3 - Super Mario Advance 4 v1.1 (USA)","AX4E",131072,0,0,0,0},
{"Top Gun - Combat Zones (USA)(En,Fr,De,Es,It)", "A2YE", 0, 5, 0, 0, 0},
{"Yoshi's Universal Gravitation (Europe)(En,Fr,De,Es,It)", "KYGP", 0, 4, 0, 0, 0},
{"Yoshi no Banyuuinryoku (Japan)", "KYGJ", 0, 4, 0, 0, 0},
{"Yoshi - Topsy-Turvy (USA)", "KYGE", 0, 1, 0, 0, 0},
{"Yu-Gi-Oh! GX - Duel Academy (USA)", "BYGE", 0, 2, 0, 0, 1},
@ -325,7 +376,9 @@ static void load_image_preferences (void)
buffer[2] = rom[0xae];
buffer[3] = rom[0xaf];
buffer[4] = 0;
fprintf(stderr, "GameID in ROM is: %s\n", buffer);
if (log_cb)
log_cb(RETRO_LOG_INFO, "GameID in ROM is: %s\n", buffer);
bool found = false;
int found_no = 0;
@ -342,7 +395,8 @@ static void load_image_preferences (void)
if(found)
{
fprintf(stderr, "Found ROM in vba-over list.\n");
if (log_cb)
log_cb(RETRO_LOG_INFO, "Found ROM in vba-over list.\n");
enableRtc = gbaover[found_no].rtcEnabled;
@ -356,10 +410,13 @@ static void load_image_preferences (void)
mirroringEnable = gbaover[found_no].mirroringEnabled;
}
fprintf(stderr, "RTC = %d.\n", enableRtc);
fprintf(stderr, "flashSize = %d.\n", flashSize);
fprintf(stderr, "cpuSaveType = %d.\n", cpuSaveType);
fprintf(stderr, "mirroringEnable = %d.\n", mirroringEnable);
if (log_cb)
{
log_cb(RETRO_LOG_INFO, "RTC = %d.\n", enableRtc);
log_cb(RETRO_LOG_INFO, "flashSize = %d.\n", flashSize);
log_cb(RETRO_LOG_INFO, "cpuSaveType = %d.\n", cpuSaveType);
log_cb(RETRO_LOG_INFO, "mirroringEnable = %d.\n", mirroringEnable);
}
}
static void gba_init(void)
@ -411,6 +468,8 @@ static void gba_init(void)
void retro_deinit(void)
{
emulating = 0;
CPUCleanUp();
soundShutdown();
}
void retro_reset(void)
@ -431,6 +490,19 @@ static const unsigned binds[] = {
RETRO_DEVICE_ID_JOYPAD_L
};
static const unsigned binds1[] = {
RETRO_DEVICE_ID_JOYPAD_B,
RETRO_DEVICE_ID_JOYPAD_Y,
RETRO_DEVICE_ID_JOYPAD_SELECT,
RETRO_DEVICE_ID_JOYPAD_START,
RETRO_DEVICE_ID_JOYPAD_RIGHT,
RETRO_DEVICE_ID_JOYPAD_LEFT,
RETRO_DEVICE_ID_JOYPAD_UP,
RETRO_DEVICE_ID_JOYPAD_DOWN,
RETRO_DEVICE_ID_JOYPAD_R,
RETRO_DEVICE_ID_JOYPAD_L
};
static const unsigned binds2[] = {
RETRO_DEVICE_ID_JOYPAD_B,
RETRO_DEVICE_ID_JOYPAD_A,
@ -448,18 +520,7 @@ static unsigned has_frame;
static void update_variables(void)
{
struct retro_variable var;
var.key = "vbam-next-gamepad";
var.value = NULL;
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var))
{
if (strcmp(var.value, "original") == 0)
device_type = 0;
else if (strcmp(var.value, "reversed") == 0)
device_type = 1;
}
}
#ifdef FINAL_VERSION
@ -476,7 +537,7 @@ void retro_run(void)
poll_cb();
has_frame = 0;
do{
@ -500,19 +561,93 @@ bool retro_unserialize(const void *data, size_t size)
}
void retro_cheat_reset(void)
{}
{
cheatsDeleteAll(false);
}
void retro_cheat_set(unsigned, bool, const char*)
{}
void retro_cheat_set(unsigned index, bool enabled, const char *code)
{
const char *begin, *c;
begin = c = code;
if (!code)
return;
do {
if (*c != '+' && *c != '\0')
continue;
char buf[32] = {0};
int len = c - begin;
int i;
// make sure it's using uppercase letters
for (i = 0; i < len; i++)
buf[i] = toupper(begin[i]);
buf[i] = 0;
begin = ++c;
if (len == 16)
cheatsAddGSACode(buf, "", false);
else {
char *space = strrchr(buf, ' ');
if (space != NULL) {
if ((buf + len - space - 1) == 4)
cheatsAddCBACode(buf, "");
else {
memmove(space, space+1, strlen(space+1)+1);
cheatsAddGSACode(buf, "", true);
}
} else if (log_cb)
log_cb(RETRO_LOG_ERROR, "[VBA] Invalid cheat code '%s'\n", buf);
}
} while (*c++);
}
bool retro_load_game(const struct retro_game_info *game)
{
update_variables();
bool ret = CPULoadRom(game->path);
struct retro_input_descriptor input_desc[] = {
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT, "D-Pad Left" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP, "D-Pad Up" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN, "D-Pad Down" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT, "D-Pad Right" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B, "B" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A, "A" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L, "L" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R, "R" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT, "Select" },
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START, "Start" },
{ 0 },
};
environ_cb(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, input_desc);
bool ret = CPULoadRomData((const char*)game->data, game->size);
gba_init();
struct retro_memory_descriptor desc[9];
memset(desc, 0, sizeof(desc));
desc[0].start=0x03000000; desc[0].select=0xFF000000; desc[0].len=0x8000; desc[0].ptr=internalRAM;//fast WRAM
desc[1].start=0x02000000; desc[1].select=0xFF000000; desc[1].len=0x40000; desc[1].ptr=workRAM;//slow WRAM
desc[2].start=0x0E000000; desc[2].select=0xFF000000; desc[2].len=libretro_save_size; desc[2].ptr=flashSaveMemory;//SRAM
desc[3].start=0x08000000; desc[3].select=0xFC000000; desc[3].len=0x2000000; desc[3].ptr=rom;//ROM, parts 1 and 2
desc[3].flags=RETRO_MEMDESC_CONST;//we need two mappings since its size is not a power of 2
desc[4].start=0x0C000000; desc[4].select=0xFE000000; desc[4].len=0x2000000; desc[4].ptr=rom;//ROM part 3
desc[4].flags=RETRO_MEMDESC_CONST;
desc[5].start=0x00000000; desc[5].select=0xFF000000; desc[5].len=0x4000; desc[5].ptr=bios;//BIOS
desc[5].flags=RETRO_MEMDESC_CONST;
desc[6].start=0x06000000; desc[6].select=0xFF000000; desc[6].len=0x18000; desc[6].ptr=vram;//VRAM
desc[7].start=0x07000000; desc[7].select=0xFF000000; desc[7].len=0x400; desc[7].ptr=paletteRAM;//palettes
desc[8].start=0x05000000; desc[8].select=0xFF000000; desc[8].len=0x400; desc[8].ptr=oam;//OAM
struct retro_memory_map retromap={ desc, sizeof(desc)/sizeof(*desc) };
if (ret) environ_cb(RETRO_ENVIRONMENT_SET_MEMORY_MAPS, &retromap);
return ret;
}
@ -527,8 +662,9 @@ static unsigned g_video_frames;
void retro_unload_game(void)
{
fprintf(stderr, "[VBA] Sync stats: Audio frames: %u, Video frames: %u, AF/VF: %.2f\n",
g_audio_frames, g_video_frames, (float)g_audio_frames / g_video_frames);
if (log_cb)
log_cb(RETRO_LOG_INFO, "[VBA] Sync stats: Audio frames: %u, Video frames: %u, AF/VF: %.2f\n",
g_audio_frames, g_video_frames, (float)g_audio_frames / g_video_frames);
g_audio_frames = 0;
g_video_frames = 0;
}
@ -546,30 +682,45 @@ void systemOnSoundShutdown() {}
bool systemCanChangeSoundQuality() { return true; }
#ifdef FRONTEND_SUPPORTS_RGB565
#define GBA_PITCH 484
#define BPP 2
#else
#define GBA_PITCH 964
#define BPP 4
#endif
void systemDrawScreen()
{
video_cb(pix, 240, 160, GBA_PITCH);
video_cb(pix, 240, 160, 240 * BPP);
g_video_frames++;
}
void systemFrame()
{
has_frame = 1;
}
void systemFrame() {}
void systemMessage(int, const char* str, ...)
void systemMessage(const char* fmt, ...)
{
fprintf(stderr, "%s", str);
char buffer[256];
va_list ap;
va_start(ap, fmt);
vsprintf(buffer, fmt, ap);
if (log_cb)
log_cb(RETRO_LOG_INFO, "%s\n", buffer);
va_end(ap);
}
void systemMessage(const char* str, ...)
void systemMessage(int, const char* fmt, ...)
{
fprintf(stderr, "%s", str);
char buffer[256];
va_list ap;
va_start(ap, fmt);
vsprintf(buffer, fmt, ap);
if (log_cb)
log_cb(RETRO_LOG_INFO, "%s\n", buffer);
va_end(ap);
}
int systemGetSensorX(void)
{
return 0;
@ -593,7 +744,16 @@ u32 systemReadJoypad(int which)
u32 J = 0;
for (unsigned i = 0; i < 10; i++)
J |= input_cb(which, RETRO_DEVICE_JOYPAD, 0, device_type ? binds2[i] : binds[i]) << i;
{
if(controller_layout[0] == 1)
J |= input_cb(which, RETRO_DEVICE_JOYPAD, 0, binds1[i]) << i;
else if(controller_layout[0] == 2)
J |= input_cb(which, RETRO_DEVICE_JOYPAD, 0, binds2[i]) << i;
else if(controller_layout[0] == -1)
break;
else
J |= input_cb(which, RETRO_DEVICE_JOYPAD, 0, binds[i]) << i;
}
return J;
}
@ -612,7 +772,8 @@ void systemGbPrint(u8 *data,int pages, int feed, int palette, int contrast) {}
void systemScreenCapture(int a) {}
void systemScreenMessage(const char*msg)
{
fprintf(stderr, "DEBUG: %s\n", msg);
if (log_cb)
log_cb(RETRO_LOG_INFO, "%s\n", msg);
}
void systemSetTitle(const char *title) {}
@ -624,11 +785,6 @@ u32 systemGetClock()
return 0;
}
int cheatsCheckKeys(u32 keys, u32 extended)
{
return 0;
}
SoundDriver *systemSoundInit()
{
soundShutdown();

File diff suppressed because it is too large Load Diff

View File

@ -128,7 +128,7 @@
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;_XBOX;_LIB;;__LIBRETRO__;SPEEDHAX;__POWERPC__;__ppc__;WORDS_BIGENDIAN;BLARGG_BIG_ENDIAN;INLINE=_inline;%(PreprocessorDefinitions);_XBOX360;FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -148,7 +148,7 @@
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;_XBOX;_LIB;%(PreprocessorDefinitions);_XBOX360;FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -169,7 +169,7 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;PROFILE;_LIB;%(PreprocessorDefinitions);_XBOX360;FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -193,7 +193,7 @@
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;PROFILE;FASTCAP;_LIB;%(PreprocessorDefinitions);_XBOX360;FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -215,7 +215,7 @@
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;_LIB;__LIBRETRO__;SPEEDHAX;__POWERPC__;__ppc__;WORDS_BIGENDIAN;BLARGG_BIG_ENDIAN;INLINE=_inline;USE_CACHE_PREFETCH;BRANCHLESS_GBA_GFX;%(PreprocessorDefinitions);_XBOX360;FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreschedulingOptimization>true</PreschedulingOptimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
@ -239,7 +239,7 @@
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;_XBOX;LTCG;_LIB;__LIBRETRO__;USE_CACHE_PREFETCH;BRANCHLESS_GBA_GFX;SPEEDHAX;__POWERPC__;__ppc__;WORDS_BIGENDIAN;BLARGG_BIG_ENDIAN;INLINE=_inline;%(PreprocessorDefinitions);_XBOX360;FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\libretro;$(SolutionDir)\..\src;$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreschedulingOptimization>true</PreschedulingOptimization>
</ClCompile>
<Link>

View File

@ -53,7 +53,7 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;MSVC2010_EXPORTS;_CRT_SECURE_NO_WARNINGS;LSB_FIRST;SPEEDHAX=1;__LIBRETRO__;INLINE=_inline;%(PreprocessorDefinitions);FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\src\;$(SolutionDir)\..\libretro;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\src\;$(SolutionDir)\..\libretro;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -70,7 +70,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MSVC2010_EXPORTS;_CRT_SECURE_NO_WARNINGS;LSB_FIRST;SPEEDHAX=1;__LIBRETRO__;INLINE=_inline;%(PreprocessorDefinitions);FRONTEND_SUPPORTS_RGB565</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\src\;$(SolutionDir)\..\libretro;$(SolutionDir)\..\utils\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\..\src\common;$(SolutionDir)\..\src\gb;$(SolutionDir)\..\src\gba;$(SolutionDir)\..\src\;$(SolutionDir)\..\libretro;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -102,4 +102,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@ -1,142 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?>
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.qnx.qcc.toolChain.626310726">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.626310726" moduleId="org.eclipse.cdt.core.settings" name="Device-Debug">
<externalSettings/>
<extensions>
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.626310726" name="Device-Debug" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="com.qnx.qcc.toolChain.626310726.1649453550" name="/" resourcePath="">
<toolChain id="com.qnx.qcc.toolChain.1342601877" name="com.qnx.qcc.toolChain" superClass="com.qnx.qcc.toolChain">
<option id="com.qnx.qcc.option.os.840463735" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
<option id="com.qnx.qcc.option.cpu.1584813227" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.1150604874" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
<option id="com.qnx.qcc.option.runtime.715945996" name="Runtime:" superClass="com.qnx.qcc.option.runtime"/>
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.428277778" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
<builder arguments="-C../../.. -f Makefile.libretro platform=qnx" command="make" id="com.qnx.qcc.toolChain.626310726.1731605708" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="com.qnx.qcc.tool.compiler.704170294" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
<option id="com.qnx.qcc.option.compiler.optlevel.1253529204" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.includePath.1622782009" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<inputType id="com.qnx.qcc.inputType.compiler.1798533056" superClass="com.qnx.qcc.inputType.compiler"/>
</tool>
<tool id="com.qnx.qcc.tool.assembler.640042275" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
<inputType id="com.qnx.qcc.inputType.assembler.322215139" superClass="com.qnx.qcc.inputType.assembler"/>
</tool>
<tool id="com.qnx.qcc.tool.linker.1853123079" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
<tool id="com.qnx.qcc.tool.archiver.735821326" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.qnx.qcc.toolChain.596961256">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.596961256" moduleId="org.eclipse.cdt.core.settings" name="Device-Release">
<externalSettings/>
<extensions>
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" id="com.qnx.qcc.toolChain.596961256" name="Device-Release" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="com.qnx.qcc.toolChain.596961256.1995517691" name="/" resourcePath="">
<toolChain id="com.qnx.qcc.toolChain.250794595" name="com.qnx.qcc.toolChain" superClass="com.qnx.qcc.toolChain">
<option id="com.qnx.qcc.option.os.50436673" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
<option id="com.qnx.qcc.option.cpu.1574105992" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.151606317" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
<option id="com.qnx.qcc.option.runtime.1902056074" name="Runtime:" superClass="com.qnx.qcc.option.runtime"/>
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1327155087" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
<builder id="com.qnx.qcc.toolChain.596961256.95592864" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="com.qnx.qcc.tool.compiler.663212480" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
<option id="com.qnx.qcc.option.compiler.optlevel.1969235724" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.includePath.1101517679" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<inputType id="com.qnx.qcc.inputType.compiler.1444213222" superClass="com.qnx.qcc.inputType.compiler"/>
</tool>
<tool id="com.qnx.qcc.tool.assembler.602630936" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
<inputType id="com.qnx.qcc.inputType.assembler.643342282" superClass="com.qnx.qcc.inputType.assembler"/>
</tool>
<tool id="com.qnx.qcc.tool.linker.2093493116" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
<tool id="com.qnx.qcc.tool.archiver.1790052673" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.qnx.qcc.toolChain.1929975688">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1929975688" moduleId="org.eclipse.cdt.core.settings" name="Simulator-Debug">
<externalSettings/>
<extensions>
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" id="com.qnx.qcc.toolChain.1929975688" name="Simulator-Debug" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="com.qnx.qcc.toolChain.1929975688.2022202742" name="/" resourcePath="">
<toolChain id="com.qnx.qcc.toolChain.885515989" name="com.qnx.qcc.toolChain" superClass="com.qnx.qcc.toolChain">
<option id="com.qnx.qcc.option.os.2092550207" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
<option id="com.qnx.qcc.option.cpu.1913841013" name="Target CPU:" superClass="com.qnx.qcc.option.cpu"/>
<option id="com.qnx.qcc.option.compiler.650587483" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
<option id="com.qnx.qcc.option.runtime.1489865038" name="Runtime:" superClass="com.qnx.qcc.option.runtime"/>
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1676208223" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
<builder id="com.qnx.qcc.toolChain.1929975688.1210047992" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="com.qnx.qcc.tool.compiler.144934099" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
<option id="com.qnx.qcc.option.compiler.optlevel.2098810423" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.includePath.1316115629" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<inputType id="com.qnx.qcc.inputType.compiler.860407404" superClass="com.qnx.qcc.inputType.compiler"/>
</tool>
<tool id="com.qnx.qcc.tool.assembler.223366539" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
<inputType id="com.qnx.qcc.inputType.assembler.330356742" superClass="com.qnx.qcc.inputType.assembler"/>
</tool>
<tool id="com.qnx.qcc.tool.linker.127754688" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
<tool id="com.qnx.qcc.tool.archiver.1428657687" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="vba-next.null.854298701" name="vba-next"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1929975688">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.626310726">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.596961256">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="refreshScope" versionNumber="1">
<resource resourceType="PROJECT" workspacePath="/vba-next"/>
</storageModule>
</cproject>

View File

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>vba-next</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
<dictionary>
<key>?name?</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.append_environment</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key>
<value>-C../../.. -f Makefile.libretro platform=qnx</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildCommand</key>
<value>make</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
<value>clean</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.contents</key>
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
<value>false</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.stopOnError</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
<value>false</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.qnx.tools.bbt.xml.core.bbtXMLValidationBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<nature>com.qnx.tools.ide.bbt.core.bbtnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
</natures>
</projectDescription>