From f33f96872d355814599082e87466e76969991337 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Mon, 27 Aug 2012 05:55:59 +0200 Subject: [PATCH] (Libretro )Added console support --- libretro/Makefile | 79 ++++++++++++++++++++++++++++++++++++++--------- port.h | 4 ++- 2 files changed, 68 insertions(+), 15 deletions(-) diff --git a/libretro/Makefile b/libretro/Makefile index 5958bd7e..f946bec6 100644 --- a/libretro/Makefile +++ b/libretro/Makefile @@ -1,16 +1,19 @@ ifeq ($(platform),) -platform = unix -ifeq ($(shell uname -a),) - platform = win -else ifneq ($(findstring Darwin,$(shell uname -a)),) - platform = osx -else ifneq ($(findstring MINGW,$(shell uname -a)),) - platform = win -else ifneq ($(findstring win,$(shell uname -a)),) - platform = win -endif + platform = unix + ifeq ($(shell uname -a),) + platform = win + else ifneq ($(findstring Darwin,$(shell uname -a)),) + platform = osx + else ifneq ($(findstring MINGW,$(shell uname -a)),) + platform = win + else ifneq ($(findstring win,$(shell uname -a)),) + platform = win + endif endif +CXX = g++ +CC = gcc + ifeq ($(platform), unix) TARGET := libretro.so fpic := -fPIC @@ -19,6 +22,36 @@ else ifeq ($(platform), osx) TARGET := libretro.dylib fpic := -fPIC SHARED := -dynamiclib +else ifeq ($(platform), ps3) + TARGET := libretro_ps3.a + CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe + CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe + AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe + CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ +else ifeq ($(platform), sncps3) + TARGET := libretro_ps3.a + CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe + CXX = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe + AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe + CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ +else ifeq ($(platform), psl1ght) + TARGET := libretro_psl1ght.a + CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT) + CXX = $(PS3DEV)/ppu/bin/ppu-g++$(EXE_EXT) + AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT) + CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ +else ifeq ($(platform), xenon) + TARGET := libretro_xenon360.a + CC = xenon-gcc$(EXE_EXT) + CXX = xenon-g++$(EXE_EXT) + AR = xenon-ar$(EXE_EXT) + CFLAGS += -D__LIBXENON__ -m32 -D__ppc__ +else ifeq ($(platform), wii) + TARGET := libretro_wii.a + CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) + CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT) + AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT) + CFLAGS += -DGEKKO -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__ else TARGET := libretro.dll CC = gcc @@ -29,18 +62,36 @@ endif OBJECTS = ../apu/apu.o ../apu/bapu/dsp/sdsp.o ../apu/bapu/dsp/SPC_DSP.o ../apu/bapu/smp/smp.o ../apu/bapu/smp/smp_state.o ../bsx.o ../c4.o ../c4emu.o ../cheats.o ../cheats2.o ../clip.o ../conffile.o ../controls.o ../cpu.o ../cpuexec.o ../cpuops.o ../crosshairs.o ../dma.o ../dsp.o ../dsp1.o ../dsp2.o ../dsp3.o ../dsp4.o ../fxinst.o ../fxemu.o ../gfx.o ../globals.o ../logger.o ../memmap.o ../movie.o ../obc1.o ../ppu.o ../stream.o ../sa1.o ../sa1cpu.o ../screenshot.o ../sdd1.o ../sdd1emu.o ../seta.o ../seta010.o ../seta011.o ../seta018.o ../snapshot.o ../snes9x.o ../spc7110.o ../srtc.o ../tile.o libretro.o -CXX = g++ -CC = gcc INCLUDES = -I. -I.. -I../apu/ -I../apu/bapu -CXXFLAGS += -O3 -fomit-frame-pointer -fno-exceptions -fno-rtti -pedantic -Wall -W -Wno-unused-parameter $(fpic) -CXXFLAGS += -DHAVE_STRINGS_H -DHAVE_STDINT_H -DRIGHTSHIFT_IS_SAR +ifeq ($(platform), sncps3) + WARNINGS_DEFINES = + CODE_DEFINES = +else + WARNINGS_DEFINES = -Wall -W -Wno-unused-parameter + CODE_DEFINES = -fomit-frame-pointer +endif + +CXXFLAGS += -O3 $(CODE_DEFINES) -fno-exceptions -fno-rtti -pedantic $(WARNINGS_DEFINES) $(fpic) +CXXFLAGS += -DHAVE_STRINGS_H -DHAVE_STDINT_H -DRIGHTSHIFT_IS_SAR -D__LIBRETRO__ CFLAGS = $(CXXFLAGS) all: $(TARGET) $(TARGET): $(OBJECTS) +ifeq ($(platform), ps3) + $(AR) rcs $@ $(OBJECTS) +else ifeq ($(platform), sncps3) + $(AR) rcs $@ $(OBJECTS) +else ifeq ($(platform), psl1ght) + $(AR) rcs $@ $(OBJECTS) +else ifeq ($(platform), xenon) + $(AR) rcs $@ $(OBJECTS) +else ifeq ($(platform), wii) + $(AR) rcs $@ $(OBJECTS) +else $(CXX) $(fpic) $(SHARED) $(INCLUDES) -o $@ $(OBJECTS) -lm +endif %.o: %.cpp $(CXX) $(INCLUDES) $(CXXFLAGS) -c -o $@ $< diff --git a/port.h b/port.h index 1e62b35b..6c4559ea 100644 --- a/port.h +++ b/port.h @@ -182,7 +182,9 @@ #include #include #include +#ifndef __LIBRETRO__ #include +#endif #include #include #ifdef HAVE_STRINGS_H @@ -332,7 +334,7 @@ void SetInfoDlgColor(unsigned char, unsigned char, unsigned char); #define TITLE "Snes9x" #endif -#if defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__x86_64__) || defined(__alpha__) || defined(__MIPSEL__) || defined(_M_IX86) || defined(_M_X64) +#if defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__x86_64__) || defined(__alpha__) || defined(__MIPSEL__) || defined(_M_IX86) || defined(_M_X64) || defined(_XBOX1) #define LSB_FIRST #define FAST_LSB_WORD_ACCESS #else