Updated libretro to c0449e2c75650325aed7e7495a41f166d9ec0e7a (11/03/2015 7:03:18AM)
c0449e2c75
This commit is contained in:
parent
14d94c32f6
commit
0e5d12f070
|
@ -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
|
|
@ -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.
|
||||
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
usr/bin/wxvbam
|
||||
usr/share/icons
|
||||
usr/share/locale/*/*/wxvbam.*
|
||||
usr/share/applications/wxvbam.desktop
|
|
@ -1,7 +1,9 @@
|
|||
#ifndef SYSTEM_H
|
||||
#define SYSTEM_H
|
||||
#include "common/Types.h"
|
||||
#ifndef __LIBRETRO__
|
||||
#include <zlib.h>
|
||||
#endif
|
||||
|
||||
class SoundDriver;
|
||||
|
||||
|
|
14
src/Util.h
14
src/Util.h
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
|
130
src/gba/GBA.cpp
130
src/gba/GBA.cpp
|
@ -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];
|
||||
|
|
|
@ -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 ();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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)
|
||||
|
|
|
@ -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
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
Loading…
Reference in New Issue